Skip to content

Commit 3df61ef

Browse files
committed
added old function; may come handy someday
1 parent e488bfa commit 3df61ef

3 files changed

Lines changed: 48 additions & 2 deletions

File tree

index.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,52 @@ function matchTsquery(tab, wrds, tsv='"tsvector"', opt={}) {
240240
z += ';\n';
241241
return z;
242242
}
243+
244+
function _format(obj, fmt, sep, i, val) {
245+
var a = [], ve = val instanceof Array;
246+
var i = i||(ve? val.length : 0);
247+
for(var k in obj) {
248+
var v = obj[k];
249+
a.push(fmt.replace(/%k/g, k).replace(/%v/g, v).replace(/%i/g, i++));
250+
if(ve) val.push(v);
251+
}
252+
return a.join(sep);
253+
}
254+
255+
function _array(x) {
256+
if(x instanceof Array) return x;
257+
if(x==null || typeof x==='string' || typeof x[Symbol.iterator]!=='function') return [x];
258+
return Array.from(x);
259+
}
260+
261+
function createTableData(tab, col, key) {
262+
return {'query':
263+
`CREATE TABLE IF NOT EXISTS "${tab}" (`+
264+
`${_format(col, '"%k" %v')}`+
265+
(key? `,PRIMARY KEY(${_format(_array(key), '"%v"')})` : ``)+`);`
266+
};
267+
}
268+
269+
function updateData(tab, set, whr, op, sep) {
270+
var par = [], set = _format(set||{}, '"%k" = $%i', `, `, 1, par);
271+
var exp = _format(whr||{}, `"%k" ${op||'='} $%i`, ` ${sep||'AND'} `, par.length+1, par);
272+
return {'query': `UPDATE "${tab}" SET ${set}${exp? ' WHERE '+exp : ''};`, 'data': par};
273+
}
274+
275+
function selectData(tab, whr, op, sep) {
276+
var par = [], exp = _format(whr||{}, `"%k" ${op||'='} $%i`, ` ${sep||'AND'} `, 1, par);
277+
return {'query': `SELECT * FROM "${tab}"${exp? ' WHERE '+exp : ''};`, 'data': par};
278+
}
279+
280+
function insertIntoData(tab, vals) {
281+
var par = [], into = _format(vals||{}, '"%k"', `, `, 1, par), vals = _format(par, '$%i', ', ', 1);
282+
return {'query': `INSERT INTO "${tab}" (${into}) VALUES (${vals});`, 'data': par};
283+
}
284+
285+
function deleteData(tab, whr, op, sep) {
286+
var par = [], exp = _format(whr||{}, `"%k" ${op||'='} $%i`, ` ${sep||'AND'} `, 1, par);
287+
return {'query': `DELETE FROM "${tab}"${exp? ' WHERE '+exp : ''};`, 'data': par};
288+
}
243289
exports.OPERATORS = OPERATORS;
244290
exports.OPERAND_COUNT = OPERAND_COUNT;
245291
exports.createTable = createTable;

package-lock.json

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "extra-sql",
3-
"version": "1.0.6",
3+
"version": "1.0.7",
44
"description": "SQL is designed for managing or stream processing data in an RDBMS.",
55
"main": "index.js",
66
"scripts": {

0 commit comments

Comments
 (0)