Using keywords in insert statement

Hi,

Running Oracle database 11g release 2

We’re currently using version 1.9.5 and are looking to upgrade to 2.
but while running some initial tests we noticed that one of our insert statements is failing in version 2
consider the following

   
     
     
      …
      …
   

In 1.9.5 it would generate a sql statement that dealt with the ‘tablespace’ keyword as if it was a regular column. However in 2.0 RC7, the tablespace identifier is enclosed in double quotes making it impossible to match against our (uppercase) tablespace column.
Unfortunately these changelogs should not be modified anymore, is there any other solution to this problem?

Thanks in advance,
Ruud

I took the reserved words list from a full oracle list, but they must allow some (like tablespace) as column names.  I removed it from the list so the next build should work for you.

Nathan

Hi Nathan,

Thanks for your reply and quick fix. Is there any chance you could do the same for the ‘type’ and ‘sequence’ keywords?

Regards,
Ruud

Originally posted by: Nathan
I took the reserved words list from a full oracle list, but they must allow some (like tablespace) as column names.  I removed it from the list so the next build should work for you.

Having been burned by a related issue with H2, I would like to broach the topic of reserved words in general.  Could we begin by perhaps making quoting optional or configurable?

Best,
Laird

Yes, there have been a lot of issues with the keywords logic.  I added a Database.isReservedWord method which is will currently not return true for any values, but can be managed through an extension or as particular issues come up.

There is value in nicely handling object names that really need to be quoted, but we shouldn’t be just taking the raw database keyword list, apparently.

Nathan