empire-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Döbele (JIRA) <empire-db-...@incubator.apache.org>
Subject [jira] [Commented] (EMPIREDB-209) Using a reserved word as a column alias in a select statement.
Date Thu, 21 Aug 2014 09:47:12 GMT

    [ https://issues.apache.org/jira/browse/EMPIREDB-209?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14105255#comment-14105255
] 

Rainer Döbele commented on EMPIREDB-209:
----------------------------------------

You are right, that quoting of an alias for reserved keywords has not yet been implemented.
However I am not sure, whether we need to create a new method in DBDatabaseDriver.
Wouldn't the following change to DBAliasExpr do the job:

    public void addSQL(StringBuilder buf, long context)
    { // Append alias
        if((context & CTX_ALIAS)!=0)
        {   // Add the column expression
            expr.addSQL(buf, context);
            // Rename
            DBDatabaseDriver driver = getDatabase().getDriver();
            String asExpr = driver.getSQLPhrase(DBDatabaseDriver.SQL_RENAME_COLUMN);
            if (asExpr!=null)
            {
                buf.append(asExpr);
                driver.appendElementName(buf, alias);
            }
        } 
        else
        {
            expr.addSQL(buf, context);
        }
    }

If I missed something then you may create a patch file and append it to this issue. I will
then have a closer look at it.
If my suggestion works, please let me know and I will submit the change.

Regards
Rainer


> Using a reserved word as a column alias in a select statement.
> --------------------------------------------------------------
>
>                 Key: EMPIREDB-209
>                 URL: https://issues.apache.org/jira/browse/EMPIREDB-209
>             Project: Empire-DB
>          Issue Type: New Feature
>          Components: Core
>    Affects Versions: empire-db-2.4.2
>            Reporter: Shaun Forbes
>            Priority: Minor
>              Labels: newbie
>
> I believe it's possible in sql to use a reserved word as an alias in a select statement
if it's correctly quoted (it is for the databases I've tested anyway).
> Checking for and quoting reserved word aliases does not currently appear to be implemented.
> To overcome this limitation I've added an method to the DBDatabaseDriver class to add
the alias and perform any required quoting and altered the DBAliasExpr class to delegate the
adding of the alias to the DBDatabaseDriver class.
> The character I'm using for quoting is determined from the getIdentifierQuoteString()
method of the database connection metadata class, and I've used the detectQuoteName(String
name) method in DBDatabaseDriver to determine if the alias needs to be quoted.
> Patches available if required.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message