db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Daniel John Debrunner (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-18) Exposed name matching has bugs when the column name is qualified with a schema name.
Date Tue, 15 Mar 2005 22:04:23 GMT
     [ http://issues.apache.org/jira/browse/DERBY-18?page=comments#action_60888 ]
Daniel John Debrunner commented on DERBY-18:

Applied patch from Shreyas.

Sending        java/engine/org/apache/derby/impl/sql/compile/CurrentOfNode.java
Sending        java/engine/org/apache/derby/impl/sql/compile/FromBaseTable.java
Sending        java/testing/org/apache/derbyTesting/functionTests/master/dml162.out
Sending        java/testing/org/apache/derbyTesting/functionTests/master/orderby.out
Sending        java/testing/org/apache/derbyTesting/functionTests/master/select.out
Sending        java/testing/org/apache/derbyTesting/functionTests/tests/lang/select.sql
Sending        java/testing/org/apache/derbyTesting/functionTests/tests/nist/dml162.sql
Transmitting file data .......
Committed revision 157591.

> Exposed name matching has bugs when the column name is qualified with a schema name.
> ------------------------------------------------------------------------------------
>          Key: DERBY-18
>          URL: http://issues.apache.org/jira/browse/DERBY-18
>      Project: Derby
>         Type: Bug
>   Components: SQL
>     Versions:
>     Reporter: Tulika Agrawal
>     Priority: Minor

> Reporting for Kathey Marsden.
> create table t1(c1 int);  -- goes into app
> select sys.t1.c1 from t1; -- should fail
> select sys.b.c1 from t1 b; -- should fail
> select * from t1, app.t1;  -- fails, should succeed
> select t1.c1 from t1, app.t1; -- fails, should succeed
> - According to SQL92, the <table 
> name> in a <table reference> exposes its name when it is not 
> qualified (See 6.3 <table reference>, Syntax Rule 1).  Also, 
> an unqualified <table name> is equivalent to one qualified 
> with the current default schema name (See 5.4 Names and 
> identifiers, Syntax Rule 8).  So, in the above queries,
> select * from t1, app.t1  -- is the same as select * from 
> app.t1, app.t1, and this is not SQL92 --- you have duplicate 
> exposed <table name>s in the same scope (see 6.3 <table 
> reference>, Syntax Rule 3). Derby can support it, but it's an 
> extension.
> select t1.c1 from t1, app.t1 -- is the same as select app.t1.c1 
> from app.t1, app.t1, and again supporting this would be an 
> extension to SQL92.
> Note that if you say
> select * from t1, t2 t1 --  this is also a duplication, as the 
> exposed <table name> of the first table is app.t1 and the 
> exposed <correlation name> of the second table is t1. these 
> are different names, but 6.3 <table reference> Syntax Rule 4 
> rules out this case explicitly -- a <correlation name> 
> cannot be the same as the unqualified part of any exposed 
> <table name>.
> One possibility is to go to a 2 pass method of column resolution:
> 1st pass looks for an exact match on the qualifier (app.t1 
> matches app.t1 but not t1, ...)
> if no match, then do 2nd pass where it looks for a match on 
> table id.
> (Look at OrderByColumn.bindOrderByColumn()

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
If you want more information on JIRA, or have a bug to report see:

View raw message