mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-19 00:16:00 +00:00
get version result and login from oracle
This commit is contained in:
23
plugins/dbgate-plugin-oracle/src/backend/sql/columns.js
Normal file
23
plugins/dbgate-plugin-oracle/src/backend/sql/columns.js
Normal file
@@ -0,0 +1,23 @@
|
||||
module.exports = `
|
||||
select
|
||||
table_schema as "schema_name",
|
||||
table_name as "pure_name",
|
||||
column_name as "column_name",
|
||||
is_nullable as "is_nullable",
|
||||
data_type as "data_type",
|
||||
character_maximum_length as "char_max_length",
|
||||
numeric_precision as "numeric_precision",
|
||||
numeric_scale as "numeric_scale",
|
||||
column_default as "default_value"
|
||||
from information_schema.columns
|
||||
where
|
||||
table_schema <> 'information_schema'
|
||||
and table_schema <> 'pg_catalog'
|
||||
and table_schema !~ '^pg_toast'
|
||||
and (
|
||||
('tables:' || table_schema || '.' || table_name) =OBJECT_ID_CONDITION
|
||||
or
|
||||
('views:' || table_schema || '.' || table_name) =OBJECT_ID_CONDITION
|
||||
)
|
||||
order by ordinal_position
|
||||
`;
|
||||
@@ -0,0 +1,10 @@
|
||||
module.exports = `
|
||||
select
|
||||
basecol.constraint_name,
|
||||
basecol.constraint_schema,
|
||||
basecol.column_name as "column_name",
|
||||
basecol.table_schema,
|
||||
basecol.table_name,
|
||||
basecol.ordinal_position
|
||||
from information_schema.key_column_usage basecol
|
||||
`;
|
||||
@@ -0,0 +1,10 @@
|
||||
module.exports = `
|
||||
select
|
||||
fk.constraint_name as "constraint_name",
|
||||
fk.constraint_schema as "constraint_schema",
|
||||
fk.update_rule as "update_action",
|
||||
fk.delete_rule as "delete_action",
|
||||
fk.unique_constraint_name as "unique_constraint_name",
|
||||
fk.unique_constraint_schema as "unique_constraint_schema"
|
||||
from information_schema.referential_constraints fk
|
||||
`;
|
||||
@@ -0,0 +1,8 @@
|
||||
module.exports = `
|
||||
select
|
||||
base.table_name as "table_name",
|
||||
base.table_schema as "table_schema",
|
||||
base.constraint_name as "constraint_name",
|
||||
base.constraint_schema as "constraint_schema"
|
||||
from information_schema.table_constraints base
|
||||
`;
|
||||
24
plugins/dbgate-plugin-oracle/src/backend/sql/foreignKeys.js
Normal file
24
plugins/dbgate-plugin-oracle/src/backend/sql/foreignKeys.js
Normal file
@@ -0,0 +1,24 @@
|
||||
module.exports = `
|
||||
select
|
||||
fk.constraint_name as "constraint_name",
|
||||
fk.constraint_schema as "constraint_schema",
|
||||
base.table_name as "pure_name",
|
||||
base.table_schema as "schema_name",
|
||||
fk.update_rule as "update_action",
|
||||
fk.delete_rule as "delete_action",
|
||||
ref.table_name as "ref_table_name",
|
||||
ref.table_schema as "ref_schema_name",
|
||||
basecol.column_name as "column_name",
|
||||
refcol.column_name as "ref_column_name"
|
||||
from information_schema.referential_constraints fk
|
||||
inner join information_schema.table_constraints base on fk.constraint_name = base.constraint_name and fk.constraint_schema = base.constraint_schema
|
||||
inner join information_schema.table_constraints ref on fk.unique_constraint_name = ref.constraint_name and fk.unique_constraint_schema = ref.constraint_schema #REFTABLECOND#
|
||||
inner join information_schema.key_column_usage basecol on base.table_name = basecol.table_name and base.constraint_name = basecol.constraint_name
|
||||
inner join information_schema.key_column_usage refcol on ref.table_name = refcol.table_name and ref.constraint_name = refcol.constraint_name and basecol.ordinal_position = refcol.ordinal_position
|
||||
where
|
||||
base.table_schema <> 'information_schema'
|
||||
and base.table_schema <> 'pg_catalog'
|
||||
and base.table_schema !~ '^pg_toast'
|
||||
and ('tables:' || base.table_schema || '.' || base.table_name) =OBJECT_ID_CONDITION
|
||||
order by basecol.ordinal_position
|
||||
`;
|
||||
@@ -0,0 +1,8 @@
|
||||
module.exports = `
|
||||
select
|
||||
f_table_schema as "schema_name",
|
||||
f_table_name as "pure_name",
|
||||
f_geography_column as "column_name"
|
||||
from public.geography_columns
|
||||
where ('tables:' || f_table_schema || '.' || f_table_name) =OBJECT_ID_CONDITION
|
||||
`;
|
||||
@@ -0,0 +1,8 @@
|
||||
module.exports = `
|
||||
select
|
||||
f_table_schema as "schema_name",
|
||||
f_table_name as "pure_name",
|
||||
f_geometry_column as "column_name"
|
||||
from public.geometry_columns
|
||||
where ('tables:' || f_table_schema || '.' || f_table_name) =OBJECT_ID_CONDITION
|
||||
`;
|
||||
44
plugins/dbgate-plugin-oracle/src/backend/sql/index.js
Normal file
44
plugins/dbgate-plugin-oracle/src/backend/sql/index.js
Normal file
@@ -0,0 +1,44 @@
|
||||
const columns = require('./columns');
|
||||
const tableModifications = require('./tableList');
|
||||
const tableList = require('./tableList');
|
||||
const viewModifications = require('./views');
|
||||
const matviewModifications = require('./matviewModifications');
|
||||
const primaryKeys = require('./primaryKeys');
|
||||
const foreignKeys = require('./foreignKeys');
|
||||
const views = require('./views');
|
||||
const matviews = require('./matviews');
|
||||
const routines = require('./routines');
|
||||
const routineModifications = require('./routineModifications');
|
||||
const matviewColumns = require('./matviewColumns');
|
||||
const indexes = require('./indexes');
|
||||
const indexcols = require('./indexcols');
|
||||
const uniqueNames = require('./uniqueNames');
|
||||
const geometryColumns = require('./geometryColumns');
|
||||
const geographyColumns = require('./geographyColumns');
|
||||
|
||||
const fk_keyColumnUsage = require('./fk_key_column_usage');
|
||||
const fk_referentialConstraints = require('./fk_referential_constraints');
|
||||
const fk_tableConstraints = require('./fk_table_constraints');
|
||||
|
||||
module.exports = {
|
||||
columns,
|
||||
tableModifications,
|
||||
tableList,
|
||||
viewModifications,
|
||||
primaryKeys,
|
||||
foreignKeys,
|
||||
fk_keyColumnUsage,
|
||||
fk_referentialConstraints,
|
||||
fk_tableConstraints,
|
||||
views,
|
||||
routines,
|
||||
routineModifications,
|
||||
matviews,
|
||||
matviewModifications,
|
||||
matviewColumns,
|
||||
indexes,
|
||||
indexcols,
|
||||
uniqueNames,
|
||||
geometryColumns,
|
||||
geographyColumns,
|
||||
};
|
||||
24
plugins/dbgate-plugin-oracle/src/backend/sql/indexcols.js
Normal file
24
plugins/dbgate-plugin-oracle/src/backend/sql/indexcols.js
Normal file
@@ -0,0 +1,24 @@
|
||||
module.exports = `
|
||||
select
|
||||
a.attname as "column_name",
|
||||
a.attnum as "attnum",
|
||||
a.attrelid as "oid"
|
||||
from
|
||||
pg_class t,
|
||||
pg_class i,
|
||||
pg_attribute a,
|
||||
pg_index ix,
|
||||
pg_namespace c
|
||||
where
|
||||
t.oid = ix.indrelid
|
||||
and a.attnum = ANY(ix.indkey)
|
||||
and a.attrelid = t.oid
|
||||
and i.oid = ix.indexrelid
|
||||
and t.relkind = 'r'
|
||||
and ix.indisprimary = false
|
||||
and t.relnamespace = c.oid
|
||||
and c.nspname != 'pg_catalog'
|
||||
and ('tables:' || c.nspname || '.' || t.relname) =OBJECT_ID_CONDITION
|
||||
order by
|
||||
t.relname
|
||||
`;
|
||||
25
plugins/dbgate-plugin-oracle/src/backend/sql/indexes.js
Normal file
25
plugins/dbgate-plugin-oracle/src/backend/sql/indexes.js
Normal file
@@ -0,0 +1,25 @@
|
||||
module.exports = `
|
||||
select
|
||||
t.relname as "table_name",
|
||||
c.nspname as "schema_name",
|
||||
i.relname as "index_name",
|
||||
ix.indisprimary as "is_primary",
|
||||
ix.indisunique as "is_unique",
|
||||
ix.indkey as "indkey",
|
||||
t.oid as "oid"
|
||||
from
|
||||
pg_class t,
|
||||
pg_class i,
|
||||
pg_index ix,
|
||||
pg_namespace c
|
||||
where
|
||||
t.oid = ix.indrelid
|
||||
and i.oid = ix.indexrelid
|
||||
and t.relkind = 'r'
|
||||
and ix.indisprimary = false
|
||||
and t.relnamespace = c.oid
|
||||
and c.nspname != 'pg_catalog'
|
||||
and ('tables:' || c.nspname || '.' || t.relname) =OBJECT_ID_CONDITION
|
||||
order by
|
||||
t.relname
|
||||
`;
|
||||
@@ -0,0 +1,17 @@
|
||||
module.exports = `
|
||||
SELECT pg_namespace.nspname AS "schema_name"
|
||||
, pg_class.relname AS "pure_name"
|
||||
, pg_attribute.attname AS "column_name"
|
||||
, pg_catalog.format_type(pg_attribute.atttypid, pg_attribute.atttypmod) AS "data_type"
|
||||
FROM pg_catalog.pg_class
|
||||
INNER JOIN pg_catalog.pg_namespace
|
||||
ON pg_class.relnamespace = pg_namespace.oid
|
||||
INNER JOIN pg_catalog.pg_attribute
|
||||
ON pg_class.oid = pg_attribute.attrelid
|
||||
-- Keeps only materialized views, and non-db/catalog/index columns
|
||||
WHERE pg_class.relkind = 'm'
|
||||
AND pg_attribute.attnum >= 1
|
||||
AND ('matviews:' || pg_namespace.nspname || '.' || pg_class.relname) =OBJECT_ID_CONDITION
|
||||
|
||||
ORDER BY pg_attribute.attnum
|
||||
`;
|
||||
@@ -0,0 +1,8 @@
|
||||
module.exports = `
|
||||
select
|
||||
matviewname as "pure_name",
|
||||
schemaname as "schema_name",
|
||||
md5(definition) as "hash_code"
|
||||
from
|
||||
pg_catalog.pg_matviews WHERE schemaname NOT LIKE 'pg_%'
|
||||
`;
|
||||
10
plugins/dbgate-plugin-oracle/src/backend/sql/matviews.js
Normal file
10
plugins/dbgate-plugin-oracle/src/backend/sql/matviews.js
Normal file
@@ -0,0 +1,10 @@
|
||||
module.exports = `
|
||||
select
|
||||
matviewname as "pure_name",
|
||||
schemaname as "schema_name",
|
||||
definition as "definition",
|
||||
md5(definition) as "hash_code"
|
||||
from
|
||||
pg_catalog.pg_matviews WHERE schemaname NOT LIKE 'pg_%'
|
||||
and ('matviews:' || schemaname || '.' || matviewname) =OBJECT_ID_CONDITION
|
||||
`;
|
||||
17
plugins/dbgate-plugin-oracle/src/backend/sql/primaryKeys.js
Normal file
17
plugins/dbgate-plugin-oracle/src/backend/sql/primaryKeys.js
Normal file
@@ -0,0 +1,17 @@
|
||||
module.exports = `
|
||||
select
|
||||
table_constraints.constraint_schema as "constraint_schema",
|
||||
table_constraints.constraint_name as "constraint_name",
|
||||
table_constraints.table_schema as "schema_name",
|
||||
table_constraints.table_name as "pure_name",
|
||||
key_column_usage.column_name as "column_name"
|
||||
from information_schema.table_constraints
|
||||
inner join information_schema.key_column_usage on table_constraints.table_name = key_column_usage.table_name and table_constraints.constraint_name = key_column_usage.constraint_name
|
||||
where
|
||||
table_constraints.table_schema <> 'information_schema'
|
||||
and table_constraints.table_schema <> 'pg_catalog'
|
||||
and table_constraints.table_schema !~ '^pg_toast'
|
||||
and table_constraints.constraint_type = 'PRIMARY KEY'
|
||||
and ('tables:' || table_constraints.table_schema || '.' || table_constraints.table_name) =OBJECT_ID_CONDITION
|
||||
order by key_column_usage.ordinal_position
|
||||
`;
|
||||
@@ -0,0 +1,10 @@
|
||||
module.exports = `
|
||||
select
|
||||
routine_name as "pure_name",
|
||||
routine_schema as "schema_name",
|
||||
md5(routine_definition) as "hash_code",
|
||||
routine_type as "object_type"
|
||||
from
|
||||
information_schema.routines where routine_schema != 'information_schema' and routine_schema != 'pg_catalog'
|
||||
and routine_type in ('PROCEDURE', 'FUNCTION')
|
||||
`;
|
||||
17
plugins/dbgate-plugin-oracle/src/backend/sql/routines.js
Normal file
17
plugins/dbgate-plugin-oracle/src/backend/sql/routines.js
Normal file
@@ -0,0 +1,17 @@
|
||||
module.exports = `
|
||||
select
|
||||
routine_name as "pure_name",
|
||||
routine_schema as "schema_name",
|
||||
routine_definition as "definition",
|
||||
md5(routine_definition) as "hash_code",
|
||||
routine_type as "object_type",
|
||||
data_type as "data_type",
|
||||
external_language as "language"
|
||||
from
|
||||
information_schema.routines where routine_schema != 'information_schema' and routine_schema != 'pg_catalog'
|
||||
and (
|
||||
(routine_type = 'PROCEDURE' and ('procedures:' || routine_schema || '.' || routine_name) =OBJECT_ID_CONDITION)
|
||||
or
|
||||
(routine_type = 'FUNCTION' and ('functions:' || routine_schema || '.' || routine_name) =OBJECT_ID_CONDITION)
|
||||
)
|
||||
`;
|
||||
18
plugins/dbgate-plugin-oracle/src/backend/sql/tableList.js
Normal file
18
plugins/dbgate-plugin-oracle/src/backend/sql/tableList.js
Normal file
@@ -0,0 +1,18 @@
|
||||
module.exports = `
|
||||
select ao.owner as "schema_name", ao.object_name as "pure_name"
|
||||
from all_objects ao
|
||||
where exists(select null from user_objects uo where uo.object_id = ao.object_id)
|
||||
and object_type = 'TABLE'
|
||||
`;
|
||||
/*
|
||||
module.exports = `
|
||||
select infoTables.table_schema as "schema_name", infoTables.table_name as "pure_name"
|
||||
from information_schema.tables infoTables
|
||||
where infoTables.table_type not like '%VIEW%'
|
||||
and ('tables:' || infoTables.table_schema || '.' || infoTables.table_name) =OBJECT_ID_CONDITION
|
||||
and infoTables.table_schema <> 'pg_catalog'
|
||||
and infoTables.table_schema <> 'information_schema'
|
||||
and infoTables.table_schema <> 'pg_internal'
|
||||
and infoTables.table_schema !~ '^pg_toast'
|
||||
`;
|
||||
*/
|
||||
@@ -0,0 +1,28 @@
|
||||
module.exports = `
|
||||
select infoTables.table_schema as "schema_name", infoTables.table_name as "pure_name",
|
||||
(
|
||||
select md5(string_agg(
|
||||
infoColumns.column_name || '|' || infoColumns.data_type || '|' || infoColumns.is_nullable::varchar(255) || '|' || coalesce(infoColumns.character_maximum_length, -1)::varchar(255)
|
||||
|| '|' || coalesce(infoColumns.numeric_precision, -1)::varchar(255) ,
|
||||
',' order by infoColumns.ordinal_position
|
||||
)) as "hash_code_columns"
|
||||
from information_schema.columns infoColumns
|
||||
where infoColumns.table_schema = infoTables.table_schema and infoColumns.table_name = infoTables.table_name
|
||||
),
|
||||
(
|
||||
select md5(string_agg(
|
||||
infoConstraints.constraint_name || '|' || infoConstraints.constraint_type ,
|
||||
',' order by infoConstraints.constraint_name
|
||||
)) as "hash_code_constraints"
|
||||
from information_schema.table_constraints infoConstraints
|
||||
where infoConstraints.table_schema = infoTables.table_schema and infoConstraints.table_name = infoTables.table_name
|
||||
)
|
||||
|
||||
from information_schema.tables infoTables
|
||||
where infoTables.table_type not like '%VIEW%'
|
||||
and ('tables:' || infoTables.table_schema || '.' || infoTables.table_name) =OBJECT_ID_CONDITION
|
||||
and infoTables.table_schema <> 'pg_catalog'
|
||||
and infoTables.table_schema <> 'information_schema'
|
||||
and infoTables.table_schema <> 'pg_internal'
|
||||
and infoTables.table_schema !~ '^pg_toast'
|
||||
`;
|
||||
@@ -0,0 +1,3 @@
|
||||
module.exports = `
|
||||
select conname as "constraint_name" from pg_constraint where contype = 'u'
|
||||
`;
|
||||
@@ -0,0 +1,8 @@
|
||||
module.exports = `
|
||||
select
|
||||
table_name as "pure_name",
|
||||
table_schema as "schema_name",
|
||||
md5(view_definition) as "hash_code"
|
||||
from
|
||||
information_schema.views where table_schema != 'information_schema' and table_schema != 'pg_catalog'
|
||||
`;
|
||||
9
plugins/dbgate-plugin-oracle/src/backend/sql/views.js
Normal file
9
plugins/dbgate-plugin-oracle/src/backend/sql/views.js
Normal file
@@ -0,0 +1,9 @@
|
||||
module.exports = `
|
||||
select
|
||||
ao.owner as "schema_name", ao.object_name as "pure_name",
|
||||
'later' as "create_sql",
|
||||
object_id as "hash_code"
|
||||
from all_objects ao
|
||||
where exists(select null from user_objects uo where uo.object_id = ao.object_id)
|
||||
and object_type = 'VIEW'
|
||||
`;
|
||||
Reference in New Issue
Block a user