From df60d4013485d534945a8fe2368edc35870c9e81 Mon Sep 17 00:00:00 2001 From: Jan Prochazka Date: Fri, 31 May 2024 15:21:49 +0200 Subject: [PATCH] oracle - using default schema --- plugins/dbgate-plugin-oracle/src/backend/drivers.js | 3 +++ plugins/dbgate-plugin-oracle/src/backend/sql/columns.js | 2 +- .../dbgate-plugin-oracle/src/backend/sql/foreignKeys.js | 6 +++--- plugins/dbgate-plugin-oracle/src/backend/sql/indexes.js | 2 +- .../src/backend/sql/matviewColumns.js | 4 ++-- plugins/dbgate-plugin-oracle/src/backend/sql/matviews.js | 2 +- .../dbgate-plugin-oracle/src/backend/sql/primaryKeys.js | 2 +- plugins/dbgate-plugin-oracle/src/backend/sql/routines.js | 2 +- .../dbgate-plugin-oracle/src/backend/sql/tableList.js | 2 +- plugins/dbgate-plugin-oracle/src/backend/sql/views.js | 2 +- plugins/dbgate-plugin-oracle/src/frontend/Dumper.js | 9 +++++++++ 11 files changed, 24 insertions(+), 12 deletions(-) diff --git a/plugins/dbgate-plugin-oracle/src/backend/drivers.js b/plugins/dbgate-plugin-oracle/src/backend/drivers.js index 57ae6d947..eb10a4e5f 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/drivers.js +++ b/plugins/dbgate-plugin-oracle/src/backend/drivers.js @@ -57,6 +57,9 @@ const drivers = driverBases.map(driverBase => ({ password, connectString: useDatabaseUrl ? databaseUrl : port ? `${server}:${port}/${serviceName}` : server, }); + if (database) { + await client.execute(`ALTER SESSION SET CURRENT_SCHEMA = ${database}`); + } client._schema_name = database; return client; }, diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/columns.js b/plugins/dbgate-plugin-oracle/src/backend/sql/columns.js index 09b086d7a..f605bb3b5 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/sql/columns.js +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/columns.js @@ -1,6 +1,6 @@ module.exports = ` select - owner as "schema_name", + -- owner as "schema_name", table_name as "pure_name", column_name as "column_name", nullable as "is_nullable", diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/foreignKeys.js b/plugins/dbgate-plugin-oracle/src/backend/sql/foreignKeys.js index 4a8b3a891..945ae784b 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/sql/foreignKeys.js +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/foreignKeys.js @@ -1,12 +1,12 @@ module.exports = ` select fk.constraint_name as "constraint_name", - fk.owner as "constraint_schema", + -- fk.owner as "constraint_schema", fk.table_name as "pure_name", - fk.owner as "schema_name", + -- fk.owner as "schema_name", fk.delete_rule as "update_action", fk.delete_rule as "delete_action", ref.table_name as "ref_table_name", - ref.owner as "ref_schema_name", + -- ref.owner as "ref_schema_name", basecol.column_name as "column_name", refcol.column_name as "ref_column_name" from all_cons_columns refcol, all_cons_columns basecol, all_constraints ref, all_constraints fk diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/indexes.js b/plugins/dbgate-plugin-oracle/src/backend/sql/indexes.js index 2a2946069..b1eb9d2e8 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/sql/indexes.js +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/indexes.js @@ -1,6 +1,6 @@ module.exports = ` select i.table_name as "tableName", - i.table_owner as "schemaName", + -- i.table_owner as "schemaName", i.index_name as "constraintName", i.index_type as "indexType", i.uniqueness as "Unique", diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/matviewColumns.js b/plugins/dbgate-plugin-oracle/src/backend/sql/matviewColumns.js index 19545fc34..85f603342 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/sql/matviewColumns.js +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/matviewColumns.js @@ -1,6 +1,6 @@ module.exports = ` -SELECT owner "schema_name" - , table_name "pure_name" +SELECT -- owner "schema_name" + table_name "pure_name" , column_name "column_name" , data_type "data_type" FROM all_tab_columns av diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/matviews.js b/plugins/dbgate-plugin-oracle/src/backend/sql/matviews.js index 233ecc04f..dad92438b 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/sql/matviews.js +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/matviews.js @@ -1,5 +1,5 @@ module.exports = ` -SELECT owner as schema_name, +SELECT -- owner as schema_name, mview_name pure_name, container_name, '' || trim( diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/primaryKeys.js b/plugins/dbgate-plugin-oracle/src/backend/sql/primaryKeys.js index 6d10262d6..ffe38fc33 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/sql/primaryKeys.js +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/primaryKeys.js @@ -1,6 +1,6 @@ module.exports = ` select - pk.owner as "constraint_schema", + -- pk.owner as "constraint_schema", pk.constraint_name as "constraint_name", pk.owner as "schema_name", pk.table_name as "pure_name", diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/routines.js b/plugins/dbgate-plugin-oracle/src/backend/sql/routines.js index 7385514e0..533d9d962 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/sql/routines.js +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/routines.js @@ -1,7 +1,7 @@ module.exports = ` select routine_name as "pure_name", - routine_schema as "schema_name", + -- routine_schema as "schema_name", routine_definition as "definition", standard_hash(routine_definition, 'MD5') as "hash_code", routine_type as "object_type", diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/tableList.js b/plugins/dbgate-plugin-oracle/src/backend/sql/tableList.js index 81e07e112..0a4ab93fe 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/sql/tableList.js +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/tableList.js @@ -1,6 +1,6 @@ module.exports = ` select - owner "schema_name", + -- owner "schema_name", table_name "pure_name" from all_tables diff --git a/plugins/dbgate-plugin-oracle/src/backend/sql/views.js b/plugins/dbgate-plugin-oracle/src/backend/sql/views.js index 9f10f7fb4..d001c8d9e 100644 --- a/plugins/dbgate-plugin-oracle/src/backend/sql/views.js +++ b/plugins/dbgate-plugin-oracle/src/backend/sql/views.js @@ -3,7 +3,7 @@ select avv.*, ora_hash("create_sql") as "hash_code" from (select view_name as "pure_name", - owner as "schema_name", + -- owner as "schema_name", SUBSTR(text_vc, 1, 3900) AS "create_sql" from all_views av where owner = '$owner' and text_vc is not null diff --git a/plugins/dbgate-plugin-oracle/src/frontend/Dumper.js b/plugins/dbgate-plugin-oracle/src/frontend/Dumper.js index d47aa78d2..b60deb8fe 100644 --- a/plugins/dbgate-plugin-oracle/src/frontend/Dumper.js +++ b/plugins/dbgate-plugin-oracle/src/frontend/Dumper.js @@ -1,6 +1,15 @@ const { SqlDumper, arrayToHexString, testEqualTypes } = global.DBGATE_TOOLS; class Dumper extends SqlDumper { + createDatabase(name) { + this.putCmd(`CREATE USER c##${name} + IDENTIFIED BY ${name} + DEFAULT TABLESPACE users + TEMPORARY TABLESPACE temp + QUOTA 10M ON users;`, name); + } + + /** @param type {import('dbgate-types').TransformType} */ transform(type, dumpExpr) { switch (type) {