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 da...@apache.org on 2007/10/12 21:54:47 UTC

svn commit: r584249 - in /db/derby/code/trunk/java: engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj testing/org/apache/derbyTesting/functionTests/master/columnDefaults.out testing/org/apache/derbyTesting/functionTests/tests/lang/columnDefaults.sql

Author: dag
Date: Fri Oct 12 12:54:13 2007
New Revision: 584249

URL: http://svn.apache.org/viewvc?rev=584249&view=rev
Log:
DERBY-3013 column-definition WITH DEFAULT should accept CURRENT_USER, SESSION_USER in addition to USER

Patch DERBY-3013.

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/columnDefaults.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/columnDefaults.sql

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj?rev=584249&r1=584248&r2=584249&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj Fri Oct 12 12:54:13 2007
@@ -10590,11 +10590,12 @@
 						getContextManager());
 	}
 |
-	<USER>
+	/* Revert DB2 restriction: DERBY-3013. Accept standard SQL CURRENT_USER,
+	 * SESSION_USER in addition to USER.
+	 */
+	value = userNode()
 	{
-		return (ValueNode) nodeFactory.getNode(
-								C_NodeTypes.USER_NODE,
-								getContextManager());
+		return value;
 	}
 |
 	LOOKAHEAD({

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/columnDefaults.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/columnDefaults.out?rev=584249&r1=584248&r2=584249&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/columnDefaults.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/columnDefaults.out Fri Oct 12 12:54:13 2007
@@ -202,7 +202,32 @@
 A          |B          
 -----------------------
 4          |0          
-ij> -- clean up
+ij> -- begin DERBY-3013
+create table tabWithUserAndSchemaDefaults(
+             cUser           CHAR(8) default user,
+             cCurrent_user   CHAR(8) default current_user,
+             cSession_user   CHAR(8) default session_user,
+             cCurrent_schema CHAR(128) default current schema);
+0 rows inserted/updated/deleted
+ij> -- Should work
+insert into tabWithUserAndSchemaDefaults values (default, default, default, default);
+1 row inserted/updated/deleted
+ij> select * from tabWithUserAndSchemaDefaults;
+CUSER   |CCURREN&|CSESSIO&|CCURRENT_SCHEMA                                                                                                                 
+-----------------------------------------------------------------------------------------------------------------------------------------------------------
+APP     |APP     |APP     |APP                                                                                                                             
+ij> -- Should fail:
+create table tabWithUserDefaultTooNarrowColumn(
+       c1 CHAR(7) default user);
+ERROR 42894: DEFAULT value or IDENTITY attribute value is not valid for column 'C1'.
+ij> -- Should fail:
+create table tabWithSchemaDefaultTooNarrowColumn(
+       c1 CHAR(127) default current sqlid);
+ERROR 42894: DEFAULT value or IDENTITY attribute value is not valid for column 'C1'.
+ij> drop table tabWithUserAndSchemaDefaults;
+0 rows inserted/updated/deleted
+ij> -- end DERBY-3013
+-- clean up
 drop function asdf;
 0 rows inserted/updated/deleted
 ij> drop table t1;

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/columnDefaults.sql
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/columnDefaults.sql?rev=584249&r1=584248&r2=584249&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/columnDefaults.sql (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/columnDefaults.sql Fri Oct 12 12:54:13 2007
@@ -125,6 +125,28 @@
 insert into t_331 values (4, default);
 select * from t_331;
 
+-- begin DERBY-3013
+create table tabWithUserAndSchemaDefaults(
+             cUser           CHAR(8) default user,
+             cCurrent_user   CHAR(8) default current_user,
+             cSession_user   CHAR(8) default session_user,
+             cCurrent_schema CHAR(128) default current schema);                 
+             
+-- Should work
+insert into tabWithUserAndSchemaDefaults values (default, default, default, default);
+select * from tabWithUserAndSchemaDefaults;
+
+-- Should fail:
+create table tabWithUserDefaultTooNarrowColumn(
+       c1 CHAR(7) default user);
+
+-- Should fail:
+create table tabWithSchemaDefaultTooNarrowColumn(
+       c1 CHAR(127) default current sqlid);
+
+drop table tabWithUserAndSchemaDefaults;
+-- end DERBY-3013
+
 -- clean up
 drop function asdf;
 drop table t1;