Represents the input/output argument information of the method of the class for which the current user has access authorization to a database.
Attribute Name |
Data Type |
Description |
---|---|---|
meth_name |
VARCHAR(255) |
Method name |
class_name |
VARCHAR(255) |
Name of the class to which the method belongs |
meth_type |
VARCHAR(8) |
‘INSTANCE’ for an instance method, and 'CLASS' for a class method. |
index_of |
INTEGER |
Order in which arguments are listed in the function definition. Begins with 0 if it is a return value, and 1 if it is an input argument. |
data_type |
VARCHAR(9) |
Data type of the argument |
prec |
INTEGER |
Precision of the argument |
scale |
INTEGER |
Scale of the argument |
code_set |
INTEGER |
Character set if the data type of the argument is a character. |
domain_class_name |
VARCHAR(255) |
Domain class name if the data type of the argument is an object. |
CREATE VCLASS db_meth_arg (
meth_name, class_name, meth_type,
index_of, data_type, prec, scale, code_set, domain_class_name)
AS
SELECT s.meth_of.meth_name, s.meth_of.class_of.class_name,
CASE WHEN s.meth_of.meth_type = 0 THEN 'INSTANCE' ELSE 'CLASS' END,
a.index_of, t.type_name, d.prec, d.scale, d.code_set,
d.class_of.class_name
FROM _db_meth_sig s, _db_meth_arg a, _db_domain d, _db_data_type t
WHERE a.meth_sig_of = s AND d.object_of = a AND d.data_type = t.type_id AND
(CURRENT_USER = 'DBA' OR
{s.meth_of.class_of.owner.name} subseteq (
SELECT set{CURRENT_USER} + coalesce(sum(set{t.g.name}), set{})
from db_user u, table(groups) as t(g)
where u.name = CURRENT_USER ) OR
{s.meth_of.class_of} subseteq (
SELECT sum(set{au.class_of})
FROM _db_auth au
WHERE {au.grantee.name} subseteq (
SELECT set{CURRENT_USER} + coalesce(sum(set{t.g.name}), set{})
from db_user u, table(groups) as t(g)
where u.name = CURRENT_USER ) AND
au.auth_type = 'SELECT'));
The following example shows how to retrieve input arguments of the method of the ‘db_user’ class.
SELECT meth_name, data_type, prec
FROM db_meth_arg
WHERE class_name = 'db_user';
meth_name data_type prec
=========================================================
'append_data' 'STRING' 1073741823