Return-Path:
X-Original-To: apmail-db-derby-commits-archive@www.apache.org
Delivered-To: apmail-db-derby-commits-archive@www.apache.org
Received: from mail.apache.org (hermes.apache.org [140.211.11.3])
by minotaur.apache.org (Postfix) with SMTP id 7952AD3CE
for ;
Fri, 26 Oct 2012 15:06:05 +0000 (UTC)
Received: (qmail 17591 invoked by uid 500); 26 Oct 2012 15:06:05 -0000
Delivered-To: apmail-db-derby-commits-archive@db.apache.org
Received: (qmail 17495 invoked by uid 500); 26 Oct 2012 15:06:03 -0000
Mailing-List: contact derby-commits-help@db.apache.org; run by ezmlm
Precedence: bulk
list-help:
list-unsubscribe:
List-Post:
Reply-To: "Derby Development"
List-Id:
Delivered-To: mailing list derby-commits@db.apache.org
Received: (qmail 17444 invoked by uid 99); 26 Oct 2012 15:06:01 -0000
Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230)
by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 26 Oct 2012 15:06:01 +0000
X-ASF-Spam-Status: No, hits=-2000.0 required=5.0
tests=ALL_TRUSTED
X-Spam-Check-By: apache.org
Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4)
by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 26 Oct 2012 15:05:55 +0000
Received: from eris.apache.org (localhost [127.0.0.1])
by eris.apache.org (Postfix) with ESMTP id 235C223888E4;
Fri, 26 Oct 2012 15:05:10 +0000 (UTC)
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: svn commit: r1402539 - in /db/derby/docs/trunk/src: devguide/ ref/
tools/
Date: Fri, 26 Oct 2012 15:05:09 -0000
To: derby-commits@db.apache.org
From: chaase3@apache.org
X-Mailer: svnmailer-1.0.8-patched
Message-Id: <20121026150510.235C223888E4@eris.apache.org>
X-Virus-Checked: Checked by ClamAV on apache.org
Author: chaase3
Date: Fri Oct 26 15:05:08 2012
New Revision: 1402539
URL: http://svn.apache.org/viewvc?rev=1402539&view=rev
Log:
DERBY-5926 Document user-defined aggregates (DERBY-672)
Created 2 new Reference Manual topics and 1 new Developer's Guide topic; modified 7 Reference Manual topics and 1 Tools Guide topic.
Patch: DERBY-5926-3.diff
Added:
db/derby/docs/trunk/src/devguide/cdevspecialuda.dita (with props)
db/derby/docs/trunk/src/ref/rrefsqljcreateaggregate.dita (with props)
db/derby/docs/trunk/src/ref/rrefsqljdropaggregate.dita (with props)
Modified:
db/derby/docs/trunk/src/devguide/derbydev.ditamap
db/derby/docs/trunk/src/ref/refderby.ditamap
db/derby/docs/trunk/src/ref/rrefsistabs28114.dita
db/derby/docs/trunk/src/ref/rrefsistabssysperms.dita
db/derby/docs/trunk/src/ref/rrefsqlj27781.dita
db/derby/docs/trunk/src/ref/rrefsqlj33520.dita
db/derby/docs/trunk/src/ref/rrefsqlj33923.dita
db/derby/docs/trunk/src/ref/rrefsqljgrant.dita
db/derby/docs/trunk/src/ref/rrefsqljrevoke.dita
db/derby/docs/trunk/src/tools/ctoolsgenddldb.dita
Added: db/derby/docs/trunk/src/devguide/cdevspecialuda.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/devguide/cdevspecialuda.dita?rev=1402539&view=auto
==============================================================================
--- db/derby/docs/trunk/src/devguide/cdevspecialuda.dita (added)
+++ db/derby/docs/trunk/src/devguide/cdevspecialuda.dita Fri Oct 26 15:05:08 2012
@@ -0,0 +1,96 @@
+
+
+
+
+
+Programming user-defined aggregates
+ allows
+you to create custom aggregate operators, called user-defined aggregates (UDAs).
+
+
+aggregatesuser-defined
+user-defined aggregatesprogramming
+
+
+
+A UDA is a Java class that implements the
+org.apache.derby.agg.Aggregator interface.
+For example, the following class provides an aggregate that computes the
+median value from a list of objects. This is a generic class. Its parameter must
+be a linear (Comparable) type.
+import java.util.ArrayList;
+import java.util.Collections;
+import org.apache.derby.agg.Aggregator;
+
+public class Median<V extends Comparable<V>>
+ implements Aggregator<V,V,Median<V>>
+{
+ private ArrayList<V> _values;
+
+ public Median() {}
+
+ public void init() { _values = new ArrayList<V>(); }
+
+ public void accumulate( V value ) { _values.add( value ); }
+
+ public void merge( Median<V> other )
+ {
+ _values.addAll( other._values );
+ }
+
+ public V terminate()
+ {
+ Collections.sort( _values );
+
+ int count = _values.size();
+
+ if ( count == 0 ) { return null; }
+ else { return _values.get( count/2 ); }
+ }
+}
+Using this generic class, we can declare UDAs for all of the sortable
+ data types. For
+example:
+create derby aggregate intMedian for int external name 'Median';
+create derby aggregate varcharMedian for varchar( 32672 ) external name
+ 'Median';
+
+We can then use these UDAs just like built-in
+ aggregates:
+create table intValues( a int, b int );
+create table varcharValues( a int, b varchar( 32672 ) );
+insert into intValues values ( 1, 1 ), ( 1, 10 ), ( 1, 100 ),
+ ( 1, 1000 ), ( 2, 5 ), ( 2, 50 ), ( 2, 500 ), ( 2, 5000 );
+insert into varcharValues values ( 1, 'a' ), ( 1, 'ab' ), ( 1, 'abc' ),
+ ( 2, 'a' ), ( 2, 'aa' ), ( 2, 'aaa' );
+
+select a, intMedian( b ) from intValues group by a;
+A |2
+-----------------------
+1 |100
+2 |500
+
+select varcharMedian( b ) from varcharValues;
+1
+---
+aaa
+
+
+
+
Propchange: db/derby/docs/trunk/src/devguide/cdevspecialuda.dita
------------------------------------------------------------------------------
svn:eol-style = native
Modified: db/derby/docs/trunk/src/devguide/derbydev.ditamap
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/devguide/derbydev.ditamap?rev=1402539&r1=1402538&r2=1402539&view=diff
==============================================================================
--- db/derby/docs/trunk/src/devguide/derbydev.ditamap (original)
+++ db/derby/docs/trunk/src/devguide/derbydev.ditamap Fri Oct 26 15:05:08 2012
@@ -1728,6 +1728,8 @@ limitations under the License.
+
+
Modified: db/derby/docs/trunk/src/ref/refderby.ditamap
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/ref/refderby.ditamap?rev=1402539&r1=1402538&r2=1402539&view=diff
==============================================================================
--- db/derby/docs/trunk/src/ref/refderby.ditamap (original)
+++ db/derby/docs/trunk/src/ref/refderby.ditamap Fri Oct 26 15:05:08 2012
@@ -611,6 +611,8 @@ limitations under the License.
+
+
@@ -642,6 +644,8 @@ limitations under the License.
+
+
Modified: db/derby/docs/trunk/src/ref/rrefsistabs28114.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/ref/rrefsistabs28114.dita?rev=1402539&r1=1402538&r2=1402539&view=diff
==============================================================================
--- db/derby/docs/trunk/src/ref/rrefsistabs28114.dita (original)
+++ db/derby/docs/trunk/src/ref/rrefsistabs28114.dita Fri Oct 26 15:05:08 2012
@@ -20,8 +20,8 @@ limitations under the License.
-->
SYSALIASES system table
-The SYSALIASES table describes the procedures, functions, and
-user-defined types in the database.
+The SYSALIASES table describes the procedures, functions,
+user-defined types, and user-defined aggregates in the database.
system tablesSYSALIASES
aliasesSYSALIASES system table
@@ -61,8 +61,8 @@ user-defined types in the database.VARCHAR
128
false
-Alias (in the case of a user-defined type, the name of the
-user-defined type)
+Alias (in the case of a user-defined type or user-defined
+aggregate, the name of the user-defined type or user-defined aggregate)
SCHEMAID
@@ -84,7 +84,7 @@ user-defined type)
1
false
'F' (function), 'P' (procedure),
-'A' (user-defined type)
+'A' (user-defined type), 'G' (user-defined aggregate)
NAMESPACE
@@ -92,7 +92,7 @@ user-defined type)
1
false
'F' (function), 'P' (procedure),
-'A' (user-defined type)
+'A' (user-defined type), 'G' (user-defined aggregate)
SYSTEMALIAS
Modified: db/derby/docs/trunk/src/ref/rrefsistabssysperms.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/ref/rrefsistabssysperms.dita?rev=1402539&r1=1402538&r2=1402539&view=diff
==============================================================================
--- db/derby/docs/trunk/src/ref/rrefsistabssysperms.dita (original)
+++ db/derby/docs/trunk/src/ref/rrefsistabssysperms.dita Fri Oct 26 15:05:08 2012
@@ -23,7 +23,7 @@ under the License.
SYSPERMS system table
The SYSPERMS table describes the USAGE permissions for
-sequence generators and user-defined types.
+sequence generators, user-defined types, and user-defined aggregates.
system tablesSYSPERMS
sequence generatorsSYSPERMS system table
@@ -65,8 +65,8 @@ key.
VARCHAR
36
false
-The kind of object receiving the permission. The only valid
-values are 'SEQUENCE' and 'TYPE'.
+The kind of object receiving the permission. Valid values are
+'SEQUENCE', 'TYPE', and 'DERBY AGGREGATE'.
OBJECTID
@@ -75,9 +75,9 @@ values are 'SEQUENCE' and 'TYP
false
The UUID of the object receiving the permission. For
sequence generators, the only valid values are SEQUENCEIDs in the
-SYS.SYSSEQUENCES table. For user-defined types, the only valid values are
-ALIASIDs in the SYS.SYSALIASES table if the SYSALIASES row describes a
-user-defined type.
+SYS.SYSSEQUENCES table. For user-defined types and user-defined aggregates, the
+only valid values are ALIASIDs in the SYS.SYSALIASES table if the SYSALIASES row
+describes a user-defined type or user-defined aggregate.
PERMISSION
@@ -108,9 +108,10 @@ privilege was granted
CHAR
1
false
-If the GRANTEE is the owner of the sequence generator or
-user-defined type, this value is 'Y'. If the GRANTEE is not the owner of
-the sequence generator or user-defined type, this value is 'N'.
+If the GRANTEE is the owner of the sequence generator,
+user-defined type, or user-defined aggregate, this value is 'Y'. If the
+GRANTEE is not the owner of the sequence generator, user-defined type, or
+user-defined aggregate, this value is 'N'.
Modified: db/derby/docs/trunk/src/ref/rrefsqlj27781.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/ref/rrefsqlj27781.dita?rev=1402539&r1=1402538&r2=1402539&view=diff
==============================================================================
--- db/derby/docs/trunk/src/ref/rrefsqlj27781.dita (original)
+++ db/derby/docs/trunk/src/ref/rrefsqlj27781.dita Fri Oct 26 15:05:08 2012
@@ -26,8 +26,12 @@ limitations under the License.
MAX is an aggregate function that evaluates the maximum of an
expression over a set of rows (see ).
-MAX is allowed only on expressions that evaluate to built-in data types (including
-CHAR, VARCHAR, DATE, TIME, CHAR FOR BIT DATA, etc.).
+MAX is allowed only on expressions that evaluate to indexable data types
+(specifically, those marked with a Y in the second table, "Comparisons allowed
+by ", in
+). This means that MAX
+cannot be used with expressions that evaluate to BLOB, CLOB, LONG VARCHAR, LONG
+VARCHAR FOR BIT DATA, XML, or user-defined types.
Syntax MAX ( [ DISTINCT | ALL ] Expression ) The
DISTINCT and ALL qualifiers eliminate or retain duplicates, but
these qualifiers have no effect in a MAX expression. Only one DISTINCT aggregate
Modified: db/derby/docs/trunk/src/ref/rrefsqlj33520.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/ref/rrefsqlj33520.dita?rev=1402539&r1=1402538&r2=1402539&view=diff
==============================================================================
--- db/derby/docs/trunk/src/ref/rrefsqlj33520.dita (original)
+++ db/derby/docs/trunk/src/ref/rrefsqlj33520.dita Fri Oct 26 15:05:08 2012
@@ -26,8 +26,12 @@ limitations under the License.
MIN is an aggregate function that evaluates the minimum of
an expression over a set of rows (see ).
-MIN is allowed only on expressions that evaluate to built-in data types (including
-CHAR, VARCHAR, DATE, TIME, etc.).
+MIN is allowed only on expressions that evaluate to indexable data types
+(specifically, those marked with a Y in the second table, "Comparisons allowed
+by ", in
+). This means that MIN
+cannot be used with expressions that evaluate to BLOB, CLOB, LONG VARCHAR, LONG
+VARCHAR FOR BIT DATA, XML, or user-defined types.
Syntax MIN ( [ DISTINCT | ALL ] Expression ) The
DISTINCT and ALL qualifiers eliminate or retain duplicates, but these qualifiers
have no effect in a MIN expression. Only one DISTINCT aggregate expression
Modified: db/derby/docs/trunk/src/ref/rrefsqlj33923.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/ref/rrefsqlj33923.dita?rev=1402539&r1=1402538&r2=1402539&view=diff
==============================================================================
--- db/derby/docs/trunk/src/ref/rrefsqlj33923.dita (original)
+++ db/derby/docs/trunk/src/ref/rrefsqlj33923.dita Fri Oct 26 15:05:08 2012
@@ -34,8 +34,21 @@ other built-in functions operate on a si
on a set of values and reduce them to a single scalar value. Built-in aggregates
can calculate the minimum, maximum, sum, count, and average of an expression
over a set of values as well as count rows.
-The built-in aggregates can operate on the data types shown in
-the following table.
+In addition to the built-in aggregates,
+ allows you to create
+custom aggregate operators, called user-defined aggregates (UDAs). For
+information on creating and removing UDAs, see
+ and
+. See
+ and
+ for information on usage
+privileges for UDAs.
+For information on writing the Java classes that implement UDAs, see
+"Programming user-defined aggregates" in the
+.
+
+The built-in aggregates can operate on expressions that evaluate to
+the data types shown in the following table.
Permitted data types for built-in aggregates
This table lists the data types that are valid for each of the built-in aggregates.
@@ -50,23 +63,23 @@ the following table.
-COUNT
+COUNT
All types
-MIN
-Numeric built-in data types
+MIN
+Data types that can be indexed
-MAX
-Numeric built-in data types
+MAX
+Data types that can be indexed
-AVG
+AVG
Numeric built-in data types
-SUM
+SUM
Numeric built-in data types
@@ -103,14 +116,6 @@ HAVING c2 >
WHERE t2.y = SUM(t1.c3))
A cursor declared on a ResultSet that includes an aggregate
in the outer query block is not updatable.
- supports
-the following aggregates:
Added: db/derby/docs/trunk/src/ref/rrefsqljcreateaggregate.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/ref/rrefsqljcreateaggregate.dita?rev=1402539&view=auto
==============================================================================
--- db/derby/docs/trunk/src/ref/rrefsqljcreateaggregate.dita (added)
+++ db/derby/docs/trunk/src/ref/rrefsqljcreateaggregate.dita Fri Oct 26 15:05:08 2012
@@ -0,0 +1,104 @@
+
+
+
+
+
+CREATE DERBY AGGREGATE statement
+
+CREATE DERBY AGGREGATE statement
+SQL statementsCREATE DERBY AGGREGATE
+user-defined aggregatescreating
+aggregatesuser-defined
+
+
+
+The CREATE DERBY AGGREGATE statement creates a user-defined
+aggregate (UDA). A UDA is a custom aggregate operator.
+Syntax
+CREATE DERBY AGGREGATE [ schemaName. ] SQL92Identifier
+FOR ValueDataType
+[ RETURNS ReturnDataType ]
+EXTERNAL NAME ClassNameString
+The aggregate name is composed of an optional schemaName and a
+SQL92Identifier. If a schemaName is not provided, the current
+schema is the default schema. If a qualified aggregate name is specified, the
+schema name cannot begin with SYS.
+In general, UDAs live in the same namespace as one-argument user-defined
+functions (see
+).
+A schema-qualified UDA name may not be the schema-qualified name of a
+one-argument user-defined function.
+An unqualified UDA name may not be the name of an aggregate defined in
+part 2 of the SQL Standard, section 10.9:
+ANY
+AVG
+COLLECT
+COUNT
+EVERY
+FUSION
+INTERSECTION
+MAX
+MIN
+SOME
+STDDEV_POP
+STDDEV_SAMP
+SUM
+VAR_POP
+VAR_SAMP
+In addition, an unqualified UDA name may not be the name of any of the
+ built-in functions
+which take one argument.
+The ValueDataType can be any valid nullable
+ data type except for
+XML, including user-defined types.
+The ReturnDataType can be any valid nullable
+ data type except for
+XML. If the ReturnDataType is omitted, it defaults to be the same as
+ValueDataType.
+The ClassNameString is a single-quoted string. It is the full name of
+a Java class which implements the org.apache.derby.agg.Aggregator
+interface. That contract is not checked until a statement is compiled which
+invokes the UDA.
+The owner of the schema where the UDA lives automatically gains the USAGE
+privilege on the UDA and can grant this privilege to other users and roles. Only
+the database owner and
+the owner of the UDA can grant these USAGE privileges. The USAGE privilege
+cannot be revoked from the schema owner. See
+ and
+ for more
+information.
+
+Examples
+CREATE DERBY AGGREGATE mode FOR INT
+EXTERNAL NAME 'com.example.myapp.aggs.Mode';
+
+CREATE DERBY AGGREGATE types.maxPrice FOR PRICE
+EXTERNAL NAME 'com.example.myapp.types.PriceMaxer';
+
+CREATE DERBY AGGREGATE types.avgLength FOR VECTOR
+RETURNS DOUBLE
+EXTERNAL NAME 'com.example.myapp.types.VectorLength';
+See "Programming user-defined aggregates" in the
+ for more details about
+creating and using user-defined aggregates.
+
+
+
Propchange: db/derby/docs/trunk/src/ref/rrefsqljcreateaggregate.dita
------------------------------------------------------------------------------
svn:eol-style = native
Added: db/derby/docs/trunk/src/ref/rrefsqljdropaggregate.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/ref/rrefsqljdropaggregate.dita?rev=1402539&view=auto
==============================================================================
--- db/derby/docs/trunk/src/ref/rrefsqljdropaggregate.dita (added)
+++ db/derby/docs/trunk/src/ref/rrefsqljdropaggregate.dita Fri Oct 26 15:05:08 2012
@@ -0,0 +1,57 @@
+
+
+
+
+
+DROP DERBY AGGREGATE statement
+
+DROP DERBY AGGREGATE statement
+SQL statementsDROP DERBY AGGREGATE
+user-defined aggregatesdropping
+aggregatesuser-defined
+
+
+
+The DROP DERBY AGGREGATE statement removes a user-defined aggregate
+(UDA) that was created using a
+.
+
+Syntax
+DROP DERBY AGGREGATE [ schemaName. ] SQL92Identifier RESTRICT
+The aggregate name is composed of an optional schemaName and a
+SQL92Identifier. If a schemaName is not provided, the current
+schema is the default schema. If a qualified aggregate name is specified, the
+schema name cannot begin with SYS.
+The RESTRICT keyword is required. CASCADE semantics are not supported. That
+is, will not track down
+and drop orphaned objects.
+Dropping a UDA implicitly drops all USAGE privileges that reference it. See
+ and
+ for more
+information.
+ raises an error if a
+trigger or view references the UDA.
+
+Example
+DROP DERBY AGGREGATE mode RESTRICT;
+
+
+
Propchange: db/derby/docs/trunk/src/ref/rrefsqljdropaggregate.dita
------------------------------------------------------------------------------
svn:eol-style = native
Modified: db/derby/docs/trunk/src/ref/rrefsqljgrant.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/ref/rrefsqljgrant.dita?rev=1402539&r1=1402538&r2=1402539&view=diff
==============================================================================
--- db/derby/docs/trunk/src/ref/rrefsqljgrant.dita (original)
+++ db/derby/docs/trunk/src/ref/rrefsqljgrant.dita Fri Oct 26 15:05:08 2012
@@ -40,7 +40,8 @@ from a table.
Create a trigger on a table.
Update data in a table or in a subset of columns in a table.
Run a specified function or procedure.
-Use a sequence generator or a user-defined type.
+Use a sequence generator, a user-defined type, or a user-defined
+aggregate.
Before you issue a GRANT statement, check that the
derby.database.sqlAuthorization property
is set to true. The derby.database.sqlAuthorization property
@@ -85,6 +86,18 @@ information.
SQL92Identifier. If a schemaName is not provided, the current
schema is the default schema. If a qualified type name is specified, the schema
name cannot begin with SYS.
+Syntax for user-defined aggregates
+GRANT USAGE ON DERBY AGGREGATE [ schemaName. ] SQL92Identifier TO grantees
+In order to use a user-defined aggregate, you must have the USAGE privilege
+on it. This privilege can be granted to users and to roles. See
+ for
+more information.
+The aggregate name is composed of an optional schemaName and a
+SQL92Identifier. If a schemaName is not provided, the current
+schema is the default schema. If a qualified aggregate name is specified, the
+schema name cannot begin with SYS.
Syntax for roles
GRANT roleName [ {, roleName }* ] TO
price to the role finance_role, use the
following syntax:
GRANT USAGE ON TYPE price TO finance_role;
+To grant the USAGE privilege on the user-defined aggregate
+types.maxPrice to the role sales_role, use the
+following syntax:
+GRANT USAGE ON DERBY AGGREGATE types.maxPrice TO sales_role;
-
Modified: db/derby/docs/trunk/src/ref/rrefsqljrevoke.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/ref/rrefsqljrevoke.dita?rev=1402539&r1=1402538&r2=1402539&view=diff
==============================================================================
--- db/derby/docs/trunk/src/ref/rrefsqljrevoke.dita (original)
+++ db/derby/docs/trunk/src/ref/rrefsqljrevoke.dita Fri Oct 26 15:05:08 2012
@@ -39,7 +39,8 @@ from a table.
Create a trigger on a table.
Update data in a table or in a subset of columns in a table.
Run a specified routine (function or procedure).
-Use a sequence generator or a user-defined type.
+Use a sequence generator, a user-defined type, or a user-defined
+aggregate.
The
derby.database.sqlAuthorization
property must be set to true before you can use the GRANT
@@ -95,6 +96,21 @@ information.
SQL92Identifier. If a schemaName is not provided, the current
schema is the default schema. If a qualified type name is specified, the schema
name cannot begin with SYS.
+Syntax for user-defined aggregates
+REVOKE USAGE ON DERBY AGGREGATE [ schemaName. ] SQL92Identifier FROM grantees RESTRICT
+In order to use a user-defined aggregate, you must have the USAGE privilege
+on it. This privilege can be revoked from users and roles. Only RESTRICTed
+revokes are allowed. This means that the REVOKE statement cannot make a view or
+trigger unusable by its owner. The USAGE privilege cannot be revoked from the
+schema owner. See
+ for
+more information.
+The aggregate name is composed of an optional schemaName and a
+SQL92Identifier. If a schemaName is not provided, the current
+schema is the default schema. If a qualified aggregate name is specified, the
+schema name cannot begin with SYS.
Syntax for roles
REVOKE roleName [ {, roleName }* ] FROM
price from the role finance_role, use the
following syntax:
REVOKE USAGE ON TYPE price FROM finance_role;
+To revoke the USAGE privilege on the user-defined aggregate
+types.maxPrice from the role sales_role, use
+the following syntax:
+REVOKE USAGE ON DERBY AGGREGATE types.maxPrice FROM sales_role;
Modified: db/derby/docs/trunk/src/tools/ctoolsgenddldb.dita
URL: http://svn.apache.org/viewvc/db/derby/docs/trunk/src/tools/ctoolsgenddldb.dita?rev=1402539&r1=1402538&r2=1402539&view=diff
==============================================================================
--- db/derby/docs/trunk/src/tools/ctoolsgenddldb.dita (original)
+++ db/derby/docs/trunk/src/tools/ctoolsgenddldb.dita Fri Oct 26 15:05:08 2012
@@ -34,6 +34,9 @@ generating the DDL for a database:
Triggers
Tables
Views
+Roles
+User-defined types
+User-defined aggregates
When dblook runs against a database that has jar files
installed, it will create a new directory, called DERBYJARS, within