Dear H2 Community,
I have finally carved out some time to upgrade an old project to H2 2.x and ran into a problem with one of my table create statements:
CREATE TABLE USER_PREFERENCE (
ID BIGSERIAL NOT NULL,
KEY VARCHAR(50) NOT NULL,
VALUE text NOT NULL,
USER_ID bigint NOT NULL,
CONSTRAINT PK_USER_PREFERENCE PRIMARY KEY (ID)
);
This statement is throwing a "
Syntax error in SQL statement" error in 2.x that I did not see in 1.4.x.
In the error message there is something about "expected "identifier"; SQL statement".
If I take out or rename the "KEY" column everything works.
I see that the list of reserved keywords has been updated at some point and KEY has been added although it is marked as a non-reserved (NR) word in the SQL Standard:
Questions:
(1) If am running in PostgreSQL compatibility mode, and KEY is a non-reserved keyword in PostgreSQL shouldn't I be allowed to create a KEY column?
(2) Is this the correct way to set NON_KEYWORDS? Is it similar to setting mode?
java.util.Properties properties = new java.util.Properties();
properties.setProperty("MODE", "PostgreSQL");
properties.setProperty("NON_KEYWORDS", "KEY");
I ask because it doesn't seem to work (i.e. I still can't create my table with the NON_KEYWORDS set).
Thanks in advance,
Peter