Hi,

1. For now I'm against inventing any custom SQL syntax and implementing
parsing.
Currently H2 supports the following syntax:

CREATE TABLE test(...) WITH "myCustomParamString"

This is enough for us to pass the needed parameters.

2. Agree with AG, we have to separate cache creation from table creation.
Cache == SQL schema for us. We just have to add the same WITH syntax in H2
for schema creation like this:

CREATE SCHEMA "MyCacheName" WITH "cacheConfig=myCache.xml"

3. If we want to create tables then I suggest to put this functionality to
2.0+PageMemory right away and think where and how we are going to store all
the related metadata.This is especially important for persistent storages.

Sergi


2017-01-12 16:56 GMT+03:00 Vladimir Ozerov <voze...@gridgain.com>:

> I am afraid in this case user will have to define too much schemes -
> boilerplate.
> Does it make sense at all to pack multiple tuples into a single cache from
> user perspective?
>
> On Thu, Jan 12, 2017 at 4:40 PM, Alexey Goncharuk <
> alexey.goncha...@gmail.com> wrote:
>
> > Alexander,
> >
> > Will we keep the old option to have multiple tables in one cache? If so,
> > how will create table statement know which cache to choose?
> >
> > It seems to me that to be consistent with the current DML implementation
> we
> > should have a CREATE SCHEMA statement which will define the cache and
> cache
> > configuration, and CREATE TABLE should specify the schema name.
> >
> > Otherwise, we should enforce the single type per cache rule at the
> > configuration level and in runtime.
> >
> > As for affinity and primary key - agree with Vladimir.
> >
> > --
> > AG
> >
> > 2017-01-12 11:41 GMT+03:00 Sergey Kozlov <skoz...@gridgain.com>:
> >
> > > 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
> > >
> >
>

Reply via email to