You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by rm...@apache.org on 2018/08/03 23:03:25 UTC
[1/4] trafodion git commit: Fix for TRAFODION-3112
Repository: trafodion
Updated Branches:
refs/heads/master f4a072170 -> 4ec0da84b
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/regress/privs1/EXPECTED125
----------------------------------------------------------------------
diff --git a/core/sql/regress/privs1/EXPECTED125 b/core/sql/regress/privs1/EXPECTED125
index 47a5921..49b5283 100644
--- a/core/sql/regress/privs1/EXPECTED125
+++ b/core/sql/regress/privs1/EXPECTED125
@@ -673,8 +673,8 @@ S------ SQL_USER2
--- SQL operation complete.
>>get privileges on library t125_l1;
-Privileges on Sequence T125SCH1.T125_L1
-=======================================
+Privileges on Library T125SCH1.T125_L1
+======================================
---UG-- DB__ROOT
----G-- T125_ROLE1
@@ -688,8 +688,8 @@ Privileges on Sequence T125SCH1.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for sql_user2;
-Privileges on Sequence T125SCH1.T125_L1
-=======================================
+Privileges on Library T125SCH1.T125_L1
+======================================
----G-- T125_ROLE1
@@ -699,8 +699,8 @@ Privileges on Sequence T125SCH1.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for sql_user7;
-Privileges on Sequence T125SCH1.T125_L1
-=======================================
+Privileges on Library T125SCH1.T125_L1
+======================================
----G-- T125_ROLE1
@@ -713,8 +713,8 @@ Privileges on Sequence T125SCH1.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for t125_role1;
-Privileges on Sequence T125SCH1.T125_L1
-=======================================
+Privileges on Library T125SCH1.T125_L1
+======================================
----G-- T125_ROLE1
@@ -855,8 +855,8 @@ S------ SQL_USER2
--- SQL operation complete.
>>get privileges on library t125_l1;
-Privileges on Sequence T125SCH2.T125_L1
-=======================================
+Privileges on Library T125SCH2.T125_L1
+======================================
---UG-- DB__ROOT
----G-- T125_ROLE1
@@ -870,8 +870,8 @@ Privileges on Sequence T125SCH2.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for sql_user2;
-Privileges on Sequence T125SCH2.T125_L1
-=======================================
+Privileges on Library T125SCH2.T125_L1
+======================================
----G-- T125_ROLE1
@@ -881,8 +881,8 @@ Privileges on Sequence T125SCH2.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for sql_user7;
-Privileges on Sequence T125SCH2.T125_L1
-=======================================
+Privileges on Library T125SCH2.T125_L1
+======================================
----G-- T125_ROLE1
@@ -895,8 +895,8 @@ Privileges on Sequence T125SCH2.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for t125_role1;
-Privileges on Sequence T125SCH2.T125_L1
-=======================================
+Privileges on Library T125SCH2.T125_L1
+======================================
----G-- T125_ROLE1
@@ -1078,8 +1078,8 @@ S----R- T125_ADMINROLE
--- SQL operation complete.
>>get privileges on library t125_l1;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
---UG-- T125_ADMINROLE
----G-- T125_ROLE1
@@ -1093,8 +1093,8 @@ Privileges on Sequence T125SCH3.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for sql_user2;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
----G-- T125_ROLE1
@@ -1104,8 +1104,8 @@ Privileges on Sequence T125SCH3.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for sql_user7;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
----G-- T125_ROLE1
@@ -1115,8 +1115,8 @@ Privileges on Sequence T125SCH3.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for sql_user8;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
---UG-- T125_ADMINROLE
@@ -1126,8 +1126,8 @@ Privileges on Sequence T125SCH3.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for t125_role1;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
----G-- T125_ROLE1
@@ -1137,8 +1137,8 @@ Privileges on Sequence T125SCH3.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for t125_adminrole;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
---UG-- T125_ADMINROLE
@@ -1472,6 +1472,43 @@ TESTHIVE
--- SQL operation complete.
>>
+>>get procedures for user sql_user1;
+
+Procedures for User SQL_USER1
+=============================
+
+TESTHIVE
+
+=======================
+ 1 row(s) returned
+
+--- SQL operation complete.
+>>get procedures for user sql_user7;
+
+--- SQL operation complete.
+>>get functions for role t125_role1;
+
+Functions for Role T125_ROLE1
+=============================
+
+TRANSLATEBITMAP
+
+=======================
+ 1 row(s) returned
+
+--- SQL operation complete.
+>>get functions for role t125_adminrole;
+
+Functions for Role T125_ADMINROLE
+=================================
+
+TRANSLATEBITMAP
+
+=======================
+ 1 row(s) returned
+
+--- SQL operation complete.
+>>
>>set schema t125sch3;
--- SQL operation complete.
@@ -1602,8 +1639,8 @@ T125_L2
--- SQL operation complete.
>>get privileges on library t125_l1;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
---UG-- T125_ADMINROLE
----G-- T125_ROLE1
@@ -1614,8 +1651,8 @@ Privileges on Sequence T125SCH3.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for user sql_user8;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
---UG-- T125_ADMINROLE
@@ -1669,6 +1706,42 @@ T125SCH3.TESTHIVE
--- SQL operation complete.
>>
+>>get procedures for user sql_user1;
+
+Procedures for User SQL_USER1
+=============================
+
+TESTHIVE
+
+=======================
+ 1 row(s) returned
+
+--- SQL operation complete.
+>>get procedures for user sql_user7;
+
+--- SQL operation complete.
+>>get functions for role t125_role1;
+
+Functions for Role T125_ROLE1
+=============================
+
+TRANSLATEBITMAP
+
+=======================
+ 1 row(s) returned
+
+--- SQL operation complete.
+>>get functions for role t125_adminrole;
+
+Functions for Role T125_ADMINROLE
+=================================
+
+TRANSLATEBITMAP
+
+=======================
+ 1 row(s) returned
+
+--- SQL operation complete.
>>
>>
>>revoke component privilege "SHOW" on sql_operations from "PUBLIC";
@@ -1780,6 +1853,27 @@ T125SCH3.PLAYERS_SEQUENCE
--- SQL operation complete.
>>
+>>get procedures for user sql_user1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get procedures for user sql_user7;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_role1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_adminrole;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>
>>set schema t125sch3;
--- SQL operation complete.
@@ -1890,8 +1984,8 @@ T125_L2
--- SQL operation complete.
>>get privileges on library t125_l1;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
---UG-- T125_ADMINROLE
@@ -1901,8 +1995,8 @@ Privileges on Sequence T125SCH3.T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1 for user sql_user8;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
---UG-- T125_ADMINROLE
@@ -1956,6 +2050,26 @@ T125SCH3.TESTHIVE
--- SQL operation complete.
>>
+>>get procedures for user sql_user1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get procedures for user sql_user7;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_role1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_adminrole;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
>>
>>exit;
@@ -2090,6 +2204,33 @@ TESTHIVE
--- SQL operation complete.
>>
+>>get procedures for user sql_user1;
+
+Procedures for User SQL_USER1
+=============================
+
+TESTHIVE
+
+=======================
+ 1 row(s) returned
+
+--- SQL operation complete.
+>>get procedures for user sql_user7;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_role1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_adminrole;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>
>>set schema t125sch3;
--- SQL operation complete.
@@ -2186,6 +2327,32 @@ T125SCH2.PLAYERS_SEQUENCE
--- SQL operation complete.
>>
+>>get procedures for user sql_user1;
+
+Procedures for User SQL_USER1
+=============================
+
+TESTHIVE
+
+=======================
+ 1 row(s) returned
+
+--- SQL operation complete.
+>>get procedures for user sql_user7;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_role1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_adminrole;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
>>
>>exit;
@@ -2349,6 +2516,27 @@ GAMES_BY_PLAYER
--- SQL operation complete.
>>
+>>get procedures for user sql_user1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get procedures for user sql_user7;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_role1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_adminrole;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>
>>set schema t125sch3;
--- SQL operation complete.
@@ -2430,8 +2618,8 @@ T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
----G-- T125_ROLE1
@@ -2472,6 +2660,26 @@ T125SCH3.TRANSLATEBITMAP
--- SQL operation complete.
>>
+>>get procedures for user sql_user1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get procedures for user sql_user7;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_role1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_adminrole;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
>>
>>exit;
@@ -2585,6 +2793,25 @@ TEAMS
--- SQL operation complete.
>>
+>>get procedures for user sql_user1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get procedures for user sql_user7;
+
+--- SQL operation complete.
+>>get functions for role t125_role1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_adminrole;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>
>>set schema t125sch3;
--- SQL operation complete.
@@ -2639,8 +2866,8 @@ T125_L1
--- SQL operation complete.
>>get privileges on library t125_l1;
-Privileges on Sequence T125SCH3.T125_L1
-=======================================
+Privileges on Library T125SCH3.T125_L1
+======================================
----G-- T125_ROLE1
@@ -2681,6 +2908,24 @@ T125SCH3.TRANSLATEBITMAP
--- SQL operation complete.
>>
+>>get procedures for user sql_user1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get procedures for user sql_user7;
+
+--- SQL operation complete.
+>>get functions for role t125_role1;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
+>>get functions for role t125_adminrole;
+
+*** ERROR[1017] You are not authorized to perform this operation.
+
+--- SQL operation failed with errors.
>>
>>exit;
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/regress/privs1/TEST125
----------------------------------------------------------------------
diff --git a/core/sql/regress/privs1/TEST125 b/core/sql/regress/privs1/TEST125
index c29eb36..5a8e6e3 100644
--- a/core/sql/regress/privs1/TEST125
+++ b/core/sql/regress/privs1/TEST125
@@ -284,6 +284,11 @@ get libraries in schema t125sch2;
get functions in schema t125sch2;
get procedures in schema t125sch2;
+get procedures for user sql_user1;
+get procedures for user sql_user7;
+get functions for role t125_role1;
+get functions for role t125_adminrole;
+
set schema t125sch3;
get tables;
get privileges on table games;
@@ -304,3 +309,7 @@ get procedures;
get functions for library t125_l1;
get procedures for library t125_l2;
+get procedures for user sql_user1;
+get procedures for user sql_user7;
+get functions for role t125_role1;
+get functions for role t125_adminrole;
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/sqlcomp/CmpDDLCatErrorCodes.h
----------------------------------------------------------------------
diff --git a/core/sql/sqlcomp/CmpDDLCatErrorCodes.h b/core/sql/sqlcomp/CmpDDLCatErrorCodes.h
index e372a3e..8ecf17e 100644
--- a/core/sql/sqlcomp/CmpDDLCatErrorCodes.h
+++ b/core/sql/sqlcomp/CmpDDLCatErrorCodes.h
@@ -117,6 +117,7 @@ enum CatErrorCode { CAT_FIRST_ERROR = 1000
, CAT_CONSTRAINT_DATA_EXISTS = 1083
, CAT_ILLEGAL_DEFAULT_VALUE_FORMAT = 1084
// unused = 1085
+ , CAT_IS_NOT_CORRECT_AUTHID = 1086
// unused = 1086
// unused = 1087
// unused = 1088
[4/4] trafodion git commit: Merge [TRAFODION-3112] pr 1669 get
command updates
Posted by rm...@apache.org.
Merge [TRAFODION-3112] pr 1669 get command updates
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/4ec0da84
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/4ec0da84
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/4ec0da84
Branch: refs/heads/master
Commit: 4ec0da84bc9341622bfcbbf5be98bcf5417574a5
Parents: f4a0721 a666773
Author: Roberta Marton <ro...@apache.org>
Authored: Fri Aug 3 23:03:05 2018 +0000
Committer: Roberta Marton <ro...@apache.org>
Committed: Fri Aug 3 23:03:05 2018 +0000
----------------------------------------------------------------------
core/sql/bin/SqlciErrors.txt | 2 +-
core/sql/comexe/ComTdbExeUtil.h | 110 +-
core/sql/executor/ExExeUtilGet.cpp | 1024 ++++++++----------
core/sql/generator/GenRelExeUtil.cpp | 31 +-
core/sql/parser/ParKeyWords.cpp | 2 +-
core/sql/parser/sqlparser.y | 51 +-
core/sql/parser/ulexer.cpp | 18 +
core/sql/regress/compGeneral/EXPECTEDTOK | 5 +-
core/sql/regress/compGeneral/EXPECTEDTOK2 | 5 +-
core/sql/regress/privs1/EXPECTED125 | 325 +++++-
core/sql/regress/privs1/TEST125 | 9 +
core/sql/sqlcomp/CmpDDLCatErrorCodes.h | 1 +
.../src/asciidoc/_chapters/ddl_msgs.adoc | 20 +
13 files changed, 883 insertions(+), 720 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/4ec0da84/core/sql/bin/SqlciErrors.txt
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/4ec0da84/core/sql/parser/ParKeyWords.cpp
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/4ec0da84/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
[2/4] trafodion git commit: Fix for TRAFODION-3112
Posted by rm...@apache.org.
Fix for TRAFODION-3112
Internal error: get ... for user/role
Heading incorrect for libraries
Parser error: get procedures/table_mapping functions/functions for user/role
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/3d013bc2
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/3d013bc2
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/3d013bc2
Branch: refs/heads/master
Commit: 3d013bc2adb46d139ee027a6c878e8ec2c4d5f5a
Parents: ce62bc5
Author: Roberta Marton <ro...@apache.org>
Authored: Mon Jul 30 22:51:13 2018 +0000
Committer: Roberta Marton <ro...@apache.org>
Committed: Mon Jul 30 22:51:13 2018 +0000
----------------------------------------------------------------------
core/sql/bin/SqlciErrors.txt | 2 +-
core/sql/comexe/ComTdbExeUtil.h | 110 +--
core/sql/executor/ExExeUtilGet.cpp | 1024 ++++++++++--------------
core/sql/generator/GenRelExeUtil.cpp | 31 +-
core/sql/parser/ParKeyWords.cpp | 2 +-
core/sql/parser/sqlparser.y | 51 +-
core/sql/parser/ulexer.cpp | 18 +
core/sql/regress/compGeneral/EXPECTEDTOK | 5 +-
core/sql/regress/compGeneral/EXPECTEDTOK2 | 5 +-
core/sql/regress/privs1/EXPECTED125 | 325 +++++++-
core/sql/regress/privs1/TEST125 | 9 +
core/sql/sqlcomp/CmpDDLCatErrorCodes.h | 1 +
12 files changed, 863 insertions(+), 720 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/bin/SqlciErrors.txt
----------------------------------------------------------------------
diff --git a/core/sql/bin/SqlciErrors.txt b/core/sql/bin/SqlciErrors.txt
index 3437cef..75abfab 100644
--- a/core/sql/bin/SqlciErrors.txt
+++ b/core/sql/bin/SqlciErrors.txt
@@ -85,7 +85,7 @@
1083 ZZZZZ 99999 BEGINNER MAJOR DBADMIN Validation for constraint $0~ConstraintName failed; incompatible data exists in table.
1084 ZZZZZ 99999 BEGINNER MINOR DBADMIN An invalid default value was specified for column $0~ColumnName.
1085 ZZZZZ 99999 BEGINNER MAJOR DBADMIN --- unused ---
-1086 ZZZZZ 99999 UUUUUUUU UUUUU UUUUUUU --- unused ---
+1086 ZZZZZ 99999 BEGINNER MAJOR DBADMIN $0~string0 is not a $1~string1.
1087 ZZZZZ 99999 BEGINNER MAJOR DBADMIN --- unused ---
1088 ZZZZZ 99999 BEGINNER MINOR DBADMIN --- unused ---
1089 ZZZZZ 99999 BEGINNER MINOR DBADMIN The system generated column SYSKEY must be specified last or not specified at all in the index column list.
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/comexe/ComTdbExeUtil.h
----------------------------------------------------------------------
diff --git a/core/sql/comexe/ComTdbExeUtil.h b/core/sql/comexe/ComTdbExeUtil.h
index 39cd249..afb29fb 100644
--- a/core/sql/comexe/ComTdbExeUtil.h
+++ b/core/sql/comexe/ComTdbExeUtil.h
@@ -2381,90 +2381,106 @@ public:
HIVE_EXT_TABLES_IN_CATALOG_,
HBASE_REG_TABLES_IN_CATALOG_,
- TABLES_IN_SCHEMA_,
+ FUNCTIONS_IN_SCHEMA_,
INDEXES_IN_SCHEMA_,
- VIEWS_IN_SCHEMA_,
+ INVALID_VIEWS_IN_SCHEMA_,
LIBRARIES_IN_SCHEMA_,
- MVS_IN_SCHEMA_,
- MVGROUPS_IN_SCHEMA_,
- PRIVILEGES_ON_SCHEMA_,
+ OBJECTS_IN_SCHEMA_,
PROCEDURES_IN_SCHEMA_,
SEQUENCES_IN_SCHEMA_,
- SYNONYMS_IN_SCHEMA_,
- FUNCTIONS_IN_SCHEMA_,
TABLE_FUNCTIONS_IN_SCHEMA_,
-
- OBJECTS_IN_SCHEMA_,
- INVALID_VIEWS_IN_SCHEMA_,
+ TABLES_IN_SCHEMA_,
+ VIEWS_IN_SCHEMA_,
INDEXES_ON_TABLE_,
- INDEXES_ON_MV_,
+ OBJECTS_ON_TABLE_,
VIEWS_ON_TABLE_,
VIEWS_ON_VIEW_,
- MVS_ON_TABLE_,
- MVS_ON_VIEW_,
- MVS_ON_MV_,
- MVGROUPS_ON_TABLE_,
- PRIVILEGES_ON_TABLE_,
- PRIVILEGES_ON_MV_,
- PRIVILEGES_ON_VIEW_,
- PRIVILEGES_ON_SEQUENCE_,
- SYNONYMS_ON_TABLE_,
- OBJECTS_ON_TABLE_,
- PARTITIONS_FOR_TABLE_,
+ FUNCTIONS_FOR_LIBRARY_,
PARTITIONS_FOR_INDEX_,
+ PARTITIONS_FOR_TABLE_,
+ PROCEDURES_FOR_LIBRARY_,
+ TABLE_FUNCTIONS_FOR_LIBRARY_,
+ OBJECTS_IN_VIEW_,
TABLES_IN_VIEW_,
VIEWS_IN_VIEW_,
- OBJECTS_IN_VIEW_,
- TABLES_IN_MV_,
- MVS_IN_MV_,
- OBJECTS_IN_MV_,
ROLES_,
-
ROLES_FOR_ROLE_,
+ ROLES_FOR_USER_,
+ USERS_,
USERS_FOR_ROLE_,
- PRIVILEGES_FOR_ROLE_,
- USERS_,
+ FUNCTIONS_FOR_ROLE_,
+ INDEXES_FOR_ROLE_,
+ LIBRARIES_FOR_ROLE_,
+ PRIVILEGES_FOR_ROLE_,
+ PROCEDURES_FOR_ROLE_,
+ SCHEMAS_FOR_ROLE_,
+ TABLES_FOR_ROLE_,
+ TABLE_FUNCTIONS_FOR_ROLE_,
+ VIEWS_FOR_ROLE_,
+ FUNCTIONS_FOR_USER_,
INDEXES_FOR_USER_,
LIBRARIES_FOR_USER_,
- MVGROUPS_FOR_USER_,
- MVS_FOR_USER_,
PRIVILEGES_FOR_USER_,
PROCEDURES_FOR_USER_,
- ROLES_FOR_USER_,
SCHEMAS_FOR_USER_,
- SYNONYMS_FOR_USER_,
TABLES_FOR_USER_,
- TRIGGERS_FOR_USER_,
+ TABLE_FUNCTIONS_FOR_USER_,
VIEWS_FOR_USER_,
-
- PROCEDURES_FOR_LIBRARY_,
- FUNCTIONS_FOR_LIBRARY_,
- TABLE_FUNCTIONS_FOR_LIBRARY_,
+
PRIVILEGES_ON_LIBRARY_,
PRIVILEGES_ON_PROCEDURE_,
PRIVILEGES_ON_ROUTINE_,
+ PRIVILEGES_ON_TABLE_,
+ PRIVILEGES_ON_SCHEMA_,
+ PRIVILEGES_ON_SEQUENCE_,
+ PRIVILEGES_ON_VIEW_,
COMPONENTS_,
COMPONENT_OPERATIONS_,
COMPONENT_PRIVILEGES_,
- IUDLOG_TABLES_IN_SCHEMA_,
- RANGELOG_TABLES_IN_SCHEMA_,
- TRIGTEMP_TABLES_IN_SCHEMA_,
- IUDLOG_TABLE_ON_TABLE_,
- RANGELOG_TABLE_ON_TABLE_,
- TRIGTEMP_TABLE_ON_TABLE_,
- IUDLOG_TABLE_ON_MV_,
- RANGELOG_TABLE_ON_MV_,
- TRIGTEMP_TABLE_ON_MV_,
HBASE_OBJECTS_
+ // Not supported at this time
+ // Kept around because we may support synonyms, triggers, or MV sometime
+
+ //MVGROUPS_FOR_USER_,
+ //MVS_FOR_USER_,
+ //SYNONYMS_FOR_USER_,
+ //TRIGGERS_FOR_USER_,
+ //MVS_IN_MV_,
+
+ //OBJECTS_IN_MV_,
+ //TABLES_IN_MV_,
+
+ //IUDLOG_TABLES_IN_SCHEMA_,
+ //MVS_IN_SCHEMA_,
+ //MVGROUPS_IN_SCHEMA_,
+ //RANGELOG_TABLES_IN_SCHEMA_,
+ //SYNONYMS_IN_SCHEMA_,
+ //TRIGTEMP_TABLES_IN_SCHEMA_,
+
+ //INDEXES_ON_MV_,
+ //IUDLOG_TABLE_ON_MV_,
+ //MVS_ON_MV_,
+ //PRIVILEGES_ON_MV_,
+ //RANGELOG_TABLE_ON_MV_,
+ //TRIGTEMP_TABLE_ON_MV_,
+
+ //IUDLOG_TABLE_ON_TABLE_,
+ //MVS_ON_TABLE_,
+ //MVGROUPS_ON_TABLE_,
+ //RANGELOG_TABLE_ON_TABLE_,
+ //SYNONYMS_ON_TABLE_,
+ //TRIGTEMP_TABLE_ON_TABLE_,
+
+ //MVS_ON_VIEW_,
};
ComTdbExeUtilGetMetadataInfo()
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/executor/ExExeUtilGet.cpp
----------------------------------------------------------------------
diff --git a/core/sql/executor/ExExeUtilGet.cpp b/core/sql/executor/ExExeUtilGet.cpp
index e66ef01..b54674e 100644
--- a/core/sql/executor/ExExeUtilGet.cpp
+++ b/core/sql/executor/ExExeUtilGet.cpp
@@ -103,9 +103,9 @@ ex_tcb * ExExeUtilGetMetadataInfoTdb::build(ex_globals * glob)
(queryType() == ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_SCHEMA_))
exe_util_tcb =
new(glob->getSpace()) ExExeUtilGetMetadataInfoComplexTcb(*this, glob);
- else if (getVersion())
- exe_util_tcb =
- new(glob->getSpace()) ExExeUtilGetMetadataInfoVersionTcb(*this, glob);
+ //else if (getVersion())
+ // exe_util_tcb =
+ // new(glob->getSpace()) ExExeUtilGetMetadataInfoVersionTcb(*this, glob);
else if (queryType() == ComTdbExeUtilGetMetadataInfo::HBASE_OBJECTS_)
exe_util_tcb =
new(glob->getSpace()) ExExeUtilGetHbaseObjectsTcb(*this, glob);
@@ -394,6 +394,18 @@ static const QueryString getTrafLibrariesForUser[] =
{" ; "}
};
+static const QueryString getTrafRoutinesForAuthQuery[] =
+{
+ {" select distinct object_name from "},
+ {" %s.\"%s\".%s T, %s.\"%s\".%s R "},
+ {" where T.catalog_name = '%s' and "},
+ {" T.object_type = 'UR' and "},
+ {" T.object_uid = R.udr_uid and "},
+ {" R.udr_type = '%s' %s "},
+ {" order by 1 "},
+ {" ; "}
+};
+
static const QueryString getTrafFunctionsInSchemaQuery[] =
{
{" select object_name from "},
@@ -844,12 +856,12 @@ Lng32 ExExeUtilGetMetadataInfoTcb::getUsedObjects(Queue * infoList,
strcpy(objectStr, "views");
else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_VIEW_)
strcpy(objectStr, "objects");
- else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_MV_)
- strcpy(objectStr, "tables");
- else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_IN_MV_)
- strcpy(objectStr, "mvs");
- else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_MV_)
- strcpy(objectStr, "objects");
+ //else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_MV_)
+ // strcpy(objectStr, "tables");
+ //else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_IN_MV_)
+ // strcpy(objectStr, "mvs");
+ //else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_MV_)
+ // strcpy(objectStr, "objects");
char inStr[10];
if (isShorthandView)
@@ -1089,13 +1101,6 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
}
break;
- case ComTdbExeUtilGetMetadataInfo::MVS_IN_SCHEMA_:
- {
- str_sprintf(headingBuf_, "MVs in Schema %s.%s",
- getMItdb().getCat(), getMItdb().getSch());
- }
- break;
-
case ComTdbExeUtilGetMetadataInfo::PROCEDURES_IN_SCHEMA_:
{
str_sprintf(headingBuf_, "Procedures in Schema %s.%s",
@@ -1117,13 +1122,6 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
}
break;
- case ComTdbExeUtilGetMetadataInfo::SYNONYMS_IN_SCHEMA_:
- {
- str_sprintf(headingBuf_, "Synonyms in Schema %s.%s",
- getMItdb().getCat(), getMItdb().getSch());
- }
- break;
-
case ComTdbExeUtilGetMetadataInfo::INDEXES_ON_TABLE_:
{
str_sprintf(headingBuf_, "Indexes on Table %s.%s",
@@ -1131,13 +1129,6 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
}
break;
- case ComTdbExeUtilGetMetadataInfo::INDEXES_ON_MV_:
- {
- str_sprintf(headingBuf_, "Indexes on MV %s.%s",
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
-
case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_SCHEMA_:
{
str_sprintf(headingBuf_, "Privileges on Schema %s.%s",
@@ -1152,13 +1143,6 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
}
break;
- case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_MV_:
- {
- str_sprintf(headingBuf_, "Privileges on MV %s.%s",
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
-
case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_VIEW_:
{
str_sprintf(headingBuf_, "Privileges on View %s.%s",
@@ -1175,7 +1159,7 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_LIBRARY_:
{
- str_sprintf(headingBuf_, "Privileges on Sequence %s.%s",
+ str_sprintf(headingBuf_, "Privileges on Library %s.%s",
getMItdb().getSch(), getMItdb().getObj());
}
break;
@@ -1187,13 +1171,6 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
}
break;
- case ComTdbExeUtilGetMetadataInfo::SYNONYMS_ON_TABLE_:
- {
- str_sprintf(headingBuf_, "Synonyms on Table %s.%s",
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
-
case ComTdbExeUtilGetMetadataInfo::VIEWS_ON_TABLE_:
case ComTdbExeUtilGetMetadataInfo::VIEWS_ON_VIEW_:
{
@@ -1204,16 +1181,6 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
}
break;
- case ComTdbExeUtilGetMetadataInfo::MVS_ON_TABLE_:
- case ComTdbExeUtilGetMetadataInfo::MVS_ON_MV_:
- {
- str_sprintf(headingBuf_,
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_ON_TABLE_
- ? "MVs on Table %s.%s" : "MVs ON MV %s.%s"),
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
-
case ComTdbExeUtilGetMetadataInfo::PARTITIONS_FOR_TABLE_:
{
str_sprintf(headingBuf_, "Partitions for Table %s.%s",
@@ -1221,42 +1188,6 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
}
break;
- case ComTdbExeUtilGetMetadataInfo::IUDLOG_TABLE_ON_TABLE_:
- {
- str_sprintf(headingBuf_, "Iudlog tables for Table %s.%s",
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
- case ComTdbExeUtilGetMetadataInfo::RANGELOG_TABLE_ON_TABLE_:
- {
- str_sprintf(headingBuf_, "Rangelog table for Table %s.%s",
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
- case ComTdbExeUtilGetMetadataInfo::TRIGTEMP_TABLE_ON_TABLE_:
- {
- str_sprintf(headingBuf_, "Trigger temp table for Table %s.%s",
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
- case ComTdbExeUtilGetMetadataInfo::IUDLOG_TABLE_ON_MV_:
- {
- str_sprintf(headingBuf_, "Iudlog table for MV %s.%s",
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
- case ComTdbExeUtilGetMetadataInfo::RANGELOG_TABLE_ON_MV_:
- {
- str_sprintf(headingBuf_, "Rangelog table for MV %s.%s",
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
- case ComTdbExeUtilGetMetadataInfo::TRIGTEMP_TABLE_ON_MV_:
- {
- str_sprintf(headingBuf_, "Trigger temp table for MV %s.%s",
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
case ComTdbExeUtilGetMetadataInfo::PARTITIONS_FOR_INDEX_:
{
str_sprintf(headingBuf_, "Partitions for Index %s.%s",
@@ -1271,26 +1202,6 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
}
break;
- case ComTdbExeUtilGetMetadataInfo::IUDLOG_TABLES_IN_SCHEMA_:
- {
- str_sprintf(headingBuf_, "Iud log tables in schema %s.%s",
- getMItdb().getCat(), getMItdb().getSch());
- }
- break;
- case ComTdbExeUtilGetMetadataInfo::RANGELOG_TABLES_IN_SCHEMA_:
- {
- str_sprintf(headingBuf_, "Range log tables in schema %s.%s",
- getMItdb().getCat(), getMItdb().getSch());
- }
- break;
-
- case ComTdbExeUtilGetMetadataInfo::TRIGTEMP_TABLES_IN_SCHEMA_:
- {
- str_sprintf(headingBuf_, "Trigger temp tables in schema %s.%s",
- getMItdb().getCat(), getMItdb().getSch());
- }
- break;
-
case ComTdbExeUtilGetMetadataInfo::SEQUENCES_IN_SCHEMA_:
{
str_sprintf(headingBuf_, "Sequences in schema %s.%s",
@@ -1319,20 +1230,6 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
}
break;
- case ComTdbExeUtilGetMetadataInfo::TABLES_IN_MV_:
- case ComTdbExeUtilGetMetadataInfo::MVS_IN_MV_:
- case ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_MV_:
- {
- str_sprintf(headingBuf_,
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_MV_ ?
- "Tables in MV %s.%s" :
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_IN_MV_ ?
- "MVs in MV %s.%s" :
- "Objects in MV %s.%s")),
- getMItdb().getSch(), getMItdb().getObj());
- }
- break;
-
case ComTdbExeUtilGetMetadataInfo::ROLES_:
str_sprintf(headingBuf_,"Roles");
break;
@@ -1354,14 +1251,30 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
}
break;
+ case ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_USER_:
+ str_sprintf(headingBuf_,"Functions for User %s",getMItdb().getParam1());
+ break;
+
+ case ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_ROLE_:
+ str_sprintf(headingBuf_,"Functions for Role %s",getMItdb().getParam1());
+ break;
+
case ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_USER_:
str_sprintf(headingBuf_,"Indexes for User %s",getMItdb().getParam1());
break;
+ case ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_ROLE_:
+ str_sprintf(headingBuf_,"Indexes for Role %s",getMItdb().getParam1());
+ break;
+
case ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_USER_:
str_sprintf(headingBuf_,"Libraries for User %s", getMItdb().getParam1());
break;
+ case ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_ROLE_:
+ str_sprintf(headingBuf_,"Libraries for User %s", getMItdb().getParam1());
+ break;
+
case ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_LIBRARY_:
str_sprintf(headingBuf_,"Procedures for Library %s.%s",getMItdb().getSch(), getMItdb().getObj());
break;
@@ -1374,14 +1287,6 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
str_sprintf(headingBuf_,"Table_mapping Functions for Library %s.%s",getMItdb().getSch(), getMItdb().getObj());
break;
- case ComTdbExeUtilGetMetadataInfo::MVS_FOR_USER_:
- str_sprintf(headingBuf_,"Materialized Views for User %s",getMItdb().getParam1());
- break;
-
- case ComTdbExeUtilGetMetadataInfo::MVGROUPS_FOR_USER_:
- str_sprintf(headingBuf_,"Materialized View Groups for User %s",getMItdb().getParam1());
- break;
-
case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_USER_:
str_sprintf(headingBuf_,"Privileges for User %s",getMItdb().getParam1());
break;
@@ -1394,6 +1299,10 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
str_sprintf(headingBuf_,"Procedures for User %s",getMItdb().getParam1());
break;
+ case ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_ROLE_:
+ str_sprintf(headingBuf_,"Procedures for Role %s",getMItdb().getParam1());
+ break;
+
case ComTdbExeUtilGetMetadataInfo::ROLES_FOR_USER_:
str_sprintf(headingBuf_,"Roles for User %s",getMItdb().getParam1());
break;
@@ -1402,22 +1311,30 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
str_sprintf(headingBuf_,"Schemas for User %s",getMItdb().getParam1());
break;
- case ComTdbExeUtilGetMetadataInfo::SYNONYMS_FOR_USER_:
- str_sprintf(headingBuf_,"Synonyms for User %s",getMItdb().getParam1());
+ case ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_USER_:
+ str_sprintf(headingBuf_,"Table mapping functions for User %s",getMItdb().getParam1());
+ break;
+
+ case ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_ROLE_:
+ str_sprintf(headingBuf_,"Table mapping functions for Role %s",getMItdb().getParam1());
break;
case ComTdbExeUtilGetMetadataInfo::TABLES_FOR_USER_:
str_sprintf(headingBuf_,"Tables for User %s",getMItdb().getParam1());
break;
- case ComTdbExeUtilGetMetadataInfo::TRIGGERS_FOR_USER_:
- str_sprintf(headingBuf_,"Triggers for User %s",getMItdb().getParam1());
+ case ComTdbExeUtilGetMetadataInfo::TABLES_FOR_ROLE_:
+ str_sprintf(headingBuf_,"Tables for Role %s",getMItdb().getParam1());
break;
case ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_USER_:
str_sprintf(headingBuf_,"Views for User %s",getMItdb().getParam1());
break;
+ case ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_ROLE_:
+ str_sprintf(headingBuf_,"Views for Role %s",getMItdb().getParam1());
+ break;
+
case ComTdbExeUtilGetMetadataInfo::COMPONENTS_:
str_sprintf(headingBuf_, "Components");
break;
@@ -1434,44 +1351,178 @@ short ExExeUtilGetMetadataInfoTcb::displayHeading()
break;
}
- default:
- str_sprintf(headingBuf_, "Add to ExExeUtilGetMetadataInfoTcb::displayHeading");
- break;
- }
-
- moveRowToUpQueue(headingBuf_);
- str_pad(outputBuf_, strlen(headingBuf_), '=');
- outputBuf_[strlen(headingBuf_)] = 0;
- moveRowToUpQueue(outputBuf_);
-
- moveRowToUpQueue(" ");
+// Not supported at this time
+#if 0
+ case ComTdbExeUtilGetMetadataInfo::TRIGGERS_FOR_USER_:
+ str_sprintf(headingBuf_,"Triggers for User %s",getMItdb().getParam1());
+ break;
- return 0;
-} // ExExeUtilGetMetadataInfoTcb::displayHeading
+ case ComTdbExeUtilGetMetadataInfo::INDEXES_ON_MV_:
+ {
+ str_sprintf(headingBuf_, "Indexes on MV %s.%s",
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
-// ----------------------------------------------------------------------------
-// getAuthID
-//
-// Reads the "_MD_".auths table to get the auth_id from the passed in authName.
-// If relationship not found for any reason, return 0, otherwise return
-// the authID.
-// ----------------------------------------------------------------------------
-Int32 ExExeUtilGetMetadataInfoTcb::getAuthID(
- const char *authName,
- const char *catName,
- const char *schName,
- const char *objName)
-{
- if (strcmp(authName, PUBLIC_AUTH_NAME) == 0)
- return PUBLIC_USER;
+ case ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_MV_:
+ {
+ str_sprintf(headingBuf_, "Privileges on MV %s.%s",
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
- short rc = 0;
- Lng32 cliRC = 0;
+ case ComTdbExeUtilGetMetadataInfo::IUDLOG_TABLE_ON_TABLE_:
+ {
+ str_sprintf(headingBuf_, "Iudlog tables for Table %s.%s",
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
+ case ComTdbExeUtilGetMetadataInfo::RANGELOG_TABLE_ON_TABLE_:
+ {
+ str_sprintf(headingBuf_, "Rangelog table for Table %s.%s",
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
+ case ComTdbExeUtilGetMetadataInfo::TRIGTEMP_TABLE_ON_TABLE_:
+ {
+ str_sprintf(headingBuf_, "Trigger temp table for Table %s.%s",
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
+ case ComTdbExeUtilGetMetadataInfo::IUDLOG_TABLE_ON_MV_:
+ {
+ str_sprintf(headingBuf_, "Iudlog table for MV %s.%s",
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
+ case ComTdbExeUtilGetMetadataInfo::RANGELOG_TABLE_ON_MV_:
+ {
+ str_sprintf(headingBuf_, "Rangelog table for MV %s.%s",
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
+ case ComTdbExeUtilGetMetadataInfo::TRIGTEMP_TABLE_ON_MV_:
+ {
+ str_sprintf(headingBuf_, "Trigger temp table for MV %s.%s",
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
+ case ComTdbExeUtilGetMetadataInfo::IUDLOG_TABLES_IN_SCHEMA_:
+ {
+ str_sprintf(headingBuf_, "Iud log tables in schema %s.%s",
+ getMItdb().getCat(), getMItdb().getSch());
+ }
+ break;
+ case ComTdbExeUtilGetMetadataInfo::RANGELOG_TABLES_IN_SCHEMA_:
+ {
+ str_sprintf(headingBuf_, "Range log tables in schema %s.%s",
+ getMItdb().getCat(), getMItdb().getSch());
+ }
+ break;
- sprintf(queryBuf_, "select auth_id from %s.\"%s\".%s where auth_db_name = '%s' ",
- catName, schName, objName, authName);
+ case ComTdbExeUtilGetMetadataInfo::TRIGTEMP_TABLES_IN_SCHEMA_:
+ {
+ str_sprintf(headingBuf_, "Trigger temp tables in schema %s.%s",
+ getMItdb().getCat(), getMItdb().getSch());
+ }
+ break;
- if (initializeInfoList(infoList_)) return NA_UserIdDefault;
+ case ComTdbExeUtilGetMetadataInfo::SYNONYMS_IN_SCHEMA_:
+ {
+ str_sprintf(headingBuf_, "Synonyms in Schema %s.%s",
+ getMItdb().getCat(), getMItdb().getSch());
+ }
+ break;
+ case ComTdbExeUtilGetMetadataInfo::SYNONYMS_FOR_USER_:
+ str_sprintf(headingBuf_,"Synonyms for User %s",getMItdb().getParam1());
+ break;
+
+ case ComTdbExeUtilGetMetadataInfo::SYNONYMS_ON_TABLE_:
+ {
+ str_sprintf(headingBuf_, "Synonyms on Table %s.%s",
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
+
+
+ case ComTdbExeUtilGetMetadataInfo::MVS_IN_SCHEMA_:
+ {
+ str_sprintf(headingBuf_, "MVs in Schema %s.%s",
+ getMItdb().getCat(), getMItdb().getSch());
+ }
+ break;
+
+ case ComTdbExeUtilGetMetadataInfo::MVS_ON_TABLE_:
+ case ComTdbExeUtilGetMetadataInfo::MVS_ON_MV_:
+ {
+ str_sprintf(headingBuf_,
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_ON_TABLE_
+ ? "MVs on Table %s.%s" : "MVs ON MV %s.%s"),
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
+ case ComTdbExeUtilGetMetadataInfo::TABLES_IN_MV_:
+ case ComTdbExeUtilGetMetadataInfo::MVS_IN_MV_:
+ case ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_MV_:
+ {
+ str_sprintf(headingBuf_,
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_MV_ ?
+ "Tables in MV %s.%s" :
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_IN_MV_ ?
+ "MVs in MV %s.%s" :
+ "Objects in MV %s.%s")),
+ getMItdb().getSch(), getMItdb().getObj());
+ }
+ break;
+
+ case ComTdbExeUtilGetMetadataInfo::MVS_FOR_USER_:
+ str_sprintf(headingBuf_,"Materialized Views for User %s",getMItdb().getParam1());
+ break;
+
+ case ComTdbExeUtilGetMetadataInfo::MVGROUPS_FOR_USER_:
+ str_sprintf(headingBuf_,"Materialized View Groups for User %s",getMItdb().getParam1());
+ break;
+
+#endif
+
+ default:
+ str_sprintf(headingBuf_, "Add to ExExeUtilGetMetadataInfoTcb::displayHeading");
+ break;
+ }
+
+ moveRowToUpQueue(headingBuf_);
+ str_pad(outputBuf_, strlen(headingBuf_), '=');
+ outputBuf_[strlen(headingBuf_)] = 0;
+ moveRowToUpQueue(outputBuf_);
+
+ moveRowToUpQueue(" ");
+
+ return 0;
+} // ExExeUtilGetMetadataInfoTcb::displayHeading
+
+// ----------------------------------------------------------------------------
+// getAuthID
+//
+// Reads the "_MD_".auths table to get the auth_id from the passed in authName.
+// If relationship not found for any reason, return 0, otherwise return
+// the authID.
+// ----------------------------------------------------------------------------
+Int32 ExExeUtilGetMetadataInfoTcb::getAuthID(
+ const char *authName,
+ const char *catName,
+ const char *schName,
+ const char *objName)
+{
+ if (strcmp(authName, PUBLIC_AUTH_NAME) == 0)
+ return PUBLIC_USER;
+
+ short rc = 0;
+ Lng32 cliRC = 0;
+
+ sprintf(queryBuf_, "select auth_id from %s.\"%s\".%s where auth_db_name = '%s' ",
+ catName, schName, objName, authName);
+
+ if (initializeInfoList(infoList_)) return NA_UserIdDefault;
numOutputEntries_ = 1;
cliRC = fetchAllRows(infoList_, queryBuf_, numOutputEntries_, FALSE, rc);
@@ -1978,8 +2029,22 @@ short ExExeUtilGetMetadataInfoTcb::work()
if(getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::COMPONENTS_
||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::COMPONENT_OPERATIONS_
||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::COMPONENT_PRIVILEGES_
- ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::USERS_FOR_ROLE_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_USER_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_ROLE_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_USER_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_ROLE_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_USER_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_ROLE_
||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::ROLES_FOR_USER_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_USER_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_ROLE_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_USER_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_ROLE_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_FOR_USER_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_FOR_ROLE_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_USER_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_ROLE_
+ ||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::USERS_FOR_ROLE_
||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_ROLE_
||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_USER_
||getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PRIVILEGES_ON_TABLE_
@@ -2382,6 +2447,95 @@ short ExExeUtilGetMetadataInfoTcb::work()
param_[8] = (char *) privWhereClause.data();
}
break ;
+
+ case ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_USER_:
+ case ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_ROLE_:
+ case ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_USER_:
+ case ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_ROLE_:
+ case ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_USER_:
+ case ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_ROLE_:
+ {
+ NABoolean isUser =
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_USER_ ||
+ getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_USER_ ||
+ getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_USER_);
+
+ // Get the authID associated with the specified user
+ Int32 authID = *currContext->getDatabaseUserID();
+ if (!(strcmp(getMItdb().getParam1(), currContext->getDatabaseUserName()) == 0))
+ authID = getAuthID(getMItdb().getParam1(), cat, sch, auths);
+
+ // Verify that the user is a user, or the role is a role
+ if (isUser && !CmpSeabaseDDLauth::isUserID(authID) ||
+ !isUser && !CmpSeabaseDDLauth::isRoleID(authID))
+ {
+ NAString type = (isUser ? "user" : "role");
+ ExRaiseSqlError(getHeap(), &diagsArea_, -CAT_IS_NOT_CORRECT_AUTHID,
+ NULL, NULL, NULL,
+ getMItdb().getParam1(),
+ type.data());
+ step_ = HANDLE_ERROR_;
+ break;
+ }
+
+ qs = getTrafRoutinesForAuthQuery;
+ sizeOfqs = sizeof(getTrafRoutinesForAuthQuery);
+
+ NAString routineType;
+ if ((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_USER_) ||
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_ROLE_))
+ routineType = COM_PROCEDURE_TYPE_LIT;
+ else if ((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_USER_) ||
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_ROLE_))
+ routineType = COM_SCALAR_UDF_TYPE_LIT;
+ else
+ routineType = COM_TABLE_UDF_TYPE_LIT;
+
+ // Getting objects for the current user
+ if (strcmp(getMItdb().getParam1(), currContext->getDatabaseUserName()) == 0)
+ privWhereClause = getGrantedPrivCmd(authList, cat, NAString ("T.object_uid"));
+
+ // Getting objects for a user other than the current user
+ else
+ {
+ if (doPrivCheck)
+ {
+ // User cannot view privileges for another user
+ ExRaiseSqlError(getHeap(), &diagsArea_, -1017);
+ step_ = HANDLE_ERROR_;
+ break;
+ }
+ else
+ {
+ // get the list of roles for this other user.
+ char *userRoleList = getRoleList(authID, cat, pmsch, role_usage);
+ if (userRoleList)
+ {
+ privWhereClause = getGrantedPrivCmd(userRoleList, cat, NAString ("T.object_uid"));
+ NADELETEBASIC(userRoleList, getHeap());
+ }
+ else
+ {
+ // Unable to read metadata
+ ExRaiseSqlError(getHeap(), &diagsArea_, -8001);
+ step_ = HANDLE_ERROR_;
+ break;
+ }
+ }
+ }
+
+ param_[0] = cat;
+ param_[1] = sch;
+ param_[2] = tab;
+ param_[3] = cat;
+ param_[4] = sch;
+ param_[5] = routine;
+ param_[6] = getMItdb().cat_;
+ param_[7] = (char *)routineType.data();
+ param_[8] = (char *) privWhereClause.data();
+ }
+ break ;
+
case ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_LIBRARY_:
case ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_LIBRARY_:
case ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_LIBRARY_:
@@ -2682,6 +2836,7 @@ short ExExeUtilGetMetadataInfoTcb::work()
}
case ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_USER_:
+ case ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_ROLE_:
{
qs = getTrafIndexesForUser;
sizeOfqs = sizeof(getTrafIndexesForUser);
@@ -2736,18 +2891,46 @@ short ExExeUtilGetMetadataInfoTcb::work()
break;
case ComTdbExeUtilGetMetadataInfo::TABLES_FOR_USER_:
+ case ComTdbExeUtilGetMetadataInfo::TABLES_FOR_ROLE_:
case ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_USER_:
+ case ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_ROLE_:
{
+ NABoolean isUser =
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_FOR_USER_ ||
+ getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_USER_);
+
+ // Get the authID associated with the specified user
+ Int32 authID = *currContext->getDatabaseUserID();
+ if (!(strcmp(getMItdb().getParam1(), currContext->getDatabaseUserName()) == 0))
+ authID = getAuthID(getMItdb().getParam1(), cat, sch, auths);
+
+ // Verify that the user is a user, or the role is a role
+ NABoolean validAuth = FALSE;
+ if (isUser && CmpSeabaseDDLauth::isUserID(authID))
+ validAuth = TRUE;
+ if (!isUser && CmpSeabaseDDLauth::isRoleID(authID))
+ validAuth = TRUE;
+
+ if (!validAuth)
+ {
+ NAString authName = (isUser) ? "user" : "role";
+ ExRaiseSqlError(getHeap(), &diagsArea_, -CAT_IS_NOT_CORRECT_AUTHID,
+ NULL, NULL, NULL,
+ getMItdb().getParam1(),
+ authName.data());
+ step_ = HANDLE_ERROR_;
+ break;
+ }
+
qs = getTrafObjectsForUser;
sizeOfqs = sizeof(getTrafObjectsForUser);
NAString objType;
- if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_FOR_USER_)
+ if ((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_FOR_USER_) ||
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_FOR_ROLE_))
objType = COM_BASE_TABLE_OBJECT_LIT;
- else if (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_USER_)
+ else
objType = COM_VIEW_OBJECT_LIT;
- else
- objType = COM_INDEX_OBJECT_LIT;
// Getting objects for the current user
if (strcmp(getMItdb().getParam1(), currContext->getDatabaseUserName()) == 0)
@@ -2765,9 +2948,6 @@ short ExExeUtilGetMetadataInfoTcb::work()
}
else
{
- // Get the authID associated with the requested user
- Int32 authID = getAuthID(getMItdb().getParam1(), cat, sch, auths);
-
// get the list of roles for this other user.
char *userRoleList = getRoleList(authID, cat, pmsch, role_usage);
if (userRoleList)
@@ -2795,7 +2975,34 @@ short ExExeUtilGetMetadataInfoTcb::work()
break;
case ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_USER_:
+ case ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_ROLE_:
{
+ NABoolean isUser =
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_USER_);
+
+ // Get the authID associated with the specified user
+ Int32 authID = *currContext->getDatabaseUserID();
+ if (!(strcmp(getMItdb().getParam1(), currContext->getDatabaseUserName()) == 0))
+ authID = getAuthID(getMItdb().getParam1(), cat, sch, auths);
+
+ // Verify that the user is a user, or the role is a role
+ NABoolean validAuth = FALSE;
+ if (isUser && CmpSeabaseDDLauth::isUserID(authID))
+ validAuth = TRUE;
+ if (!isUser && CmpSeabaseDDLauth::isRoleID(authID))
+ validAuth = TRUE;
+
+ if (!validAuth)
+ {
+ NAString authName = (isUser) ? "user" : "role";
+ ExRaiseSqlError(getHeap(), &diagsArea_, -CAT_IS_NOT_CORRECT_AUTHID,
+ NULL, NULL, NULL,
+ getMItdb().getParam1(),
+ authName.data());
+ step_ = HANDLE_ERROR_;
+ break;
+ }
+
qs = getTrafLibrariesForUser;
sizeOfqs = sizeof(getTrafLibrariesForUser);
@@ -2815,9 +3022,6 @@ short ExExeUtilGetMetadataInfoTcb::work()
}
else
{
- // Get the authID associated with the requested user
- Int32 authID = getAuthID(getMItdb().getParam1(), cat, sch, auths);
-
// Get the list of roles for this other user.
char *userRoleList = getRoleList(authID, cat, pmsch, role_usage);
if (userRoleList)
@@ -2922,7 +3126,7 @@ short ExExeUtilGetMetadataInfoTcb::work()
if (CmpSeabaseDDLauth::isUserID(authID) && getMItdb().cascade())
{
char buf[300 + MAX_AUTHNAME_LEN + 200];
- str_sprintf(buf, "or p.grantee_id = (select role_id from "
+ str_sprintf(buf, "or p.grantee_id in (select role_id from "
"%s.\"%s\".%s where grantee_name = '%s') "
"or p.grantee_id = -1",
cat, pmsch, role_usage, getMItdb().getParam1());
@@ -3087,6 +3291,9 @@ short ExExeUtilGetMetadataInfoTcb::work()
ptr = outputCharStr;
len = outputStr.length();
}
+
+// Not supported at this time
+#if 0
if ((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TRIGTEMP_TABLE_ON_TABLE_ ) ||
(getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TRIGTEMP_TABLE_ON_MV_ ))
{
@@ -3114,16 +3321,19 @@ short ExExeUtilGetMetadataInfoTcb::work()
}
- if (((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_VIEW_) ||
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_MV_)) &&
+#endif
+
+ if (((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_VIEW_)
+ //|| (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_MV_)
+ ) &&
(vi->get(1) && (strcmp(vi->get(1), "BT") != 0)))
exprRetCode = ex_expr::EXPR_FALSE;
else if ((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::VIEWS_IN_VIEW_) &&
(vi->get(1) && (strcmp(vi->get(1), "VI") != 0)))
exprRetCode = ex_expr::EXPR_FALSE;
- else if ((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_IN_MV_) &&
- (vi->get(1) && (strcmp(vi->get(1), "MV") != 0)))
- exprRetCode = ex_expr::EXPR_FALSE;
+ //else if ((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_IN_MV_) &&
+ // (vi->get(1) && (strcmp(vi->get(1), "MV") != 0)))
+ // exprRetCode = ex_expr::EXPR_FALSE;
if (exprRetCode == ex_expr::EXPR_TRUE)
exprRetCode = evalScanExpr(ptr, len, TRUE);
@@ -3217,17 +3427,17 @@ short ExExeUtilGetMetadataInfoTcb::work()
}
if ((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::VIEWS_ON_TABLE_) ||
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::VIEWS_ON_VIEW_) ||
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_ON_TABLE_) ||
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_ON_VIEW_))
+ //(getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_ON_TABLE_) ||
+ //(getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_ON_VIEW_) ||
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::VIEWS_ON_VIEW_))
step_ = GET_USING_VIEWS_;
else if ((getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_VIEW_) ||
(getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::VIEWS_IN_VIEW_) ||
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_VIEW_) ||
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_MV_) ||
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_IN_MV_) ||
- (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_MV_))
+ //(getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::TABLES_IN_MV_) ||
+ //(getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::MVS_IN_MV_) ||
+ //(getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_MV_) ||
+ (getMItdb().queryType_ == ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_VIEW_))
step_ = GET_USED_OBJECTS_;
else
step_ = DONE_;
@@ -3462,41 +3672,55 @@ short ExExeUtilGetMetadataInfoComplexTcb::work()
}
break;
- case ComTdbExeUtilGetMetadataInfo::MVS_ON_TABLE_:
+ case ComTdbExeUtilGetMetadataInfo::TABLES_IN_VIEW_:
{
- str_sprintf(queryBuf_, "select * from (get all mvs on table \"%s\".\"%s\".\"%s\", no header %s) xxx(aaa) group by aaa order by 1",
+ str_sprintf(queryBuf_, "select * from (get all tables in view \"%s\".\"%s\".\"%s\", no header %s) xxx(aaa) group by aaa order by 1",
getMItdb().getCat(), getMItdb().getSch(), getMItdb().getObj(),
patternStr_);
}
break;
- case ComTdbExeUtilGetMetadataInfo::MVS_ON_MV_:
+ case ComTdbExeUtilGetMetadataInfo::VIEWS_IN_VIEW_:
{
- str_sprintf(queryBuf_, "select * from (get all mvs on mv \"%s\".\"%s\".\"%s\", no header %s) xxx(aaa) group by aaa order by 1",
+ str_sprintf(queryBuf_, "select * from (get all views in view \"%s\".\"%s\".\"%s\", no header %s) xxx(aaa) group by aaa order by 1",
getMItdb().getCat(), getMItdb().getSch(), getMItdb().getObj(),
patternStr_);
}
break;
- case ComTdbExeUtilGetMetadataInfo::TABLES_IN_VIEW_:
+ case ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_VIEW_:
{
- str_sprintf(queryBuf_, "select * from (get all tables in view \"%s\".\"%s\".\"%s\", no header %s) xxx(aaa) group by aaa order by 1",
+ str_sprintf(queryBuf_, "select * from (get all objects in view \"%s\".\"%s\".\"%s\", no header %s) xxx(aaa) group by aaa order by 1",
getMItdb().getCat(), getMItdb().getSch(), getMItdb().getObj(),
patternStr_);
}
break;
- case ComTdbExeUtilGetMetadataInfo::VIEWS_IN_VIEW_:
+ case ComTdbExeUtilGetMetadataInfo::OBJECTS_ON_TABLE_:
{
- str_sprintf(queryBuf_, "select * from (get all views in view \"%s\".\"%s\".\"%s\", no header %s) xxx(aaa) group by aaa order by 1",
+ step_ = FETCH_ALL_ROWS_FOR_OBJECTS_;
+ }
+ break;
+
+ case ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_SCHEMA_:
+ {
+ step_ = FETCH_ALL_ROWS_IN_SCHEMA_;
+ }
+ break;
+
+// not supported at this time
+#if 0
+ case ComTdbExeUtilGetMetadataInfo::MVS_ON_TABLE_:
+ {
+ str_sprintf(queryBuf_, "select * from (get all mvs on table \"%s\".\"%s\".\"%s\", no header %s) xxx(aaa) group by aaa order by 1",
getMItdb().getCat(), getMItdb().getSch(), getMItdb().getObj(),
patternStr_);
}
break;
- case ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_VIEW_:
+ case ComTdbExeUtilGetMetadataInfo::MVS_ON_MV_:
{
- str_sprintf(queryBuf_, "select * from (get all objects in view \"%s\".\"%s\".\"%s\", no header %s) xxx(aaa) group by aaa order by 1",
+ str_sprintf(queryBuf_, "select * from (get all mvs on mv \"%s\".\"%s\".\"%s\", no header %s) xxx(aaa) group by aaa order by 1",
getMItdb().getCat(), getMItdb().getSch(), getMItdb().getObj(),
patternStr_);
}
@@ -3526,18 +3750,7 @@ short ExExeUtilGetMetadataInfoComplexTcb::work()
}
break;
- case ComTdbExeUtilGetMetadataInfo::OBJECTS_ON_TABLE_:
- {
- step_ = FETCH_ALL_ROWS_FOR_OBJECTS_;
- }
- break;
-
- case ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_SCHEMA_:
- {
- step_ = FETCH_ALL_ROWS_IN_SCHEMA_;
- }
- break;
-
+#endif
default:
{
ExRaiseSqlError(getHeap(), &diagsArea_, -4298,
@@ -4192,385 +4405,6 @@ short ExExeUtilGetHbaseObjectsTcb::work()
return WORK_OK;
}
-////////////////////////////////////////////////////////////////
-// Constructor for class ExExeUtilGetMetadataInfoVersionTcb
-///////////////////////////////////////////////////////////////
-ExExeUtilGetMetadataInfoVersionTcb::ExExeUtilGetMetadataInfoVersionTcb(
- const ComTdbExeUtilGetMetadataInfo & exe_util_tdb,
- ex_globals * glob)
- : ExExeUtilGetMetadataInfoTcb( exe_util_tdb, glob)
-{
-}
-
-static const QueryString getVersionForSchemasInCatalogQuery[] =
-{
- {" select translate(trim(S.schema_name) using ucs2toutf8), "},
- {" cast(S.schema_version as char(4)) "},
- {" from "},
- {" HP_SYSTEM_CATALOG.system_schema.catsys C, "},
- {" HP_SYSTEM_CATALOG.system_schema.schemata S "},
- {" where "},
- {" C.cat_name = '%s' and "},
- {" C.cat_uid = S.cat_uid "},
- {" %s "},
- {" order by 1 "},
- {" ; "}
-};
-
-static const QueryString getVersionForObjectsInSchemaQuery[] =
-{
- {" select translate(trim(O.object_name) using ucs2toutf8), "},
- {" cast(S.schema_version as char(4)), cast(O.object_feature_version as char(4)), "},
- {" cast(O.rcb_version as char(4)) "},
- {" from "},
- {" HP_SYSTEM_CATALOG.system_schema.catsys C, "},
- {" HP_SYSTEM_CATALOG.system_schema.schemata S, "},
- {" \"%s\".HP_DEFINITION_SCHEMA.objects O "},
- {" where "},
- {" C.cat_name = '%s' and "},
- {" S.schema_name = '%s' and "},
- {" C.cat_uid = S.cat_uid and "},
- {" S.schema_uid = O.schema_uid "},
- {" %s "},
- {" order by 1 "},
- {" ; "}
-};
-
-//////////////////////////////////////////////////////
-// work() for ExExeUtilGetMetadataInfoVersionTcb
-//////////////////////////////////////////////////////
-short ExExeUtilGetMetadataInfoVersionTcb::work()
-{
- short retcode = 0;
- Lng32 cliRC = 0;
- ex_expr::exp_return_type exprRetCode = ex_expr::EXPR_OK;
-
- // if no parent request, return
- if (qparent_.down->isEmpty())
- return WORK_OK;
-
- // if no room in up queue, won't be able to return data/status.
- // Come back later.
- if (qparent_.up->isFull())
- return WORK_OK;
-
- ex_queue_entry * pentry_down = qparent_.down->getHeadEntry();
- ExExeUtilPrivateState & pstate =
- *((ExExeUtilPrivateState*) pentry_down->pstate);
-
- // Get the globals stucture of the master executor.
- ExExeStmtGlobals *exeGlob = getGlobals()->castToExExeStmtGlobals();
- ExMasterStmtGlobals *masterGlob = exeGlob->castToExMasterStmtGlobals();
- ContextCli * currContext = masterGlob->getStatement()->getContext();
-
- while (1)
- {
- switch (step_)
- {
- case INITIAL_:
- {
- step_ = DISABLE_CQS_;
- }
- break;
-
- case DISABLE_CQS_:
- {
- if (disableCQS())
- {
- step_ = HANDLE_ERROR_;
- break;
- }
-
- step_ = SETUP_QUERY_;
- }
- break;
-
- case SETUP_QUERY_:
- {
- const QueryString * qs;
- Int32 sizeOfqs = 0;
-
- char predStr[2000];
- predStr[0] = '\0';
- patternStr_[0] = '\0';
- if (getMItdb().getPattern())
- {
- str_sprintf(patternStr_, ", match '%s' ",
- getMItdb().getPattern());
- }
-
- if (getMItdb().queryType() == ComTdbExeUtilGetMetadataInfo::SCHEMAS_IN_CATALOG_)
- {
- qs = getVersionForSchemasInCatalogQuery;
- sizeOfqs = sizeof(getVersionForSchemasInCatalogQuery);
-
- param_[0] = getMItdb().cat_;
- param_[1] = predStr;
-
- if (getMItdb().userObjs())
- {
- str_sprintf(predStr, " and (S.schema_name <> 'HP_DEFINITION_SCHEMA' and S.schema_name <> 'MXCS_SCHEMA' and S.schema_name <> 'SYSTEM_DEFAULTS_SCHEMA' and S.schema_name <> 'SYSTEM_SCHEMA' and S.schema_name <> 'PUBLIC_ACCESS_SCHEMA' and S.schema_name <> 'HP_ROUTINES' and S.schema_name <> 'HP_SECURITY_SCHEMA' and S.schema_name <> 'MANAGEABILITY' and left(S.schema_name, 1) <> '@' and S.current_operation <> 'VS' ) ");
- }
- else if (getMItdb().systemObjs())
- {
- str_sprintf(predStr, " and (S.schema_name = 'HP_DEFINITION_SCHEMA' or S.schema_name = 'MXCS_SCHEMA' or S.schema_name = 'SYSTEM_DEFAULTS_SCHEMA' or S.schema_name = 'SYSTEM_SCHEMA' or S.schema_name = 'PUBLIC_ACCESS_SCHEMA' or S.schema_name = 'HP_ROUTINES' or S.schema_name = 'HP_SECURITY_SCHEMA' or S.schema_name = 'MANAGEABILITY' or left(S.schema_name, 1) = '@' or S.current_operation = 'VS') ");
- }
-
- numOutputEntries_ = 2;
- }
- else
- {
- qs = getVersionForObjectsInSchemaQuery;
- sizeOfqs = sizeof(getVersionForObjectsInSchemaQuery);
-
- param_[0] = getMItdb().cat_;
- param_[1] = getMItdb().cat_;
- param_[2] = getMItdb().sch_;
- param_[3] = predStr;
-
- switch (getMItdb().queryType_)
- {
- case ComTdbExeUtilGetMetadataInfo::TABLES_IN_SCHEMA_:
- {
- strcat(predStr, " and O.object_name_space = 'TA' and O.object_type = 'BT' ");
-
- if (getMItdb().userObjs())
- {
- strcat(predStr, " and O.object_security_class = 'UT' ");
- }
- else if (getMItdb().systemObjs())
- {
- strcat(predStr, " and O.object_security_class <> 'UT' ");
- }
-
- }
- break;
-
- case ComTdbExeUtilGetMetadataInfo::INDEXES_IN_SCHEMA_:
- {
- strcat(predStr, " and O.object_name_space = 'IX' and O.object_type = 'IX' ");
- }
- break;
-
- case ComTdbExeUtilGetMetadataInfo::VIEWS_IN_SCHEMA_:
- {
- strcat(predStr, " and O.object_name_space = 'TA' and O.object_type = 'VI' ");
- }
- break;
-
- case ComTdbExeUtilGetMetadataInfo::LIBRARIES_IN_SCHEMA_:
- {
- strcat(predStr, " and O.object_name_space = 'LB' and O.object_type = 'LB' "); //ACH VErfiy this is stored correctly - SMDIO?
- }
- break;
-
- case ComTdbExeUtilGetMetadataInfo::MVS_IN_SCHEMA_:
- {
- strcat(predStr, " and O.object_name_space = 'TA' and O.object_type = 'MV' ");
- }
- break;
-
- case ComTdbExeUtilGetMetadataInfo::PROCEDURES_IN_SCHEMA_:
- {
- strcat(predStr, " and O.object_name_space = 'TA' and O.object_type = 'UR' ");
- }
- break;
-
- case ComTdbExeUtilGetMetadataInfo::SYNONYMS_IN_SCHEMA_:
- {
- strcat(predStr, " and O.object_name_space = 'TA' and O.object_type = 'SY' ");
- }
- break;
-
- case ComTdbExeUtilGetMetadataInfo::OBJECTS_IN_SCHEMA_:
- {
- }
- break;
-
- default:
- {
- ExRaiseSqlError(getHeap(), &diagsArea_, -4218,
- NULL, NULL, NULL, "GET");
- step_ = HANDLE_ERROR_;
- }
- break;
-
- } // switch
-
- numOutputEntries_ = 4;
- }
-
- Int32 qryArraySize = sizeOfqs / sizeof(QueryString);
- char * gluedQuery;
- Lng32 gluedQuerySize;
- glueQueryFragments(qryArraySize, qs,
- gluedQuery, gluedQuerySize);
-
- str_sprintf(queryBuf_, gluedQuery,
- param_[0], param_[1], param_[2], param_[3],
- param_[4], param_[5], param_[6], param_[7],
- param_[8], param_[9], param_[10], param_[11],
- param_[12], param_[13], param_[14]);
-
- NADELETEBASIC(gluedQuery, getMyHeap());
- step_ = FETCH_ALL_ROWS_;
- }
- break;
-
- case FETCH_ALL_ROWS_:
- {
- if (initializeInfoList(infoList_))
- {
- step_ = HANDLE_ERROR_;
- break;
- }
-
- if (fetchAllRows(infoList_, queryBuf_, numOutputEntries_,
- FALSE, retcode) < 0)
- {
- step_ = HANDLE_ERROR_;
-
- break;
- }
-
- infoList_->position();
-
- // find out the max length of the object name entry.
- // This will help in formatting of output.
- infoList_->position();
- maxObjLen_ = 0;
- while (NOT infoList_->atEnd())
- {
- OutputInfo * oi = (OutputInfo*)infoList_->getCurr();
- if (strlen(oi->get(0)) > maxObjLen_)
- maxObjLen_ = strlen(oi->get(0));
-
- infoList_->advance();
- }
-
- infoList_->position();
-
- step_ = DISPLAY_HEADING_;
- }
- break;
-
- case DISPLAY_HEADING_:
- {
- if (infoList_->atEnd())
- {
- step_ = DONE_;
- break;
- }
-
- // make sure there is enough space to move header
- if (isUpQueueFull(5))
- {
- return WORK_CALL_AGAIN; // come back later
- }
-
- if (numOutputEntries_ == 2)
- {
- maxObjLen_ = MAXOF(strlen("Schema"), maxObjLen_);
- str_sprintf(formatStr_, "%%%ds %%4s", maxObjLen_);
-
- str_sprintf(headingBuf_, formatStr_,
- "Schema", "OSV");
- }
- else
- {
- maxObjLen_ = MAXOF(strlen("Object"), maxObjLen_);
- str_sprintf(formatStr_, "%%%ds %%4s %%4s %%4s", maxObjLen_);
-
- str_sprintf(headingBuf_, formatStr_,
- "Object", "OSV", "OFV", "RCBV");
- }
-
- Lng32 len = strlen(headingBuf_);
- moveRowToUpQueue(headingBuf_);
- str_pad(headingBuf_, len, '=');
- headingBuf_[len] = 0;
- moveRowToUpQueue(headingBuf_);
-
- moveRowToUpQueue(" ");
-
- step_ = RETURN_ROW_;
- }
- break;
-
- case RETURN_ROW_:
- {
- if (infoList_->atEnd())
- {
- step_ = ENABLE_CQS_;
- break;
- }
-
- if (qparent_.up->isFull())
- return WORK_OK;
-
- OutputInfo * vi = (OutputInfo*)infoList_->getCurr();
-
- if (numOutputEntries_ == 2)
- {
- str_sprintf(outputBuf_, formatStr_,
- vi->get(0), vi->get(1));
- }
- else
- {
- str_sprintf(outputBuf_, formatStr_,
- vi->get(0), vi->get(1), vi->get(2),
- vi->get(3));
- }
-
- short rc = 0;
- moveRowToUpQueue(outputBuf_, 0, &rc);
-
- infoList_->advance();
- }
- break;
-
- case ENABLE_CQS_:
- {
- if (restoreCQS())
- {
- step_ = HANDLE_ERROR_;
- break;
- }
-
- step_ = DONE_;
- }
- break;
-
- case HANDLE_ERROR_:
- {
- restoreCQS();
-
- retcode = handleError();
- if (retcode == 1)
- return WORK_OK;
-
- step_ = DONE_;
- }
- break;
-
- case DONE_:
- {
- retcode = handleDone();
- if (retcode == 1)
- return WORK_OK;
-
- step_ = INITIAL_;
-
- return WORK_OK;
- }
- break;
-
- }
- }
-
- return 0;
-}
-
///////////////////////////////////////////////////////////////////
ex_tcb * ExExeUtilGetHiveMetadataInfoTdb::build(ex_globals * glob)
{
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/generator/GenRelExeUtil.cpp
----------------------------------------------------------------------
diff --git a/core/sql/generator/GenRelExeUtil.cpp b/core/sql/generator/GenRelExeUtil.cpp
index 109312a..1e5509b 100644
--- a/core/sql/generator/GenRelExeUtil.cpp
+++ b/core/sql/generator/GenRelExeUtil.cpp
@@ -1721,15 +1721,20 @@ short ExeUtilGetMetadataInfo::codeGen(Generator * generator)
{ "ALL", "TABLE_FUNCTIONS","FOR","LIBRARY", 0, 3, 0, 0, ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_LIBRARY_ },
{ "ALL", "INDEXES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_USER_ },
+ { "ALL", "INDEXES", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_ROLE_ },
{ "ALL", "LIBRARIES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_USER_ },
+ { "ALL", "LIBRARIES", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_ROLE_ },
{ "ALL", "PRIVILEGES","FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_USER_ },
{ "ALL", "PRIVILEGES","FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_ROLE_ },
{ "ALL", "PROCEDURES","FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_USER_ },
+ { "ALL", "PROCEDURES","FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_ROLE_ },
{ "ALL", "ROLES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::ROLES_FOR_USER_ },
{ "ALL", "SCHEMAS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SCHEMAS_FOR_USER_ },
- { "ALL", "SCHEMAS", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SCHEMAS_FOR_USER_ },
+ { "ALL", "SCHEMAS", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SCHEMAS_FOR_ROLE_ },
{ "ALL", "TABLES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::TABLES_FOR_USER_ },
+ { "ALL", "TABLES", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::TABLES_FOR_ROLE_ },
{ "ALL", "VIEWS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_USER_ },
+ { "ALL", "VIEWS", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_ROLE_ },
// { "ALL", "MVS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::MVS_FOR_USER_ },
// { "ALL", "MVGROUPS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::MVGROUPS_FOR_USER_ },
// { "ALL", "SYNONYMS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SYNONYMS_FOR_USER_ },
@@ -1737,28 +1742,40 @@ short ExeUtilGetMetadataInfo::codeGen(Generator * generator)
{ "SYSTEM", "ROLES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::ROLES_FOR_USER_ },
{ "SYSTEM", "SCHEMAS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SCHEMAS_FOR_USER_ },
- { "SYSTEM", "SCHEMAS", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SCHEMAS_FOR_USER_ },
+ { "SYSTEM", "SCHEMAS", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SCHEMAS_FOR_ROLE_ },
{ "SYSTEM", "TABLES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::TABLES_FOR_USER_ },
-// { "SYSTEM", "INDEXES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_USER_ },
-// { "SYSTEM", "LIBRARIES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_USER_ },
+ { "SYSTEM", "TABLES", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::TABLES_FOR_ROLE_ },
+ { "SYSTEM", "INDEXES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_USER_ },
+ { "SYSTEM", "INDEXES", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_ROLE_ },
+ { "SYSTEM", "LIBRARIES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_USER_ },
+ { "SYSTEM", "LIBRARIES", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_ROLE_ },
+ { "SYSTEM", "PROCEDURES","FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_USER_ },
+ { "SYSTEM", "PROCEDURES","FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_ROLE_ },
// { "SYSTEM", "MVS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::MVS_FOR_USER_ },
// { "SYSTEM", "MVGROUPS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::MVGROUPS_FOR_USER_ },
-// { "SYSTEM", "PRIVILEGES","FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_USER_ },
-// { "SYSTEM", "PROCEDURES","FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_USER_ },
// { "SYSTEM", "SYNONYMS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SYNONYMS_FOR_USER_ },
// { "SYSTEM", "TRIGGERS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::TRIGGERS_FOR_USER_ },
// { "SYSTEM", "VIEWS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_USER_ },
+ { "USER", "FUNCTIONS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_USER_ },
+ { "USER", "FUNCTIONS", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::FUNCTIONS_FOR_ROLE_ },
{ "USER", "INDEXES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_USER_ },
+ { "USER", "INDEXES", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::INDEXES_FOR_ROLE_ },
{ "USER", "LIBRARIES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_USER_ },
+ { "USER", "LIBRARIES", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::LIBRARIES_FOR_ROLE_ },
{ "USER", "PRIVILEGES","FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_USER_ },
{ "USER", "PRIVILEGES","FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PRIVILEGES_FOR_ROLE_ },
{ "USER", "PROCEDURES","FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_USER_ },
+ { "USER", "PROCEDURES","FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::PROCEDURES_FOR_ROLE_ },
{ "USER", "ROLES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::ROLES_FOR_USER_ },
{ "USER", "SCHEMAS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SCHEMAS_FOR_USER_ },
- { "USER", "SCHEMAS", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SCHEMAS_FOR_USER_ },
+ { "USER", "SCHEMAS", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SCHEMAS_FOR_ROLE_ },
{ "USER", "TABLES", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::TABLES_FOR_USER_ },
+ { "USER", "TABLES", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::TABLES_FOR_ROLE_ },
+ { "USER", "TABLE_FUNCTIONS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_USER_ },
+ { "USER", "TABLE_FUNCTIONS", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::TABLE_FUNCTIONS_FOR_ROLE_ },
{ "USER", "VIEWS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_USER_ },
+ { "USER", "VIEWS", "FOR", "ROLE", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::VIEWS_FOR_ROLE_ },
// { "USER", "MVS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::MVS_FOR_USER_ },
// { "USER", "MVGROUPS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::MVGROUPS_FOR_USER_ },
// { "USER", "SYNONYMS", "FOR", "USER", 0, 0, 0, 0, ComTdbExeUtilGetMetadataInfo::SYNONYMS_FOR_USER_ },
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/parser/ParKeyWords.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/ParKeyWords.cpp b/core/sql/parser/ParKeyWords.cpp
index 85b97e7..bdceb61 100644
--- a/core/sql/parser/ParKeyWords.cpp
+++ b/core/sql/parser/ParKeyWords.cpp
@@ -1211,7 +1211,7 @@ ParKeyWord ParKeyWords::keyWords_[] = {
ParKeyWord("USA", TOK_USA, NONRESTOKEN_),
ParKeyWord("USAGE", TOK_USAGE, ANS_|RESWORD_),
ParKeyWord("USE", TOK_USE, FLAGSNONE_),
- ParKeyWord("USER", TOK_USER, ANS_|RESWORD_),
+ ParKeyWord("USER", TOK_USER, ANS_|RESWORD_|SECOND_),
ParKeyWord("USERNAME_INT_TO_EXT",TOK_USERNAMEINTTOEXT, NONRESTOKEN_),
ParKeyWord("USERS", TOK_USERS, NONRESTOKEN_),
ParKeyWord("USING", TOK_USING, ANS_|RESWORD_),
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/parser/sqlparser.y
----------------------------------------------------------------------
diff --git a/core/sql/parser/sqlparser.y b/core/sql/parser/sqlparser.y
index b053fb6..4793f41 100755
--- a/core/sql/parser/sqlparser.y
+++ b/core/sql/parser/sqlparser.y
@@ -688,6 +688,9 @@ static void enableMakeQuotedStringISO88591Mechanism()
%token <tokval> TOK_FOR_REPEATABLE /* FOR REPEATABLE */
%token <tokval> TOK_FOR_SERIALIZABLE /* FOR SERIALIZABLE */
%token <tokval> TOK_FOR_STABLE /* FOR STABLE */
+%token <tokval> TOK_FOR_USER /* FOR GET .. FOR USER */
+%token <tokval> TOK_FOR_ROLE /* FOR GET ... FOR ROLE */
+%token <tokval> TOK_FOR_LIBRARY /* FOR GET ... FOR LIBRARY */
%token <tokval> TOK_FOUND
%token <tokval> TOK_FRACTION /* Tandem extension non-reserved word */
%token <tokval> TOK_FROM
@@ -1057,6 +1060,7 @@ static void enableMakeQuotedStringISO88591Mechanism()
%token <tokval> TOK_SHOWDDL_COMPONENT
%token <tokval> TOK_SHOWDDL_LIBRARY
%token <tokval> TOK_SHOWDDL_SEQUENCE
+%token <tokval> TOK_SHOWDDL_USER
%token <tokval> TOK_SHOWDDL /* Tandem extension non-reserved word */
%token <tokval> TOK_SYSDATE
%token <tokval> TOK_SYSTIMESTAMP
@@ -2275,7 +2279,7 @@ static void enableMakeQuotedStringISO88591Mechanism()
%type <pElemDDL> optional_schema_clause
%type <stringval> optional_as_auth_clause
%type <stringval> external_user_identifier
-%type <tokval> user_or_role
+%type <tokval> for_user_or_role
%type <tokval> procedure_or_function
%type <pStmtDDL> sql_schema_statement
%type <pStmtDDL> sql_schema_definition_statement
@@ -15439,13 +15443,15 @@ exe_util_get_metadata_info :
$$ = gmi;
}
- | TOK_GET get_info_aus_clause procedure_or_function TOK_FOR TOK_LIBRARY table_name
+ | TOK_GET get_info_aus_clause procedure_or_function TOK_FOR_LIBRARY table_name
+ optional_no_header_and_match_pattern_clause
{
NAString aus("ALL");
NAString infoType;
NAString iof("FOR");
NAString objType("LIBRARY");
CorrName cn("");
+
// we want an empty get_info_aus_clause; it is just there to make the
// production symetric with other GET statements and please the parser
if (*$2 != "NONE")
@@ -15457,24 +15463,34 @@ exe_util_get_metadata_info :
else
infoType = "TABLE_FUNCTIONS" ;
+ PtrPlaceHolder * pph = $6;
+ NAString * noHeader = (NAString *)pph->ptr1_;
+ NAString * pattern = (NAString *)pph->ptr2_;
+ NAString * fullyQualNames = (NAString *)pph->ptr3_;
+
ExeUtilGetMetadataInfo * gmi = new (PARSERHEAP ())
ExeUtilGetMetadataInfo(
aus, // NAString &
infoType, // NAString &
iof, // NAString &
objType, // NAString & objectType
- *($6), // CorrName &
+ *($5), // CorrName &
NULL, // NAString * pattern
TRUE, // return fully qualified names
FALSE, // getVersion
NULL, // param1 -- the library name
PARSERHEAP ()); // ColHeap * oHeap
- //gmi->setNoHeader(TRUE);
+ if (noHeader)
+ gmi->setNoHeader(TRUE);
+ else if (NOT ((CmpCommon::getDefault(IS_SQLCI) == DF_ON) ||
+ (CmpCommon::getDefault(NVCI_PROCESS) == DF_ON)))
+ gmi->setNoHeader(TRUE);
+
$$ = gmi;
}
| TOK_GET get_info_aus_clause obj_priv_identifier
- TOK_FOR user_or_role authorization_identifier
+ for_user_or_role authorization_identifier
optional_no_header_and_match_pattern_clause
{
NAString aus(*$2);
@@ -15482,22 +15498,15 @@ exe_util_get_metadata_info :
if (aus == "NONE")
aus = "USER";
- if ((*$3 != "SEQUENCES" ) && (*$3 != "INDEXES" ) &&
- (*$3 != "PRIVILEGES") && (*$3 != "PROCEDURES") &&
- (*$3 != "FUNCTIONS" ) && (*$3 != "TABLE_MAPPING FUNCTIONS") &&
- (*$3 != "SCHEMAS" ) && (*$3 != "TABLES" ) &&
- (*$3 != "VIEWS" ) && (*$3 != "USERS" ) &&
- (*$3 != "ROLES" ) && (*$3 != "LIBRARIES" )) YYERROR;
-
NAString infoType(*$3);
NAString iof("FOR");
NAString objType("USER");
- if ($5 == TOK_ROLE)
+ if ($4 == TOK_FOR_ROLE)
objType = "ROLE";
-
- PtrPlaceHolder * pph = $7;
+
+ PtrPlaceHolder * pph = $6;
NAString * noHeader = (NAString *)pph->ptr1_;
NAString * pattern = (NAString *)pph->ptr2_;
NABoolean fullyQualNames = (pph->ptr3_) ? TRUE : FALSE;
@@ -15508,7 +15517,7 @@ exe_util_get_metadata_info :
ExeUtilGetMetadataInfo * gmi = new (PARSERHEAP ()) ExeUtilGetMetadataInfo
(aus, infoType, iof, objType, cnm, pattern, fullyQualNames,
- getVersion, $6, PARSERHEAP ());
+ getVersion, $5, PARSERHEAP ());
if (noHeader ||
(NOT ((CmpCommon::getDefault(IS_SQLCI) == DF_ON) ||
@@ -15793,16 +15802,16 @@ exe_util_get_metadata_info :
$$ = gmi;
}
-user_or_role : TOK_USER | TOK_ROLE
+for_user_or_role : TOK_FOR_USER | TOK_FOR_ROLE
optional_for_user_clause : empty { $$ = NULL; }
| TOK_FOR authorization_identifier
{
$$ = new(PARSERHEAP()) NAString(*$2);
}
- | TOK_FOR TOK_USER authorization_identifier
+ | TOK_FOR_USER authorization_identifier
{
- $$ = new(PARSERHEAP()) NAString(*$3);
+ $$ = new(PARSERHEAP()) NAString(*$2);
}
optional_authid_clause : empty { $$ = NULL; }
@@ -22819,11 +22828,11 @@ show_statement:
new (PARSERHEAP())
ColReference(new (PARSERHEAP()) ColRefName(TRUE, PARSERHEAP())));
}
- | TOK_SHOWDDL TOK_USER authorization_identifier
+ | TOK_SHOWDDL_USER authorization_identifier
{
$$ = new (PARSERHEAP())
RelRoot(new (PARSERHEAP())
- Describe(SQLTEXT(), COM_USER_CLASS, *$3, Describe::SHOWDDL_),
+ Describe(SQLTEXT(), COM_USER_CLASS, *$2, Describe::SHOWDDL_),
REL_ROOT,
new (PARSERHEAP())
ColReference(new (PARSERHEAP()) ColRefName(TRUE, PARSERHEAP())));
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/parser/ulexer.cpp
----------------------------------------------------------------------
diff --git a/core/sql/parser/ulexer.cpp b/core/sql/parser/ulexer.cpp
index 26b1afb..3021814 100644
--- a/core/sql/parser/ulexer.cpp
+++ b/core/sql/parser/ulexer.cpp
@@ -2934,6 +2934,18 @@ Int32 yyULexer::yylex(YYSTYPE *lvalp)
// retract to end of kwd1.
retractToMark(end1);
return anSQLMXKeyword(keyWordEntry1->getTokenCode(), lvalp);
+ case TOK_LIBRARY:
+ *end1 = holdChar1;
+ doBeforeAction();
+ return aCompoundKeyword(TOK_FOR_LIBRARY, lvalp);
+ case TOK_ROLE:
+ *end1 = holdChar1;
+ doBeforeAction();
+ return aCompoundKeyword(TOK_FOR_ROLE, lvalp);
+ case TOK_USER:
+ *end1 = holdChar1;
+ doBeforeAction();
+ return aCompoundKeyword(TOK_FOR_USER, lvalp);
case TOK_MAXRUNTIME:
case TOK_REPEATABLE:
case TOK_SERIALIZABLE:
@@ -3108,6 +3120,12 @@ Int32 yyULexer::yylex(YYSTYPE *lvalp)
TOK_SHOWDDL_SEQUENCE,
keyWordEntry1->getTokenCode(),
end1, holdChar1, lvalp);
+ else if (keyWordEntry2->getTokenCode() == TOK_USER)
+ return eitherCompoundOrSimpleKeyword
+ ( keyWordEntry2->getTokenCode() == TOK_USER,
+ TOK_SHOWDDL_USER,
+ keyWordEntry1->getTokenCode(),
+ end1, holdChar1, lvalp);
break;
case TOK_SERIALIZABLE:
return eitherCompoundOrSimpleKeyword
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/regress/compGeneral/EXPECTEDTOK
----------------------------------------------------------------------
diff --git a/core/sql/regress/compGeneral/EXPECTEDTOK b/core/sql/regress/compGeneral/EXPECTEDTOK
index e2bd723..2d2eabf 100644
--- a/core/sql/regress/compGeneral/EXPECTEDTOK
+++ b/core/sql/regress/compGeneral/EXPECTEDTOK
@@ -1,5 +1,5 @@
sqlparser.y: warning: 61 shift/reduce conflicts [-Wconflicts-sr]
-sqlparser.y: warning: 12 reduce/reduce conflicts [-Wconflicts-rr]
+sqlparser.y: warning: 9 reduce/reduce conflicts [-Wconflicts-rr]
nnnn conflicts: 1 shift/reduce nnnn olap_sequence_function: set_function_specification . TOK_OVER '(' opt_olap_part_clause opt_olap_order_clause ')'
nnnn conflicts: 1 shift/reduce nnnn value_expression: value_expression_sans_collate . collation_option
@@ -17,10 +17,7 @@ nnnn conflicts: 2 shift/reduce nnnn value_expression_list_comma: value_expressio
nnnn conflicts: 1 shift/reduce nnnn value_expression_list_comma: value_expression . ',' value_expression
nnnn conflicts: 1 shift/reduce nnnn primary: row_subquery .
nnnn conflicts: 1 shift/reduce nnnn control_statement: TOK_CONTROL TOK_QUERY TOK_SHAPE . query_shape_options query_shape_control
-nnnn conflicts: 1 reduce/reduce nnnn procedure_or_function: TOK_PROCEDURES .
-nnnn conflicts: 1 reduce/reduce nnnn procedure_or_function: TOK_FUNCTIONS .
nnnn conflicts: 1 shift/reduce nnnn drop_catalog_statement: TOK_DROP TOK_CATALOG . catalog_name extension_drop_behavior
-nnnn conflicts: 1 reduce/reduce nnnn procedure_or_function: TOK_TABLE_MAPPING TOK_FUNCTIONS .
nnnn conflicts: 8 shift/reduce nnnn query_spec_body: query_select_list table_expression . access_type optional_lock_mode
nnnn conflicts: 1 reduce/reduce nnnn primary: row_subquery .
nnnn conflicts: 1 reduce/reduce nnnn primary: row_subquery .
http://git-wip-us.apache.org/repos/asf/trafodion/blob/3d013bc2/core/sql/regress/compGeneral/EXPECTEDTOK2
----------------------------------------------------------------------
diff --git a/core/sql/regress/compGeneral/EXPECTEDTOK2 b/core/sql/regress/compGeneral/EXPECTEDTOK2
index e2bd723..2d2eabf 100644
--- a/core/sql/regress/compGeneral/EXPECTEDTOK2
+++ b/core/sql/regress/compGeneral/EXPECTEDTOK2
@@ -1,5 +1,5 @@
sqlparser.y: warning: 61 shift/reduce conflicts [-Wconflicts-sr]
-sqlparser.y: warning: 12 reduce/reduce conflicts [-Wconflicts-rr]
+sqlparser.y: warning: 9 reduce/reduce conflicts [-Wconflicts-rr]
nnnn conflicts: 1 shift/reduce nnnn olap_sequence_function: set_function_specification . TOK_OVER '(' opt_olap_part_clause opt_olap_order_clause ')'
nnnn conflicts: 1 shift/reduce nnnn value_expression: value_expression_sans_collate . collation_option
@@ -17,10 +17,7 @@ nnnn conflicts: 2 shift/reduce nnnn value_expression_list_comma: value_expressio
nnnn conflicts: 1 shift/reduce nnnn value_expression_list_comma: value_expression . ',' value_expression
nnnn conflicts: 1 shift/reduce nnnn primary: row_subquery .
nnnn conflicts: 1 shift/reduce nnnn control_statement: TOK_CONTROL TOK_QUERY TOK_SHAPE . query_shape_options query_shape_control
-nnnn conflicts: 1 reduce/reduce nnnn procedure_or_function: TOK_PROCEDURES .
-nnnn conflicts: 1 reduce/reduce nnnn procedure_or_function: TOK_FUNCTIONS .
nnnn conflicts: 1 shift/reduce nnnn drop_catalog_statement: TOK_DROP TOK_CATALOG . catalog_name extension_drop_behavior
-nnnn conflicts: 1 reduce/reduce nnnn procedure_or_function: TOK_TABLE_MAPPING TOK_FUNCTIONS .
nnnn conflicts: 8 shift/reduce nnnn query_spec_body: query_select_list table_expression . access_type optional_lock_mode
nnnn conflicts: 1 reduce/reduce nnnn primary: row_subquery .
nnnn conflicts: 1 reduce/reduce nnnn primary: row_subquery .
[3/4] trafodion git commit: Updated messages manual
Posted by rm...@apache.org.
Updated messages manual
Project: http://git-wip-us.apache.org/repos/asf/trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafodion/commit/a666773f
Tree: http://git-wip-us.apache.org/repos/asf/trafodion/tree/a666773f
Diff: http://git-wip-us.apache.org/repos/asf/trafodion/diff/a666773f
Branch: refs/heads/master
Commit: a666773f92cfdc5d6ece66c288d78ec61fc362da
Parents: 3d013bc
Author: Roberta Marton <ro...@apache.org>
Authored: Fri Aug 3 18:58:48 2018 +0000
Committer: Roberta Marton <ro...@apache.org>
Committed: Fri Aug 3 18:58:48 2018 +0000
----------------------------------------------------------------------
.../src/asciidoc/_chapters/ddl_msgs.adoc | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafodion/blob/a666773f/docs/messages_guide/src/asciidoc/_chapters/ddl_msgs.adoc
----------------------------------------------------------------------
diff --git a/docs/messages_guide/src/asciidoc/_chapters/ddl_msgs.adoc b/docs/messages_guide/src/asciidoc/_chapters/ddl_msgs.adoc
index 6c8d5d8..f6cb4db 100644
--- a/docs/messages_guide/src/asciidoc/_chapters/ddl_msgs.adoc
+++ b/docs/messages_guide/src/asciidoc/_chapters/ddl_msgs.adoc
@@ -1075,6 +1075,26 @@ for <column-name>.
*Recovery:* Specify a valid default value for the column and resubmit.
<<<
+[[SQL-1086]]
+== SQL 1086
+
+```
+<auth-name> is not a <auth-type>.
+```
+
+Where <auth-name> is the name of a user or role.
+
+Where <auth-type is one of the following: user or role.
+
+*Cause:* A request was made to read metadata for an operation associated with an
+authorization name.
+The authorization name was found but it was not the type expected.
+
+*Effect:* The operation fails.
+
+*Recovery:* Enter the correct authorization name and resubmit the request.
+
+<<<
[[SQL-1089]]
== SQL 1089