prostgles-server 4.1.34 → 4.1.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js +4 -4
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js.map +1 -1
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.d.ts.map +1 -1
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js +93 -16
- package/dist/DboBuilder/getTablesForSchemaPostgresSQL.js.map +1 -1
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.ts +4 -4
- package/lib/DboBuilder/getTablesForSchemaPostgresSQL.ts +98 -18
- package/package.json +1 -1
- package/tests/client/PID.txt +1 -1
- package/tests/isomorphic_queries.ts +3 -1
- package/tests/server/index.ts +1 -0
- package/tests/server/init.sql +5 -0
- package/tests/server/package-lock.json +1 -1
|
@@ -9,7 +9,7 @@ const prostgles_types_1 = require("prostgles-types");
|
|
|
9
9
|
function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}) {
|
|
10
10
|
const PREF = `prostgles`, joins = q.joins || [],
|
|
11
11
|
// aggs = q.aggs || [],
|
|
12
|
-
getTableAlias = (q) => !q.tableAlias ? q.table : `${q.tableAlias || ""}_${q.table}`, getTableJoinAliasAsName = (joinAlias, table) => (0, prostgles_types_1.asName)(
|
|
12
|
+
getTableAlias = (q) => !q.tableAlias ? q.table : `${q.tableAlias || ""}_${q.table}`, getTableJoinAliasAsName = (joinAlias, table) => !joinAlias ? table : (0, prostgles_types_1.asName)(`${joinAlias || ""}_${table}`), getTableAliasAsName = (q) => (0, prostgles_types_1.asName)(getTableAlias(q));
|
|
13
13
|
const indentLine = (numberOfSpaces, str, indentStr = " ") => new Array(numberOfSpaces).fill(indentStr).join("") + str;
|
|
14
14
|
const indentArray = (numberOfSpaces, strArr, indentStr = " ") => strArr.map(str => indentLine(numberOfSpaces, str, indentStr));
|
|
15
15
|
const indentArrayAndJoin = (numberOfSpaces, strArr, separator = " \n ", indentStr = " ") => indentArray(numberOfSpaces, strArr, indentStr).join(separator);
|
|
@@ -129,7 +129,7 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
|
|
|
129
129
|
}
|
|
130
130
|
return s.getQuery() + " AS " + (0, prostgles_types_1.asName)(s.alias);
|
|
131
131
|
}).join(", "),
|
|
132
|
-
`FROM ${
|
|
132
|
+
`FROM ${q.table}`,
|
|
133
133
|
q.where,
|
|
134
134
|
groupBy //!aggs.length? "" : `GROUP BY ${nonAggs.map(sf => asName(sf.alias)).join(", ")}`,
|
|
135
135
|
,
|
|
@@ -175,7 +175,7 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
|
|
|
175
175
|
...appendCommas(rootSelectItems.map(s => s.getQuery() + " AS " + (0, prostgles_types_1.asName)(s.alias)).concat(parsedJoins.map((j, i) => {
|
|
176
176
|
/** Apply LIMIT to joined items */
|
|
177
177
|
const jsq = `json_agg(${j.jsonColName}::jsonb ORDER BY ${j.rowidSortedColName}) FILTER (WHERE ${j.limitColName} <= ${j.q.limit} AND ${j.rowidDupesColName} = 1 AND ${j.jsonColName} IS NOT NULL)`;
|
|
178
|
-
const resAlias = (0, prostgles_types_1.asName)(j.q.tableAlias
|
|
178
|
+
const resAlias = j.q.tableAlias ? (0, prostgles_types_1.asName)(j.q.tableAlias) : j.q.table;
|
|
179
179
|
/* If limit = 1 then return a single json object (first one) */
|
|
180
180
|
return (j.q.limit === 1 ? `${jsq}->0 ` : `COALESCE(${jsq}, '[]') `) + ` AS ${resAlias}`;
|
|
181
181
|
}))),
|
|
@@ -203,7 +203,7 @@ function makeSelectQuery(_this, q, depth = 0, joinFields = [], selectParams = {}
|
|
|
203
203
|
"-- 3. [source table] ",
|
|
204
204
|
"SELECT ",
|
|
205
205
|
"*, row_number() over() as ctid ",
|
|
206
|
-
`FROM ${
|
|
206
|
+
`FROM ${q.table} `,
|
|
207
207
|
`${q.where} `
|
|
208
208
|
]),
|
|
209
209
|
`) ${getTableAliasAsName(q)} `,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"makeSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/makeSelectQuery.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"makeSelectQuery.js","sourceRoot":"","sources":["../../../lib/DboBuilder/QueryBuilder/makeSelectQuery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTablesForSchemaPostgresSQL.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/getTablesForSchemaPostgresSQL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAc,oBAAoB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"getTablesForSchemaPostgresSQL.d.ts","sourceRoot":"","sources":["../../lib/DboBuilder/getTablesForSchemaPostgresSQL.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAqB,WAAW,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAc,oBAAoB,EAAE,MAAM,cAAc,CAAC;AA+FhE,eAAO,MAAM,eAAe,YAAY,oBAAoB,CAAC,QAAQ,CAAC;;;CAWrE,CAAA;AAED,wBAAsB,6BAA6B,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA2O9I"}
|
|
@@ -2,6 +2,95 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getTablesForSchemaPostgresSQL = exports.getSchemaFilter = void 0;
|
|
4
4
|
const prostgles_types_1 = require("prostgles-types");
|
|
5
|
+
const getMaterialViews = (db, schema) => {
|
|
6
|
+
const { sql, schemaNames } = (0, exports.getSchemaFilter)(schema);
|
|
7
|
+
const query = `
|
|
8
|
+
SELECT
|
|
9
|
+
c.oid,
|
|
10
|
+
schema,
|
|
11
|
+
escaped_identifier,
|
|
12
|
+
true as is_view,
|
|
13
|
+
true as is_mat_view,
|
|
14
|
+
obj_description(c.oid) as comment,
|
|
15
|
+
c.table_name as name,
|
|
16
|
+
definition as view_definition,
|
|
17
|
+
jsonb_build_object(
|
|
18
|
+
'insert', FALSE,
|
|
19
|
+
'select', TRUE,
|
|
20
|
+
'update', FALSE,
|
|
21
|
+
'delete', FALSE
|
|
22
|
+
) as privileges,
|
|
23
|
+
json_agg(json_build_object(
|
|
24
|
+
'name', column_name,
|
|
25
|
+
'table_oid', c.oid,
|
|
26
|
+
'is_pkey', false,
|
|
27
|
+
'data_type', data_type,
|
|
28
|
+
'udt_name', udt_name,
|
|
29
|
+
'element_udt_name',
|
|
30
|
+
CASE WHEN LEFT(udt_name, 1) = '_'
|
|
31
|
+
THEN RIGHT(udt_name, -1) END,
|
|
32
|
+
'element_type',
|
|
33
|
+
CASE WHEN RIGHT(data_type, 2) = '[]'
|
|
34
|
+
THEN LEFT(data_type, -2) END,
|
|
35
|
+
'is_nullable', nullable,
|
|
36
|
+
'references', null,
|
|
37
|
+
'has_default', false,
|
|
38
|
+
'column_default', null,
|
|
39
|
+
'is_updatable', false,
|
|
40
|
+
'privileges', $$[{
|
|
41
|
+
"privilege_type": "SELECT",
|
|
42
|
+
"is_grantable": "YES"
|
|
43
|
+
}]$$::jsonb
|
|
44
|
+
)) as columns
|
|
45
|
+
FROM pg_catalog.pg_matviews m
|
|
46
|
+
INNER JOIN (
|
|
47
|
+
SELECT
|
|
48
|
+
t.oid,
|
|
49
|
+
CASE WHEN current_schema() = s.nspname
|
|
50
|
+
THEN format('%I', t.relname)
|
|
51
|
+
ELSE format('%I.%I', s.nspname, t.relname)
|
|
52
|
+
END as escaped_identifier,
|
|
53
|
+
t.relname as table_name,
|
|
54
|
+
s.nspname as schema,
|
|
55
|
+
a.attname as column_name,
|
|
56
|
+
pg_catalog.format_type(a.atttypid, a.atttypmod) as data_type,
|
|
57
|
+
typname as udt_name,
|
|
58
|
+
a.attnotnull as nullable,
|
|
59
|
+
a.attnum as ordinal_position,
|
|
60
|
+
col_description(t.oid, attnum) as comment
|
|
61
|
+
FROM pg_catalog.pg_attribute a
|
|
62
|
+
JOIN pg_catalog.pg_class t on a.attrelid = t.oid
|
|
63
|
+
JOIN pg_catalog.pg_namespace s on t.relnamespace = s.oid
|
|
64
|
+
JOIN pg_catalog.pg_type pt ON pt.oid = a.atttypid
|
|
65
|
+
WHERE a.attnum > 0
|
|
66
|
+
AND NOT a.attisdropped
|
|
67
|
+
AND relkind = 'm'
|
|
68
|
+
ORDER BY a.attnum
|
|
69
|
+
) c
|
|
70
|
+
ON matviewname = table_name
|
|
71
|
+
AND schemaname = schema
|
|
72
|
+
WHERE schema ${sql}
|
|
73
|
+
GROUP BY c.oid, escaped_identifier, c.table_name, schema, definition
|
|
74
|
+
`;
|
|
75
|
+
/** TODO: check privileges
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
select
|
|
80
|
+
coalesce(nullif(s[1], ''), 'public') as grantee,
|
|
81
|
+
s[2] as privileges
|
|
82
|
+
from
|
|
83
|
+
pg_class c
|
|
84
|
+
join pg_namespace n on n.oid = relnamespace
|
|
85
|
+
join pg_roles r on r.oid = relowner,
|
|
86
|
+
unnest(coalesce(relacl::text[], format('{%s=arwdDxt/%s}', rolname, rolname)::text[])) acl,
|
|
87
|
+
regexp_split_to_array(acl, '=|/') s
|
|
88
|
+
where nspname = 'public' and relname = 'test_view';
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
*/
|
|
92
|
+
return db.any(query, { schemaNames });
|
|
93
|
+
};
|
|
5
94
|
const getSchemaFilter = (schema = { public: 1 }) => {
|
|
6
95
|
const schemaNames = Object.keys(schema);
|
|
7
96
|
const isInclusive = Object.values(schema).every(v => v);
|
|
@@ -20,7 +109,7 @@ async function getTablesForSchemaPostgresSQL({ db, runSQL }, schema) {
|
|
|
20
109
|
return db.tx(async (t) => {
|
|
21
110
|
const fkeys = await t.any(`
|
|
22
111
|
WITH pg_class_schema AS (
|
|
23
|
-
SELECT c
|
|
112
|
+
SELECT c.oid, c.relname, nspname as schema
|
|
24
113
|
,CASE WHEN current_schema() = nspname
|
|
25
114
|
THEN format('%I', c.relname)
|
|
26
115
|
ELSE format('%I.%I', nspname, c.relname)
|
|
@@ -84,17 +173,6 @@ async function getTablesForSchemaPostgresSQL({ db, runSQL }, schema) {
|
|
|
84
173
|
FROM (
|
|
85
174
|
SELECT table_name, table_schema, table_type = 'VIEW' as is_view, regclass(table_schema || '.' || table_name)::oid as oid
|
|
86
175
|
FROM information_schema.tables
|
|
87
|
-
/* TODO - add support for materialized views
|
|
88
|
-
UNION ALL
|
|
89
|
-
SELECT table_name, table_schema
|
|
90
|
-
FROM (
|
|
91
|
-
SELECT relname as table_name, nspname as table_schema, true as is_view
|
|
92
|
-
FROM pg_catalog.pg_class AS _c
|
|
93
|
-
JOIN pg_catalog.pg_namespace AS _ns
|
|
94
|
-
ON _c.relnamespace = _ns.oid
|
|
95
|
-
WHERE relkind IN ( 'm' )
|
|
96
|
-
) materialized_views
|
|
97
|
-
*/
|
|
98
176
|
) tables_matviews
|
|
99
177
|
WHERE table_schema ${sql}
|
|
100
178
|
) t
|
|
@@ -167,10 +245,8 @@ async function getTablesForSchemaPostgresSQL({ db, runSQL }, schema) {
|
|
|
167
245
|
GROUP BY t.table_schema, t.table_name, t.is_view, t.view_definition, vr.table_names , t.oid, cc.columns
|
|
168
246
|
ORDER BY schema, name
|
|
169
247
|
`;
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
// writeFileSync(__dirname + "/new.json", JSON.stringify(result, null, 2), "utf-8");
|
|
173
|
-
// throw 2;
|
|
248
|
+
const tablesAndViews = await t.any(query, { schemaNames });
|
|
249
|
+
const materialViews = await getMaterialViews(t, schema);
|
|
174
250
|
let hyperTables = [];
|
|
175
251
|
try {
|
|
176
252
|
hyperTables = await getHyperTables(t);
|
|
@@ -178,6 +254,7 @@ async function getTablesForSchemaPostgresSQL({ db, runSQL }, schema) {
|
|
|
178
254
|
catch (error) {
|
|
179
255
|
console.error(error);
|
|
180
256
|
}
|
|
257
|
+
let result = tablesAndViews.concat(materialViews);
|
|
181
258
|
result = await Promise.all(result
|
|
182
259
|
.map(async (tbl) => {
|
|
183
260
|
tbl.name = tbl.escaped_identifier;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getTablesForSchemaPostgresSQL.js","sourceRoot":"","sources":["../../lib/DboBuilder/getTablesForSchemaPostgresSQL.ts"],"names":[],"mappings":";;;AAAA,qDAAoD;
|
|
1
|
+
{"version":3,"file":"getTablesForSchemaPostgresSQL.js","sourceRoot":"","sources":["../../lib/DboBuilder/getTablesForSchemaPostgresSQL.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export function makeSelectQuery(
|
|
|
18
18
|
joins = q.joins || [],
|
|
19
19
|
// aggs = q.aggs || [],
|
|
20
20
|
getTableAlias = (q: NewQuery) => !q.tableAlias? q.table : `${q.tableAlias || ""}_${q.table}`,
|
|
21
|
-
getTableJoinAliasAsName = (joinAlias: string | undefined, table: string) =>
|
|
21
|
+
getTableJoinAliasAsName = (joinAlias: string | undefined, table: string) => !joinAlias? table : asName(`${joinAlias || ""}_${table}`),
|
|
22
22
|
getTableAliasAsName = (q: NewQuery) => asName(getTableAlias(q));
|
|
23
23
|
|
|
24
24
|
const indentLine = (numberOfSpaces: number, str: string, indentStr = " "): string => new Array(numberOfSpaces).fill(indentStr).join("") + str;
|
|
@@ -178,7 +178,7 @@ export function makeSelectQuery(
|
|
|
178
178
|
}
|
|
179
179
|
return s.getQuery() + " AS " + asName(s.alias)
|
|
180
180
|
}).join(", ")
|
|
181
|
-
, `FROM ${
|
|
181
|
+
, `FROM ${q.table}`
|
|
182
182
|
, q.where
|
|
183
183
|
, groupBy //!aggs.length? "" : `GROUP BY ${nonAggs.map(sf => asName(sf.alias)).join(", ")}`,
|
|
184
184
|
, q.having? `HAVING ${q.having}` : ""
|
|
@@ -236,7 +236,7 @@ export function makeSelectQuery(
|
|
|
236
236
|
|
|
237
237
|
/** Apply LIMIT to joined items */
|
|
238
238
|
const jsq = `json_agg(${j.jsonColName}::jsonb ORDER BY ${j.rowidSortedColName}) FILTER (WHERE ${j.limitColName} <= ${j.q.limit} AND ${j.rowidDupesColName} = 1 AND ${j.jsonColName} IS NOT NULL)`;
|
|
239
|
-
const resAlias = asName(j.q.tableAlias
|
|
239
|
+
const resAlias = j.q.tableAlias? asName(j.q.tableAlias) : j.q.table
|
|
240
240
|
|
|
241
241
|
/* If limit = 1 then return a single json object (first one) */
|
|
242
242
|
return (j.q.limit === 1? `${jsq}->0 ` : `COALESCE(${jsq}, '[]') `) + ` AS ${resAlias}`;
|
|
@@ -275,7 +275,7 @@ export function makeSelectQuery(
|
|
|
275
275
|
"-- 3. [source table] "
|
|
276
276
|
, "SELECT "
|
|
277
277
|
, "*, row_number() over() as ctid "
|
|
278
|
-
, `FROM ${
|
|
278
|
+
, `FROM ${q.table} `
|
|
279
279
|
, `${q.where} `
|
|
280
280
|
])
|
|
281
281
|
, `) ${getTableAliasAsName(q)} `
|
|
@@ -1,8 +1,99 @@
|
|
|
1
1
|
import { SQLResult, asName } from "prostgles-types";
|
|
2
2
|
import { DboBuilder, TableSchemaColumn, TableSchema } from "../DboBuilder";
|
|
3
3
|
import { DB, DBorTx, ProstglesInitOptions } from "../Prostgles";
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
|
|
5
|
+
const getMaterialViews = (db: DBorTx, schema: ProstglesInitOptions["schema"]) => {
|
|
6
|
+
const { sql, schemaNames } = getSchemaFilter(schema);
|
|
7
|
+
|
|
8
|
+
const query = `
|
|
9
|
+
SELECT
|
|
10
|
+
c.oid,
|
|
11
|
+
schema,
|
|
12
|
+
escaped_identifier,
|
|
13
|
+
true as is_view,
|
|
14
|
+
true as is_mat_view,
|
|
15
|
+
obj_description(c.oid) as comment,
|
|
16
|
+
c.table_name as name,
|
|
17
|
+
definition as view_definition,
|
|
18
|
+
jsonb_build_object(
|
|
19
|
+
'insert', FALSE,
|
|
20
|
+
'select', TRUE,
|
|
21
|
+
'update', FALSE,
|
|
22
|
+
'delete', FALSE
|
|
23
|
+
) as privileges,
|
|
24
|
+
json_agg(json_build_object(
|
|
25
|
+
'name', column_name,
|
|
26
|
+
'table_oid', c.oid,
|
|
27
|
+
'is_pkey', false,
|
|
28
|
+
'data_type', data_type,
|
|
29
|
+
'udt_name', udt_name,
|
|
30
|
+
'element_udt_name',
|
|
31
|
+
CASE WHEN LEFT(udt_name, 1) = '_'
|
|
32
|
+
THEN RIGHT(udt_name, -1) END,
|
|
33
|
+
'element_type',
|
|
34
|
+
CASE WHEN RIGHT(data_type, 2) = '[]'
|
|
35
|
+
THEN LEFT(data_type, -2) END,
|
|
36
|
+
'is_nullable', nullable,
|
|
37
|
+
'references', null,
|
|
38
|
+
'has_default', false,
|
|
39
|
+
'column_default', null,
|
|
40
|
+
'is_updatable', false,
|
|
41
|
+
'privileges', $$[{
|
|
42
|
+
"privilege_type": "SELECT",
|
|
43
|
+
"is_grantable": "YES"
|
|
44
|
+
}]$$::jsonb
|
|
45
|
+
)) as columns
|
|
46
|
+
FROM pg_catalog.pg_matviews m
|
|
47
|
+
INNER JOIN (
|
|
48
|
+
SELECT
|
|
49
|
+
t.oid,
|
|
50
|
+
CASE WHEN current_schema() = s.nspname
|
|
51
|
+
THEN format('%I', t.relname)
|
|
52
|
+
ELSE format('%I.%I', s.nspname, t.relname)
|
|
53
|
+
END as escaped_identifier,
|
|
54
|
+
t.relname as table_name,
|
|
55
|
+
s.nspname as schema,
|
|
56
|
+
a.attname as column_name,
|
|
57
|
+
pg_catalog.format_type(a.atttypid, a.atttypmod) as data_type,
|
|
58
|
+
typname as udt_name,
|
|
59
|
+
a.attnotnull as nullable,
|
|
60
|
+
a.attnum as ordinal_position,
|
|
61
|
+
col_description(t.oid, attnum) as comment
|
|
62
|
+
FROM pg_catalog.pg_attribute a
|
|
63
|
+
JOIN pg_catalog.pg_class t on a.attrelid = t.oid
|
|
64
|
+
JOIN pg_catalog.pg_namespace s on t.relnamespace = s.oid
|
|
65
|
+
JOIN pg_catalog.pg_type pt ON pt.oid = a.atttypid
|
|
66
|
+
WHERE a.attnum > 0
|
|
67
|
+
AND NOT a.attisdropped
|
|
68
|
+
AND relkind = 'm'
|
|
69
|
+
ORDER BY a.attnum
|
|
70
|
+
) c
|
|
71
|
+
ON matviewname = table_name
|
|
72
|
+
AND schemaname = schema
|
|
73
|
+
WHERE schema ${sql}
|
|
74
|
+
GROUP BY c.oid, escaped_identifier, c.table_name, schema, definition
|
|
75
|
+
`;
|
|
76
|
+
|
|
77
|
+
/** TODO: check privileges
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
select
|
|
82
|
+
coalesce(nullif(s[1], ''), 'public') as grantee,
|
|
83
|
+
s[2] as privileges
|
|
84
|
+
from
|
|
85
|
+
pg_class c
|
|
86
|
+
join pg_namespace n on n.oid = relnamespace
|
|
87
|
+
join pg_roles r on r.oid = relowner,
|
|
88
|
+
unnest(coalesce(relacl::text[], format('{%s=arwdDxt/%s}', rolname, rolname)::text[])) acl,
|
|
89
|
+
regexp_split_to_array(acl, '=|/') s
|
|
90
|
+
where nspname = 'public' and relname = 'test_view';
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
return db.any(query, { schemaNames });
|
|
96
|
+
}
|
|
6
97
|
|
|
7
98
|
export const getSchemaFilter = (schema: ProstglesInitOptions["schema"] = { public: 1 }) => {
|
|
8
99
|
const schemaNames = Object.keys(schema);
|
|
@@ -29,7 +120,7 @@ export async function getTablesForSchemaPostgresSQL({ db, runSQL }: DboBuilder,
|
|
|
29
120
|
fcols: string[];
|
|
30
121
|
}[] = await t.any(`
|
|
31
122
|
WITH pg_class_schema AS (
|
|
32
|
-
SELECT c
|
|
123
|
+
SELECT c.oid, c.relname, nspname as schema
|
|
33
124
|
,CASE WHEN current_schema() = nspname
|
|
34
125
|
THEN format('%I', c.relname)
|
|
35
126
|
ELSE format('%I.%I', nspname, c.relname)
|
|
@@ -95,17 +186,6 @@ export async function getTablesForSchemaPostgresSQL({ db, runSQL }: DboBuilder,
|
|
|
95
186
|
FROM (
|
|
96
187
|
SELECT table_name, table_schema, table_type = 'VIEW' as is_view, regclass(table_schema || '.' || table_name)::oid as oid
|
|
97
188
|
FROM information_schema.tables
|
|
98
|
-
/* TODO - add support for materialized views
|
|
99
|
-
UNION ALL
|
|
100
|
-
SELECT table_name, table_schema
|
|
101
|
-
FROM (
|
|
102
|
-
SELECT relname as table_name, nspname as table_schema, true as is_view
|
|
103
|
-
FROM pg_catalog.pg_class AS _c
|
|
104
|
-
JOIN pg_catalog.pg_namespace AS _ns
|
|
105
|
-
ON _c.relnamespace = _ns.oid
|
|
106
|
-
WHERE relkind IN ( 'm' )
|
|
107
|
-
) materialized_views
|
|
108
|
-
*/
|
|
109
189
|
) tables_matviews
|
|
110
190
|
WHERE table_schema ${sql}
|
|
111
191
|
) t
|
|
@@ -179,10 +259,9 @@ export async function getTablesForSchemaPostgresSQL({ db, runSQL }: DboBuilder,
|
|
|
179
259
|
ORDER BY schema, name
|
|
180
260
|
`;
|
|
181
261
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
// throw 2;
|
|
262
|
+
const tablesAndViews: TableSchema[] = await t.any(query, { schemaNames });
|
|
263
|
+
const materialViews = await getMaterialViews(t, schema);
|
|
264
|
+
|
|
186
265
|
let hyperTables: string[] | undefined = [];
|
|
187
266
|
try {
|
|
188
267
|
hyperTables = await getHyperTables(t);
|
|
@@ -190,6 +269,7 @@ export async function getTablesForSchemaPostgresSQL({ db, runSQL }: DboBuilder,
|
|
|
190
269
|
console.error(error);
|
|
191
270
|
}
|
|
192
271
|
|
|
272
|
+
let result = tablesAndViews.concat(materialViews);
|
|
193
273
|
result = await Promise.all(result
|
|
194
274
|
.map(async tbl => {
|
|
195
275
|
tbl.name = tbl.escaped_identifier;
|
package/package.json
CHANGED
package/tests/client/PID.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
164540
|
|
@@ -63,10 +63,12 @@ export default async function isomorphic(db: Required<DBHandlerServer> | Require
|
|
|
63
63
|
{ name: "abc2", public: "public data", added: new Date('04 Dec 1995 00:12:00 GMT') },
|
|
64
64
|
{ name: "abcd", public: "public data d", added: new Date('04 Dec 1996 00:12:00 GMT') }
|
|
65
65
|
]);
|
|
66
|
-
await db[`prostgles_test.basic1`].insert({
|
|
66
|
+
await db[`prostgles_test.basic1`].insert!({
|
|
67
67
|
id_basic: { txt: "basic" },
|
|
68
68
|
txt: "basic1"
|
|
69
69
|
});
|
|
70
|
+
await db.sql(`REFRESH MATERIALIZED VIEW prostgles_test.mv_basic1;`);
|
|
71
|
+
assert.deepStrictEqual(await db["prostgles_test.mv_basic1"].find!(), await db["prostgles_test.basic1"].find!())
|
|
70
72
|
|
|
71
73
|
/* Ensure */
|
|
72
74
|
await db[`"*"`].insert!([{ "*": "a" }, { "*": "a" }, { "*": "b" }]);
|
package/tests/server/index.ts
CHANGED
package/tests/server/init.sql
CHANGED
|
@@ -193,3 +193,8 @@ CREATE TABLE IF NOT EXISTS prostgles_test.basic1 (
|
|
|
193
193
|
id_basic INTEGER REFERENCES prostgles_test.basic,
|
|
194
194
|
txt text
|
|
195
195
|
);
|
|
196
|
+
|
|
197
|
+
|
|
198
|
+
DROP MATERIALIZED VIEW IF EXISTS prostgles_test.mv_basic1;
|
|
199
|
+
CREATE MATERIALIZED VIEW prostgles_test.mv_basic1 AS
|
|
200
|
+
SELECT * FROM prostgles_test.basic1;
|