Comparing version 0.1.7 to 0.1.8
39
mql.js
@@ -20,3 +20,3 @@ import { | ||
const SymbolDefault = Symbol('DEFAULT'); | ||
const identity = i => i; | ||
const wrap_arr = a => Array.isArray(a) ? a : [a]; | ||
@@ -132,2 +132,3 @@ const mix = (arr1, arr2) => arr1.reduce((res, item, i) => { | ||
if (queries.find(is_injection)) return SymbolInjection; | ||
var query = reduce((res, query) => { | ||
@@ -278,3 +279,2 @@ if (!query) return res; | ||
option.rels = []; | ||
option.row_number = option.row_number || []; | ||
}), | ||
@@ -315,2 +315,3 @@ function setting([left, ...rest]) { | ||
FROM ${TB(me.table)} AS ${TB(me.as)} ${me.query}`; | ||
return go( | ||
@@ -326,29 +327,19 @@ [lefts, me], | ||
const colums = uniq(add_column(me).originals.concat(me.as +'.'+me.where_key + (me.rel_type == 'x' ? ` AS ${fold_key}` : ''))); | ||
var colums = uniq(add_column(me).originals.concat(me.where_key + (me.rel_type == 'x' ? ` AS ${fold_key}` : ''))); | ||
const in_vals = filter(a => a != null, pluck(me.left_key, lefts)); | ||
const is_row_num = me.row_number.length == 2; | ||
const rights = (!in_vals.length ? [] : await is_row_num ? | ||
QUERY ` | ||
SELECT * | ||
FROM ( | ||
SELECT | ||
${COLUMN(...colums)}, | ||
ROW_NUMBER() OVER (PARTITION BY ${CL(me.where_key)} ORDER BY ${me.row_number[1]}) as "--row_number--" | ||
FROM ${TB(me.table)} AS ${TB(me.as)} | ||
${me.xjoin} | ||
WHERE ${IN(me.as +'.'+me.where_key, in_vals)} ${me.poly_type} ${tag(query)} | ||
) AS ${TB(me.as)} | ||
WHERE ${TB(me.as)}."--row_number--"<=${me.row_number[0]}` | ||
: | ||
QUERY ` | ||
var in_vals = filter(a => a != null, pluck(me.left_key, lefts)); | ||
const rights = !in_vals.length ? [] : await QUERY ` | ||
SELECT ${COLUMN(...colums)} | ||
FROM ${TB(me.table)} AS ${TB(me.as)} | ||
${me.xjoin} | ||
WHERE ${IN(me.where_key, in_vals)} ${me.poly_type} ${tag(query)}`); | ||
WHERE | ||
${IN(me.where_key, in_vals)} | ||
${me.poly_type} | ||
${tag(query)}`; | ||
const [folder, default_value] = me.rel_type == '-' ? [index_by, () => ({})] : [group_by, () => []]; | ||
var [folder, default_value] = me.rel_type == '-' ? [index_by, () => ({})] : [group_by, () => []]; | ||
return go( | ||
rights, | ||
is_row_num ? map(r => delete r['--row_number--'] && r) : identity, | ||
folder(a => a[fold_key]), | ||
@@ -401,3 +392,3 @@ folded => each(function(left) { | ||
return { | ||
VALUES, IN, NOT_IN, EQ, SET, COLUMN, CL, TABLE, TB, SQL, SQLS, MQL_DEBUG, | ||
VALUES, IN, NOT_IN, EQ, SET, COLUMN, CL, TABLE, TB, SQL, MQL_DEBUG, | ||
QUERY, | ||
@@ -434,3 +425,3 @@ QUERY1, | ||
return { CONNECT, VALUES, IN, NOT_IN, EQ, SET, COLUMN, CL, TABLE, TB, SQL, SQLS, MQL_DEBUG } | ||
return { CONNECT, VALUES, IN, NOT_IN, EQ, SET, COLUMN, CL, TABLE, TB, SQL, MQL_DEBUG } | ||
} | ||
@@ -437,0 +428,0 @@ |
{ | ||
"name": "mql2", | ||
"version": "0.1.7", | ||
"version": "0.1.8", | ||
"description": "query builder", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
32220
574