mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-03 16:23:58 +00:00
postgresql primary key loading optimalization
This commit is contained in:
@@ -1,17 +1,24 @@
|
|||||||
module.exports = `
|
module.exports = `
|
||||||
select
|
SELECT
|
||||||
table_constraints.constraint_schema as "constraint_schema",
|
n.nspname AS "constraint_schema",
|
||||||
table_constraints.constraint_name as "constraint_name",
|
c.conname AS "constraint_name",
|
||||||
table_constraints.table_schema as "schema_name",
|
n.nspname AS "schema_name",
|
||||||
table_constraints.table_name as "pure_name",
|
t.relname AS "pure_name",
|
||||||
key_column_usage.column_name as "column_name"
|
a.attname AS "column_name"
|
||||||
from information_schema.table_constraints
|
FROM pg_catalog.pg_constraint AS c
|
||||||
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
|
JOIN pg_catalog.pg_class AS t
|
||||||
and table_constraints.table_schema = key_column_usage.table_schema
|
ON t.oid = c.conrelid
|
||||||
where
|
JOIN pg_catalog.pg_namespace AS n
|
||||||
table_constraints.table_schema !~ '^_timescaledb_'
|
ON n.oid = t.relnamespace
|
||||||
and table_constraints.constraint_type = 'PRIMARY KEY'
|
JOIN LATERAL unnest(c.conkey) WITH ORDINALITY AS cols(attnum, ordinal_position)
|
||||||
and ('tables:' || table_constraints.table_schema || '.' || table_constraints.table_name) =OBJECT_ID_CONDITION
|
ON TRUE
|
||||||
and table_constraints.table_schema =SCHEMA_NAME_CONDITION
|
JOIN pg_catalog.pg_attribute AS a
|
||||||
order by key_column_usage.ordinal_position
|
ON a.attrelid = t.oid
|
||||||
|
AND a.attnum = cols.attnum
|
||||||
|
WHERE
|
||||||
|
c.contype = 'p' -- PRIMARY KEY
|
||||||
|
AND n.nspname !~ '^_timescaledb_'
|
||||||
|
AND ('tables:' || n.nspname || '.' || t.relname) =OBJECT_ID_CONDITION
|
||||||
|
AND n.nspname =SCHEMA_NAME_CONDITION
|
||||||
|
ORDER BY cols.ordinal_position
|
||||||
`;
|
`;
|
||||||
|
|||||||
Reference in New Issue
Block a user