|
|
|
|
@ -2210,7 +2210,7 @@ int ObInnerTableSchema::dba_types_schema(ObTableSchema &table_schema)
|
|
|
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
|
|
|
|
|
|
if (OB_SUCC(ret)) {
|
|
|
|
|
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT D.DATABASE_NAME AS OWNER, T.TYPE_NAME AS TYPE_NAME, T.TYPE_ID AS TYPE_OID, CAST( CASE T.TYPECODE WHEN 1 THEN 'COLLECTION' WHEN 2 THEN 'OBJECT' END AS VARCHAR2(10)) AS TYPECODE, T.ATTRIBUTES AS ATTRIBUTES, T.METHODS AS METHODS, CAST('NO' AS CHAR(2)) AS PREDEFINED, CAST('NO' AS CHAR(2)) AS INCOMPLETE, CAST('YES' AS CHAR(3)) AS FINAL, CAST('YES' AS CHAR(3)) AS INSTANTIABLE, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_OWNER, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_NAME, T.LOCAL_ATTRS AS LOCAL_ATTRIBUTES, T.LOCAL_METHODS AS LOCAL_METHODS, T.TYPE_ID AS TYPEID FROM SYS.ALL_VIRTUAL_TYPE_REAL_AGENT T JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON D.DATABASE_ID = T.DATABASE_ID AND T.TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') AND T.TENANT_ID = EFFECTIVE_TENANT_ID() AND D.TENANT_ID = EFFECTIVE_TENANT_ID() UNION ALL SELECT CAST('SYS' AS VARCHAR2(30)) AS OWNER, TS.TYPE_NAME AS TYPE_NAME, TS.TYPE_ID AS TYPE_OID, CAST( CASE TS.TYPECODE WHEN 1 THEN 'COLLECTION' WHEN 2 THEN 'OBJECT' END AS VARCHAR2(10)) AS TYPECODE, TS.ATTRIBUTES AS ATTRIBUTES, TS.METHODS AS METHODS, CAST('NO' AS CHAR(2)) AS PREDEFINED, CAST('NO' AS CHAR(2)) AS INCOMPLETE, CAST('YES' AS CHAR(3)) AS FINAL, CAST('YES' AS CHAR(3)) AS INSTANTIABLE, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_OWNER, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_NAME, TS.LOCAL_ATTRS AS LOCAL_ATTRIBUTES, TS.LOCAL_METHODS AS LOCAL_METHODS, TS.TYPE_ID AS TYPEID FROM SYS.ALL_VIRTUAL_TYPE_SYS_AGENT TS )__"))) {
|
|
|
|
|
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT D.DATABASE_NAME AS OWNER, T.TYPE_NAME AS TYPE_NAME, T.TYPE_ID AS TYPE_OID, CAST( CASE T.TYPECODE WHEN 1 THEN 'COLLECTION' WHEN 2 THEN 'OBJECT' END AS VARCHAR2(10)) AS TYPECODE, T.ATTRIBUTES AS ATTRIBUTES, T.METHODS AS METHODS, CAST('NO' AS CHAR(2)) AS PREDEFINED, CAST('NO' AS CHAR(2)) AS INCOMPLETE, CAST('YES' AS CHAR(3)) AS FINAL, CAST('YES' AS CHAR(3)) AS INSTANTIABLE, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_OWNER, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_NAME, CAST(NULL AS NUMBER(38)) AS LOCAL_ATTRIBUTES, CAST(NULL AS NUMBER(38)) AS LOCAL_METHODS, T.TYPE_ID AS TYPEID FROM SYS.ALL_VIRTUAL_TYPE_REAL_AGENT T JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON D.DATABASE_ID = T.DATABASE_ID AND T.TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') AND T.TENANT_ID = EFFECTIVE_TENANT_ID() AND D.TENANT_ID = EFFECTIVE_TENANT_ID() UNION ALL SELECT CAST('SYS' AS VARCHAR2(30)) AS OWNER, TS.TYPE_NAME AS TYPE_NAME, TS.TYPE_ID AS TYPE_OID, CAST( CASE TS.TYPECODE WHEN 1 THEN 'COLLECTION' WHEN 2 THEN 'OBJECT' END AS VARCHAR2(10)) AS TYPECODE, TS.ATTRIBUTES AS ATTRIBUTES, TS.METHODS AS METHODS, CAST('NO' AS CHAR(2)) AS PREDEFINED, CAST('NO' AS CHAR(2)) AS INCOMPLETE, CAST('YES' AS CHAR(3)) AS FINAL, CAST('YES' AS CHAR(3)) AS INSTANTIABLE, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_OWNER, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_NAME, CAST(NULL AS NUMBER(38)) AS LOCAL_ATTRIBUTES, CAST(NULL AS NUMBER(38)) AS LOCAL_METHODS, TS.TYPE_ID AS TYPEID FROM SYS.ALL_VIRTUAL_TYPE_SYS_AGENT TS )__"))) {
|
|
|
|
|
LOG_ERROR("fail to set view_definition", K(ret));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -2260,7 +2260,7 @@ int ObInnerTableSchema::all_types_schema(ObTableSchema &table_schema)
|
|
|
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
|
|
|
|
|
|
if (OB_SUCC(ret)) {
|
|
|
|
|
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT D.DATABASE_NAME AS OWNER, T.TYPE_NAME AS TYPE_NAME, T.TYPE_ID AS TYPE_OID, CAST( CASE T.TYPECODE WHEN 1 THEN 'COLLECTION' WHEN 2 THEN 'OBJECT' END AS VARCHAR2(10)) AS TYPECODE, T.ATTRIBUTES AS ATTRIBUTES, T.METHODS AS METHODS, CAST('NO' AS CHAR(2)) AS PREDEFINED, CAST('NO' AS CHAR(2)) AS INCOMPLETE, CAST('YES' AS CHAR(3)) AS FINAL, CAST('YES' AS CHAR(3)) AS INSTANTIABLE, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_OWNER, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_NAME, T.LOCAL_ATTRS AS LOCAL_ATTRIBUTES, T.LOCAL_METHODS AS LOCAL_METHODS, T.TYPE_ID AS TYPEID FROM SYS.ALL_VIRTUAL_TYPE_REAL_AGENT T JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON D.DATABASE_ID = T.DATABASE_ID AND T.TENANT_ID = EFFECTIVE_TENANT_ID() AND D.TENANT_ID = EFFECTIVE_TENANT_ID() AND (T.DATABASE_ID = USERENV('SCHEMAID') or USER_CAN_ACCESS_OBJ(4, T.TYPE_ID, T.DATABASE_ID) = 1) AND T.TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') UNION ALL SELECT CAST('SYS' AS VARCHAR2(30)) AS OWNER, TS.TYPE_NAME AS TYPE_NAME, TS.TYPE_ID AS TYPE_OID, CAST( CASE TS.TYPECODE WHEN 1 THEN 'COLLECTION' WHEN 2 THEN 'OBJECT' END AS VARCHAR2(10)) AS TYPECODE, TS.ATTRIBUTES AS ATTRIBUTES, TS.METHODS AS METHODS, CAST('NO' AS CHAR(2)) AS PREDEFINED, CAST('NO' AS CHAR(2)) AS INCOMPLETE, CAST('YES' AS CHAR(3)) AS FINAL, CAST('YES' AS CHAR(3)) AS INSTANTIABLE, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_OWNER, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_NAME, TS.LOCAL_ATTRS AS LOCAL_ATTRIBUTES, TS.LOCAL_METHODS AS LOCAL_METHODS, TS.TYPE_ID AS TYPEID FROM SYS.ALL_VIRTUAL_TYPE_SYS_AGENT TS )__"))) {
|
|
|
|
|
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT D.DATABASE_NAME AS OWNER, T.TYPE_NAME AS TYPE_NAME, T.TYPE_ID AS TYPE_OID, CAST( CASE T.TYPECODE WHEN 1 THEN 'COLLECTION' WHEN 2 THEN 'OBJECT' END AS VARCHAR2(10)) AS TYPECODE, T.ATTRIBUTES AS ATTRIBUTES, T.METHODS AS METHODS, CAST('NO' AS CHAR(2)) AS PREDEFINED, CAST('NO' AS CHAR(2)) AS INCOMPLETE, CAST('YES' AS CHAR(3)) AS FINAL, CAST('YES' AS CHAR(3)) AS INSTANTIABLE, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_OWNER, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_NAME, CAST(NULL AS NUMBER(38)) AS LOCAL_ATTRIBUTES, CAST(NULL AS NUMBER(38)) AS LOCAL_METHODS, T.TYPE_ID AS TYPEID FROM SYS.ALL_VIRTUAL_TYPE_REAL_AGENT T JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON D.DATABASE_ID = T.DATABASE_ID AND T.TENANT_ID = EFFECTIVE_TENANT_ID() AND D.TENANT_ID = EFFECTIVE_TENANT_ID() AND (T.DATABASE_ID = USERENV('SCHEMAID') or USER_CAN_ACCESS_OBJ(4, T.TYPE_ID, T.DATABASE_ID) = 1) AND T.TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') UNION ALL SELECT CAST('SYS' AS VARCHAR2(30)) AS OWNER, TS.TYPE_NAME AS TYPE_NAME, TS.TYPE_ID AS TYPE_OID, CAST( CASE TS.TYPECODE WHEN 1 THEN 'COLLECTION' WHEN 2 THEN 'OBJECT' END AS VARCHAR2(10)) AS TYPECODE, TS.ATTRIBUTES AS ATTRIBUTES, TS.METHODS AS METHODS, CAST('NO' AS CHAR(2)) AS PREDEFINED, CAST('NO' AS CHAR(2)) AS INCOMPLETE, CAST('YES' AS CHAR(3)) AS FINAL, CAST('YES' AS CHAR(3)) AS INSTANTIABLE, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_OWNER, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_NAME, CAST(NULL AS NUMBER(38)) AS LOCAL_ATTRIBUTES, CAST(NULL AS NUMBER(38)) AS LOCAL_METHODS, TS.TYPE_ID AS TYPEID FROM SYS.ALL_VIRTUAL_TYPE_SYS_AGENT TS )__"))) {
|
|
|
|
|
LOG_ERROR("fail to set view_definition", K(ret));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -2310,7 +2310,7 @@ int ObInnerTableSchema::user_types_schema(ObTableSchema &table_schema)
|
|
|
|
|
table_schema.set_collation_type(ObCharset::get_default_collation(ObCharset::get_default_charset()));
|
|
|
|
|
|
|
|
|
|
if (OB_SUCC(ret)) {
|
|
|
|
|
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT T.TYPE_NAME AS TYPE_NAME, T.TYPE_ID AS TYPE_OID, CAST( CASE T.TYPECODE WHEN 1 THEN 'COLLECTION' WHEN 2 THEN 'OBJECT' END AS VARCHAR2(10)) AS TYPECODE, T.ATTRIBUTES AS ATTRIBUTES, T.METHODS AS METHODS, CAST('NO' AS CHAR(2)) AS PREDEFINED, CAST('NO' AS CHAR(2)) AS INCOMPLETE, CAST('YES' AS CHAR(3)) AS FINAL, CAST('YES' AS CHAR(3)) AS INSTANTIABLE, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_OWNER, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_NAME, T.LOCAL_ATTRS AS LOCAL_ATTRIBUTES, T.LOCAL_METHODS AS LOCAL_METHODS, T.TYPE_ID AS TYPEID FROM SYS.ALL_VIRTUAL_TYPE_REAL_AGENT T JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON D.DATABASE_ID = T.DATABASE_ID AND T.TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') AND D.DATABASE_ID = USERENV('SCHEMAID') AND T.TENANT_ID = EFFECTIVE_TENANT_ID() AND D.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) {
|
|
|
|
|
if (OB_FAIL(table_schema.set_view_definition(R"__( SELECT T.TYPE_NAME AS TYPE_NAME, T.TYPE_ID AS TYPE_OID, CAST( CASE T.TYPECODE WHEN 1 THEN 'COLLECTION' WHEN 2 THEN 'OBJECT' END AS VARCHAR2(10)) AS TYPECODE, T.ATTRIBUTES AS ATTRIBUTES, T.METHODS AS METHODS, CAST('NO' AS CHAR(2)) AS PREDEFINED, CAST('NO' AS CHAR(2)) AS INCOMPLETE, CAST('YES' AS CHAR(3)) AS FINAL, CAST('YES' AS CHAR(3)) AS INSTANTIABLE, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_OWNER, CAST(NULL AS VARCHAR2(30)) AS SUPERTYPE_NAME, CAST(NULL AS NUMBER(38)) AS LOCAL_ATTRIBUTES, CAST(NULL AS NUMBER(38)) AS LOCAL_METHODS, T.TYPE_ID AS TYPEID FROM SYS.ALL_VIRTUAL_TYPE_REAL_AGENT T JOIN SYS.ALL_VIRTUAL_DATABASE_REAL_AGENT D ON D.DATABASE_ID = T.DATABASE_ID AND T.TENANT_ID = SYS_CONTEXT('USERENV', 'CON_ID') AND D.DATABASE_ID = USERENV('SCHEMAID') AND T.TENANT_ID = EFFECTIVE_TENANT_ID() AND D.TENANT_ID = EFFECTIVE_TENANT_ID() )__"))) {
|
|
|
|
|
LOG_ERROR("fail to set view_definition", K(ret));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|