[
https://issues.apache.org/jira/browse/IGNITE-14029?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17269338#comment-17269338
]
Semyon Danilov commented on IGNITE-14029:
-----------------------------------------
Hello, [~lukas.eder]! Thanks for raising this issue, it surely looks like a
bug. Ignite doesn't allow tables with a primary key only for a reason: Ignite
enforces `javax.cache.Cache#put` contract, so the entry must not be null. On
the other hand, the removal of the last non-primary key column shows
inconsistency of Ignite's API. We'll look through it
> Inconsistent handling of tables with non primary key columns
> ------------------------------------------------------------
>
> Key: IGNITE-14029
> URL: https://issues.apache.org/jira/browse/IGNITE-14029
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Affects Versions: 2.9.1
> Reporter: Lukas Eder
> Priority: Major
>
> This doesn't work:
> {code:java}
> CREATE TABLE t (i int);{code}
> I'm getting this error
> {noformat}
> SQL Error [1001] [42000]: No PRIMARY KEY defined for CREATE TABLE{noformat}
> However, this works perfectly fine:
> {code:java}
> CREATE TABLE t (i int PRIMARY KEY, dummy int);
> ALTER TABLE t DROP dummy;{code}
> I must say, I don't fully understand this arbitrary restriction. There are
> good reasons for tables to consist only of a primary key, when a schema is
> properly normalised. In any case, if there are good reasons to prevent tables
> without non primary key columns, then the ALTER TABLE statement must ensure
> this state is not achievable.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)