UNPKG

sql-formatter

Version:

Format whitespace in a SQL query to make it more readable

1 lines 319 kB
!function(E,T){"object"==typeof exports&&"object"==typeof module?module.exports=T():"function"==typeof define&&define.amd?define([],T):"object"==typeof exports?exports.sqlFormatter=T():E.sqlFormatter=T()}(this,(()=>(()=>{var E={833:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.snowflake=T.singlestoredb=T.transactsql=T.trino=T.sql=T.sqlite=T.spark=T.redshift=T.postgresql=T.plsql=T.n1ql=T.tidb=T.mysql=T.mariadb=T.hive=T.duckdb=T.db2i=T.db2=T.clickhouse=T.bigquery=void 0;var A=R(5028);Object.defineProperty(T,"bigquery",{enumerable:!0,get:function(){return A.bigquery}});var e=R(5084);Object.defineProperty(T,"clickhouse",{enumerable:!0,get:function(){return e.clickhouse}});var S=R(1718);Object.defineProperty(T,"db2",{enumerable:!0,get:function(){return S.db2}});var I=R(9274);Object.defineProperty(T,"db2i",{enumerable:!0,get:function(){return I.db2i}});var O=R(3018);Object.defineProperty(T,"duckdb",{enumerable:!0,get:function(){return O.duckdb}});var N=R(7340);Object.defineProperty(T,"hive",{enumerable:!0,get:function(){return N.hive}});var t=R(1378);Object.defineProperty(T,"mariadb",{enumerable:!0,get:function(){return t.mariadb}});var L=R(3358);Object.defineProperty(T,"mysql",{enumerable:!0,get:function(){return L.mysql}});var C=R(2066);Object.defineProperty(T,"tidb",{enumerable:!0,get:function(){return C.tidb}});var _=R(7328);Object.defineProperty(T,"n1ql",{enumerable:!0,get:function(){return _.n1ql}});var s=R(6910);Object.defineProperty(T,"plsql",{enumerable:!0,get:function(){return s.plsql}});var r=R(2912);Object.defineProperty(T,"postgresql",{enumerable:!0,get:function(){return r.postgresql}});var a=R(1642);Object.defineProperty(T,"redshift",{enumerable:!0,get:function(){return a.redshift}});var D=R(9774);Object.defineProperty(T,"spark",{enumerable:!0,get:function(){return D.spark}});var P=R(5784);Object.defineProperty(T,"sqlite",{enumerable:!0,get:function(){return P.sqlite}});var n=R(3446);Object.defineProperty(T,"sql",{enumerable:!0,get:function(){return n.sql}});var i=R(198);Object.defineProperty(T,"trino",{enumerable:!0,get:function(){return i.trino}});var o=R(918);Object.defineProperty(T,"transactsql",{enumerable:!0,get:function(){return o.transactsql}});var M=R(7146);Object.defineProperty(T,"singlestoredb",{enumerable:!0,get:function(){return M.singlestoredb}});var U=R(3686);Object.defineProperty(T,"snowflake",{enumerable:!0,get:function(){return U.snowflake}})},8235:function(E,T,R){"use strict";var A=this&&this.__importDefault||function(E){return E&&E.__esModule?E:{default:E}};Object.defineProperty(T,"__esModule",{value:!0}),T.createDialect=void 0;const e=A(R(7165)),S=new Map;T.createDialect=E=>{let T=S.get(E);return T||(T=I(E),S.set(E,T)),T};const I=E=>({tokenizer:new e.default(E.tokenizerOptions,E.name),formatOptions:O(E.formatOptions)}),O=E=>{var T;return{alwaysDenseOperators:E.alwaysDenseOperators||[],onelineClauses:Object.fromEntries(E.onelineClauses.map((E=>[E,!0]))),tabularOnelineClauses:Object.fromEntries((null!==(T=E.tabularOnelineClauses)&&void 0!==T?T:E.onelineClauses).map((E=>[E,!0])))}}},7163:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.expandSinglePhrase=T.expandPhrases=void 0,T.expandPhrases=E=>E.flatMap(T.expandSinglePhrase),T.expandSinglePhrase=E=>t(A(E)).map(R);const R=E=>E.replace(/ +/g," ").trim(),A=E=>({type:"mandatory_block",items:e(E,0)[0]}),e=(E,T,R)=>{const A=[];for(;E[T];){const[e,I]=S(E,T);if(A.push(e),"|"!==E[T=I]){if("}"===E[T]||"]"===E[T]){if(R!==E[T])throw new Error(`Unbalanced parenthesis in: ${E}`);return[A,++T]}if(T===E.length){if(R)throw new Error(`Unbalanced parenthesis in: ${E}`);return[A,T]}throw new Error(`Unexpected "${E[T]}"`)}T++}return[A,T]},S=(E,T)=>{const R=[];for(;;){const[A,e]=I(E,T);if(!A)break;R.push(A),T=e}return 1===R.length?[R[0],T]:[{type:"concatenation",items:R},T]},I=(E,T)=>{if("{"===E[T])return O(E,T+1);if("["===E[T])return N(E,T+1);{let R="";for(;E[T]&&/[A-Za-z0-9_ ]/.test(E[T]);)R+=E[T],T++;return[R,T]}},O=(E,T)=>{const[R,A]=e(E,T,"}");return[{type:"mandatory_block",items:R},A]},N=(E,T)=>{const[R,A]=e(E,T,"]");return[{type:"optional_block",items:R},A]},t=E=>{if("string"==typeof E)return[E];if("concatenation"===E.type)return E.items.map(t).reduce(L,[""]);if("mandatory_block"===E.type)return E.items.flatMap(t);if("optional_block"===E.type)return["",...E.items.flatMap(t)];throw new Error(`Unknown node type: ${E}`)},L=(E,T)=>{const R=[];for(const A of E)for(const E of T)R.push(A+E);return R}},260:function(E,T,R){"use strict";var A=this&&this.__createBinding||(Object.create?function(E,T,R,A){void 0===A&&(A=R);var e=Object.getOwnPropertyDescriptor(T,R);e&&!("get"in e?!T.__esModule:e.writable||e.configurable)||(e={enumerable:!0,get:function(){return T[R]}}),Object.defineProperty(E,A,e)}:function(E,T,R,A){void 0===A&&(A=R),E[A]=T[R]}),e=this&&this.__setModuleDefault||(Object.create?function(E,T){Object.defineProperty(E,"default",{enumerable:!0,value:T})}:function(E,T){E.default=T}),S=this&&this.__importStar||function(E){if(E&&E.__esModule)return E;var T={};if(null!=E)for(var R in E)"default"!==R&&Object.prototype.hasOwnProperty.call(E,R)&&A(T,E,R);return e(T,E),T};Object.defineProperty(T,"__esModule",{value:!0});const I=R(1044),O=R(3216),N=R(2437),t=R(1301),L=R(5112),C=S(R(240)),_=S(R(989));class s{constructor({cfg:E,dialectCfg:T,params:R,layout:A,inline:e=!1}){this.inline=!1,this.nodes=[],this.index=-1,this.cfg=E,this.dialectCfg=T,this.inline=e,this.params=R,this.layout=A}format(E){for(this.nodes=E,this.index=0;this.index<this.nodes.length;this.index++)this.formatNode(this.nodes[this.index]);return this.layout}formatNode(E){this.formatComments(E.leadingComments),this.formatNodeWithoutComments(E),this.formatComments(E.trailingComments)}formatNodeWithoutComments(E){switch(E.type){case t.NodeType.function_call:return this.formatFunctionCall(E);case t.NodeType.parameterized_data_type:return this.formatParameterizedDataType(E);case t.NodeType.array_subscript:return this.formatArraySubscript(E);case t.NodeType.property_access:return this.formatPropertyAccess(E);case t.NodeType.parenthesis:return this.formatParenthesis(E);case t.NodeType.between_predicate:return this.formatBetweenPredicate(E);case t.NodeType.case_expression:return this.formatCaseExpression(E);case t.NodeType.case_when:return this.formatCaseWhen(E);case t.NodeType.case_else:return this.formatCaseElse(E);case t.NodeType.clause:return this.formatClause(E);case t.NodeType.set_operation:return this.formatSetOperation(E);case t.NodeType.limit_clause:return this.formatLimitClause(E);case t.NodeType.all_columns_asterisk:return this.formatAllColumnsAsterisk(E);case t.NodeType.literal:return this.formatLiteral(E);case t.NodeType.identifier:return this.formatIdentifier(E);case t.NodeType.parameter:return this.formatParameter(E);case t.NodeType.operator:return this.formatOperator(E);case t.NodeType.comma:return this.formatComma(E);case t.NodeType.line_comment:return this.formatLineComment(E);case t.NodeType.block_comment:case t.NodeType.disable_comment:return this.formatBlockComment(E);case t.NodeType.data_type:return this.formatDataType(E);case t.NodeType.keyword:return this.formatKeywordNode(E)}}formatFunctionCall(E){this.withComments(E.nameKw,(()=>{this.layout.add(this.showFunctionKw(E.nameKw))})),this.formatNode(E.parenthesis)}formatParameterizedDataType(E){this.withComments(E.dataType,(()=>{this.layout.add(this.showDataType(E.dataType))})),this.formatNode(E.parenthesis)}formatArraySubscript(E){let T;switch(E.array.type){case t.NodeType.data_type:T=this.showDataType(E.array);break;case t.NodeType.keyword:T=this.showKw(E.array);break;default:T=this.showIdentifier(E.array)}this.withComments(E.array,(()=>{this.layout.add(T)})),this.formatNode(E.parenthesis)}formatPropertyAccess(E){this.formatNode(E.object),this.layout.add(L.WS.NO_SPACE,E.operator),this.formatNode(E.property)}formatParenthesis(E){const T=this.formatInlineExpression(E.children);T?(this.layout.add(E.openParen),this.layout.add(...T.getLayoutItems()),this.layout.add(L.WS.NO_SPACE,E.closeParen,L.WS.SPACE)):(this.layout.add(E.openParen,L.WS.NEWLINE),(0,O.isTabularStyle)(this.cfg)?(this.layout.add(L.WS.INDENT),this.layout=this.formatSubExpression(E.children)):(this.layout.indentation.increaseBlockLevel(),this.layout.add(L.WS.INDENT),this.layout=this.formatSubExpression(E.children),this.layout.indentation.decreaseBlockLevel()),this.layout.add(L.WS.NEWLINE,L.WS.INDENT,E.closeParen,L.WS.SPACE))}formatBetweenPredicate(E){this.layout.add(this.showKw(E.betweenKw),L.WS.SPACE),this.layout=this.formatSubExpression(E.expr1),this.layout.add(L.WS.NO_SPACE,L.WS.SPACE,this.showNonTabularKw(E.andKw),L.WS.SPACE),this.layout=this.formatSubExpression(E.expr2),this.layout.add(L.WS.SPACE)}formatCaseExpression(E){this.formatNode(E.caseKw),this.layout.indentation.increaseBlockLevel(),this.layout=this.formatSubExpression(E.expr),this.layout=this.formatSubExpression(E.clauses),this.layout.indentation.decreaseBlockLevel(),this.layout.add(L.WS.NEWLINE,L.WS.INDENT),this.formatNode(E.endKw)}formatCaseWhen(E){this.layout.add(L.WS.NEWLINE,L.WS.INDENT),this.formatNode(E.whenKw),this.layout=this.formatSubExpression(E.condition),this.formatNode(E.thenKw),this.layout=this.formatSubExpression(E.result)}formatCaseElse(E){this.layout.add(L.WS.NEWLINE,L.WS.INDENT),this.formatNode(E.elseKw),this.layout=this.formatSubExpression(E.result)}formatClause(E){this.isOnelineClause(E)?this.formatClauseInOnelineStyle(E):(0,O.isTabularStyle)(this.cfg)?this.formatClauseInTabularStyle(E):this.formatClauseInIndentedStyle(E)}isOnelineClause(E){return(0,O.isTabularStyle)(this.cfg)?this.dialectCfg.tabularOnelineClauses[E.nameKw.text]:this.dialectCfg.onelineClauses[E.nameKw.text]}formatClauseInIndentedStyle(E){this.layout.add(L.WS.NEWLINE,L.WS.INDENT,this.showKw(E.nameKw),L.WS.NEWLINE),this.layout.indentation.increaseTopLevel(),this.layout.add(L.WS.INDENT),this.layout=this.formatSubExpression(E.children),this.layout.indentation.decreaseTopLevel()}formatClauseInOnelineStyle(E){this.layout.add(L.WS.NEWLINE,L.WS.INDENT,this.showKw(E.nameKw),L.WS.SPACE),this.layout=this.formatSubExpression(E.children)}formatClauseInTabularStyle(E){this.layout.add(L.WS.NEWLINE,L.WS.INDENT,this.showKw(E.nameKw),L.WS.SPACE),this.layout.indentation.increaseTopLevel(),this.layout=this.formatSubExpression(E.children),this.layout.indentation.decreaseTopLevel()}formatSetOperation(E){this.layout.add(L.WS.NEWLINE,L.WS.INDENT,this.showKw(E.nameKw),L.WS.NEWLINE),this.layout.add(L.WS.INDENT),this.layout=this.formatSubExpression(E.children)}formatLimitClause(E){this.withComments(E.limitKw,(()=>{this.layout.add(L.WS.NEWLINE,L.WS.INDENT,this.showKw(E.limitKw))})),this.layout.indentation.increaseTopLevel(),(0,O.isTabularStyle)(this.cfg)?this.layout.add(L.WS.SPACE):this.layout.add(L.WS.NEWLINE,L.WS.INDENT),E.offset?(this.layout=this.formatSubExpression(E.offset),this.layout.add(L.WS.NO_SPACE,",",L.WS.SPACE),this.layout=this.formatSubExpression(E.count)):this.layout=this.formatSubExpression(E.count),this.layout.indentation.decreaseTopLevel()}formatAllColumnsAsterisk(E){this.layout.add("*",L.WS.SPACE)}formatLiteral(E){this.layout.add(E.text,L.WS.SPACE)}formatIdentifier(E){this.layout.add(this.showIdentifier(E),L.WS.SPACE)}formatParameter(E){this.layout.add(this.params.get(E),L.WS.SPACE)}formatOperator({text:E}){this.cfg.denseOperators||this.dialectCfg.alwaysDenseOperators.includes(E)?this.layout.add(L.WS.NO_SPACE,E):":"===E?this.layout.add(L.WS.NO_SPACE,E,L.WS.SPACE):this.layout.add(E,L.WS.SPACE)}formatComma(E){this.inline?this.layout.add(L.WS.NO_SPACE,",",L.WS.SPACE):this.layout.add(L.WS.NO_SPACE,",",L.WS.NEWLINE,L.WS.INDENT)}withComments(E,T){this.formatComments(E.leadingComments),T(),this.formatComments(E.trailingComments)}formatComments(E){E&&E.forEach((E=>{E.type===t.NodeType.line_comment?this.formatLineComment(E):this.formatBlockComment(E)}))}formatLineComment(E){(0,I.isMultiline)(E.precedingWhitespace||"")?this.layout.add(L.WS.NEWLINE,L.WS.INDENT,E.text,L.WS.MANDATORY_NEWLINE,L.WS.INDENT):this.layout.getLayoutItems().length>0?this.layout.add(L.WS.NO_NEWLINE,L.WS.SPACE,E.text,L.WS.MANDATORY_NEWLINE,L.WS.INDENT):this.layout.add(E.text,L.WS.MANDATORY_NEWLINE,L.WS.INDENT)}formatBlockComment(E){E.type===t.NodeType.block_comment&&this.isMultilineBlockComment(E)?(this.splitBlockComment(E.text).forEach((E=>{this.layout.add(L.WS.NEWLINE,L.WS.INDENT,E)})),this.layout.add(L.WS.NEWLINE,L.WS.INDENT)):this.layout.add(E.text,L.WS.SPACE)}isMultilineBlockComment(E){return(0,I.isMultiline)(E.text)||(0,I.isMultiline)(E.precedingWhitespace||"")}isDocComment(E){const T=E.split(/\n/);return/^\/\*\*?$/.test(T[0])&&T.slice(1,T.length-1).every((E=>/^\s*\*/.test(E)))&&/^\s*\*\/$/.test((0,I.last)(T))}splitBlockComment(E){return this.isDocComment(E)?E.split(/\n/).map((E=>/^\s*\*/.test(E)?" "+E.replace(/^\s*/,""):E)):E.split(/\n/).map((E=>E.replace(/^\s*/,"")))}formatSubExpression(E){return new s({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:this.layout,inline:this.inline}).format(E)}formatInlineExpression(E){const T=this.params.getPositionalParameterIndex();try{return new s({cfg:this.cfg,dialectCfg:this.dialectCfg,params:this.params,layout:new _.default(this.cfg.expressionWidth),inline:!0}).format(E)}catch(E){if(E instanceof _.InlineLayoutError)return void this.params.setPositionalParameterIndex(T);throw E}}formatKeywordNode(E){switch(E.tokenType){case N.TokenType.RESERVED_JOIN:return this.formatJoin(E);case N.TokenType.AND:case N.TokenType.OR:case N.TokenType.XOR:return this.formatLogicalOperator(E);default:return this.formatKeyword(E)}}formatJoin(E){(0,O.isTabularStyle)(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(L.WS.NEWLINE,L.WS.INDENT,this.showKw(E),L.WS.SPACE),this.layout.indentation.increaseTopLevel()):this.layout.add(L.WS.NEWLINE,L.WS.INDENT,this.showKw(E),L.WS.SPACE)}formatKeyword(E){this.layout.add(this.showKw(E),L.WS.SPACE)}formatLogicalOperator(E){"before"===this.cfg.logicalOperatorNewline?(0,O.isTabularStyle)(this.cfg)?(this.layout.indentation.decreaseTopLevel(),this.layout.add(L.WS.NEWLINE,L.WS.INDENT,this.showKw(E),L.WS.SPACE),this.layout.indentation.increaseTopLevel()):this.layout.add(L.WS.NEWLINE,L.WS.INDENT,this.showKw(E),L.WS.SPACE):this.layout.add(this.showKw(E),L.WS.NEWLINE,L.WS.INDENT)}formatDataType(E){this.layout.add(this.showDataType(E),L.WS.SPACE)}showKw(E){return(0,C.isTabularToken)(E.tokenType)?(0,C.default)(this.showNonTabularKw(E),this.cfg.indentStyle):this.showNonTabularKw(E)}showNonTabularKw(E){switch(this.cfg.keywordCase){case"preserve":return(0,I.equalizeWhitespace)(E.raw);case"upper":return E.text;case"lower":return E.text.toLowerCase()}}showFunctionKw(E){return(0,C.isTabularToken)(E.tokenType)?(0,C.default)(this.showNonTabularFunctionKw(E),this.cfg.indentStyle):this.showNonTabularFunctionKw(E)}showNonTabularFunctionKw(E){switch(this.cfg.functionCase){case"preserve":return(0,I.equalizeWhitespace)(E.raw);case"upper":return E.text;case"lower":return E.text.toLowerCase()}}showIdentifier(E){if(E.quoted)return E.text;switch(this.cfg.identifierCase){case"preserve":return E.text;case"upper":return E.text.toUpperCase();case"lower":return E.text.toLowerCase()}}showDataType(E){switch(this.cfg.dataTypeCase){case"preserve":return(0,I.equalizeWhitespace)(E.raw);case"upper":return E.text;case"lower":return E.text.toLowerCase()}}}T.default=s,E.exports=T.default},5758:function(E,T,R){"use strict";var A=this&&this.__createBinding||(Object.create?function(E,T,R,A){void 0===A&&(A=R);var e=Object.getOwnPropertyDescriptor(T,R);e&&!("get"in e?!T.__esModule:e.writable||e.configurable)||(e={enumerable:!0,get:function(){return T[R]}}),Object.defineProperty(E,A,e)}:function(E,T,R,A){void 0===A&&(A=R),E[A]=T[R]}),e=this&&this.__setModuleDefault||(Object.create?function(E,T){Object.defineProperty(E,"default",{enumerable:!0,value:T})}:function(E,T){E.default=T}),S=this&&this.__importStar||function(E){if(E&&E.__esModule)return E;var T={};if(null!=E)for(var R in E)"default"!==R&&Object.prototype.hasOwnProperty.call(E,R)&&A(T,E,R);return e(T,E),T},I=this&&this.__importDefault||function(E){return E&&E.__esModule?E:{default:E}};Object.defineProperty(T,"__esModule",{value:!0});const O=R(3216),N=I(R(8264)),t=R(1858),L=I(R(260)),C=S(R(5112)),_=I(R(7963));T.default=class{constructor(E,T){this.dialect=E,this.cfg=T,this.params=new N.default(this.cfg.params)}format(E){const T=this.parse(E);return this.formatAst(T).trimEnd()}parse(E){return(0,t.createParser)(this.dialect.tokenizer).parse(E,this.cfg.paramTypes||{})}formatAst(E){return E.map((E=>this.formatStatement(E))).join("\n".repeat(this.cfg.linesBetweenQueries+1))}formatStatement(E){const T=new L.default({cfg:this.cfg,dialectCfg:this.dialect.formatOptions,params:this.params,layout:new C.default(new _.default((0,O.indentString)(this.cfg)))}).format(E.children);return E.hasSemicolon&&(this.cfg.newlineBeforeSemicolon?T.add(C.WS.NEWLINE,";"):T.add(C.WS.NO_NEWLINE,";")),T.toString()}},E.exports=T.default},7963:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0});const A=R(1044),e="top-level";T.default=class{constructor(E){this.indent=E,this.indentTypes=[]}getSingleIndent(){return this.indent}getLevel(){return this.indentTypes.length}increaseTopLevel(){this.indentTypes.push(e)}increaseBlockLevel(){this.indentTypes.push("block-level")}decreaseTopLevel(){this.indentTypes.length>0&&(0,A.last)(this.indentTypes)===e&&this.indentTypes.pop()}decreaseBlockLevel(){for(;this.indentTypes.length>0&&this.indentTypes.pop()===e;);}},E.exports=T.default},989:function(E,T,R){"use strict";var A=this&&this.__createBinding||(Object.create?function(E,T,R,A){void 0===A&&(A=R);var e=Object.getOwnPropertyDescriptor(T,R);e&&!("get"in e?!T.__esModule:e.writable||e.configurable)||(e={enumerable:!0,get:function(){return T[R]}}),Object.defineProperty(E,A,e)}:function(E,T,R,A){void 0===A&&(A=R),E[A]=T[R]}),e=this&&this.__setModuleDefault||(Object.create?function(E,T){Object.defineProperty(E,"default",{enumerable:!0,value:T})}:function(E,T){E.default=T}),S=this&&this.__importStar||function(E){if(E&&E.__esModule)return E;var T={};if(null!=E)for(var R in E)"default"!==R&&Object.prototype.hasOwnProperty.call(E,R)&&A(T,E,R);return e(T,E),T},I=this&&this.__importDefault||function(E){return E&&E.__esModule?E:{default:E}};Object.defineProperty(T,"__esModule",{value:!0}),T.InlineLayoutError=void 0;const O=I(R(7963)),N=S(R(5112));class t extends N.default{constructor(E){super(new O.default("")),this.expressionWidth=E,this.length=0,this.trailingSpace=!1}add(...E){if(E.forEach((E=>this.addToLength(E))),this.length>this.expressionWidth)throw new L;super.add(...E)}addToLength(E){if("string"==typeof E)this.length+=E.length,this.trailingSpace=!1;else{if(E===N.WS.MANDATORY_NEWLINE||E===N.WS.NEWLINE)throw new L;E===N.WS.INDENT||E===N.WS.SINGLE_INDENT||E===N.WS.SPACE?this.trailingSpace||(this.length++,this.trailingSpace=!0):E!==N.WS.NO_NEWLINE&&E!==N.WS.NO_SPACE||this.trailingSpace&&(this.trailingSpace=!1,this.length--)}}}T.default=t;class L extends Error{}T.InlineLayoutError=L},5112:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.WS=void 0;const A=R(1044);var e;!function(E){E[E.SPACE=0]="SPACE",E[E.NO_SPACE=1]="NO_SPACE",E[E.NO_NEWLINE=2]="NO_NEWLINE",E[E.NEWLINE=3]="NEWLINE",E[E.MANDATORY_NEWLINE=4]="MANDATORY_NEWLINE",E[E.INDENT=5]="INDENT",E[E.SINGLE_INDENT=6]="SINGLE_INDENT"}(e=T.WS||(T.WS={})),T.default=class{constructor(E){this.indentation=E,this.items=[]}add(...E){for(const T of E)switch(T){case e.SPACE:this.items.push(e.SPACE);break;case e.NO_SPACE:this.trimHorizontalWhitespace();break;case e.NO_NEWLINE:this.trimWhitespace();break;case e.NEWLINE:this.trimHorizontalWhitespace(),this.addNewline(e.NEWLINE);break;case e.MANDATORY_NEWLINE:this.trimHorizontalWhitespace(),this.addNewline(e.MANDATORY_NEWLINE);break;case e.INDENT:this.addIndentation();break;case e.SINGLE_INDENT:this.items.push(e.SINGLE_INDENT);break;default:this.items.push(T)}}trimHorizontalWhitespace(){for(;S((0,A.last)(this.items));)this.items.pop()}trimWhitespace(){for(;I((0,A.last)(this.items));)this.items.pop()}addNewline(E){if(this.items.length>0)switch((0,A.last)(this.items)){case e.NEWLINE:this.items.pop(),this.items.push(E);break;case e.MANDATORY_NEWLINE:break;default:this.items.push(E)}}addIndentation(){for(let E=0;E<this.indentation.getLevel();E++)this.items.push(e.SINGLE_INDENT)}toString(){return this.items.map((E=>this.itemToString(E))).join("")}getLayoutItems(){return this.items}itemToString(E){switch(E){case e.SPACE:return" ";case e.NEWLINE:case e.MANDATORY_NEWLINE:return"\n";case e.SINGLE_INDENT:return this.indentation.getSingleIndent();default:return E}}};const S=E=>E===e.SPACE||E===e.SINGLE_INDENT,I=E=>E===e.SPACE||E===e.SINGLE_INDENT||E===e.NEWLINE},8264:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.default=class{constructor(E){this.params=E,this.index=0}get({key:E,text:T}){return this.params?E?this.params[E]:this.params[this.index++]:T}getPositionalParameterIndex(){return this.index}setPositionalParameterIndex(E){this.index=E}},E.exports=T.default},3216:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.isTabularStyle=T.indentString=void 0,T.indentString=function(E){return"tabularLeft"===E.indentStyle||"tabularRight"===E.indentStyle?" ".repeat(10):E.useTabs?"\t":" ".repeat(E.tabWidth)},T.isTabularStyle=function(E){return"tabularLeft"===E.indentStyle||"tabularRight"===E.indentStyle}},240:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.isTabularToken=void 0;const A=R(2437);T.default=function(E,T){if("standard"===T)return E;let R=[];return E.length>=10&&E.includes(" ")&&([E,...R]=E.split(" ")),(E="tabularLeft"===T?E.padEnd(9," "):E.padStart(9," "))+["",...R].join(" ")},T.isTabularToken=function(E){return(0,A.isLogicalOperator)(E)||E===A.TokenType.RESERVED_CLAUSE||E===A.TokenType.RESERVED_SELECT||E===A.TokenType.RESERVED_SET_OPERATION||E===A.TokenType.RESERVED_JOIN||E===A.TokenType.LIMIT}},5028:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.bigquery=void 0;const A=R(7163),e=R(2437),S=R(6543),I=R(1636),O=(0,A.expandPhrases)(["SELECT [ALL | DISTINCT] [AS STRUCT | AS VALUE]"]),N=(0,A.expandPhrases)(["WITH [RECURSIVE]","FROM","WHERE","GROUP BY","HAVING","QUALIFY","WINDOW","PARTITION BY","ORDER BY","LIMIT","OFFSET","OMIT RECORD IF","INSERT [INTO]","VALUES","SET","MERGE [INTO]","WHEN [NOT] MATCHED [BY SOURCE | BY TARGET] [THEN]","UPDATE SET","CLUSTER BY","FOR SYSTEM_TIME AS OF","WITH CONNECTION","WITH PARTITION COLUMNS","REMOTE WITH CONNECTION"]),t=(0,A.expandPhrases)(["CREATE [OR REPLACE] [TEMP|TEMPORARY|SNAPSHOT|EXTERNAL] TABLE [IF NOT EXISTS]"]),L=(0,A.expandPhrases)(["CREATE [OR REPLACE] [MATERIALIZED] VIEW [IF NOT EXISTS]","UPDATE","DELETE [FROM]","DROP [SNAPSHOT | EXTERNAL] TABLE [IF EXISTS]","ALTER TABLE [IF EXISTS]","ADD COLUMN [IF NOT EXISTS]","DROP COLUMN [IF EXISTS]","RENAME TO","ALTER COLUMN [IF EXISTS]","SET DEFAULT COLLATE","SET OPTIONS","DROP NOT NULL","SET DATA TYPE","ALTER SCHEMA [IF EXISTS]","ALTER [MATERIALIZED] VIEW [IF EXISTS]","ALTER BI_CAPACITY","TRUNCATE TABLE","CREATE SCHEMA [IF NOT EXISTS]","DEFAULT COLLATE","CREATE [OR REPLACE] [TEMP|TEMPORARY|TABLE] FUNCTION [IF NOT EXISTS]","CREATE [OR REPLACE] PROCEDURE [IF NOT EXISTS]","CREATE [OR REPLACE] ROW ACCESS POLICY [IF NOT EXISTS]","GRANT TO","FILTER USING","CREATE CAPACITY","AS JSON","CREATE RESERVATION","CREATE ASSIGNMENT","CREATE SEARCH INDEX [IF NOT EXISTS]","DROP SCHEMA [IF EXISTS]","DROP [MATERIALIZED] VIEW [IF EXISTS]","DROP [TABLE] FUNCTION [IF EXISTS]","DROP PROCEDURE [IF EXISTS]","DROP ROW ACCESS POLICY","DROP ALL ROW ACCESS POLICIES","DROP CAPACITY [IF EXISTS]","DROP RESERVATION [IF EXISTS]","DROP ASSIGNMENT [IF EXISTS]","DROP SEARCH INDEX [IF EXISTS]","DROP [IF EXISTS]","GRANT","REVOKE","DECLARE","EXECUTE IMMEDIATE","LOOP","END LOOP","REPEAT","END REPEAT","WHILE","END WHILE","BREAK","LEAVE","CONTINUE","ITERATE","FOR","END FOR","BEGIN","BEGIN TRANSACTION","COMMIT TRANSACTION","ROLLBACK TRANSACTION","RAISE","RETURN","CALL","ASSERT","EXPORT DATA"]),C=(0,A.expandPhrases)(["UNION {ALL | DISTINCT}","EXCEPT DISTINCT","INTERSECT DISTINCT"]),_=(0,A.expandPhrases)(["JOIN","{LEFT | RIGHT | FULL} [OUTER] JOIN","{INNER | CROSS} JOIN"]),s=(0,A.expandPhrases)(["TABLESAMPLE SYSTEM","ANY TYPE","ALL COLUMNS","NOT DETERMINISTIC","{ROWS | RANGE} BETWEEN","IS [NOT] DISTINCT FROM"]),r=(0,A.expandPhrases)([]);T.bigquery={name:"bigquery",tokenizerOptions:{reservedSelect:O,reservedClauses:[...N,...L,...t],reservedSetOperations:C,reservedJoins:_,reservedKeywordPhrases:s,reservedDataTypePhrases:r,reservedKeywords:I.keywords,reservedDataTypes:I.dataTypes,reservedFunctionNames:S.functions,extraParens:["[]"],stringTypes:[{quote:'""".."""',prefixes:["R","B","RB","BR"]},{quote:"'''..'''",prefixes:["R","B","RB","BR"]},'""-bs',"''-bs",{quote:'""-raw',prefixes:["R","B","RB","BR"],requirePrefix:!0},{quote:"''-raw",prefixes:["R","B","RB","BR"],requirePrefix:!0}],identTypes:["``"],identChars:{dashes:!0},paramTypes:{positional:!0,named:["@"],quoted:["@"]},variableTypes:[{regex:String.raw`@@\w+`}],lineCommentTypes:["--","#"],operators:["&","|","^","~",">>","<<","||","=>"],postProcess:function(E){return function(E){let T=e.EOF_TOKEN;return E.map((E=>"OFFSET"===E.text&&"["===T.text?(T=E,Object.assign(Object.assign({},E),{type:e.TokenType.RESERVED_FUNCTION_NAME})):(T=E,E)))}(function(E){var T;const R=[];for(let A=0;A<E.length;A++){const S=E[A];if((e.isToken.ARRAY(S)||e.isToken.STRUCT(S))&&"<"===(null===(T=E[A+1])||void 0===T?void 0:T.text)){const T=D(E,A+1),I=E.slice(A,T+1);R.push({type:e.TokenType.IDENTIFIER,raw:I.map(a("raw")).join(""),text:I.map(a("text")).join(""),start:S.start}),A=T}else R.push(S)}return R}(E))}},formatOptions:{onelineClauses:[...t,...L],tabularOnelineClauses:L}};const a=E=>T=>T.type===e.TokenType.IDENTIFIER||T.type===e.TokenType.COMMA?T[E]+" ":T[E];function D(E,T){let R=0;for(let A=T;A<E.length;A++){const T=E[A];if("<"===T.text?R++:">"===T.text?R--:">>"===T.text&&(R-=2),0===R)return A}return E.length-1}},6543:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.functions=void 0,T.functions=["KEYS.NEW_KEYSET","KEYS.ADD_KEY_FROM_RAW_BYTES","AEAD.DECRYPT_BYTES","AEAD.DECRYPT_STRING","AEAD.ENCRYPT","KEYS.KEYSET_CHAIN","KEYS.KEYSET_FROM_JSON","KEYS.KEYSET_TO_JSON","KEYS.ROTATE_KEYSET","KEYS.KEYSET_LENGTH","ANY_VALUE","ARRAY_AGG","AVG","CORR","COUNT","COUNTIF","COVAR_POP","COVAR_SAMP","MAX","MIN","ST_CLUSTERDBSCAN","STDDEV_POP","STDDEV_SAMP","STRING_AGG","SUM","VAR_POP","VAR_SAMP","ANY_VALUE","ARRAY_AGG","ARRAY_CONCAT_AGG","AVG","BIT_AND","BIT_OR","BIT_XOR","COUNT","COUNTIF","LOGICAL_AND","LOGICAL_OR","MAX","MIN","STRING_AGG","SUM","APPROX_COUNT_DISTINCT","APPROX_QUANTILES","APPROX_TOP_COUNT","APPROX_TOP_SUM","ARRAY_CONCAT","ARRAY_LENGTH","ARRAY_TO_STRING","GENERATE_ARRAY","GENERATE_DATE_ARRAY","GENERATE_TIMESTAMP_ARRAY","ARRAY_REVERSE","OFFSET","SAFE_OFFSET","ORDINAL","SAFE_ORDINAL","BIT_COUNT","PARSE_BIGNUMERIC","PARSE_NUMERIC","SAFE_CAST","CURRENT_DATE","EXTRACT","DATE","DATE_ADD","DATE_SUB","DATE_DIFF","DATE_TRUNC","DATE_FROM_UNIX_DATE","FORMAT_DATE","LAST_DAY","PARSE_DATE","UNIX_DATE","CURRENT_DATETIME","DATETIME","EXTRACT","DATETIME_ADD","DATETIME_SUB","DATETIME_DIFF","DATETIME_TRUNC","FORMAT_DATETIME","LAST_DAY","PARSE_DATETIME","ERROR","EXTERNAL_QUERY","S2_CELLIDFROMPOINT","S2_COVERINGCELLIDS","ST_ANGLE","ST_AREA","ST_ASBINARY","ST_ASGEOJSON","ST_ASTEXT","ST_AZIMUTH","ST_BOUNDARY","ST_BOUNDINGBOX","ST_BUFFER","ST_BUFFERWITHTOLERANCE","ST_CENTROID","ST_CENTROID_AGG","ST_CLOSESTPOINT","ST_CLUSTERDBSCAN","ST_CONTAINS","ST_CONVEXHULL","ST_COVEREDBY","ST_COVERS","ST_DIFFERENCE","ST_DIMENSION","ST_DISJOINT","ST_DISTANCE","ST_DUMP","ST_DWITHIN","ST_ENDPOINT","ST_EQUALS","ST_EXTENT","ST_EXTERIORRING","ST_GEOGFROM","ST_GEOGFROMGEOJSON","ST_GEOGFROMTEXT","ST_GEOGFROMWKB","ST_GEOGPOINT","ST_GEOGPOINTFROMGEOHASH","ST_GEOHASH","ST_GEOMETRYTYPE","ST_INTERIORRINGS","ST_INTERSECTION","ST_INTERSECTS","ST_INTERSECTSBOX","ST_ISCOLLECTION","ST_ISEMPTY","ST_LENGTH","ST_MAKELINE","ST_MAKEPOLYGON","ST_MAKEPOLYGONORIENTED","ST_MAXDISTANCE","ST_NPOINTS","ST_NUMGEOMETRIES","ST_NUMPOINTS","ST_PERIMETER","ST_POINTN","ST_SIMPLIFY","ST_SNAPTOGRID","ST_STARTPOINT","ST_TOUCHES","ST_UNION","ST_UNION_AGG","ST_WITHIN","ST_X","ST_Y","FARM_FINGERPRINT","MD5","SHA1","SHA256","SHA512","HLL_COUNT.INIT","HLL_COUNT.MERGE","HLL_COUNT.MERGE_PARTIAL","HLL_COUNT.EXTRACT","MAKE_INTERVAL","EXTRACT","JUSTIFY_DAYS","JUSTIFY_HOURS","JUSTIFY_INTERVAL","JSON_EXTRACT","JSON_QUERY","JSON_EXTRACT_SCALAR","JSON_VALUE","JSON_EXTRACT_ARRAY","JSON_QUERY_ARRAY","JSON_EXTRACT_STRING_ARRAY","JSON_VALUE_ARRAY","TO_JSON_STRING","ABS","SIGN","IS_INF","IS_NAN","IEEE_DIVIDE","RAND","SQRT","POW","POWER","EXP","LN","LOG","LOG10","GREATEST","LEAST","DIV","SAFE_DIVIDE","SAFE_MULTIPLY","SAFE_NEGATE","SAFE_ADD","SAFE_SUBTRACT","MOD","ROUND","TRUNC","CEIL","CEILING","FLOOR","COS","COSH","ACOS","ACOSH","SIN","SINH","ASIN","ASINH","TAN","TANH","ATAN","ATANH","ATAN2","RANGE_BUCKET","FIRST_VALUE","LAST_VALUE","NTH_VALUE","LEAD","LAG","PERCENTILE_CONT","PERCENTILE_DISC","NET.IP_FROM_STRING","NET.SAFE_IP_FROM_STRING","NET.IP_TO_STRING","NET.IP_NET_MASK","NET.IP_TRUNC","NET.IPV4_FROM_INT64","NET.IPV4_TO_INT64","NET.HOST","NET.PUBLIC_SUFFIX","NET.REG_DOMAIN","RANK","DENSE_RANK","PERCENT_RANK","CUME_DIST","NTILE","ROW_NUMBER","SESSION_USER","CORR","COVAR_POP","COVAR_SAMP","STDDEV_POP","STDDEV_SAMP","STDDEV","VAR_POP","VAR_SAMP","VARIANCE","ASCII","BYTE_LENGTH","CHAR_LENGTH","CHARACTER_LENGTH","CHR","CODE_POINTS_TO_BYTES","CODE_POINTS_TO_STRING","CONCAT","CONTAINS_SUBSTR","ENDS_WITH","FORMAT","FROM_BASE32","FROM_BASE64","FROM_HEX","INITCAP","INSTR","LEFT","LENGTH","LPAD","LOWER","LTRIM","NORMALIZE","NORMALIZE_AND_CASEFOLD","OCTET_LENGTH","REGEXP_CONTAINS","REGEXP_EXTRACT","REGEXP_EXTRACT_ALL","REGEXP_INSTR","REGEXP_REPLACE","REGEXP_SUBSTR","REPLACE","REPEAT","REVERSE","RIGHT","RPAD","RTRIM","SAFE_CONVERT_BYTES_TO_STRING","SOUNDEX","SPLIT","STARTS_WITH","STRPOS","SUBSTR","SUBSTRING","TO_BASE32","TO_BASE64","TO_CODE_POINTS","TO_HEX","TRANSLATE","TRIM","UNICODE","UPPER","CURRENT_TIME","TIME","EXTRACT","TIME_ADD","TIME_SUB","TIME_DIFF","TIME_TRUNC","FORMAT_TIME","PARSE_TIME","CURRENT_TIMESTAMP","EXTRACT","STRING","TIMESTAMP","TIMESTAMP_ADD","TIMESTAMP_SUB","TIMESTAMP_DIFF","TIMESTAMP_TRUNC","FORMAT_TIMESTAMP","PARSE_TIMESTAMP","TIMESTAMP_SECONDS","TIMESTAMP_MILLIS","TIMESTAMP_MICROS","UNIX_SECONDS","UNIX_MILLIS","UNIX_MICROS","GENERATE_UUID","COALESCE","IF","IFNULL","NULLIF","AVG","BIT_AND","BIT_OR","BIT_XOR","CORR","COUNT","COVAR_POP","COVAR_SAMP","EXACT_COUNT_DISTINCT","FIRST","GROUP_CONCAT","GROUP_CONCAT_UNQUOTED","LAST","MAX","MIN","NEST","NTH","QUANTILES","STDDEV","STDDEV_POP","STDDEV_SAMP","SUM","TOP","UNIQUE","VARIANCE","VAR_POP","VAR_SAMP","BIT_COUNT","BOOLEAN","BYTES","CAST","FLOAT","HEX_STRING","INTEGER","STRING","COALESCE","GREATEST","IFNULL","IS_INF","IS_NAN","IS_EXPLICITLY_DEFINED","LEAST","NVL","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","DATE","DATE_ADD","DATEDIFF","DAY","DAYOFWEEK","DAYOFYEAR","FORMAT_UTC_USEC","HOUR","MINUTE","MONTH","MSEC_TO_TIMESTAMP","NOW","PARSE_UTC_USEC","QUARTER","SEC_TO_TIMESTAMP","SECOND","STRFTIME_UTC_USEC","TIME","TIMESTAMP","TIMESTAMP_TO_MSEC","TIMESTAMP_TO_SEC","TIMESTAMP_TO_USEC","USEC_TO_TIMESTAMP","UTC_USEC_TO_DAY","UTC_USEC_TO_HOUR","UTC_USEC_TO_MONTH","UTC_USEC_TO_WEEK","UTC_USEC_TO_YEAR","WEEK","YEAR","FORMAT_IP","PARSE_IP","FORMAT_PACKED_IP","PARSE_PACKED_IP","JSON_EXTRACT","JSON_EXTRACT_SCALAR","ABS","ACOS","ACOSH","ASIN","ASINH","ATAN","ATANH","ATAN2","CEIL","COS","COSH","DEGREES","EXP","FLOOR","LN","LOG","LOG2","LOG10","PI","POW","RADIANS","RAND","ROUND","SIN","SINH","SQRT","TAN","TANH","REGEXP_MATCH","REGEXP_EXTRACT","REGEXP_REPLACE","CONCAT","INSTR","LEFT","LENGTH","LOWER","LPAD","LTRIM","REPLACE","RIGHT","RPAD","RTRIM","SPLIT","SUBSTR","UPPER","TABLE_DATE_RANGE","TABLE_DATE_RANGE_STRICT","TABLE_QUERY","HOST","DOMAIN","TLD","AVG","COUNT","MAX","MIN","STDDEV","SUM","CUME_DIST","DENSE_RANK","FIRST_VALUE","LAG","LAST_VALUE","LEAD","NTH_VALUE","NTILE","PERCENT_RANK","PERCENTILE_CONT","PERCENTILE_DISC","RANK","RATIO_TO_REPORT","ROW_NUMBER","CURRENT_USER","EVERY","FROM_BASE64","HASH","FARM_FINGERPRINT","IF","POSITION","SHA1","SOME","TO_BASE64","BQ.JOBS.CANCEL","BQ.REFRESH_MATERIALIZED_VIEW","OPTIONS","PIVOT","UNPIVOT"]},1636:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.dataTypes=T.keywords=void 0,T.keywords=["ALL","AND","ANY","AS","ASC","ASSERT_ROWS_MODIFIED","AT","BETWEEN","BY","CASE","CAST","COLLATE","CONTAINS","CREATE","CROSS","CUBE","CURRENT","DEFAULT","DEFINE","DESC","DISTINCT","ELSE","END","ENUM","ESCAPE","EXCEPT","EXCLUDE","EXISTS","EXTRACT","FALSE","FETCH","FOLLOWING","FOR","FROM","FULL","GROUP","GROUPING","GROUPS","HASH","HAVING","IF","IGNORE","IN","INNER","INTERSECT","INTO","IS","JOIN","LATERAL","LEFT","LIMIT","LOOKUP","MERGE","NATURAL","NEW","NO","NOT","NULL","NULLS","OF","ON","OR","ORDER","OUTER","OVER","PARTITION","PRECEDING","PROTO","RANGE","RECURSIVE","RESPECT","RIGHT","ROLLUP","ROWS","SELECT","SET","SOME","TABLE","TABLESAMPLE","THEN","TO","TREAT","TRUE","UNBOUNDED","UNION","UNNEST","USING","WHEN","WHERE","WINDOW","WITH","WITHIN","SAFE","LIKE","COPY","CLONE","IN","OUT","INOUT","RETURNS","LANGUAGE","CASCADE","RESTRICT","DETERMINISTIC"],T.dataTypes=["ARRAY","BOOL","BYTES","DATE","DATETIME","GEOGRAPHY","INTERVAL","INT64","INT","SMALLINT","INTEGER","BIGINT","TINYINT","BYTEINT","NUMERIC","DECIMAL","BIGNUMERIC","BIGDECIMAL","FLOAT64","STRING","STRUCT","TIME","TIMEZONE"]},5084:(E,T,R)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.clickhouse=void 0;const A=R(7163),e=R(2437),S=R(4407),I=R(460),O=(0,A.expandPhrases)(["SELECT [DISTINCT]","MODIFY QUERY SELECT [DISTINCT]"]),N=(0,A.expandPhrases)(["SET","WITH","FROM","SAMPLE","PREWHERE","WHERE","GROUP BY","HAVING","QUALIFY","ORDER BY","LIMIT","SETTINGS","INTO OUTFILE","FORMAT","WINDOW","PARTITION BY","INSERT INTO","VALUES","DEPENDS ON","MOVE {USER | ROLE | QUOTA | SETTINGS PROFILE | ROW POLICY}","GRANT","REVOKE","CHECK GRANT","SET [DEFAULT] ROLE [NONE | ALL | ALL EXCEPT]","DEDUPLICATE BY","MODIFY STATISTICS","TYPE","ALTER USER [IF EXISTS]","ALTER [ROW] POLICY [IF EXISTS]","DROP {USER | ROLE | QUOTA | PROFILE | SETTINGS PROFILE | ROW POLICY | POLICY} [IF EXISTS]"]),t=(0,A.expandPhrases)(["CREATE [OR REPLACE] [TEMPORARY] TABLE [IF NOT EXISTS]"]),L=(0,A.expandPhrases)(["ALL EXCEPT","ON CLUSTER","UPDATE","SYSTEM RELOAD {DICTIONARIES | DICTIONARY | FUNCTIONS | FUNCTION | ASYNCHRONOUS METRICS}","SYSTEM DROP {DNS CACHE | MARK CACHE | ICEBERG METADATA CACHE | TEXT INDEX DICTIONARY CACHE | TEXT INDEX HEADER CACHE | TEXT INDEX POSTINGS CACHE | REPLICA | DATABASE REPLICA | UNCOMPRESSED CACHE | COMPILED EXPRESSION CACHE | QUERY CONDITION CACHE | QUERY CACHE | FORMAT SCHEMA CACHE | FILESYSTEM CACHE}","SYSTEM FLUSH LOGS","SYSTEM RELOAD {CONFIG | USERS}","SYSTEM SHUTDOWN","SYSTEM KILL","SYSTEM FLUSH DISTRIBUTED","SYSTEM START DISTRIBUTED SENDS","SYSTEM {STOP | START} {LISTEN | MERGES | TTL MERGES | MOVES | FETCHES | REPLICATED SENDS | REPLICATION QUEUES | PULLING REPLICATION LOG}","SYSTEM {SYNC | RESTART | RESTORE} REPLICA","SYSTEM {SYNC | RESTORE} DATABASE REPLICA","SYSTEM RESTART REPLICAS","SYSTEM UNFREEZE","SYSTEM WAIT LOADING PARTS","SYSTEM {LOAD | UNLOAD} PRIMARY KEY","SYSTEM {STOP | START} [REPLICATED] VIEW","SYSTEM {STOP | START} VIEWS","SYSTEM {REFRESH | CANCEL | WAIT} VIEW","WITH NAME","SHOW [CREATE] {TABLE | TEMPORARY TABLE | DICTIONARY | VIEW | DATABASE}","SHOW DATABASES [[NOT] {LIKE | ILIKE}]","SHOW [FULL] [TEMPORARY] TABLES [FROM | IN]","SHOW [EXTENDED] [FULL] COLUMNS {FROM | IN}","ATTACH {TABLE | DICTIONARY | DATABASE} [IF NOT EXISTS]","DETACH {TABLE | DICTIONARY | DATABASE} [IF EXISTS]","PERMANENTLY","SYNC","DROP {DICTIONARY | DATABASE | PROFILE | VIEW | FUNCTION | NAMED COLLECTION} [IF EXISTS]","DROP [TEMPORARY] TABLE [IF EXISTS] [IF EMPTY]","RENAME TO","EXISTS [TEMPORARY] {TABLE | DICTIONARY | DATABASE}","KILL QUERY","OPTIMIZE TABLE","RENAME {TABLE | DICTIONARY | DATABASE}","EXCHANGE {TABLES | DICTIONARIES}","TRUNCATE TABLE [IF EXISTS]","EXECUTE AS","USE","TO","UNDROP TABLE","CREATE {DATABASE | NAMED COLLECTION} [IF NOT EXISTS]","CREATE [OR REPLACE] {VIEW | DICTIONARY} [IF NOT EXISTS]","CREATE MATERIALIZED VIEW [IF NOT EXISTS]","CREATE FUNCTION","CREATE {USER | ROLE | QUOTA | SETTINGS PROFILE} [IF NOT EXISTS | OR REPLACE]","CREATE [ROW] POLICY [IF NOT EXISTS | OR REPLACE]","REPLACE [TEMPORARY] TABLE [IF NOT EXISTS]","ALTER {ROLE | QUOTA | SETTINGS PROFILE} [IF EXISTS]","ALTER [TEMPORARY] TABLE","ALTER NAMED COLLECTION [IF EXISTS]","GRANTEES","NOT IDENTIFIED","RESET AUTHENTICATION METHODS TO NEW","{IDENTIFIED | ADD IDENTIFIED} [WITH | BY]","[ADD | DROP] HOST {LOCAL | NAME | REGEXP | IP | LIKE}","VALID UNTIL","DROP [ALL] {PROFILES | SETTINGS}","{ADD | MODIFY} SETTINGS","ADD PROFILES","APPLY DELETED MASK","IN PARTITION","{ADD | DROP | RENAME | CLEAR | COMMENT | MODIFY | ALTER | MATERIALIZE} COLUMN","{DETACH | DROP | ATTACH | FETCH | MOVE} {PART | PARTITION}","DROP DETACHED {PART | PARTITION}","{FORGET | REPLACE} PARTITION","CLEAR COLUMN","{FREEZE | UNFREEZE} [PARTITION]","CLEAR INDEX","TO {DISK | VOLUME}","[DELETE | REWRITE PARTS] IN PARTITION","{MODIFY | RESET} SETTING","DELETE WHERE","MODIFY ORDER BY","{MODIFY | REMOVE} SAMPLE BY","{ADD | MATERIALIZE | CLEAR} INDEX [IF NOT EXISTS]","DROP INDEX [IF EXISTS]","GRANULARITY","AFTER","FIRST","ADD CONSTRAINT [IF NOT EXISTS]","DROP CONSTRAINT [IF EXISTS]","MODIFY TTL","REMOVE TTL","ADD STATISTICS [IF NOT EXISTS]","{DROP | CLEAR} STATISTICS [IF EXISTS]","MATERIALIZE STATISTICS [ALL | IF EXISTS]","KEYED BY","NOT KEYED","FOR [RANDOMIZED] INTERVAL","AS {PERMISSIVE | RESTRICTIVE}","FOR SELECT","ADD PROJECTION [IF NOT EXISTS]","{DROP | MATERIALIZE | CLEAR} PROJECTION [IF EXISTS]","REFRESH {EVERY | AFTER}","RANDOMIZE FOR","APPEND","APPEND TO","DELETE FROM","EXPLAIN [AST | SYNTAX | QUERY TREE | PLAN | PIPELINE | ESTIMATE | TABLE OVERRIDE]","GRANT ON CLUSTER","GRANT CURRENT GRANTS","WITH GRANT OPTION","REVOKE ON CLUSTER","ADMIN OPTION FOR","CHECK TABLE","PARTITION ID","{DESC | DESCRIBE} TABLE"]),C=(0,A.expandPhrases)(["UNION [ALL | DISTINCT]","PARALLEL WITH"]),_=(0,A.expandPhrases)(["[GLOBAL] [INNER|LEFT|RIGHT|FULL|CROSS] [OUTER|SEMI|ANTI|ANY|ALL|ASOF] JOIN","[LEFT] ARRAY JOIN"]),s=(0,A.expandPhrases)(["{ROWS | RANGE} BETWEEN","ALTER MATERIALIZE STATISTICS"]);T.clickhouse={name:"clickhouse",tokenizerOptions:{reservedSelect:O,reservedClauses:[...N,...t,...L],reservedSetOperations:C,reservedJoins:_,reservedKeywordPhrases:s,reservedKeywords:I.keywords,reservedDataTypes:I.dataTypes,reservedFunctionNames:S.functions,extraParens:["[]","{}"],lineCommentTypes:["#","--"],nestedBlockComments:!1,underscoresInNumbers:!0,stringTypes:["$$","''-qq-bs"],identTypes:['""-qq-bs',"``"],paramTypes:{custom:[{regex:String.raw`\{[^:']+:[^}]+\}`,key:E=>{const T=/\{([^:]+):/.exec(E);return T?T[1].trim():E}}]},operators:["%","||","?",":","==","<=>","->"],postProcess:function(E){return E.map(((T,R)=>{const A=E[R+1]||e.EOF_TOKEN,S=E[R-1]||e.EOF_TOKEN;return T.type!==e.TokenType.RESERVED_SELECT||A.type!==e.TokenType.COMMA&&S.type!==e.TokenType.RESERVED_CLAUSE&&S.type!==e.TokenType.COMMA?e.isToken.SET(T)&&A.type===e.TokenType.OPEN_PAREN?Object.assign(Object.assign({},T),{type:e.TokenType.RESERVED_FUNCTION_NAME}):T:Object.assign(Object.assign({},T),{type:e.TokenType.RESERVED_KEYWORD})}))}},formatOptions:{onelineClauses:[...t,...L],tabularOnelineClauses:L}}},4407:(E,T)=>{"use strict";Object.defineProperty(T,"__esModule",{value:!0}),T.functions=void 0,T.functions=["BIT_AND","BIT_OR","BIT_XOR","BLAKE3","CAST","CHARACTER_LENGTH","CHAR_LENGTH","COVAR_POP","COVAR_SAMP","CRC32","CRC32IEEE","CRC64","DATE","DATE_DIFF","DATE_FORMAT","DATE_TRUNC","DAY","DAYOFMONTH","DAYOFWEEK","DAYOFYEAR","FORMAT_BYTES","FQDN","FROM_BASE64","FROM_DAYS","FROM_UNIXTIME","HOUR","INET6_ATON","INET6_NTOA","INET_ATON","INET_NTOA","IPv4CIDRToRange","IPv4NumToString","IPv4NumToStringClassC","IPv4StringToNum","IPv4StringToNumOrDefault","IPv4StringToNumOrNull","IPv4ToIPv6","IPv6CIDRToRange","IPv6NumToString","IPv6StringToNum","IPv6StringToNumOrDefault","IPv6StringToNumOrNull","JSONAllPaths","JSONAllPathsWithTypes","JSONArrayLength","JSONDynamicPaths","JSONDynamicPathsWithTypes","JSONExtract","JSONExtractArrayRaw","JSONExtractArrayRawCaseInsensitive","JSONExtractBool","JSONExtractBoolCaseInsensitive","JSONExtractCaseInsensitive","JSONExtractFloat","JSONExtractFloatCaseInsensitive","JSONExtractInt","JSONExtractIntCaseInsensitive","JSONExtractKeys","JSONExtractKeysAndValues","JSONExtractKeysAndValuesCaseInsensitive","JSONExtractKeysAndValuesRaw","JSONExtractKeysAndValuesRawCaseInsensitive","JSONExtractKeysCaseInsensitive","JSONExtractRaw","JSONExtractRawCaseInsensitive","JSONExtractString","JSONExtractStringCaseInsensitive","JSONExtractUInt","JSONExtractUIntCaseInsensitive","JSONHas","JSONKey","JSONLength","JSONMergePatch","JSONSharedDataPaths","JSONSharedDataPathsWithTypes","JSONType","JSON_ARRAY_LENGTH","JSON_EXISTS","JSON_QUERY","JSON_VALUE","L1Distance","L1Norm","L1Normalize","L2Distance","L2Norm","L2Normalize","L2SquaredDistance","L2SquaredNorm","LAST_DAY","LinfDistance","LinfNorm","LinfNormalize","LpDistance","LpNorm","LpNormalize","MACNumToString","MACStringToNum","MACStringToOUI","MAP_FROM_ARRAYS","MD4","MD5","MILLISECOND","MINUTE","MONTH","OCTET_LENGTH","QUARTER","REGEXP_EXTRACT","REGEXP_MATCHES","REGEXP_REPLACE","RIPEMD160","SCHEMA","SECOND","SHA1","SHA224","SHA256","SHA384","SHA512","SHA512_256","STD","STDDEV_POP","STDDEV_SAMP","ST_LineFromWKB","ST_MLineFromWKB","ST_MPolyFromWKB","ST_PointFromWKB","ST_PolyFromWKB","SUBSTRING_INDEX","SVG","TIMESTAMP_DIFF","TO_BASE64","TO_DAYS","TO_UNIXTIME","ULIDStringToDateTime","URLHash","URLHierarchy","URLPathHierarchy","UTCTimestamp","UTC_timestamp","UUIDNumToString","UUIDStringToNum","UUIDToNum","UUIDv7ToDateTime","VAR_POP","VAR_SAMP","YEAR","YYYYMMDDToDate","YYYYMMDDToDate32","YYYYMMDDhhmmssToDateTime","YYYYMMDDhhmmssToDateTime64","_CAST","__actionName","__bitBoolMaskAnd","__bitBoolMaskOr","__bitSwapLastTwo","__bitWrapperFunc","__getScalar","__patchPartitionID","__scalarSubqueryResult","abs","accurateCast","accurateCastOrDefault","accurateCastOrNull","acos","acosh","addDate","addDays","addHours","addInterval","addMicroseconds","addMilliseconds","addMinutes","addMonths","addNanoseconds","addQuarters","addSeconds","addTupleOfIntervals","addWeeks","addYears","addressToLine","addressToLineWithInlines","addressToSymbol","aes_decrypt_mysql","aes_encrypt_mysql","age","aggThrow","alphaTokens","analysisOfVariance","anova","any","anyHeavy","anyLast","anyLastRespectNulls","anyLast_respect_nulls","anyRespectNulls","anyValueRespectNulls","any_respect_nulls","any_value","any_value_respect_nulls","appendTrailingCharIfAbsent","approx_top_count","approx_top_k","approx_top_sum","argMax","argMin","array","arrayAUC","arrayAUCPR","arrayAll","arrayAvg","arrayCompact","arrayConcat","arrayCount","arrayCumSum","arrayCumSumNonNegative","arrayDifference","arrayDistinct","arrayDotProduct","arrayElement","arrayElementOrNull","arrayEnumerate","arrayEnumerateDense","arrayEnumerateDenseRanked","arrayEnumerateUniq","arrayEnumerateUniqRanked","arrayExists","arrayFill","arrayFilter","arrayFirst","arrayFirstIndex","arrayFirstOrNull","arrayFlatten","arrayFold","arrayIntersect","arrayJaccardIndex","arrayJoin","arrayLast","arrayLastIndex","arrayLastOrNull","arrayLevenshteinDistance","arrayLevenshteinDistanceWeighted","arrayMap","arrayMax","arrayMin","arrayNormalizedGini","arrayPRAUC","arrayPartialReverseSort","arrayPartialShuffle","arrayPartialSort","arrayPopBack","arrayPopFront","arrayProduct","arrayPushBack","arrayPushFront","arrayROCAUC","arrayRandomSample","arrayReduce","arrayReduceInRanges","arrayResize","arrayReverse","arrayReverseFill","arrayReverseSort","arrayReverseSplit","arrayRotateLeft","arrayRotateRight","arrayShiftLeft","arrayShiftRight","arrayShingles","arrayShuffle","arraySimilarity","arraySlice","arraySort","arraySplit","arrayStringConcat","arraySum","arraySymmetricDifference","arrayUnion","arrayUniq","arrayWithConstant","arrayZip","arrayZipUnaligned","array_agg","array_concat_agg","ascii","asin","asinh","assumeNotNull","atan","atan2","atanh","authenticatedUser","avg","avgWeighted","bar","base32Decode","base32Encode","base58Decode","base58Encode","base64Decode","base64Encode","base64URLDecode","base64URLEncode","basename","bech32Decode","bech32Encode","bin","bitAnd","bitCount","bitHammingDistance","bitNot","bitOr","bitPositionsToArray","bitRotateLeft","bitRotateRight","bitShiftLeft","bitShiftRight","bitSlice","bitTest","bitTestAll","bitTestAny","bitXor","bitmapAnd","bitmapAndCardinality","bitmapAndnot","bitmapAndnotCardinality","bitmapBuild","bitmapCardinality","bitmapContains","bitmapHasAll","bitmapHasAny","bitmapMax","bitmapMin","bitmapOr","bitmapOrCardinality","bitmapSubsetInRange","bitmapSubsetLimit","bitmapToArray","bitmapTransform","bitmapXor","bitmapXorCardinality","bitmaskToArray","bitmaskToList","blockNumber","blockSerializedSize","blockSize","boundingRatio","buildId","byteHammingDistance","byteSize","byteSlice","byteSwap","caseWithExpr","caseWithExpression","caseWithoutExpr","caseWithoutExpression","catboostEvaluate","categoricalInformationValue","cbrt","ceil","ceiling","changeDay","changeHour","changeMinute","changeMonth","changeSecond","changeYear","char","cityHash64","clamp","coalesce","colorOKLCHToSRGB","colorSRGBToOKLCH","compareSubstrings","concat","concatAssumeInjective","concatWithSeparator","concatWithSeparatorAssumeInjective","concat_ws","connectionId","connection_id","contingency","convertCharset","corr","corrMatrix","corrStable","cos","cosh","cosineDistance","count","countDigits","countEqual","countMatches","countMatchesCaseInsensitive","countSubstrings","countSubstringsCaseInsensitive","countSubstringsCaseInsensitiveUTF8","covarPop","covarPopMatrix","covarPopStable","covarSamp","covarSampMatrix","covarSampStable","cramersV","cramersVBiasCorrected","curdate","currentDatabase","currentProfiles","currentQueryID","currentRoles","currentSchemas","currentUser","current_database","current_date","current_query_id","current_schemas","current_timestamp","current_user","cutFragment","cutIPv6","cutQueryString","cutQueryStringAndFragment","cutToFirstSignificantSubdomain","cutToFirstSignificantSubdomainCustom","cutToFirstSignificantSubdomainCustomRFC","cutToFirstSignificantSubdomainCustomWithWWW","cutToFirstSignificantSubdomainCustomWithWWWRFC","cutToFirstSignificantSubdomainRFC","cutToFirstSignificantSubdomainWithWWW","cutToFirstSignificantSubdomainWithWWWRFC","cutURLParameter","cutWWW","damerauLevenshteinDistance","dateDiff","dateName","dateTime64ToSnowflake","dateTime64ToSnowflakeID","dateTimeToSnowflake","dateTimeToSnowflakeID","dateTimeToUUIDv7","dateTrunc","date_bin","date_diff","decodeHTMLComponent","decodeURLComponent","decodeURLFormComponent","decodeXMLComponent","decrypt","defaultProfiles","defaultRoles","defaultValueOfArgumentType","defaultValueOfTypeName","degrees","deltaSum","deltaSumTimestamp","demangle","denseRank","dense_rank","detectCharset","detectLanguage","detectLanguageMixed","detectLanguageUnknown","detectProgrammingLanguage","detectTonality","dictGet","dictGetAll","dictGetChildren","dictGetDate","dictGetDateOrDefault","dictGetDateTime","dictGetDateTimeOrDefault","dictGetDescendants","dictGetFloat32","dictGetFloat32OrDefault","dictGetFloat64","dictGetFloat64OrDefault","dictGetHierarchy","dictGetIPv4","dictGetIPv4OrDefault","dictGetIPv6","dictGetIPv6OrDefault","dictGetInt16","dictGetInt16OrDefault","dictGetInt32","dictGetInt32OrDefault","dictGetInt64","dictGetInt64OrDefault","dictGetInt8","dictGetInt8OrDefault","dictGetOrDefault","dictGetOrNull","dictGetString","dictGetStringOrDefault","dictGetUInt16","dictGetUInt16OrDefault","dictGetUInt32","dictGetUInt32OrDefault","dictGetUInt64","dictGetUInt64OrDefault","dictGetUInt8","dictGetUInt8OrDefault","dictGetUUID","dictGetUUIDOrDefault","dictHas","dictIsIn","displayName","distanceL1","distanceL2","distanceL2Squared","distanceLinf","distanceLp","distinctDynamicTypes","distinctJSONPaths","distinctJSONPathsAndTypes","divide","divideDecimal","divideOrNull","domain","domainRFC","domainWithoutWWW","domainWithoutWWWRFC","dotProduct","dumpColumnStructure","dynamicElement","dynamicType","e","editDistance","editDistanceUTF8","empty","emptyArrayDate","emptyArrayDateTime","emptyArrayFloat32","emptyArrayFloat64","emptyArrayInt16","emptyArrayInt32","emptyArrayInt64","emptyArrayInt8","emptyArrayString","emptyArrayToSingle","emptyArrayUInt16","emptyArrayUInt32","emptyArrayUInt64","emptyArrayUInt8","enabledProfiles","enabledRoles","encodeURLComponent","encodeURLFormComponent","encodeXMLComponent","encrypt","endsWith","endsWithUTF8","entropy","equals","erf","erfc","errorCodeToName","estimateCompressionRatio","evalMLMethod","exp","exp10","exp2","exponentialMovingAverage","exponentialTimeDecayedAvg","exponentialTimeDecayedCount","exponentialTimeDecayedMax","exponentialTimeDecayedSum","extract","extractAll","extractAllGroups","extractAllGroupsHorizontal","extractAllGroupsVertical","extractGroups","extractKeyValuePairs","extractKeyValuePairsWithEscaping","extractTextFromHTML","extractURLParameter","extractURLParameterNames","extractURLParameters","factorial","farmFingerprint64","farmHash64","file","filesystemAvailable","filesystemCapacity","filesystemUnreserved","finalizeAggregation","financialInternalRateOfReturn","financialInternalRateOfReturnExtended","financialNetPresentValue","financialNetPresentValueExtended","firstLine","firstSignificantSubdomain","firstSignificantSubdomainCustom","firstSignificantSubdomainCustomRFC","firstSignificantSubdomainRFC","firstValueRespectNulls","first_value","first_value_respect_nulls","flameGraph","flatten","flattenTuple","floor","for