Re: [DISCUSSION] IEP-123: ORM API (Create tables from Java classes) Ignite3

2024-05-23 Thread Vadim Kolodin
Greetings,

1. Both key and value can be annotated with @Table, key will be processed
first. Everything will be added to the resulting query.
2. Perhaps just need to rewrite an example to eliminate confusion.
Effectively, there is no restriction on how to compose pojo, as it will be
converted to a sql.
3. Planned rework api, including id/column ordering in IGNITE-22272

On Fri, May 17, 2024 at 1:05 PM Andrey Mashenkov 
wrote:

> HI,
> I have a few questions.
>
> Assume, a user creates table via key-value annotated classes:
> ignite.catalog().create(PojoKey.class, PojoValue.class).execute();
>
> 1. What is the difference between having @Table annotation on the
> key class or on the value class?
> When both classes are annotated, which one will have a priority or this
> will cause an error?
>
> 2. Why do colocation columns belong to a value? They must be a part of the
> key.
>
> 3. @Column and @Id annotations do not allow column order. This affects both
> key-value api and record api approaches.
> 3.1 SQL standard says that columns are ordered and the order is like was
> defined in the CREATE TABLE clause.
> It is a minor issue when we talk about value @columns, and we may have any
> "default" order.
> 3.2 But for keys of multiple columns that means the colocation columns
> order is undefined.
> This forces developers to use either order-independent hash function (e.g.
> XOR-like) for hash index and sort columns somehow for sorted index.
> Was it done intentionally and you are ok with such limitations or should
> there be parity with builders API?
>
>
> On Thu, May 16, 2024 at 10:41 AM Mikhail Pochatkin <
> m.a.pochat...@gmail.com>
> wrote:
>
> > Igniters,
> >
> > Please review the proposal [1] and let me know what you think
> >
> > [1]  IEP-123: ORM API (Create tables from Java classes) - Apache Ignite -
> > Apache Software Foundation
> > <
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=307136999
> > >
> >
>
>
> --
> Best regards,
> Andrey V. Mashenkov
>


Re: [DISCUSSION] IEP-123: ORM API (Create tables from Java classes) Ignite3

2024-05-17 Thread Andrey Mashenkov
HI,
I have a few questions.

Assume, a user creates table via key-value annotated classes:
ignite.catalog().create(PojoKey.class, PojoValue.class).execute();

1. What is the difference between having @Table annotation on the
key class or on the value class?
When both classes are annotated, which one will have a priority or this
will cause an error?

2. Why do colocation columns belong to a value? They must be a part of the
key.

3. @Column and @Id annotations do not allow column order. This affects both
key-value api and record api approaches.
3.1 SQL standard says that columns are ordered and the order is like was
defined in the CREATE TABLE clause.
It is a minor issue when we talk about value @columns, and we may have any
"default" order.
3.2 But for keys of multiple columns that means the colocation columns
order is undefined.
This forces developers to use either order-independent hash function (e.g.
XOR-like) for hash index and sort columns somehow for sorted index.
Was it done intentionally and you are ok with such limitations or should
there be parity with builders API?


On Thu, May 16, 2024 at 10:41 AM Mikhail Pochatkin 
wrote:

> Igniters,
>
> Please review the proposal [1] and let me know what you think
>
> [1]  IEP-123: ORM API (Create tables from Java classes) - Apache Ignite -
> Apache Software Foundation
> <
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=307136999
> >
>


-- 
Best regards,
Andrey V. Mashenkov


[DISCUSSION] IEP-123: ORM API (Create tables from Java classes) Ignite3

2024-05-16 Thread Mikhail Pochatkin
Igniters,

Please review the proposal [1] and let me know what you think

[1]  IEP-123: ORM API (Create tables from Java classes) - Apache Ignite -
Apache Software Foundation