extra-sql.web
Version:
SQL is designed for managing or stream processing data in an RDBMS {web}.
1 lines • 5.57 kB
JavaScript
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).extra_sql=e()}}((function(){return function e(t,n,r){function o(a,u){if(!n[a]){if(!t[a]){var s="function"==typeof require&&require;if(!u&&s)return s(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[a]={exports:{}};t[a][0].call(l.exports,(function(e){return o(t[a][1][e]||e)}),l,l.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,n){"use strict";function r(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var o,i={};var a=r(function(){if(o)return i;function e(e,t,n,r=0,o){const i=[],a=Array.isArray(o);r=r||(a?o.length:0);for(const n in e){const u=e[n];i.push(t.replace(/%k/g,n).replace(/%v/g,String(u)).replace(/%i/g,String(r++))),a&&o&&o.push(u)}return i.join(n)}function t(e,t="",n=0){if(0===n){for(const n in e)t+=`"${n}", `;t=t.endsWith(", ")?t.substring(0,t.length-2):t,t+=") VALUES\n("}for(const n in e)t+=null==e[n]?"NULL, ":`$$${e[n]}$$, `;return t=t.endsWith(", ")?t.substring(0,t.length-2):t,t+="),\n("}function n(e,t,n={},r=""){r+=`CREATE TABLE IF NOT EXISTS "${e}" (`;for(const e in t)r+=`"${e}" ${t[e]}, `;return n.pk&&(r+=`PRIMARY KEY("${n.pk}"), `),r.replace(/, $/,"")+");\n"}function r(e,t,n,r={},o=""){return o+=`CREATE INDEX IF NOT EXISTS "${e}" ON "${t}" `,r.method&&(o+=`USING ${r.method} `),o+`(${n});\n`}function a(e,t,n=null,r=""){return r+=`CREATE OR REPLACE VIEW "${e}" AS ${t};\n`}function u(e,n,r={},o=""){let i=-1;o+=`INSERT INTO "${e}" (`;for(const e of n)o=t(e,o,++i);return o=o.replace(/\),\n\($/,"")+")",r.pk&&(o+=`\nON CONFLICT ("${r.pk}") DO NOTHING`),o+";\n"}function s(e,n,r={},o=""){let i=-1;return o+=`INSERT INTO "${e}" (`,new Promise(((e,a)=>{n.on("error",a),n.on("data",(e=>{o=t(e,o,++i)})),n.on("end",(()=>{o=o.replace(/\),\n\($/,"")+")",r.pk&&(o+=`\nON CONFLICT ("${r.pk}") DO NOTHING`),e(o+";\n")}))}))}function c(e,t,n={},o=""){if(n.tsvector){const t=function(e){let t="";for(const n in e)e[n]&&(t+=`setweight(to_tsvector('english', "${n}"), '${e[n]}')||`);return t.replace(/\|\|$/,"")}(n.tsvector);o+=a(e+"_tsvector",`SELECT *, ${t} AS "tsvector" FROM "${e}"`),n.index&&(o+=r(e+"_tsvector_idx",e,`(${t})`,{method:"GIN"}))}if(n.index)for(const i in t){if(null==t[i]||i===n.pk)continue;o+=r(`${e}_${i.replace(/\W+/g,"_").toLowerCase()}_idx`,e,`"${i}"`)}return o}function l(e,t,r=null,o={},i=""){return i=n(e,t,o,i),r&&(i=u(e,r,o,i)),c(e,t,o,i)}return o=1,Object.defineProperty(i,"__esModule",{value:!0}),i.deleteData=i.insertIntoData=i.selectData=i.updateData=i.createTableData=i.matchTsquery=i.selectTsquery=i.tableExists=i.setupTable=i.setupTableIndex=i.insertIntoStream=i.insertInto=i.createView=i.createIndex=i.createTable=i.OPERAND_COUNT=i.OPERATORS=void 0,i.OPERATORS=new Set(["+","-","*","/","%","&","|","^","=",">","<",">=","<=","<>","+=","-=","*=","/=","%=","&=","^=","|=","ALL","AND","ANY","BETWEEN","EXISTS","IN","LIKE","NOT","OR","SOME"]),i.OPERAND_COUNT=new Map([["+",2],["-",2],["*",2],["/",2],["%",2],["&",2],["|",2],["^",2],["=",2],[">",2],["<",2],[">=",2],["<=",2],["<>",2],["+=",2],["-=",2],["*=",2],["/=",2],["%=",2],["&=",2],["^=",2],["|=",2],["ALL",2],["AND",2],["ANY",2],["BETWEEN",3],["EXISTS",1],["IN",2],["LIKE",2],["NOT",1],["OR",2],["SOME",2]]),i.createTable=n,i.createIndex=r,i.createView=a,i.insertInto=u,i.insertIntoStream=s,u.stream=s,i.setupTableIndex=c,i.setupTable=l,l.index=c,i.tableExists=function(e){return`SELECT EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name='${e}');\n`},i.selectTsquery=function(e,t,n='"tsvector"',r={}){const o=r.columns||"*",i=r.normalization||0;let a=`SELECT ${o} FROM "${e}" WHERE ${n} @@ plainto_tsquery('${t}')`;return r.order&&(a+=` ORDER BY ts_rank(${n}, plainto_tsquery('${t}'), ${i}) DESC`),r.limit&&(a+=` LIMIT ${r.limit}`),a+=";\n",a},i.matchTsquery=function(e,t,n='"tsvector"',r={}){const o=r.columns||"*",i=r.normalization||0;let a="";for(let u=t.length;u>0;u--){const s=t.slice(0,u).join(" ").replace(/([\'\"])/g,"$1$1");a+=`SELECT ${o}, '${u}'::INT AS "matchTsquery" FROM "${e}"`,a+=` WHERE ${n} @@ plainto_tsquery('${s}')`,r.order&&(a+=` ORDER BY ts_rank(${n}, plainto_tsquery('${s}'), ${i}) DESC`),a+=" UNION ALL\n"}return a=a.substring(0,a.length-11),r.limit&&(a+=` LIMIT ${r.limit}`),a+=";\n",a},i.createTableData=function(t,n,r){return{query:`CREATE TABLE IF NOT EXISTS "${t}" (${e(n,'"%k" %v',", ")}`+(r?`, PRIMARY KEY(${e((o=r,Array.isArray(o)?o:null==o||"string"==typeof o||"function"!=typeof o[Symbol.iterator]?[o]:Array.from(o)),'"%v"',", ")})`:"")+");",data:[]};var o},i.updateData=function(t,n,r,o="=",i="AND"){const a=[],u=e(n||{},'"%k" = $%i',", ",1,a),s=e(r||{},`"%k" ${o} $%i`,` ${i} `,a.length+1,a);return{query:`UPDATE "${t}" SET ${u}${s?" WHERE "+s:""};`,data:a}},i.selectData=function(t,n,r="=",o="AND"){const i=[],a=e(n||{},`"%k" ${r} $%i`,` ${o} `,1,i);return{query:`SELECT * FROM "${t}"${a?" WHERE "+a:""};`,data:i}},i.insertIntoData=function(t,n){const r=[];return{query:`INSERT INTO "${t}" (${e(n[0]||{},'"%k"',", ",1,r)}) VALUES (${e(r,"$%i",", ",1)});`,data:r}},i.deleteData=function(t,n,r="=",o="AND"){const i=[],a=e(n||{},`"%k" ${r} $%i`,` ${o} `,1,i);return{query:`DELETE FROM "${t}"${a?" WHERE "+a:""};`,data:i}},i}());t.exports=a},{}]},{},[1])(1)}));