You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by bp...@apache.org on 2010/06/28 00:04:10 UTC
svn commit: r958431 - in /db/derby/code/trunk/java:
testing/org/apache/derbyTesting/functionTests/master/ij7.out
testing/org/apache/derbyTesting/functionTests/tests/tools/ij7.sql
tools/org/apache/derby/impl/tools/ij/ij.jj
Author: bpendleton
Date: Sun Jun 27 22:04:09 2010
New Revision: 958431
URL: http://svn.apache.org/viewvc?rev=958431&view=rev
Log:
DERBY-2785: ij "describe" command cannot describe table named "run"
This fix was contributed by Eranda Sooriyabandara (070468D at gmail dot com)
The IJ tool's parser was not flexible enough in its handling of
identifiers, and so if you have a table named RUN, the command
ij> describe run;
was treating RUN as a keyword, rather than realizing it was the name of
the table. By changing the IJ parser's identifier() production to accept
keywords, the command is now accepted and behaves as desired.
Modified:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/ij7.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/ij7.sql
db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ij.jj
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/ij7.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/ij7.out?rev=958431&r1=958430&r2=958431&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/ij7.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/ij7.out Sun Jun 27 22:04:09 2010
@@ -241,4 +241,21 @@ APP |T1
ij> -- Observe behavior with empty string:
describe '';
IJ ERROR: No table exists with the name (missing)
+ij> --DERBY-2785:ij "describe" built in command cannot describe a table named "run"
+create table run(c1 int, c2 varchar(20));
+0 rows inserted/updated/deleted
+ij> --should work
+describe run;
+COLUMN_NAME |TYPE_NAME|DEC&|NUM&|COLUM&|COLUMN_DEF|CHAR_OCTE&|IS_NULL&
+------------------------------------------------------------------------------
+C1 |INTEGER |0 |10 |10 |NULL |NULL |YES
+C2 |VARCHAR |NULL|NULL|20 |NULL |40 |YES
+ij> create table "run"(c1 int, c2 varchar(20));
+0 rows inserted/updated/deleted
+ij> --should work
+describe 'run';
+COLUMN_NAME |TYPE_NAME|DEC&|NUM&|COLUM&|COLUMN_DEF|CHAR_OCTE&|IS_NULL&
+------------------------------------------------------------------------------
+C1 |INTEGER |0 |10 |10 |NULL |NULL |YES
+C2 |VARCHAR |NULL|NULL|20 |NULL |40 |YES
ij>
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/ij7.sql
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/ij7.sql?rev=958431&r1=958430&r2=958431&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/ij7.sql (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/tools/ij7.sql Sun Jun 27 22:04:09 2010
@@ -88,3 +88,11 @@ describe '*';
describe 'APP.*';
-- Observe behavior with empty string:
describe '';
+
+--DERBY-2785:ij "describe" built in command cannot describe a table named "run"
+create table run(c1 int, c2 varchar(20));
+--should work
+describe run;
+create table "run"(c1 int, c2 varchar(20));
+--should work
+describe 'run';
\ No newline at end of file
Modified: db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ij.jj
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ij.jj?rev=958431&r1=958430&r2=958431&view=diff
==============================================================================
--- db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ij.jj (original)
+++ db/derby/code/trunk/java/tools/org/apache/derby/impl/tools/ij/ij.jj Sun Jun 27 22:04:09 2010
@@ -3111,15 +3111,18 @@ qualifiedIdentifier() :
String
caIdentifier() throws SQLException :
{
- Token t;
+ Token t = null;
+ String i = null;
}
{
- t=<IDENTIFIER>
+ ( i=keyword()|t=<IDENTIFIER> )
{
haveConnection();
DatabaseMetaData dbmd = theConnection.getMetaData();
+ String identifier = i;
- String identifier = t.image;
+ if(t!=null)
+ identifier = t.image;
if (dbmd.storesLowerCaseIdentifiers())
identifier = identifier.toLowerCase(Locale.ENGLISH);
else if (dbmd.storesUpperCaseIdentifiers())