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:
http://www.h2database.com/html/advanced.html#keywords

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

-- 
You received this message because you are subscribed to the Google Groups "H2 
Database" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/h2-database/194088980.2263119.1693432324441%40mail.yahoo.com.

Reply via email to