[
https://issues.apache.org/jira/browse/IGNITE-15341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andrey Mashenkov updated IGNITE-15341:
--------------------------------------
Description:
1. `IgniteTables.getOrCreateTable` method accepts table configuration as an
argument.
However, it is not clear if there is a guarantee the returned table will have
the configuration equals to the provided one.
Actually, the method creates a table if it does not exist, otherwise returns
existed table instance.
Let's rename it to `createTableIfNotExists` to be consistent with the current
behavior.
2. SchemaTable class name looks incorrect.
Let's rename it to TableDefinition and rename other schema classes to make them
consistent with the "Definition" suffix.
3. PrimaryIndex is not an index in SQL standard. Actually, it is a constraint,
and the index on primary columns is optional.
In the general case, a primary index must not be sorted-index and can be e.g.
hash-index. We already have a mandatory hash-index on primary columns.
Let's remove PK from indices and introduce PK constraint. Thus, a user must
create a sorted index manually if needed.
Maybe later, we will add a shortcut or some property in the configuration for
automatic index creation.
was:
1. `IgniteTables.getOrCreateTable` method accepts table configuration as an
argument.
However, it is not clear if there is a guarantee the returned table will have
the configuration equals to the provided one.
Actually, the method creates a table if it does not exist, otherwise returns
existed table instance.
Let's rename it to `createTableIfNotExists` to be consistent with the current
behavior.
2. SchemaTable class name looks incorrect.
Let's rename it to TableDefinition and rename other schema classes to make them
consistent with the "Definition" suffix.
3. PrimaryIndex is not an index in SQL standard. Actually, it is a constraint,
and the index on primary columns is optional.
In the general case, a primary index must not be sorted-index and can be e.g.
hash-index. We already have a mandatory hash-index on primary columns.
Let's remove PK from indices and introduce PK constraint. Thus, a user must
create a sorted index manually if needed.
Maybe later, we will add a shortcut or some property in the configuration for
this.
> Table API refactoring.
> ----------------------
>
> Key: IGNITE-15341
> URL: https://issues.apache.org/jira/browse/IGNITE-15341
> Project: Ignite
> Issue Type: Improvement
> Reporter: Andrey Mashenkov
> Assignee: Andrey Mashenkov
> Priority: Major
> Labels: UX, ignite-3
> Fix For: 3.0.0-alpha3
>
>
> 1. `IgniteTables.getOrCreateTable` method accepts table configuration as an
> argument.
> However, it is not clear if there is a guarantee the returned table will have
> the configuration equals to the provided one.
>
> Actually, the method creates a table if it does not exist, otherwise returns
> existed table instance.
> Let's rename it to `createTableIfNotExists` to be consistent with the current
> behavior.
> 2. SchemaTable class name looks incorrect.
> Let's rename it to TableDefinition and rename other schema classes to make
> them consistent with the "Definition" suffix.
> 3. PrimaryIndex is not an index in SQL standard. Actually, it is a
> constraint, and the index on primary columns is optional.
> In the general case, a primary index must not be sorted-index and can be e.g.
> hash-index. We already have a mandatory hash-index on primary columns.
> Let's remove PK from indices and introduce PK constraint. Thus, a user must
> create a sorted index manually if needed.
> Maybe later, we will add a shortcut or some property in the configuration for
> automatic index creation.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)