The schema can be changed with ALTER TABLE ADD COLUMN command: https://apacheignite-sql.readme.io/docs/alter-table <https://apacheignite-sql.readme.io/docs/alter-table>
To my knowledge this is supported for schemas that were initially configured by both DDL and QueryEntity/Annotations. — Denis > On Jan 22, 2018, at 5:44 AM, Ilya Kasnacheev <ilya.kasnach...@gmail.com> > wrote: > > Hello Rajesh! > > Table name can be specified in cache configuration's query entity. If not > supplied, by default it is equal to value type name, e.g. BinaryObject :) > > Also, note that SQL tables have fixed schemas. This means you won't be able > to add a random set of fields in BinaryObject and be able to do SQL queries > on them all. You will have to declare all fields that you are going to use > via SQL, either by annotations or query entity: > see https://apacheignite-sql.readme.io/docs/schema-and-indexes > <https://apacheignite-sql.readme.io/docs/schema-and-indexes> > > To add index, you should either specify it in annotations (via index=true) or > in query entity. > > Regards, > Ilya. > > -- > Ilya Kasnacheev > > 2018-01-21 15:12 GMT+03:00 Rajesh Kishore <rajesh10si...@gmail.com > <mailto:rajesh10si...@gmail.com>>: > Hi Denis, > > This is my code: > > CacheConfiguration<Long, BinaryObject> cacheCfg = > new CacheConfiguration<>(ORG_CACHE); > > cacheCfg.setAtomicityMode(CacheAtomicityMode.TRANSACTIONAL); > cacheCfg.setBackups(1); > cacheCfg > .setWriteSynchronizationMode(CacheWriteSynchronizationMode.FULL_SYNC); > cacheCfg.setIndexedTypes(Long.class, BinaryObject.class); > > IgniteCache<Long, BinaryObject> cache = ignite.getOrCreateCache(cacheCfg); > > if ( UPDATE ) { > System.out.println("Populating the cache..."); > > try (IgniteDataStreamer<Long, BinaryObject> streamer = > ignite.dataStreamer(ORG_CACHE)) { > streamer.allowOverwrite(true); > IgniteBinary binary = ignite.binary(); > BinaryObjectBuilder objBuilder = binary.builder(ORG_CACHE); > ; > for ( long i = 0; i < 100; i++ ) { > streamer.addData(i, > objBuilder.setField("id", i) > .setField("name", "organization-" + i).build()); > > if ( i > 0 && i % 100 == 0 ) > System.out.println("Done: " + i); > } > } > } > > IgniteCache<Long, BinaryObject> binaryCache = > ignite.cache(ORG_CACHE).withKeepBinary(); > BinaryObject binaryPerson = binaryCache.get(54l); > System.out.println("name " + binaryPerson.field("name")); > > > Not sure, If I am missing some context here , if I have to use sqlquery , > what table name should I specify - I did not create table explicitly, do I > need to that? > How would I create the index? > > Thanks, > Rajesh > > On Sun, Jan 21, 2018 at 12:25 PM, Denis Magda <dma...@apache.org > <mailto:dma...@apache.org>> wrote: > > > > On Jan 20, 2018, at 7:20 PM, Rajesh Kishore <rajesh10si...@gmail.com > > <mailto:rajesh10si...@gmail.com>> wrote: > > > > Hi, > > > > I have requirement that my schema is not fixed , so I have to use the > > BinaryObject approach instead of fixed POJO > > > > I am relying on OOTB file system persistence mechanism > > > > My questions are: > > - How can I specify the indexes on BinaryObject? > > https://apacheignite-sql.readme.io/docs/create-index > <https://apacheignite-sql.readme.io/docs/create-index> > https://apacheignite-sql.readme.io/docs/schema-and-indexes > <https://apacheignite-sql.readme.io/docs/schema-and-indexes> > > > - If I have to use sql query for retrieving objects , what table name > > should I specify, the one which is used for cache name does not work > > > > Was the table and its queryable fields/indexes created with CREATE TABLE or > Java annotations/QueryEntity? > > If the latter approach was taken then the table name corresponds to the Java > type name as shown in this doc: > https://apacheignite-sql.readme.io/docs/schema-and-indexes > <https://apacheignite-sql.readme.io/docs/schema-and-indexes> > > — > Denis > > > -Rajesh > > >