Nikolay,

I believe the first option is the way to go. However, I'd also like to hear
from other community members.

Vladimir, Alex P, can you comment on this? I know we currently don't have
public API to execute DDL statement without having a cache. However, looks
like we use private API of GridQueryProcessor to overcome this in JDBC
drivers and Web Console. We now need a similar solution for data frames
integration, can you confirm that we're moving in the right direction?

-Val

On Thu, Feb 1, 2018 at 4:04 AM, Nikolay Izhikov <nizhi...@apache.org> wrote:

> Hello, guys.
>
> I working on support of saving Spark DataFrame to Ignite [1].
>
> I want to execute "DROP TABLE XXX" query.
> To execute some SQL query in regulary way one need some cache.
> That cache has to differs from table cache to execute "DROP TABLE"
> successfully.
>
> I founded 3 different ways to execute SQL query without explicit cache
> name.
> Please, tell me which way is right?
> Do we need all 3 way to make a query?
>
> 1. JdbcRequestHandler - [2]
>
> ```
>
>     private final GridKernalContext ctx;
> ...
>     List<FieldsQueryCursor<List<?>>> results = ctx.query().querySqlFields(qry,
> true, protocolVer.compareTo(VER_2_3_0) < 0);
>
> ```
>
> 2. GridCacheProcessor - [3]
>
> ```
>
>     /**
>     * Gets public cache that can be used for query execution.
>     * If cache isn't created on current node it will be started.
>     */
>     public IgniteCacheProxy<?, ?> getOrStartPublicCache(boolean start,
> boolean inclLoc) throws IgniteCheckedException {
>
> ```
>
> 3. QueryCommandHandler - [4]
>
> ```
>
>         protected static final String DFLT_CACHE_NAME = "default";
> ...
>         String cacheName = req.cacheName() == null ? DFLT_CACHE_NAME :
> req.cacheName();
>
> ```
>
>
> [1] https://issues.apache.org/jira/browse/IGNITE-7337
> [2] https://github.com/apache/ignite/blob/master/modules/
> core/src/main/java/org/apache/ignite/internal/processors/
> odbc/jdbc/JdbcRequestHandler.java#L310
> [3] https://github.com/apache/ignite/blob/master/modules/
> core/src/main/java/org/apache/ignite/internal/processors/
> cache/GridCacheProcessor.java#L1648
> [4] https://github.com/apache/ignite/blob/master/modules/
> core/src/main/java/org/apache/ignite/internal/processors/
> rest/handlers/query/QueryCommandHandler.java#L318

Reply via email to