prostgles-server 2.0.268 → 2.0.271
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/DBSchemaBuilder.d.ts.map +1 -1
- package/dist/DBSchemaBuilder.js +4 -0
- package/dist/DBSchemaBuilder.js.map +1 -1
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts +149 -0
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -0
- package/{lib → dist/DboBuilder/QueryBuilder}/QueryBuilder.js +4 -223
- package/dist/DboBuilder/QueryBuilder/QueryBuilder.js.map +1 -0
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.d.ts +5 -0
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -0
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js +225 -0
- package/dist/DboBuilder/QueryBuilder/makeSelectQuery.js.map +1 -0
- package/dist/DboBuilder/runSQL.d.ts +2 -1
- package/dist/DboBuilder/runSQL.d.ts.map +1 -1
- package/dist/DboBuilder/runSQL.js +5 -1
- package/dist/DboBuilder/runSQL.js.map +1 -1
- package/dist/DboBuilder.d.ts +1 -1
- package/dist/DboBuilder.d.ts.map +1 -1
- package/dist/DboBuilder.js +3 -3
- package/dist/DboBuilder.js.map +1 -1
- package/dist/FileManager.d.ts.map +1 -1
- package/dist/FileManager.js +16 -12
- package/dist/FileManager.js.map +1 -1
- package/dist/Filtering.d.ts +1 -1
- package/dist/Filtering.d.ts.map +1 -1
- package/dist/TableConfig.d.ts +4 -1
- package/dist/TableConfig.d.ts.map +1 -1
- package/dist/TableConfig.js +8 -6
- package/dist/TableConfig.js.map +1 -1
- package/dist/validation.js +1 -2
- package/dist/validation.js.map +1 -1
- package/lib/DBSchemaBuilder.d.ts.map +1 -1
- package/lib/DBSchemaBuilder.js +4 -0
- package/lib/DBSchemaBuilder.ts +2 -0
- package/lib/{QueryBuilder.d.ts → DboBuilder/QueryBuilder/QueryBuilder.d.ts} +2 -3
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.d.ts.map +1 -0
- package/lib/DboBuilder/QueryBuilder/QueryBuilder.js +1160 -0
- package/lib/{QueryBuilder.ts → DboBuilder/QueryBuilder/QueryBuilder.ts} +3 -282
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts +5 -0
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.d.ts.map +1 -0
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.js +224 -0
- package/lib/DboBuilder/QueryBuilder/makeSelectQuery.ts +284 -0
- package/lib/DboBuilder/runSQL.d.ts +2 -1
- package/lib/DboBuilder/runSQL.d.ts.map +1 -1
- package/lib/DboBuilder/runSQL.js +5 -1
- package/lib/DboBuilder/runSQL.ts +6 -2
- package/lib/DboBuilder.d.ts +1 -1
- package/lib/DboBuilder.d.ts.map +1 -1
- package/lib/DboBuilder.js +3 -3
- package/lib/DboBuilder.ts +3 -3
- package/lib/FileManager.d.ts.map +1 -1
- package/lib/FileManager.js +16 -12
- package/lib/FileManager.ts +16 -12
- package/lib/Filtering.d.ts +1 -1
- package/lib/Filtering.d.ts.map +1 -1
- package/lib/Filtering.ts +1 -1
- package/lib/TableConfig.d.ts +4 -1
- package/lib/TableConfig.d.ts.map +1 -1
- package/lib/TableConfig.js +8 -6
- package/lib/TableConfig.ts +11 -6
- package/lib/validation.js +1 -2
- package/lib/validation.ts +2 -2
- package/package.json +1 -1
- package/tests/client/PID.txt +1 -1
- package/tests/server/package-lock.json +1 -1
- package/lib/QueryBuilder.d.ts.map +0 -1
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
|
|
2
|
+
import { TableHandler } from "../../DboBuilder";
|
|
3
|
+
import { SelectParams, asName } from "prostgles-types";
|
|
4
|
+
import { NewQuery, SelectItem } from "./QueryBuilder";
|
|
5
|
+
|
|
6
|
+
/* No validation/authorisation at this point */
|
|
7
|
+
export function makeSelectQuery(
|
|
8
|
+
_this: TableHandler,
|
|
9
|
+
q: NewQuery,
|
|
10
|
+
depth: number = 0,
|
|
11
|
+
joinFields: string[] = [],
|
|
12
|
+
selectParams: SelectParams = {},
|
|
13
|
+
): string {
|
|
14
|
+
const PREF = `prostgles`,
|
|
15
|
+
joins = q.joins || [],
|
|
16
|
+
// aggs = q.aggs || [],
|
|
17
|
+
makePref = (q: NewQuery) => !q.tableAlias? q.table : `${q.tableAlias || ""}_${q.table}`,
|
|
18
|
+
makePrefANON = (joinAlias: string | undefined, table: string) => asName(!joinAlias? table : `${joinAlias || ""}_${table}`),
|
|
19
|
+
makePrefAN = (q: NewQuery) => asName(makePref(q));
|
|
20
|
+
|
|
21
|
+
const indentLine = (numInd: number, str: string, indentStr = " ") => new Array(numInd).fill(indentStr).join("") + str;
|
|
22
|
+
const indStr = (numInd: number, str: string) => str.split("\n").map(s => indentLine(numInd, s)).join("\n");
|
|
23
|
+
const indjArr = (numInd: number, strArr: string[], indentStr = " "): string[] => strArr.map(str => indentLine(numInd, str) );
|
|
24
|
+
const indJ = (numInd: number, strArr: string[], separator = " \n ", indentStr = " ") => indjArr(numInd, strArr, indentStr).join(separator);
|
|
25
|
+
const selectArrComma = (strArr: string[]): string[] => strArr.map((s, i, arr)=> s + (i < arr.length - 1? " , " : " "));
|
|
26
|
+
const prefJCAN = (q: NewQuery, str: string) => asName(`${q.tableAlias || q.table}_${PREF}_${str}`);
|
|
27
|
+
|
|
28
|
+
// const indent = (a, b) => a;
|
|
29
|
+
const joinTables = (q1: NewQuery, q2: NewQuery): string[] => {
|
|
30
|
+
const joinInfo = _this.getJoins(q1.table, q2.table, q2.$path, true);
|
|
31
|
+
const paths = joinInfo.paths;
|
|
32
|
+
|
|
33
|
+
return paths.flatMap(({ table, on }, i) => {
|
|
34
|
+
const getColName = (col: string, q: NewQuery) => {
|
|
35
|
+
if(table === q.table){
|
|
36
|
+
const colFromSelect = q.select.find(s => s.getQuery() === asName(col));
|
|
37
|
+
if(!colFromSelect){
|
|
38
|
+
console.error(`${col} column might be missing in user publish `);
|
|
39
|
+
throw `Could not find join column (${col}) in allowe select. Some join tables and columns might be invalid/dissallowed`
|
|
40
|
+
}
|
|
41
|
+
return colFromSelect.alias;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return col;
|
|
45
|
+
}
|
|
46
|
+
const getPrevColName = (col: string) => {
|
|
47
|
+
return getColName(col, q1);
|
|
48
|
+
}
|
|
49
|
+
const getThisColName = (col: string) => {
|
|
50
|
+
return getColName(col, q2);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// console.log(JSON.stringify({i, table, on, q1, q2}, null, 2));
|
|
54
|
+
|
|
55
|
+
const prevTable = i === 0? q1.table : (paths[i - 1].table);
|
|
56
|
+
const thisAlias = makePrefANON(q2.tableAlias, table);
|
|
57
|
+
// const prevAlias = i === 0? makePrefAN(q1) : thisAlias;
|
|
58
|
+
const prevAlias = i === 0? makePrefAN(q1) : makePrefANON(q2.tableAlias, prevTable)
|
|
59
|
+
// If root then prev table is aliased from root query. Alias from join otherwise
|
|
60
|
+
|
|
61
|
+
let iQ = [
|
|
62
|
+
asName(table) + ` ${thisAlias}`
|
|
63
|
+
];
|
|
64
|
+
|
|
65
|
+
/* If target table then add filters, options, etc */
|
|
66
|
+
if(i === paths.length - 1){
|
|
67
|
+
|
|
68
|
+
// const targetSelect = (
|
|
69
|
+
// q2.select.concat(
|
|
70
|
+
// (q2.joins || []).map(j => j.tableAlias || j.table)
|
|
71
|
+
// ).concat(
|
|
72
|
+
// /* Rename aggs to avoid collision with join cols */
|
|
73
|
+
// (q2.aggs || []).map(a => asName(`agg_${a.alias}`) + " AS " + asName(a.alias)) || [])
|
|
74
|
+
// ).filter(s => s).join(", ");
|
|
75
|
+
|
|
76
|
+
const targetSelect = q2.select.filter(s => s.selected).map(s => {
|
|
77
|
+
/* Rename aggs to avoid collision with join cols */
|
|
78
|
+
if(s.type === "aggregation") return asName(`agg_${s.alias}`) + " AS " + asName(s.alias);
|
|
79
|
+
return asName(s.alias);
|
|
80
|
+
}).concat(q2.joins?.map(j => asName(j.table)) ?? []).join(", ");
|
|
81
|
+
|
|
82
|
+
const _iiQ = makeSelectQuery(
|
|
83
|
+
_this,
|
|
84
|
+
q2,
|
|
85
|
+
depth + 1,
|
|
86
|
+
// on.map(([c1, c2]) => asName(c2)),
|
|
87
|
+
on.flatMap(cond => cond.map(([c1, c2]) => asName(c2))),
|
|
88
|
+
selectParams,
|
|
89
|
+
);
|
|
90
|
+
// const iiQ = flat(_iiQ.split("\n")); // prettify for debugging
|
|
91
|
+
// console.log(_iiQ)
|
|
92
|
+
const iiQ = [_iiQ];
|
|
93
|
+
|
|
94
|
+
iQ = [
|
|
95
|
+
"("
|
|
96
|
+
, ...indjArr(depth + 1, [
|
|
97
|
+
`-- 4. [target table] `
|
|
98
|
+
, `SELECT *,`
|
|
99
|
+
, `row_number() over() as ${prefJCAN(q2, `rowid_sorted`)},`
|
|
100
|
+
, `row_to_json((select x from (SELECT ${targetSelect}) as x)) AS ${prefJCAN(q2, `json`)}`
|
|
101
|
+
, `FROM (`
|
|
102
|
+
, ...iiQ
|
|
103
|
+
, `) ${asName(q2.table)} `
|
|
104
|
+
])
|
|
105
|
+
, `) ${thisAlias}`
|
|
106
|
+
]
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
const getJoinCondition = (t1Alias: string, t2Alias: string, on: [string, string][][]) => {
|
|
110
|
+
return on.map(cond => cond.map(([c1, c2]) =>
|
|
111
|
+
`${t1Alias}.${asName(getPrevColName(c1))} = ${t2Alias}.${asName(getThisColName(c2))} `
|
|
112
|
+
).join(" AND ")
|
|
113
|
+
).join(" OR ")
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
let jres: string[] = [
|
|
117
|
+
`${q2.isLeftJoin? "LEFT" : "INNER"} JOIN `
|
|
118
|
+
, ...iQ
|
|
119
|
+
, `ON ${getJoinCondition(prevAlias, thisAlias, on)}`
|
|
120
|
+
];
|
|
121
|
+
return jres;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const getGroupBy = (rootSelectItems: SelectItem[], groupByItems: SelectItem[]): string => {
|
|
126
|
+
if(groupByItems.length){
|
|
127
|
+
/** Root Select column index number is used where possible to prevent "non-integer constant in GROUP BY" error */
|
|
128
|
+
|
|
129
|
+
return `GROUP BY ` + groupByItems.map(gi => {
|
|
130
|
+
const idx = rootSelectItems.findIndex(si => si.alias === gi.alias);
|
|
131
|
+
if(idx < 0) throw `Could not find GROUP BY column ${gi.alias} in ROOT SELECT ${rootSelectItems.map(s => s.alias)}`;
|
|
132
|
+
return idx + 1;
|
|
133
|
+
}).join(", ")
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return ""
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/* Leaf query -> no joins -> return simple query */
|
|
140
|
+
const aggs = q.select.filter(s => s.type === "aggregation");
|
|
141
|
+
const nonAggs = q.select.filter(s => depth || s.selected).filter(s => s.type !== "aggregation");
|
|
142
|
+
if(!joins.length){
|
|
143
|
+
/* Nested queries contain all fields to allow joining */
|
|
144
|
+
let groupBy = "";
|
|
145
|
+
|
|
146
|
+
const rootSelectItems = q.select.filter(s => joinFields.includes(s.getQuery()) || s.selected)
|
|
147
|
+
|
|
148
|
+
/* If aggs exist need to set groupBy add joinFields into select */
|
|
149
|
+
if(aggs.length || selectParams?.groupBy){
|
|
150
|
+
// const missingFields = joinFields.filter(jf => !q.select.find(s => s.type === "column" && s.alias === jf));
|
|
151
|
+
// if(depth && missingFields.length){
|
|
152
|
+
// // select = Array.from(new Set(missingFields.concat(select)));
|
|
153
|
+
// }
|
|
154
|
+
|
|
155
|
+
if(nonAggs.length){
|
|
156
|
+
let groupByFields = nonAggs.filter(sf => !depth || joinFields.includes(sf.getQuery()));
|
|
157
|
+
groupBy = getGroupBy(rootSelectItems, groupByFields);
|
|
158
|
+
// if(groupByFields.length){
|
|
159
|
+
// groupBy = `GROUP BY ${groupByFields.map(sf => sf.type === "function"? sf.getQuery() : asName(sf.alias)).join(", ")}\n`;
|
|
160
|
+
// }
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// console.log(q.select, joinFields)
|
|
165
|
+
let simpleQuery = indJ(depth, [
|
|
166
|
+
`-- 0. or 5. [leaf query] `
|
|
167
|
+
|
|
168
|
+
/* Group by selected fields + any join fields */
|
|
169
|
+
, `SELECT ` + rootSelectItems.map(s => {
|
|
170
|
+
// return s.getQuery() + ((s.type !== "column")? (" AS " + s.alias) : "")
|
|
171
|
+
|
|
172
|
+
if(s.type === "aggregation"){
|
|
173
|
+
/* Rename aggs to avoid collision with join cols */
|
|
174
|
+
return s.getQuery() + " AS " + asName((depth? "agg_" : "") + s.alias);
|
|
175
|
+
}
|
|
176
|
+
return s.getQuery() + " AS " + asName(s.alias)
|
|
177
|
+
}).join(", ")
|
|
178
|
+
, `FROM ${asName(q.table)} `
|
|
179
|
+
, q.where
|
|
180
|
+
, groupBy //!aggs.length? "" : `GROUP BY ${nonAggs.map(sf => asName(sf.alias)).join(", ")}`,
|
|
181
|
+
, q.having? `HAVING ${q.having}` : ""
|
|
182
|
+
, q.orderBy.join(", ")
|
|
183
|
+
, !depth? `LIMIT ${q.limit} ` : null
|
|
184
|
+
, !depth? `OFFSET ${q.offset || 0} ` : null
|
|
185
|
+
].filter(v => v && (v + "").trim().length) as unknown as string[]);
|
|
186
|
+
|
|
187
|
+
// console.log(fres);
|
|
188
|
+
return simpleQuery;
|
|
189
|
+
} else {
|
|
190
|
+
// if(q.aggs && q.aggs && q.aggs.length) throw "Cannot join an aggregate";
|
|
191
|
+
if(
|
|
192
|
+
q.select.find(s => s.type === "aggregation") &&
|
|
193
|
+
joins.find(j => j.select.find(s => s.type === "aggregation"))
|
|
194
|
+
) throw "Cannot join two aggregates";
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if(joins && joins.length && (aggs.length || selectParams.groupBy)) throw "Joins within Aggs dissallowed";
|
|
198
|
+
|
|
199
|
+
// if(q.selectFuncs.length) throw "Functions within select not allowed in joins yet. -> " + q.selectFuncs.map(s => s.alias).join(", ");
|
|
200
|
+
|
|
201
|
+
const rootSelectItems = q.select.filter(s => depth || s.selected)
|
|
202
|
+
|
|
203
|
+
let rootGroupBy: string | undefined;
|
|
204
|
+
if((selectParams.groupBy || aggs.length || q.joins && q.joins.length) && nonAggs.length){
|
|
205
|
+
// console.log({ aggs, nonAggs, joins: q.joins })
|
|
206
|
+
// rootGroupBy = getGroupBy(rootSelectItems, depth? rootSelectItems : nonAggs) + (aggs?.length? "" : ", ctid")
|
|
207
|
+
rootGroupBy = `GROUP BY ${
|
|
208
|
+
(depth?
|
|
209
|
+
q.allFields.map(f => asName(f)) :
|
|
210
|
+
nonAggs.map(s => s.type === "function"? s.getQuery() : asName(s.alias))
|
|
211
|
+
).concat(
|
|
212
|
+
(aggs && aggs.length)?
|
|
213
|
+
[] :
|
|
214
|
+
[`ctid`]
|
|
215
|
+
).filter(s => s).join(", ")} `
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/* Joined query */
|
|
219
|
+
const joinedQuery = [
|
|
220
|
+
" \n"
|
|
221
|
+
, `-- 0. [joined root] `
|
|
222
|
+
, "SELECT "
|
|
223
|
+
,...selectArrComma(rootSelectItems.map(s => s.getQuery() + " AS " + asName(s.alias)).concat(
|
|
224
|
+
joins.map((j, i)=> {
|
|
225
|
+
|
|
226
|
+
/** Apply LIMIT to joined items */
|
|
227
|
+
const jsq = `json_agg(${prefJCAN(j, `json`)}::jsonb ORDER BY ${prefJCAN(j, `rowid_sorted`)}) FILTER (WHERE ${prefJCAN(j, `limit`)} <= ${j.limit} AND ${prefJCAN(j, `dupes_rowid`)} = 1 AND ${prefJCAN(j, `json`)} IS NOT NULL)`;
|
|
228
|
+
const resAlias = asName(j.tableAlias || j.table)
|
|
229
|
+
|
|
230
|
+
// If limit = 1 then return a single json object (first one)
|
|
231
|
+
return (j.limit === 1? `${jsq}->0 ` : `COALESCE(${jsq}, '[]') `) + ` AS ${resAlias}`;
|
|
232
|
+
})
|
|
233
|
+
))
|
|
234
|
+
, `FROM ( `
|
|
235
|
+
, ...indjArr(depth + 1, [
|
|
236
|
+
"-- 1. [subquery limit + dupes] "
|
|
237
|
+
, "SELECT "
|
|
238
|
+
, ...selectArrComma([`t1.*`].concat(
|
|
239
|
+
joins.map((j, i)=> {
|
|
240
|
+
return `row_number() over(partition by ${prefJCAN(j, `dupes_rowid`)}, ` +
|
|
241
|
+
`ctid order by ${prefJCAN(j, `rowid_sorted`)}) AS ${prefJCAN(j, `limit`)} `
|
|
242
|
+
}))
|
|
243
|
+
)
|
|
244
|
+
, `FROM ( ----------- ${makePrefAN(q)}`
|
|
245
|
+
, ...indjArr(depth + 1, [
|
|
246
|
+
"-- 2. [source full select + ctid to group by] "
|
|
247
|
+
, "SELECT "
|
|
248
|
+
, ...selectArrComma(
|
|
249
|
+
q.allFields.concat(["ctid"])
|
|
250
|
+
.map(field => `${makePrefAN(q)}.${asName(field)} `)
|
|
251
|
+
.concat(
|
|
252
|
+
joins.map((j, i)=>
|
|
253
|
+
makePrefAN(j) + "." + prefJCAN(j, `json`) + ", " + makePrefAN(j) + "." + prefJCAN(j, `rowid_sorted`)
|
|
254
|
+
).concat(
|
|
255
|
+
joins.map(j => `row_number() over(partition by ${makePrefAN(j)}.${prefJCAN(j, `rowid_sorted`)}, ${makePrefAN(q)}.ctid ) AS ${prefJCAN(j, `dupes_rowid`)}`)
|
|
256
|
+
)
|
|
257
|
+
))
|
|
258
|
+
, `FROM ( `
|
|
259
|
+
, ...indjArr(depth + 1, [
|
|
260
|
+
"-- 3. [source table] "
|
|
261
|
+
, "SELECT "
|
|
262
|
+
, "*, row_number() over() as ctid "
|
|
263
|
+
, `FROM ${asName(q.table)} `
|
|
264
|
+
, `${q.where} `
|
|
265
|
+
])
|
|
266
|
+
, `) ${makePrefAN(q)} `
|
|
267
|
+
, ...joins.flatMap((j, i)=> joinTables(q, j))
|
|
268
|
+
])
|
|
269
|
+
, ") t1"
|
|
270
|
+
])
|
|
271
|
+
, ") t0"
|
|
272
|
+
, rootGroupBy
|
|
273
|
+
, q.having? `HAVING ${q.having} ` : ""
|
|
274
|
+
, q.orderBy
|
|
275
|
+
, depth? null : `LIMIT ${q.limit || 0} OFFSET ${q.offset || 0}`
|
|
276
|
+
, "-- EOF 0. joined root"
|
|
277
|
+
, " \n"
|
|
278
|
+
].filter(v => v)
|
|
279
|
+
|
|
280
|
+
let res = indJ(depth, joinedQuery as unknown as string[]);
|
|
281
|
+
// res = indent(res, depth);
|
|
282
|
+
// console.log(res);
|
|
283
|
+
return res;
|
|
284
|
+
}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { SQLOptions } from "prostgles-types";
|
|
2
2
|
import { DboBuilder, LocalParams } from "../DboBuilder";
|
|
3
|
-
import { Prostgles } from "../Prostgles";
|
|
3
|
+
import { DB, Prostgles } from "../Prostgles";
|
|
4
4
|
export declare function runSQL(this: DboBuilder, query: string, params: any, options: SQLOptions | undefined, localParams?: LocalParams): Promise<any>;
|
|
5
5
|
export declare const canRunSQL: (prostgles: Prostgles, localParams?: LocalParams) => Promise<boolean>;
|
|
6
|
+
export declare const canCreateTables: (db: DB) => Promise<boolean>;
|
|
6
7
|
//# sourceMappingURL=runSQL.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runSQL.d.ts","sourceRoot":"","sources":["runSQL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAyB,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"runSQL.d.ts","sourceRoot":"","sources":["runSQL.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,WAAW,EAAyB,MAAM,eAAe,CAAC;AAC/E,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAO7C,wBAAsB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,UAAU,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,WAAW,gBA0FpI;AAED,eAAO,MAAM,SAAS,cAAqB,SAAS,gBAAgB,WAAW,KAAG,QAAQ,OAAO,CAOhG,CAAA;AAED,eAAO,MAAM,eAAe,cAAkB,QAAQ,OAAO,CAE5D,CAAA"}
|
package/lib/DboBuilder/runSQL.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.canRunSQL = exports.runSQL = void 0;
|
|
3
|
+
exports.canCreateTables = exports.canRunSQL = exports.runSQL = void 0;
|
|
4
4
|
const DboBuilder_1 = require("../DboBuilder");
|
|
5
5
|
const PubSubManager_1 = require("../PubSubManager");
|
|
6
6
|
const { ParameterizedQuery: PQ } = require('pg-promise');
|
|
@@ -101,3 +101,7 @@ const canRunSQL = async (prostgles, localParams) => {
|
|
|
101
101
|
return Boolean(res && typeof res === "boolean" || res === "*");
|
|
102
102
|
};
|
|
103
103
|
exports.canRunSQL = canRunSQL;
|
|
104
|
+
const canCreateTables = async (db) => {
|
|
105
|
+
return db.any(`SELECT has_database_privilege(current_database(), 'create') as yes`).then(rows => rows?.[0].yes === true);
|
|
106
|
+
};
|
|
107
|
+
exports.canCreateTables = canCreateTables;
|
package/lib/DboBuilder/runSQL.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { PG_COLUMN_UDT_DATA_TYPE, SQLHandler, SQLOptions, SQLResult } from "prostgles-types";
|
|
2
2
|
import { DboBuilder, LocalParams, pgp, postgresToTsType } from "../DboBuilder";
|
|
3
|
-
import { Prostgles } from "../Prostgles";
|
|
3
|
+
import { DB, Prostgles } from "../Prostgles";
|
|
4
4
|
import { PubSubManager } from "../PubSubManager";
|
|
5
5
|
const { ParameterizedQuery: PQ } = require('pg-promise');
|
|
6
6
|
|
|
@@ -106,4 +106,8 @@ export const canRunSQL = async (prostgles: Prostgles, localParams?: LocalParams)
|
|
|
106
106
|
const publishParams = await prostgles.publishParser!.getPublishParams({ socket });
|
|
107
107
|
let res = await prostgles.opts.publishRawSQL?.(publishParams);
|
|
108
108
|
return Boolean(res && typeof res === "boolean" || res === "*");
|
|
109
|
-
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export const canCreateTables = async(db: DB): Promise<boolean> => {
|
|
112
|
+
return db.any(`SELECT has_database_privilege(current_database(), 'create') as yes`).then(rows => rows?.[0].yes === true)
|
|
113
|
+
}
|
package/lib/DboBuilder.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export declare type DBHandlerServer<TH = TableHandlers> = TH & Partial<DbJoinMak
|
|
|
30
30
|
} & {
|
|
31
31
|
tx?: TX<TH>;
|
|
32
32
|
};
|
|
33
|
-
import { SelectItem, FieldSpec } from "./QueryBuilder";
|
|
33
|
+
import { SelectItem, FieldSpec } from "./DboBuilder/QueryBuilder/QueryBuilder";
|
|
34
34
|
import { Join, Prostgles, DB } from "./Prostgles";
|
|
35
35
|
import { TableRule, UpdateRule, PublishParser, ValidateRow, PublishAllOrNothing } from "./PublishParser";
|
|
36
36
|
import { PubSubManager, BasicCallback } from "./PubSubManager";
|
package/lib/DboBuilder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["DboBuilder.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DboBuilder.d.ts","sourceRoot":"","sources":["DboBuilder.ts"],"names":[],"mappings":"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"}
|
package/lib/DboBuilder.js
CHANGED
|
@@ -30,7 +30,7 @@ var _a;
|
|
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
31
|
exports.postgresToTsType = exports.isPlainObject = exports.DboBuilder = exports.TableHandler = exports.isPojoObject = exports.ViewHandler = exports.parseError = exports.EXISTS_KEYS = exports.makeErr = exports.escapeTSNames = exports.pgp = void 0;
|
|
32
32
|
const Bluebird = __importStar(require("bluebird"));
|
|
33
|
-
|
|
33
|
+
const makeSelectQuery_1 = require("./DboBuilder/QueryBuilder/makeSelectQuery");
|
|
34
34
|
const pgPromise = __importStar(require("pg-promise"));
|
|
35
35
|
const runSQL_1 = require("./DboBuilder/runSQL");
|
|
36
36
|
const prostgles_types_1 = require("prostgles-types");
|
|
@@ -48,7 +48,7 @@ const prostgles_types_1 = require("prostgles-types");
|
|
|
48
48
|
// return []
|
|
49
49
|
// }
|
|
50
50
|
const utils_1 = require("./utils");
|
|
51
|
-
const QueryBuilder_1 = require("./QueryBuilder");
|
|
51
|
+
const QueryBuilder_1 = require("./DboBuilder/QueryBuilder/QueryBuilder");
|
|
52
52
|
const PubSubManager_1 = require("./PubSubManager");
|
|
53
53
|
const insertDataParse_1 = require("./DboBuilder/insertDataParse");
|
|
54
54
|
const insert_1 = require("./DboBuilder/insert");
|
|
@@ -696,7 +696,7 @@ class ViewHandler {
|
|
|
696
696
|
if (maxLimit && !Number.isInteger(maxLimit))
|
|
697
697
|
throw ` invalid publish.${this.name}.select.maxLimit -> expecting integer but got ` + maxLimit;
|
|
698
698
|
}
|
|
699
|
-
let q = await (0, QueryBuilder_1.getNewQuery)(this, filter, selectParams, param3_unused, tableRules, localParams, this.columns), _query = (0,
|
|
699
|
+
let q = await (0, QueryBuilder_1.getNewQuery)(this, filter, selectParams, param3_unused, tableRules, localParams, this.columns), _query = (0, makeSelectQuery_1.makeSelectQuery)(this, q, undefined, undefined, selectParams);
|
|
700
700
|
// console.log(_query, JSON.stringify(q, null, 2))
|
|
701
701
|
if (testRule) {
|
|
702
702
|
try {
|
package/lib/DboBuilder.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*--------------------------------------------------------------------------------------------*/
|
|
6
6
|
|
|
7
7
|
import * as Bluebird from "bluebird";
|
|
8
|
-
|
|
8
|
+
import { makeSelectQuery } from "./DboBuilder/QueryBuilder/makeSelectQuery"
|
|
9
9
|
|
|
10
10
|
import * as pgPromise from 'pg-promise';
|
|
11
11
|
import { canRunSQL, runSQL } from "./DboBuilder/runSQL";
|
|
@@ -80,7 +80,7 @@ export type DBHandlerServer<TH = TableHandlers> =
|
|
|
80
80
|
|
|
81
81
|
|
|
82
82
|
import { get } from "./utils";
|
|
83
|
-
import { getNewQuery,
|
|
83
|
+
import { getNewQuery, COMPUTED_FIELDS, SelectItem, FieldSpec, asNameAlias, SelectItemBuilder, FUNCTIONS, parseFunction, parseFunctionObject } from "./DboBuilder/QueryBuilder/QueryBuilder";
|
|
84
84
|
import {
|
|
85
85
|
Join, Prostgles, DB, isSuperUser
|
|
86
86
|
} from "./Prostgles";
|
|
@@ -1078,7 +1078,7 @@ export class ViewHandler {
|
|
|
1078
1078
|
}
|
|
1079
1079
|
|
|
1080
1080
|
let q = await getNewQuery(this as unknown as TableHandler, filter, selectParams, param3_unused, tableRules, localParams, this.columns),
|
|
1081
|
-
_query =
|
|
1081
|
+
_query = makeSelectQuery(this as unknown as TableHandler, q, undefined, undefined, selectParams);
|
|
1082
1082
|
// console.log(_query, JSON.stringify(q, null, 2))
|
|
1083
1083
|
if(testRule){
|
|
1084
1084
|
try {
|
package/lib/FileManager.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileManager.d.ts","sourceRoot":"","sources":["FileManager.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,EAAE,EAAO,MAAM,SAAS,CAAC;AAGlC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAKjC,OAAO,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAkD,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAK/I,eAAO,MAAM,eAAe,SAAgB,MAAM,aAAW,QAAQ,MAAM,CAE1E,CAAA;AAED,aAAK,UAAU,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,KAAK,IAAI,CAAA;AAE/D,oBAAY,YAAY,GAAG;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC;IACV;;OAEG;IACD;QAAE,MAAM,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAC7C;QAAE,OAAO,EACL;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GACjB;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAA;KACrB,CAAA;CACN,CAAA;AAED,oBAAY,QAAQ,GAAG;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAA;AAED,oBAAY,WAAW,GAAG;IACxB;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAA;AAED,oBAAY,UAAU,GAAG;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AACF,oBAAY,YAAY,GAAG;IACzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AACF,OAAO,GAAG,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"FileManager.d.ts","sourceRoot":"","sources":["FileManager.ts"],"names":[],"mappings":"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"}
|
package/lib/FileManager.js
CHANGED
|
@@ -41,6 +41,7 @@ const asSQLIdentifier = async (name, db) => {
|
|
|
41
41
|
};
|
|
42
42
|
exports.asSQLIdentifier = asSQLIdentifier;
|
|
43
43
|
const aws_sdk_2 = __importDefault(require("aws-sdk"));
|
|
44
|
+
const runSQL_1 = require("./DboBuilder/runSQL");
|
|
44
45
|
class FileManager {
|
|
45
46
|
constructor(config, imageOptions) {
|
|
46
47
|
this.getFileUrl = (name) => this.fileRoute ? `${this.fileRoute}/${name}` : "";
|
|
@@ -185,14 +186,19 @@ class FileManager {
|
|
|
185
186
|
const maxBfSizeMB = (prg.opts.io?.engine?.opts?.maxHttpBufferSize || 1e6) / 1e6;
|
|
186
187
|
console.log(`Prostgles: Initiated file manager. Max allowed file size: ${maxBfSizeMB}MB (maxHttpBufferSize = 1e6). To increase this set maxHttpBufferSize in socket.io server init options`);
|
|
187
188
|
// throw `this.db.tx(d => do everything in a transaction pls!!!!`;
|
|
188
|
-
|
|
189
|
+
const canCreate = await (0, runSQL_1.canCreateTables)(this.db);
|
|
190
|
+
const runQuery = (q) => {
|
|
191
|
+
if (!canCreate)
|
|
192
|
+
throw "File table creation failed. Your postgres user does not have CREATE table privileges";
|
|
193
|
+
return this.db.any(q);
|
|
194
|
+
};
|
|
189
195
|
/**
|
|
190
196
|
* 1. Create media table
|
|
191
197
|
*/
|
|
192
198
|
if (!this.dbo[tableName]) {
|
|
193
199
|
console.log(`Creating fileTable ${(0, prostgles_types_1.asName)(tableName)} ...`);
|
|
194
|
-
await
|
|
195
|
-
await
|
|
200
|
+
await runQuery(`CREATE EXTENSION IF NOT EXISTS pgcrypto `);
|
|
201
|
+
await runQuery(`CREATE TABLE IF NOT EXISTS ${(0, prostgles_types_1.asName)(tableName)} (
|
|
196
202
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
197
203
|
name TEXT NOT NULL,
|
|
198
204
|
extension TEXT NOT NULL,
|
|
@@ -208,6 +214,7 @@ class FileManager {
|
|
|
208
214
|
etag TEXT,
|
|
209
215
|
deleted BIGINT,
|
|
210
216
|
deleted_from_storage BIGINT,
|
|
217
|
+
UNIQUE(id),
|
|
211
218
|
UNIQUE(name)
|
|
212
219
|
)`);
|
|
213
220
|
console.log(`Created fileTable ${(0, prostgles_types_1.asName)(tableName)}`);
|
|
@@ -231,9 +238,9 @@ class FileManager {
|
|
|
231
238
|
else {
|
|
232
239
|
if (existingCol.udt_name === "uuid") {
|
|
233
240
|
try {
|
|
234
|
-
const query = `ALTER TABLE ${(0, prostgles_types_1.asName)(
|
|
241
|
+
const query = `ALTER TABLE ${(0, prostgles_types_1.asName)(refTable)} ADD FOREIGN KEY (${(0, prostgles_types_1.asName)(colName)}) REFERENCES ${(0, prostgles_types_1.asName)(tableName)} (id);`;
|
|
235
242
|
console.log(`Referenced file column ${refTable} (${colName}) exists but is not referencing file table. Trying to add REFERENCE constraing...\n${query}`);
|
|
236
|
-
await
|
|
243
|
+
await runQuery(query);
|
|
237
244
|
console.log("SUCCESS: " + query);
|
|
238
245
|
}
|
|
239
246
|
catch (e) {
|
|
@@ -249,7 +256,7 @@ class FileManager {
|
|
|
249
256
|
try {
|
|
250
257
|
const query = `ALTER TABLE ${(0, prostgles_types_1.asName)(tableName)} ADD COLUMN ${(0, prostgles_types_1.asName)(colName)} UUID REFERENCES ${(0, prostgles_types_1.asName)(tableName)} (id);`;
|
|
251
258
|
console.log(`Creating referenced file column ${refTable} (${colName})...\n${query}`);
|
|
252
|
-
await
|
|
259
|
+
await runQuery(query);
|
|
253
260
|
console.log("SUCCESS: " + query);
|
|
254
261
|
}
|
|
255
262
|
catch (e) {
|
|
@@ -275,7 +282,7 @@ class FileManager {
|
|
|
275
282
|
)
|
|
276
283
|
`;
|
|
277
284
|
console.log(`Creating ${action} ...`, lookupTableName);
|
|
278
|
-
await
|
|
285
|
+
await runQuery(query);
|
|
279
286
|
console.log(`Created ${action}`);
|
|
280
287
|
}
|
|
281
288
|
else {
|
|
@@ -284,10 +291,7 @@ class FileManager {
|
|
|
284
291
|
await Promise.all(badCols.map(async (badCol) => {
|
|
285
292
|
console.error(`Prostgles: media ${lookupTableName} joining table has lost a reference constraint for column ${badCol.name}.` +
|
|
286
293
|
` This may have been caused by a DROP TABLE ... CASCADE.`);
|
|
287
|
-
let q = `
|
|
288
|
-
ALTER TABLE ${(0, prostgles_types_1.asName)(lookupTableName)}
|
|
289
|
-
ADD CONSTRAINT ${(lookupTableName + "_" + badCol.name + "_r")} FOREIGN KEY (${badCol.name})
|
|
290
|
-
`;
|
|
294
|
+
let q = ` ALTER TABLE ${(0, prostgles_types_1.asName)(lookupTableName)} ADD FOREIGN KEY (${badCol.name}) `;
|
|
291
295
|
console.log("Trying to add the missing constraint back");
|
|
292
296
|
if (badCol.name === "foreign_id") {
|
|
293
297
|
q += `REFERENCES ${(0, prostgles_types_1.asName)(refTable)}(${(0, prostgles_types_1.asName)(pkField.name)}) `;
|
|
@@ -297,7 +301,7 @@ class FileManager {
|
|
|
297
301
|
}
|
|
298
302
|
if (q) {
|
|
299
303
|
try {
|
|
300
|
-
await
|
|
304
|
+
await runQuery(q);
|
|
301
305
|
console.log("Added missing constraint back");
|
|
302
306
|
}
|
|
303
307
|
catch (e) {
|