@graffy/pg 0.15.22 → 0.15.24-alpha.1
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/index.cjs +19 -12
- package/index.mjs +19 -12
- package/package.json +2 -2
package/index.cjs
CHANGED
|
@@ -178,9 +178,9 @@ const lookup = (prop) => {
|
|
|
178
178
|
const aggSql = {
|
|
179
179
|
$sum: (prop) => sql__default["default"]`sum((${lookup(prop)})::numeric)`,
|
|
180
180
|
$card: (prop) => sql__default["default"]`count(distinct(${lookup(prop)}))`,
|
|
181
|
-
$avg: (prop) => sql__default["default"]`
|
|
182
|
-
$max: (prop) => sql__default["default"]`
|
|
183
|
-
$min: (prop) => sql__default["default"]`
|
|
181
|
+
$avg: (prop) => sql__default["default"]`avg((${lookup(prop)})::numeric)`,
|
|
182
|
+
$max: (prop) => sql__default["default"]`max((${lookup(prop)})::numeric)`,
|
|
183
|
+
$min: (prop) => sql__default["default"]`min((${lookup(prop)})::numeric)`
|
|
184
184
|
};
|
|
185
185
|
const getSelectCols = (table, projection = null) => {
|
|
186
186
|
if (!projection)
|
|
@@ -300,6 +300,9 @@ function getBinarySql(lhs, type, op, value, textLhs) {
|
|
|
300
300
|
return sql__default["default"]`${lhs} ${sqlOp} ${String(value)}`;
|
|
301
301
|
}
|
|
302
302
|
if (type === "jsonb") {
|
|
303
|
+
if (typeof value === "string") {
|
|
304
|
+
return sql__default["default"]`${textLhs} ${sqlOp} ${value}`;
|
|
305
|
+
}
|
|
303
306
|
return sql__default["default"]`${lhs} ${sqlOp} ${JSON.stringify(value)}::jsonb`;
|
|
304
307
|
}
|
|
305
308
|
if (type === "cube")
|
|
@@ -343,10 +346,13 @@ const getArgMeta = (key, { prefix, idCol, verDefault }) => getJsonBuildTrusted({
|
|
|
343
346
|
$ref: sql__default["default"]`jsonb_build_array(${sql.join(prefix.map((k) => sql__default["default"]`${k}::text`))}, "${sql.raw(idCol)}")`,
|
|
344
347
|
$ver: sql.raw(verDefault)
|
|
345
348
|
});
|
|
346
|
-
const getAggMeta = (key, $group, { verDefault }) =>
|
|
347
|
-
$key
|
|
348
|
-
|
|
349
|
-
|
|
349
|
+
const getAggMeta = (key, $group, { verDefault }) => {
|
|
350
|
+
let $key = sql.join([key, getJsonBuildTrusted({ $group })].filter(Boolean), " || ");
|
|
351
|
+
return getJsonBuildTrusted({
|
|
352
|
+
$key,
|
|
353
|
+
$ver: sql.raw(verDefault)
|
|
354
|
+
});
|
|
355
|
+
};
|
|
350
356
|
function getArgSql(_a, options) {
|
|
351
357
|
var _b = _a, { $first, $last, $after, $before, $since, $until, $all, $cursor: _ } = _b, rest = __objRest(_b, ["$first", "$last", "$after", "$before", "$since", "$until", "$all", "$cursor"]);
|
|
352
358
|
const _a2 = rest, { $order, $group } = _a2, filter = __objRest(_a2, ["$order", "$group"]);
|
|
@@ -358,14 +364,14 @@ function getArgSql(_a, options) {
|
|
|
358
364
|
const groupCols = Array.isArray($group) && $group.length && $group.map(lookup);
|
|
359
365
|
const group = groupCols ? sql.join(groupCols, ", ") : void 0;
|
|
360
366
|
const hasRangeArg = $before || $after || $since || $until || $first || $last || $all || $order;
|
|
361
|
-
let
|
|
367
|
+
let filterKey;
|
|
362
368
|
const where = [];
|
|
363
369
|
if (!common.isEmpty(filter)) {
|
|
364
370
|
where.push(getSql(filter, options));
|
|
365
|
-
|
|
371
|
+
filterKey = sql__default["default"]`${JSON.stringify(filter)}::jsonb`;
|
|
366
372
|
}
|
|
367
373
|
if (!hasRangeArg)
|
|
368
|
-
return { meta: meta(
|
|
374
|
+
return { meta: meta(filterKey), where, group, limit: 1 };
|
|
369
375
|
const orderCols = ($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql__default["default"]`-(${lookup(orderItem.slice(1))})::float8` : lookup(orderItem));
|
|
370
376
|
Object.entries({ $after, $before, $since, $until }).forEach(([name, value]) => {
|
|
371
377
|
if (value)
|
|
@@ -373,10 +379,11 @@ function getArgSql(_a, options) {
|
|
|
373
379
|
});
|
|
374
380
|
const order = !$group && sql.join(($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql__default["default"]`${lookup(orderItem.slice(1))} ${$last ? sql__default["default"]`ASC` : sql__default["default"]`DESC`}` : sql__default["default"]`${lookup(orderItem)} ${$last ? sql__default["default"]`DESC` : sql__default["default"]`ASC`}`), `, `);
|
|
375
381
|
const orderKey = $order && getJsonBuildTrusted({ $order: sql__default["default"]`${JSON.stringify($order)}::jsonb` });
|
|
376
|
-
const cursorKey = getJsonBuildTrusted({
|
|
382
|
+
const cursorKey = $group !== true && getJsonBuildTrusted({
|
|
377
383
|
$cursor: sql__default["default"]`jsonb_build_array(${sql.join(groupCols || orderCols)})`
|
|
378
384
|
});
|
|
379
|
-
|
|
385
|
+
const keys = [filterKey, orderKey, cursorKey].filter(Boolean);
|
|
386
|
+
const key = keys.length > 0 ? sql__default["default"]`(${sql.join(keys, ` || `)})` : void 0;
|
|
380
387
|
return {
|
|
381
388
|
meta: meta(key),
|
|
382
389
|
where,
|
package/index.mjs
CHANGED
|
@@ -170,9 +170,9 @@ const lookup = (prop) => {
|
|
|
170
170
|
const aggSql = {
|
|
171
171
|
$sum: (prop) => sql`sum((${lookup(prop)})::numeric)`,
|
|
172
172
|
$card: (prop) => sql`count(distinct(${lookup(prop)}))`,
|
|
173
|
-
$avg: (prop) => sql`
|
|
174
|
-
$max: (prop) => sql`
|
|
175
|
-
$min: (prop) => sql`
|
|
173
|
+
$avg: (prop) => sql`avg((${lookup(prop)})::numeric)`,
|
|
174
|
+
$max: (prop) => sql`max((${lookup(prop)})::numeric)`,
|
|
175
|
+
$min: (prop) => sql`min((${lookup(prop)})::numeric)`
|
|
176
176
|
};
|
|
177
177
|
const getSelectCols = (table, projection = null) => {
|
|
178
178
|
if (!projection)
|
|
@@ -292,6 +292,9 @@ function getBinarySql(lhs, type, op, value, textLhs) {
|
|
|
292
292
|
return sql`${lhs} ${sqlOp} ${String(value)}`;
|
|
293
293
|
}
|
|
294
294
|
if (type === "jsonb") {
|
|
295
|
+
if (typeof value === "string") {
|
|
296
|
+
return sql`${textLhs} ${sqlOp} ${value}`;
|
|
297
|
+
}
|
|
295
298
|
return sql`${lhs} ${sqlOp} ${JSON.stringify(value)}::jsonb`;
|
|
296
299
|
}
|
|
297
300
|
if (type === "cube")
|
|
@@ -335,10 +338,13 @@ const getArgMeta = (key, { prefix, idCol, verDefault }) => getJsonBuildTrusted({
|
|
|
335
338
|
$ref: sql`jsonb_build_array(${join(prefix.map((k) => sql`${k}::text`))}, "${raw(idCol)}")`,
|
|
336
339
|
$ver: raw(verDefault)
|
|
337
340
|
});
|
|
338
|
-
const getAggMeta = (key, $group, { verDefault }) =>
|
|
339
|
-
$key
|
|
340
|
-
|
|
341
|
-
|
|
341
|
+
const getAggMeta = (key, $group, { verDefault }) => {
|
|
342
|
+
let $key = join([key, getJsonBuildTrusted({ $group })].filter(Boolean), " || ");
|
|
343
|
+
return getJsonBuildTrusted({
|
|
344
|
+
$key,
|
|
345
|
+
$ver: raw(verDefault)
|
|
346
|
+
});
|
|
347
|
+
};
|
|
342
348
|
function getArgSql(_a, options) {
|
|
343
349
|
var _b = _a, { $first, $last, $after, $before, $since, $until, $all, $cursor: _ } = _b, rest = __objRest(_b, ["$first", "$last", "$after", "$before", "$since", "$until", "$all", "$cursor"]);
|
|
344
350
|
const _a2 = rest, { $order, $group } = _a2, filter = __objRest(_a2, ["$order", "$group"]);
|
|
@@ -350,14 +356,14 @@ function getArgSql(_a, options) {
|
|
|
350
356
|
const groupCols = Array.isArray($group) && $group.length && $group.map(lookup);
|
|
351
357
|
const group = groupCols ? join(groupCols, ", ") : void 0;
|
|
352
358
|
const hasRangeArg = $before || $after || $since || $until || $first || $last || $all || $order;
|
|
353
|
-
let
|
|
359
|
+
let filterKey;
|
|
354
360
|
const where = [];
|
|
355
361
|
if (!isEmpty(filter)) {
|
|
356
362
|
where.push(getSql(filter, options));
|
|
357
|
-
|
|
363
|
+
filterKey = sql`${JSON.stringify(filter)}::jsonb`;
|
|
358
364
|
}
|
|
359
365
|
if (!hasRangeArg)
|
|
360
|
-
return { meta: meta(
|
|
366
|
+
return { meta: meta(filterKey), where, group, limit: 1 };
|
|
361
367
|
const orderCols = ($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql`-(${lookup(orderItem.slice(1))})::float8` : lookup(orderItem));
|
|
362
368
|
Object.entries({ $after, $before, $since, $until }).forEach(([name, value]) => {
|
|
363
369
|
if (value)
|
|
@@ -365,10 +371,11 @@ function getArgSql(_a, options) {
|
|
|
365
371
|
});
|
|
366
372
|
const order = !$group && join(($order || [idCol]).map((orderItem) => orderItem[0] === "!" ? sql`${lookup(orderItem.slice(1))} ${$last ? sql`ASC` : sql`DESC`}` : sql`${lookup(orderItem)} ${$last ? sql`DESC` : sql`ASC`}`), `, `);
|
|
367
373
|
const orderKey = $order && getJsonBuildTrusted({ $order: sql`${JSON.stringify($order)}::jsonb` });
|
|
368
|
-
const cursorKey = getJsonBuildTrusted({
|
|
374
|
+
const cursorKey = $group !== true && getJsonBuildTrusted({
|
|
369
375
|
$cursor: sql`jsonb_build_array(${join(groupCols || orderCols)})`
|
|
370
376
|
});
|
|
371
|
-
|
|
377
|
+
const keys = [filterKey, orderKey, cursorKey].filter(Boolean);
|
|
378
|
+
const key = keys.length > 0 ? sql`(${join(keys, ` || `)})` : void 0;
|
|
372
379
|
return {
|
|
373
380
|
meta: meta(key),
|
|
374
381
|
where,
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@graffy/pg",
|
|
3
3
|
"description": "The standard Postgres module for Graffy. Each instance this module mounts a Postgres table as a Graffy subtree.",
|
|
4
4
|
"author": "aravind (https://github.com/aravindet)",
|
|
5
|
-
"version": "0.15.
|
|
5
|
+
"version": "0.15.24-alpha.1",
|
|
6
6
|
"main": "./index.cjs",
|
|
7
7
|
"exports": {
|
|
8
8
|
"import": "./index.mjs",
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"license": "Apache-2.0",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@graffy/common": "0.15.
|
|
19
|
+
"@graffy/common": "0.15.24-alpha.1",
|
|
20
20
|
"sql-template-tag": "^4.1.0",
|
|
21
21
|
"debug": "^4.3.3"
|
|
22
22
|
},
|