You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Knut-Håvard Aksnes (JIRA)" <ji...@apache.org> on 2011/01/04 00:46:45 UTC

[jira] Commented: (OPENJPA-84) Escape sql reserved words in column names

    [ https://issues.apache.org/jira/browse/OPENJPA-84?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12977019#action_12977019 ] 

Knut-Håvard Aksnes commented on OPENJPA-84:
-------------------------------------------

This is also a problem for table names. I am at the time being trying to interface a legacy database where I have no control of the database schema at all. The database contains a table with the name USER giving me all kinds of problems.
I am using geronimo 2.2.1 (OpenJPA 1.2.2 AFAIK)

> Escape sql reserved words in column names
> -----------------------------------------
>
>                 Key: OPENJPA-84
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-84
>             Project: OpenJPA
>          Issue Type: Improvement
>          Components: sql
>            Reporter: Roger Keays
>
> OpenJPA does not escape reserved words in SQL queries when they are used as column names. To escape a reserved name you just put it in quotes:
> INSERT INTO FB_PRIVILEGES (comment, inheritable, level, role, type, username, item_uuid) ...
> on oracle, becomes 
> INSERT INTO FB_PRIVILEGES ("comment", inheritable, "level", role, "type", username, item_uuid) ...
> Looking at the code in DBDictionary, it appears that the escaping is done for table and sequence names by appending a numeral to the name. There isn't really any good reason to do this instead of quoting the identifier.
> table.name identifiers would have to be escaped as "table"."name" if both table and name were reserved words.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.