Dima,

Value type name doesn't necessarily maps to table name. For instance, what
if I have two tables like this? They both have "java.lang.Long" as type
name.

CREATE table *t1* {
    pk_id BIGINT PRIMARY KEY,
    val BIGINT
}

CREATE table *t2* {
    pk_id BIGINT PRIMARY KEY,
    val BIGINT
}

On Fri, Feb 17, 2017 at 12:40 AM, Dmitriy Setrakyan <dsetrak...@apache.org>
wrote:

> Vladimir, I am not sure I understand your point. The value type name should
> be the table name, no?
>
> On Thu, Feb 16, 2017 at 12:13 AM, Vladimir Ozerov <voze...@gridgain.com>
> wrote:
>
> > Dima,
> >
> > At this point we require the following additional data which is outside
> of
> > standard SQL:
> > - Key type
> > - Value type
> > - Set of key columns
> >
> > I do not know yet how we will define these values. At the very least we
> can
> > calculate them automatically in some cases. For "keyFieldName" and
> > "valFieldName" things are easier, as we can always derive them from table
> > definition.
> >
> > Example 1 - primitives:
> >
> > CREATE TABLE (
> >     *pk_id* BIGINT PRIMARY KEY,
> >     *val*   BIGINT
> > )
> >
> > keyFieldName = "*pk_id*", valFieldName = "*val*"
> >
> > Example 2 - composites:
> >
> > CREATE TABLE (
> >     *pk_id* BIGINT PRIMARY KEY,
> >     val1  BIGINT,
> >     val2  VARCHAR
> > )
> >
> > keyFieldName = "*pk_id*", valFieldName = null (because value is complex
> and
> > is composed of two attributes).
> >
> > Vladimir.
> >
> >
> > On Wed, Feb 15, 2017 at 11:42 PM, Dmitriy Setrakyan <
> dsetrak...@apache.org
> > >
> > wrote:
> >
> > > On Wed, Feb 15, 2017 at 4:28 AM, Vladimir Ozerov <voze...@gridgain.com
> >
> > > wrote:
> > >
> > > > Ok, let's put aside current fields configuration, I'll create
> separate
> > > > thread for it. As far as _KEY and _VAL, proposed change is exactly
> > about
> > > > mappings:
> > > >
> > > > class QueryEntity {
> > > >     ...
> > > >     String keyFieldName;
> > > >     String valFieldName;
> > > >     ...
> > > > }
> > > >
> > > > The key thing is that we will not require users to be aware of our
> > system
> > > > columns. Normally user should not bother about existence of hidden
> _KEY
> > > and
> > > > _VAL columns. Instead, we just allow them to optionally reference the
> > > whole
> > > > key and/or val through predefined name.
> > > >
> > > >
> > > Vladimir, how will it work from the DDL perspective. Let's say whenever
> > > user wants to create a table in Ignite?
> > >
> >
>

Reply via email to