diff --git a/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Routines.cs b/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Routines.cs index 5fd459e..1acbe36 100644 --- a/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Routines.cs +++ b/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Routines.cs @@ -72,7 +72,7 @@ FROM pg_proc AS proc LEFT JOIN pg_description AS des ON des.objoid = proc.oid AND des.objsubid = 0 WHERE {routineWhere} AND ns.nspname NOT IN ('pg_catalog', 'information_schema'){schemaWhere} - AND NOT EXISTS (SELECT 1 FROM pg_depend dep WHERE dep.objid = proc.oid AND dep.deptype IN ('e', 'x')) + AND NOT EXISTS (SELECT 1 FROM pg_depend dep WHERE dep.classid = 'pg_proc'::regclass AND dep.objid = proc.oid AND dep.deptype IN ('e', 'x')) ORDER BY ns.nspname, proc.proname """; @@ -205,7 +205,7 @@ CROSS JOIN LATERAL unnest( LEFT JOIN pg_type AS base_typ ON base_typ.oid = typ.typbasetype WHERE {routineWhere} AND ns.nspname NOT IN ('pg_catalog', 'information_schema'){schemaWhere} - AND NOT EXISTS (SELECT 1 FROM pg_depend dep WHERE dep.objid = proc.oid AND dep.deptype IN ('e', 'x')) + AND NOT EXISTS (SELECT 1 FROM pg_depend dep WHERE dep.classid = 'pg_proc'::regclass AND dep.objid = proc.oid AND dep.deptype IN ('e', 'x')) AND param.parameter_mode <> 't' ORDER BY proc.oid, param.ordinal_position """; diff --git a/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Sequences.cs b/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Sequences.cs index 879d84d..4563a58 100644 --- a/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Sequences.cs +++ b/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Sequences.cs @@ -45,7 +45,9 @@ FROM pg_sequence AS seq WHERE NOT EXISTS ( SELECT 1 FROM pg_depend AS dep - WHERE dep.objid = cls.oid AND dep.deptype IN ('i', 'I', 'a') + WHERE dep.classid = 'pg_class'::regclass + AND dep.objid = cls.oid + AND dep.deptype IN ('i', 'I', 'a') ){schemaWhere} ORDER BY ns.nspname, cls.relname """; diff --git a/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Tables.cs b/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Tables.cs index 8f3a143..7fe2218 100644 --- a/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Tables.cs +++ b/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Tables.cs @@ -63,7 +63,10 @@ WHERE cls.relkind IN ('r', 'p', 'f') AND NOT EXISTS ( SELECT 1 FROM pg_depend dep - WHERE dep.objid = cls.oid AND dep.deptype IN ('e', 'x') + WHERE dep.classid = 'pg_class'::regclass + AND dep.objid = cls.oid + AND dep.objsubid = 0 + AND dep.deptype IN ('e', 'x') ) ORDER BY ns.nspname, cls.relname """; diff --git a/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Views.cs b/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Views.cs index 6a7450a..3b64b6e 100644 --- a/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Views.cs +++ b/src/SchemaSaurus.PostgreSql/PostgreSqlSchemaReader.Views.cs @@ -44,7 +44,10 @@ WHERE cls.relkind IN ('v', 'm') AND NOT EXISTS ( SELECT 1 FROM pg_depend dep - WHERE dep.objid = cls.oid AND dep.deptype IN ('e', 'x') + WHERE dep.classid = 'pg_class'::regclass + AND dep.objid = cls.oid + AND dep.objsubid = 0 + AND dep.deptype IN ('e', 'x') ) ORDER BY ns.nspname, cls.relname """;