Alexander, not sure what is the point of creating a table without indexes. I would combine stage 1 and 2.
On Thu, Jan 12, 2017 at 12:57 PM, Denis Magda <dma...@apache.org> wrote: > Guys, > > As for the stages I would propose the following three creating separate > JIRA tickets for them. > > Stage 1: > - CREATE/DROP SCHEMA. > - CREATE/DROP TABLE. > > Stage 2: > - CREATE/DROP INDEX. > - indexes are updated in the ‘lock-the-world mode' > > Stage 3: > - CREATE/DROP INDEX. > - indexes are updated concurrently. > > Going further we might need to make up a command like ‘CREATE CLUSTER’ > that will be mapped to IgniteConfiguration. Using the command the user will > fill in the whole cluster configuration from DDL without a need to go to > XML at all. > > Thoughts? > > — > Denis > > > On Jan 12, 2017, at 12:41 AM, Sergey Kozlov <skoz...@gridgain.com> > wrote: > > > > As first stage of DDL we can implement following CREATE TABLE statement > > support: > > - CREATE TABLE without cache properties (use default cache properties or > > cache properties defined in SQL Schema) > > - CREATE TABLE .. LIKE where we can create a cache based on an another > > existing cache. > > > > On Thu, Jan 12, 2017 at 5:54 AM, Dmitriy Setrakyan < > dsetrak...@apache.org> > > wrote: > > > >> Agree with Sergey. We should be able to specify cache properties inside > of > >> SQL statements. Does H2 have any support to process SQL hints? Can we > >> change it? > >> > >> Having said that, while we finalize the above, I think we should start > >> working on DDL implementation to use the default settings, as specified > in > >> Alexander's email. > >> > >> Also agree with the stop-the-world on the cache for index creation. We > can > >> always improve on it in future. > >> > >> D. > >> > >> On Wed, Jan 11, 2017 at 11:28 AM, Sergey Kozlov <skoz...@gridgain.com> > >> wrote: > >> > >>> Hi > >>> > >>> I suppose we should put any ignite cache properties as additional > >>> non-standard attributes after CREATE TABLE () clause as it does > >> Postgress, > >>> MySQL and other RDBMS. > >>> Take a look on CREATE TABLE with using TABLESPACE (Postgess) or for > >> CREATE > >>> TABLE with using PARTITIONS (MySQL). > >>> > >>> > >>> > >>> > >>> > >>> On Wed, Jan 11, 2017 at 10:05 PM, Vladimir Ozerov < > voze...@gridgain.com> > >>> wrote: > >>> > >>>> I believe custom synthax and parsing is a *must* for us, as well as > for > >>> any > >>>> distributed database. At the very least we need to specify affinity > key > >>>> column somehow. Any cache property can be specified at the very end of > >>>> table definition. Key columns can be determined as the ones with > >> PRIMARY > >>>> KEY constraint (Alex K. idea) + affinity column(s): > >>>> > >>>> CREATE TABLE employee ( > >>>> id BIGINT PRIMARY KEY, > >>>> dept_id BIGINT AFFINITY KEY, > >>>> name VARCHAR(128), > >>>> address VARCHAR(256) > >>>> BACKUPS 2, > >>>> ATOMICITY_MODE ATOMIC, > >>>> ); > >>>> > >>>> "id" and "dept_id" form key type, "name" and "address" form value > type. > >>>> > >>>> Vladimir. > >>>> > >>>> On Wed, Jan 11, 2017 at 9:08 PM, Alexey Kuznetsov < > >> akuznet...@apache.org > >>>> > >>>> wrote: > >>>> > >>>>> Hi, Alex! > >>>>> > >>>>> As far as I know most RDBMS allow something like: create table t1 (id > >>>>> integer primary key, ....) > >>>>> How about to take as key field that marked as "primary key"? > >>>>> > >>>>> As of atomicity and replication - I think it is a cache properties > >> and > >>>> with > >>>>> create table we will create "types" in cache. No? > >>>>> I thought that cache it is a kind of "schema" in RDBMS. > >>>>> > >>>>> Could you describe what will be created with CREATE TABLE? > >>>>> > >>>>> On Thu, Jan 12, 2017 at 12:54 AM, Alexander Paschenko < > >>>>> alexander.a.pasche...@gmail.com> wrote: > >>>>> > >>>>>> Hello Igniters, > >>>>>> > >>>>>> I would like to start discussion about implementation of SQL DDL > >>>>> commands. > >>>>>> > >>>>>> At the first stage, the most important ones seem to be CREATE TABLE > >>>>>> (that will obviously correspond to creation of a cache) and CREATE > >>>>>> INDEX. > >>>>>> > >>>>>> Regarding first one: SQL command for CREATE TABLE does not contain > >>> any > >>>>>> hints about cache settings (atomicity, replication, etc.), so these > >>>>>> will probably be defined by some configuration properties (like > >>>>>> ignite.ddl.default_cache_atomiticity, etc). > >>>>>> > >>>>>> Also it does not allow to distinguish between key and value > >> columns - > >>>>>> currently it is handled by keyFields property of QueryEntity, but > >> it > >>>>>> is unclear how to declare key fields via CREATE TABLE. > >>>>>> > >>>>>> So at a first glance it seems like we should either implement some > >>>>>> sort of custom parsing (I believe Sergi will be against it) or > >>>>>> introduce some kind of name prefix that would tell SQL engine that > >>>>>> certain column is a key field column. > >>>>>> > >>>>>> Of course, this problem disappears is key is of SQL type. > >>>>>> > >>>>>> Regarding CREATE INDEX: probably at first we will have to implement > >>>>>> this in "stop-the-world" manner, i.e. all cache will be blocked > >>> during > >>>>>> the index's initial buildup. > >>>>>> > >>>>>> Any thoughts? > >>>>>> > >>>>>> Currently I'm working on parsing of those commands as that will be > >>>>>> needed anyway and does not affect further implementation. > >>>>>> > >>>>>> - Alex > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>> -- > >>>>> Alexey Kuznetsov > >>>>> > >>>> > >>> > >>> > >>> > >>> -- > >>> Sergey Kozlov > >>> GridGain Systems > >>> www.gridgain.com > >>> > >> > > > > > > > > -- > > Sergey Kozlov > > GridGain Systems > > www.gridgain.com > >