See inline

2016-01-25 19:16 GMT+03:00 Pavel Tupitsyn <ptupit...@gridgain.com>:

> Thank you Sergi, more questions:
>
> - How do I get the result of an aggregate? Via Fields query? Will it always
> be a single value, or a value per node?
>

Yes, using fields query. Supported aggregates must work correctly across
cluster.


> - If field names are flattened, what are QueryEntity.aliases for? Javadoc
> talks about dot notation, I thought it is for nested fields.
>

Exactly aliases are needed to resolve duplication cases. For example you
have entity Person it has field `child` which has field `age` and field
`car` which has field `age` as well. You can specify in config that
"child.age" must have SQL alias "child_age" and "car.age" will have alias
"car_age". Obviously you can't use `car.age` notation in sql as is.


> - What is the purpose of SqlQuery.type? We use simple name of the class for
> it everywhere. Does it relate to type id mapping somehow?
>

Sometimes (when we work with binary objects) we don't have classes at all.


> - I tried to use _key/_val aliases and could not get them to work:
>    * "_val.Age > ?": Failed to parse query: SELECT
> "cache".QueryPerson._key, "cache".QueryPerson._val FROM "cache".QueryPerson
> WHERE _val.Age > ?
>

There are no dot notation in SQL. You can operate on _val but not on
_val.property1.property2.property25.


>    * "_key > ?": Caused by: org.h2.jdbc.JdbcSQLException: Deserialization
> failed, cause: "class org.apache.ignite.binary.BinaryObjectException: Not
> enough data to read the value [position=1, requiredBytes=4,
> remainingBytes=0]"; SQL statement: SELECT "cache".QUERYPERSON._KEY __C0,
> "cache".QUERYPERSON._VAL __C1 FROM "cache".QUERYPERSON WHERE _KEY > ?1
> [90027-175]
>

Looks like a bug to me. Could you open Jira issue with simple reproducible
test?

Sergi


>
>
>
> On Mon, Jan 25, 2016 at 6:38 PM, Sergi Vladykin <sergi.vlady...@gmail.com>
> wrote:
>
> > - Yes, in SQL it is possible to query cache key and value using aliases
> > _key and _val respectively.
> > - Aggregate functions like SUM, AVG, MIN, MAX are supported.
> > - Nested fields are supported and they are flattened, so name collisions
> > are prohibited.
> >
> > Sergi
> >
> > 2016-01-25 15:26 GMT+03:00 Pavel Tupitsyn <ptupit...@gridgain.com>:
> >
> > > Igniters,
> > >
> > > In relation to .NET LINQ task [1], I'd like to know as much as possible
> > > about Ignite-specific SQL syntax. Our docs [2] do not cover everything.
> > >
> > > * Is it possible to query cache keys? E.g. "key > 10", or "key.field =
> > 1"?
> > > * Is it possible to query scalars, like "sum()"?
> > > * What about nested fields? From examples, I see that nested fields get
> > > flattened, so instead of Address.Zip you can just use Zip. Are there
> any
> > > limitations? What if there is field name collision?
> > >
> > > Where should I look to understand this better?
> > >
> > > Thanks.
> > >
> > > [1] https://issues.apache.org/jira/browse/IGNITE-1630
> > > [2] https://apacheignite.readme.io/docs/sql-queries
> > >
> > > --
> > > --
> > > Pavel Tupitsyn
> > > GridGain Systems, Inc.
> > > www.gridgain.com
> > >
> >
>
>
>
> --
> --
> Pavel Tupitsyn
> GridGain Systems, Inc.
> www.gridgain.com
>

Reply via email to