You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Shreyas Kaushik (JIRA)" <de...@db.apache.org> on 2005/05/25 09:56:56 UTC
[jira] Closed: (DERBY-18) Exposed name matching has bugs when the column name is qualified with a schema name.
[ http://issues.apache.org/jira/browse/DERBY-18?page=all ]
Shreyas Kaushik closed DERBY-18:
--------------------------------
Patch submitted
> 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: 10.0.2.0
> 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:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira