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 ba...@apache.org on 2006/08/01 08:16:47 UTC
svn commit: r427458 - in /db/derby/code/trunk/java:
engine/org/apache/derby/impl/sql/compile/
testing/org/apache/derbyTesting/functionTests/master/
testing/org/apache/derbyTesting/functionTests/tests/lang/
Author: bandaram
Date: Mon Jul 31 23:16:47 2006
New Revision: 427458
URL: http://svn.apache.org/viewvc?rev=427458&view=rev
Log:
DERBY-1608: Recognize newly added SYSFUC routines as system builtin functions. Builtin functions don't need authorization checks and have execute permission to PUBLIC by default.
Submitted by Satheesh Bandaram (satheesh@gmail.com)
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL.out
db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL.sql
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java?rev=427458&r1=427457&r2=427458&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/CompilerContextImpl.java Mon Jul 31 23:16:47 2006
@@ -777,6 +777,10 @@
if( requiredRoutinePrivileges == null || routine == null)
return;
+ // Ignore SYSFUN routines for permission scheme
+ if (routine.getSchemaUUID().toString().equals(SchemaDescriptor.SYSFUN_SCHEMA_UUID))
+ return;
+
if (requiredRoutinePrivileges.get(routine.getUUID()) == null)
requiredRoutinePrivileges.put(routine.getUUID(), ReuseFactory.getInteger(1));
}
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL.out
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL.out?rev=427458&r1=427457&r2=427458&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/grantRevokeDDL.out Mon Jul 31 23:16:47 2006
@@ -1579,4 +1579,71 @@
TABLEPERMSID |GRANTEE |GRANTOR |TABLEID |&|&|&|&|&|&
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0 rows selected
+ij(MAMTA1)> -- DERBY-1608: Recognize new SYSFUC routines as system builtin routines
+-- Builtin functions don't need any permission checking. They are executable by all
+VALUES { fn ACOS(0.0707) };
+1
+----------------------
+1.5000372950430991
+1 row selected
+ij(MAMTA1)> VALUES ACOS(0.0707);
+1
+----------------------
+1.5000372950430991
+1 row selected
+ij(MAMTA1)> VALUES PI();
+1
+----------------------
+3.141592653589793
+1 row selected
+ij(MAMTA1)> create table SYSFUN_MATH_TEST (d double);
+0 rows inserted/updated/deleted
+ij(MAMTA1)> insert into SYSFUN_MATH_TEST values null;
+1 row inserted/updated/deleted
+ij(MAMTA1)> insert into SYSFUN_MATH_TEST values 0.67;
+1 row inserted/updated/deleted
+ij(MAMTA1)> insert into SYSFUN_MATH_TEST values 1.34;
+1 row inserted/updated/deleted
+ij(MAMTA1)> select cast (ATAN(d) as DECIMAL(6,3)) AS ATAN FROM SYSFUN_MATH_TEST;
+ATAN
+--------
+NULL
+0.590
+0.929
+3 rows selected
+ij(MAMTA1)> select cast (COS(d) as DECIMAL(6,3)) AS COS FROM SYSFUN_MATH_TEST;
+COS
+--------
+NULL
+0.783
+0.228
+3 rows selected
+ij(MAMTA1)> select cast (SIN(d) as DECIMAL(6,3)) AS SIN FROM SYSFUN_MATH_TEST;
+SIN
+--------
+NULL
+0.620
+0.973
+3 rows selected
+ij(MAMTA1)> select cast (TAN(d) as DECIMAL(6,3)) AS TAN FROM SYSFUN_MATH_TEST;
+TAN
+--------
+NULL
+0.792
+4.255
+3 rows selected
+ij(MAMTA1)> select cast (DEGREES(d) as DECIMAL(6,3)) AS DEGREES FROM SYSFUN_MATH_TEST;
+DEGREES
+--------
+NULL
+38.388
+76.776
+3 rows selected
+ij(MAMTA1)> select cast (RADIANS(d) as DECIMAL(6,3)) AS RADIANS FROM SYSFUN_MATH_TEST;
+RADIANS
+--------
+NULL
+0.011
+0.023
+3 rows selected
ij(MAMTA1)>
Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL.sql
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL.sql?rev=427458&r1=427457&r2=427458&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL.sql (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/lang/grantRevokeDDL.sql Mon Jul 31 23:16:47 2006
@@ -989,3 +989,26 @@
select * from sys.systableperms where grantee='SAMMY';
+
+-- DERBY-1608: Recognize new SYSFUC routines as system builtin routines
+-- Builtin functions don't need any permission checking. They are executable by all
+
+VALUES { fn ACOS(0.0707) };
+
+VALUES ACOS(0.0707);
+
+VALUES PI();
+
+create table SYSFUN_MATH_TEST (d double);
+insert into SYSFUN_MATH_TEST values null;
+insert into SYSFUN_MATH_TEST values 0.67;
+insert into SYSFUN_MATH_TEST values 1.34;
+
+select cast (ATAN(d) as DECIMAL(6,3)) AS ATAN FROM SYSFUN_MATH_TEST;
+
+select cast (COS(d) as DECIMAL(6,3)) AS COS FROM SYSFUN_MATH_TEST;
+select cast (SIN(d) as DECIMAL(6,3)) AS SIN FROM SYSFUN_MATH_TEST;
+select cast (TAN(d) as DECIMAL(6,3)) AS TAN FROM SYSFUN_MATH_TEST;
+
+select cast (DEGREES(d) as DECIMAL(6,3)) AS DEGREES FROM SYSFUN_MATH_TEST;
+select cast (RADIANS(d) as DECIMAL(6,3)) AS RADIANS FROM SYSFUN_MATH_TEST;