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 mi...@apache.org on 2006/09/07 18:54:09 UTC
svn commit: r441140 - in /db/derby/code/trunk/java:
engine/org/apache/derby/impl/sql/compile/
testing/org/apache/derbyTesting/functionTests/master/
testing/org/apache/derbyTesting/functionTests/suites/
testing/org/apache/derbyTesting/functionTests/test...
Author: mikem
Date: Thu Sep 7 09:54:09 2006
New Revision: 441140
URL: http://svn.apache.org/viewvc?view=rev&rev=441140
Log:
DERBY-1729, contributed by Yip Ng
committing derby1729-trunk-diff03.txt patch.
The GrantNode and RevokeNode should have derived from DDLStatementNode instead
of MiscellaneousStatementNode. Subclassing DDLStatementNode will generate a
call to GenericResultSetFactory's getDDLResultSet() in the activation class
and invokes the GenericAuthorizer's authorize() method with the proper
parameters to enforce the correct semantics.
public ResultSet getDDLResultSet (Activation activation) throws StandardExceptio
n
{
getAuthorizer(activation).authorize(activation, Authorizer.SQL_DDL_OP);
return getMiscResultSet( activation);
}
Also adding an additional sql file for derbylang. The reason I didn't include
this in grantRevokeDDL.sql is because of name collision and this testcase is
one of the many additonal grant/revoke tests that I wrote and I'll like to
append the rest of those testcases to this file(grantRevokeDDL2.sql) when I
submit my patch for DERBY-1736.
Added:
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL2.out (with props)
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2.sql (with props)
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_app.properties (with props)
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_sed.properties (with props)
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GrantNode.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RevokeNode.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/ProcedureTest.java
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GrantNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GrantNode.java?view=diff&rev=441140&r1=441139&r2=441140
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GrantNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/GrantNode.java Thu Sep 7 09:54:09 2006
@@ -33,7 +33,7 @@
/**
* This class represents a GRANT statement.
*/
-public class GrantNode extends MiscellaneousStatementNode
+public class GrantNode extends DDLStatementNode
{
private PrivilegeNode privileges;
private List grantees;
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RevokeNode.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RevokeNode.java?view=diff&rev=441140&r1=441139&r2=441140
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RevokeNode.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/RevokeNode.java Thu Sep 7 09:54:09 2006
@@ -33,7 +33,7 @@
/**
* This class represents a REVOKE statement.
*/
-public class RevokeNode extends MiscellaneousStatementNode
+public class RevokeNode extends DDLStatementNode
{
private PrivilegeNode privileges;
private List grantees;
Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL2.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL2.out?view=auto&rev=441140
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL2.out (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL2.out Thu Sep 7 09:54:09 2006
@@ -0,0 +1,261 @@
+ij> connect 'grantRevokeDDL2;create=true' user 'user1' as user1;
+WARNING 01J14: SQL authorization is being used without first enabling authentication.
+ij> connect 'grantRevokeDDL2;create=true' user 'user2' as user2;
+WARNING 01J01: Database 'grantRevokeDDL2' not created, connection made to existing database instead.
+WARNING 01J14: SQL authorization is being used without first enabling authentication.
+ij(USER2)> connect 'grantRevokeDDL2;create=true' user 'user3' as user3;
+WARNING 01J01: Database 'grantRevokeDDL2' not created, connection made to existing database instead.
+WARNING 01J14: SQL authorization is being used without first enabling authentication.
+ij(USER3)> -- DERBY-1729
+-- test grant and revoke in Java stored procedure with triggers.
+-- Java stored procedure that contains grant or revoke statement
+-- requires MODIFIES SQL DATA to execute.
+-- Since only 2 of the 8 Java stored procedures(which contains
+-- grant or revoke statement) are declared with MODIFIES SQL DATA,
+-- the rest are expected to fail in this test.
+-- setup the environment
+set connection user1;
+ij(USER1)> -- table used in the procedures
+drop table t1;
+ERROR: Failed with SQLSTATE 42Y07
+ij(USER1)> create table t1 (i int primary key, b char(15));
+0 rows inserted/updated/deleted
+ij(USER1)> insert into t1 values (1, 'XYZ');
+1 row inserted/updated/deleted
+ij(USER1)> insert into t1 values (2, 'XYZ');
+1 row inserted/updated/deleted
+ij(USER1)> insert into t1 values (3, 'XYZ');
+1 row inserted/updated/deleted
+ij(USER1)> insert into t1 values (4, 'XYZ');
+1 row inserted/updated/deleted
+ij(USER1)> insert into t1 values (5, 'XYZ');
+1 row inserted/updated/deleted
+ij(USER1)> insert into t1 values (6, 'XYZ');
+1 row inserted/updated/deleted
+ij(USER1)> insert into t1 values (7, 'XYZ');
+1 row inserted/updated/deleted
+ij(USER1)> insert into t1 values (8, 'XYZ');
+1 row inserted/updated/deleted
+ij(USER1)> -- table used in this test
+drop table t2;
+ERROR: Failed with SQLSTATE 42Y55
+ij(USER1)> create table t2 (x integer, y integer);
+0 rows inserted/updated/deleted
+ij(USER1)> create procedure grant_select_proc1()
+ parameter style java
+ dynamic result sets 0 language java
+ NO SQL
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.grantSelect';
+0 rows inserted/updated/deleted
+ij(USER1)> create procedure grant_select_proc2()
+ parameter style java
+ dynamic result sets 0 language java
+ CONTAINS SQL
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.grantSelect';
+0 rows inserted/updated/deleted
+ij(USER1)> create procedure grant_select_proc3()
+ parameter style java
+ dynamic result sets 0 language java
+ READS SQL DATA
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.grantSelect';
+0 rows inserted/updated/deleted
+ij(USER1)> create procedure grant_select_proc4()
+ parameter style java
+ dynamic result sets 0 language java
+ MODIFIES SQL DATA
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.grantSelect';
+0 rows inserted/updated/deleted
+ij(USER1)> create procedure revoke_select_proc1()
+ parameter style java
+ dynamic result sets 0 language java
+ NO SQL
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.revokeSelect';
+0 rows inserted/updated/deleted
+ij(USER1)> create procedure revoke_select_proc2()
+ parameter style java
+ dynamic result sets 0 language java
+ CONTAINS SQL
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.revokeSelect';
+0 rows inserted/updated/deleted
+ij(USER1)> create procedure revoke_select_proc3()
+ parameter style java
+ dynamic result sets 0 language java
+ READS SQL DATA
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.revokeSelect';
+0 rows inserted/updated/deleted
+ij(USER1)> create procedure revoke_select_proc4()
+ parameter style java
+ dynamic result sets 0 language java
+ MODIFIES SQL DATA
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.revokeSelect';
+0 rows inserted/updated/deleted
+ij(USER1)> -- tests
+create trigger grant_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call grant_select_proc1();
+0 rows inserted/updated/deleted
+ij(USER1)> -- should fail
+delete from t1 where i = 1;
+ERROR: Failed with SQLSTATE 38000
+ERROR: Failed with SQLSTATE 38001
+ij(USER1)> -- check delete failed
+select * from t1 where i = 1;
+I |B
+---------------------------
+1 |XYZ
+1 row selected
+ij(USER1)> drop trigger grant_select_trig;
+0 rows inserted/updated/deleted
+ij(USER1)> set connection user2;
+ij(USER2)> -- should fail
+select * from user1.t1 where i = 1;
+ERROR: Failed with SQLSTATE 28508
+ij(USER2)> set connection user1;
+ij(USER1)> create trigger grant_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call grant_select_proc2();
+0 rows inserted/updated/deleted
+ij(USER1)> -- should fail
+delete from t1 where i = 2;
+ERROR: Failed with SQLSTATE 38000
+ERROR: Failed with SQLSTATE 38002
+ij(USER1)> -- check delete failed
+select * from t1 where i = 2;
+I |B
+---------------------------
+2 |XYZ
+1 row selected
+ij(USER1)> drop trigger grant_select_trig;
+0 rows inserted/updated/deleted
+ij(USER1)> set connection user2;
+ij(USER2)> -- should fail
+select * from user1.t1 where i = 1;
+ERROR: Failed with SQLSTATE 28508
+ij(USER2)> set connection user1;
+ij(USER1)> create trigger grant_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call grant_select_proc3();
+0 rows inserted/updated/deleted
+ij(USER1)> -- should fail
+delete from t1 where i = 3;
+ERROR: Failed with SQLSTATE 38000
+ERROR: Failed with SQLSTATE 38002
+ij(USER1)> -- check delete failed
+select * from t1 where i = 3;
+I |B
+---------------------------
+3 |XYZ
+1 row selected
+ij(USER1)> drop trigger grant_select_trig;
+0 rows inserted/updated/deleted
+ij(USER1)> set connection user2;
+ij(USER2)> -- should fail
+select * from user1.t1 where i = 1;
+ERROR: Failed with SQLSTATE 28508
+ij(USER2)> set connection user1;
+ij(USER1)> create trigger grant_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call grant_select_proc4();
+0 rows inserted/updated/deleted
+ij(USER1)> -- ok
+delete from t1 where i = 4;
+1 row inserted/updated/deleted
+ij(USER1)> -- check delete
+select * from t1 where i = 4;
+I |B
+---------------------------
+0 rows selected
+ij(USER1)> drop trigger grant_select_trig;
+0 rows inserted/updated/deleted
+ij(USER1)> set connection user2;
+ij(USER2)> -- should be successful
+select * from user1.t1 where i = 1;
+I |B
+---------------------------
+1 |XYZ
+1 row selected
+ij(USER2)> set connection user1;
+ij(USER1)> create trigger revoke_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call revoke_select_proc1();
+0 rows inserted/updated/deleted
+ij(USER1)> -- should fail
+delete from t1 where i = 5;
+ERROR: Failed with SQLSTATE 38000
+ERROR: Failed with SQLSTATE 38001
+ij(USER1)> -- check delete failed
+select * from t1 where i = 5;
+I |B
+---------------------------
+5 |XYZ
+1 row selected
+ij(USER1)> drop trigger revoke_select_trig;
+0 rows inserted/updated/deleted
+ij(USER1)> set connection user2;
+ij(USER2)> -- should be successful
+select * from user1.t1 where i = 1;
+I |B
+---------------------------
+1 |XYZ
+1 row selected
+ij(USER2)> set connection user1;
+ij(USER1)> create trigger revoke_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call revoke_select_proc2();
+0 rows inserted/updated/deleted
+ij(USER1)> -- should fail
+delete from t1 where i = 6;
+ERROR: Failed with SQLSTATE 38000
+ERROR: Failed with SQLSTATE 38002
+ij(USER1)> -- check delete failed
+select * from t1 where i = 6;
+I |B
+---------------------------
+6 |XYZ
+1 row selected
+ij(USER1)> drop trigger revoke_select_trig;
+0 rows inserted/updated/deleted
+ij(USER1)> set connection user2;
+ij(USER2)> -- should be successful
+select * from user1.t1 where i = 1;
+I |B
+---------------------------
+1 |XYZ
+1 row selected
+ij(USER2)> set connection user1;
+ij(USER1)> create trigger revoke_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call revoke_select_proc3();
+0 rows inserted/updated/deleted
+ij(USER1)> -- should fail
+delete from t1 where i = 7;
+ERROR: Failed with SQLSTATE 38000
+ERROR: Failed with SQLSTATE 38002
+ij(USER1)> -- check delete failed
+select * from t1 where i = 7;
+I |B
+---------------------------
+7 |XYZ
+1 row selected
+ij(USER1)> drop trigger revoke_select_trig;
+0 rows inserted/updated/deleted
+ij(USER1)> set connection user2;
+ij(USER2)> -- should be successful
+select * from user1.t1 where i = 1;
+I |B
+---------------------------
+1 |XYZ
+1 row selected
+ij(USER2)> set connection user1;
+ij(USER1)> create trigger revoke_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call revoke_select_proc4();
+0 rows inserted/updated/deleted
+ij(USER1)> -- ok
+delete from t1 where i = 8;
+1 row inserted/updated/deleted
+ij(USER1)> -- check delete
+select * from t1 where i = 8;
+I |B
+---------------------------
+0 rows selected
+ij(USER1)> drop trigger revoke_select_trig;
+0 rows inserted/updated/deleted
+ij(USER1)> set connection user2;
+ij(USER2)> -- should fail
+select * from user1.t1 where i = 1;
+ERROR: Failed with SQLSTATE 28508
+ij(USER2)> set connection user1;
+ij(USER1)>
Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL2.out
------------------------------------------------------------------------------
svn:eol-style = native
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall?view=diff&rev=441140&r1=441139&r2=441140
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbylang.runall Thu Sep 7 09:54:09 2006
@@ -64,6 +64,7 @@
lang/forupdate.sql
lang/functions.sql
lang/grantRevokeDDL.sql
+lang/grantRevokeDDL2.sql
lang/grantRevoke.java
lang/groupBy.sql
lang/holdCursorIJ.sql
Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2.sql
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2.sql?view=auto&rev=441140
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2.sql (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2.sql Thu Sep 7 09:54:09 2006
@@ -0,0 +1,177 @@
+connect 'grantRevokeDDL2;create=true' user 'user1' as user1;
+connect 'grantRevokeDDL2;create=true' user 'user2' as user2;
+connect 'grantRevokeDDL2;create=true' user 'user3' as user3;
+
+-- DERBY-1729
+-- test grant and revoke in Java stored procedure with triggers.
+-- Java stored procedure that contains grant or revoke statement
+-- requires MODIFIES SQL DATA to execute.
+-- Since only 2 of the 8 Java stored procedures(which contains
+-- grant or revoke statement) are declared with MODIFIES SQL DATA,
+-- the rest are expected to fail in this test.
+
+-- setup the environment
+set connection user1;
+
+-- table used in the procedures
+drop table t1;
+create table t1 (i int primary key, b char(15));
+insert into t1 values (1, 'XYZ');
+insert into t1 values (2, 'XYZ');
+insert into t1 values (3, 'XYZ');
+insert into t1 values (4, 'XYZ');
+insert into t1 values (5, 'XYZ');
+insert into t1 values (6, 'XYZ');
+insert into t1 values (7, 'XYZ');
+insert into t1 values (8, 'XYZ');
+
+-- table used in this test
+drop table t2;
+create table t2 (x integer, y integer);
+
+create procedure grant_select_proc1()
+ parameter style java
+ dynamic result sets 0 language java
+ NO SQL
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.grantSelect';
+
+create procedure grant_select_proc2()
+ parameter style java
+ dynamic result sets 0 language java
+ CONTAINS SQL
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.grantSelect';
+
+create procedure grant_select_proc3()
+ parameter style java
+ dynamic result sets 0 language java
+ READS SQL DATA
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.grantSelect';
+
+create procedure grant_select_proc4()
+ parameter style java
+ dynamic result sets 0 language java
+ MODIFIES SQL DATA
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.grantSelect';
+
+create procedure revoke_select_proc1()
+ parameter style java
+ dynamic result sets 0 language java
+ NO SQL
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.revokeSelect';
+
+create procedure revoke_select_proc2()
+ parameter style java
+ dynamic result sets 0 language java
+ CONTAINS SQL
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.revokeSelect';
+
+create procedure revoke_select_proc3()
+ parameter style java
+ dynamic result sets 0 language java
+ READS SQL DATA
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.revokeSelect';
+
+create procedure revoke_select_proc4()
+ parameter style java
+ dynamic result sets 0 language java
+ MODIFIES SQL DATA
+ external name 'org.apache.derbyTesting.functionTests.util.ProcedureTest.revokeSelect';
+
+-- tests
+
+create trigger grant_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call grant_select_proc1();
+-- should fail
+delete from t1 where i = 1;
+-- check delete failed
+select * from t1 where i = 1;
+drop trigger grant_select_trig;
+set connection user2;
+-- should fail
+select * from user1.t1 where i = 1;
+
+set connection user1;
+create trigger grant_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call grant_select_proc2();
+-- should fail
+delete from t1 where i = 2;
+-- check delete failed
+select * from t1 where i = 2;
+drop trigger grant_select_trig;
+set connection user2;
+-- should fail
+select * from user1.t1 where i = 1;
+
+set connection user1;
+create trigger grant_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call grant_select_proc3();
+-- should fail
+delete from t1 where i = 3;
+-- check delete failed
+select * from t1 where i = 3;
+drop trigger grant_select_trig;
+set connection user2;
+-- should fail
+select * from user1.t1 where i = 1;
+
+set connection user1;
+create trigger grant_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call grant_select_proc4();
+-- ok
+delete from t1 where i = 4;
+-- check delete
+select * from t1 where i = 4;
+drop trigger grant_select_trig;
+set connection user2;
+-- should be successful
+select * from user1.t1 where i = 1;
+
+set connection user1;
+create trigger revoke_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call revoke_select_proc1();
+-- should fail
+delete from t1 where i = 5;
+-- check delete failed
+select * from t1 where i = 5;
+drop trigger revoke_select_trig;
+set connection user2;
+-- should be successful
+select * from user1.t1 where i = 1;
+
+set connection user1;
+create trigger revoke_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call revoke_select_proc2();
+-- should fail
+delete from t1 where i = 6;
+-- check delete failed
+select * from t1 where i = 6;
+drop trigger revoke_select_trig;
+set connection user2;
+-- should be successful
+select * from user1.t1 where i = 1;
+
+set connection user1;
+create trigger revoke_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call revoke_select_proc3();
+-- should fail
+delete from t1 where i = 7;
+-- check delete failed
+select * from t1 where i = 7;
+drop trigger revoke_select_trig;
+set connection user2;
+-- should be successful
+select * from user1.t1 where i = 1;
+
+set connection user1;
+create trigger revoke_select_trig AFTER delete on t1
+ for each STATEMENT mode db2sql call revoke_select_proc4();
+-- ok
+delete from t1 where i = 8;
+-- check delete
+select * from t1 where i = 8;
+drop trigger revoke_select_trig;
+set connection user2;
+-- should fail
+select * from user1.t1 where i = 1;
+
+set connection user1;
Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2.sql
------------------------------------------------------------------------------
svn:eol-style = native
Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_app.properties
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_app.properties?view=auto&rev=441140
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_app.properties (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_app.properties Thu Sep 7 09:54:09 2006
@@ -0,0 +1,7 @@
+ij.protocol=jdbc:derby:
+ij.showNoConnectionsAtStart=true
+
+derby.database.sqlAuthorization=true
+useextdirs=true
+
+
Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_app.properties
------------------------------------------------------------------------------
svn:eol-style = native
Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_sed.properties
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_sed.properties?view=auto&rev=441140
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_sed.properties (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_sed.properties Thu Sep 7 09:54:09 2006
@@ -0,0 +1,17 @@
+# Filters and substitutes for SED
+# Multiple patterns for DELETE: comma separated
+# delete=pattern1,pattern2,...,patternn
+# No commas can be allowed in the patterns.
+#
+# Multiple patterns for SUBSTITUTE: comma separated <pattern;substitute> pair
+# substitute=pattern1;substitute1,pattern2;substitute2,...,patternn;substitut
+en
+# No commas or semicolons can be allowed in the patterns/subsitutes.
+-------------------------------------------------------------------------------
+--
+--Following needs to be added because permissions for a given sql get collected in HashMap and order in which items get added
+-- in HashMap can not be relied. Because of this, a user may get error message for different permissions for a given test sql.
+-- More info on requirement for this sed can be found in JIRA entry DERBY-1330
+--
+substitute=^ERROR ([^:]*):.*$;ERROR: Failed with SQLSTATE $1
+
Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL2_sed.properties
------------------------------------------------------------------------------
svn:eol-style = native
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/ProcedureTest.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/ProcedureTest.java?view=diff&rev=441140&r1=441139&r2=441140
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/ProcedureTest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/util/ProcedureTest.java Thu Sep 7 09:54:09 2006
@@ -759,5 +759,23 @@
rs[0] = st1.executeQuery(query.toString());
}
+
+ public static void grantSelect() throws SQLException
+ {
+ Connection conn = DriverManager.getConnection("jdbc:default:connection");
+ PreparedStatement ps = conn.prepareStatement("grant select on t1 to user2");
+ ps.execute();
+ ps.close();
+ conn.close();
+ }
+
+ public static void revokeSelect() throws SQLException
+ {
+ Connection conn = DriverManager.getConnection("jdbc:default:connection");
+ PreparedStatement ps = conn.prepareStatement("revoke select on t1 from user2");
+ ps.execute();
+ ps.close();
+ conn.close();
+ }
}