Igniters,

Not sure we discussed this before, so let me start a new thread.

It’s claimed the command is supported from native Java, .NET, C++ APIs but I 
had hard time trying to use it from there. Imagine this simple statement to be 
called from Java source code:  

SqlFieldsQuery query = new SqlFieldsQuery(
    "CREATE TABLE City (" +
        " id LONG PRIMARY KEY, name VARCHAR)" +
        " WITH \"template=replicated\"");

*cache*.query(query).getAll();

The CT command will be recognized but the *cache* is not the City cache. It’s 
some other cache existed prior the query execution.

In my scenario I’ve planned to show how to configure the schema from scratch on 
an empty cluster and had to apply the following workaround instantiating a 
dummy cache:

IgniteCache cache = ignite.getOrCreateCache(new 
CacheConfiguration<>("default").setIndexedTypes(Long.class,
    Long.class).setSqlSchema("PUBLIC"));


How do we want to improve this poor experience? My options are:

1) Introduce some static API (cache-reference-free) method for quiries like 
that.
2) Deploy the cache prior that call and pass its name into “WITH” statement.

—
Denis

Reply via email to