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