Andrey,

What about corresponding async APIs, do we add them now or later?

On Thu, Mar 11, 2021 at 8:11 PM Andrey Mashenkov <andrey.mashen...@gmail.com>
wrote:

> Hi Igniters.
>
> I've created a PR for Table access API [1].
> This is an initial version. So, any suggestions\objections are welcomed.
> Please, do not hesitate to write your comments and\or examples to the PR.
>
> Ignite-api module contains API classes, e.g. TableView classes as
> projections for a table for different purposes.
> Ignite-table contains dummy implementation and Example class explained how
> it is supposed to be used.
>
>
> Also, I'm still waiting for any feedback for Schema configuration public
> API PR [2].
>
> [1] https://github.com/apache/ignite-3/pull/33
> [2] https://github.com/apache/ignite-3/pull/2
>
> On Wed, Jan 20, 2021 at 6:05 PM Andrey Mashenkov <
> andrey.mashen...@gmail.com>
> wrote:
>
> >
> > I've updated a PR regarding your feedback [1].
> >
> > [1] https://github.com/apache/ignite-3/pull/2
> >
> > On Mon, Jan 11, 2021 at 10:58 AM Alexey Goncharuk <
> > alexey.goncha...@gmail.com> wrote:
> >
> >> Folks,
> >>
> >> I updated the IEP to contain the missing pieces; actually, most of the
> >> questions here were covered by the text. Please let me know if there is
> >> something still missing or unclear.
> >>
> >> чт, 31 дек. 2020 г. в 12:48, Alexey Goncharuk <
> alexey.goncha...@gmail.com
> >> >:
> >>
> >> > Mikhail and Igniters,
> >> >
> >> > Thanks for your comments. The questions are reasonable, though I think
> >> all
> >> > concerns are addressed by the IEP as Val mentioned. I will update the
> >> > document according to your questions in the following week or so, so
> we
> >> can
> >> > have a constructive discussion further.
> >> >
> >> > ср, 30 дек. 2020 г. в 11:45, Michael Cherkasov <
> >> > michael.cherka...@gmail.com>:
> >> >
> >> >> Hi Val, Andrey,
> >> >>
> >> >> thank you for clarifying.
> >> >>
> >> >> I still have a few comments.
> >> >>
> >> >> 1. one table == one schema. KV vs SQL:
> >> >> Looks like all agreed that KV is just a special case of a regular
> table
> >> >> with (blob,blob) schema.
> >> >> I worry about the case when the user starts from KV case and later
> will
> >> >> try
> >> >> to expand it and try to leverage SQL for the existing KV table it
> >> won't be
> >> >> able to do so and will require to reload data. which isn't convenient
> >> and
> >> >> sometimes not even possible. Is it possible to extract a new field
> from
> >> >> (blob, blob) schema and apply index on it?
> >> >>
> >> >> 2. Could you please also list all ways of schema definition in the
> >> IEP? It
> >> >> significant change and I bet the main point of this IEP, everyone
> hates
> >> >> QueryEntities, they are difficult to manage and in general, it's very
> >> >> confusing to have a data model(schemas) and node/cluster
> configuration
> >> in
> >> >> one place.
> >> >>
> >> >> So there will be SchemaBuilder and SQL to define schemas, but Andrey
> >> also
> >> >> mentioned annotations.
> >> >>
> >> >> I personally against configuration via annotations, while it's
> >> convenient
> >> >> for development, it difficult to manage because different classes can
> >> be
> >> >> deployed on different clients/servers nodes and it can lead to
> >> >> unpredictable results.
> >> >>
> >> >> 3. IEP doesn't mention field type changes, only drop/add fields.
> Field
> >> >> type
> >> >> changes are extremely painful right now(if even possible), so it
> would
> >> be
> >> >> nice if some scenarios would be supported(like int8->int16, or
> >> >> int8->String).
> >> >>
> >> >> 4. got it, I thought IEP will have more details about the
> >> implementation.
> >> >> I've seen Andrey even sent benchmark results for a new serialization,
> >> will
> >> >> ping him about this.
> >> >>
> >> >> 5. Thanks for the clarification. I had a wrong understanding of
> strick
> >> >> mode.
> >> >>
> >> >>
> >> >> вт, 29 дек. 2020 г. в 19:32, Valentin Kulichenko <
> >> >> valentin.kuliche...@gmail.com>:
> >> >>
> >> >> > Hi Mike,
> >> >> >
> >> >> > Thanks for providing your feedback. Please see my comments below.
> >> >> >
> >> >> > I would also encourage you to go through the IEP-54 [1] - it has a
> >> lot
> >> >> of
> >> >> > detail on the topic.
> >> >> >
> >> >> > [1]
> >> >> >
> >> >> >
> >> >>
> >>
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-54%3A+Schema-first+Approach
> >> >> >
> >> >> > -Val
> >> >> >
> >> >> > On Mon, Dec 28, 2020 at 11:22 PM Michael Cherkasov <
> >> >> > michael.cherka...@gmail.com> wrote:
> >> >> >
> >> >> > > Hi all,
> >> >> > >
> >> >> > > I reviewed the mail thread and proposal page and I still don't
> >> fully
> >> >> > > understand what is going to be changed, I would really appreciate
> >> it
> >> >> if
> >> >> > you
> >> >> > > will answer a few questions:
> >> >> > >
> >> >> > > 1. Are you going to leave only one schema per cache? if so, will
> be
> >> >> there
> >> >> > > an option to have a table with arbitrary objects(pure KV case)?
> >> >> > >
> >> >> >
> >> >> > My opinion is that KV case should be natively supported. I think
> this
> >> >> still
> >> >> > needs to be thought over, my current view on this is that we should
> >> have
> >> >> > separate APIs for KV and more generic storages. KV storage can be
> >> >> > implemented as a "table" with two BLOB fields where we will store
> >> >> > serialized key-value pairs. That would imply deserialization on
> read,
> >> >> but I
> >> >> > believe this is OK for KV use cases. I'm happy to hear other ideas
> >> >> though
> >> >> > :)
> >> >> >
> >> >> >
> >> >> > > 2. What options will Apache Ignite 3.0 have to define schema?
> >> >> > SchemaBuilder
> >> >> > > and SQL only? Is there an option to put the schema definition to
> >> the
> >> >> > > configuration?(I really don't like this, I would prefer to have
> >> >> > > separate scripts to create schemas)
> >> >> > >
> >> >> >
> >> >> > There will be no such thing as a static configuration in the first
> >> >> place.
> >> >> > Tables and schemas are created in runtime. Even if there is a file
> >> >> provided
> >> >> > on node startup, this file is only applied in the scope of the
> >> 'start'
> >> >> > operation. All configurations will be stored in a meta storage
> >> >> available to
> >> >> > all nodes, as opposed to individual files.
> >> >> >
> >> >> >
> >> >> > > 3. Is there a way to change field type? if yes, can it be done in
> >> >> > runtime?
> >> >> > >
> >> >> >
> >> >> > Absolutely! IEP-54 has a whole section about schema evolution.
> >> >> >
> >> >> >
> >> >> > > 4. Looks like BinaryMarshaller is going to be re-worked too, is
> >> there
> >> >> any
> >> >> > > IEP for this?
> >> >> > >
> >> >> >
> >> >> > BinaryMarshaller as a tool for arbitrary object serialization will
> be
> >> >> gone,
> >> >> > but we will reuse a lot of its concept to implement an internal
> tuple
> >> >> > serialization mechanism. IEP-54 has the description of the proposed
> >> data
> >> >> > format.
> >> >> >
> >> >> >
> >> >> > > 5. I don't like automatic schema evaluation when a new field is
> >> added
> >> >> > > automatically on record put, so is there a way to prohibit this
> >> >> behavior?
> >> >> > >  I think all schema changes should be done only explicitly except
> >> >> initial
> >> >> > > schema creation.
> >> >> > >
> >> >> >
> >> >> > The way I see it is that we should have two modes: schema-first and
> >> >> > schema-last. Schema-first means exactly what you've described -
> >> schemas
> >> >> are
> >> >> > defined and updated explicitly by the user. In the schema-last
> mode,
> >> >> > the user does not deal with schemas, as they are inferred from the
> >> data
> >> >> > inserted into tables. We should definitely not mix these modes - it
> >> has
> >> >> to
> >> >> > be one or another. And it probably makes sense to discuss which
> mode
> >> >> should
> >> >> > be the default one.
> >> >> >
> >> >> >
> >> >> > >
> >> >> > > Thanks,
> >> >> > > Mike.
> >> >> > >
> >> >> > > пн, 21 дек. 2020 г. в 06:40, Andrey Mashenkov <
> >> >> > andrey.mashen...@gmail.com
> >> >> > > >:
> >> >> > >
> >> >> > > > Hi, Igniters.
> >> >> > > >
> >> >> > > > We all know that the current QueryEntity API is not convenient
> >> and
> >> >> > needs
> >> >> > > to
> >> >> > > > be reworked.
> >> >> > > > So, I'm glad to share PR [1] with schema configuration public
> API
> >> >> for
> >> >> > > > Ignite 3.0.
> >> >> > > >
> >> >> > > > New schema configuration uses Builder pattern, which looks more
> >> >> > > comfortable
> >> >> > > > to use.
> >> >> > > >
> >> >> > > > In the PR you will find a 'schema' package with the API itself,
> >> and
> >> >> a
> >> >> > > draft
> >> >> > > > implementation in 'internal' sub-package,
> >> >> > > > and a test that demonstrates how the API could be used.
> >> >> > > >
> >> >> > > > Please note:
> >> >> > > >
> >> >> > > > * Entrypoint is 'SchemaBuilders' class with static factory
> >> methods.
> >> >> > > > * The implementation is decoupled and can be easily extracted
> to
> >> >> > separate
> >> >> > > > module if we decide to do so.
> >> >> > > > * Some columns types (e.g. Date/Time) are missed, they will be
> >> added
> >> >> > > lately
> >> >> > > > in separate tickes.
> >> >> > > > * Index configuration extends marker interface that makes
> >> possible
> >> >> to
> >> >> > > > implement indexes of new types in plugins.
> >> >> > > > Hopfully, we could add a persistent geo-indices support in
> >> future.
> >> >> > > > * Supposedly, current table schema can be changed via
> >> builder-like
> >> >> > > > structure as it is done if JOOQ project. See
> >> >> 'TableModificationBuilder'
> >> >> > > for
> >> >> > > > details.
> >> >> > > > I'm not sure 'SchemaTable' should have 'toBuilder()' converter
> >> for
> >> >> that
> >> >> > > > purpose as it is a Schema Manager responsibility to create
> >> mutator
> >> >> > > objects
> >> >> > > > from the current schema,
> >> >> > > > but implementing the Schema manager is out of scope and will be
> >> >> > designed
> >> >> > > > within the next task.
> >> >> > > > * Interfaces implementations are out of scope. I did not intend
> >> to
> >> >> > merge
> >> >> > > > them right now, but for test/demostration purposes.
> >> >> > > >
> >> >> > > > It is NOT the final version and some may be changed before the
> >> first
> >> >> > > > release of course.
> >> >> > > > For now, we have to agree if we can proceed with this approach
> or
> >> >> some
> >> >> > > > issues should be resolved at first.
> >> >> > > >
> >> >> > > > Any thoughts or objections?
> >> >> > > > Are interfaces good enough to be merged within the current
> >> ticket?
> >> >> > > >
> >> >> > > >
> >> >> > > > https://issues.apache.org/jira/browse/IGNITE-13748
> >> >> > > >
> >> >> > > > On Thu, Nov 26, 2020 at 2:33 PM Юрий <
> >> jury.gerzhedow...@gmail.com>
> >> >> > > wrote:
> >> >> > > >
> >> >> > > > > A little bit my thoughts about unsigned types:
> >> >> > > > >
> >> >> > > > > 1. Seems we may support unsign types
> >> >> > > > > 2. It requires adding new types to the internal
> representation,
> >> >> > > protocol,
> >> >> > > > > e.t.c.
> >> >> > > > > 3. internal representation should be the same as we keep sign
> >> >> types.
> >> >> > So
> >> >> > > > it
> >> >> > > > > will not requires more memory
> >> >> > > > > 4. User should be aware of specifics such types for platforms
> >> >> which
> >> >> > not
> >> >> > > > > support unsigned types. For example, a user could derive -6
> >> value
> >> >> in
> >> >> > > Java
> >> >> > > > > for 250 unsigned byte value (from bits perspective will be
> >> >> right). I
> >> >> > > > think
> >> >> > > > > We shouldn't use more wide type for such cases, especially it
> >> >> will be
> >> >> > > bad
> >> >> > > > > for unsigned long when we require returns BigInteger type.
> >> >> > > > > 5. Possible it requires some suffix/preffix for new types
> like
> >> a
> >> >> > > '250u' -
> >> >> > > > > it means that 250 is an unsigned value type.
> >> >> > > > > 6. It requires a little bit more expensive comparison logic
> for
> >> >> > indexes
> >> >> > > > > 7. It requires new comparison logic for expressions. I think
> it
> >> >> not
> >> >> > > > > possible for the current H2 engine and probably possible for
> >> the
> >> >> new
> >> >> > > > > Calcite engine. Need clarification from anybody who involved
> in
> >> >> this
> >> >> > > part
> >> >> > > > >
> >> >> > > > > WDYT?
> >> >> > > > >
> >> >> > > > > вт, 24 нояб. 2020 г. в 18:36, Alexey Goncharuk <
> >> >> > > > alexey.goncha...@gmail.com
> >> >> > > > > >:
> >> >> > > > >
> >> >> > > > > > Actually, we can support comparisons in 3.0: once we the
> >> actual
> >> >> > type
> >> >> > > > > > information, we can make proper runtime adjustments and
> >> >> conversions
> >> >> > > to
> >> >> > > > > > treat those values as unsigned - it will be just a bit more
> >> >> > > expensive.
> >> >> > > > > >
> >> >> > > > > > вт, 24 нояб. 2020 г. в 18:32, Pavel Tupitsyn <
> >> >> ptupit...@apache.org
> >> >> > >:
> >> >> > > > > >
> >> >> > > > > > > > SQL range queries it will break
> >> >> > > > > > > > WHERE x > y may return wrong results
> >> >> > > > > > >
> >> >> > > > > > > Yes, range queries, inequality comparisons and so on are
> >> >> broken
> >> >> > > > > > > for unsigned data types, I think I mentioned this
> somewhere
> >> >> > above.
> >> >> > > > > > >
> >> >> > > > > > > Again, in my opinion, we can document that SQL is not
> >> >> supported
> >> >> > on
> >> >> > > > > those
> >> >> > > > > > > types,
> >> >> > > > > > > end of story.
> >> >> > > > > > >
> >> >> > > > > > > On Tue, Nov 24, 2020 at 6:25 PM Alexey Goncharuk <
> >> >> > > > > > > alexey.goncha...@gmail.com>
> >> >> > > > > > > wrote:
> >> >> > > > > > >
> >> >> > > > > > > > Folks, I think this is a reasonable request. I thought
> >> about
> >> >> > this
> >> >> > > > > when
> >> >> > > > > > I
> >> >> > > > > > > > was drafting the IEP, but hesitated to add these types
> >> right
> >> >> > > away.
> >> >> > > > > > > >
> >> >> > > > > > > > > That is how it works in Ignite since the beginning
> with
> >> >> .NET
> >> >> > > and
> >> >> > > > > C++
> >> >> > > > > > :)
> >> >> > > > > > > > I have some doubts that it actually works as expected,
> it
> >> >> needs
> >> >> > > > some
> >> >> > > > > > > > checking (will be glad if my concerns are false):
> >> >> > > > > > > >
> >> >> > > > > > > >    - It's true that equality check works properly, but
> >> for
> >> >> SQL
> >> >> > > > range
> >> >> > > > > > > >    queries it will break unless some special care is
> >> taken
> >> >> on
> >> >> > > Java
> >> >> > > > > > side:
> >> >> > > > > > > > for
> >> >> > > > > > > >    u8 255 > 10, but in Java (byte)255 will be converted
> >> to
> >> >> -1,
> >> >> > > > which
> >> >> > > > > > will
> >> >> > > > > > > >    break the comparison. Since we don't have unsigned
> >> types
> >> >> > now,
> >> >> > > I
> >> >> > > > > > doubt
> >> >> > > > > > > it
> >> >> > > > > > > >    works.
> >> >> > > > > > > >    - There is an obvious cross-platform data loss when
> >> >> > > "intuitive"
> >> >> > > > > type
> >> >> > > > > > > >    mapping is used by a user (u8 corresponds to byte
> >> type in
> >> >> > > .NET,
> >> >> > > > > but
> >> >> > > > > > to
> >> >> > > > > > > >    avoid values loss, a user will have to use short
> type
> >> in
> >> >> > Java,
> >> >> > > > and
> >> >> > > > > > > > Ignite
> >> >> > > > > > > >    will also need to take care of the range check
> during
> >> >> > > > > > serialization).
> >> >> > > > > > > I
> >> >> > > > > > > >    think we can even allow to try to deserialize a
> value
> >> >> into
> >> >> > > > > arbitrary
> >> >> > > > > > > > type,
> >> >> > > > > > > >    but throw an exception if the range is out of
> bounds.
> >> >> > > > > > > >
> >> >> > > > > > > > Overall, I agree with Andrey's comments.
> >> >> > > > > > > > Andrey, do you mind updating the IEP once all the
> details
> >> >> are
> >> >> > > > settled
> >> >> > > > > > > here?
> >> >> > > > > > > >
> >> >> > > > > > > > вт, 24 нояб. 2020 г. в 18:19, Andrey Mashenkov <
> >> >> > > > > > > andrey.mashen...@gmail.com
> >> >> > > > > > > > >:
> >> >> > > > > > > >
> >> >> > > > > > > > > Pavel,
> >> >> > > > > > > > >
> >> >> > > > > > > > > I believe uLong values beyond 2^63 can't be treated
> >> >> correctly
> >> >> > > for
> >> >> > > > > now
> >> >> > > > > > > > > (WHERE x > y may return wrong results)
> >> >> > > > > > > > >
> >> >> > > > > > > > > I think we could make "true" support for unsigned
> >> types,
> >> >> but
> >> >> > > they
> >> >> > > > > > will
> >> >> > > > > > > > have
> >> >> > > > > > > > > limitations on the Java side.
> >> >> > > > > > > > > Thus, the one will not be able to map uint64 to Java
> >> long
> >> >> > > > > primitive,
> >> >> > > > > > > but
> >> >> > > > > > > > to
> >> >> > > > > > > > > BigInteger only.
> >> >> > > > > > > > > As for indices, we could read uint64 to Java long,
> but
> >> >> treat
> >> >> > > > > negative
> >> >> > > > > > > > > values in a different way to preserve correct
> ordering.
> >> >> > > > > > > > >
> >> >> > > > > > > > > These limitations will affect only mixed environments
> >> when
> >> >> > .Net
> >> >> > > > and
> >> >> > > > > > > Java
> >> >> > > > > > > > > used to access the data.
> >> >> > > > > > > > > Will this solution address your issues?
> >> >> > > > > > > > >
> >> >> > > > > > > > >
> >> >> > > > > > > > > On Tue, Nov 24, 2020 at 5:45 PM Pavel Tupitsyn <
> >> >> > > > > ptupit...@apache.org
> >> >> > > > > > >
> >> >> > > > > > > > > wrote:
> >> >> > > > > > > > >
> >> >> > > > > > > > > > > That way is impossible.
> >> >> > > > > > > > > >
> >> >> > > > > > > > > > That is how it works in Ignite since the beginning
> >> with
> >> >> > .NET
> >> >> > > > and
> >> >> > > > > > C++
> >> >> > > > > > > :)
> >> >> > > > > > > > > > You can use unsigned primitives as cache keys and
> >> >> values,
> >> >> > as
> >> >> > > > > fields
> >> >> > > > > > > and
> >> >> > > > > > > > > > properties,
> >> >> > > > > > > > > > and in SQL queries (even in WHERE x=y clauses) - it
> >> >> works
> >> >> > > > > > > transparently
> >> >> > > > > > > > > for
> >> >> > > > > > > > > > the users.
> >> >> > > > > > > > > > Java side knows nothing and treats those values as
> >> >> > > > corresponding
> >> >> > > > > > > signed
> >> >> > > > > > > > > > types.
> >> >> > > > > > > > > >
> >> >> > > > > > > > > > However, this abstraction leaks in some cases only
> >> >> because
> >> >> > > > there
> >> >> > > > > > are
> >> >> > > > > > > no
> >> >> > > > > > > > > > corresponding type ids.
> >> >> > > > > > > > > > That is why I'm proposing a very simple change to
> the
> >> >> > > protocol
> >> >> > > > -
> >> >> > > > > > add
> >> >> > > > > > > > type
> >> >> > > > > > > > > > ids, but handle them the same way as signed
> >> >> counterparts.
> >> >> > > > > > > > > >
> >> >> > > > > > > > > >
> >> >> > > > > > > > > > On Tue, Nov 24, 2020 at 5:00 PM Andrey Mashenkov <
> >> >> > > > > > > > > > andrey.mashen...@gmail.com>
> >> >> > > > > > > > > > wrote:
> >> >> > > > > > > > > >
> >> >> > > > > > > > > > > Pavel,
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > > > - Treat uLong as long in Java (bitwise
> >> representation
> >> >> is
> >> >> > > the
> >> >> > > > > > same)
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > > > That way is impossible.
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > > > Assume, you have a .NET class with a uByte field
> >> and
> >> >> map
> >> >> > it
> >> >> > > > to
> >> >> > > > > > > > 'uint8'
> >> >> > > > > > > > > > > column.
> >> >> > > > > > > > > > > Then you set the field value to "250" and put the
> >> >> object
> >> >> > > > into a
> >> >> > > > > > > > table,
> >> >> > > > > > > > > > > field value perfectly fits to a single byte
> 'int8'
> >> >> > column.
> >> >> > > > > > > > > > > But in Java you can't deserialize it to directly
> >> the
> >> >> Java
> >> >> > > > > object
> >> >> > > > > > > > field
> >> >> > > > > > > > > of
> >> >> > > > > > > > > > > 'byte' type, so we should map uint8 type to Java
> >> >> 'short'
> >> >> > > type
> >> >> > > > > > > > > > > because the one expected to see "250" as a value
> >> which
> >> >> > > > doesn't
> >> >> > > > > > fit
> >> >> > > > > > > to
> >> >> > > > > > > > > the
> >> >> > > > > > > > > > > signed type.
> >> >> > > > > > > > > > > For uLong the one will need a BigInteger field in
> >> >> Java.
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > > > SQL index either can't treat column value as Java
> >> >> 'byte'
> >> >> > as
> >> >> > > > is,
> >> >> > > > > > > > because
> >> >> > > > > > > > > > > after reading you will get a negative value, so
> it
> >> >> should
> >> >> > > be
> >> >> > > > > cast
> >> >> > > > > > > to
> >> >> > > > > > > > > > short
> >> >> > > > > > > > > > > at first. (converted to BigInteger for uint64)
> >> >> > > > > > > > > > > So, index on signed type will require a different
> >> >> > > comparator.
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > > > That way doesn't look simpler.
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > > > On Tue, Nov 24, 2020 at 4:23 PM Pavel Tupitsyn <
> >> >> > > > > > > ptupit...@apache.org
> >> >> > > > > > > > >
> >> >> > > > > > > > > > > wrote:
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > > > > Andrey,
> >> >> > > > > > > > > > > >
> >> >> > > > > > > > > > > > I don't think range narrowing is a good idea.
> >> >> > > > > > > > > > > > Do you see any problems with the simple
> approach
> >> I
> >> >> > > > described?
> >> >> > > > > > > > > > > >
> >> >> > > > > > > > > > > >
> >> >> > > > > > > > > > > > On Tue, Nov 24, 2020 at 4:01 PM Andrey
> Mashenkov
> >> <
> >> >> > > > > > > > > > > > andrey.mashen...@gmail.com>
> >> >> > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > >
> >> >> > > > > > > > > > > > > Pavel,
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > If you are ok with narrowing range for
> unsigned
> >> >> types
> >> >> > > > then
> >> >> > > > > we
> >> >> > > > > > > > could
> >> >> > > > > > > > > > > add a
> >> >> > > > > > > > > > > > > constraint for unsigned types on schema level
> >> >> (like
> >> >> > > > > > nullability
> >> >> > > > > > > > > flag)
> >> >> > > > > > > > > > > > > and treat them as signed types in storage.
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > We are going with a separate storage
> >> type-system
> >> >> and
> >> >> > > > binary
> >> >> > > > > > > > > protocol
> >> >> > > > > > > > > > > > > type-system, however most of type will match
> 1
> >> to
> >> >> 1
> >> >> > > with
> >> >> > > > > > > storage
> >> >> > > > > > > > > > > (native)
> >> >> > > > > > > > > > > > > type.
> >> >> > > > > > > > > > > > > On .Net side you will either have a separate
> >> type
> >> >> id
> >> >> > or
> >> >> > > > > treat
> >> >> > > > > > > > > > > serialized
> >> >> > > > > > > > > > > > > value regarding a schema (signed or unsigned
> >> >> flag).
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > Igor,
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > I'm not sure users can ever foresee the
> >> >> consequences
> >> >> > of
> >> >> > > > > using
> >> >> > > > > > > > > > unsigned
> >> >> > > > > > > > > > > > > types.
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > Assume, a user used to unsigned types
> perfectly
> >> >> works
> >> >> > > > with
> >> >> > > > > > some
> >> >> > > > > > > > > > > database,
> >> >> > > > > > > > > > > > > then he turns into Ignite successor
> confession
> >> >> with
> >> >> > our
> >> >> > > > > > > "native"
> >> >> > > > > > > > > > > > > unsigned-types support.
> >> >> > > > > > > > > > > > > But later, he finds that he can use the power
> >> of
> >> >> > Ignite
> >> >> > > > > > Compute
> >> >> > > > > > > > on
> >> >> > > > > > > > > > Java
> >> >> > > > > > > > > > > > for
> >> >> > > > > > > > > > > > > some tasks or a new app.
> >> >> > > > > > > > > > > > > Finally, the user will either fail to use his
> >> >> > unsigned
> >> >> > > > data
> >> >> > > > > > on
> >> >> > > > > > > > Java
> >> >> > > > > > > > > > due
> >> >> > > > > > > > > > > > or
> >> >> > > > > > > > > > > > > face performance issues due to natural Java
> >> type
> >> >> > system
> >> >> > > > > > > > limitations
> >> >> > > > > > > > > > > e.g.
> >> >> > > > > > > > > > > > > conversion uLong to BigInteger.
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > I believe that natively supported types with
> >> >> possible
> >> >> > > > value
> >> >> > > > > > > > ranges
> >> >> > > > > > > > > > and
> >> >> > > > > > > > > > > > > limitations should be known.
> >> >> > > > > > > > > > > > > So, the only question is what trade-off we
> >> found
> >> >> > > > > acceptable:
> >> >> > > > > > > > > > narrowing
> >> >> > > > > > > > > > > > > unsigned type range or use types of wider
> >> range on
> >> >> > > > systems
> >> >> > > > > > like
> >> >> > > > > > > > > Java.
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > On Tue, Nov 24, 2020 at 3:25 PM Igor Sapego <
> >> >> > > > > > > isap...@apache.org>
> >> >> > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > Actually, I think it is not so hard to
> >> implement
> >> >> > > > > comparison
> >> >> > > > > > > of
> >> >> > > > > > > > > > > unsigned
> >> >> > > > > > > > > > > > > > numbers in
> >> >> > > > > > > > > > > > > > SQL even in Java, so it does not seem to
> be a
> >> >> big
> >> >> > > issue
> >> >> > > > > > from
> >> >> > > > > > > my
> >> >> > > > > > > > > > > > > > perspective.
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > Now to the usage of unsigned types from
> Java
> >> - I
> >> >> > > think,
> >> >> > > > > if
> >> >> > > > > > a
> >> >> > > > > > > > user
> >> >> > > > > > > > > > > uses
> >> >> > > > > > > > > > > > > > unsigned type
> >> >> > > > > > > > > > > > > > in a schema and is going to interact with
> it
> >> >> from
> >> >> > > Java
> >> >> > > > he
> >> >> > > > > > > knows
> >> >> > > > > > > > > > what
> >> >> > > > > > > > > > > he
> >> >> > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > doing.
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > Mostly they are for use from platforms
> where
> >> >> they
> >> >> > > have
> >> >> > > > > > native
> >> >> > > > > > > > > > support
> >> >> > > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > widely
> >> >> > > > > > > > > > > > > > used, like in C++ or .NET, where users
> >> currently
> >> >> > have
> >> >> > > > to
> >> >> > > > > > > make a
> >> >> > > > > > > > > > > manual
> >> >> > > > > > > > > > > > > type
> >> >> > > > > > > > > > > > > > casting
> >> >> > > > > > > > > > > > > > or even just stop using unsigned types when
> >> they
> >> >> > use
> >> >> > > > > > Ignite.
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > Best Regards,
> >> >> > > > > > > > > > > > > > Igor
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 3:06 PM Pavel
> >> Tupitsyn <
> >> >> > > > > > > > > > ptupit...@apache.org
> >> >> > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > Andrey,
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > I think it is much simpler:
> >> >> > > > > > > > > > > > > > > - Add protocol support for those types
> >> >> > (basically,
> >> >> > > > just
> >> >> > > > > > add
> >> >> > > > > > > > > more
> >> >> > > > > > > > > > > type
> >> >> > > > > > > > > > > > > > ids)
> >> >> > > > > > > > > > > > > > > - Treat uLong as long in Java (bitwise
> >> >> > > representation
> >> >> > > > > is
> >> >> > > > > > > the
> >> >> > > > > > > > > > same)
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > ANSI SQL does not have unsigned integers,
> >> so
> >> >> we
> >> >> > can
> >> >> > > > > > simply
> >> >> > > > > > > > say
> >> >> > > > > > > > > > that
> >> >> > > > > > > > > > > > > > > unsigned value relative comparison is not
> >> >> > supported
> >> >> > > > in
> >> >> > > > > > SQL
> >> >> > > > > > > > > > > (equality
> >> >> > > > > > > > > > > > > will
> >> >> > > > > > > > > > > > > > > work).
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 2:40 PM Andrey
> >> >> Mashenkov
> >> >> > <
> >> >> > > > > > > > > > > > > > > andrey.mashen...@gmail.com>
> >> >> > > > > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > Thanks, Pavel and Igor.
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > I like your ideas to have i8 or int8
> >> >> instead of
> >> >> > > > > > Integer.
> >> >> > > > > > > > > > > > > > > > But the naming doesn't address the
> issue.
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > I agree internal types should be
> portable
> >> >> > across
> >> >> > > > > > > different
> >> >> > > > > > > > > > > systems
> >> >> > > > > > > > > > > > > with
> >> >> > > > > > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > > > without unsigned type support.
> >> >> > > > > > > > > > > > > > > > The only issue here is that unsigned
> >> types
> >> >> > cover
> >> >> > > > > > > different
> >> >> > > > > > > > > > > ranges.
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > Let's assume we want to introduce a
> >> uLong.
> >> >> > > > > > > > > > > > > > > > It doesn't look like a big deal to add
> >> uLong
> >> >> > type
> >> >> > > > > > support
> >> >> > > > > > > > at
> >> >> > > > > > > > > > > > storage
> >> >> > > > > > > > > > > > > > > level
> >> >> > > > > > > > > > > > > > > > and fit it to a 8 bytes and then use it
> >> in
> >> >> e.g.
> >> >> > > > .Net
> >> >> > > > > > > only.
> >> >> > > > > > > > > > > > > > > > But how we could support it in e.g.
> Java?
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > Let's keep in mind Long range is about
> >> >> (2^-63
> >> >> > ..
> >> >> > > > > 2^63)
> >> >> > > > > > > and
> >> >> > > > > > > > > > uLong
> >> >> > > > > > > > > > > > > range
> >> >> > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > (0 .. 2^64)
> >> >> > > > > > > > > > > > > > > > 1. The first option is to restrict
> range
> >> to
> >> >> (0
> >> >> > ..
> >> >> > > > > > 2^63).
> >> >> > > > > > > > This
> >> >> > > > > > > > > > > > allows
> >> >> > > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > use
> >> >> > > > > > > > > > > > > > > > signed in e.g.
> >> >> > > > > > > > > > > > > > > > Java with no conversion, but doesn't
> look
> >> >> like
> >> >> > a
> >> >> > > > > 'real'
> >> >> > > > > > > > > > unsigned
> >> >> > > > > > > > > > > > > uLong
> >> >> > > > > > > > > > > > > > > > support. Things go worse when the user
> >> will
> >> >> use
> >> >> > > > > uByte,
> >> >> > > > > > as
> >> >> > > > > > > > > > > > limitation
> >> >> > > > > > > > > > > > > > can
> >> >> > > > > > > > > > > > > > > > make uByte totally unusable.
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > 2. The second one is to map unsigned
> >> types
> >> >> to a
> >> >> > > > type
> >> >> > > > > of
> >> >> > > > > > > > wider
> >> >> > > > > > > > > > > type
> >> >> > > > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > > add
> >> >> > > > > > > > > > > > > > > > a constraint for negative values. E.g.
> >> >> uLong to
> >> >> > > > > > > BigInteger.
> >> >> > > > > > > > > > > > > > > > So, we can't use primitive Java type
> for
> >> >> Long
> >> >> > > here.
> >> >> > > > > > > > However,
> >> >> > > > > > > > > it
> >> >> > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > still
> >> >> > > > > > > > > > > > > > > > possible to store uLong in 8 bytes, but
> >> >> have a
> >> >> > > > > special
> >> >> > > > > > > > > > comparator
> >> >> > > > > > > > > > > > for
> >> >> > > > > > > > > > > > > > > > unsigned types to avoid unwanted
> >> >> > deserialization.
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > WDYT?
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 2:04 PM Pavel
> >> >> Tupitsyn
> >> >> > <
> >> >> > > > > > > > > > > > ptupit...@apache.org
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > Agree, let's get rid of "long, short,
> >> >> byte"
> >> >> > in
> >> >> > > > the
> >> >> > > > > > > > protocol
> >> >> > > > > > > > > > > > > > definition.
> >> >> > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > We can use Rust style, which is
> concise
> >> >> and
> >> >> > > > > > > unambiguous:
> >> >> > > > > > > > > > > > > > > > > i8, u8, i16, u16, etc
> >> >> > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 1:58 PM Igor
> >> >> Sapego <
> >> >> > > > > > > > > > > isap...@apache.org>
> >> >> > > > > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > Pavel,
> >> >> > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > I totally support that. Also, if we
> >> are
> >> >> > > aiming
> >> >> > > > > for
> >> >> > > > > > > > > > > > > > > > > > stronger platform-independance,
> >> >> > > > > > > > > > > > > > > > > > in our schemas we may want to
> support
> >> >> > > > > bit-notation
> >> >> > > > > > > > > (int32,
> >> >> > > > > > > > > > > > > uint64)?
> >> >> > > > > > > > > > > > > > > For
> >> >> > > > > > > > > > > > > > > > > > example
> >> >> > > > > > > > > > > > > > > > > > "long" can mean a different type on
> >> >> > different
> >> >> > > > > > > platforms
> >> >> > > > > > > > > and
> >> >> > > > > > > > > > > > it's
> >> >> > > > > > > > > > > > > > easy
> >> >> > > > > > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > > > > confuse
> >> >> > > > > > > > > > > > > > > > > > them (happens often when using ODBC
> >> for
> >> >> > > > example).
> >> >> > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > Best Regards,
> >> >> > > > > > > > > > > > > > > > > > Igor
> >> >> > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 1:34 PM
> Pavel
> >> >> > > Tupitsyn
> >> >> > > > <
> >> >> > > > > > > > > > > > > > ptupit...@apache.org
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > Igniters,
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > I think we should support
> unsigned
> >> >> data
> >> >> > > > types:
> >> >> > > > > > > > > > > > > > > > > > > uByte, uShort, uInt, uLong
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > Java does not have them, but many
> >> >> other
> >> >> > > > > languages
> >> >> > > > > > > do,
> >> >> > > > > > > > > > > > > > > > > > > and with the growing number of
> thin
> >> >> > clients
> >> >> > > > > this
> >> >> > > > > > is
> >> >> > > > > > > > > > > > important.
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > For example, in current
> Ignite.NET
> >> >> > > > > implementation
> >> >> > > > > > > we
> >> >> > > > > > > > > > store
> >> >> > > > > > > > > > > > > > unsigned
> >> >> > > > > > > > > > > > > > > > > > values
> >> >> > > > > > > > > > > > > > > > > > > as signed internally,
> >> >> > > > > > > > > > > > > > > > > > > but this is a huge pain when it
> >> comes
> >> >> to
> >> >> > > > > > metadata,
> >> >> > > > > > > > > binary
> >> >> > > > > > > > > > > > > > objects,
> >> >> > > > > > > > > > > > > > > > etc.
> >> >> > > > > > > > > > > > > > > > > > > (it is easy to deserialize int as
> >> uint
> >> >> > when
> >> >> > > > you
> >> >> > > > > > > have
> >> >> > > > > > > > a
> >> >> > > > > > > > > > > class,
> >> >> > > > > > > > > > > > > but
> >> >> > > > > > > > > > > > > > > not
> >> >> > > > > > > > > > > > > > > > > > with
> >> >> > > > > > > > > > > > > > > > > > > BinaryObject.GetField)
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > Any objections?
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 12:28 PM
> >> >> Andrey
> >> >> > > > > > Mashenkov <
> >> >> > > > > > > > > > > > > > > > > > > andrey.mashen...@gmail.com>
> wrote:
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > Denis,
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > Good point. Both serializers
> use
> >> >> > > reflection
> >> >> > > > > > API.
> >> >> > > > > > > > > > > > > > > > > > > > However, we will allow users to
> >> >> > configure
> >> >> > > > > > static
> >> >> > > > > > > > > schema
> >> >> > > > > > > > > > > > along
> >> >> > > > > > > > > > > > > > > with
> >> >> > > > > > > > > > > > > > > > > > > 'strict'
> >> >> > > > > > > > > > > > > > > > > > > > schema mode, we still need to
> >> >> validate
> >> >> > > user
> >> >> > > > > > > classes
> >> >> > > > > > > > > on
> >> >> > > > > > > > > > > > client
> >> >> > > > > > > > > > > > > > > nodes
> >> >> > > > > > > > > > > > > > > > > > > against
> >> >> > > > > > > > > > > > > > > > > > > > the latest schema in the grid
> >> and
> >> >> > > > reflection
> >> >> > > > > > API
> >> >> > > > > > > > is
> >> >> > > > > > > > > > the
> >> >> > > > > > > > > > > > only
> >> >> > > > > > > > > > > > > > way
> >> >> > > > > > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > > > do
> >> >> > > > > > > > > > > > > > > > > > > it.
> >> >> > > > > > > > > > > > > > > > > > > > One can find a few articles on
> >> the
> >> >> > > internet
> >> >> > > > > on
> >> >> > > > > > > how
> >> >> > > > > > > > to
> >> >> > > > > > > > > > > > enable
> >> >> > > > > > > > > > > > > > > > > reflection
> >> >> > > > > > > > > > > > > > > > > > > in
> >> >> > > > > > > > > > > > > > > > > > > > GraalVM.
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > I'll create a task for
> supporting
> >> >> > > GraalVM,
> >> >> > > > > and
> >> >> > > > > > > > maybe
> >> >> > > > > > > > > > > > someone
> >> >> > > > > > > > > > > > > > who
> >> >> > > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > > > > > familiar with GraalVM will
> >> suggest a
> >> >> > > > solution
> >> >> > > > > > or
> >> >> > > > > > > a
> >> >> > > > > > > > > > proper
> >> >> > > > > > > > > > > > > > > > workaround.
> >> >> > > > > > > > > > > > > > > > > > Or
> >> >> > > > > > > > > > > > > > > > > > > > I'll do it a bit later.
> >> >> > > > > > > > > > > > > > > > > > > > If no workaround is found, we
> >> could
> >> >> > allow
> >> >> > > > > users
> >> >> > > > > > > to
> >> >> > > > > > > > > > write
> >> >> > > > > > > > > > > > it's
> >> >> > > > > > > > > > > > > > own
> >> >> > > > > > > > > > > > > > > > > > > > serializer, but I don't think
> it
> >> is
> >> >> a
> >> >> > > good
> >> >> > > > > idea
> >> >> > > > > > > to
> >> >> > > > > > > > > > expose
> >> >> > > > > > > > > > > > any
> >> >> > > > > > > > > > > > > > > > > internal
> >> >> > > > > > > > > > > > > > > > > > > > classes to the public.
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > On Tue, Nov 24, 2020 at 2:55 AM
> >> >> Denis
> >> >> > > > Magda <
> >> >> > > > > > > > > > > > > dma...@apache.org
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > Andrey, thanks for the
> update,
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > Does any of the serializers
> >> take
> >> >> into
> >> >> > > > > > > > consideration
> >> >> > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > native-image-generation
> >> feature of
> >> >> > > > GraalVM?
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > >
> >> https://www.graalvm.org/reference-manual/native-image/
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > With the current binary
> >> >> marshaller,
> >> >> > we
> >> >> > > > > can't
> >> >> > > > > > > even
> >> >> > > > > > > > > > > > generate
> >> >> > > > > > > > > > > > > a
> >> >> > > > > > > > > > > > > > > > native
> >> >> > > > > > > > > > > > > > > > > > > image
> >> >> > > > > > > > > > > > > > > > > > > > > for the code using our thin
> >> client
> >> >> > > APIs.
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > -
> >> >> > > > > > > > > > > > > > > > > > > > > Denis
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > On Mon, Nov 23, 2020 at 4:39
> AM
> >> >> > Andrey
> >> >> > > > > > > Mashenkov
> >> >> > > > > > > > <
> >> >> > > > > > > > > > > > > > > > > > > > > andrey.mashen...@gmail.com>
> >> >> > > > > > > > > > > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > Hi Igniters,
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > I'd like to continue
> >> discussion
> >> >> of
> >> >> > > > IEP-54
> >> >> > > > > > > > > > > (Schema-first
> >> >> > > > > > > > > > > > > > > > > approach).
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > Hope everyone who is
> >> interested
> >> >> > had a
> >> >> > > > > > chance
> >> >> > > > > > > to
> >> >> > > > > > > > > get
> >> >> > > > > > > > > > > > > > familiar
> >> >> > > > > > > > > > > > > > > > with
> >> >> > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > proposal [1].
> >> >> > > > > > > > > > > > > > > > > > > > > > Please, do not hesitate to
> >> ask
> >> >> > > > questions
> >> >> > > > > > and
> >> >> > > > > > > > > share
> >> >> > > > > > > > > > > your
> >> >> > > > > > > > > > > > > > > ideas.
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > I've prepared a prototype
> of
> >> >> > > serializer
> >> >> > > > > [2]
> >> >> > > > > > > for
> >> >> > > > > > > > > the
> >> >> > > > > > > > > > > > data
> >> >> > > > > > > > > > > > > > > layout
> >> >> > > > > > > > > > > > > > > > > > > > described
> >> >> > > > > > > > > > > > > > > > > > > > > > in the proposal.
> >> >> > > > > > > > > > > > > > > > > > > > > > In prototy, I compared 2
> >> >> approaches
> >> >> > > to
> >> >> > > > > > > > > > (de)serialize
> >> >> > > > > > > > > > > > > > objects,
> >> >> > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > first
> >> >> > > > > > > > > > > > > > > > > > > > > one
> >> >> > > > > > > > > > > > > > > > > > > > > > uses java reflection/unsafe
> >> API
> >> >> and
> >> >> > > > > similar
> >> >> > > > > > > to
> >> >> > > > > > > > > one
> >> >> > > > > > > > > > we
> >> >> > > > > > > > > > > > > > already
> >> >> > > > > > > > > > > > > > > > use
> >> >> > > > > > > > > > > > > > > > > > in
> >> >> > > > > > > > > > > > > > > > > > > > > Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > > and the second one
> generates
> >> >> > > serializer
> >> >> > > > > for
> >> >> > > > > > > > > > > particular
> >> >> > > > > > > > > > > > > user
> >> >> > > > > > > > > > > > > > > > class
> >> >> > > > > > > > > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > > > > > > > > uses
> >> >> > > > > > > > > > > > > > > > > > > > > > Janino library for
> >> compilation.
> >> >> > > > > > > > > > > > > > > > > > > > > > Second one shows better
> >> results
> >> >> in
> >> >> > > > > > > benchmarks.
> >> >> > > > > > > > > > > > > > > > > > > > > > I think we can go with it
> as
> >> >> > default
> >> >> > > > > > > serializer
> >> >> > > > > > > > > and
> >> >> > > > > > > > > > > > have
> >> >> > > > > > > > > > > > > > > > > > > > reflection-based
> >> >> > > > > > > > > > > > > > > > > > > > > > implementation as a
> fallback
> >> if
> >> >> > > someone
> >> >> > > > > > will
> >> >> > > > > > > > have
> >> >> > > > > > > > > > > > issues
> >> >> > > > > > > > > > > > > > with
> >> >> > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > first
> >> >> > > > > > > > > > > > > > > > > > > > > > one.
> >> >> > > > > > > > > > > > > > > > > > > > > > WDYT?
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > There are a number of tasks
> >> >> under
> >> >> > the
> >> >> > > > > > > umbrella
> >> >> > > > > > > > > > ticket
> >> >> > > > > > > > > > > > [3]
> >> >> > > > > > > > > > > > > > > > waiting
> >> >> > > > > > > > > > > > > > > > > > for
> >> >> > > > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > assignee.
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > BTW, I'm going to create
> more
> >> >> > tickets
> >> >> > > > for
> >> >> > > > > > > > schema
> >> >> > > > > > > > > > > > manager
> >> >> > > > > > > > > > > > > > > modes
> >> >> > > > > > > > > > > > > > > > > > > > > > implementation, but would
> >> like
> >> >> to
> >> >> > > > clarify
> >> >> > > > > > > some
> >> >> > > > > > > > > > > details.
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > I thought schemaManager on
> >> each
> >> >> > node
> >> >> > > > > should
> >> >> > > > > > > > held:
> >> >> > > > > > > > > > > > > > > > > > > > > >   1. Local mapping of
> "schema
> >> >> > > version"
> >> >> > > > > <-->
> >> >> > > > > > > > > > validated
> >> >> > > > > > > > > > > > > local
> >> >> > > > > > > > > > > > > > > > > > key/value
> >> >> > > > > > > > > > > > > > > > > > > > > > classes pair.
> >> >> > > > > > > > > > > > > > > > > > > > > >   2. Cluster-wide schema
> >> changes
> >> >> > > > history.
> >> >> > > > > > > > > > > > > > > > > > > > > > On the client side. Before
> >> any
> >> >> > > > key-value
> >> >> > > > > > API
> >> >> > > > > > > > > > > operation
> >> >> > > > > > > > > > > > we
> >> >> > > > > > > > > > > > > > > > should
> >> >> > > > > > > > > > > > > > > > > > > > > validate a
> >> >> > > > > > > > > > > > > > > > > > > > > > schema for a given
> key-value
> >> >> pair.
> >> >> > > > > > > > > > > > > > > > > > > > > > If there is no
> local-mapping
> >> >> exists
> >> >> > > > for a
> >> >> > > > > > > given
> >> >> > > > > > > > > > > > key-value
> >> >> > > > > > > > > > > > > > > pair
> >> >> > > > > > > > > > > > > > > > or
> >> >> > > > > > > > > > > > > > > > > > if
> >> >> > > > > > > > > > > > > > > > > > > a
> >> >> > > > > > > > > > > > > > > > > > > > > > cluster wide schema has a
> >> more
> >> >> > recent
> >> >> > > > > > version
> >> >> > > > > > > > > then
> >> >> > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > key-value
> >> >> > > > > > > > > > > > > > > > > > pair
> >> >> > > > > > > > > > > > > > > > > > > > > > should be validated against
> >> the
> >> >> > > latest
> >> >> > > > > > > version
> >> >> > > > > > > > > and
> >> >> > > > > > > > > > > > local
> >> >> > > > > > > > > > > > > > > > mapping
> >> >> > > > > > > > > > > > > > > > > > > should
> >> >> > > > > > > > > > > > > > > > > > > > > be
> >> >> > > > > > > > > > > > > > > > > > > > > > updated/actualized.
> >> >> > > > > > > > > > > > > > > > > > > > > > If an object doesn't fit to
> >> the
> >> >> > > latest
> >> >> > > > > > schema
> >> >> > > > > > > > > then
> >> >> > > > > > > > > > it
> >> >> > > > > > > > > > > > > > depends
> >> >> > > > > > > > > > > > > > > > on
> >> >> > > > > > > > > > > > > > > > > > > schema
> >> >> > > > > > > > > > > > > > > > > > > > > > mode: either fail the
> >> operation
> >> >> > > > ('strict'
> >> >> > > > > > > mode)
> >> >> > > > > > > > > or
> >> >> > > > > > > > > > a
> >> >> > > > > > > > > > > > new
> >> >> > > > > > > > > > > > > > > > mapping
> >> >> > > > > > > > > > > > > > > > > > > should
> >> >> > > > > > > > > > > > > > > > > > > > > be
> >> >> > > > > > > > > > > > > > > > > > > > > > created and a new schema
> >> version
> >> >> > > should
> >> >> > > > > be
> >> >> > > > > > > > > > propagated
> >> >> > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > cluster.
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > On the server side we
> usually
> >> >> have
> >> >> > no
> >> >> > > > > > > key-value
> >> >> > > > > > > > > > > classes
> >> >> > > > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > > we
> >> >> > > > > > > > > > > > > > > > > > > operate
> >> >> > > > > > > > > > > > > > > > > > > > > with
> >> >> > > > > > > > > > > > > > > > > > > > > > tuples.
> >> >> > > > > > > > > > > > > > > > > > > > > > As schema change history is
> >> >> > available
> >> >> > > > > and a
> >> >> > > > > > > > tuple
> >> >> > > > > > > > > > has
> >> >> > > > > > > > > > > > > > schema
> >> >> > > > > > > > > > > > > > > > > > version,
> >> >> > > > > > > > > > > > > > > > > > > > > then
> >> >> > > > > > > > > > > > > > > > > > > > > > it is possible to upgrade
> any
> >> >> > > received
> >> >> > > > > > tuple
> >> >> > > > > > > to
> >> >> > > > > > > > > the
> >> >> > > > > > > > > > > > last
> >> >> > > > > > > > > > > > > > > > version
> >> >> > > > > > > > > > > > > > > > > > > > without
> >> >> > > > > > > > > > > > > > > > > > > > > > desialization.
> >> >> > > > > > > > > > > > > > > > > > > > > > Thus we could allow nodes
> to
> >> >> send
> >> >> > > > > key-value
> >> >> > > > > > > > pairs
> >> >> > > > > > > > > > of
> >> >> > > > > > > > > > > > > > previous
> >> >> > > > > > > > > > > > > > > > > > > versions
> >> >> > > > > > > > > > > > > > > > > > > > > (if
> >> >> > > > > > > > > > > > > > > > > > > > > > they didn't receive a
> schema
> >> >> update
> >> >> > > > yet)
> >> >> > > > > > > > without
> >> >> > > > > > > > > > > > > reverting
> >> >> > > > > > > > > > > > > > > > schema
> >> >> > > > > > > > > > > > > > > > > > > > changes
> >> >> > > > > > > > > > > > > > > > > > > > > > made by a node with newer
> >> >> classes.
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > Alex, Val, Ivan did you
> mean
> >> the
> >> >> > > same?
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > [1]
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > >
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > >
> >> >> > > > > > > > >
> >> >> > > > > > > >
> >> >> > > > > > >
> >> >> > > > > >
> >> >> > > > >
> >> >> > > >
> >> >> > >
> >> >> >
> >> >>
> >>
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-54%3A+Schema-first+Approach
> >> >> > > > > > > > > > > > > > > > > > > > > > [2]
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > >
> >> >> > > >
> >> https://github.com/apache/ignite/tree/ignite-13618/modules/commons
> >> >> > > > > > > > > > > > > > > > > > > > > > [3]
> >> >> > > > > > > > > > >
> https://issues.apache.org/jira/browse/IGNITE-13616
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > On Thu, Sep 17, 2020 at
> 9:21
> >> AM
> >> >> > Ivan
> >> >> > > > > > > Pavlukhin
> >> >> > > > > > > > <
> >> >> > > > > > > > > > > > > > > > > > vololo...@gmail.com>
> >> >> > > > > > > > > > > > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > Folks,
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > Please do not ignore
> >> history.
> >> >> We
> >> >> > > had
> >> >> > > > a
> >> >> > > > > > > thread
> >> >> > > > > > > > > [1]
> >> >> > > > > > > > > > > > with
> >> >> > > > > > > > > > > > > > many
> >> >> > > > > > > > > > > > > > > > > > bright
> >> >> > > > > > > > > > > > > > > > > > > > > > > ideas. We can resume it.
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > [1]
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > >
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > >
> >> >> > > > > > > > >
> >> >> > > > > > > >
> >> >> > > > > > >
> >> >> > > > > >
> >> >> > > > >
> >> >> > > >
> >> >> > >
> >> >> >
> >> >>
> >>
> http://apache-ignite-developers.2346864.n4.nabble.com/Applicability-of-term-cache-to-Apache-Ignite-td36541.html
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > 2020-09-10 0:08
> GMT+03:00,
> >> >> Denis
> >> >> > > > Magda
> >> >> > > > > <
> >> >> > > > > > > > > > > > > > dma...@apache.org
> >> >> > > > > > > > > > > > > > > >:
> >> >> > > > > > > > > > > > > > > > > > > > > > > > Val, makes sense,
> thanks
> >> for
> >> >> > > > > > explaining.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > > Agree that we need to
> >> have a
> >> >> > > > separate
> >> >> > > > > > > > > > discussion
> >> >> > > > > > > > > > > > > thread
> >> >> > > > > > > > > > > > > > > for
> >> >> > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > "table"
> >> >> > > > > > > > > > > > > > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > > > > > > > > > > > "cache" terms
> >> substitution.
> >> >> > I'll
> >> >> > > > > > > appreciate
> >> >> > > > > > > > > it
> >> >> > > > > > > > > > if
> >> >> > > > > > > > > > > > you
> >> >> > > > > > > > > > > > > > > start
> >> >> > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > thread
> >> >> > > > > > > > > > > > > > > > > > > > > > > > sharing pointers to any
> >> >> > relevant
> >> >> > > > IEPs
> >> >> > > > > > and
> >> >> > > > > > > > > > > reasoning
> >> >> > > > > > > > > > > > > > > behind
> >> >> > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > suggested
> >> >> > > > > > > > > > > > > > > > > > > > > > > > change.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > > -
> >> >> > > > > > > > > > > > > > > > > > > > > > > > Denis
> >> >> > > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > > On Tue, Sep 8, 2020 at
> >> 6:01
> >> >> PM
> >> >> > > > > Valentin
> >> >> > > > > > > > > > > Kulichenko
> >> >> > > > > > > > > > > > <
> >> >> > > > > > > > > > > > > > > > > > > > > > > >
> >> >> valentin.kuliche...@gmail.com>
> >> >> > > > > wrote:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> Hi Denis,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> I guess the wording in
> >> the
> >> >> IEP
> >> >> > > is
> >> >> > > > a
> >> >> > > > > > > little
> >> >> > > > > > > > > bit
> >> >> > > > > > > > > > > > > > > confusing.
> >> >> > > > > > > > > > > > > > > > > All
> >> >> > > > > > > > > > > > > > > > > > it
> >> >> > > > > > > > > > > > > > > > > > > > > means
> >> >> > > > > > > > > > > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> that you should not
> >> create
> >> >> > > nested
> >> >> > > > > > POJOs,
> >> >> > > > > > > > but
> >> >> > > > > > > > > > > > rather
> >> >> > > > > > > > > > > > > > > inline
> >> >> > > > > > > > > > > > > > > > > > > fields
> >> >> > > > > > > > > > > > > > > > > > > > > > into a
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> single POJO that is
> >> mapped
> >> >> to
> >> >> > a
> >> >> > > > > > > particular
> >> >> > > > > > > > > > > schema.
> >> >> > > > > > > > > > > > > In
> >> >> > > > > > > > > > > > > > > > other
> >> >> > > > > > > > > > > > > > > > > > > words,
> >> >> > > > > > > > > > > > > > > > > > > > > > > nested
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> POJOs are not
> supported.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> Alex, is this correct?
> >> >> Please
> >> >> > > let
> >> >> > > > me
> >> >> > > > > > > know
> >> >> > > > > > > > if
> >> >> > > > > > > > > > I'm
> >> >> > > > > > > > > > > > > > missing
> >> >> > > > > > > > > > > > > > > > > > > > something.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> As for the "cache"
> >> term, I
> >> >> > agree
> >> >> > > > > that
> >> >> > > > > > it
> >> >> > > > > > > > is
> >> >> > > > > > > > > > > > > outdated,
> >> >> > > > > > > > > > > > > > > but
> >> >> > > > > > > > > > > > > > > > > I'm
> >> >> > > > > > > > > > > > > > > > > > > not
> >> >> > > > > > > > > > > > > > > > > > > > > sure
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> what we can replace it
> >> >> with.
> >> >> > > > "Table"
> >> >> > > > > > is
> >> >> > > > > > > > > > tightly
> >> >> > > > > > > > > > > > > > > associated
> >> >> > > > > > > > > > > > > > > > > > with
> >> >> > > > > > > > > > > > > > > > > > > > SQL,
> >> >> > > > > > > > > > > > > > > > > > > > > > but
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> SQL is optional in our
> >> >> case.
> >> >> > Do
> >> >> > > > you
> >> >> > > > > > want
> >> >> > > > > > > > to
> >> >> > > > > > > > > > > > create a
> >> >> > > > > > > > > > > > > > > > > separate
> >> >> > > > > > > > > > > > > > > > > > > > > > discussion
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> about this?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> -Val
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >> On Tue, Sep 8, 2020 at
> >> >> 4:37 PM
> >> >> > > > Denis
> >> >> > > > > > > > Magda <
> >> >> > > > > > > > > > > > > > > > > dma...@apache.org
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Val,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> I've checked the IEP
> >> again
> >> >> > and
> >> >> > > > > have a
> >> >> > > > > > > few
> >> >> > > > > > > > > > > > > questions.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Arbitrary nested
> >> objects
> >> >> and
> >> >> > > > > > > collections
> >> >> > > > > > > > > are
> >> >> > > > > > > > > > > not
> >> >> > > > > > > > > > > > > > > allowed
> >> >> > > > > > > > > > > > > > > > as
> >> >> > > > > > > > > > > > > > > > > > > > column
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> values.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Nested POJOs should
> >> >> either
> >> >> > be
> >> >> > > > > > inlined
> >> >> > > > > > > > > into
> >> >> > > > > > > > > > > > > schema,
> >> >> > > > > > > > > > > > > > or
> >> >> > > > > > > > > > > > > > > > > > stored
> >> >> > > > > > > > > > > > > > > > > > > as
> >> >> > > > > > > > > > > > > > > > > > > > > > BLOBs
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Could you provide a
> DDL
> >> >> code
> >> >> > > > > snippet
> >> >> > > > > > > > > showing
> >> >> > > > > > > > > > > how
> >> >> > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > inlining
> >> >> > > > > > > > > > > > > > > > > > > of
> >> >> > > > > > > > > > > > > > > > > > > > > > POJOs
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> is
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> supposed to work?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Also, we keep using
> the
> >> >> terms
> >> >> > > > > "cache"
> >> >> > > > > > > and
> >> >> > > > > > > > > > > "table"
> >> >> > > > > > > > > > > > > > > > > throughout
> >> >> > > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > IEP.
> >> >> > > > > > > > > > > > > > > > > > > > > > > Is
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> it
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> the right time to
> >> discuss
> >> >> an
> >> >> > > > > > alternate
> >> >> > > > > > > > name
> >> >> > > > > > > > > > > that
> >> >> > > > > > > > > > > > > > would
> >> >> > > > > > > > > > > > > > > > > > replace
> >> >> > > > > > > > > > > > > > > > > > > > > those
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> too?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Personally, the
> "table"
> >> >> > should
> >> >> > > > stay
> >> >> > > > > > and
> >> >> > > > > > > > the
> >> >> > > > > > > > > > > > "cache"
> >> >> > > > > > > > > > > > > > > > should
> >> >> > > > > > > > > > > > > > > > > go
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> considering
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> that SQL is one of
> the
> >> >> > primary
> >> >> > > > APIs
> >> >> > > > > > in
> >> >> > > > > > > > > Ignite
> >> >> > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > that
> >> >> > > > > > > > > > > > > > > > DDL
> >> >> > > > > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > > > > > > > supported
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> out-of-the-box.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> -
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Denis
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> On Mon, Sep 7, 2020
> at
> >> >> 12:26
> >> >> > PM
> >> >> > > > > > > Valentin
> >> >> > > > > > > > > > > > > Kulichenko <
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > valentin.kuliche...@gmail.com>
> >> >> > > > > > wrote:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Ivan,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > I see your point. I
> >> >> agree
> >> >> > > that
> >> >> > > > > with
> >> >> > > > > > > the
> >> >> > > > > > > > > > > > automatic
> >> >> > > > > > > > > > > > > > > > updates
> >> >> > > > > > > > > > > > > > > > > > we
> >> >> > > > > > > > > > > > > > > > > > > > step
> >> >> > > > > > > > > > > > > > > > > > > > > > > into
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > schema-last
> >> territory.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Actually, if we
> >> support
> >> >> > > > automatic
> >> >> > > > > > > > > > evolution,
> >> >> > > > > > > > > > > we
> >> >> > > > > > > > > > > > > can
> >> >> > > > > > > > > > > > > > > as
> >> >> > > > > > > > > > > > > > > > > well
> >> >> > > > > > > > > > > > > > > > > > > > > support
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > creating a cache
> >> without
> >> >> > > schema
> >> >> > > > > and
> >> >> > > > > > > > > > inferring
> >> >> > > > > > > > > > > > it
> >> >> > > > > > > > > > > > > > from
> >> >> > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > first
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > insert.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> In
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > other words, we can
> >> have
> >> >> > both
> >> >> > > > > > > > > > "schema-first"
> >> >> > > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > > > > > > "schema-last"
> >> >> > > > > > > > > > > > > > > > > > > > > > modes.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Alexey, what do you
> >> >> think?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > -Val
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > On Mon, Sep 7, 2020
> >> at
> >> >> 5:59
> >> >> > > AM
> >> >> > > > > > Alexey
> >> >> > > > > > > > > > > > Goncharuk <
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> alexey.goncha...@gmail.com
> >> >> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > wrote:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > Ivan,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > Thank you, I got
> >> your
> >> >> > > concern
> >> >> > > > > > now.
> >> >> > > > > > > As
> >> >> > > > > > > > > it
> >> >> > > > > > > > > > is
> >> >> > > > > > > > > > > > > > mostly
> >> >> > > > > > > > > > > > > > > > > > > regarding
> >> >> > > > > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > terminology, I am
> >> >> > > absolutely
> >> >> > > > > fine
> >> >> > > > > > > > with
> >> >> > > > > > > > > > > > changing
> >> >> > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > name
> >> >> > > > > > > > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > > > > > > > > > whatever
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> fits
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > the approach
> best.
> >> >> > Dynamic
> >> >> > > or
> >> >> > > > > > > > evolving
> >> >> > > > > > > > > > > schema
> >> >> > > > > > > > > > > > > > > sounds
> >> >> > > > > > > > > > > > > > > > > > > great. I
> >> >> > > > > > > > > > > > > > > > > > > > > > will
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> make
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > corresponding
> >> changes
> >> >> to
> >> >> > > the
> >> >> > > > > IEP
> >> >> > > > > > > once
> >> >> > > > > > > > > we
> >> >> > > > > > > > > > > > settle
> >> >> > > > > > > > > > > > > > on
> >> >> > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > name.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > пн, 7 сент. 2020
> >> г. в
> >> >> > > 11:33,
> >> >> > > > > Ivan
> >> >> > > > > > > > > > > Pavlukhin <
> >> >> > > > > > > > > > > > > > > > > > > > > vololo...@gmail.com
> >> >> > > > > > > > > > > > > > > > > > > > > > >:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > Hi Val,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > Thank you for
> >> your
> >> >> > > answer!
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > My
> understanding
> >> is
> >> >> a
> >> >> > > > little
> >> >> > > > > > bit
> >> >> > > > > > > > > > > different.
> >> >> > > > > > > > > > > > > > Yes,
> >> >> > > > > > > > > > > > > > > > > schema
> >> >> > > > > > > > > > > > > > > > > > > > > > evolution
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > definitely
> >> should be
> >> >> > > > > possible.
> >> >> > > > > > > But
> >> >> > > > > > > > I
> >> >> > > > > > > > > > see
> >> >> > > > > > > > > > > a
> >> >> > > > > > > > > > > > > main
> >> >> > > > > > > > > > > > > > > > > > > difference
> >> >> > > > > > > > > > > > > > > > > > > > in
> >> >> > > > > > > > > > > > > > > > > > > > > > > "how
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > schema is
> >> updated".
> >> >> I
> >> >> > > > treat a
> >> >> > > > > > > > common
> >> >> > > > > > > > > > SQL
> >> >> > > > > > > > > > > > > > approach
> >> >> > > > > > > > > > > > > > > > > > > > > schema-first.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Schema
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > and data
> >> >> manipulation
> >> >> > > > > > operations
> >> >> > > > > > > > are
> >> >> > > > > > > > > > > > clearly
> >> >> > > > > > > > > > > > > > > > > separated
> >> >> > > > > > > > > > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > > > > > > > it
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> enables
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > interesting
> >> >> > capabilities,
> >> >> > > > > e.g.
> >> >> > > > > > > > > > preventing
> >> >> > > > > > > > > > > > > > > untended
> >> >> > > > > > > > > > > > > > > > > > schema
> >> >> > > > > > > > > > > > > > > > > > > > > > changes
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > by
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > mistaken data
> >> >> > operations,
> >> >> > > > > > > > restricting
> >> >> > > > > > > > > > > user
> >> >> > > > > > > > > > > > > > > > > permissions
> >> >> > > > > > > > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > > > > > > > > change
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > schema.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > Schema-first
> >> means
> >> >> > that
> >> >> > > > > > schema
> >> >> > > > > > > > > exists
> >> >> > > > > > > > > > > in
> >> >> > > > > > > > > > > > > > > advance
> >> >> > > > > > > > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > > > > > > all
> >> >> > > > > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> stored
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > data
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > is compliant
> with
> >> >> it -
> >> >> > > > that's
> >> >> > > > > > > > exactly
> >> >> > > > > > > > > > > what
> >> >> > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > > proposed.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > A schema-last
> >> >> approach
> >> >> > > > > > mentioned
> >> >> > > > > > > in
> >> >> > > > > > > > > [1]
> >> >> > > > > > > > > > > > also
> >> >> > > > > > > > > > > > > > > > assumes
> >> >> > > > > > > > > > > > > > > > > > that
> >> >> > > > > > > > > > > > > > > > > > > > > > schema
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > exists, but it
> is
> >> >> > > inferred
> >> >> > > > > from
> >> >> > > > > > > > data.
> >> >> > > > > > > > > > Is
> >> >> > > > > > > > > > > > not
> >> >> > > > > > > > > > > > > it
> >> >> > > > > > > > > > > > > > > > more
> >> >> > > > > > > > > > > > > > > > > > > > similar
> >> >> > > > > > > > > > > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > proposing
> >> approach?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > And I would
> like
> >> to
> >> >> > say,
> >> >> > > > that
> >> >> > > > > > my
> >> >> > > > > > > > main
> >> >> > > > > > > > > > > > concern
> >> >> > > > > > > > > > > > > > so
> >> >> > > > > > > > > > > > > > > > far
> >> >> > > > > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > > > > > > mostly
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > about
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > terminology.
> And
> >> I
> >> >> > > suppose
> >> >> > > > if
> >> >> > > > > > it
> >> >> > > > > > > > > > confuses
> >> >> > > > > > > > > > > > me
> >> >> > > > > > > > > > > > > > then
> >> >> > > > > > > > > > > > > > > > > > others
> >> >> > > > > > > > > > > > > > > > > > > > > might
> >> >> > > > > > > > > > > > > > > > > > > > > > be
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > confused as
> >> well. My
> >> >> > > > feeling
> >> >> > > > > is
> >> >> > > > > > > > > closer
> >> >> > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > "dynamic
> >> >> > > > > > > > > > > > > > > > or
> >> >> > > > > > > > > > > > > > > > > > > > liquid
> >> >> > > > > > > > > > > > > > > > > > > > > or
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > may
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> be
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > evolving
> schema".
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > [1]
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > >
> >> >> > > > > > > > >
> >> >> > > > > > >
> >> >> > > > >
> >> >> > >
> >> >>
> >> https://people.cs.umass.edu/~yanlei/courses/CS691LL-f06/papers/SH05.pdf
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > 2020-09-07 0:47
> >> >> > > GMT+03:00,
> >> >> > > > > > > Valentin
> >> >> > > > > > > > > > > > > Kulichenko
> >> >> > > > > > > > > > > > > > <
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > valentin.kuliche...@gmail.com
> >> >> > > > > > >:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > Hi Ivan,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > I don't see
> an
> >> >> issue
> >> >> > > with
> >> >> > > > > > that.
> >> >> > > > > > > > > > > > > Schema-first
> >> >> > > > > > > > > > > > > > > > means
> >> >> > > > > > > > > > > > > > > > > > that
> >> >> > > > > > > > > > > > > > > > > > > > > > schema
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> exists
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > in
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > advance and
> all
> >> >> the
> >> >> > > > stored
> >> >> > > > > > data
> >> >> > > > > > > > is
> >> >> > > > > > > > > > > > > compliant
> >> >> > > > > > > > > > > > > > > with
> >> >> > > > > > > > > > > > > > > > > it
> >> >> > > > > > > > > > > > > > > > > > -
> >> >> > > > > > > > > > > > > > > > > > > > > that's
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> exactly
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > what
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > is proposed.
> >> There
> >> >> > are
> >> >> > > no
> >> >> > > > > > > > > > restrictions
> >> >> > > > > > > > > > > > > > > > prohibiting
> >> >> > > > > > > > > > > > > > > > > > > > changes
> >> >> > > > > > > > > > > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > schema.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > -Val
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > > On Sat, Sep
> 5,
> >> >> 2020
> >> >> > at
> >> >> > > > 9:52
> >> >> > > > > > PM
> >> >> > > > > > > > Ivan
> >> >> > > > > > > > > > > > > > Pavlukhin <
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> vololo...@gmail.com>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > wrote:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> Alexey,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> I am a
> little
> >> bit
> >> >> > > > confused
> >> >> > > > > > > with
> >> >> > > > > > > > > > > > > terminology.
> >> >> > > > > > > > > > > > > > > My
> >> >> > > > > > > > > > > > > > > > > > > > > > understanding
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > conforms
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> to a survey
> >> [1]
> >> >> (see
> >> >> > > > part
> >> >> > > > > X
> >> >> > > > > > > Semi
> >> >> > > > > > > > > > > > > Structured
> >> >> > > > > > > > > > > > > > > > Data).
> >> >> > > > > > > > > > > > > > > > > > Can
> >> >> > > > > > > > > > > > > > > > > > > > we
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> really
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > treat
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> a "dynamic
> >> >> schema"
> >> >> > > > > approach
> >> >> > > > > > > as a
> >> >> > > > > > > > > > kind
> >> >> > > > > > > > > > > of
> >> >> > > > > > > > > > > > > > > > > > > "schema-first"?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> [1]
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > >
> >> >> > > > > > > > >
> >> >> > > > > > >
> >> >> > > > >
> >> >> > >
> >> >>
> >> https://people.cs.umass.edu/~yanlei/courses/CS691LL-f06/papers/SH05.pdf
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> 2020-09-02
> >> 1:53
> >> >> > > > GMT+03:00,
> >> >> > > > > > > Denis
> >> >> > > > > > > > > > > Magda <
> >> >> > > > > > > > > > > > > > > > > > > > dma...@apache.org
> >> >> > > > > > > > > > > > > > > > > > > > > >:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> However,
> >> could
> >> >> > you
> >> >> > > > > please
> >> >> > > > > > > > > > elaborate
> >> >> > > > > > > > > > > > on
> >> >> > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > relation
> >> >> > > > > > > > > > > > > > > > > > > > > > between
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > and
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> ORM?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Is there
> a
> >> use
> >> >> > case
> >> >> > > > for
> >> >> > > > > > > > > Hibernate
> >> >> > > > > > > > > > > > > running
> >> >> > > > > > > > > > > > > > > on
> >> >> > > > > > > > > > > > > > > > > top
> >> >> > > > > > > > > > > > > > > > > > of
> >> >> > > > > > > > > > > > > > > > > > > > > > Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> (I
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > haven't
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> seen
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> one so
> >> far)?
> >> >> If
> >> >> > so,
> >> >> > > > > what
> >> >> > > > > > is
> >> >> > > > > > > > > > missing
> >> >> > > > > > > > > > > > > > exactly
> >> >> > > > > > > > > > > > > > > > on
> >> >> > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> side to
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> support
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> this? In
> my
> >> >> > > > > > understanding,
> >> >> > > > > > > > all
> >> >> > > > > > > > > > you
> >> >> > > > > > > > > > > > need
> >> >> > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > SQL
> >> >> > > > > > > > > > > > > > > > > > API
> >> >> > > > > > > > > > > > > > > > > > > > > which
> >> >> > > > > > > > > > > > > > > > > > > > > > we
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > already
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> have.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Am I
> >> missing
> >> >> > > > something?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > Good
> point,
> >> >> yes,
> >> >> > if
> >> >> > > > all
> >> >> > > > > > the
> >> >> > > > > > > > ORM
> >> >> > > > > > > > > > > > > > integrations
> >> >> > > > > > > > > > > > > > > > use
> >> >> > > > > > > > > > > > > > > > > > > > Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > > SQL
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> APIs
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> internally,
> >> >> then
> >> >> > > they
> >> >> > > > > can
> >> >> > > > > > > > easily
> >> >> > > > > > > > > > > > > translate
> >> >> > > > > > > > > > > > > > > an
> >> >> > > > > > > > > > > > > > > > > > Entity
> >> >> > > > > > > > > > > > > > > > > > > > > > object
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> into
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > an
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> INSERT/UPDATE
> >> >> > > > statement
> >> >> > > > > > that
> >> >> > > > > > > > > lists
> >> >> > > > > > > > > > > all
> >> >> > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > object's
> >> >> > > > > > > > > > > > > > > > > > > > > > fields.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Luckily,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > our
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > Spring
> Data
> >> >> > > > integration
> >> >> > > > > is
> >> >> > > > > > > > > already
> >> >> > > > > > > > > > > > based
> >> >> > > > > > > > > > > > > > on
> >> >> > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > SQL
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > APIs
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > and
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > needs
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > to be
> >> improved
> >> >> > once
> >> >> > > > the
> >> >> > > > > > > > > > schema-first
> >> >> > > > > > > > > > > > > > > approach
> >> >> > > > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > > > > > > > supported.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> That
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > would
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > solve a
> ton
> >> of
> >> >> > > > usability
> >> >> > > > > > > > issues.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > I would
> >> revise
> >> >> the
> >> >> > > > > > Hibernate
> >> >> > > > > > > > > > > > integration
> >> >> > > > > > > > > > > > > > as
> >> >> > > > > > > > > > > > > > > > well
> >> >> > > > > > > > > > > > > > > > > > > > during
> >> >> > > > > > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > 3.0
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> dev
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > phase.
> Can't
> >> >> say
> >> >> > if
> >> >> > > > it's
> >> >> > > > > > > used
> >> >> > > > > > > > a
> >> >> > > > > > > > > > lot
> >> >> > > > > > > > > > > > but
> >> >> > > > > > > > > > > > > > > Spring
> >> >> > > > > > > > > > > > > > > > > > Data
> >> >> > > > > > > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > getting
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > traction
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> for
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > sure.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > @Michael
> >> >> Pollind,
> >> >> > > I'll
> >> >> > > > > > loop
> >> >> > > > > > > > you
> >> >> > > > > > > > > in
> >> >> > > > > > > > > > > as
> >> >> > > > > > > > > > > > > long
> >> >> > > > > > > > > > > > > > > as
> >> >> > > > > > > > > > > > > > > > > > you've
> >> >> > > > > > > > > > > > > > > > > > > > > > started
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > working
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > on
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > Ignite
> >> support
> >> >> for
> >> >> > > > > > Micornaut
> >> >> > > > > > > > > Data
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > <
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > >
> >> >> > > > > >
> >> >> https://micronaut-projects.github.io/micronaut-data/latest/guide/>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > and
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > came
> across
> >> >> some
> >> >> > > > > > challenges.
> >> >> > > > > > > > > Just
> >> >> > > > > > > > > > > > watch
> >> >> > > > > > > > > > > > > > this
> >> >> > > > > > > > > > > > > > > > > > > > discussion.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > That's
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > what
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > is
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > coming in
> >> >> Ignite
> >> >> > > 3.0.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > -
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > Denis
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> > On Mon,
> Aug
> >> 31,
> >> >> > 2020
> >> >> > > > at
> >> >> > > > > > 5:11
> >> >> > > > > > > > PM
> >> >> > > > > > > > > > > > Valentin
> >> >> > > > > > > > > > > > > > > > > > Kulichenko
> >> >> > > > > > > > > > > > > > > > > > > <
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > valentin.kuliche...@gmail.com
> >> >> > > > > > > > >
> >> >> > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Hi Denis,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Generally
> >> >> > > speaking, I
> >> >> > > > > > > believe
> >> >> > > > > > > > > > that
> >> >> > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > schema-first
> >> >> > > > > > > > > > > > > > > > > > > > > > > approach
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > natively
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> addresses
> >> the
> >> >> > issue
> >> >> > > > if
> >> >> > > > > > > > > duplicate
> >> >> > > > > > > > > > > > fields
> >> >> > > > > > > > > > > > > > in
> >> >> > > > > > > > > > > > > > > > key
> >> >> > > > > > > > > > > > > > > > > > and
> >> >> > > > > > > > > > > > > > > > > > > > > value
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> objects,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> because
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> schema
> >> will be
> >> >> > > > created
> >> >> > > > > > for
> >> >> > > > > > > a
> >> >> > > > > > > > > > cache,
> >> >> > > > > > > > > > > > not
> >> >> > > > > > > > > > > > > > for
> >> >> > > > > > > > > > > > > > > > an
> >> >> > > > > > > > > > > > > > > > > > > > object,
> >> >> > > > > > > > > > > > > > > > > > > > > as
> >> >> > > > > > > > > > > > > > > > > > > > > > > it
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > happens
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> now.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >>
> Basically,
> >> the
> >> >> > > schema
> >> >> > > > > > will
> >> >> > > > > > > > > define
> >> >> > > > > > > > > > > > > whether
> >> >> > > > > > > > > > > > > > > > there
> >> >> > > > > > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > > > > a
> >> >> > > > > > > > > > > > > > > > > > > > > > > primary
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> key
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > or
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> not,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> and which
> >> >> fields
> >> >> > > are
> >> >> > > > > > > included
> >> >> > > > > > > > > in
> >> >> > > > > > > > > > > case
> >> >> > > > > > > > > > > > > > there
> >> >> > > > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > > > one.
> >> >> > > > > > > > > > > > > > > > > > > > Any
> >> >> > > > > > > > > > > > > > > > > > > > > > API
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> that
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > we
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> would
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> have must
> >> be
> >> >> > > > compliant
> >> >> > > > > > with
> >> >> > > > > > > > > this,
> >> >> > > > > > > > > > > so
> >> >> > > > > > > > > > > > it
> >> >> > > > > > > > > > > > > > > > becomes
> >> >> > > > > > > > > > > > > > > > > > > > fairly
> >> >> > > > > > > > > > > > > > > > > > > > > > easy
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> to
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > work
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> with
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> data as
> >> with a
> >> >> > set
> >> >> > > of
> >> >> > > > > > > > records,
> >> >> > > > > > > > > > > rather
> >> >> > > > > > > > > > > > > > than
> >> >> > > > > > > > > > > > > > > > > > > key-value
> >> >> > > > > > > > > > > > > > > > > > > > > > pairs.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> However,
> >> could
> >> >> > you
> >> >> > > > > please
> >> >> > > > > > > > > > elaborate
> >> >> > > > > > > > > > > > on
> >> >> > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > relation
> >> >> > > > > > > > > > > > > > > > > > > > > > between
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > and
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> ORM?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Is there
> a
> >> use
> >> >> > case
> >> >> > > > for
> >> >> > > > > > > > > Hibernate
> >> >> > > > > > > > > > > > > running
> >> >> > > > > > > > > > > > > > > on
> >> >> > > > > > > > > > > > > > > > > top
> >> >> > > > > > > > > > > > > > > > > > of
> >> >> > > > > > > > > > > > > > > > > > > > > > Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> (I
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > haven't
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> seen
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> one so
> >> far)?
> >> >> If
> >> >> > so,
> >> >> > > > > what
> >> >> > > > > > is
> >> >> > > > > > > > > > missing
> >> >> > > > > > > > > > > > > > exactly
> >> >> > > > > > > > > > > > > > > > on
> >> >> > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> side to
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> support
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> this? In
> my
> >> >> > > > > > understanding,
> >> >> > > > > > > > all
> >> >> > > > > > > > > > you
> >> >> > > > > > > > > > > > need
> >> >> > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > SQL
> >> >> > > > > > > > > > > > > > > > > > API
> >> >> > > > > > > > > > > > > > > > > > > > > which
> >> >> > > > > > > > > > > > > > > > > > > > > > we
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > already
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> have.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> Am I
> >> missing
> >> >> > > > something?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> -Val
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> On Mon,
> Aug
> >> >> 31,
> >> >> > > 2020
> >> >> > > > at
> >> >> > > > > > > 2:08
> >> >> > > > > > > > PM
> >> >> > > > > > > > > > > Denis
> >> >> > > > > > > > > > > > > > > Magda <
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> dma...@apache.org>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > wrote:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > Val,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > I would
> >> >> propose
> >> >> > > > > adding
> >> >> > > > > > > > > another
> >> >> > > > > > > > > > > > point
> >> >> > > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > motivations
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > list
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > which
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > is
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > related
> >> to
> >> >> the
> >> >> > > ORM
> >> >> > > > > > > > frameworks
> >> >> > > > > > > > > > > such
> >> >> > > > > > > > > > > > as
> >> >> > > > > > > > > > > > > > > > Spring
> >> >> > > > > > > > > > > > > > > > > > > Data,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> Hibernate,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> Micronaut
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> and
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > many
> >> others.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> Presently,
> >> >> the
> >> >> > > > > storage
> >> >> > > > > > > > engine
> >> >> > > > > > > > > > > > > requires
> >> >> > > > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > > > > > > distinguish
> >> >> > > > > > > > > > > > > > > > > > > > > > key
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > objects
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > from
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > value
> >> ones
> >> >> that
> >> >> > > > > > > complicate
> >> >> > > > > > > > > the
> >> >> > > > > > > > > > > > usage
> >> >> > > > > > > > > > > > > of
> >> >> > > > > > > > > > > > > > > > > Ignite
> >> >> > > > > > > > > > > > > > > > > > > with
> >> >> > > > > > > > > > > > > > > > > > > > > > those
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> ORM
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> frameworks
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> (especially
> >> >> if
> >> >> > a
> >> >> > > > key
> >> >> > > > > > > object
> >> >> > > > > > > > > > > > comprises
> >> >> > > > > > > > > > > > > > > > several
> >> >> > > > > > > > > > > > > > > > > > > > > fields).
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > More
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> on
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > this
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> can
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> be
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > found
> >> here:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > >
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > >
> >> >> > > > > > > > >
> >> >> > > > > > > >
> >> >> > > > > > >
> >> >> > > > > >
> >> >> > > > >
> >> >> > > >
> >> >> > >
> >> >> >
> >> >>
> >>
> http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Key-and-Value-fields-with-same-name-and-SQL-DML-td47557.html
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > It will
> >> be
> >> >> nice
> >> >> > > if
> >> >> > > > > the
> >> >> > > > > > > new
> >> >> > > > > > > > > > > > > schema-first
> >> >> > > > > > > > > > > > > > > > > > approach
> >> >> > > > > > > > > > > > > > > > > > > > > allows
> >> >> > > > > > > > > > > > > > > > > > > > > > > us
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> to
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > work
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> with
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > a
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > single
> >> >> entity
> >> >> > > > object
> >> >> > > > > > when
> >> >> > > > > > > > it
> >> >> > > > > > > > > > > comes
> >> >> > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > ORMs.
> >> >> > > > > > > > > > > > > > > > > > > > With
> >> >> > > > > > > > > > > > > > > > > > > > > no
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> need to
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > split
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > entity
> >> into
> >> >> a
> >> >> > key
> >> >> > > > and
> >> >> > > > > > > > value.
> >> >> > > > > > > > > > Just
> >> >> > > > > > > > > > > > > want
> >> >> > > > > > > > > > > > > > to
> >> >> > > > > > > > > > > > > > > > be
> >> >> > > > > > > > > > > > > > > > > > sure
> >> >> > > > > > > > > > > > > > > > > > > > > that
> >> >> > > > > > > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > Ignite
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > 3.0
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > has
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > all the
> >> >> > essential
> >> >> > > > > > public
> >> >> > > > > > > > APIs
> >> >> > > > > > > > > > > that
> >> >> > > > > > > > > > > > > > would
> >> >> > > > > > > > > > > > > > > > > > support
> >> >> > > > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > single-entity
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > based
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> approach.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > What do
> >> you
> >> >> > > think?
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > -
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > Denis
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > On Fri,
> >> Aug
> >> >> 28,
> >> >> > > > 2020
> >> >> > > > > at
> >> >> > > > > > > > 3:50
> >> >> > > > > > > > > PM
> >> >> > > > > > > > > > > > > > Valentin
> >> >> > > > > > > > > > > > > > > > > > > > Kulichenko <
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > valentin.kuliche...@gmail.com>
> >> >> > > > > > > > > > > > > wrote:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> >> Igniters,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > One
> of
> >> the
> >> >> > big
> >> >> > > > > > changes
> >> >> > > > > > > > > > proposed
> >> >> > > > > > > > > > > > for
> >> >> > > > > > > > > > > > > > > > Ignite
> >> >> > > > > > > > > > > > > > > > > > 3.0
> >> >> > > > > > > > > > > > > > > > > > > is
> >> >> > > > > > > > > > > > > > > > > > > > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > so-called
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> >> >> "schema-first
> >> >> > > > > > > approach".
> >> >> > > > > > > > To
> >> >> > > > > > > > > > add
> >> >> > > > > > > > > > > > > more
> >> >> > > > > > > > > > > > > > > > > clarity,
> >> >> > > > > > > > > > > > > > > > > > > > I've
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> started
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > writing
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > the
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > IEP
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > for
> >> this
> >> >> > > change:
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > >
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > >
> >> >> > > > > > > > >
> >> >> > > > > > > >
> >> >> > > > > > >
> >> >> > > > > >
> >> >> > > > >
> >> >> > > >
> >> >> > >
> >> >> >
> >> >>
> >>
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-54%3A+Schema-first+Approach
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> Please
> >> >> take a
> >> >> > > > look
> >> >> > > > > > and
> >> >> > > > > > > > let
> >> >> > > > > > > > > me
> >> >> > > > > > > > > > > > know
> >> >> > > > > > > > > > > > > if
> >> >> > > > > > > > > > > > > > > > there
> >> >> > > > > > > > > > > > > > > > > > are
> >> >> > > > > > > > > > > > > > > > > > > > any
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> immediate
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> >> thoughts,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> >> >> suggestions,
> >> >> > or
> >> >> > > > > > > > objections.
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > > -Val
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> --
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> Best
> regards,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >> Ivan
> Pavlukhin
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > --
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > Best regards,
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > > Ivan Pavlukhin
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>> >
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >>
> >> >> > > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > --
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > > Best regards,
> >> >> > > > > > > > > > > > > > > > > > > > > > > Ivan Pavlukhin
> >> >> > > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > > > --
> >> >> > > > > > > > > > > > > > > > > > > > > > Best regards,
> >> >> > > > > > > > > > > > > > > > > > > > > > Andrey V. Mashenkov
> >> >> > > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > > > --
> >> >> > > > > > > > > > > > > > > > > > > > Best regards,
> >> >> > > > > > > > > > > > > > > > > > > > Andrey V. Mashenkov
> >> >> > > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > > > --
> >> >> > > > > > > > > > > > > > > > Best regards,
> >> >> > > > > > > > > > > > > > > > Andrey V. Mashenkov
> >> >> > > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > >
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > > > --
> >> >> > > > > > > > > > > > > Best regards,
> >> >> > > > > > > > > > > > > Andrey V. Mashenkov
> >> >> > > > > > > > > > > > >
> >> >> > > > > > > > > > > >
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > > > --
> >> >> > > > > > > > > > > Best regards,
> >> >> > > > > > > > > > > Andrey V. Mashenkov
> >> >> > > > > > > > > > >
> >> >> > > > > > > > > >
> >> >> > > > > > > > >
> >> >> > > > > > > > >
> >> >> > > > > > > > > --
> >> >> > > > > > > > > Best regards,
> >> >> > > > > > > > > Andrey V. Mashenkov
> >> >> > > > > > > > >
> >> >> > > > > > > >
> >> >> > > > > > >
> >> >> > > > > >
> >> >> > > > >
> >> >> > > > >
> >> >> > > > > --
> >> >> > > > > Живи с улыбкой! :D
> >> >> > > > >
> >> >> > > >
> >> >> > > >
> >> >> > > > --
> >> >> > > > Best regards,
> >> >> > > > Andrey V. Mashenkov
> >> >> > > >
> >> >> > >
> >> >> >
> >> >>
> >> >
> >>
> >
> >
> > --
> > Best regards,
> > Andrey V. Mashenkov
> >
>
>
> --
> Best regards,
> Andrey V. Mashenkov
>

Reply via email to