planche 0.8.13 → 0.9.0

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.
Files changed (141) hide show
  1. package/app/assets/1p4z4GHT.js +2 -0
  2. package/app/assets/{DkPnEF-y.js → 6NUleTnS.js} +1 -1
  3. package/app/assets/ANL7Od0T.js +1 -0
  4. package/app/assets/B7zF7RU4.js +2 -0
  5. package/app/assets/B8zpsP_u.js +959 -0
  6. package/app/assets/B9DHeSQH.js +1 -0
  7. package/app/assets/B9NCreMu.js +1 -0
  8. package/app/assets/{CjoKIEBz.js → B9dhM8vw.js} +1 -1
  9. package/app/assets/BFw3KCAr.js +1 -0
  10. package/app/assets/BGuDcBB_.js +1 -0
  11. package/app/assets/BHe42P9W.js +1 -0
  12. package/app/assets/BJFk0Zzq.js +2 -0
  13. package/app/assets/BMGo7X_N.js +2 -0
  14. package/app/assets/BRZhVXRC.js +1 -0
  15. package/app/assets/BVwlLPu6.js +1 -0
  16. package/app/assets/BYWnKgIY.js +3 -0
  17. package/app/assets/BYvM8E39.js +1 -0
  18. package/app/assets/B_1rFijd.js +1 -0
  19. package/app/assets/Bgu3teFB.js +11 -0
  20. package/app/assets/BgvMpmFj.js +1 -0
  21. package/app/assets/BhPOHTk7.js +7 -0
  22. package/app/assets/BiyRPyXV.js +1 -0
  23. package/app/assets/Bkq2aetC.js +1 -0
  24. package/app/assets/BnI4D_rY.js +1 -0
  25. package/app/assets/BniymiMs.js +2 -0
  26. package/app/assets/Br4335vw.js +1 -0
  27. package/app/assets/BsYZ-U7K.js +1 -0
  28. package/app/assets/BvEGx3Si.js +4 -0
  29. package/app/assets/Bvu_eiyU.js +3 -0
  30. package/app/assets/C1gqjEN3.js +1 -0
  31. package/app/assets/C2S2GXdP.js +1 -0
  32. package/app/assets/C3w9xAkk.js +1 -0
  33. package/app/assets/C4QyqQoa.js +1 -0
  34. package/app/assets/C5Yv1gpQ.js +1 -0
  35. package/app/assets/CCQ6oQgi.js +1 -0
  36. package/app/assets/{Bajzqc8D.js → CDfSdkjY.js} +1 -1
  37. package/app/assets/CIIDOG9Y.js +1 -0
  38. package/app/assets/CP2U-viH.js +1 -0
  39. package/app/assets/CVZ3Bw6o.js +1 -0
  40. package/app/assets/CWb3a6Xp.js +1 -0
  41. package/app/assets/CWota0kb.js +1 -0
  42. package/app/assets/{B1pia_Rg.js → CYz610vE.js} +1 -1
  43. package/app/assets/Cdop6jK1.js +2 -0
  44. package/app/assets/CgQ0qqq4.js +1 -0
  45. package/app/assets/CiL8zoYm.js +1 -0
  46. package/app/assets/CkIm3SJy.js +1 -0
  47. package/app/assets/ClytWHSf.js +1 -0
  48. package/app/assets/CnoXRrek.js +1 -0
  49. package/app/assets/CqTgU2vp.css +2 -0
  50. package/app/assets/Cu_sGzNJ.js +1 -0
  51. package/app/assets/CwsH45Wr.js +2 -0
  52. package/app/assets/D3_CBO8-.js +1 -0
  53. package/app/assets/D4l4mWtD.js +1 -0
  54. package/app/assets/D6oRJsd8.js +1 -0
  55. package/app/assets/D8_hwGjG.js +1 -0
  56. package/app/assets/{CEtGUZGE.js → D8dVzi6I.js} +1 -1
  57. package/app/assets/DDeeBXtX.js +1 -0
  58. package/app/assets/DDjCZLb0.js +1 -0
  59. package/app/assets/DFeHpd8Y.js +1 -0
  60. package/app/assets/DKf3DkR6.js +1 -0
  61. package/app/assets/DO0W14Ho.js +1 -0
  62. package/app/assets/DPnYgSl3.js +1 -0
  63. package/app/assets/DU-Eln5x.js +1 -0
  64. package/app/assets/DY1k-USH.js +1 -0
  65. package/app/assets/DeNEO8HN.js +1 -0
  66. package/app/assets/DkqeIq13.js +1 -0
  67. package/app/assets/DnRoHgQS.js +1 -0
  68. package/app/assets/Dy6-E_uL.js +1 -0
  69. package/app/assets/DyQ8cEic.js +1 -0
  70. package/app/assets/DzRyVlxz.js +41 -0
  71. package/app/assets/FAouNaq9.js +1 -0
  72. package/app/assets/Nro86Y63.js +1 -0
  73. package/app/assets/Q6DQerac.js +8 -0
  74. package/app/assets/S7HbowYz.js +373 -0
  75. package/app/assets/UX-csQNt.js +2 -0
  76. package/app/assets/Udlj1Cgf.js +1 -0
  77. package/app/assets/{C0bzfYFC.js → XCH_yrJ8.js} +1 -1
  78. package/app/assets/_zaonxnw.js +1 -0
  79. package/app/assets/f6MhVR01.js +27 -0
  80. package/app/assets/tQiLT0zv.js +2 -0
  81. package/app/index.html +35 -27
  82. package/app/landing.css +17 -0
  83. package/dist/{chunk-XAI7WLQN.js → chunk-SDRLD5PK.js} +995 -121
  84. package/dist/embed.js +1 -1
  85. package/dist/index.js +1 -1
  86. package/package.json +6 -2
  87. package/app/assets/8RmjiG1u.js +0 -1
  88. package/app/assets/9kM6GVHV.js +0 -7
  89. package/app/assets/B2csuorb.js +0 -1
  90. package/app/assets/BCmzDvBt.js +0 -1
  91. package/app/assets/BHsXOlR9.js +0 -2
  92. package/app/assets/BO_H_8D-.js +0 -1
  93. package/app/assets/BRc4Nt6e.js +0 -1
  94. package/app/assets/BW4K9UH-.js +0 -1
  95. package/app/assets/BbdU8Zop.js +0 -2
  96. package/app/assets/BgkATqP8.js +0 -1
  97. package/app/assets/Bhquh17w.js +0 -959
  98. package/app/assets/Bjm-okwb.js +0 -1
  99. package/app/assets/Bs-p2SdN.js +0 -1
  100. package/app/assets/CF6jyexg.js +0 -41
  101. package/app/assets/CMoC9sLj.js +0 -1
  102. package/app/assets/COfwwXGO.js +0 -3
  103. package/app/assets/CS2mpWDL.js +0 -1
  104. package/app/assets/CUK2WAdf.js +0 -1
  105. package/app/assets/CVpOAP2j.js +0 -1
  106. package/app/assets/CVpzA8TC.js +0 -8
  107. package/app/assets/CZoj-eMm.js +0 -1
  108. package/app/assets/CbmIWIww.js +0 -1
  109. package/app/assets/CeXMO4BR.js +0 -1
  110. package/app/assets/Cf8o-5U6.js +0 -2
  111. package/app/assets/CiFkP-9S.js +0 -1
  112. package/app/assets/CpSudzcZ.js +0 -1
  113. package/app/assets/CqK9ewb_.js +0 -1
  114. package/app/assets/CrT26gRf.js +0 -1
  115. package/app/assets/D0jMUNSI.js +0 -2
  116. package/app/assets/D6kbK-ng.js +0 -1
  117. package/app/assets/DEEGN6UG.js +0 -6
  118. package/app/assets/DIJgEIiP.js +0 -27
  119. package/app/assets/DMRY-PmY.js +0 -1
  120. package/app/assets/DPdwSUSw.js +0 -1
  121. package/app/assets/DSmKDd5u.js +0 -1
  122. package/app/assets/DTDWV2fP.js +0 -2
  123. package/app/assets/DW8BZVdB.js +0 -1
  124. package/app/assets/DWMVPRon.js +0 -1
  125. package/app/assets/DbqogdCK.js +0 -356
  126. package/app/assets/Dc12Sye0.js +0 -1
  127. package/app/assets/DzVnJu74.js +0 -2
  128. package/app/assets/KuSp3gJs.css +0 -2
  129. package/app/assets/OjAiMU9J.js +0 -2
  130. package/app/assets/SFsWRs4-.js +0 -1
  131. package/app/assets/bgQ-QVd7.js +0 -1
  132. package/app/assets/fI8KJgQa.js +0 -1
  133. package/app/assets/hrOpaTVU.js +0 -1
  134. package/app/assets/p4yYbMPY.js +0 -2
  135. package/app/assets/pjlgs2cl.js +0 -1
  136. package/app/assets/pneb1la9.js +0 -1
  137. package/app/assets/qXWuX5B-.js +0 -1
  138. package/app/assets/useqs8Jk.js +0 -1
  139. package/app/assets/y4cmNs6-.js +0 -1
  140. package/app/assets/y664aOTm.js +0 -1
  141. package/app/assets/zspOy9D_.js +0 -2
@@ -1,356 +0,0 @@
1
- import{_ as e}from"./BCmzDvBt.js";var t=/^(?:-?\d+(?:\.\d+)?|null|true|false|current_(?:timestamp|date|time)(?:\(\d*\))?|now\(\)|b'[01]+'|x'[0-9a-f]*')$/i;function n(e,n){let r=e.trim();return r===``?n(``):t.test(r)||/^'.*'$/s.test(r)||/^".*"$/s.test(r)||r.includes(`(`)||r.includes(`::`)?r:n(r)}function r(e,t,r){let i=t.upperCaseTypes?e.type.toUpperCase():e.type;return e.nullable?t.modify===`mssql`&&(i+=` NULL`):i+=` NOT NULL`,e.defaultValue!==null&&!/auto_increment|identity/i.test(e.extra)&&(i+=` DEFAULT ${n(e.defaultValue,r)}`),t.mysqlAttributes&&(/auto_increment/i.test(e.extra)&&(i+=` AUTO_INCREMENT`),e.comment&&(i+=` COMMENT ${r(e.comment)}`)),i}function i({quoteIdentifier:e,quoteLiteral:t,qualify:i},a){let o=e=>r(e,a,t),s=(t,n)=>a.qualifiedIndexNames?i(t,n):e(n);return{addColumn(t,n,r){let s=`${e(r.name)} ${o(r)}`;return a.addColumn===`ADD (`?`ALTER TABLE ${i(t,n)} ADD (${s});`:`ALTER TABLE ${i(t,n)} ${a.addColumn} ${s};`},alterColumn(r,s,c){let l=i(r,s),u=e(c.name);switch(a.modify){case`mysql`:return`ALTER TABLE ${l} MODIFY COLUMN ${u} ${o(c)};`;case`oracle`:return`ALTER TABLE ${l} MODIFY (${u} ${o(c)});`;case`mssql`:return`ALTER TABLE ${l} ALTER COLUMN ${u} ${c.type}${c.nullable?` NULL`:` NOT NULL`};`;case`postgres`:return`ALTER TABLE ${l}\n ${[`ALTER COLUMN ${u} TYPE ${c.type}`,c.nullable?`ALTER COLUMN ${u} DROP NOT NULL`:`ALTER COLUMN ${u} SET NOT NULL`,c.defaultValue===null||/auto_increment|identity/i.test(c.extra)?`ALTER COLUMN ${u} DROP DEFAULT`:`ALTER COLUMN ${u} SET DEFAULT ${n(c.defaultValue,t)}`].join(`,
2
- `)};`;case`none`:return null}},dropColumn(t,n,r){return`ALTER TABLE ${i(t,n)} DROP COLUMN ${e(r)};`},renameColumn(n,r,o,s){return a.renameColumn===`sp_rename`?`EXEC sp_rename ${t(`${n}.${r}.${o}`)}, ${t(s)}, 'COLUMN';`:`ALTER TABLE ${i(n,r)} RENAME COLUMN ${e(o)} TO ${e(s)};`},createIndex(t,n,r){let o=r.columns.map(e).join(`, `);if(r.type===`PRIMARY`)return`ALTER TABLE ${i(t,n)} ADD PRIMARY KEY (${o});`;let c=r.type===`UNIQUE`?`UNIQUE `:r.type===`FULLTEXT`&&a.fulltext?`FULLTEXT `:``,l=a.unqualifiedIndexTarget?e(n):i(t,n);return`CREATE ${c}INDEX ${s(t,r.name)} ON ${l} (${o});`},dropIndex(t,n,r){return a.dropIndexOnTable?`DROP INDEX ${e(r)} ON ${i(t,n)};`:`DROP INDEX ${s(t,r)};`},insertRows(n,r,o,s){let c=i(n,r),l=o.map(e).join(`, `),u=s.map(e=>`(${e.map(t).join(`, `)})`);return a.multiRowInsert?`INSERT INTO ${c} (${l}) VALUES\n${u.join(`,
3
- `)};`:`INSERT ALL\n${u.map(e=>` INTO ${c} (${l}) VALUES ${e}`).join(`
4
- `)}\nSELECT 1 FROM DUAL;`}}}function a(e,t,n){let r=`${t}:${n.replaceAll(`/`,`⁄`)}`;return e?`${e}/${r}`:r}function o(e,t,n,r,i){return{id:a(e,t,n),type:t,text:n,isLeaf:r,isExpanded:!1,isLoading:!1,children:[],metadata:i}}var s=[{text:`Tables`,type:`TABLE`},{text:`Views`,type:`VIEW`},{text:`Procedures`,type:`PROCEDURE`,capability:`procedures`},{text:`Functions`,type:`FUNCTION`,capability:`functions`},{text:`Triggers`,type:`TRIGGER`,capability:`triggers`},{text:`Events`,type:`EVENT`,capability:`events`}],c=[`Columns`,`Indexes`],l={TABLE:e.TABLE,VIEW:e.VIEW,PROCEDURE:e.PROCEDURE,FUNCTION:e.FUNCTION,TRIGGER:e.TRIGGER,EVENT:e.EVENT};function u(e){return s.find(t=>t.type===e).text}function d(e){return s.filter(t=>!t.capability||e.capabilities[t.capability]).map(e=>e.text)}function f(t,n,r){return d(t).map(t=>o(n,e.FOLDER,t,!1,{...r,countable:!0}))}async function ee({engine:t,run:n},r){let{introspect:i}=t,a=r.metadata?.database??``,s={database:a,catalog:r.metadata?.catalog},c=(e,t,n)=>o(r.id,l[e],t,!0,{...s,...n});switch(r.text){case`Tables`:return(await i.listTables(n,a)).map(t=>o(r.id,e.TABLE,t.name,!1,{...s,table:t.name}));case`Views`:return(await i.listViews(n,a)).map(e=>c(`VIEW`,e));case`Procedures`:return(await i.listProcedures(n,a)).map(e=>c(`PROCEDURE`,e));case`Functions`:return(await i.listFunctions(n,a)).map(e=>c(`FUNCTION`,e));case`Triggers`:return i.listTriggerDetails?(await i.listTriggerDetails(n,a)).map(e=>c(`TRIGGER`,e.name,{table:e.table})):(await i.listTriggers(n,a)).map(e=>c(`TRIGGER`,e));case`Events`:return(await i.listEvents(n,a)).map(e=>c(`EVENT`,e));default:return[]}}function te(t){let n={database:t.metadata?.database,catalog:t.metadata?.catalog,table:t.text};return c.map(r=>o(t.id,e.FOLDER,r,!1,n))}async function p({engine:t,run:n},r){let i=r.metadata?.database??``,a=r.metadata?.table;if(!a)return null;let s={database:i,catalog:r.metadata?.catalog,table:a};switch(r.text){case`Columns`:return(await t.introspect.listColumns(n,i,a)).map(t=>{let n=t.extra?` [${t.extra}]`:``;return o(r.id,e.COLUMN,`${t.name} ${t.type}${n}`,!0,{...s,column:t.name,key:t.key})});case`Indexes`:return(await t.introspect.listIndexes(n,i,a)).map(t=>o(r.id,e.INDEX,`${t.name} (${t.columns.join(`, `)})`,!0,{...s,index:t.name}));default:return null}}async function m(t,n){switch(n.type){case e.FOLDER:return await p(t,n)??ee(t,n);case e.TABLE:return te(n);default:return null}}function h(t,n,r){let i=a(t,e.FOLDER,u(n));return[t,i,a(i,l[n],r)]}var ne={async loadRoot({engine:t,run:n}){return(await t.introspect.listDatabases(n)).map(t=>o(null,e.DATABASE,t,!1,{database:t}))},async loadChildren(t,n){return n.type===e.DATABASE?f(t.engine,n.id,{database:n.text}):await m(t,n)??[]},objectPath(t,n,r){return h(a(null,e.DATABASE,t),n,r)},namespacePath(t){return[a(null,e.DATABASE,t)]}},re=class extends Error{constructor(e,t){super(`${e} does not support ${t}`),this.name=`UnsupportedQueryError`}};function ie(e,t,...n){let r=t.identifierQuote,i=t.identifierQuoteClose??r;return e.replace(/(.?)\{(\d+)\}(.?)/gs,(e,a,o,s)=>{let c=parseInt(o,10);if(c>=n.length)return e;let l=n[c];return a===r&&s===i?`${a}${l.replaceAll(i,i+i)}${s}`:a&&a===s&&t.stringQuotes.includes(a)?`${a}${ae(l,a,t.backslashEscapes)}${s}`:`${a}${l}${s}`})}function ae(e,t,n){let r=n?e.replaceAll(`\\`,`\\\\`):e;return r=r.replaceAll(t,t+t),r}function g(e){return String(e).padStart(2,`0`)}function oe(e){return`${e.getFullYear()}-${g(e.getMonth()+1)}-${g(e.getDate())} ${g(e.getHours())}:${g(e.getMinutes())}:${g(e.getSeconds())}`}var se=/^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2}:\d{2})/,ce=e=>Array.from(e,e=>e.toString(16).padStart(2,`0`)).join(``),le=e=>`X'${e}'`;function ue(e,t,n=!1,r=le){if(e==null)return`NULL`;if(e instanceof Uint8Array)return r(ce(e));if(typeof e==`number`)return Number.isFinite(e)?String(e):`NULL`;if(typeof e==`bigint`)return e.toString();if(typeof e==`boolean`)return n?e?`TRUE`:`FALSE`:e?`1`:`0`;if(e instanceof Date)return`'${oe(e)}'`;let i;if(typeof e==`object`)try{i=JSON.stringify(e)}catch{i=String(e)}else{i=String(e);let t=i.match(se);t&&(i=`${t[1]} ${t[2]}`)}return`'${ae(i,`'`,t)}'`}function _(e){let t=e.fields.map(e=>e.name);return e.records.map(e=>{let n={};return t.forEach((t,r)=>{n[t]=e[r]}),n})}function v(e,t=``){return e==null?t:String(e)}function y(e){return e==null?null:String(e)}function b(e){if(e==null||e===``)return null;let t=Number(e);return Number.isFinite(t)?t:null}function x(e,t){return e.trim()||t}function S(e){let t=e.identifierQuote,n=e.identifierQuoteClose??t,r=e=>`${t}${e.replaceAll(n,n+n)}${n}`,i=t=>ue(t,e.syntax.backslashEscapes,e.booleanKeywords??!1,e.binaryLiteral),a=(e,t)=>e?`${r(e)}.${r(t)}`:r(t),o={identifierQuote:t,identifierQuoteClose:n,stringQuotes:e.syntax.doubleQuoteIsIdentifier?[`'`]:[`'`,`"`],backslashEscapes:e.syntax.backslashEscapes};return{id:e.id,label:e.label,capabilities:e.capabilities,introspect:e.introspect,explain:e.explain,tree:e.tree??ne,defaultPort:e.defaultPort,syntax:e.syntax,limitClause:(t,n=0)=>e.syntax.limitStyle===`top`?`OFFSET ${n} ROWS FETCH NEXT ${t} ROWS ONLY`:e.syntax.limitStyle===`fetch`?n>0?`OFFSET ${n} ROWS FETCH NEXT ${t} ROWS ONLY`:`FETCH FIRST ${t} ROWS ONLY`:n>0?`LIMIT ${t} OFFSET ${n}`:`LIMIT ${t}`,quoteIdentifier:r,quoteLiteral:i,qualify:a,ddl:e.ddl({quoteIdentifier:r,quoteLiteral:i,qualify:a}),rowIdExpression:e.rowIdExpression,hasQuery(t){return e.queries[t]!==void 0},getQuery(t,...n){let r=e.queries[t];if(r===void 0)throw new re(e.label,t);return ie(r,o,...n)},getDataTypes:()=>e.dataTypes,getDataTypesToJSON:()=>e.dataTypes.map(e=>[e,e]),getFunctions:()=>e.functions,getReservedWords:()=>e.reservedWords}}var de=0,fe=()=>`p${++de}`;function C(e,t={}){return{id:fe(),label:e,rows:null,actualRows:null,cost:null,timeMs:null,details:[],warnings:[],children:[],...t}}function w(e){if(e==null||e===``)return null;let t=typeof e==`number`?e:Number(String(e).replace(/,/g,``));return Number.isFinite(t)?t:null}function T(e){return e==null?``:typeof e==`object`?JSON.stringify(e):String(e)}function E(e){let t=e.replace(/[_-]+/g,` `).trim();return t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()}var pe=10;function D(e,t){return e===null||t===null||Math.max(e,t)<100?[]:(e===0||t===0?Math.max(e,t):Math.max(e/t,t/e))>pe?[`estimate-off`]:[]}function me(e,t){let n=new Map,r=new Map,i=[],a=[];for(let o of e){let e=t(o);if(e){if(e.id===null){a.push(e.node);continue}n.set(e.id,e.node),r.set(e.id,e.parent),i.push(e.id)}}for(let e of i){let t=n.get(e),i=r.get(e),o=i==null?void 0:n.get(i);o&&o!==t?o.children.push(t):a.push(t)}return a}var he=new Set([`Node Type`,`Plans`,`Plan Rows`,`Total Cost`,`Actual Rows`,`Actual Total Time`,`Relation Name`,`Index Name`,`Actual Loops`,`Startup Cost`,`Actual Startup Time`]);function ge(e){let t=T(e[`Node Type`])||`Node`,n=T(e.Strategy??e[`Join Type`]??e[`Partial Mode`]),r=T(e[`Relation Name`]??e[`Index Name`])||void 0,i=w(e[`Actual Loops`])??1,a=w(e[`Actual Rows`]),o=w(e[`Actual Total Time`]),s=w(e[`Plan Rows`]),c=[];t===`Seq Scan`&&c.push(`full-scan`),T(e[`Sort Method`]).toLowerCase().includes(`external`)&&c.push(`filesort`),c.push(...D(s,a));let l=Object.entries(e).filter(([e,t])=>!he.has(e)&&t!=null&&t!==``).map(([e,t])=>({label:e,value:T(t)})),u=Array.isArray(e.Plans)?e.Plans.map(ge):[];return C(n?`${t} (${n})`:t,{object:r,rows:s,actualRows:a===null?null:a*i,cost:w(e[`Total Cost`]),timeMs:o===null?null:o*i,details:l,warnings:c,children:u})}function O(e){return e.records[0]?.[0]}function _e(e){if(typeof e!=`string`)return e;try{return JSON.parse(e)}catch{return null}}var ve={supportsAnalyze:!0,statements:(e,t)=>({statement:`EXPLAIN (${t?`ANALYZE, BUFFERS, `:``}FORMAT JSON) ${e}`}),parse:e=>{let t=O(e),n=typeof t==`string`?t:JSON.stringify(t,null,2),r=_e(t),i=Array.isArray(r)?r:r?[r]:[],a=[];for(let e of i){let t=e?.Plan;if(!t||typeof t!=`object`)continue;let n=ge(t),r=w(e[`Planning Time`]),i=w(e[`Execution Time`]);r!==null&&n.details.push({label:`Planning Time`,value:`${r} ms`}),i!==null&&n.details.push({label:`Execution Time`,value:`${i} ms`}),a.push(n)}return{roots:a,raw:n}}},ye=new Set([`table_name`,`access_type`,`key`,`rows_examined_per_scan`,`rows`,`r_rows`,`r_total_time_ms`,`query_cost`,`select_id`,`cost_info`]),be=new Set([`query_block`,`nested_loop`,`ordering_operation`,`grouping_operation`,`duplicates_removal`,`materialized_from_subquery`,`union_result`,`query_specifications`,`attached_subqueries`,`subqueries`,`optimized_away_subqueries`,`select_list_subqueries`,`having_subqueries`,`update_value_subqueries`,`block-nl-join`,`buffer_result`,`filesort`,`temporary_table`,`read_sorted_file`,`range-checked-for-each-record`,`insert_from`,`having_subquery`,`table`]);function k(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function xe(e){let t=T(e.table_name)||`table`,n=T(e.access_type),r=T(e.key),i=w(e.rows_examined_per_scan??e.rows),a=w(e.r_rows),o=[];n===`ALL`&&o.push(`full-scan`),!r&&e.possible_keys==null&&n!==`system`&&n!==`const`&&o.push(`no-index`),e.using_filesort===!0&&o.push(`filesort`),e.using_temporary_table===!0&&o.push(`temporary`),o.push(...D(i,a));let s=[],c=[];for(let[t,n]of Object.entries(e))be.has(t)?c.push(...A(t,n)):!ye.has(t)&&n!=null&&n!==``&&s.push({label:E(t),value:T(n)});let l=k(e.cost_info)?w(e.cost_info.prefix_cost??e.cost_info.read_cost):null;return C(n?`${n.toUpperCase()} ${t}`:t,{object:t,rows:i,actualRows:a,cost:l,timeMs:w(e.r_total_time_ms),details:s,warnings:o,children:c})}function A(e,t){if(Array.isArray(t))return t.flatMap(t=>A(e,t));if(!k(t))return[];if(e===`table`||`table_name`in t)return[xe(t)];let n=[],r=[];for(let[e,i]of Object.entries(t))ye.has(e)||(be.has(e)||Array.isArray(i)||k(i)?r.push(...A(e,i)):i!=null&&i!==``&&n.push({label:E(e),value:T(i)}));let i=[];(e===`filesort`||t.using_filesort===!0)&&i.push(`filesort`),(e===`temporary_table`||t.using_temporary_table===!0)&&i.push(`temporary`);let a=w(t.select_id),o=e===`query_block`&&a!==null?`Query block #${a}`:E(e),s=k(t.cost_info)?w(t.cost_info.query_cost):null;return e===`nested_loop`?r:[C(o,{rows:w(t.rows),cost:s,details:n,warnings:i,children:r})]}var Se=/^(\s*)->\s*(.*)$/,Ce=/\s*\(cost=([\d.e+-]+)(?:\.\.[\d.e+-]+)? rows=([\d.e+-]+)\)/,we=/\s*\(actual time=([\d.e+-]+)\.\.([\d.e+-]+) rows=([\d.e+-]+) loops=(\d+)\)/,Te=/\s*\(never executed\)/;function Ee(e){let t=/\bon\s+`?([A-Za-z0-9_$]+)`?/.exec(e),n=/\busing\s+`?([A-Za-z0-9_$]+)`?/.exec(e);return{object:t?.[1],index:n?.[1]}}function De(e,t,n){let r=[];return/^Table scan on /.test(e)&&r.push(`full-scan`),/^Sort[: ]/.test(e)&&r.push(`filesort`),/^(Materialize|Temporary table)/.test(e)&&r.push(`temporary`),r.push(...D(t,n)),r}function Oe(e){let t=[],n=[];for(let r of e.split(`
5
- `)){let e=Se.exec(r);if(!e)continue;let i=e[1].length,a=e[2],o=Ce.exec(a),s=we.exec(a),c=Te.test(a);a=a.replace(Ce,``).replace(we,``).replace(Te,``).trim();let l=o?w(o[2]):null,u=s?w(s[4])??1:1,d=s?w(s[3]):null,f=d===null?null:d*u,ee=s?(w(s[2])??0)*u:null,{object:te,index:p}=Ee(a),m=[];p&&m.push({label:`Index`,value:p}),u>1&&m.push({label:`Loops`,value:String(u)}),c&&m.push({label:`Executed`,value:`never`});let h=C(a||`Node`,{object:te,rows:l,actualRows:c?0:f,cost:o?w(o[1]):null,timeMs:c?0:ee,details:m,warnings:De(a,l,c?0:d)});for(;n.length>0&&n[n.length-1].indent>=i;)n.pop();let ne=n[n.length-1];ne?ne.node.children.push(h):t.push(h),n.push({indent:i,node:h})}return t}function ke(e){return t=>({statement:`${e?`ANALYZE`:`EXPLAIN`} FORMAT=JSON ${t}`})}function Ae(e,t){if(!t)return je(e);let n=T(O(e));return{roots:Oe(n),raw:n}}function je(e){let t=O(e),n=typeof t==`string`?t:JSON.stringify(t,null,2),r=_e(t);return k(r)?{roots:Object.entries(r).flatMap(([e,t])=>A(e,t)),raw:n}:{roots:[],raw:n}}var Me={supportsAnalyze:!0,statements:(e,t)=>({statement:t?`EXPLAIN ANALYZE ${e}`:`EXPLAIN FORMAT=JSON ${e}`}),parse:Ae},Ne={supportsAnalyze:!0,statements:(e,t)=>ke(t)(e),parse:e=>je(e)};function Pe(e){let t=[],n=e.toUpperCase();return n.startsWith(`SCAN`)&&!n.includes(`USING`)&&t.push(`full-scan`),n.includes(`USE TEMP B-TREE`)&&t.push(n.includes(`ORDER BY`)?`filesort`:`temporary`),t}function Fe(e){return/^(?:SCAN|SEARCH)\s+(?:TABLE\s+)?([^\s(]+)/i.exec(e)?.[1]}var Ie={supportsAnalyze:!1,statements:e=>({statement:`EXPLAIN QUERY PLAN ${e}`}),parse:e=>{let t=_(e),n=t.map(e=>`${e.id}|${e.parent}|${T(e.detail)}`).join(`
6
- `);return{roots:me(t,e=>{let t=T(e.detail);if(!t)return null;let n=w(e.parent);return{id:w(e.id),parent:n===0?null:n,node:C(t,{object:Fe(t),warnings:Pe(t)})}}),raw:n}}};function Le(e){let t=/OBJECT:\(([^)]*)\)/i.exec(e);if(!t)return;let n=t[1].replace(/\s+AS\s+\[[^\]]*\]\s*$/i,``).trim(),r=[...n.matchAll(/\[([^\]]*)\]/g)].map(e=>e[1]).filter(Boolean);return r.length===0?n||void 0:r.slice(2).join(`.`)||r.join(`.`)}var Re={supportsAnalyze:!0,statements:(e,t)=>({before:[t?`SET STATISTICS PROFILE ON`:`SET SHOWPLAN_ALL ON`],statement:e,after:[t?`SET STATISTICS PROFILE OFF`:`SET SHOWPLAN_ALL OFF`]}),parse:e=>{let t=_(e),n=t.map(e=>T(e.StmtText)).join(``);return{roots:me(t,e=>{let t=T(e.PhysicalOp),n=T(e.LogicalOp),r=T(e.Argument),i=t||T(e.StmtText).trim().replace(/\s+/g,` `).slice(0,120);if(!i)return null;let a=[];/Table Scan|Clustered Index Scan|Index Scan/i.test(t)&&a.push(`full-scan`),T(e.Warnings)&&a.push(`no-index`),/Sort/i.test(t)&&a.push(`filesort`);let o=[];n&&n!==t&&o.push({label:`Logical operation`,value:n}),r&&o.push({label:`Argument`,value:r});for(let t of[`EstimateIO`,`EstimateCPU`,`AvgRowSize`,`EstimateExecutions`,`Parallel`,`OutputList`]){let n=T(e[t]);n&&o.push({label:E(t),value:n})}let s=w(e.EstimateRows),c=`Rows`in e?w(e.Rows):null,l=w(e.Executes);l!==null&&o.push({label:`Executes`,value:String(l)});let u=c!==null&&l!==null&&l>0?c/l:null;a.push(...D(s,u));let d=w(e.NodeId),f=w(e.Parent);return{id:d,parent:f===0?null:f,node:C(i,{object:t?Le(r):void 0,rows:s,actualRows:c,cost:w(e.TotalSubtreeCost),details:o,warnings:a})}}),raw:n}}},j=`PLANCHE_PLAN`,ze=`sql_id = (SELECT prev_sql_id FROM v$session WHERE sid = SYS_CONTEXT('USERENV','SID')) AND child_number = (SELECT prev_child_number FROM v$session WHERE sid = SYS_CONTEXT('USERENV','SID'))`,Be={supportsAnalyze:!0,statements:(e,t)=>t?{before:[`ALTER SESSION SET STATISTICS_LEVEL = ALL`,e],statement:`SELECT id, parent_id, operation, options, object_name, cardinality, cost, bytes, last_output_rows, last_elapsed_time, last_starts, access_predicates, filter_predicates FROM v$sql_plan_statistics_all WHERE ${ze} ORDER BY id`,after:[`ALTER SESSION SET STATISTICS_LEVEL = TYPICAL`]}:{before:[`DELETE FROM plan_table WHERE statement_id = '${j}'`,`EXPLAIN PLAN SET STATEMENT_ID = '${j}' FOR ${e}`],statement:`SELECT id, parent_id, operation, options, object_name, cardinality, cost, bytes, access_predicates, filter_predicates FROM plan_table WHERE statement_id = '${j}' ORDER BY id`,after:[`DELETE FROM plan_table WHERE statement_id = '${j}'`]},parse:e=>{let t=_(e),n=t.map(e=>`${e.ID}|${e.PARENT_ID}|${T(e.OPERATION)} ${T(e.OPTIONS)} ${T(e.OBJECT_NAME)}`.trim()).join(`
7
- `);return{roots:me(t,e=>{let t=T(e.OPERATION??e.operation);if(!t)return null;let n=T(e.OPTIONS??e.options),r=T(e.OBJECT_NAME??e.object_name)||void 0,i=[];t===`TABLE ACCESS`&&n===`FULL`&&i.push(`full-scan`),t===`SORT`&&n!==`AGGREGATE`&&i.push(`filesort`);let a=[];for(let[t,n]of[[`BYTES`,`Bytes`],[`ACCESS_PREDICATES`,`Access predicates`],[`FILTER_PREDICATES`,`Filter predicates`]]){let r=T(e[t]??e[t.toLowerCase()]);r&&a.push({label:n,value:r})}let o=w(e.CARDINALITY??e.cardinality),s=w(e.LAST_OUTPUT_ROWS??e.last_output_rows),c=w(e.LAST_ELAPSED_TIME??e.last_elapsed_time),l=w(e.LAST_STARTS??e.last_starts);l!==null&&a.push({label:`Starts`,value:String(l)});let u=s!==null&&l!==null&&l>0?s/l:null;return i.push(...D(o,u)),{id:w(e.ID??e.id),parent:w(e.PARENT_ID??e.parent_id),node:C(n?`${t} ${n}`:t,{object:r,rows:o,actualRows:s,cost:w(e.COST??e.cost),timeMs:c===null?null:c/1e3,details:a,warnings:i})}}),raw:n}}},M=e=>`\`${e.replaceAll("`","``")}\``,N=(e,t)=>`${M(e)}.${M(t)}`,P=e=>`'${e.replace(/\\/g,`\\\\`).replace(/'/g,`''`)}'`;function Ve(e){let t=v(e).toUpperCase();return t===`PRI`||t===`UNI`||t===`MUL`?t:``}function He(e,t,n){if(e===`PRIMARY`)return`PRIMARY`;let r=v(n).toUpperCase();return r===`FULLTEXT`?`FULLTEXT`:r===`SPATIAL`?`SPATIAL`:Number(t)===0?`UNIQUE`:`INDEX`}function Ue(e){return{name:v(e.Name??e.TABLE_NAME),engine:y(e.Engine??e.ENGINE),rows:b(e.Rows??e.TABLE_ROWS),collation:y(e.Collation??e.TABLE_COLLATION),autoIncrement:y(e.Auto_increment??e.AUTO_INCREMENT),comment:v(e.Comment??e.TABLE_COMMENT),createTime:y(e.Create_time??e.CREATE_TIME),updateTime:y(e.Update_time??e.UPDATE_TIME),dataLength:b(e.Data_length??e.DATA_LENGTH)}}function We(e){return{name:v(e.Field??e.COLUMN_NAME),type:v(e.Type??e.COLUMN_TYPE),nullable:v(e.Null??e.IS_NULLABLE).toUpperCase()===`YES`,key:Ve(e.Key??e.COLUMN_KEY),defaultValue:y(e.Default??e.COLUMN_DEFAULT),extra:v(e.Extra??e.EXTRA),comment:v(e.Comment??e.COLUMN_COMMENT),collation:y(e.Collation??e.COLLATION_NAME)}}function Ge(e){let t=new Map;for(let n of e){let e=v(n.Table??n.TABLE_NAME),r=v(n.Key_name??n.INDEX_NAME),i=v(n.Column_name??n.COLUMN_NAME),a=t.get(e);a||(a=new Map,t.set(e,a));let o=a.get(r);o?o.columns.push(i):a.set(r,{name:r,type:He(r,n.Non_unique??n.NON_UNIQUE,n.Index_type??n.INDEX_TYPE),columns:[i]})}return new Map(Array.from(t,([e,t])=>[e,Array.from(t.values())]))}var Ke={TABLE:`TABLE`,VIEW:`VIEW`,PROCEDURE:`PROCEDURE`,FUNCTION:`FUNCTION`,TRIGGER:`TRIGGER`,EVENT:`EVENT`},qe={async listDatabases(e){return(await e(`SHOW DATABASES`)).records.map(e=>v(e[0]))},async listTables(e,t){return _(await e(`SHOW TABLE STATUS FROM ${M(t)} WHERE ENGINE IS NOT NULL`,t)).map(Ue)},async listViews(e,t){return(await e(`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = ${P(t)} ORDER BY TABLE_NAME`,t)).records.map(e=>v(e[0]))},async listProcedures(e,t){return _(await e(`SHOW PROCEDURE STATUS WHERE DB = ${P(t)}`,t)).map(e=>v(e.Name))},async listFunctions(e,t){return _(await e(`SHOW FUNCTION STATUS WHERE DB = ${P(t)}`,t)).map(e=>v(e.Name))},async listTriggers(e,t){return _(await e(`SHOW TRIGGERS FROM ${M(t)}`,t)).map(e=>v(e.Trigger))},async listEvents(e,t){return(await e(`SELECT EVENT_NAME FROM INFORMATION_SCHEMA.EVENTS WHERE EVENT_SCHEMA = ${P(t)} ORDER BY EVENT_NAME`,t)).records.map(e=>v(e[0]))},async listColumns(e,t,n){return _(await e(`SHOW FULL COLUMNS FROM ${N(t,n)}`,t)).map(We)},async listIndexes(e,t,n){return Ge(_(await e(`SHOW INDEX FROM ${N(t,n)}`,t))).get(n)??[]},async listAllColumns(e,t){let n=await e(`SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT,
8
- EXTRA, COLUMN_COMMENT, COLLATION_NAME
9
- FROM information_schema.COLUMNS
10
- WHERE TABLE_SCHEMA = ${P(t)}
11
- ORDER BY TABLE_NAME, ORDINAL_POSITION`,t),r=new Map;for(let e of _(n)){let t=v(e.TABLE_NAME),n=r.get(t)??[];n.push(We(e)),r.set(t,n)}return r},async listAllIndexes(e,t){return Ge(_(await e(`SELECT TABLE_NAME, INDEX_NAME, COLUMN_NAME, NON_UNIQUE, INDEX_TYPE
12
- FROM information_schema.STATISTICS
13
- WHERE TABLE_SCHEMA = ${P(t)}
14
- ORDER BY TABLE_NAME, INDEX_NAME, SEQ_IN_INDEX`,t)))},async listForeignKeys(e,t){return(await e(`SELECT CONSTRAINT_NAME, TABLE_NAME, COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
15
- FROM information_schema.KEY_COLUMN_USAGE
16
- WHERE TABLE_SCHEMA = ${P(t)} AND REFERENCED_TABLE_NAME IS NOT NULL
17
- ORDER BY TABLE_NAME, CONSTRAINT_NAME, ORDINAL_POSITION`,t)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){let r=_(await e(`SHOW TABLE STATUS FROM ${M(t)} LIKE ${P(n)}`,t));return r.length>0?Ue(r[0]):null},async getPrimaryKeys(e,t,n){return _(await e(`SHOW KEYS FROM ${N(t,n)} WHERE Key_name = 'PRIMARY'`,t)).map(e=>v(e.Column_name))},async getCreateStatement(e,t,n,r){let i=await e(`SHOW CREATE ${Ke[n]} ${N(t,r)}`,t);if(i.records.length===0)return null;let a=i.fields.findIndex(e=>/^create /i.test(e.name)),o=i.records[0];return y(a>=0?o[a]:o.find(e=>/create/i.test(v(e))))}},Je={SELECT_ALL_USER:"SELECT * FROM `mysql`.`user`",SELECT_USER:'SELECT * FROM `mysql`.`user` WHERE user="{0}" AND host="{1}"',SELECT_COUNT:"SELECT COUNT(1) as cnt FROM `{0}`.`{1}`",CREATE_USER:'CREATE USER `{0}`@`{1}` IDENTIFIED BY "{2}"',DELETE_USER:"DROP USER `{0}`@`{1}`",GRANT:"GRANT {0} ON {3} TO `{1}`@`{2}` {4}",REVOKE:"REVOKE {0} ON {3} FROM `{1}`@`{2}`",RENAME_USER:"RENAME USER `{0}`@`{1}` TO `{2}`@`{3}`",USER_PRIV:'SELECT * FROM `mysql`.`user` WHERE USER = "{0}" AND HOST = "{1}"',USER_DATABASE_PRIV:'SELECT * FROM `mysql`.`db` WHERE USER = "{0}" AND HOST = "{1}"',USER_TABLE_PRIV:'SELECT Db, Table_name, Table_priv FROM `mysql`.`tables_priv` WHERE USER = "{0}" AND HOST = "{1}"',USER_COLUMN_PRIV:'SELECT Db, Table_name, Column_name, Column_priv FROM `mysql`.`columns_priv` WHERE USER = "{0}" AND HOST = "{1}"',USER_PROC_PRIV:'SELECT Db, Routine_name, Routine_type, Proc_priv FROM `mysql`.`procs_priv` WHERE USER = "{0}" AND HOST = "{1}"',SHOW_FULL_FIELDS:"SHOW FULL FIELDS FROM `{0}`.`{1}`",SHOW_DATABASE_VIEWS:"SHOW FULL TABLES FROM `{0}` WHERE TABLE_TYPE LIKE 'VIEW'",SHOW_DATABASE_TABLES:"SHOW FULL TABLES FROM `{0}` WHERE table_type = 'BASE TABLE'",SHOW_ADVANCED_PROPERTIES:'SHOW TABLE STATUS FROM `{0}` LIKE "{1}"',SHOW_DATABASE:`SHOW DATABASES`,ADD_INDEX:"CREATE {3} INDEX {2} ON `{0}`.`{1}`({4}) {5}",SHOW_INDEX:'SHOW INDEX FROM `{0}`.`{1}` WHERE key_name="{2}"',SHOW_INDEXES:"SHOW INDEX FROM `{0}`.`{1}`",DROP_INDEX:"DROP INDEX {2} ON `{0}`.`{1}`",DROP_PROCEDURE:"DROP PROCEDURE {2} `{0}`.`{1}`",DROP_FUNCTION:"DROP FUNCTION {2} `{0}`.`{1}`",DROP_TRIGGER:"DROP TRIGGER {2} `{0}`.`{1}`",DROP_EVENT:"DROP EVENT {2} `{0}`.`{1}`",DROP_VIEW:"DROP VIEW {2} `{0}`.`{1}`",SHOW_PROCEDURES:`SHOW PROCEDURE STATUS WHERE DB = "{0}"`,SHOW_FUNCTIONS:`SHOW FUNCTION STATUS WHERE DB = "{0}"`,SHOW_TRIGGERS:"SHOW TRIGGERS FROM `{0}`",SHOW_EVENTS:'SELECT `Event_name`,`Definer`,`Event_type`,`Execute_at`,`Interval_value`,`Interval_field`,`Starts`,`Ends`,`Status` FROM `INFORMATION_SCHEMA`.`EVENTS` WHERE `EVENT_SCHEMA` = "{0}"',SHOW_VIEWS:'SELECT `TABLE_NAME` AS View_name,`View_definition`,`Check_option`,`Is_updatable`,`Definer`,`Security_type` FROM `INFORMATION_SCHEMA`.`VIEWS` WHERE `TABLE_SCHEMA` = "{0}"',SHOW_DATABASE_DDL:"SHOW CREATE DATABASE `{0}`",SHOW_ALL_TABLE_STATUS:"SHOW TABLE STATUS FROM `{0}` WHERE ENGINE IS NOT NULL",SHOW_TABLE_STATUS:'SHOW TABLE STATUS FROM `{0}` like "{1}"',CHANGE_TABLE_TYPE:"ALTER TABLE `{0}`.`{1}` ENGINE = {2}",INSERT_TABLE:"INSERT INTO `{0}`.`{1}` ({2}) VALUES({3});",INSERT_TABLE_BULK:"INSERT INTO `{0}`.`{1}` ({2}) VALUES {3};",INSERT_DEFAULT_VALUES:"INSERT INTO `{0}`.`{1}` () VALUES ();",INSERT_ON_DUPLICATE:"INSERT INTO `{0}`.`{1}` ({2}) VALUES({3}) ON DUPLICATE KEY UPDATE {4}",UPDATE_TABLE:"UPDATE `{0}`.`{1}` SET {2} WHERE {3};",DELETE_TABLE:"DELETE FROM `{0}`.`{1}` WHERE {2};",SELECT_TABLE:"SELECT {2} FROM `{0}`.`{1}` {3};",TRUNCATE_TABLE:"TRUNCATE TABLE `{0}`.`{1}`",RENAME_TABLE:"RENAME TABLE `{0}`.`{1}` TO `{2}`.`{3}`",DROP_TABLE:"DROP TABLE {2} `{0}`.`{1}`",TABLE_CREATE_INFO:"SHOW CREATE TABLE `{0}`.`{1}`",TABLE_KEYS_INFO:"SHOW KEYS FROM `{0}`.`{1}`",INDEX_KEYS_INFO:'SHOW KEYS FROM `{0}`.`{1}` WHERE key_name="{2}"',CREATE_PROCEDURE:`DELIMITER $$
18
- CREATE
19
- /*[DEFINER = { user | CURRENT_USER }]*/
20
- PROCEDURE \`{0}\`.\`{1}\`()
21
-
22
- /* LANGUAGE SQL */
23
- /* [NOT] DETERMINISTIC { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } */
24
- /* SQL SECURITY { DEFINER | INVOKER } */
25
- /* COMMENT 'string'*/
26
- BEGIN
27
-
28
- /* SQL Statements */
29
-
30
- END$$
31
- DELIMITER ;`,CREATE_FUNCTION:`DELIMITER $$
32
- CREATE
33
- /*[DEFINER = { user | CURRENT_USER }]*/
34
- FUNCTION \`{0}\`.\`{1}\`()
35
- RETURNS INT /*{STRING|INTEGER|REAL|DECIMAL}*/ /*LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } | COMMENT 'string'*/
36
- BEGIN
37
-
38
- /* SQL Statements */
39
-
40
- END$$
41
- DELIMITER ;`,CREATE_TRIGGER:`DELIMITER $$
42
- CREATE
43
- /*[DEFINER = { user | CURRENT_USER }]*/
44
- TRIGGER \`{0}\`.\`{1}\`
45
- BEFORE
46
- -- AFTER
47
- INSERT
48
- -- UPDATE
49
- -- DELETE
50
- ON \`{0}\`.\`<Table Name>\` FOR EACH ROW
51
- BEGIN
52
-
53
- /* SQL Statements */
54
-
55
- END$$
56
- DELIMITER ;`,CREATE_EVENT:`DELIMITER $$
57
- -- SET GLOBAL event_scheduler = ON$$
58
- -- required for event to execute but not create
59
- CREATE
60
- /*[DEFINER = { user | CURRENT_USER }]*/
61
- EVENT \`{0}\`.\`{1}\`
62
- ON SCHEDULE EVERY 1 HOUR /* uncomment the example below you want to use */
63
- -- scheduleexample 1: run once
64
- -- AT 'YYYY-MM-DD HH:MM.SS'/CURRENT_TIMESTAMP { + INTERVAL 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] }
65
- -- scheduleexample 2: run at intervals forever after creation
66
- -- scheduleexample 3: specified start time, end time and interval for execution
67
- /*
68
- EVERY 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...]
69
- STARTS CURRENT_TIMESTAMP/'YYYY-MM-DD HH:MM.SS' { + INTERVAL 1[HOUR|MONTH|WEEK|DAY|MINUTE|...] }
70
- ENDS CURRENT_TIMESTAMP/'YYYY-MM-DD HH:MM.SS' { + INTERVAL 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] }
71
- */
72
- /*[ON COMPLETION [NOT] PRESERVE] [ENABLE | DISABLE] */
73
- /* COMMENT 'comment' */
74
- DO BEGIN
75
-
76
- /* SQL Statements */
77
-
78
- END$$
79
- DELIMITER ;`,CREATE_VIEW:`CREATE
80
- /* [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] */
81
- /* DEFINER = user | CURRENT_USER */
82
- /* SQL SECURITY { DEFINER | INVOKER }] */
83
- VIEW \`{0}\`.\`{1}\` AS
84
- /* SQL SELECT Statement */`,SHOW_CREATE_PROCEDURE:"SHOW CREATE PROCEDURE `{0}`.`{1}`",SHOW_CREATE_TABLE:"SHOW CREATE TABLE `{0}`.`{1}`",SHOW_CREATE_VIEW:"SHOW CREATE TABLE `{0}`.`{1}`",SHOW_CREATE_FUNCTION:"SHOW CREATE FUNCTION `{0}`.`{1}`",SHOW_CREATE_TRIGGER:"SHOW CREATE TRIGGER `{0}`.`{1}`",SHOW_CREATE_EVENT:"SHOW CREATE EVENT `{0}`.`{1}`",CREATE_TABLE:"CREATE TABLE `{0}`.`{1}` {2}",ALTER_TABLE:"ALTER TABLE `{0}`.`{1}` {2}",ALTER_VIEW:`DELIMITER $$
85
- USE \`{0}\`$$
86
- DROP VIEW IF EXISTS \`{1}\`$$
87
- {2}$$
88
- DELIMITER;`,ALTER_PROCEDURE:`DELIMITER $$
89
- USE \`{0}\`$$
90
- DROP PROCEDURE IF EXISTS \`{1}\`$$
91
- {2}$$
92
- DELIMITER;`,ALTER_FUNCTION:`DELIMITER $$
93
- USE \`{0}\`$$
94
- DROP FUNCTION IF EXISTS \`{1}\`$$
95
- {2}$$
96
- DELIMITER;`,ALTER_TRIGGER:`DELIMITER $$
97
- USE \`{0}\`$$
98
- DROP TRIGGER IF EXISTS \`{1}\`$$
99
- {2}$$
100
- DELIMITER;`,ALTER_EVENT:`DELIMITER $$
101
- USE \`{0}\`$$
102
- DROP EVENT IF EXISTS \`{1}\`$$
103
- {2}$$
104
- DELIMITER;`,SHOW_PROCESS_LIST:`SHOW FULL PROCESSLIST`,SHOW_VARIABLES:`SHOW VARIABLES`,SHOW_STATUS:`SHOW STATUS`,SHOW_GLOBAL_STATUS:`SHOW GLOBAL STATUS`,SHOW_SESSION_STATUS:`SHOW SESSION STATUS`,CREATE_DATABASE:"CREATE DATABASE `{0}` CHARACTER SET {1} COLLATE {2}",ALTER_DATABASE:"ALTER DATABASE `{0}` CHARACTER SET {1} COLLATE {2}",DROP_DATABASE:"DROP DATABASE `{0}`",CREATE_SCHEMA:"CREATE SCHEMA `{0}`",DROP_SCHEMA:"DROP SCHEMA `{0}`",SHOW_CHARSET:`SHOW CHARSET`,SHOW_COLLATION:`SHOW COLLATION`,SHOW_COLUMNS:"SHOW FULL COLUMNS FROM `{0}`.`{1}`",CHARSET_DATABASE:`SHOW VARIABLES LIKE 'character_set_database'`,COLLATION_DATABASE:`SHOW VARIABLES LIKE 'collation_database'`,KILL_QUERY:`KILL {0}`,SHOW_DATABASES:`SHOW DATABASES`,COPY_TABLE_STRUCTURE:"CREATE TABLE `{2}`.`{3}` LIKE `{0}`.`{1}`",COPY_TABLE_DATA:"INSERT `{2}`.`{3}` SELECT * FROM `{0}`.`{1}`",UPDATE_TABLE_SINGLE:"UPDATE `{0}`.`{1}` SET {2} WHERE {3} LIMIT 1",START_TRANSACTION:`START TRANSACTION`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,SHOW_GLOBAL_VARIABLES:`SHOW GLOBAL VARIABLES`,SHOW_SESSION_VARIABLES:`SHOW SESSION VARIABLES`,DISABLE_FK_CHECKS:`SET FOREIGN_KEY_CHECKS = 0`,ENABLE_FK_CHECKS:`SET FOREIGN_KEY_CHECKS = 1`},Ye=`ASCII.BIN.BIT_LENGTH.CHAR.CHAR_LENGTH.CHARACTER_LENGTH.CONCAT.CONCAT_WS.ELT.EXPORT_SET.FIELD.FIND_IN_SET.FORMAT.FROM_BASE64.HEX.INSERT.INSTR.LCASE.LEFT.LENGTH.LOAD_FILE.LOCATE.LOWER.LPAD.LTRIM.MAKE_SET.MID.OCT.OCTET_LENGTH.ORD.POSITION.QUOTE.REGEXP_INSTR.REGEXP_LIKE.REGEXP_REPLACE.REGEXP_SUBSTR.REPEAT.REPLACE.REVERSE.RIGHT.RPAD.RTRIM.SOUNDEX.SPACE.STRCMP.SUBSTR.SUBSTRING.SUBSTRING_INDEX.TO_BASE64.TRIM.UCASE.UNHEX.UPPER.WEIGHT_STRING.ABS.ACOS.ASIN.ATAN.ATAN2.CEIL.CEILING.CONV.COS.COT.CRC32.DEGREES.EXP.FLOOR.LN.LOG.LOG10.LOG2.MOD.PI.POW.POWER.RADIANS.RAND.ROUND.SIGN.SIN.SQRT.TAN.TRUNCATE.ADDDATE.ADDTIME.CONVERT_TZ.CURDATE.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.CURTIME.DATE.DATE_ADD.DATE_FORMAT.DATE_SUB.DATEDIFF.DAY.DAYNAME.DAYOFMONTH.DAYOFWEEK.DAYOFYEAR.EXTRACT.FROM_DAYS.FROM_UNIXTIME.GET_FORMAT.HOUR.LAST_DAY.LOCALTIME.LOCALTIMESTAMP.MAKEDATE.MAKETIME.MICROSECOND.MINUTE.MONTH.MONTHNAME.NOW.PERIOD_ADD.PERIOD_DIFF.QUARTER.SEC_TO_TIME.SECOND.STR_TO_DATE.SUBDATE.SUBTIME.SYSDATE.TIME.TIME_FORMAT.TIME_TO_SEC.TIMEDIFF.TIMESTAMP.TIMESTAMPADD.TIMESTAMPDIFF.TO_DAYS.TO_SECONDS.UNIX_TIMESTAMP.UTC_DATE.UTC_TIME.UTC_TIMESTAMP.WEEK.WEEKDAY.WEEKOFYEAR.YEAR.YEARWEEK.BINARY.CAST.COALESCE.CONVERT.GREATEST.IF.IFNULL.INTERVAL.ISNULL.LEAST.NULLIF.AVG.BIT_AND.BIT_OR.BIT_XOR.COUNT.GROUP_CONCAT.JSON_ARRAYAGG.JSON_OBJECTAGG.MAX.MIN.STD.STDDEV.STDDEV_POP.STDDEV_SAMP.SUM.VAR_POP.VAR_SAMP.VARIANCE.CUME_DIST.DENSE_RANK.FIRST_VALUE.LAG.LAST_VALUE.LEAD.NTH_VALUE.NTILE.PERCENT_RANK.RANK.ROW_NUMBER.JSON_ARRAY.JSON_ARRAY_APPEND.JSON_ARRAY_INSERT.JSON_CONTAINS.JSON_CONTAINS_PATH.JSON_DEPTH.JSON_EXTRACT.JSON_INSERT.JSON_KEYS.JSON_LENGTH.JSON_MERGE_PATCH.JSON_MERGE_PRESERVE.JSON_OBJECT.JSON_OVERLAPS.JSON_PRETTY.JSON_QUOTE.JSON_REMOVE.JSON_REPLACE.JSON_SCHEMA_VALID.JSON_SCHEMA_VALIDATION_REPORT.JSON_SEARCH.JSON_SET.JSON_STORAGE_FREE.JSON_STORAGE_SIZE.JSON_TABLE.JSON_TYPE.JSON_UNQUOTE.JSON_VALID.JSON_VALUE.AES_DECRYPT.AES_ENCRYPT.COMPRESS.MD5.RANDOM_BYTES.SHA.SHA1.SHA2.STATEMENT_DIGEST.STATEMENT_DIGEST_TEXT.UNCOMPRESS.UNCOMPRESSED_LENGTH.VALIDATE_PASSWORD_STRENGTH.BENCHMARK.CHARSET.COERCIBILITY.COLLATION.CONNECTION_ID.CURRENT_ROLE.CURRENT_USER.DATABASE.FOUND_ROWS.ICU_VERSION.LAST_INSERT_ID.ROLES_GRAPHML.ROW_COUNT.SCHEMA.SESSION_USER.SYSTEM_USER.USER.VERSION.ANY_VALUE.BIN_TO_UUID.DEFAULT.FORMAT_BYTES.FORMAT_PICO_TIME.GET_LOCK.GROUPING.GTID_SUBSET.GTID_SUBTRACT.INET_ATON.INET_NTOA.INET6_ATON.INET6_NTOA.IS_FREE_LOCK.IS_IPV4.IS_IPV4_COMPAT.IS_IPV4_MAPPED.IS_IPV6.IS_USED_LOCK.IS_UUID.NAME_CONST.PS_CURRENT_THREAD_ID.PS_THREAD_ID.RELEASE_ALL_LOCKS.RELEASE_LOCK.SLEEP.SOURCE_POS_WAIT.UUID.UUID_SHORT.UUID_TO_BIN.VALUES.WAIT_FOR_EXECUTED_GTID_SET.EXTRACTVALUE.UPDATEXML.GEOMETRYCOLLECTION.LINESTRING.MULTILINESTRING.MULTIPOINT.MULTIPOLYGON.POINT.POLYGON.MBRCONTAINS.MBRCOVEREDBY.MBRCOVERS.MBRDISJOINT.MBREQUALS.MBRINTERSECTS.MBROVERLAPS.MBRTOUCHES.MBRWITHIN.ST_AREA.ST_ASBINARY.ST_ASGEOJSON.ST_ASTEXT.ST_BUFFER.ST_CENTROID.ST_CONTAINS.ST_CROSSES.ST_DIFFERENCE.ST_DIMENSION.ST_DISJOINT.ST_DISTANCE.ST_DISTANCE_SPHERE.ST_ENDPOINT.ST_ENVELOPE.ST_EQUALS.ST_EXTERIORRING.ST_GEOHASH.ST_GEOMCOLLFROMTEXT.ST_GEOMETRYN.ST_GEOMETRYTYPE.ST_GEOMFROMGEOJSON.ST_GEOMFROMTEXT.ST_GEOMFROMWKB.ST_INTERIORRINGN.ST_INTERSECTION.ST_INTERSECTS.ST_ISCLOSED.ST_ISEMPTY.ST_ISSIMPLE.ST_ISVALID.ST_LATITUDE.ST_LENGTH.ST_LINEFROMTEXT.ST_LONGITUDE.ST_MAKEENVELOPE.ST_NUMGEOMETRIES.ST_NUMINTERIORRING.ST_NUMPOINTS.ST_OVERLAPS.ST_POINTFROMTEXT.ST_POINTN.ST_POLYFROMTEXT.ST_SIMPLIFY.ST_SRID.ST_STARTPOINT.ST_SWAPXY.ST_SYMDIFFERENCE.ST_TOUCHES.ST_TRANSFORM.ST_UNION.ST_VALIDATE.ST_WITHIN.ST_X.ST_Y`.split(`.`),Xe=`ACCESSIBLE.ADD.ALL.ALTER.ANALYZE.AND.AS.ASC.ASENSITIVE.BEFORE.BETWEEN.BIGINT.BINARY.BLOB.BOTH.BY.CALL.CASCADE.CASE.CHANGE.CHAR.CHARACTER.CHECK.COLLATE.COLUMN.CONDITION.CONSTRAINT.CONTINUE.CONVERT.CREATE.CROSS.CUBE.CUME_DIST.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.CURRENT_USER.CURSOR.DATABASE.DATABASES.DAY_HOUR.DAY_MICROSECOND.DAY_MINUTE.DAY_SECOND.DEC.DECIMAL.DECLARE.DEFAULT.DELAYED.DELETE.DENSE_RANK.DESC.DESCRIBE.DETERMINISTIC.DISTINCT.DISTINCTROW.DIV.DOUBLE.DROP.DUAL.EACH.ELSE.ELSEIF.EMPTY.ENCLOSED.ESCAPED.EXCEPT.EXISTS.EXIT.EXPLAIN.FALSE.FETCH.FIRST_VALUE.FLOAT.FLOAT4.FLOAT8.FOR.FORCE.FOREIGN.FROM.FULLTEXT.FUNCTION.GENERATED.GET.GRANT.GROUP.GROUPING.GROUPS.HAVING.HIGH_PRIORITY.HOUR_MICROSECOND.HOUR_MINUTE.HOUR_SECOND.IF.IGNORE.IN.INDEX.INFILE.INNER.INOUT.INSENSITIVE.INSERT.INT.INT1.INT2.INT3.INT4.INT8.INTEGER.INTERSECT.INTERVAL.INTO.IO_AFTER_GTIDS.IO_BEFORE_GTIDS.IS.ITERATE.JOIN.JSON_TABLE.KEY.KEYS.KILL.LAG.LAST_VALUE.LATERAL.LEAD.LEADING.LEAVE.LEFT.LIKE.LIMIT.LINEAR.LINES.LOAD.LOCALTIME.LOCALTIMESTAMP.LOCK.LONG.LONGBLOB.LONGTEXT.LOOP.LOW_PRIORITY.MASTER_SSL_VERIFY_SERVER_CERT.MATCH.MAXVALUE.MEDIUMBLOB.MEDIUMINT.MEDIUMTEXT.MIDDLEINT.MINUTE_MICROSECOND.MINUTE_SECOND.MOD.MODIFIES.NATURAL.NOT.NO_WRITE_TO_BINLOG.NTH_VALUE.NTILE.NULL.NUMERIC.OF.ON.OPTIMIZE.OPTIMIZER_COSTS.OPTION.OPTIONALLY.OR.ORDER.OUT.OUTER.OUTFILE.OVER.PARTITION.PERCENT_RANK.PRECISION.PRIMARY.PROCEDURE.PURGE.RANGE.RANK.READ.READS.READ_WRITE.REAL.RECURSIVE.REFERENCES.REGEXP.RELEASE.RENAME.REPEAT.REPLACE.REQUIRE.RESIGNAL.RESTRICT.RETURN.REVOKE.RIGHT.RLIKE.ROW.ROWS.ROW_NUMBER.SCHEMA.SCHEMAS.SECOND_MICROSECOND.SELECT.SENSITIVE.SEPARATOR.SET.SHOW.SIGNAL.SMALLINT.SPATIAL.SPECIFIC.SQL.SQLEXCEPTION.SQLSTATE.SQLWARNING.SQL_BIG_RESULT.SQL_CALC_FOUND_ROWS.SQL_SMALL_RESULT.SSL.STARTING.STORED.STRAIGHT_JOIN.SYSTEM.TABLE.TERMINATED.THEN.TINYBLOB.TINYINT.TINYTEXT.TO.TRAILING.TRIGGER.TRUE.UNDO.UNION.UNIQUE.UNLOCK.UNSIGNED.UPDATE.USAGE.USE.USING.UTC_DATE.UTC_TIME.UTC_TIMESTAMP.VALUES.VARBINARY.VARCHAR.VARCHARACTER.VARYING.VIRTUAL.WHEN.WHERE.WHILE.WINDOW.WITH.WRITE.XOR.YEAR_MONTH.ZEROFILL`.split(`.`),Ze=`AUTO_INCREMENT.BEGIN.CHARSET.COMMENT.COMMIT.DO.END.ENGINE.EVENT.FIRST.FOLLOWING.IF EXISTS.IF NOT EXISTS.INVISIBLE.LAST.NULLS.OFFSET.PRECEDING.ROLLBACK.SAVEPOINT.START TRANSACTION.TEMPORARY.TRANSACTION.TRUNCATE.UNBOUNDED.VIEW.VISIBLE.CROSS JOIN.GROUP BY.INNER JOIN.INSERT INTO.LEFT JOIN.ON DUPLICATE KEY UPDATE.ORDER BY.PARTITION BY.RIGHT JOIN.UNION ALL`.split(`.`),Qe=`tinyint.smallint.mediumint.int.integer.bigint.decimal.numeric.float.double.bit.bool.boolean.date.datetime.timestamp.time.year.char.varchar.binary.varbinary.tinyblob.blob.mediumblob.longblob.tinytext.text.mediumtext.longtext.enum.set.json.geometry.point.linestring.polygon.multipoint.multilinestring.multipolygon.geometrycollection`.split(`.`),$e={hashComments:!0,dashCommentNeedsSpace:!0,backslashEscapes:!0,doubleQuoteIsIdentifier:!1,bracketIdentifiers:!1,delimiterCommand:!0,dollarQuotes:!1,goBatchSeparator:!1,limitStyle:`limit`,plsqlBlocks:!1};function et(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...i(e,{addColumn:`ADD COLUMN`,modify:`mysql`,qualifiedIndexNames:!1,dropIndexOnTable:!0,unqualifiedIndexTarget:!1,multiRowInsert:!0,mysqlAttributes:!0,fulltext:!0,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=e.columns.map(e=>{let r=` ${t(x(e.name,`column`))} ${e.type.toUpperCase()}`;return e.length&&(r+=`(${e.length})`),e.unsigned&&(r+=` UNSIGNED`),e.zerofill&&(r+=` ZEROFILL`),e.notNull&&(r+=` NOT NULL`),e.autoIncrement&&(r+=` AUTO_INCREMENT`),e.defaultValue&&(r+=` DEFAULT ${e.defaultValue}`),e.comment&&(r+=` COMMENT ${n(e.comment)}`),r}),a=e.columns.filter(e=>e.primaryKey).map(e=>t(e.name));a.length>0&&i.push(` PRIMARY KEY (${a.join(`, `)})`);for(let n of e.indexes){if(n.type===`PRIMARY`)continue;let e=n.columns.map(t).join(`, `),r=n.type===`UNIQUE`?`UNIQUE KEY`:n.type===`FULLTEXT`?`FULLTEXT KEY`:`KEY`;i.push(` ${r} ${t(n.name)} (${e})`)}let o=[];return e.options.engine&&o.push(`ENGINE=${e.options.engine}`),e.options.charset&&o.push(`DEFAULT CHARSET=${e.options.charset}`),e.options.collation&&o.push(`COLLATE=${e.options.collation}`),e.options.autoIncrement&&o.push(`AUTO_INCREMENT=${e.options.autoIncrement}`),e.options.comment&&o.push(`COMMENT=${n(e.options.comment)}`),`CREATE TABLE ${r(e.database,x(e.name,`untitled`))} (\n${i.join(`,
105
- `)}\n)${o.length?` `+o.join(` `):``};`}}}var tt={id:`mysql`,label:`MySQL`,capabilities:{multipleDatabases:!0,schemas:!1,users:!0,procedures:!0,functions:!0,triggers:!0,events:!0,processList:!0,variables:!0,status:!0,flush:!0,tableProperties:!0,implicitCommitDdl:!0,transactions:!0},explain:Me,introspect:qe,ddl:et,identifierQuote:"`",defaultPort:3306,queries:Je,syntax:$e,dataTypes:Qe,functions:Ye,reservedWords:[...Xe,...Ze]},F=S(tt),nt=new Set(`REGEXP_LIKE.JSON_SCHEMA_VALIDATION_REPORT.JSON_STORAGE_FREE.JSON_STORAGE_SIZE.STATEMENT_DIGEST.STATEMENT_DIGEST_TEXT.VALIDATE_PASSWORD_STRENGTH.ICU_VERSION.ROLES_GRAPHML.ANY_VALUE.BIN_TO_UUID.UUID_TO_BIN.IS_UUID.GROUPING.FORMAT_BYTES.FORMAT_PICO_TIME.PS_CURRENT_THREAD_ID.PS_THREAD_ID.SOURCE_POS_WAIT.WAIT_FOR_EXECUTED_GTID_SET.ST_GEOHASH.ST_LATITUDE.ST_LONGITUDE.ST_MAKEENVELOPE.ST_SIMPLIFY.ST_TRANSFORM.ST_VALIDATE.ST_SWAPXY.CUBE.CUME_DIST.DENSE_RANK.EMPTY.FIRST_VALUE.GENERATED.GET.GROUPS.IO_AFTER_GTIDS.IO_BEFORE_GTIDS.JSON_TABLE.LAG.LAST_VALUE.LATERAL.LEAD.NTH_VALUE.NTILE.OF.OPTIMIZER_COSTS.PERCENT_RANK.RANK.STORED.SYSTEM.VIRTUAL`.split(`.`)),rt=`ADD_MONTHS.BINLOG_GTID_POS.COLUMN_ADD.COLUMN_CHECK.COLUMN_CREATE.COLUMN_DELETE.COLUMN_EXISTS.COLUMN_GET.COLUMN_JSON.COLUMN_LIST.CRC32C.DECODE.DECODE_ORACLE.DES_DECRYPT.DES_ENCRYPT.ENCODE.ENCRYPT.JSON_ARRAY_INTERSECT.JSON_COMPACT.JSON_DETAILED.JSON_EQUALS.JSON_EXISTS.JSON_KEY_VALUE.JSON_LOOSE.JSON_NORMALIZE.JSON_OBJECT_FILTER_KEYS.JSON_OBJECT_TO_ARRAY.JSON_QUERY.KDF.LASTVAL.MASTER_GTID_WAIT.MASTER_POS_WAIT.MEDIAN.NATURAL_SORT_KEY.NEXTVAL.NVL.NVL2.OLD_PASSWORD.PASSWORD.PERCENTILE_CONT.PERCENTILE_DISC.ROWNUM.SETVAL.SFORMAT.SYS_GUID.TO_CHAR.TRIM_ORACLE.VALUE`.split(`.`),it=[`DELETE_DOMAIN_ID`,`DO_DOMAIN_IDS`,`IGNORE_DOMAIN_IDS`,`IGNORE_SERVER_IDS`,`MASTER_HEARTBEAT_PERIOD`,`OFFSET`,`PAGE_CHECKSUM`,`PARSE_VCOL_EXPR`,`POSITION`,`REF_SYSTEM_ID`,`RETURNING`,`SLOW`,`STATS_AUTO_RECALC`,`STATS_PERSISTENT`,`STATS_SAMPLE_PAGES`,`SEQUENCE`,`SYSTEM_TIME`,`SYSTEM_VERSIONING`,`WITHOUT`],at=e=>e.filter(e=>!nt.has(e)),ot=e=>[...new Set(e)],st=S({...tt,id:`maria`,label:`MariaDB`,explain:Ne,dataTypes:[...Qe,`inet4`,`inet6`,`uuid`],functions:ot([...at(Ye),...rt]).sort(),reservedWords:ot([...at(Xe),...it,...Ze])}),I=e=>`"${e.replaceAll(`"`,`""`)}"`,ct=(e,t)=>`${I(e)}.${I(t)}`,L=e=>`'${e.replace(/'/g,`''`)}'`,lt=`n.nspname NOT LIKE 'pg\\_%' AND n.nspname <> 'information_schema'`;async function ut(e,t,n){return(await e(`SELECT c.relname FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace
106
- WHERE n.nspname = ${L(t)} AND c.relkind IN (${n.map(L).join(`, `)}) ORDER BY c.relname`)).records.map(e=>v(e[0]))}async function dt(e,t,n){return(await e(`SELECT DISTINCT p.proname FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace
107
- WHERE n.nspname = ${L(t)} AND p.prokind = ${L(n)} ORDER BY p.proname`)).records.map(e=>v(e[0]))}async function R(e,t,n){return _(await e(`SELECT c.relname AS table_name, a.attname AS name,
108
- format_type(a.atttypid, a.atttypmod) AS type,
109
- NOT a.attnotnull AS nullable,
110
- pg_get_expr(d.adbin, d.adrelid) AS default_value,
111
- a.attidentity <> '' AS identity,
112
- col_description(a.attrelid, a.attnum) AS comment,
113
- CASE WHEN a.attcollation <> t.typcollation THEN co.collname END AS collation
114
- FROM pg_attribute a
115
- JOIN pg_class c ON c.oid = a.attrelid
116
- JOIN pg_namespace n ON n.oid = c.relnamespace
117
- JOIN pg_type t ON t.oid = a.atttypid
118
- LEFT JOIN pg_attrdef d ON d.adrelid = a.attrelid AND d.adnum = a.attnum
119
- LEFT JOIN pg_collation co ON co.oid = a.attcollation
120
- WHERE n.nspname = ${L(t)} AND c.relkind IN ('r', 'p', 'v', 'm', 'f')
121
- AND a.attnum > 0 AND NOT a.attisdropped${n?` AND c.relname = ${L(n)}`:``}
122
- ORDER BY c.relname, a.attnum`)).map(e=>({table:v(e.table_name),name:v(e.name),type:v(e.type),nullable:e.nullable===!0||e.nullable===`t`,defaultValue:y(e.default_value),identity:e.identity===!0||e.identity===`t`,comment:v(e.comment),collation:y(e.collation)}))}async function z(e,t,n){return _(await e(`SELECT t.relname AS table_name, i.relname AS name, ix.indisprimary AS is_primary, ix.indisunique AS is_unique,
123
- array_to_string(ARRAY(
124
- SELECT COALESCE(a.attname, '<expr>')
125
- FROM unnest(ix.indkey) WITH ORDINALITY AS k(attnum, ord)
126
- LEFT JOIN pg_attribute a ON a.attrelid = t.oid AND a.attnum = k.attnum
127
- ORDER BY k.ord
128
- ), E'\\n') AS columns
129
- FROM pg_index ix
130
- JOIN pg_class t ON t.oid = ix.indrelid
131
- JOIN pg_class i ON i.oid = ix.indexrelid
132
- JOIN pg_namespace n ON n.oid = t.relnamespace
133
- WHERE n.nspname = ${L(t)}${n?` AND t.relname = ${L(n)}`:``}
134
- ORDER BY t.relname, ix.indisprimary DESC, i.relname`)).map(e=>({table:v(e.table_name),name:v(e.name),primary:e.is_primary===!0||e.is_primary===`t`,unique:e.is_unique===!0||e.is_unique===`t`,columns:v(e.columns).split(`
135
- `).filter(Boolean)}))}function ft(e){return{name:e.primary?`PRIMARY`:e.name,type:e.primary?`PRIMARY`:e.unique?`UNIQUE`:`INDEX`,columns:e.columns}}function pt(e,t){let n=new Set,r=new Set,i=new Set;for(let e of t)e.primary?e.columns.forEach(e=>n.add(e)):e.unique&&e.columns.length===1?r.add(e.columns[0]):e.columns.length>0&&i.add(e.columns[0]);return e.map(e=>({name:e.name,type:e.type,nullable:e.nullable,key:n.has(e.name)?`PRI`:r.has(e.name)?`UNI`:i.has(e.name)?`MUL`:``,defaultValue:e.defaultValue,extra:e.identity||/^nextval\(/i.test(e.defaultValue??``)?`auto_increment`:``,comment:e.comment,collation:e.collation}))}function B(e){let t=new Map;for(let n of e){let e=t.get(n.table);e?e.push(n):t.set(n.table,[n])}return t}async function mt(e,t,n){return _(await e(`SELECT c.relname AS name, c.reltuples AS rows, obj_description(c.oid, 'pg_class') AS comment,
136
- pg_total_relation_size(c.oid) AS data_length
137
- FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace
138
- WHERE n.nspname = ${L(t)} AND c.relkind IN ('r', 'p')${n?` AND c.relname = ${L(n)}`:``}
139
- ORDER BY c.relname`)).map(e=>{let t=b(e.rows);return{name:v(e.name),engine:null,rows:t!==null&&t>=0?Math.round(t):null,collation:null,autoIncrement:null,comment:v(e.comment),createTime:null,updateTime:null,dataLength:b(e.data_length)}})}async function ht(e,t,n){let r=await R(e,t,n);if(r.length===0)return null;let i=_(await e(`SELECT con.conname AS name, con.contype AS type, pg_get_constraintdef(con.oid, true) AS def
140
- FROM pg_constraint con
141
- JOIN pg_class c ON c.oid = con.conrelid
142
- JOIN pg_namespace n ON n.oid = c.relnamespace
143
- WHERE n.nspname = ${L(t)} AND c.relname = ${L(n)} ORDER BY con.contype, con.conname`)),a=ct(t,n),o=r.map(e=>{let t=` ${I(e.name)} ${e.type}`;return e.identity?t+=` GENERATED BY DEFAULT AS IDENTITY`:e.defaultValue&&(t+=` DEFAULT ${e.defaultValue}`),e.nullable||(t+=` NOT NULL`),e.collation&&(t+=` COLLATE ${I(e.collation)}`),t});for(let e of i)v(e.type)!==`n`&&o.push(` CONSTRAINT ${I(v(e.name))} ${v(e.def)}`);let s=[`CREATE TABLE ${a} (\n${o.join(`,
144
- `)}\n);`],c=new Set(i.map(e=>v(e.name))),l=_(await e(`SELECT indexname, indexdef FROM pg_indexes WHERE schemaname = ${L(t)} AND tablename = ${L(n)} ORDER BY indexname`));for(let e of l)c.has(v(e.indexname))||s.push(`${v(e.indexdef)};`);let u=v((await mt(e,t,n))[0]?.comment);u&&s.push(`COMMENT ON TABLE ${a} IS ${L(u)};`);for(let e of r)e.comment&&s.push(`COMMENT ON COLUMN ${a}.${I(e.name)} IS ${L(e.comment)};`);return s.join(`
145
- `)}async function gt(e,t,n,r){return y((await e(`SELECT pg_get_functiondef(p.oid) FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace
146
- WHERE n.nspname = ${L(t)} AND p.proname = ${L(n)} AND p.prokind = ${L(r)} ORDER BY p.oid LIMIT 1`)).records[0]?.[0])}async function _t(e,t){return(await e(`SELECT t.tgname, c.relname FROM pg_trigger t
147
- JOIN pg_class c ON c.oid = t.tgrelid JOIN pg_namespace n ON n.oid = c.relnamespace
148
- WHERE n.nspname = ${L(t)} AND NOT t.tgisinternal ORDER BY c.relname, t.tgname`)).records.map(e=>({name:v(e[0]),table:v(e[1])}))}var vt={TABLE:[`r`,`p`,`f`],VIEW:[`v`,`m`]},yt={async listCatalogs(e){return(await e(`SELECT datname FROM pg_database WHERE NOT datistemplate ORDER BY datname`)).records.map(e=>v(e[0]))},async currentCatalog(e){return v((await e(`SELECT current_database()`)).records[0]?.[0])},async listDatabases(e){return(await e(`SELECT n.nspname FROM pg_namespace n WHERE ${lt} ORDER BY (n.nspname <> 'public'), n.nspname`)).records.map(e=>v(e[0]))},listTables:(e,t)=>mt(e,t),listViews:(e,t)=>ut(e,t,vt.VIEW),listProcedures:(e,t)=>dt(e,t,`p`),listFunctions:(e,t)=>dt(e,t,`f`),async listTriggers(e,t){return(await _t(e,t)).map(e=>e.name)},listTriggerDetails:_t,listEvents:async()=>[],async listColumns(e,t,n){let[r,i]=await Promise.all([R(e,t,n),z(e,t,n)]);return pt(r,i)},async listIndexes(e,t,n){return(await z(e,t,n)).map(ft)},async listAllColumns(e,t){let[n,r]=await Promise.all([R(e,t),z(e,t)]),i=B(r),a=new Map;for(let[e,t]of B(n))a.set(e,pt(t,i.get(e)??[]));return a},async listAllIndexes(e,t){let n=new Map;for(let[r,i]of B(await z(e,t)))n.set(r,i.map(ft));return n},async listForeignKeys(e,t){return(await e(`SELECT con.conname, c.relname, a.attname, rc.relname AS ref_table, ra.attname AS ref_column
149
- FROM pg_constraint con
150
- JOIN pg_class c ON c.oid = con.conrelid
151
- JOIN pg_namespace n ON n.oid = c.relnamespace
152
- JOIN pg_class rc ON rc.oid = con.confrelid
153
- JOIN unnest(con.conkey, con.confkey) WITH ORDINALITY AS k(attnum, ref_attnum, ord) ON true
154
- JOIN pg_attribute a ON a.attrelid = con.conrelid AND a.attnum = k.attnum
155
- JOIN pg_attribute ra ON ra.attrelid = con.confrelid AND ra.attnum = k.ref_attnum
156
- WHERE con.contype = 'f' AND n.nspname = ${L(t)}
157
- ORDER BY c.relname, con.conname, k.ord`)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){return(await mt(e,t,n))[0]??null},async getPrimaryKeys(e,t,n){return(await z(e,t,n)).find(e=>e.primary)?.columns??[]},async getCreateStatement(e,t,n,r){switch(n){case`TABLE`:return ht(e,t,r);case`VIEW`:{let n=(await e(`SELECT c.relkind, pg_get_viewdef(c.oid, true) FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace
158
- WHERE n.nspname = ${L(t)} AND c.relname = ${L(r)} AND c.relkind IN ('v', 'm')`)).records[0];return n?`CREATE ${v(n[0])===`m`?`MATERIALIZED VIEW`:`VIEW`} ${ct(t,r)} AS\n${v(n[1])}`:null}case`PROCEDURE`:return gt(e,t,r,`p`);case`FUNCTION`:return gt(e,t,r,`f`);case`TRIGGER`:return y((await e(`SELECT pg_get_triggerdef(t.oid, true) FROM pg_trigger t
159
- JOIN pg_class c ON c.oid = t.tgrelid JOIN pg_namespace n ON n.oid = c.relnamespace
160
- WHERE n.nspname = ${L(t)} AND t.tgname = ${L(r)} AND NOT t.tgisinternal LIMIT 1`)).records[0]?.[0]);default:return null}}},bt={async loadRoot({engine:t,run:n,database:r}){let i=t.introspect.listCatalogs?await t.introspect.listCatalogs(n):[],a=r||(t.introspect.currentCatalog?await t.introspect.currentCatalog(n):``);return a&&!i.includes(a)&&i.unshift(a),i.map(t=>{let n=t===a;return o(null,e.DATABASE,t,!n,{catalog:t,unreachable:!n})})},async loadChildren(t,n){switch(n.type){case e.DATABASE:return n.metadata?.unreachable?[]:(await t.engine.introspect.listDatabases(t.run)).map(t=>o(n.id,e.SCHEMA,t,!1,{database:t,catalog:n.text}));case e.SCHEMA:return f(t.engine,n.id,{database:n.text,catalog:n.metadata?.catalog});default:return await m(t,n)??[]}},objectPath(e,t,n,r){let[i,a]=this.namespacePath(e,r);return[i,...h(a,t,n)]},namespacePath(t,n){let r=a(null,e.DATABASE,n??``);return[r,a(r,e.SCHEMA,t)]}},xt={SELECT_COUNT:`SELECT COUNT(1) AS cnt FROM "{0}"."{1}"`,SHOW_FULL_FIELDS:`SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_schema = '{0}' AND table_name = '{1}' ORDER BY ordinal_position`,SHOW_COLUMNS:`SELECT column_name, data_type, is_nullable, column_default FROM information_schema.columns WHERE table_schema = '{0}' AND table_name = '{1}' ORDER BY ordinal_position`,SHOW_DATABASE_VIEWS:`SELECT table_name FROM information_schema.views WHERE table_schema = '{0}' ORDER BY table_name`,SHOW_DATABASE_TABLES:`SELECT table_name FROM information_schema.tables WHERE table_schema = '{0}' AND table_type = 'BASE TABLE' ORDER BY table_name`,SHOW_DATABASE:`SELECT current_schema()`,SHOW_DATABASES:`SELECT nspname FROM pg_namespace WHERE nspname NOT LIKE 'pg\\_%' AND nspname <> 'information_schema' ORDER BY nspname`,ADD_INDEX:`CREATE {3} INDEX "{2}" ON "{0}"."{1}" ({4})`,SHOW_INDEXES:`SELECT indexname, indexdef FROM pg_indexes WHERE schemaname = '{0}' AND tablename = '{1}' ORDER BY indexname`,DROP_INDEX:`DROP INDEX "{0}"."{2}"`,DROP_PROCEDURE:`DROP PROCEDURE {2} "{0}"."{1}"`,DROP_FUNCTION:`DROP FUNCTION {2} "{0}"."{1}"`,DROP_TRIGGER:`DROP TRIGGER {2} "{1}" ON "{0}"."{3}"`,DROP_VIEW:`DROP VIEW {2} "{0}"."{1}"`,SHOW_PROCEDURES:`SELECT p.proname FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace WHERE n.nspname = '{0}' AND p.prokind = 'p' ORDER BY 1`,SHOW_FUNCTIONS:`SELECT p.proname FROM pg_proc p JOIN pg_namespace n ON n.oid = p.pronamespace WHERE n.nspname = '{0}' AND p.prokind = 'f' ORDER BY 1`,SHOW_TRIGGERS:`SELECT t.tgname, c.relname FROM pg_trigger t JOIN pg_class c ON c.oid = t.tgrelid JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = '{0}' AND NOT t.tgisinternal ORDER BY 1`,SHOW_VIEWS:`SELECT table_name AS "View_name", view_definition AS "View_definition" FROM information_schema.views WHERE table_schema = '{0}' ORDER BY table_name`,SHOW_ALL_TABLE_STATUS:`SELECT c.relname AS "Name", c.reltuples::bigint AS "Rows", obj_description(c.oid, 'pg_class') AS "Comment" FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = '{0}' AND c.relkind IN ('r', 'p') ORDER BY 1`,SHOW_TABLE_STATUS:`SELECT c.relname AS "Name", c.reltuples::bigint AS "Rows", obj_description(c.oid, 'pg_class') AS "Comment" FROM pg_class c JOIN pg_namespace n ON n.oid = c.relnamespace WHERE n.nspname = '{0}' AND c.relname = '{1}'`,INSERT_TABLE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3});`,INSERT_TABLE_BULK:`INSERT INTO "{0}"."{1}" ({2}) VALUES {3};`,INSERT_DEFAULT_VALUES:`INSERT INTO "{0}"."{1}" DEFAULT VALUES;`,UPDATE_TABLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3};`,UPDATE_TABLE_SINGLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3}`,START_TRANSACTION:`BEGIN`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM "{0}"."{1}" WHERE {2};`,SELECT_TABLE:`SELECT {2} FROM "{0}"."{1}" {3};`,TRUNCATE_TABLE:`TRUNCATE TABLE "{0}"."{1}"`,RENAME_TABLE:`ALTER TABLE "{0}"."{1}" RENAME TO "{3}"`,DROP_TABLE:`DROP TABLE {2} "{0}"."{1}"`,CREATE_PROCEDURE:`CREATE OR REPLACE PROCEDURE "{0}"."{1}"()
161
- LANGUAGE plpgsql
162
- AS $$
163
- BEGIN
164
-
165
- /* SQL Statements */
166
-
167
- END;
168
- $$;`,CREATE_FUNCTION:`CREATE OR REPLACE FUNCTION "{0}"."{1}"()
169
- RETURNS integer
170
- LANGUAGE plpgsql
171
- AS $$
172
- BEGIN
173
-
174
- /* SQL Statements */
175
- RETURN 0;
176
-
177
- END;
178
- $$;`,CREATE_TRIGGER:`CREATE TRIGGER "{1}"
179
- BEFORE
180
- -- AFTER
181
- INSERT
182
- -- UPDATE
183
- -- DELETE
184
- ON "{0}"."<Table Name>" FOR EACH ROW
185
- EXECUTE FUNCTION "{0}"."<trigger_function>"();`,CREATE_VIEW:`CREATE VIEW "{0}"."{1}" AS
186
- /* SQL SELECT Statement */`,CREATE_TABLE:`CREATE TABLE "{0}"."{1}" {2}`,ALTER_TABLE:`ALTER TABLE "{0}"."{1}" {2}`,ALTER_VIEW:`DROP VIEW IF EXISTS "{0}"."{1}";
187
- {2};`,ALTER_PROCEDURE:`{2}`,ALTER_FUNCTION:`{2}`,ALTER_TRIGGER:`DROP TRIGGER IF EXISTS "{1}" ON "{0}"."{3}";
188
- {2};`,SHOW_PROCESS_LIST:`SELECT pid AS "Id", usename AS "User", COALESCE(client_addr::text, 'local') AS "Host", datname AS "db", COALESCE(state, '') AS "Command", COALESCE(EXTRACT(EPOCH FROM (now() - query_start))::bigint, 0) AS "Time", COALESCE(wait_event_type || ': ' || wait_event, '') AS "State", query AS "Info" FROM pg_stat_activity WHERE backend_type = 'client backend' ORDER BY pid`,KILL_QUERY:`SELECT pg_terminate_backend({0})`,SHOW_VARIABLES:`SELECT name AS "Variable_name", setting AS "Value" FROM pg_settings ORDER BY name`,SHOW_GLOBAL_VARIABLES:`SELECT name AS "Variable_name", COALESCE(reset_val, setting) AS "Value" FROM pg_settings ORDER BY name`,SHOW_SESSION_VARIABLES:`SELECT name AS "Variable_name", setting AS "Value" FROM pg_settings ORDER BY name`,CREATE_SCHEMA:`CREATE SCHEMA "{0}"`,DROP_SCHEMA:`DROP SCHEMA "{0}" CASCADE`,COPY_TABLE_STRUCTURE:`CREATE TABLE "{2}"."{3}" (LIKE "{0}"."{1}" INCLUDING ALL)`,COPY_TABLE_DATA:`INSERT INTO "{2}"."{3}" SELECT * FROM "{0}"."{1}"`,DISABLE_FK_CHECKS:`SET session_replication_role = 'replica'`,ENABLE_FK_CHECKS:`SET session_replication_role = 'origin'`},St=`ASCII.BTRIM.CHAR_LENGTH.CHR.CONCAT.CONCAT_WS.FORMAT.INITCAP.LEFT.LENGTH.LOWER.LPAD.LTRIM.MD5.POSITION.QUOTE_IDENT.QUOTE_LITERAL.REGEXP_MATCHES.REGEXP_REPLACE.REGEXP_SPLIT_TO_ARRAY.REPEAT.REPLACE.REVERSE.RIGHT.RPAD.RTRIM.SPLIT_PART.STRING_AGG.STRING_TO_ARRAY.STRPOS.SUBSTR.SUBSTRING.TRANSLATE.TRIM.UPPER.ABS.CBRT.CEIL.CEILING.DIV.EXP.FLOOR.GCD.LCM.LN.LOG.LOG10.MOD.PI.POWER.RADIANS.RANDOM.ROUND.SIGN.SQRT.TRUNC.WIDTH_BUCKET.AGE.CLOCK_TIMESTAMP.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.DATE_PART.DATE_TRUNC.EXTRACT.ISFINITE.JUSTIFY_DAYS.JUSTIFY_HOURS.LOCALTIME.LOCALTIMESTAMP.MAKE_DATE.MAKE_INTERVAL.MAKE_TIMESTAMP.NOW.STATEMENT_TIMESTAMP.TO_CHAR.TO_DATE.TO_TIMESTAMP.ARRAY_AGG.AVG.BOOL_AND.BOOL_OR.COUNT.EVERY.JSON_AGG.JSONB_AGG.JSON_OBJECT_AGG.MAX.MIN.PERCENTILE_CONT.PERCENTILE_DISC.STDDEV.SUM.VARIANCE.ROW_NUMBER.RANK.DENSE_RANK.PERCENT_RANK.CUME_DIST.NTILE.LAG.LEAD.FIRST_VALUE.LAST_VALUE.NTH_VALUE.COALESCE.NULLIF.GREATEST.LEAST.CAST.GEN_RANDOM_UUID.CURRENT_USER.CURRENT_DATABASE.CURRENT_SCHEMA.PG_TYPEOF.VERSION.ARRAY_LENGTH.ARRAY_TO_STRING.ARRAY_APPEND.ARRAY_REMOVE.ARRAY_POSITION.CARDINALITY.UNNEST.JSON_BUILD_OBJECT.JSONB_BUILD_OBJECT.JSON_BUILD_ARRAY.JSONB_BUILD_ARRAY.JSON_EXTRACT_PATH.JSONB_EXTRACT_PATH.JSON_EXTRACT_PATH_TEXT.JSONB_EXTRACT_PATH_TEXT.JSONB_SET.JSONB_PRETTY.JSON_TYPEOF.JSONB_TYPEOF.JSON_ARRAY_LENGTH.JSONB_ARRAY_LENGTH.JSON_EACH.JSONB_EACH.TO_JSON.TO_JSONB.ROW_TO_JSON`.split(`.`),Ct=`ALL.ANALYSE.ANALYZE.AND.ANY.ARRAY.AS.ASC.ASYMMETRIC.BOTH.CASE.CAST.CHECK.COLLATE.COLUMN.CONSTRAINT.CREATE.CURRENT_CATALOG.CURRENT_DATE.CURRENT_ROLE.CURRENT_TIME.CURRENT_TIMESTAMP.CURRENT_USER.DEFAULT.DEFERRABLE.DESC.DISTINCT.DO.ELSE.END.EXCEPT.FALSE.FETCH.FOR.FOREIGN.FROM.GRANT.GROUP.GROUP BY.HAVING.IN.INITIALLY.INTERSECT.INTO.LATERAL.LEADING.LIMIT.LOCALTIME.LOCALTIMESTAMP.NOT.NULL.OFFSET.ON.ONLY.OR.ORDER.ORDER BY.PLACING.PRIMARY.REFERENCES.RETURNING.SELECT.SESSION_USER.SOME.SYMMETRIC.TABLE.THEN.TO.TRAILING.TRUE.UNION.UNIQUE.USER.USING.VARIADIC.WHEN.WHERE.WINDOW.WITH.ALTER.BEGIN.BETWEEN.BY.CASCADE.COMMENT.COMMIT.CROSS.DATABASE.DELETE.DROP.EXISTS.EXPLAIN.FULL.FUNCTION.IF.ILIKE.INDEX.INNER.INSERT.INSERT INTO.IS.JOIN.KEY.LEFT.LIKE.MATERIALIZED.NATURAL.OUTER.OVER.PARTITION.PROCEDURE.RECURSIVE.RETURNS.RIGHT.ROLLBACK.SCHEMA.SEQUENCE.SET.SHOW.TRIGGER.TRUNCATE.TYPE.UPDATE.VACUUM.VALUES.VIEW`.split(`.`),wt=`bigint.bigserial.bit.boolean.box.bytea.char.character.character varying.cidr.circle.date.decimal.double precision.inet.int.integer.interval.json.jsonb.line.macaddr.money.numeric.path.point.polygon.real.serial.smallint.smallserial.text.time.timestamp.timestamptz.timetz.tsquery.tsvector.uuid.varchar.xml`.split(`.`),Tt={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!1,delimiterCommand:!1,dollarQuotes:!0,goBatchSeparator:!1,limitStyle:`limit`,plsqlBlocks:!1};function Et(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...i(e,{addColumn:`ADD COLUMN`,modify:`postgres`,qualifiedIndexNames:!1,dropIndexOnTable:!1,unqualifiedIndexTarget:!1,multiRowInsert:!0,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=x(e.name,`untitled`),a=r(e.database,i),o=e.columns.filter(e=>e.primaryKey),s=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type}`;return e.length&&(n+=`(${e.length})`),e.autoIncrement&&(n+=` GENERATED BY DEFAULT AS IDENTITY`),e.notNull&&(n+=` NOT NULL`),e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),n});o.length>0&&s.push(` PRIMARY KEY (${o.map(e=>t(e.name)).join(`, `)})`);let c=[`CREATE TABLE ${a} (\n${s.join(`,
189
- `)}\n);`];for(let n of e.indexes){if(n.type===`PRIMARY`||n.columns.length===0)continue;let e=n.type===`UNIQUE`?`UNIQUE `:``,r=n.type===`FULLTEXT`?` -- FULLTEXT is MySQL-only; consider a GIN index on to_tsvector()`:``,o=t(x(n.name,`${i}_${n.columns.join(`_`)}_idx`));c.push(`CREATE ${e}INDEX ${o} ON ${a} (${n.columns.map(t).join(`, `)});${r}`)}e.options.comment&&c.push(`COMMENT ON TABLE ${a} IS ${n(e.options.comment)};`);for(let r of e.columns)r.comment&&c.push(`COMMENT ON COLUMN ${a}.${t(x(r.name,`column`))} IS ${n(r.comment)};`);return c.join(`
190
- `)}}}var Dt={id:`postgres`,label:`PostgreSQL`,capabilities:{multipleDatabases:!1,schemas:!0,users:!1,procedures:!0,functions:!0,triggers:!0,events:!1,processList:!0,variables:!0,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!0},ddl:Et,explain:ve,introspect:yt,tree:bt,defaultPort:5432,binaryLiteral:e=>`'\\x${e}'::bytea`,booleanKeywords:!0,identifierQuote:`"`,queries:xt,syntax:Tt,dataTypes:wt,functions:St,reservedWords:Ct},Ot=S(Dt),V=e=>`"${e.replaceAll(`"`,`""`)}"`,H=e=>`'${e.replace(/'/g,`''`)}'`,U=e=>`${V(e)}.sqlite_master`;async function W(e,t,n){return(await e(`SELECT name FROM ${U(t)} WHERE type = ${H(n)} AND name NOT LIKE 'sqlite_%' ORDER BY name`)).records.map(e=>v(e[0]))}async function G(e,t,n){return _(await e(`PRAGMA ${V(t)}.table_info(${V(n)})`)).map(e=>({cid:Number(e.cid),name:v(e.name),type:v(e.type),notnull:Number(e.notnull)===1,dflt_value:y(e.dflt_value),pk:Number(e.pk)}))}async function kt(e,t,n){return v((await e(`SELECT sql FROM ${U(t)} WHERE type = 'table' AND name = ${H(n)}`)).records[0]?.[0])}function At(e){return e.filter(e=>e.pk>0).sort((e,t)=>e.pk-t.pk).map(e=>e.name)}async function jt(e,t,n,r){let i=[],a=At(r);a.length>0&&i.push({name:`PRIMARY`,type:`PRIMARY`,columns:a});let o=_(await e(`PRAGMA ${V(t)}.index_list(${V(n)})`));for(let n of o){if(v(n.origin)===`pk`)continue;let r=v(n.name),a=_(await e(`PRAGMA ${V(t)}.index_info(${V(r)})`));i.push({name:r,type:Number(n.unique)===1?`UNIQUE`:`INDEX`,columns:a.sort((e,t)=>Number(e.seqno)-Number(t.seqno)).map(e=>v(e.name,`<expr>`))})}return i}async function Mt(e,t,n){let r=await G(e,t,n),i=await jt(e,t,n,r),a=await kt(e,t,n),o=At(r),s=/AUTOINCREMENT/i.test(a),c=new Set,l=new Set;for(let e of i)e.type!==`PRIMARY`&&(e.type===`UNIQUE`&&e.columns.length===1?c.add(e.columns[0]):l.add(e.columns[0]));return r.map(e=>{let t=o.length===1&&o[0]===e.name&&/^INTEGER$/i.test(e.type);return{name:e.name,type:e.type,nullable:!e.notnull&&e.pk===0,key:e.pk>0?`PRI`:c.has(e.name)?`UNI`:l.has(e.name)?`MUL`:``,defaultValue:e.dflt_value,extra:t&&s?`auto_increment`:``,comment:``,collation:null}})}var Nt={TABLE:`table`,VIEW:`view`,TRIGGER:`trigger`},Pt={async listDatabases(e){return _(await e(`PRAGMA database_list`)).map(e=>v(e.name)).filter(e=>e!==`temp`)},async listTables(e,t){return(await W(e,t,`table`)).map(e=>({name:e,engine:null,rows:null,collation:null,autoIncrement:null,comment:``,createTime:null,updateTime:null,dataLength:null}))},listViews:(e,t)=>W(e,t,`view`),listProcedures:async()=>[],listFunctions:async()=>[],listTriggers:(e,t)=>W(e,t,`trigger`),listEvents:async()=>[],listColumns:Mt,async listIndexes(e,t,n){return jt(e,t,n,await G(e,t,n))},async listAllColumns(e,t){let n=new Map;for(let r of await W(e,t,`table`))n.set(r,await Mt(e,t,r));return n},async listAllIndexes(e,t){let n=new Map;for(let r of await W(e,t,`table`))n.set(r,await jt(e,t,r,await G(e,t,r)));return n},async listForeignKeys(e,t){let n=[];for(let r of await W(e,t,`table`)){let i=_(await e(`PRAGMA ${V(t)}.foreign_key_list(${V(r)})`));for(let e of i)n.push({name:`fk_${r}_${e.id}`,table:r,column:v(e.from),refTable:v(e.table),refColumn:v(e.to)})}return n},async getTableInfo(e,t,n){return(await e(`SELECT 1 FROM ${U(t)} WHERE type = 'table' AND name = ${H(n)}`)).records.length===0?null:{name:n,engine:null,rows:b((await e(`SELECT COUNT(*) FROM ${V(t)}.${V(n)}`)).records[0]?.[0]),collation:null,autoIncrement:null,comment:``,createTime:null,updateTime:null,dataLength:null}},async getPrimaryKeys(e,t,n){return At(await G(e,t,n))},async getCreateStatement(e,t,n,r){let i=Nt[n];return i?y((await e(`SELECT sql FROM ${U(t)} WHERE type = ${H(i)} AND name = ${H(r)}`)).records[0]?.[0]):null}},Ft={SELECT_COUNT:`SELECT COUNT(1) as cnt FROM "{0}"."{1}"`,SHOW_FULL_FIELDS:`PRAGMA "{0}".table_info("{1}")`,SHOW_COLUMNS:`PRAGMA "{0}".table_info("{1}")`,SHOW_DATABASE_VIEWS:`SELECT name FROM "{0}".sqlite_master WHERE type = 'view' ORDER BY name`,SHOW_DATABASE_TABLES:`SELECT name FROM "{0}".sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name`,SHOW_DATABASE:`PRAGMA database_list`,SHOW_DATABASES:`PRAGMA database_list`,ADD_INDEX:`CREATE {3} INDEX "{0}"."{2}" ON "{1}"({4})`,SHOW_INDEX:`PRAGMA "{0}".index_info("{2}")`,SHOW_INDEXES:`PRAGMA "{0}".index_list("{1}")`,DROP_INDEX:`DROP INDEX "{0}"."{2}"`,DROP_TRIGGER:`DROP TRIGGER {2} "{0}"."{1}"`,DROP_VIEW:`DROP VIEW {2} "{0}"."{1}"`,SHOW_TRIGGERS:`SELECT name, tbl_name, sql FROM "{0}".sqlite_master WHERE type = 'trigger' ORDER BY name`,SHOW_VIEWS:`SELECT name AS View_name, sql AS View_definition FROM "{0}".sqlite_master WHERE type = 'view' ORDER BY name`,SHOW_ALL_TABLE_STATUS:`SELECT name, type FROM "{0}".sqlite_master WHERE type = 'table' AND name NOT LIKE 'sqlite_%' ORDER BY name`,SHOW_TABLE_STATUS:`SELECT name, type FROM "{0}".sqlite_master WHERE type = 'table' AND name = '{1}'`,INSERT_TABLE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3});`,INSERT_TABLE_BULK:`INSERT INTO "{0}"."{1}" ({2}) VALUES {3};`,INSERT_DEFAULT_VALUES:`INSERT INTO "{0}"."{1}" DEFAULT VALUES;`,INSERT_ON_DUPLICATE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3}) ON CONFLICT DO UPDATE SET {4}`,UPDATE_TABLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3};`,UPDATE_TABLE_SINGLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3}`,START_TRANSACTION:`BEGIN`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM "{0}"."{1}" WHERE {2};`,SELECT_TABLE:`SELECT {2} FROM "{0}"."{1}" {3};`,TRUNCATE_TABLE:`DELETE FROM "{0}"."{1}"`,RENAME_TABLE:`ALTER TABLE "{0}"."{1}" RENAME TO "{3}"`,DROP_TABLE:`DROP TABLE {2} "{0}"."{1}"`,TABLE_CREATE_INFO:`SELECT sql FROM "{0}".sqlite_master WHERE type = 'table' AND name = '{1}'`,TABLE_KEYS_INFO:`PRAGMA "{0}".index_list("{1}")`,INDEX_KEYS_INFO:`PRAGMA "{0}".index_info("{2}")`,CREATE_TRIGGER:`CREATE TRIGGER "{0}"."{1}"
191
- BEFORE
192
- -- AFTER
193
- INSERT
194
- -- UPDATE
195
- -- DELETE
196
- ON "<Table Name>" FOR EACH ROW
197
- BEGIN
198
-
199
- /* SQL Statements */
200
-
201
- END;`,CREATE_VIEW:`CREATE VIEW "{0}"."{1}" AS
202
- /* SQL SELECT Statement */`,SHOW_CREATE_TABLE:`SELECT sql FROM "{0}".sqlite_master WHERE type = 'table' AND name = '{1}'`,SHOW_CREATE_VIEW:`SELECT sql FROM "{0}".sqlite_master WHERE type = 'view' AND name = '{1}'`,SHOW_CREATE_TRIGGER:`SELECT sql FROM "{0}".sqlite_master WHERE type = 'trigger' AND name = '{1}'`,CREATE_TABLE:`CREATE TABLE "{0}"."{1}" {2}`,ALTER_TABLE:`ALTER TABLE "{0}"."{1}" {2}`,ALTER_VIEW:`DROP VIEW IF EXISTS "{0}"."{1}";
203
- {2};`,ALTER_TRIGGER:`DROP TRIGGER IF EXISTS "{0}"."{1}";
204
- {2};`,COPY_TABLE_STRUCTURE:`CREATE TABLE "{2}"."{3}" AS SELECT * FROM "{0}"."{1}" WHERE 0`,COPY_TABLE_DATA:`INSERT INTO "{2}"."{3}" SELECT * FROM "{0}"."{1}"`,DISABLE_FK_CHECKS:`PRAGMA foreign_keys = OFF`,ENABLE_FK_CHECKS:`PRAGMA foreign_keys = ON`},It=`ABS.CHANGES.CHAR.COALESCE.CONCAT.CONCAT_WS.FORMAT.GLOB.HEX.IFNULL.IIF.INSTR.LAST_INSERT_ROWID.LENGTH.LIKE.LIKELIHOOD.LIKELY.LOWER.LTRIM.MAX.MIN.NULLIF.OCTET_LENGTH.PRINTF.QUOTE.RANDOM.RANDOMBLOB.REPLACE.ROUND.RTRIM.SIGN.SOUNDEX.SQLITE_COMPILEOPTION_GET.SQLITE_COMPILEOPTION_USED.SQLITE_OFFSET.SQLITE_SOURCE_ID.SQLITE_VERSION.SUBSTR.SUBSTRING.TOTAL_CHANGES.TRIM.TYPEOF.UNHEX.UNICODE.UNLIKELY.UPPER.ZEROBLOB.DATE.TIME.DATETIME.JULIANDAY.UNIXEPOCH.STRFTIME.TIMEDIFF.AVG.COUNT.GROUP_CONCAT.STRING_AGG.SUM.TOTAL.ROW_NUMBER.RANK.DENSE_RANK.PERCENT_RANK.CUME_DIST.NTILE.LAG.LEAD.FIRST_VALUE.LAST_VALUE.NTH_VALUE.ACOS.ACOSH.ASIN.ASINH.ATAN.ATAN2.ATANH.CEIL.CEILING.COS.COSH.DEGREES.EXP.FLOOR.LN.LOG.LOG10.LOG2.MOD.PI.POW.POWER.RADIANS.SIN.SINH.SQRT.TAN.TANH.TRUNC.JSON.JSONB.JSON_ARRAY.JSON_ARRAY_LENGTH.JSON_EACH.JSON_ERROR_POSITION.JSON_EXTRACT.JSON_INSERT.JSON_OBJECT.JSON_PATCH.JSON_PRETTY.JSON_QUOTE.JSON_REMOVE.JSON_REPLACE.JSON_SET.JSON_TREE.JSON_TYPE.JSON_VALID.JSON_GROUP_ARRAY.JSON_GROUP_OBJECT`.split(`.`),Lt=`ABORT.ACTION.ADD.AFTER.ALL.ALTER.ALWAYS.ANALYZE.AND.AS.ASC.ATTACH.AUTOINCREMENT.BEFORE.BEGIN.BETWEEN.BY.CASCADE.CASE.CAST.CHECK.COLLATE.COLUMN.COMMIT.CONFLICT.CONSTRAINT.CREATE.CROSS.CURRENT.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.DATABASE.DEFAULT.DEFERRABLE.DEFERRED.DELETE.DESC.DETACH.DISTINCT.DO.DROP.EACH.ELSE.END.ESCAPE.EXCEPT.EXCLUDE.EXCLUSIVE.EXISTS.EXPLAIN.FAIL.FILTER.FIRST.FOLLOWING.FOR.FOREIGN.FROM.FULL.GENERATED.GLOB.GROUP BY.GROUP.GROUPS.HAVING.IF.IGNORE.IMMEDIATE.IN.INDEX.INDEXED.INITIALLY.INNER.INSERT INTO.INSERT.INSTEAD.INTERSECT.INTO.IS.ISNULL.JOIN.KEY.LAST.LEFT.LIKE.LIMIT.MATCH.MATERIALIZED.NATURAL.NO.NOT.NOTHING.NOTNULL.NULL.NULLS.OF.OFFSET.ON CONFLICT.ON.OR.ORDER BY.ORDER.OTHERS.OUTER.OVER.PARTITION.PLAN.PRAGMA.PRECEDING.PRIMARY.QUERY.RAISE.RANGE.RECURSIVE.REFERENCES.REGEXP.REINDEX.RELEASE.RENAME.REPLACE.RESTRICT.RETURNING.RIGHT.ROLLBACK.ROW.ROWS.SAVEPOINT.SELECT.SET.TABLE.TEMP.TEMPORARY.THEN.TIES.TO.TRANSACTION.TRIGGER.TRUE.FALSE.UNBOUNDED.UNION.UNIQUE.UPDATE.USING.VACUUM.VALUES.VIEW.VIRTUAL.WHEN.WHERE.WINDOW.WITH.WITHOUT`.split(`.`),Rt=[`integer`,`int`,`real`,`text`,`blob`,`numeric`,`boolean`,`varchar`,`char`,`double`,`float`,`bigint`,`smallint`,`tinyint`,`date`,`datetime`,`timestamp`,`decimal`,`json`],zt={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!0,delimiterCommand:!1,dollarQuotes:!1,goBatchSeparator:!1,limitStyle:`limit`,plsqlBlocks:!1};function Bt(e){let{quoteIdentifier:t,qualify:n}=e;return{...i(e,{addColumn:`ADD COLUMN`,modify:`none`,qualifiedIndexNames:!0,dropIndexOnTable:!1,unqualifiedIndexTarget:!0,multiRowInsert:!0,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let r=e.columns.filter(e=>e.primaryKey),i=r.length===1&&r[0].type.toUpperCase()===`INTEGER`,a=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type.toUpperCase()}`;return e.length&&!Vt(e,i)&&(n+=`(${e.length})`),Vt(e,i)&&(n+=` PRIMARY KEY`,e.autoIncrement&&(n+=` AUTOINCREMENT`)),e.notNull&&(n+=` NOT NULL`),e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),e.comment&&(n+=` /* ${e.comment.replaceAll(`*/`,`* /`)} */`),n});!i&&r.length>0&&a.push(` PRIMARY KEY (${r.map(e=>t(e.name)).join(`, `)})`);let o=x(e.name,`untitled`),s=[`CREATE TABLE ${n(e.database,o)} (\n${a.join(`,
205
- `)}\n);`];for(let r of e.indexes){if(r.type===`PRIMARY`||r.columns.length===0)continue;let i=r.type===`UNIQUE`?`UNIQUE `:``,a=r.type===`FULLTEXT`?` -- FULLTEXT is not supported by SQLite; created as a plain index`:``,c=/^sqlite_/i.test(r.name)?``:r.name,l=n(e.database,x(c,`${o}_${r.columns.join(`_`)}_idx`));s.push(`CREATE ${i}INDEX ${l} ON ${t(o)} (${r.columns.map(t).join(`, `)});${a}`)}return s.join(`
206
- `)}}}function Vt(e,t){return t&&e.primaryKey}var K={id:`sqlite`,label:`SQLite`,capabilities:{multipleDatabases:!1,schemas:!1,users:!1,procedures:!1,functions:!1,triggers:!0,events:!1,processList:!1,variables:!1,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!0},ddl:Bt,rowIdExpression:`rowid AS "_rowid_"`,explain:Ie,introspect:Pt,identifierQuote:`"`,queries:Ft,syntax:zt,dataTypes:Rt,functions:It,reservedWords:Lt},Ht=S(K),q=e=>`[${e.replaceAll(`]`,`]]`)}]`,Ut=(e,t)=>`${q(e)}.${q(t)}`,J=e=>`'${e.replace(/'/g,`''`)}'`,Wt=(e,t)=>`OBJECT_ID(${J(`${q(e)}.${q(t)}`)})`,Gt=`s.name NOT IN ('sys', 'INFORMATION_SCHEMA', 'guest') AND s.schema_id < 16384`;async function Y(e,t){return(await e(t)).records.map(e=>v(e[0]))}function Kt(e,t,n,r){let i=e.toLowerCase();return[`varchar`,`char`,`varbinary`,`binary`].includes(i)?`${i}(${t===-1?`max`:t})`:[`nvarchar`,`nchar`].includes(i)?`${i}(${t===-1?`max`:t/2})`:[`decimal`,`numeric`].includes(i)?`${i}(${n},${r})`:[`datetime2`,`time`,`datetimeoffset`].includes(i)?`${i}(${r})`:i}async function qt(e,t,n){return _(await e(`SELECT o.name AS table_name, c.name, ty.name AS type_name, c.max_length, c.precision, c.scale,
207
- c.is_nullable, d.definition AS default_value, c.is_identity, c.is_computed, c.collation_name,
208
- CAST(ep.value AS NVARCHAR(4000)) AS comment
209
- FROM sys.columns c
210
- JOIN sys.objects o ON o.object_id = c.object_id
211
- JOIN sys.schemas s ON s.schema_id = o.schema_id
212
- JOIN sys.types ty ON ty.user_type_id = c.user_type_id
213
- LEFT JOIN sys.default_constraints d ON d.object_id = c.default_object_id
214
- LEFT JOIN sys.extended_properties ep ON ep.major_id = c.object_id AND ep.minor_id = c.column_id AND ep.class = 1 AND ep.name = 'MS_Description'
215
- WHERE s.name = ${J(t)} AND o.type IN ('U', 'V')${n?` AND o.name = ${J(n)}`:``}
216
- ORDER BY o.name, c.column_id`)).map(e=>({table:v(e.table_name),name:v(e.name),type:Kt(v(e.type_name),Number(e.max_length),Number(e.precision),Number(e.scale)),nullable:e.is_nullable===!0||Number(e.is_nullable)===1,defaultValue:y(e.default_value),identity:e.is_identity===!0||Number(e.is_identity)===1,computed:e.is_computed===!0||Number(e.is_computed)===1,comment:v(e.comment),collation:y(e.collation_name)}))}async function X(e,t,n){return _(await e(`SELECT o.name AS table_name, i.name, i.is_primary_key, i.is_unique,
217
- STRING_AGG(c.name, CHAR(10)) WITHIN GROUP (ORDER BY ic.key_ordinal) AS columns
218
- FROM sys.indexes i
219
- JOIN sys.objects o ON o.object_id = i.object_id
220
- JOIN sys.schemas s ON s.schema_id = o.schema_id
221
- JOIN sys.index_columns ic ON ic.object_id = i.object_id AND ic.index_id = i.index_id AND ic.is_included_column = 0
222
- JOIN sys.columns c ON c.object_id = ic.object_id AND c.column_id = ic.column_id
223
- WHERE s.name = ${J(t)} AND o.type = 'U' AND i.name IS NOT NULL${n?` AND o.name = ${J(n)}`:``}
224
- GROUP BY o.name, i.name, i.is_primary_key, i.is_unique, i.index_id
225
- ORDER BY o.name, i.is_primary_key DESC, i.name`)).map(e=>({table:v(e.table_name),name:v(e.name),primary:e.is_primary_key===!0||Number(e.is_primary_key)===1,unique:e.is_unique===!0||Number(e.is_unique)===1,columns:v(e.columns).split(`
226
- `).filter(Boolean)}))}function Jt(e){return{name:e.primary?`PRIMARY`:e.name,type:e.primary?`PRIMARY`:e.unique?`UNIQUE`:`INDEX`,columns:e.columns}}function Yt(e,t){let n=new Set,r=new Set,i=new Set;for(let e of t)e.primary?e.columns.forEach(e=>n.add(e)):e.unique&&e.columns.length===1?r.add(e.columns[0]):e.columns.length>0&&i.add(e.columns[0]);return e.map(e=>({name:e.name,type:e.type,nullable:e.nullable,key:n.has(e.name)?`PRI`:r.has(e.name)?`UNI`:i.has(e.name)?`MUL`:``,defaultValue:e.defaultValue,extra:e.identity?`identity`:e.computed?`computed`:``,comment:e.comment,collation:e.collation}))}function Xt(e){let t=new Map;for(let n of e){let e=t.get(n.table);e?e.push(n):t.set(n.table,[n])}return t}async function Zt(e,t,n){return _(await e(`SELECT t.name, t.create_date, t.modify_date,
227
- CAST(ep.value AS NVARCHAR(4000)) AS comment,
228
- (SELECT SUM(p.rows) FROM sys.partitions p WHERE p.object_id = t.object_id AND p.index_id IN (0, 1)) AS rows,
229
- (SELECT SUM(a.total_pages) * 8192 FROM sys.partitions p JOIN sys.allocation_units a ON a.container_id = p.partition_id WHERE p.object_id = t.object_id) AS data_length
230
- FROM sys.tables t
231
- JOIN sys.schemas s ON s.schema_id = t.schema_id
232
- LEFT JOIN sys.extended_properties ep ON ep.major_id = t.object_id AND ep.minor_id = 0 AND ep.class = 1 AND ep.name = 'MS_Description'
233
- WHERE s.name = ${J(t)}${n?` AND t.name = ${J(n)}`:``}
234
- ORDER BY t.name`)).map(e=>({name:v(e.name),engine:null,rows:b(e.rows),collation:null,autoIncrement:null,comment:v(e.comment),createTime:y(e.create_date),updateTime:y(e.modify_date),dataLength:b(e.data_length)}))}async function Qt(e,t,n){let r=await qt(e,t,n);if(r.length===0)return null;let[i,a]=await Promise.all([X(e,t,n),_(await e(`SELECT fk.name, c.name AS column_name, rs.name AS ref_schema, rt.name AS ref_table, rc.name AS ref_column,
235
- fk.delete_referential_action_desc AS on_delete, fk.update_referential_action_desc AS on_update
236
- FROM sys.foreign_keys fk
237
- JOIN sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
238
- JOIN sys.columns c ON c.object_id = fkc.parent_object_id AND c.column_id = fkc.parent_column_id
239
- JOIN sys.objects rt ON rt.object_id = fk.referenced_object_id
240
- JOIN sys.schemas rs ON rs.schema_id = rt.schema_id
241
- JOIN sys.columns rc ON rc.object_id = fkc.referenced_object_id AND rc.column_id = fkc.referenced_column_id
242
- WHERE fk.parent_object_id = ${Wt(t,n)}
243
- ORDER BY fk.name, fkc.constraint_column_id`))]),o=Ut(t,n),s=r.map(e=>{let t=` ${q(e.name)} ${e.type}`;return e.identity&&(t+=` IDENTITY(1,1)`),e.collation&&(t+=` COLLATE ${e.collation}`),t+=e.nullable?` NULL`:` NOT NULL`,e.defaultValue&&!e.identity&&(t+=` DEFAULT ${e.defaultValue}`),t});for(let e of i)e.primary?s.push(` CONSTRAINT ${q(e.name)} PRIMARY KEY (${e.columns.map(q).join(`, `)})`):e.unique&&s.push(` CONSTRAINT ${q(e.name)} UNIQUE (${e.columns.map(q).join(`, `)})`);let c=new Map;for(let e of a){let t=v(e.name),n=c.get(t)??{cols:[],refSchema:v(e.ref_schema),refTable:v(e.ref_table),refCols:[],onDelete:v(e.on_delete),onUpdate:v(e.on_update)};n.cols.push(v(e.column_name)),n.refCols.push(v(e.ref_column)),c.set(t,n)}for(let[e,t]of c){let n=` CONSTRAINT ${q(e)} FOREIGN KEY (${t.cols.map(q).join(`, `)}) REFERENCES ${Ut(t.refSchema,t.refTable)} (${t.refCols.map(q).join(`, `)})`;t.onDelete&&t.onDelete!==`NO_ACTION`&&(n+=` ON DELETE ${t.onDelete.replaceAll(`_`,` `)}`),t.onUpdate&&t.onUpdate!==`NO_ACTION`&&(n+=` ON UPDATE ${t.onUpdate.replaceAll(`_`,` `)}`),s.push(n)}let l=[`CREATE TABLE ${o} (\n${s.join(`,
244
- `)}\n);`];for(let e of i)e.primary||e.unique||l.push(`CREATE INDEX ${q(e.name)} ON ${o} (${e.columns.map(q).join(`, `)});`);let u=(await Zt(e,t,n))[0];u?.comment&&l.push(`EXEC sp_addextendedproperty 'MS_Description', ${J(u.comment)}, 'SCHEMA', ${J(t)}, 'TABLE', ${J(n)};`);for(let e of r)e.comment&&l.push(`EXEC sp_addextendedproperty 'MS_Description', ${J(e.comment)}, 'SCHEMA', ${J(t)}, 'TABLE', ${J(n)}, 'COLUMN', ${J(e.name)};`);return l.join(`
245
- `)}async function $t(e,t,n){return y((await e(`SELECT OBJECT_DEFINITION(${Wt(t,n)})`)).records[0]?.[0])}async function en(e,t){return(await e(`SELECT tr.name, o.name AS table_name FROM sys.triggers tr
246
- JOIN sys.objects o ON o.object_id = tr.parent_id
247
- JOIN sys.schemas s ON s.schema_id = o.schema_id
248
- WHERE s.name = ${J(t)} AND tr.is_ms_shipped = 0 ORDER BY o.name, tr.name`)).records.map(e=>({name:v(e[0]),table:v(e[1])}))}var tn={async listCatalogs(e){return Y(e,`SELECT name FROM sys.databases WHERE database_id > 4 OR name = DB_NAME() ORDER BY name`)},async currentCatalog(e){return v((await e(`SELECT DB_NAME()`)).records[0]?.[0])},async listDatabases(e){return Y(e,`SELECT s.name FROM sys.schemas s WHERE ${Gt} ORDER BY CASE WHEN s.name = 'dbo' THEN 0 ELSE 1 END, s.name`)},listTables:(e,t)=>Zt(e,t),listViews:(e,t)=>Y(e,`SELECT v.name FROM sys.views v JOIN sys.schemas s ON s.schema_id = v.schema_id WHERE s.name = ${J(t)} ORDER BY v.name`),listProcedures:(e,t)=>Y(e,`SELECT p.name FROM sys.procedures p JOIN sys.schemas s ON s.schema_id = p.schema_id WHERE s.name = ${J(t)} ORDER BY p.name`),listFunctions:(e,t)=>Y(e,`SELECT o.name FROM sys.objects o JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = ${J(t)} AND o.type IN ('FN', 'IF', 'TF', 'AF') ORDER BY o.name`),async listTriggers(e,t){return(await en(e,t)).map(e=>e.name)},listTriggerDetails:en,listEvents:async()=>[],async listColumns(e,t,n){let[r,i]=await Promise.all([qt(e,t,n),X(e,t,n)]);return Yt(r,i)},async listIndexes(e,t,n){return(await X(e,t,n)).map(Jt)},async listAllColumns(e,t){let[n,r]=await Promise.all([qt(e,t),X(e,t)]),i=Xt(r),a=new Map;for(let[e,t]of Xt(n))a.set(e,Yt(t,i.get(e)??[]));return a},async listAllIndexes(e,t){let n=new Map;for(let[r,i]of Xt(await X(e,t)))n.set(r,i.map(Jt));return n},async listForeignKeys(e,t){return(await e(`SELECT fk.name, o.name AS table_name, c.name AS column_name, rt.name AS ref_table, rc.name AS ref_column
249
- FROM sys.foreign_keys fk
250
- JOIN sys.foreign_key_columns fkc ON fkc.constraint_object_id = fk.object_id
251
- JOIN sys.objects o ON o.object_id = fk.parent_object_id
252
- JOIN sys.schemas s ON s.schema_id = o.schema_id
253
- JOIN sys.columns c ON c.object_id = fkc.parent_object_id AND c.column_id = fkc.parent_column_id
254
- JOIN sys.objects rt ON rt.object_id = fk.referenced_object_id
255
- JOIN sys.columns rc ON rc.object_id = fkc.referenced_object_id AND rc.column_id = fkc.referenced_column_id
256
- WHERE s.name = ${J(t)}
257
- ORDER BY o.name, fk.name, fkc.constraint_column_id`)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){return(await Zt(e,t,n))[0]??null},async getPrimaryKeys(e,t,n){return(await X(e,t,n)).find(e=>e.primary)?.columns??[]},async getCreateStatement(e,t,n,r){switch(n){case`TABLE`:return Qt(e,t,r);case`VIEW`:case`PROCEDURE`:case`FUNCTION`:case`TRIGGER`:return $t(e,t,r);default:return null}}},nn={SELECT_COUNT:`SELECT COUNT(1) AS cnt FROM [{0}].[{1}]`,SHOW_FULL_FIELDS:`SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '{0}' AND TABLE_NAME = '{1}' ORDER BY ORDINAL_POSITION`,SHOW_COLUMNS:`SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '{0}' AND TABLE_NAME = '{1}' ORDER BY ORDINAL_POSITION`,SHOW_DATABASE_VIEWS:`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = '{0}' ORDER BY TABLE_NAME`,SHOW_DATABASE_TABLES:`SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '{0}' AND TABLE_TYPE = 'BASE TABLE' ORDER BY TABLE_NAME`,SHOW_DATABASE:`SELECT SCHEMA_NAME()`,SHOW_DATABASES:`SELECT name FROM sys.schemas WHERE schema_id < 16384 AND name NOT IN ('sys', 'INFORMATION_SCHEMA', 'guest') ORDER BY name`,ADD_INDEX:`CREATE {3} INDEX [{2}] ON [{0}].[{1}] ({4})`,SHOW_INDEXES:`SELECT i.name AS index_name, i.type_desc, i.is_unique FROM sys.indexes i JOIN sys.objects o ON o.object_id = i.object_id JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = '{0}' AND o.name = '{1}' AND i.name IS NOT NULL ORDER BY i.name`,DROP_INDEX:`DROP INDEX [{2}] ON [{0}].[{1}]`,DROP_PROCEDURE:`DROP PROCEDURE {2} [{0}].[{1}]`,DROP_FUNCTION:`DROP FUNCTION {2} [{0}].[{1}]`,DROP_TRIGGER:`DROP TRIGGER {2} [{0}].[{1}]`,DROP_VIEW:`DROP VIEW {2} [{0}].[{1}]`,SHOW_PROCEDURES:`SELECT p.name FROM sys.procedures p JOIN sys.schemas s ON s.schema_id = p.schema_id WHERE s.name = '{0}' ORDER BY p.name`,SHOW_FUNCTIONS:`SELECT o.name FROM sys.objects o JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = '{0}' AND o.type IN ('FN', 'IF', 'TF', 'AF') ORDER BY o.name`,SHOW_TRIGGERS:`SELECT tr.name, o.name AS table_name FROM sys.triggers tr JOIN sys.objects o ON o.object_id = tr.parent_id JOIN sys.schemas s ON s.schema_id = o.schema_id WHERE s.name = '{0}' ORDER BY tr.name`,SHOW_VIEWS:`SELECT TABLE_NAME AS [View_name], VIEW_DEFINITION AS [View_definition] FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_SCHEMA = '{0}' ORDER BY TABLE_NAME`,SHOW_ALL_TABLE_STATUS:`SELECT t.name AS [Name], SUM(p.rows) AS [Rows], t.create_date AS [Create_time], t.modify_date AS [Update_time] FROM sys.tables t JOIN sys.schemas s ON s.schema_id = t.schema_id LEFT JOIN sys.partitions p ON p.object_id = t.object_id AND p.index_id IN (0, 1) WHERE s.name = '{0}' GROUP BY t.name, t.create_date, t.modify_date ORDER BY t.name`,SHOW_TABLE_STATUS:`SELECT t.name AS [Name], SUM(p.rows) AS [Rows], t.create_date AS [Create_time], t.modify_date AS [Update_time] FROM sys.tables t JOIN sys.schemas s ON s.schema_id = t.schema_id LEFT JOIN sys.partitions p ON p.object_id = t.object_id AND p.index_id IN (0, 1) WHERE s.name = '{0}' AND t.name = '{1}' GROUP BY t.name, t.create_date, t.modify_date`,INSERT_TABLE:`INSERT INTO [{0}].[{1}] ({2}) VALUES({3});`,INSERT_TABLE_BULK:`INSERT INTO [{0}].[{1}] ({2}) VALUES {3};`,INSERT_DEFAULT_VALUES:`INSERT INTO [{0}].[{1}] DEFAULT VALUES;`,UPDATE_TABLE:`UPDATE [{0}].[{1}] SET {2} WHERE {3};`,UPDATE_TABLE_SINGLE:`UPDATE TOP (1) [{0}].[{1}] SET {2} WHERE {3}`,START_TRANSACTION:`BEGIN TRANSACTION`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM [{0}].[{1}] WHERE {2};`,SELECT_TABLE:`SELECT {2} FROM [{0}].[{1}] {3};`,TRUNCATE_TABLE:`TRUNCATE TABLE [{0}].[{1}]`,RENAME_TABLE:`EXEC sp_rename '{0}.{1}', '{3}'`,DROP_TABLE:`DROP TABLE {2} [{0}].[{1}]`,CREATE_PROCEDURE:`CREATE PROCEDURE [{0}].[{1}]
258
- AS
259
- BEGIN
260
- SET NOCOUNT ON;
261
-
262
- /* SQL Statements */
263
-
264
- END;`,CREATE_FUNCTION:`CREATE FUNCTION [{0}].[{1}]()
265
- RETURNS INT
266
- AS
267
- BEGIN
268
-
269
- /* SQL Statements */
270
- RETURN 0;
271
-
272
- END;`,CREATE_TRIGGER:`CREATE TRIGGER [{0}].[{1}]
273
- ON [{0}].[<Table Name>]
274
- AFTER INSERT
275
- -- , UPDATE, DELETE
276
- AS
277
- BEGIN
278
- SET NOCOUNT ON;
279
-
280
- /* SQL Statements */
281
-
282
- END;`,CREATE_VIEW:`CREATE VIEW [{0}].[{1}] AS
283
- /* SQL SELECT Statement */`,CREATE_TABLE:`CREATE TABLE [{0}].[{1}] {2}`,ALTER_TABLE:`ALTER TABLE [{0}].[{1}] {2}`,ALTER_VIEW:`DROP VIEW IF EXISTS [{0}].[{1}];
284
- GO
285
- {2}`,ALTER_PROCEDURE:`DROP PROCEDURE IF EXISTS [{0}].[{1}];
286
- GO
287
- {2}`,ALTER_FUNCTION:`DROP FUNCTION IF EXISTS [{0}].[{1}];
288
- GO
289
- {2}`,ALTER_TRIGGER:`DROP TRIGGER IF EXISTS [{0}].[{1}];
290
- GO
291
- {2}`,SHOW_PROCESS_LIST:`SELECT s.session_id AS [Id], s.login_name AS [User], COALESCE(c.client_net_address, 'local') AS [Host], DB_NAME(s.database_id) AS [db], COALESCE(r.status, s.status) AS [Command], COALESCE(DATEDIFF(SECOND, r.start_time, GETDATE()), 0) AS [Time], COALESCE(r.wait_type, '') AS [State], t.text AS [Info] FROM sys.dm_exec_sessions s LEFT JOIN sys.dm_exec_connections c ON c.session_id = s.session_id LEFT JOIN sys.dm_exec_requests r ON r.session_id = s.session_id OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) t WHERE s.is_user_process = 1 ORDER BY s.session_id`,KILL_QUERY:`KILL {0}`,SHOW_VARIABLES:`SELECT name AS [Variable_name], CAST(value_in_use AS NVARCHAR(100)) AS [Value] FROM sys.configurations ORDER BY name`,SHOW_GLOBAL_VARIABLES:`SELECT name AS [Variable_name], CAST(value AS NVARCHAR(100)) AS [Value] FROM sys.configurations ORDER BY name`,SHOW_SESSION_VARIABLES:`SELECT name AS [Variable_name], CAST(value_in_use AS NVARCHAR(100)) AS [Value] FROM sys.configurations ORDER BY name`,CREATE_SCHEMA:`CREATE SCHEMA [{0}]`,DROP_SCHEMA:`DROP SCHEMA [{0}]`,COPY_TABLE_STRUCTURE:`SELECT TOP 0 * INTO [{2}].[{3}] FROM [{0}].[{1}]`,COPY_TABLE_DATA:`INSERT INTO [{2}].[{3}] SELECT * FROM [{0}].[{1}]`,DISABLE_FK_CHECKS:`EXEC sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'`,ENABLE_FK_CHECKS:`EXEC sp_msforeachtable 'ALTER TABLE ? WITH CHECK CHECK CONSTRAINT ALL'`},rn=`ASCII.CHAR.CHARINDEX.CONCAT.CONCAT_WS.FORMAT.LEFT.LEN.LOWER.LTRIM.NCHAR.PATINDEX.QUOTENAME.REPLACE.REPLICATE.REVERSE.RIGHT.RTRIM.SPACE.STR.STRING_AGG.STRING_SPLIT.STUFF.SUBSTRING.TRANSLATE.TRIM.UNICODE.UPPER.ABS.CEILING.EXP.FLOOR.LOG.LOG10.PI.POWER.RAND.ROUND.SIGN.SQRT.SQUARE.CURRENT_TIMESTAMP.DATEADD.DATEDIFF.DATEDIFF_BIG.DATEFROMPARTS.DATENAME.DATEPART.DATETIMEFROMPARTS.DAY.EOMONTH.GETDATE.GETUTCDATE.ISDATE.MONTH.SYSDATETIME.SYSDATETIMEOFFSET.SYSUTCDATETIME.YEAR.AVG.COUNT.COUNT_BIG.MAX.MIN.STDEV.SUM.VAR.ROW_NUMBER.RANK.DENSE_RANK.NTILE.LAG.LEAD.FIRST_VALUE.LAST_VALUE.CAST.CONVERT.TRY_CAST.TRY_CONVERT.PARSE.COALESCE.NULLIF.ISNULL.IIF.CHOOSE.NEWID.NEWSEQUENTIALID.SCOPE_IDENTITY.IDENT_CURRENT.OBJECT_ID.OBJECT_NAME.OBJECT_DEFINITION.SCHEMA_NAME.DB_NAME.HOST_NAME.SUSER_SNAME.USER_NAME.ISNUMERIC.ISJSON.JSON_VALUE.JSON_QUERY.JSON_MODIFY.OPENJSON`.split(`.`),an=`ADD.ALL.ALTER.AND.ANY.AS.ASC.AUTHORIZATION.BACKUP.BEGIN.BETWEEN.BREAK.BROWSE.BULK.BY.CASCADE.CASE.CHECK.CHECKPOINT.CLOSE.CLUSTERED.COALESCE.COLLATE.COLUMN.COMMIT.COMPUTE.CONSTRAINT.CONTAINS.CONTAINSTABLE.CONTINUE.CONVERT.CREATE.CROSS.CURRENT.CURRENT_DATE.CURRENT_TIME.CURRENT_TIMESTAMP.CURRENT_USER.CURSOR.DATABASE.DBCC.DEALLOCATE.DECLARE.DEFAULT.DELETE.DENY.DESC.DISK.DISTINCT.DISTRIBUTED.DOUBLE.DROP.DUMP.ELSE.END.ERRLVL.ESCAPE.EXCEPT.EXEC.EXECUTE.EXISTS.EXIT.EXTERNAL.FETCH.FILE.FILLFACTOR.FOR.FOREIGN.FREETEXT.FREETEXTTABLE.FROM.FULL.FUNCTION.GO.GOTO.GRANT.GROUP.GROUP BY.HAVING.HOLDLOCK.IDENTITY.IDENTITY_INSERT.IDENTITYCOL.IF.IN.INDEX.INNER.INSERT.INSERT INTO.INTERSECT.INTO.IS.JOIN.KEY.KILL.LEFT.LIKE.LINENO.LOAD.MERGE.NATIONAL.NEXT.NOCHECK.NONCLUSTERED.NOT.NULL.NULLIF.OF.OFF.OFFSET.OFFSETS.ON.ONLY.OPEN.OPENDATASOURCE.OPENQUERY.OPENROWSET.OPENXML.OPTION.OR.ORDER.ORDER BY.OUTER.OUTPUT.OVER.PERCENT.PIVOT.PLAN.PRECISION.PRIMARY.PRINT.PROC.PROCEDURE.PUBLIC.RAISERROR.READ.READTEXT.RECONFIGURE.REFERENCES.REPLICATION.RESTORE.RESTRICT.RETURN.REVERT.REVOKE.RIGHT.ROLLBACK.ROWCOUNT.ROWGUIDCOL.ROWS.RULE.SAVE.SCHEMA.SECURITYAUDIT.SELECT.SEMANTICKEYPHRASETABLE.SEMANTICSIMILARITYDETAILSTABLE.SEMANTICSIMILARITYTABLE.SESSION_USER.SET.SETUSER.SHUTDOWN.SOME.STATISTICS.SYSTEM_USER.TABLE.TABLESAMPLE.TEXTSIZE.THEN.TO.TOP.TRAN.TRANSACTION.TRIGGER.TRUNCATE.TRY_CONVERT.TSEQUAL.UNION.UNIQUE.UNPIVOT.UPDATE.UPDATETEXT.USE.USER.VALUES.VARYING.VIEW.WAITFOR.WHEN.WHERE.WHILE.WITH.WITHIN GROUP.WRITETEXT`.split(`.`),on=`bigint.binary.bit.char.date.datetime.datetime2.datetimeoffset.decimal.float.geography.geometry.hierarchyid.image.int.money.nchar.ntext.numeric.nvarchar.real.smalldatetime.smallint.smallmoney.sql_variant.text.time.timestamp.tinyint.uniqueidentifier.varbinary.varchar.xml`.split(`.`),sn={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!0,delimiterCommand:!1,dollarQuotes:!1,goBatchSeparator:!0,limitStyle:`top`,plsqlBlocks:!1};function cn(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...i(e,{addColumn:`ADD`,modify:`mssql`,renameColumn:`sp_rename`,qualifiedIndexNames:!1,dropIndexOnTable:!0,unqualifiedIndexTarget:!1,multiRowInsert:!0,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=x(e.name,`untitled`),a=e.database||`dbo`,o=r(a,i),s=e.columns.filter(e=>e.primaryKey),c=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type}`;return e.length&&(n+=`(${e.length})`),e.autoIncrement&&(n+=` IDENTITY(1,1)`),n+=e.notNull||e.primaryKey?` NOT NULL`:` NULL`,e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),n});s.length>0&&c.push(` PRIMARY KEY (${s.map(e=>t(e.name)).join(`, `)})`);let l=[`CREATE TABLE ${o} (\n${c.join(`,
292
- `)}\n);`];for(let n of e.indexes){if(n.type===`PRIMARY`||n.columns.length===0)continue;let e=n.type===`UNIQUE`?`UNIQUE `:``,r=n.type===`FULLTEXT`?` -- FULLTEXT needs a full-text catalog; created as a plain index`:``,a=t(x(n.name,`${i}_${n.columns.join(`_`)}_idx`));l.push(`CREATE ${e}INDEX ${a} ON ${o} (${n.columns.map(t).join(`, `)});${r}`)}e.options.comment&&l.push(`EXEC sp_addextendedproperty 'MS_Description', ${n(e.options.comment)}, 'SCHEMA', ${n(a)}, 'TABLE', ${n(i)};`);for(let t of e.columns)t.comment&&l.push(`EXEC sp_addextendedproperty 'MS_Description', ${n(t.comment)}, 'SCHEMA', ${n(a)}, 'TABLE', ${n(i)}, 'COLUMN', ${n(x(t.name,`column`))};`);return l.join(`
293
- `)}}}var ln=S({id:`mssql`,label:`SQL Server`,capabilities:{multipleDatabases:!1,schemas:!0,users:!1,procedures:!0,functions:!0,triggers:!0,events:!1,processList:!0,variables:!0,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!1,transactions:!0},ddl:cn,explain:Re,introspect:tn,tree:bt,defaultPort:1433,binaryLiteral:e=>`0x${e}`,booleanKeywords:!1,identifierQuote:`[`,identifierQuoteClose:`]`,queries:nn,syntax:sn,dataTypes:on,functions:rn,reservedWords:an}),Z=e=>`'${e.replace(/'/g,`''`)}'`;async function Q(e,t){return(await e(t)).records.map(e=>v(e[0]))}function un(e,t,n,r,i){return[`VARCHAR2`,`NVARCHAR2`,`CHAR`,`NCHAR`,`RAW`].includes(e)?`${e}(${n||t||0})`:e===`NUMBER`?r===null?`NUMBER`:i?`NUMBER(${r},${i})`:`NUMBER(${r})`:e===`FLOAT`&&r!==null?`FLOAT(${r})`:e}async function dn(e,t,n){return _(await e(`SELECT c.table_name, c.column_name, c.data_type, c.data_length, c.char_length, c.data_precision, c.data_scale,
294
- c.nullable, c.data_default, cc.comments,
295
- CASE WHEN ic.column_name IS NOT NULL THEN 1 ELSE 0 END AS is_identity
296
- FROM all_tab_columns c
297
- LEFT JOIN all_col_comments cc ON cc.owner = c.owner AND cc.table_name = c.table_name AND cc.column_name = c.column_name
298
- LEFT JOIN all_tab_identity_cols ic ON ic.owner = c.owner AND ic.table_name = c.table_name AND ic.column_name = c.column_name
299
- WHERE c.owner = ${Z(t)}${n?` AND c.table_name = ${Z(n)}`:``}
300
- ORDER BY c.table_name, c.column_id`)).map(e=>({table:v(e.TABLE_NAME),name:v(e.COLUMN_NAME),type:un(v(e.DATA_TYPE),b(e.DATA_LENGTH),b(e.CHAR_LENGTH),b(e.DATA_PRECISION),b(e.DATA_SCALE)),nullable:v(e.NULLABLE)===`Y`,defaultValue:y(e.DATA_DEFAULT)?.trim()??null,identity:Number(e.IS_IDENTITY)===1,comment:v(e.COMMENTS)}))}async function $(e,t,n){return _(await e(`SELECT i.table_name, i.index_name, i.uniqueness,
301
- CASE WHEN EXISTS (SELECT 1 FROM all_constraints k WHERE k.owner = i.table_owner AND k.table_name = i.table_name AND k.constraint_type = 'P' AND k.index_name = i.index_name) THEN 1 ELSE 0 END AS is_primary,
302
- LISTAGG(ic.column_name, CHR(10)) WITHIN GROUP (ORDER BY ic.column_position) AS columns
303
- FROM all_indexes i
304
- JOIN all_ind_columns ic ON ic.index_owner = i.owner AND ic.index_name = i.index_name
305
- WHERE i.table_owner = ${Z(t)}${n?` AND i.table_name = ${Z(n)}`:``}
306
- GROUP BY i.table_owner, i.table_name, i.index_name, i.uniqueness
307
- ORDER BY i.table_name, is_primary DESC, i.index_name`)).map(e=>({table:v(e.TABLE_NAME),name:v(e.INDEX_NAME),primary:Number(e.IS_PRIMARY)===1,unique:v(e.UNIQUENESS)===`UNIQUE`,columns:v(e.COLUMNS).split(`
308
- `).filter(Boolean)}))}function fn(e){return{name:e.primary?`PRIMARY`:e.name,type:e.primary?`PRIMARY`:e.unique?`UNIQUE`:`INDEX`,columns:e.columns}}function pn(e,t){let n=new Set,r=new Set,i=new Set;for(let e of t)e.primary?e.columns.forEach(e=>n.add(e)):e.unique&&e.columns.length===1?r.add(e.columns[0]):e.columns.length>0&&i.add(e.columns[0]);return e.map(e=>({name:e.name,type:e.type,nullable:e.nullable,key:n.has(e.name)?`PRI`:r.has(e.name)?`UNI`:i.has(e.name)?`MUL`:``,defaultValue:e.defaultValue,extra:e.identity?`identity`:``,comment:e.comment,collation:null}))}function mn(e){let t=new Map;for(let n of e){let e=t.get(n.table);e?e.push(n):t.set(n.table,[n])}return t}async function hn(e,t,n){return _(await e(`SELECT t.table_name, t.num_rows, t.last_analyzed, tc.comments,
309
- (SELECT SUM(s.bytes) FROM all_segments s WHERE s.owner = t.owner AND s.segment_name = t.table_name) AS bytes
310
- FROM all_tables t
311
- LEFT JOIN all_tab_comments tc ON tc.owner = t.owner AND tc.table_name = t.table_name
312
- WHERE t.owner = ${Z(t)}${n?` AND t.table_name = ${Z(n)}`:``}
313
- ORDER BY t.table_name`)).map(e=>({name:v(e.TABLE_NAME),engine:null,rows:b(e.NUM_ROWS),collation:null,autoIncrement:null,comment:v(e.COMMENTS),createTime:null,updateTime:y(e.LAST_ANALYZED),dataLength:b(e.BYTES)}))}var gn={TABLE:`TABLE`,VIEW:`VIEW`,PROCEDURE:`PROCEDURE`,FUNCTION:`FUNCTION`,TRIGGER:`TRIGGER`,EVENT:null};async function _n(e,t){return(await e(`SELECT trigger_name, table_name FROM all_triggers WHERE owner = ${Z(t)} ORDER BY table_name, trigger_name`)).records.map(e=>({name:v(e[0]),table:v(e[1])}))}var vn={async listDatabases(e){return Q(e,`SELECT username FROM all_users WHERE oracle_maintained = 'N'
314
- ORDER BY CASE WHEN username = SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') THEN 0 ELSE 1 END, username`)},listTables:(e,t)=>hn(e,t),listViews:(e,t)=>Q(e,`SELECT view_name FROM all_views WHERE owner = ${Z(t)} ORDER BY view_name`),listProcedures:(e,t)=>Q(e,`SELECT object_name FROM all_objects WHERE owner = ${Z(t)} AND object_type = 'PROCEDURE' ORDER BY object_name`),listFunctions:(e,t)=>Q(e,`SELECT object_name FROM all_objects WHERE owner = ${Z(t)} AND object_type = 'FUNCTION' ORDER BY object_name`),async listTriggers(e,t){return(await _n(e,t)).map(e=>e.name)},listTriggerDetails:_n,listEvents:async()=>[],async listColumns(e,t,n){let[r,i]=await Promise.all([dn(e,t,n),$(e,t,n)]);return pn(r,i)},async listIndexes(e,t,n){return(await $(e,t,n)).map(fn)},async listAllColumns(e,t){let[n,r]=await Promise.all([dn(e,t),$(e,t)]),i=mn(r),a=new Map;for(let[e,t]of mn(n))a.set(e,pn(t,i.get(e)??[]));return a},async listAllIndexes(e,t){let n=new Map;for(let[r,i]of mn(await $(e,t)))n.set(r,i.map(fn));return n},async listForeignKeys(e,t){return(await e(`SELECT c.constraint_name, c.table_name, cc.column_name, r.table_name AS ref_table, rc.column_name AS ref_column
315
- FROM all_constraints c
316
- JOIN all_cons_columns cc ON cc.owner = c.owner AND cc.constraint_name = c.constraint_name
317
- JOIN all_constraints r ON r.owner = c.r_owner AND r.constraint_name = c.r_constraint_name
318
- JOIN all_cons_columns rc ON rc.owner = r.owner AND rc.constraint_name = r.constraint_name AND rc.position = cc.position
319
- WHERE c.owner = ${Z(t)} AND c.constraint_type = 'R'
320
- ORDER BY c.table_name, c.constraint_name, cc.position`)).records.map(e=>({name:v(e[0]),table:v(e[1]),column:v(e[2]),refTable:v(e[3]),refColumn:v(e[4])}))},async getTableInfo(e,t,n){return(await hn(e,t,n))[0]??null},async getPrimaryKeys(e,t,n){return(await e(`SELECT cc.column_name FROM all_constraints c
321
- JOIN all_cons_columns cc ON cc.owner = c.owner AND cc.constraint_name = c.constraint_name
322
- WHERE c.owner = ${Z(t)} AND c.table_name = ${Z(n)} AND c.constraint_type = 'P'
323
- ORDER BY cc.position`)).records.map(e=>v(e[0]))},async getCreateStatement(e,t,n,r){let i=gn[n];return i?y((await e(`SELECT DBMS_METADATA.GET_DDL(${Z(i)}, ${Z(r)}, ${Z(t)}) FROM dual`)).records[0]?.[0])?.trim()??null:null}},yn={SELECT_COUNT:`SELECT COUNT(1) AS cnt FROM "{0}"."{1}"`,SHOW_FULL_FIELDS:`SELECT column_name, data_type, nullable, data_default FROM all_tab_columns WHERE owner = '{0}' AND table_name = '{1}' ORDER BY column_id`,SHOW_COLUMNS:`SELECT column_name, data_type, nullable, data_default FROM all_tab_columns WHERE owner = '{0}' AND table_name = '{1}' ORDER BY column_id`,SHOW_DATABASE_VIEWS:`SELECT view_name FROM all_views WHERE owner = '{0}' ORDER BY view_name`,SHOW_DATABASE_TABLES:`SELECT table_name FROM all_tables WHERE owner = '{0}' ORDER BY table_name`,SHOW_DATABASE:`SELECT SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') FROM dual`,SHOW_DATABASES:`SELECT username FROM all_users WHERE oracle_maintained = 'N' ORDER BY username`,ADD_INDEX:`CREATE {3} INDEX "{0}"."{2}" ON "{0}"."{1}" ({4})`,SHOW_INDEXES:`SELECT index_name, uniqueness, index_type FROM all_indexes WHERE table_owner = '{0}' AND table_name = '{1}' ORDER BY index_name`,DROP_INDEX:`DROP INDEX "{0}"."{2}"`,DROP_PROCEDURE:`DROP PROCEDURE "{0}"."{1}"`,DROP_FUNCTION:`DROP FUNCTION "{0}"."{1}"`,DROP_TRIGGER:`DROP TRIGGER "{0}"."{1}"`,DROP_VIEW:`DROP VIEW "{0}"."{1}"`,SHOW_PROCEDURES:`SELECT object_name FROM all_objects WHERE owner = '{0}' AND object_type = 'PROCEDURE' ORDER BY object_name`,SHOW_FUNCTIONS:`SELECT object_name FROM all_objects WHERE owner = '{0}' AND object_type = 'FUNCTION' ORDER BY object_name`,SHOW_TRIGGERS:`SELECT trigger_name, table_name FROM all_triggers WHERE owner = '{0}' ORDER BY trigger_name`,SHOW_VIEWS:`SELECT view_name AS "View_name", text_vc AS "View_definition" FROM all_views WHERE owner = '{0}' ORDER BY view_name`,SHOW_ALL_TABLE_STATUS:`SELECT t.table_name AS "Name", t.num_rows AS "Rows", c.comments AS "Comment" FROM all_tables t LEFT JOIN all_tab_comments c ON c.owner = t.owner AND c.table_name = t.table_name WHERE t.owner = '{0}' ORDER BY t.table_name`,SHOW_TABLE_STATUS:`SELECT t.table_name AS "Name", t.num_rows AS "Rows", c.comments AS "Comment" FROM all_tables t LEFT JOIN all_tab_comments c ON c.owner = t.owner AND c.table_name = t.table_name WHERE t.owner = '{0}' AND t.table_name = '{1}'`,INSERT_TABLE:`INSERT INTO "{0}"."{1}" ({2}) VALUES({3})`,INSERT_TABLE_BULK:`INSERT INTO "{0}"."{1}" ({2}) VALUES {3}`,INSERT_DEFAULT_VALUES:`INSERT INTO "{0}"."{1}" ({2}) VALUES (DEFAULT)`,UPDATE_TABLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3}`,UPDATE_TABLE_SINGLE:`UPDATE "{0}"."{1}" SET {2} WHERE {3} AND ROWNUM = 1`,START_TRANSACTION:`SET TRANSACTION READ WRITE`,COMMIT:`COMMIT`,ROLLBACK:`ROLLBACK`,DELETE_TABLE:`DELETE FROM "{0}"."{1}" WHERE {2}`,SELECT_TABLE:`SELECT {2} FROM "{0}"."{1}" {3}`,TRUNCATE_TABLE:`TRUNCATE TABLE "{0}"."{1}"`,RENAME_TABLE:`ALTER TABLE "{0}"."{1}" RENAME TO "{3}"`,DROP_TABLE:`DROP TABLE "{0}"."{1}"`,CREATE_PROCEDURE:`CREATE OR REPLACE PROCEDURE "{0}"."{1}"
324
- IS
325
- BEGIN
326
-
327
- /* SQL Statements */
328
- NULL;
329
-
330
- END;
331
- /`,CREATE_FUNCTION:`CREATE OR REPLACE FUNCTION "{0}"."{1}"
332
- RETURN NUMBER
333
- IS
334
- BEGIN
335
-
336
- /* SQL Statements */
337
- RETURN 0;
338
-
339
- END;
340
- /`,CREATE_TRIGGER:`CREATE OR REPLACE TRIGGER "{0}"."{1}"
341
- BEFORE
342
- -- AFTER
343
- INSERT
344
- -- OR UPDATE
345
- -- OR DELETE
346
- ON "{0}"."<Table Name>" FOR EACH ROW
347
- BEGIN
348
-
349
- /* SQL Statements */
350
- NULL;
351
-
352
- END;
353
- /`,CREATE_VIEW:`CREATE OR REPLACE VIEW "{0}"."{1}" AS
354
- /* SQL SELECT Statement */`,CREATE_TABLE:`CREATE TABLE "{0}"."{1}" {2}`,ALTER_TABLE:`ALTER TABLE "{0}"."{1}" {2}`,ALTER_VIEW:`{2}`,ALTER_PROCEDURE:`{2}`,ALTER_FUNCTION:`{2}`,ALTER_TRIGGER:`{2}`,SHOW_PROCESS_LIST:`SELECT s.sid || ',' || s.serial# AS "Id", s.username AS "User", s.machine AS "Host", s.schemaname AS "db", s.status AS "Command", COALESCE(s.last_call_et, 0) AS "Time", s.event AS "State", s.sql_id AS "Info" FROM v$session s WHERE s.type = 'USER' ORDER BY s.sid`,KILL_QUERY:`ALTER SYSTEM KILL SESSION '{0}' IMMEDIATE`,SHOW_VARIABLES:`SELECT name AS "Variable_name", value AS "Value" FROM v$parameter ORDER BY name`,SHOW_GLOBAL_VARIABLES:`SELECT name AS "Variable_name", value AS "Value" FROM v$parameter ORDER BY name`,SHOW_SESSION_VARIABLES:`SELECT parameter AS "Variable_name", value AS "Value" FROM nls_session_parameters ORDER BY parameter`,COPY_TABLE_STRUCTURE:`CREATE TABLE "{2}"."{3}" AS SELECT * FROM "{0}"."{1}" WHERE 1 = 0`,COPY_TABLE_DATA:`INSERT INTO "{2}"."{3}" SELECT * FROM "{0}"."{1}"`},bn=`ASCII,CHR,CONCAT,INITCAP,INSTR,LENGTH,LOWER,LPAD,LTRIM,NLSSORT,REGEXP_INSTR,REGEXP_REPLACE,REGEXP_SUBSTR,REPLACE,RPAD,RTRIM,SOUNDEX,SUBSTR,TRANSLATE,TRIM,UPPER,LISTAGG,ABS,CEIL,EXP,FLOOR,LN,LOG,MOD,POWER,REMAINDER,ROUND,SIGN,SQRT,TRUNC,ADD_MONTHS,CURRENT_DATE,CURRENT_TIMESTAMP,EXTRACT,LAST_DAY,LOCALTIMESTAMP,MONTHS_BETWEEN,NEXT_DAY,SYSDATE,SYSTIMESTAMP,TO_CHAR,TO_DATE,TO_TIMESTAMP,TO_TIMESTAMP_TZ,FROM_TZ,NUMTODSINTERVAL,NUMTOYMINTERVAL,CAST,TO_NUMBER,TO_CLOB,COALESCE,NULLIF,NVL,NVL2,DECODE,GREATEST,LEAST,AVG,COUNT,MAX,MEDIAN,MIN,STDDEV,SUM,VARIANCE,ROW_NUMBER,RANK,DENSE_RANK,NTILE,LAG,LEAD,FIRST_VALUE,LAST_VALUE,SYS_GUID,SYS_CONTEXT,USER,UID,ROWNUM,ROWID,DBMS_METADATA.GET_DDL,JSON_VALUE,JSON_QUERY,JSON_OBJECT,JSON_ARRAY,JSON_TABLE,JSON_EXISTS`.split(`,`),xn=`ACCESS.ADD.ALL.ALTER.AND.ANY.AS.ASC.AUDIT.BETWEEN.BY.CHAR.CHECK.CLUSTER.COLUMN.COMMENT.COMPRESS.CONNECT.CREATE.CURRENT.DATE.DECIMAL.DEFAULT.DELETE.DESC.DISTINCT.DROP.ELSE.EXCLUSIVE.EXISTS.FILE.FLOAT.FOR.FROM.GRANT.GROUP.GROUP BY.HAVING.IDENTIFIED.IMMEDIATE.IN.INCREMENT.INDEX.INITIAL.INSERT.INSERT INTO.INTEGER.INTERSECT.INTO.IS.LEVEL.LIKE.LOCK.LONG.MAXEXTENTS.MINUS.MLSLABEL.MODE.MODIFY.NOAUDIT.NOCOMPRESS.NOT.NOWAIT.NULL.NUMBER.OF.OFFLINE.ON.ONLINE.OPTION.OR.ORDER.ORDER BY.PCTFREE.PRIOR.PUBLIC.RAW.RENAME.RESOURCE.REVOKE.ROW.ROWID.ROWNUM.ROWS.SELECT.SESSION.SET.SHARE.SIZE.SMALLINT.START.SUCCESSFUL.SYNONYM.SYSDATE.TABLE.THEN.TO.TRIGGER.UID.UNION.UNIQUE.UPDATE.USER.VALIDATE.VALUES.VARCHAR.VARCHAR2.VIEW.WHENEVER.WHERE.WITH.BEGIN.DECLARE.END.EXCEPTION.IF.ELSIF.LOOP.WHILE.RETURN.PROCEDURE.FUNCTION.PACKAGE.BODY.CURSOR.FETCH.FIRST.NEXT.ONLY.OFFSET.COMMIT.ROLLBACK.SAVEPOINT.TRUNCATE.REPLACE.MERGE.USING.MATCHED.JOIN.INNER.LEFT.RIGHT.FULL.OUTER.CROSS.CASE.WHEN.OVER.PARTITION.DUAL.SEQUENCE.NEXTVAL.CURRVAL`.split(`.`),Sn=[`BFILE`,`BINARY_DOUBLE`,`BINARY_FLOAT`,`BLOB`,`BOOLEAN`,`CHAR`,`CLOB`,`DATE`,`FLOAT`,`INTERVAL DAY TO SECOND`,`INTERVAL YEAR TO MONTH`,`JSON`,`LONG`,`NCHAR`,`NCLOB`,`NUMBER`,`NVARCHAR2`,`RAW`,`ROWID`,`TIMESTAMP`,`TIMESTAMP WITH LOCAL TIME ZONE`,`TIMESTAMP WITH TIME ZONE`,`VARCHAR2`,`XMLTYPE`],Cn={hashComments:!1,dashCommentNeedsSpace:!1,backslashEscapes:!1,doubleQuoteIsIdentifier:!0,bracketIdentifiers:!1,delimiterCommand:!1,dollarQuotes:!1,goBatchSeparator:!1,limitStyle:`fetch`,plsqlBlocks:!0};function wn(e){let{quoteIdentifier:t,quoteLiteral:n,qualify:r}=e;return{...i(e,{addColumn:`ADD (`,modify:`oracle`,qualifiedIndexNames:!0,dropIndexOnTable:!1,unqualifiedIndexTarget:!1,multiRowInsert:!1,mysqlAttributes:!1,fulltext:!1,upperCaseTypes:!1}),createTable(e){if(!e.name&&e.columns.length===0)return`-- Define a table name and columns to generate SQL.`;let i=x(e.name,`untitled`),a=r(e.database,i),o=e.columns.filter(e=>e.primaryKey),s=e.columns.map(e=>{let n=` ${t(x(e.name,`column`))} ${e.type}`;return e.length&&(n+=`(${e.length})`),e.autoIncrement&&(n+=` GENERATED BY DEFAULT AS IDENTITY`),e.defaultValue&&(n+=` DEFAULT ${e.defaultValue}`),e.notNull&&(n+=` NOT NULL`),n});o.length>0&&s.push(` PRIMARY KEY (${o.map(e=>t(e.name)).join(`, `)})`);let c=[`CREATE TABLE ${a} (\n${s.join(`,
355
- `)}\n);`];for(let n of e.indexes){if(n.type===`PRIMARY`||n.columns.length===0)continue;let o=n.type===`UNIQUE`?`UNIQUE `:``,s=n.type===`FULLTEXT`?` -- FULLTEXT is MySQL-only; consider an Oracle Text index`:``,l=r(e.database,x(n.name,`${i}_${n.columns.join(`_`)}_idx`));c.push(`CREATE ${o}INDEX ${l} ON ${a} (${n.columns.map(t).join(`, `)});${s}`)}e.options.comment&&c.push(`COMMENT ON TABLE ${a} IS ${n(e.options.comment)};`);for(let r of e.columns)r.comment&&c.push(`COMMENT ON COLUMN ${a}.${t(x(r.name,`column`))} IS ${n(r.comment)};`);return c.join(`
356
- `)}}}var Tn=S({id:`oracle`,label:`Oracle`,capabilities:{multipleDatabases:!1,schemas:!1,users:!1,procedures:!0,functions:!0,triggers:!0,events:!1,processList:!0,variables:!0,status:!1,flush:!1,tableProperties:!1,implicitCommitDdl:!0,transactions:!0},ddl:wn,explain:Be,introspect:vn,defaultPort:1521,binaryLiteral:e=>`HEXTORAW('${e}')`,booleanKeywords:!1,identifierQuote:`"`,queries:yn,syntax:Cn,dataTypes:Sn,functions:bn,reservedWords:xn}),En=S({...Dt,id:`neon`,label:`Neon`}),Dn=S({...Dt,id:`supabase`,label:`Supabase`}),On=S({...K,id:`d1`,label:`Cloudflare D1`,capabilities:{...K.capabilities,transactions:!1}}),kn=`__miniflare_do_name`,An={...K.introspect,async listTables(e,t){return(await K.introspect.listTables(e,t)).filter(e=>e.name!==kn)}},jn=S({...K,id:`do`,label:`Cloudflare DO (wrangler dev)`,capabilities:{...K.capabilities,transactions:!1},introspect:An}),Mn={mysql:F,maria:st,postgres:Ot,sqlite:Ht,mssql:ln,oracle:Tn,neon:En,supabase:Dn,d1:On,do:jn},Nn=[F,st,Ot,Ht,ln,Tn,En,Dn,On,jn];function Pn(e){return e&&Mn[e]||F}function Fn(e){return Pn(e?.dbms)}export{o as a,_ as i,Pn as n,Fn as r,Nn as t};
@@ -1 +0,0 @@
1
- import{r as e}from"./hePW80VL.js";import{c as t,h as n,n as r,t as i}from"./B1pia_Rg.js";import{l as a,m as o,t as s}from"./pjlgs2cl.js";import{a as c,i as l,n as u,r as d,t as f}from"./CiFkP-9S.js";import{t as p}from"./BCmzDvBt.js";import{a as m}from"./CS2mpWDL.js";import{n as h}from"./pneb1la9.js";import{t as g}from"./DPdwSUSw.js";import{H as _,_ as v,c as y,g as b,h as x,ot as S}from"./Bhquh17w.js";import{a as ee,i as te,n as ne,o as C,t as re}from"./BgkATqP8.js";var w=e(n(),1),T=a(),ie=e=>e instanceof Error?e.message:String(e),E=e=>e.hostName||e.host||e.file||e.id,D=5e4;function O({id:e,label:t,side:n,onChange:r,connections:i,disabled:a}){let{t:s}=o(),[p,g]=(0,w.useState)([]),[_,v]=(0,w.useState)([]),b=i.find(e=>e.id===n.connectionId);return(0,w.useEffect)(()=>{if(!b?.serverConnectionId)return;let e=!1;return(async()=>{try{let t=await h(b.id).introspect.listDatabases(m(b.serverConnectionId));if(e)return;g(t),t.includes(n.database)||r({connectionId:b.id,database:t[0]??``,table:``})}catch{e||g([])}})(),()=>{e=!0}},[b?.id,b?.serverConnectionId]),(0,w.useEffect)(()=>{if(!b?.serverConnectionId||!n.database)return;let e=!1;return(async()=>{try{let t=await h(b.id).introspect.listTables(m(b.serverConnectionId),n.database);if(e)return;let i=t.map(e=>e.name);v(i),n.table&&!i.includes(n.table)&&r({...n,table:``})}catch{e||v([])}})(),()=>{e=!0}},[b?.id,b?.serverConnectionId,n.database]),(0,T.jsxs)(`div`,{className:`space-y-2 rounded-md border p-3`,children:[(0,T.jsx)(y,{className:`font-medium`,children:t}),(0,T.jsxs)(f,{value:n.connectionId,onValueChange:e=>r({connectionId:e,database:``,table:``}),disabled:a,children:[(0,T.jsx)(l,{id:`${e}-conn`,className:`w-full`,children:(0,T.jsx)(c,{placeholder:s(`database.diff.pickConnection`)})}),(0,T.jsx)(u,{children:i.map(e=>(0,T.jsx)(d,{value:e.id,children:E(e)},e.id))})]}),(0,T.jsxs)(f,{value:n.database,onValueChange:e=>r({...n,database:e,table:``}),disabled:a||p.length===0,children:[(0,T.jsx)(l,{id:`${e}-db`,className:`w-full`,children:(0,T.jsx)(c,{placeholder:s(`database.diff.pickDatabase`)})}),(0,T.jsx)(u,{children:p.map(e=>(0,T.jsx)(d,{value:e,children:e},e))})]}),(0,T.jsxs)(f,{value:n.table,onValueChange:e=>r({...n,table:e}),disabled:a||_.length===0,children:[(0,T.jsx)(l,{id:`${e}-table`,className:`w-full`,children:(0,T.jsx)(c,{placeholder:s(`database.dataDiff.pickTable`)})}),(0,T.jsx)(u,{children:_.map(e=>(0,T.jsx)(d,{value:e,children:e},e))})]})]})}async function k(e,t){let n=await _({connectionId:e.connectionId,database:e.database,table:e.table,limit:D,onProgress:t}),r=[];for await(let e of n.pages)r.push(...e);return{rows:r,columns:n.fields.map(e=>e.name),capped:r.length>=D}}function A({diff:e,row:t,other:n,changed:r}){let{t:i}=o(),a=[...e.keyColumns,...e.compareColumns];return(0,T.jsxs)(`table`,{className:`w-full text-xs font-mono`,children:[(0,T.jsx)(`thead`,{className:`text-muted-foreground`,children:(0,T.jsxs)(`tr`,{children:[(0,T.jsx)(`th`,{className:`text-left font-normal pr-2`,children:i(`database.diff.column`)}),(0,T.jsx)(`th`,{className:`text-left font-normal pr-2`,children:i(`database.diff.source`)}),(0,T.jsx)(`th`,{className:`text-left font-normal`,children:i(`database.diff.target`)})]})}),(0,T.jsx)(`tbody`,{children:a.map(e=>(0,T.jsxs)(`tr`,{className:r?.includes(e)?`text-amber-600 dark:text-amber-400`:``,children:[(0,T.jsx)(`td`,{className:`pr-2 align-top whitespace-nowrap`,children:e}),(0,T.jsx)(`td`,{className:`pr-2 align-top break-all`,children:b(t[e])}),(0,T.jsx)(`td`,{className:`align-top break-all`,children:n?b(n[e]):`—`})]},e))})]})}function j(){let{t:e}=o(),n=r(e=>e.activeDialog),a=r(e=>e.closeDialog),c=i(`data-diff`),l=p(e=>e.activeConnections),u=(0,w.useMemo)(()=>l.filter(e=>e.serverConnectionId),[l]),d=p(e=>e.activeConnectionId),f=n===`data-diff`,[_,y]=(0,w.useState)(()=>c&&u.some(e=>e.id===c.connectionId)?{connectionId:c.connectionId,database:c.database,table:c.table}:{connectionId:d&&u.some(e=>e.id===d)?d:u[0]?.id??``,database:``,table:``}),[E,j]=(0,w.useState)(()=>({connectionId:u.find(e=>e.id!==_.connectionId)?.id??_.connectionId,database:``,table:``})),[M,N]=(0,w.useState)([]),[P,F]=(0,w.useState)(null),[I,L]=(0,w.useState)(!1),[R,z]=(0,w.useState)(`changed`),[B,V]=(0,w.useState)(0),[H,ae]=(0,w.useState)(!1),[U,W]=(0,w.useState)(!1),[G,K]=(0,w.useState)({source:null,target:null}),[q,J]=(0,w.useState)(null),oe=e=>j(e.database&&!e.table&&_.table?{...e,table:_.table}:e),Y=_.connectionId===E.connectionId&&_.database===E.database&&_.table===E.table,se=!!_.table&&!!E.table&&!Y,X=E.connectionId?h(E.connectionId):null;async function ce(){W(!0),J(null),F(null);try{let n=p.getState().activeConnections.find(e=>e.id===_.connectionId);if(!n?.serverConnectionId)throw Error(e(`services.query.notConnected`));let r=await h(_.connectionId).introspect.getPrimaryKeys(m(n.serverConnectionId),_.database,_.table);if(r.length===0)throw Error(e(`database.dataDiff.noPrimaryKey`,{table:_.table}));K({source:{loaded:0,total:null},target:{loaded:0,total:null}});let[i,a]=await Promise.all([k(_,e=>K(t=>({...t,source:e}))),k(E,e=>K(t=>({...t,target:e})))]);if(r.some(e=>!a.columns.includes(e)))throw Error(e(`database.dataDiff.keyMissingInTarget`,{columns:r.join(`, `)}));let o=v(i.rows,a.rows,r,i.columns,a.columns);N(r),L(i.capped||a.capped),F(o),z(o.changed.length>0?`changed`:o.added.length>0?`added`:`removed`),V(0),g(`compare_data`),t(`data_diff`,{source_dbms:h(_.connectionId).id,target_dbms:X?.id??`unknown`,added:o.added.length,changed:o.changed.length,removed:o.removed.length})}catch(e){J(ie(e))}finally{W(!1),K({source:null,target:null})}}let Z=e=>e?e.total===null?e.loaded.toLocaleString():`${e.loaded.toLocaleString()} / ${e.total.toLocaleString()}`:``,Q=(0,w.useMemo)(()=>P&&X?x(P,X,{database:E.database,table:E.table},{includeDeletes:H}):``,[P,X,E.database,E.table,H]);function le(){Q&&(S(E.connectionId,Q,E.database,e(`database.dataDiff.tabTitle`,{table:E.table})),a())}let $=P?R===`added`?P.added:R===`removed`?P.removed:P.changed.map(e=>e.source):[],ue=!!P&&P.added.length+P.changed.length+P.removed.length>0,de=e=>M.map(t=>b(e[t])).join(`, `);return(0,T.jsx)(re,{open:f,onOpenChange:e=>{e||a()},children:(0,T.jsxs)(ne,{className:`sm:max-w-[900px]`,children:[(0,T.jsx)(ee,{children:(0,T.jsx)(C,{children:e(`database.dataDiff.title`)})}),(0,T.jsxs)(`div`,{className:`space-y-3`,children:[(0,T.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,T.jsx)(O,{id:`ddiff-source`,label:e(`database.diff.source`),side:_,onChange:y,connections:u,disabled:U}),(0,T.jsx)(O,{id:`ddiff-target`,label:e(`database.diff.target`),side:E,onChange:oe,connections:u,disabled:U})]}),(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`database.dataDiff.hint`,{cap:D.toLocaleString()})}),Y&&_.table&&(0,T.jsx)(`p`,{className:`text-xs text-destructive`,children:e(`database.dataDiff.sameSide`)}),q&&(0,T.jsx)(`p`,{className:`text-sm text-destructive whitespace-pre-wrap`,children:q}),U&&(G.source||G.target)&&(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`database.dataDiff.loading`,{source:Z(G.source),target:Z(G.target)})}),P&&(0,T.jsxs)(`div`,{className:`space-y-2`,children:[(0,T.jsxs)(`div`,{className:`flex flex-wrap items-center gap-3 text-xs`,children:[(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:e(`database.dataDiff.summary`,{key:M.join(`, `),added:P.added.length,changed:P.changed.length,removed:P.removed.length,identical:P.identical})}),I&&(0,T.jsx)(`span`,{className:`text-amber-600 dark:text-amber-400`,children:e(`database.dataDiff.capped`,{cap:D.toLocaleString()})}),(P.sourceOnlyColumns.length>0||P.targetOnlyColumns.length>0)&&(0,T.jsx)(`span`,{className:`text-muted-foreground`,children:e(`database.dataDiff.ignoredColumns`,{columns:[...P.sourceOnlyColumns,...P.targetOnlyColumns].join(`, `)})})]}),(0,T.jsx)(`div`,{className:`flex gap-1 text-xs`,children:[`added`,`changed`,`removed`].map(t=>(0,T.jsx)(`button`,{type:`button`,onClick:()=>{z(t),V(0)},className:`rounded border px-2 py-0.5 ${R===t?`bg-accent`:``}`,children:e(`database.dataDiff.${t}`,{count:t===`added`?P.added.length:t===`removed`?P.removed.length:P.changed.length})},t))}),(0,T.jsxs)(`div`,{className:`grid grid-cols-[240px_1fr] gap-3 h-[280px]`,children:[(0,T.jsxs)(`ul`,{className:`overflow-auto rounded-md border text-sm font-mono`,children:[$.slice(0,2e3).map((e,t)=>(0,T.jsx)(`li`,{className:`px-2 py-1 cursor-pointer ${B===t?`bg-accent`:``}`,onClick:()=>V(t),children:de(e)},t)),$.length===0&&(0,T.jsx)(`li`,{className:`px-2 py-1 text-muted-foreground`,children:e(`database.dataDiff.none`)}),$.length>2e3&&(0,T.jsx)(`li`,{className:`px-2 py-1 text-muted-foreground`,children:e(`database.dataDiff.more`,{count:$.length-2e3})})]}),(0,T.jsx)(`div`,{className:`overflow-auto rounded-md border p-2`,children:$[B]?R===`changed`?(0,T.jsx)(A,{diff:P,row:P.changed[B].source,other:P.changed[B].target,changed:P.changed[B].columns}):R===`removed`?(0,T.jsx)(A,{diff:P,row:{},other:$[B]}):(0,T.jsx)(A,{diff:P,row:$[B]}):(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e(`database.diff.selectTable`)})})]}),(0,T.jsxs)(`label`,{className:`flex items-center gap-1.5 text-xs cursor-pointer`,children:[(0,T.jsx)(`input`,{type:`checkbox`,checked:H,onChange:e=>ae(e.target.checked)}),(0,T.jsx)(`span`,{className:H?`text-destructive`:``,children:e(`database.dataDiff.includeDeletes`)})]})]})]}),(0,T.jsxs)(te,{children:[(0,T.jsx)(s,{variant:`outline`,onClick:a,children:e(`database.diff.close`)}),(0,T.jsx)(s,{variant:`secondary`,onClick:()=>{ce()},disabled:!se||U,children:e(U?`database.diff.comparing`:`database.diff.compare`)}),(0,T.jsx)(s,{onClick:le,disabled:!ue,children:e(`database.diff.openScript`)})]})]})})}export{j as DataDiffDialog};