@rex0220/kintone-sql-tools 3.79.0 → 3.80.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.
@@ -1,21 +1,21 @@
1
- "use strict";var Zs=Object.defineProperty;var Qy=Object.getOwnPropertyDescriptor;var Zy=Object.getOwnPropertyNames;var eg=Object.prototype.hasOwnProperty;var tg=(e,t)=>{for(var n in t)Zs(e,n,{get:t[n],enumerable:!0})},ng=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Zy(t))!eg.call(e,i)&&i!==n&&Zs(e,i,{get:()=>t[i],enumerable:!(r=Qy(t,i))||r.enumerable});return e};var rg=e=>ng(Zs({},"__esModule",{value:!0}),e);var NN={};tg(NN,{KsqlEngineError:()=>De,createReadonlyKintoneClient:()=>Ny,explainQuery:()=>zy,runBatch:()=>Hy,runQuery:()=>jy,version:()=>bN});module.exports=rg(NN);async function Ge(e,t,n,r,i={}){let o=i.pageSize??ig,a=Math.max(1,i.parallel??og),s=i.maxRecords??ag,l=i.onLimit??"error",c=i.stopAfter;if(c!==void 0&&(!Number.isSafeInteger(c)||c<=0||c>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let d=c??s,u=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,m=0,y=jp(n,R),g=await Yp(e,t,y,u,o,m);if(Hp(g,i),p.push(...g.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new We(E)}if(g.records.length<o)return p;for(m+=o,m>=el&&(R=zp(g.records),m=0);;){if(c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new We(E)}let S=d-p.length,A=Math.ceil(S/o),I=Math.max(1,Math.min(a,A)),N=[];for(let D=0;D<I;D++){let k=m+D*o;if(k>=el)break;N.push(k)}let v=jp(n,R),b=await Promise.all(N.map(D=>Yp(e,t,v,u,o,D)));for(let D of b)Hp(D,i);let M=!1;for(let D of b){if(p.push(...D.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new We(E)}if(D.records.length<o){M=!0;break}}if(M)break;if(m+=o*N.length,m>=el){let D=b[b.length-1];R=zp(D.records),m=0}}return p}function Hp(e,t){e.searchAborted&&t.onSearchAborted?.()}function qp(e){return e.map(t=>{let n=t.$id?.value;if(n===void 0)throw new Error('\u30EC\u30B3\u30FC\u30C9\u306B $id \u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002fields \u306B "$id" \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002');let r=Number(n);if(!Number.isFinite(r))throw new Error(`$id \u306E\u5024\u304C\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${n}`);return r})}var ig=500,og=1,ag=1e4,el=1e4;async function Yp(e,t,n,r,i,o){let a=sg(n,i,o);return e({app:t,query:a,fields:r})}function jp(e,t){let n=e.trimEnd();if(t<=0)return n?`${n} order by $id asc`:"order by $id asc";let r=`$id > ${t} order by $id asc`;return n?`(${n}) and ${r}`:r}function sg(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function zp(e){let n=e[e.length-1]?.$id?.value;if(n===void 0)return 0;let r=Number(n);return Number.isFinite(r)?r:0}var We=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var lg=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function ug(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function we(e){let t=lg.exec(e.trim());if(t===null)return null;let n=ug(t[5],t[6]);if(n===null)return null;let r=t[3]??t[4]??"",i=`${t[2]??""}${r}`.replace(/^0+/,"");if(i==="")return{sign:0,coefficient:"0",scale:0};let o=r.length-n;if(!Number.isSafeInteger(o))return null;let a=/0+$/.exec(i)?.[0].length??0;return a>0&&(i=i.slice(0,-a),o-=a,!Number.isSafeInteger(o))||!Number.isSafeInteger(i.length-o)?null:{sign:t[1]==="-"?-1:1,coefficient:i,scale:o}}function tl(e){if(e.sign===0)return"0";let t=e.coefficient,n;if(e.scale<=0)n=`${t}${"0".repeat(-e.scale)}`;else if(t.length>e.scale){let r=t.length-e.scale;n=`${t.slice(0,r)}.${t.slice(r)}`}else n=`0.${"0".repeat(e.scale-t.length)}${t}`;return e.sign===-1?`-${n}`:n}function Jp(e){let t=we(e);return t===null?null:tl(t)}function cg(e,t){let n=e.coefficient.length-e.scale,r=t.coefficient.length-t.scale;if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r))throw new Error("ArgumentError: exact decimal scale is outside the supported range.");if(n!==r)return n<r?-1:1;let i=Math.max(e.coefficient.length,t.coefficient.length);for(let o=0;o<i;o++){let a=o<e.coefficient.length?e.coefficient.charCodeAt(o):48,s=o<t.coefficient.length?t.coefficient.charCodeAt(o):48;if(a!==s)return a<s?-1:1}return 0}function Io(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=cg(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function wo(e,t){let n=we(e),r=we(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Io(n,r)}var Ce="__NO_FROM__";function nl(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function bo(e){return e.windowKind==="AGGREGATE"}function rl(e){return e.windowKind==="VALUE"}function be(e){return{type:"NUMBER",value:Number(e),raw:e}}function q(e){let t=e.raw??String(e.value);return Jp(t)??t}function Xp(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function pg(e){return`${e.tableAlias??""}\0${e.field}`}function ee(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=pg(o);t.has(a)||(t.add(a),n.push(o))}let r=e.grouping.sets.map(i=>({items:[...i.items]}));return{type:"GROUPING_SETS",source:e.grouping.source,allItems:n,sets:r}}function Qp(e){return ee(e).type!=="NONE"}function Zp(e,t){let n=ee(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),c=r.get(l.canonicalId);if(c)return c;let d={...l,field:s};return r.set(d.canonicalId,d),d},o=n.allItems.map(i).filter((s,l,c)=>c.findIndex(d=>d.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function Po(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Xt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function dg(e){return e==="SELECT"||e==="VALIDATE"||e==="UNION"||e==="WITH"||e==="EXPLAIN"||e==="SHOW_APPS"||e==="DESCRIBE"||e==="CREATE_TEMP_TABLE"||e==="DROP_TEMP_TABLE"||e==="SET_VARIABLE"||e==="DECLARE_VARIABLE"||e==="ASSERT"||e==="EXIT"}function il(e){return Xt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function jn(e){return!il(e)&&(dg(e.type)||Xt(e.type))}function ed(e){return jn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var td=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Me(e,t){for(let n of t)e.add(n)}function No(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&td.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>No(i,t)):No(r,t))}function Co(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&!td.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>Co(i,t)):Co(r,t))}function Jt(e){let t=new Set;if(Xt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Me(t,Yn(e));break;case"UNION":Me(t,rd(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Me(t,Jt(n.query));Me(t,Jt(e.query));break;case"CREATE_TEMP_TABLE":Me(t,Jt(e.query));break;default:break}return No(e)&&t.add("STATISTICAL_AGGREGATE"),Co(e)&&t.add("AGGREGATE"),t}function nd(e){return Jt(e).size>0}function rd(e){let t=e.left.type==="SELECT"?Yn(e.left):rd(e.left);return Me(t,Yn(e.right)),e.all||t.add("DISTINCT"),t}function Yn(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=ee(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Me(t,Yn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Me(t,Hn(i.condition));return Me(t,Hn(e.where)),Me(t,Hn(e.having)),No(e)&&t.add("STATISTICAL_AGGREGATE"),Co(e)&&t.add("AGGREGATE"),t}function Hn(e){let t=new Set;if(e===null)return t;switch(e.type){case"BINARY":(e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY")&&Me(t,Yn(e.right.query));break;case"LOGICAL":Me(t,Hn(e.left)),Me(t,Hn(e.right));break;case"NOT":case"GROUP":Me(t,Hn(e.expr));break;case"EXISTS":Me(t,Yn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function id(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function od(e){if(!e||typeof e!="object")return null;let t=e;return t.type!=="INSERT"?null:Array.isArray(t.values)?t.values.length:null}var Oo=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),mn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Dr=new Set([...mn,...Oo]),yn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",vt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function ne(e){return Oo.has(e)}function zn(e){return mn.has(e)}function at(e){return Dr.has(e)}var fg=Object.freeze({v1:Object.freeze({operations:new Set(["PATCH"]),insert:!1,upsert:!1,multipleBlocks:!1,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),"v1.1":Object.freeze({operations:new Set(["PATCH","APPEND"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),"v1.2":Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase10a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase11:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase12:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase13a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14b:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14c:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase15a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE","ADD","REMOVE_VALUE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase15b:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE","ADD","REMOVE_VALUE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1})}),sl=Object.freeze({phase10a:Object.freeze({multipleParentPreflight:!1,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10d:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase11:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase12:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0})}),Ur="v1";function J(e){throw new Error(`UnsupportedError: APPLY ${Ur} scope does not support ${e}`)}function Eg(e,t){let n=Ur;Ur=e;try{return t()}finally{Ur=n}}function Rg(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks?.length?t:null:t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)?t:null}function Xn(e,t){return Eg(e,()=>mg(t,fg[e]))}function mg(e,t){let n=Rg(e);if(n===null)return;if(n.type==="UPSERT"){gg(n,t);return}let r=n.applyBlocks;if(ol(r),!t.multipleBlocks&&r.length!==1&&J("multiple APPLY blocks in this phase"),n.type==="INSERT"){hg(n,r,t);return}let i=n;i.subtableCode&&J("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&J("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&J("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&J("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&J("REJECT LIMIT in this phase"),Ag(i.where,t.multipleParents),sd(r,t)}function sd(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||J(`${r.kind} in this phase`);ld(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Lo(i,"APPEND targets");Jn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&ad(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.assignments.length===0&&J("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&J("parent or qualified PATCH targets in this phase")}Jn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&ad(r.selector.where,t.idxSelectors)}}}}function ld(e){let t=e.operations.some(i=>i.kind==="PATCH"||i.kind==="APPEND"||i.kind==="REMOVE"),n=e.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE");if(t&&n)throw new Error("ArgumentError: APPLY block cannot mix row operations and multi-value operations.");let r=n?"MULTI_VALUE":"SUBTABLE";if(e.targetKind!==r)throw new Error(`ArgumentError: APPLY block target kind ${String(e.targetKind)} does not match ${r} operations.`)}var yg=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ud(e,t){if(ld(e),e.targetKind==="MULTI_VALUE"){if(!yg.has(t))throw new Error(`ArgumentError: APPLY multi-value operations require MULTI_SELECT, CHECK_BOX, USER_SELECT, ORGANIZATION_SELECT, or GROUP_SELECT target; ${e.field} is ${t}.`);return}if(t!=="SUBTABLE")throw new Error(`ArgumentError: APPLY row operations require a SUBTABLE target; ${e.field} is ${t}.`)}function ol(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Ur} scope allows only one block for table ${n.field}`);t.add(n.field)}}function gg(e,t){t.upsert||J("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&J("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&J("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&J("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];ol(n),ol(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&J("multiple APPLY blocks in this phase"),cd(n,"UPSERT ON INSERT"),sd(r,{...t,idxSelectors:!1,expectRows:!1})}function cd(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&J(`${r.kind} for ${t} in this phase`);for(let i of r.fields)Lo(i,"APPEND targets");Jn(r.values,"APPEND values")}}function hg(e,t,n){n.insert||J("INSERT in this phase"),e.subtableCode&&J("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&J("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&J("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&J("REJECT LIMIT in this phase"),cd(t,"INSERT")}function Dt(e){if(e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="$id"||e.right.type!=="NUMBER")return!1;let t=e.right.raw??String(e.right.value);return/^\d+$/.test(t)&&e.right.value>0&&Number.isSafeInteger(e.right.value)}function _o(e,t){let n=sl[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&ll(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${qn(e)} multi-value execution is not connected`);if(t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)){if(t.validateOnly!==!0&&!n.upsertWrite)throw new Error(`UnsupportedError: APPLY ${qn(e)} UPSERT execution is not connected`);return}if(t.type==="INSERT"&&t.applyBlocks?.length){if(t.validateOnly!==!0&&!n.insertWrite)throw new Error(`UnsupportedError: APPLY ${qn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Dt(t.where))throw new Error(`UnsupportedError: APPLY ${qn(e)} execution does not support multiple-parent APPLY`)}function ll(e){let t=e.type==="EXPLAIN"?e.query:e;return(t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks??[]:t.type==="UPSERT"?[...t.onInsertApplyBlocks??[],...t.onUpdateApplyBlocks??[]]:[]).some(r=>r.targetKind==="MULTI_VALUE"||r.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE"))}function pd(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Dt(t.where))&&!sl[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${qn(e)} public multiple-parent write is not connected`)}function Qn(e){if(!sl[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${qn(e)} internal prepared write is not available`)}function qn(e){return`Phase ${e.slice(5)}`}function Ag(e,t){Dt(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&J("a parent $id that is not a positive safe integer in this phase"),t||J("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),al(e,t))}function al(e,t){if(Array.isArray(e)){for(let o of e)al(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&J("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&J("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&J("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&J("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&ne(n.name))&&J("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))al(o,t)}function ad(e,t){Jn(e,"child row selectors",t)}function Jn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Jn(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&J(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&J(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&J(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&ne(r.name))&&J(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&J(`qualified or parent field references in ${t}`),Lo(l,t,n)}if(i==="FIELD_REF"&&Lo(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Jn(s,t,n)}function Lo(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&J(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&J(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&J(`aggregate expressions in ${t}`)}function Mr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Sg(e.op);if(t===null)throw new de(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Mr(e.left),right:Mr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Mr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Sg(e){switch(e){case"=":return"!=";case"!=":case"<>":return"=";case">":return"<=";case"<":return">=";case">=":return"<";case"<=":return">";case"LIKE":return"NOT_LIKE";case"NOT_LIKE":return"LIKE";case"KLIKE":return"NOT_KLIKE";case"NOT_KLIKE":return"KLIKE";case"IN":return"NOT_IN";case"NOT_IN":return"IN"}}function dd(e){return e.includes("%")||e.includes("_")}function kr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Zt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Qt(e){if(e===null)return!1;if(kr(e))return!0;switch(e.type){case"LOGICAL":return Qt(e.left)||Qt(e.right);case"NOT":case"GROUP":return Qt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Pe(e){if(e===null)return!1;if(Zt(e))return!0;switch(e.type){case"LOGICAL":return Pe(e.left)||Pe(e.right);case"NOT":case"GROUP":return Pe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function z(e){switch(e.type){case"BINARY":return Tg(e);case"NULL_CHECK":return wg(e);case"LOGICAL":return bg(e);case"NOT":return Ng(e);case"GROUP":return Cg(e);case"EXISTS":throw new de("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new de("internal error: BOOLEAN predicate reached kintone query conversion")}}function Tg(e){if(kr(e))throw new de("LIKE / NOT LIKE \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08\u5E38\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u3067\u3059\uFF09");let t=Ed(e.left),n=Ig(e.op),r=Pg(e.right,e.op);return`${t} ${n} ${r}`}function Ig(e){switch(e){case"=":return"=";case"!=":case"<>":return"!=";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"like";case"NOT_LIKE":return"not like";case"KLIKE":return"like";case"NOT_KLIKE":return"not like";case"IN":return"in";case"NOT_IN":return"not in"}}function wg(e){let t=Ed(e.field);return e.not?`${t} != ""`:`${t} = ""`}function bg(e){let t=z(e.left),n=z(e.right),r=e.op==="AND"?"and":"or",i=fd(e.left)?`(${t})`:t,o=fd(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function Ng(e){return z(Mr(e.expr))}function Cg(e){return`(${z(e.expr)})`}function Ed(e){if(e.type==="FUNC_FIELD")throw new de(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="AGG_FIELD")throw new de("HAVING \u53E5\u306E\u96C6\u8A08\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="ARITH_FIELD")throw new de("WHERE \u53E5\u306E\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="CASE_FIELD")throw new de("WHERE \u53E5\u306E CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="GROUPING_FIELD")throw new de("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return kg(e.field)}function Pg(e,t){switch(e.type){case"VARIABLE":throw new de(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new de(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Rd(e);case"NUMBER":return q(e);case"KINTONE_FUNC":return md(e);case"IN_LIST":return Ug(e,t);case"ARITH_VALUE":throw new de("WHERE \u53E5\u306E\u53F3\u8FBA\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new de("WHERE \u53E5\u306E\u53F3\u8FBA CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new de("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new de("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"ARRAY":throw new de("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Rd(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function md(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Og(e)}function Og(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?xr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!vg(e.args.offset,e.args.offsetText)||!Lg.has(e.args.unit)?xr():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!_g.has(e.args.weekday)?xr():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!Dg(e.args.day)?xr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return xr()}var Lg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),_g=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function vg(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function Dg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function xr(){throw new de("internal error: invalid relative date function AST reached kintone query conversion")}function Ug(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new de("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Mg(e.values),`(${e.values.map(r=>r.type==="STRING"?Rd(r):r.type==="NUMBER"?q(r):md(r)).join(",")})`}function Mg(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new de(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function kg(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function fd(e){return e.type==="LOGICAL"}var de=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function vo(e){return`'${e.replace(/'/g,"''")}'`}function Zn(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return q(e);if(e.type==="STRING_FUNC")return cl(e);let n=`${Zn(e.left)}${e.op}${Zn(e.right)}`;return t?n:`(${n})`}function yd(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return cl(e.expr);if(e.type==="AGG_FIELD")return gt(e.expr);if(e.type==="ARITH_FIELD")return Zn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return ul(e.expr)}function hd(e){switch(e.type){case"STRING":return vo(e.value);case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>vo(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(hd).join(",")})`;case"ARITH_VALUE":return Zn(e.expr);case"CASE_VALUE":return ul(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Fr(e){switch(e.type){case"BINARY":return`${yd(e.left)} ${e.op.replace("_"," ")} ${hd(e.right)}`;case"NULL_CHECK":return`${yd(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Fr(e.left)} ${e.op} ${Fr(e.right)})`;case"NOT":return`NOT (${Fr(e.expr)})`;case"GROUP":return`(${Fr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function gd(e){return e.type==="ARRAY"?`[${e.elements.map(t=>vo(t.value)).join(",")}]`:e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?gt(e):e.type==="FIELD_REF"||e.type==="ARITH"?Zn(e):gn(e)}function ul(e){let t=e.branches.map(r=>`WHEN ${Fr(r.condition)} THEN ${gd(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${gd(e.elseResult)}`;return`CASE ${t}${n} END`}function xg(e){return e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?gt(e):gn(e)}function cl(e){return`${e.func}(${e.args.map(xg).join(",")})`}function gn(e){switch(e.type){case"STRING":return vo(e.value);case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return cl(e);case"CASE_WHEN":return ul(e);case"SCALAR_ARITH":return`(${gn(e.left)}${e.op}${gn(e.right)})`;case"CONCAT_OP":return`(${gn(e.left)}||${gn(e.right)})`}}function Fg(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Zn(e,!0):gn(e)}function fe(e,t,n){let r=Fg(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function gt(e){return e.type==="NUMBER"?q(e):e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${gt(e.left)}${e.op}${gt(e.right)}`}var Ad=Symbol("ksql.groupingRowMeta"),Sd=new WeakMap;function pl(e,t){return Object.defineProperty(e,Ad,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function dl(e){return e[Ad]}function Kg(e){return dl(e)?.includedCanonicalIds}function Td(e,t){Sd.set(e,t)}function er(e,t){let n=Kg(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Sd.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Do=["$id","$revision","\u30EC\u30B3\u30FC\u30C9\u756A\u53F7","\u4F5C\u6210\u8005","\u4F5C\u6210\u65E5\u6642","\u66F4\u65B0\u8005","\u66F4\u65B0\u65E5\u6642","\u30B9\u30C6\u30FC\u30BF\u30B9","\u4F5C\u696D\u8005"];function Uo(e){return e.startsWith("_")||e.startsWith("$")}var Gg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function El(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(El);let t=e;return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:t.type==="FIELD"&&typeof t.field=="string"?Gg.test(t.field):Object.values(t).some(El)}function $g(e){switch(e.type){case"AGGREGATE":case"ARITH_AGG_COL":return"AGGREGATE_DEPENDENT";case"GROUPING_COL":case"WINDOW_COL":return"POST_GROUP_ONLY";case"VARIABLE_COL":throw new Error("InternalError: unresolved VARIABLE_COL reached GROUP BY alias planning.");case"WILDCARD":case"PARENT_WILDCARD":case"FIELD":case"LITERAL_COL":case"ARITH_COL":case"CASE_COL":case"STRFUNC_COL":case"SCALAR_VALUE_COL":case"SCALAR_SUBQUERY_COL":return Se(e)||El(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Bg=["_pid","_rid","_idx"];function fl(e){return[...new Set(e)]}function Vg(e){switch(e.kind){case"APP":return fl([...e.fieldCodes,...Do]);case"SUBTABLE":return fl([...e.childFieldCodes,...Bg,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return fl(e.columns)}}function Id(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Vg(t(r,i))}))}function wd(e){if(e.startsWith("_p."))return{qualifier:null,fieldCode:e};let t=e.indexOf(".");return t<=0||t===e.length-1?{qualifier:null,fieldCode:e}:{qualifier:e.slice(0,t),fieldCode:e.slice(t+1)}}function bd(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Nd(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?wd(e.field):{qualifier:e.tableAlias,fieldCode:e.field},o=(r.qualifier===null?t:t.filter(s=>s.qualifier===r.qualifier)).filter(s=>s.columns.includes(r.fieldCode));if(o.length>1)return{kind:"AMBIGUOUS",name:n};if(o.length===0)return{kind:"UNKNOWN",name:n};let a=o[0];return{kind:"PHYSICAL",sourceIndex:a.sourceIndex,fieldCode:r.fieldCode,runtimeKey:bd(a,r.fieldCode)}}function Wg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Hg(e,t,n){let r=wd(e),o=(r.qualifier===null?n:n.filter(l=>l.qualifier===r.qualifier)).filter(l=>l.columns.includes(r.fieldCode));if(o.length>1)throw new Error(`ArgumentError: GROUP BY field ${e} is ambiguous across multiple sources (reason=GROUP_BY_FIELD_AMBIGUOUS).`);if(o.length===1){let l=o[0];return{kind:"PHYSICAL",sourceIndex:l.sourceIndex,fieldCode:r.fieldCode,runtimeKey:bd(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,c)=>Wg(l)===e?[{column:l,columnIndex:c}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],c=$g(l.column);return c==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:c==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&fe(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Cd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Hg(r.name,t,n):{kind:"EXPRESSION"})}}function Oe(e,t){let n=[...t];if(n.includes(e))return e;let r=e.toLowerCase();return n.find(i=>i===r)}var Yg="B65_NON_GROUPED_DEPENDENCY",ml=new Map([["ARITH_COL","expr"],["ARITH_AGG_COL","expr"],["STRFUNC_COL","expr"],["SCALAR_VALUE_COL","expr"],["CASE_COL","expr"],["ARITH_KEY","expr"],["FUNC_KEY","expr"],["FUNC_FIELD","expr"],["ARITH_FIELD","expr"],["CASE_FIELD","expr"],["ARITH_VALUE","expr"],["CASE_VALUE","expr"],["AGG_FIELD","expr"]]);function Mo(e){if(e.startsWith("_p."))return{type:"FIELD",tableAlias:null,field:e};let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function yl(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return Mo(e.field);if(t==="AGG_GROUP_KEY"&&typeof e.field=="string")return{type:"FIELD",tableAlias:typeof e.tableAlias=="string"?e.tableAlias:null,field:e.field};if(t==="FIELD"&&typeof e.field=="string"){if(e.aggregateRef!==void 0)return null;let n=typeof e.tableAlias=="string"?e.tableAlias:null;return n===null?Mo(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function gl(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function Od(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Ld(e){return e.type==="WINDOW_COL"}function jg(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function en(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number")return String(e);if(Array.isArray(e)){let c=e.map(d=>en(d,t));return c.some(d=>d===null)?null:`[${c.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||gl(n))return null;if(r==="GROUP"&&n.expr!==void 0)return en(n.expr,t);let i=typeof r=="string"?ml.get(r):void 0;if(i!==void 0)return en(n[i],t);if(r==="LITERAL_COL")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="STRING")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="NUMBER")return`NUMBER:${jg(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=yl(n);if(o!==null)try{return`FIELD:${t(o)}`}catch{return null}if(r==="FIELD"&&n.aggregateRef!==void 0)return null;let a=new Set(["alias","aliasDisplay","raw","separator","distinct","source"]),s=[];for(let c of Object.keys(n)){if(c==="type"||a.has(c))continue;let d=en(n[c],t);if(d===null)return null;s.push(`${c}=${d}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function zg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function qg(e){let t=new Map;for(let n of e){let r=zg(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function hl(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var Jg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function ko(e){if(e&&typeof e=="object"){let t=e,n=yl(t);if(n!==null)return hl(n);if(t.type==="FIELD_NAME"&&typeof t.name=="string")return t.name;if(t.type==="WILDCARD")return"*";if(t.type==="PARENT_WILDCARD")return"_p.*";let r=t.alias;if(typeof r=="string"&&r.length>0)return r;let i=typeof t.type=="string"?ml.get(t.type):void 0;if(i!==void 0){let a=ko(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Pd(e,t,n,r){let i=n==="WILDCARD"?"wildcard":hl(n),o=ko(t),a=r.groupingLabel===null?"GROUP BY \u304C\u306A\u3044\u305F\u3081\u5165\u529B\u5168\u4F53\u304C1\u30B0\u30EB\u30FC\u30D7\u306B\u306A\u308A":`${r.groupingLabel} \u306E\u5404\u30B0\u30EB\u30FC\u30D7\u3067\u306F`,s=n==="WILDCARD"?"\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066 SELECT \u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u300C${i}\u300D\u3092 MIN() \u306A\u3069\u306E\u96C6\u8A08\u95A2\u6570\u3067\u5305\u3080\u304B\u3001GROUP BY \u3078\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,l=n!=="WILDCARD"&&n.tableAlias===null&&o===i&&r.migrationSourceSql!==void 0?r.migrationGroupingFields&&r.migrationGroupingFields.length>0?` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT ${r.migrationGroupingFields.join(", ")}, MIN(${i}) FROM ${r.migrationSourceSql} GROUP BY ${r.migrationGroupingFields.join(", ")}\u300D\u3002`:` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT MIN(${i}) FROM ${r.migrationSourceSql}\u300D\u3002`:"";return new Error(`ArgumentError: ${e} \u5F0F\u300C${o}\u300D\u306F\u96C6\u8A08\u3082\u30B0\u30EB\u30FC\u30D7\u5316\u3082\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08${r.sourceLabel}\u3001\u975E\u30B0\u30EB\u30FC\u30D7\u5316\u4F9D\u5B58: ${i}\uFF09\u3002${a}\u3001\u3069\u306E\u884C\u306E\u5024\u3092\u8FD4\u3059\u304B\u6C7A\u307E\u308A\u307E\u305B\u3093\u3002${s}${l} (reason=${Yg})`)}function hn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)hn(a,t);return}let n=e;if(gl(n)||Od(n)||Ld(n)||n.type==="GROUPING_REF"||n.type==="GROUPING_FIELD"||n.type==="GROUPING_COL"||n.type==="GROUPING_KEY")return;if(n.type==="WILDCARD"||n.type==="PARENT_WILDCARD")throw Pd(t.clause,t.expression,"WILDCARD",t.policy);let r=yl(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&Jg.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=Oe(r.field,t.aliases.keys()),c=l===void 0?[]:t.aliases.get(l)??[];if(c.length===1&&l!==void 0&&!t.resolvingAliases.has(l)){let d=new Set(t.resolvingAliases);d.add(l),hn(c[0],{...t,resolvingAliases:d});return}}let a=en(n,t.policy.resolveField);if(a!==null&&t.policy.identities.has(a))return;let s=`FIELD:${t.policy.resolveField(r)}`;if(!t.policy.identities.has(s))throw Pd(t.clause,t.expression,r,t.policy);return}let i=en(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?ml.get(n.type):void 0;if(o!==void 0){hn(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||hn(n[a],t)}function Kr(e,t){let n=qg(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&hn(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&hn(e.having,{clause:"HAVING",expression:e.having,policy:t,aliases:n,resolvingAliases:new Set});for(let r of e.orderBy){let i=r.key.type==="FIELD_NAME"?Mo(r.key.name):r.key;hn(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function Rl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Rl);let t=e;return gl(t)||Ld(t)?!1:Od(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Rl)}function Ut(e){return ee(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Rl(t))}function Xg(e){return e.type==="FIELD_NAME"?Mo(e.name):e.expr}function _d(e,t,n){let r=ee(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let E=Nd(f,n);if(E.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${E.name} is ambiguous across multiple sources.`);return E.kind==="UNKNOWN"?`unknown:${E.name}`:`source:${E.sourceIndex}:${E.fieldCode}`},a=new Set;t.items.forEach((f,E)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let R=en(e.columns[f.columnIndex],o);R!==null&&a.add(R);return}if(f.kind==="EXPRESSION"){let R=en(Xg(i[E]),o);R!==null&&a.add(R)}});let s=[e.from,...e.joins.map(f=>f.table)],l=f=>`APP${f.appId}${f.subtableCode!=null?`$${f.subtableCode}`:""}`,c=s.map(f=>f.cteName??l(f)).join(" / "),d=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:ko(f)).join(", ")}`,u=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,p=i.every((f,E)=>f.type==="FIELD_NAME"&&t.items[E]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:c,groupingLabel:d,migrationSourceSql:u,migrationGroupingFields:p}}function xo(e){if(ee(e).type!=="NONE"||!Ut(e))return;let t={identities:new Set,resolveField:n=>`ast:${hl(n)}`,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:null,migrationSourceSql:e.from.cteName===null&&e.joins.length===0?`APP${e.from.appId}${e.from.alias&&e.from.alias!==`APP${e.from.appId}`?` ${e.from.alias}`:""}`:void 0};Kr(e,t)}function vd(e){return`FIELD:${e}`}var Dd=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function Al(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function je(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>je(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="GROUPING_REF"){t.push(n);return}Object.values(n).forEach(r=>je(r,t))}}function Go(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Go(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){je(n.arg,t);return}Object.values(n).forEach(r=>Go(r,t))}}function Se(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Se);let t=e;return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:Object.values(t).some(Se)}function Qg(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="ARITH_COL"||e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?Se(e):!1}function Zg(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${Al(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${Al(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Td(e,r.canonicalId)}function Sl(e){let t=ee(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&je(i,n);je(e.having,n),je(e.orderBy,n);let r=[];je(e.where,r),je(e.joins,r),Go(e.columns,r),Go(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&je(i,r);if(r.length>0)throw new Error("ArgumentError: GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");xo(e);return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: KORDER BY is not supported with extended grouping.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: window functions are not supported with extended grouping.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: SELECT wildcard \u306F\u96C6\u8A08 query \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044 (reason=B65_NON_GROUPED_DEPENDENCY).")}function Ud(e,t,n=()=>{}){Sl(e);let r=ee(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&je(c,i);if(je(e.having,i),je(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=Zp(e,t),a=new Set,s=[];for(let c of o.allItems){let d=c;if(!d.physical)throw new Error(`ArgumentError: grouping item ${Al(c.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let c of i)Zg(c,t,a);Kr(e,{identities:new Set([...a].map(vd)),resolveField:c=>t(c).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let c of s)l.add(c.directKey),c.unqualifiedBridgeKey!==null&&l.add(c.unqualifiedBridgeKey);for(let c of e.columns){if(!Qg(c))continue;let d="alias"in c?c.alias:null;if(d!==null&&l.has(d))throw new Error(`ArgumentError: aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function eh(e){return e.some(t=>t.type==="WINDOW_COL")}function ze(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ee(e).type!=="NONE"||e.distinct||eh(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&Se(t.expr)||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Se(t.expr)||t.type==="STRFUNC_COL"&&Kd(t.expr)||t.type==="SCALAR_VALUE_COL"&&$r(t.expr))||Mt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Mt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Md(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||kr(e);case"NULL_CHECK":return Md(e.field);case"LOGICAL":return Mt(e.left)||Mt(e.right);case"NOT":case"GROUP":return Mt(e.expr);case"EXISTS":return!0}}function Md(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Bo(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(z(e.where)),e.orderBy.length>0){let i=e.orderBy.map(th).join(", ");t.push(`order by ${i}`)}else r&&t.push("order by $id asc");return e.limit!==null&&t.push(`limit ${e.limit}`),e.offset!==null&&t.push(`offset ${e.offset}`),{app:e.from.appId,query:t.join(" "),fields:nh(e.columns),totalCount:!1}}function Fd(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Mt(e.where)&&n.push(z(e.where)),{app:t,query:n.join(" "),fields:[]}}function An(e,t,n){let i=$d(e,n).get(t);if(!i)return[];if(i.allFields)return[];let o=new Set(i.fields);return i.table.subtableCode&&o.add(i.table.subtableCode),o.size===0&&o.add("$id"),[...o]}function th(e){let t=e.direction==="ASC"?"asc":"desc";if(e.key.type!=="FIELD_NAME")throw new Error("ORDER BY \u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08FULL_SCAN \u304C\u5FC5\u8981\u3067\u3059\uFF09");return`${e.key.name} ${t}`}function nh(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="ARITH_COL"&&Se(r.expr)||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(Vo(r.field)):r.type==="ARITH_COL"?Gr(r.expr,n):r.type==="STRFUNC_COL"?Tl(r.expr,n):r.type==="SCALAR_VALUE_COL"&&tr(r.expr,n);return[...new Set(n)]}function rh(e,t){Gr(e.left,t),Gr(e.right,t)}function Gr(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(Vo(e.field)):e.type==="ARITH"?rh(e,t):e.type==="STRING_FUNC"&&Tl(e,t)}function Vo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Tl(e,t){for(let n of e.args)ih(n,t)}function ih(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){$o(e,t);return}tr(e,t)}function tr(e,t){if(e.type==="FIELD"){t.push(Vo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Tl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){tr(e.left,t),tr(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)kd(n.result,t);e.elseResult&&kd(e.elseResult,t)}}function kd(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){$o(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Gr(e,t);return}tr(e,t)}}function $o(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&oh(e.arg,t);return}e.type==="AGG_ARITH"&&($o(e.left,t),$o(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Vo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function oh(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Gr(e,t):tr(e,t)}function Kd(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:$r(t))}function $r(e){return e.type==="STRING_FUNC"?Kd(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?$r(e.left)||$r(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>xd(t.result))||e.elseResult!==null&&xd(e.elseResult):!1}function xd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:$r(e)}function Gd(e,t){let n=new Set,r=$d(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function $d(e,t,n){let r=[e.from,...e.joins.map(h=>h.table)],i=[e.from,...e.joins.map(h=>h.table)].filter(h=>h.cteName===null),o=n?r:i,a=new Map;for(let h of o)a.set(h,{table:h,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(h=>!!h.subtableCode)??null,c=new Map;for(let h of o)h.alias&&c.set(h.alias,h),h.cteName!==null?c.set(h.cteName,h):h.subtableCode||(c.set(`APP${h.appId}`,h),c.set(`app${h.appId}`,h));let d=ah(e.columns),u=h=>{let w=a.get(h);w&&(w.allFields=!0,w.fields.clear())},p=()=>{for(let h of o)u(h)},f=()=>{for(let h of o)h.subtableCode&&u(h)},E=(h,w)=>{let _=a.get(h);if(!(!_||_.allFields)){if(h.subtableCode){if(w.startsWith("_p.")){let L=w.slice(3);L&&L!=="*"&&_.fields.add(L);return}return void 0}w&&_.fields.add(w)}},R=(h,w="select",_)=>{if(!h||h==="*")return;if(h==="_p.*"){f();return}if(h.endsWith(".*")){let F=h.slice(0,-2);if(!F){p();return}if(F==="_p"){f();return}let B=c.get(F);if(B){u(B);return}return}if(w==="groupBy"&&_!==void 0){if(_.kind==="PHYSICAL"){let F=r[_.sourceIndex];F&&(n||F.cteName===null)&&E(F,_.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&Oe(h,d)!==void 0||(w==="orderBy"||w==="having"||w==="groupBy")&&sh(h))return;let L=h.indexOf(".");if(L>0){let F=h.slice(0,L),B=h.slice(L+1);if(F==="_p"){l&&E(l,`_p.${B}`);return}let V=c.get(F);if(V){E(V,B);return}if(n)return}n?n.unqualified.add(h):s&&E(s,h)},m=(h,w,_="select")=>{if(w){if(w==="_p"){l&&E(l,`_p.${h}`);return}let L=c.get(w);if(L){E(L,h);return}if(n)return}R(h,_)},y=(h,w="select")=>{if(h.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${h.name} reached source-aware field collection.`);if(h.type==="FIELD_REF"){R(h.field,w);return}if(h.type==="ARITH"){y(h.left,w),y(h.right,w);return}if(h.type==="STRING_FUNC"){A(h,w);return}},g=(h,w="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&N(h.arg,w);return}h.type==="AGG_ARITH"&&(g(h.left,w),g(h.right,w)),h.type==="AGG_GROUP_KEY"&&m(h.field,h.tableAlias??null,w)},S=(h,w="select")=>{if(h.type==="AGG_REF"||h.type==="AGG_ARITH"||h.type==="AGG_GROUP_KEY"||h.type==="VARIABLE"){g(h,w);return}I(h,w)},A=(h,w="select")=>{for(let _ of h.args)S(_,w)},I=(h,w="select")=>{if(h.type==="FIELD"){m(h.field,h.tableAlias,w);return}if(h.type==="STRING_FUNC"){A(h,w);return}if(h.type==="SCALAR_ARITH"||h.type==="CONCAT_OP"){I(h.left,w),I(h.right,w);return}h.type==="CASE_WHEN"&&b(h,w)},N=(h,w="select")=>{if(h.type==="FIELD_REF"||h.type==="ARITH"){y(h,w);return}I(h,w)},v=(h,w="select")=>{if(h.type!=="ARRAY"){if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){g(h,w);return}if(h.type==="FIELD_REF"||h.type==="ARITH"){y(h,w);return}I(h,w)}},b=(h,w="select")=>{for(let _ of h.branches)k(_.condition,w),v(_.result,w);h.elseResult&&v(h.elseResult,w)},M=(h,w="select")=>{if(h.type==="FIELD"){if(h.aggregateRef){g(h.aggregateRef,w);return}m(h.field,h.tableAlias,w);return}if(h.type==="FUNC_FIELD"){A(h.expr,w);return}if(h.type==="AGG_FIELD"){g(h.expr,w);return}if(h.type==="ARITH_FIELD"){y(h.expr,w);return}h.type!=="GROUPING_FIELD"&&b(h.expr,w)},D=(h,w="select")=>{if(h.type==="ARITH_VALUE"){y(h.expr,w);return}if(h.type==="CASE_VALUE"){b(h.expr,w);return}},k=(h,w="where")=>{if(h)switch(h.type){case"BINARY":M(h.left,w),D(h.right,w);return;case"NULL_CHECK":M(h.field,w);return;case"LOGICAL":k(h.left,w),k(h.right,w);return;case"NOT":case"GROUP":k(h.expr,w);return;case"EXISTS":case"BOOLEAN":return}},P=(h,w)=>{if(h.type==="FIELD_NAME"){R(h.name,"groupBy",w);return}if(h.type==="ARITH_KEY"){y(h.expr,"groupBy");return}A(h.expr,"groupBy")},O=(h,w="orderBy")=>{if(h.type==="FIELD_NAME"){R(h.name,w);return}if(h.type==="ARITH_KEY"){y(h.expr,w);return}h.type!=="GROUPING_KEY"&&A(h.expr,w)};for(let h of e.columns)switch(h.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(h.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${h.name}`);case"AGGREGATE":h.arg.type!=="WILDCARD"&&N(h.arg,"select");break;case"ARITH_AGG_COL":g(h.expr,"select");break;case"ARITH_COL":y(h.expr,"select");break;case"CASE_COL":b(h.expr,"select");break;case"STRFUNC_COL":A(h.expr,"select");break;case"SCALAR_VALUE_COL":I(h.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(h.windowKind==="AGGREGATE"||h.windowKind==="VALUE")&&h.arg.type!=="WILDCARD"&&N(h.arg,"select");for(let w of h.partitionBy)m(w.field,w.tableAlias,"select");for(let w of h.orderBy)O(w.key,"select");break}for(let h of e.joins)h.type!=="CROSS"&&(m(h.on.left.field,h.on.left.tableAlias,"where"),m(h.on.right.field,h.on.right.tableAlias,"where"));k(e.where,"where");let C=ee(e);if(C.type==="PLAIN")C.allItems.forEach((h,w)=>P(h,t?.items[w]));else if(C.type==="GROUPING_SETS")for(let h of C.allItems)m(h.field,h.tableAlias,"select");k(e.having,"having");for(let h of e.orderBy)O(h.key);return a}function ah(e){let t=new Set;for(let n of e){if(n.type==="FIELD"&&n.alias){t.add(n.alias);continue}if(n.type==="LITERAL_COL"){t.add(n.alias??`'${n.value}'`);continue}if(n.type==="AGGREGATE"){n.alias?t.add(n.alias):t.add(fe(n.func,n.distinct,n.arg));continue}if(n.type==="ARITH_AGG_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="ARITH_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="CASE_COL"){t.add(n.alias??"case");continue}if(n.type==="STRFUNC_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="SCALAR_VALUE_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="GROUPING_COL"){t.add(n.alias??`GROUPING(${n.ref.field.tableAlias?`${n.ref.field.tableAlias}.`:""}${n.ref.field.field})`);continue}if(n.type==="SCALAR_SUBQUERY_COL"){t.add(n.alias??"(subquery)");continue}n.type==="WINDOW_COL"&&t.add(n.alias)}return t}function sh(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function tn(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||ze(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||Qp(n)||n.distinct?!1:!Ut(n)}function nn(e){let t=e.ctes[0].query,n=e.query,r=Wo(n.where,n.from.alias),i=t.where===null?r:r===null?t.where:{type:"LOGICAL",op:"AND",left:t.where,right:r},o=n.columns.every(a=>a.type==="WILDCARD")?t.columns:n.columns;return{type:"SELECT",from:t.from,joins:[],columns:o,where:i,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:n.orderBy.length>0?n.orderBy:t.orderBy,limit:n.limit??t.limit,offset:n.offset??t.offset,distinct:!1}}function Wo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Bd(e.left,t)};case"NULL_CHECK":return{...e,field:Bd(e.field,t)};case"LOGICAL":return{...e,left:Wo(e.left,t),right:Wo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Wo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Bd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var lh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),uh=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function te(e){let t;e.fieldType==="RECORD_NUMBER"||e.fieldType==="__ID__"?t="recordNumber":e.fieldType==="NUMBER"?t="number":e.fieldType==="CALC"?t=e.sortKind==="number"?"number":"string":uh.has(e.fieldType)?t="option":lh.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function W(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function nr(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Ho(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}var qe=["=","!=",">","<",">=","<="],ch=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),ph=new Set(qe),dh=new Map([["TODAY",new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"])],["NOW",new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"])],["LOGINUSER",new Set(["CREATOR","MODIFIER","USER_SELECT"])],["PRIMARY_ORGANIZATION",new Set(["ORGANIZATION_SELECT"])]]),fh=new Map([["TODAY",new Set(qe)],["NOW",new Set(qe)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Eh=["=","!=","in","not in"],Rh=new Map([["RECORD_NUMBER",new Set([...qe,"in","not in"])],["__ID__",new Set([...qe,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(qe)],["UPDATED_TIME",new Set(qe)],["DATE",new Set(qe)],["TIME",new Set(qe)],["DATETIME",new Set(qe)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...qe,"in","not in"])],["CALC",new Set([...qe,"in","not in"])],["MULTI_LINE_TEXT",new Set(["like","not like"])],["RICH_TEXT",new Set(["like","not like"])],["CHECK_BOX",new Set(["in","not in"])],["RADIO_BUTTON",new Set(["in","not in"])],["DROP_DOWN",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])],["FILE",new Set(["like","not like"])],["USER_SELECT",new Set(["in","not in"])],["ORGANIZATION_SELECT",new Set(["in","not in"])],["GROUP_SELECT",new Set(["in","not in"])],["STATUS",new Set(Eh)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),mh=new Map([["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CHECK_BOX",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])]]),wl=new Set(["RECORD_NUMBER","__ID__","CREATOR","MODIFIER","CREATED_TIME","UPDATED_TIME","DATE","TIME","DATETIME","SINGLE_LINE_TEXT","LINK","NUMBER","CALC","MULTI_LINE_TEXT","RICH_TEXT","RADIO_BUTTON","DROP_DOWN","STATUS","KSQL_STRING","KSQL_NUMBER","KSQL_BOOLEAN"]),Hd=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function jo(e){return Rh.get(e)??new Set}function Yd(e,t){let n=[],r=i=>{if(i.type==="BINARY"){if((i.op==="="||i.op==="!="||i.op==="<>")&&i.left.type==="FIELD"&&i.right.type==="STRING"&&i.right.value!==""){let o=t(i.left);if(o!==void 0&&o.compareMode==="option"&&wl.has(o.fieldType)&&jo(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function Te(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Vr(e,t)}function Vr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return yh(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Il():Ah(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Il();case"GROUP":return Vr(e.expr,t);case"NOT":{let n=Vr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:zd(n.reasons)?Hr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Vr(e.left,t),r=Vr(e.right,t);return Th(e.op,n,r)}}}function yh(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ne(n.name))return gh(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Vd(n))return Wd(e,t,n,r);if(n.type==="IN_LIST"){let d=n.values.filter(u=>u.type==="KINTONE_FUNC");if(d.length>0)return n.values.length===1&&d.length===1?Wd(e,t,d[0],r):Yo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",d[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Wr(e))}if(t.type!=="FIELD")return Il();let i=r(t);if(!i)return rr("WHERE_FIELD_UNRESOLVED",t.field,void 0,Wr(e));let o=Wr(e);if(!jd(i.fieldType,o))return rr("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Sh(i.fieldType,e))return rr("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=jo(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Vd(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",c=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!c?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function Vd(e){return e.type==="KINTONE_FUNC"&&mn.has(e.name)}function Wd(e,t,n,r){let i=Wr(e),o=n.name;if(!mn.has(o)||t.type!=="FIELD")return Yo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=dh.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Yo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):fh.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Yo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function gh(e,t,n,r){let i=Wr(e),o=n.name;if(t.type!=="FIELD")return Br("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?hh(n)?ph.has(i)?!ch.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Br("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,a.fieldType,i):{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Br("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Br("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Br("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function hh(e){if(!("args"in e)||!e.args)return!1;switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args.kind==="NONE";case"FROM_TODAY":return e.args.kind==="FROM_TODAY"&&Number.isSafeInteger(e.args.offset)&&e.args.offsetText===String(e.args.offset===0?0:e.args.offset)&&(e.args.unit==="DAYS"||e.args.unit==="WEEKS"||e.args.unit==="MONTHS"||e.args.unit==="YEARS");case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args.kind==="WEEK"&&(e.args.weekday===null||e.args.weekday==="SUNDAY"||e.args.weekday==="MONDAY"||e.args.weekday==="TUESDAY"||e.args.weekday==="WEDNESDAY"||e.args.weekday==="THURSDAY"||e.args.weekday==="FRIDAY"||e.args.weekday==="SATURDAY");case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args.kind==="MONTH"&&(e.args.day===null||e.args.day==="LAST"||Number.isInteger(e.args.day)&&e.args.day>=1&&e.args.day<=31);default:return!1}}function Ah(e,t,n){let r=n(e);return r?jd(r.fieldType,t)?!wl.has(r.fieldType)&&!Hd.has(r.fieldType)?rr("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:rr("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):rr("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function jd(e,t){let n=mh.get(e);return n===void 0||n.has(t)}function Sh(e,t){return wl.has(e)?!0:Hd.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Wr(e){switch(e){case"<>":return"!=";case"IN":return"in";case"NOT_IN":return"not in";case"LIKE":case"KLIKE":return"like";case"NOT_LIKE":case"NOT_KLIKE":return"not like";default:return e}}function Th(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Hr({capability:"UNSUPPORTED",reasons:r}):t.capability==="EXACT_PUSHDOWN"&&n.capability==="EXACT_PUSHDOWN"?{capability:"EXACT_PUSHDOWN",reasons:r}:e==="AND"&&(t.capability==="EXACT_PUSHDOWN"||n.capability==="EXACT_PUSHDOWN"||t.capability==="SUPERSET_PREFILTER"||n.capability==="SUPERSET_PREFILTER")?Hr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Hr({capability:"LOCAL_ONLY",reasons:r})}function Il(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function rr(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Yo(e,t,n,r,i){return Hr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Br(e,t,n,r,i){return qd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function zd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ne(t.functionName))}function Ih(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&mn.has(t.functionName))}function qd(e){if(e.capability==="EXACT_PUSHDOWN"||!zd(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&ne(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function wh(e){if(e.capability==="EXACT_PUSHDOWN"||!Ih(e.reasons)||e.reasons.some(n=>n.code==="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_KINTONE_FUNCTION_")||n.functionName!==void 0&&mn.has(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function Hr(e){return wh(qd(e))}function Yr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function zo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function qo(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Yr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function Jo(e){let t=e.raw??String(e.value),n=we(t);if(n===null)return!1;if(n.sign===0)return q(e)==="0";let r=Math.max(n.scale,0),i=Math.max(n.coefficient.length-n.scale,0);if(r>10||i+r>30)return!1;let o=tl(n);return q(e)===o}var bh=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Nh=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Ch=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Ph=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Xo(e,t){let{fieldCode:n,fieldType:r,fieldOptions:i}=t;return r.startsWith("KSQL_")||e.op==="LIKE"||e.op==="NOT_LIKE"?"unsafe":e.op==="KLIKE"||e.op==="NOT_KLIKE"?Ch.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?Lh(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Oh(e):r==="NUMBER"?(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(o=>o.type==="NUMBER"&&Jo(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&Jo(e.right)?"exact":"unsafe":Nh.has(r)?bl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?bl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Ph.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Yr(e.right.value)?"exact":"unsafe":r==="TIME"?zo(e.right.value)?"exact":"unsafe":qo(e.right.value)?"exact":"unsafe":bh.has(r)?!bl(e)||i===void 0?"unsafe":e.right.type==="IN_LIST"&&e.right.values.every(o=>o.type==="STRING"&&i.has(o.value))?"exact":"unsafe":"unsafe"}function Jd(e,t){if(e.left.type!=="FIELD"||e.left.field==="$id"||!t(e.left))return!1;if(e.op==="IN"||e.op==="NOT_IN"){if(e.right.type!=="IN_LIST"||e.right.values.length===0)return!1;let n=e.right.values[0].type;return n!=="NUMBER"&&n!=="STRING"?!1:e.right.values.every(r=>r.type===n&&(r.type!=="STRING"||r.value!==""))}return e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="?!1:e.right.type==="NUMBER"||e.right.type==="STRING"&&e.right.value!==""}function bl(e){return(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(t=>t.type==="STRING"&&t.value!=="")}function Oh(e){let t=n=>n.type==="NUMBER"&&Jo(n)||n.type==="STRING"&&n.value!=="";if((e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"){let n=e.right.values;if(n.length>0&&n.every(t)&&n.every(r=>r.type===n[0].type))return"superset"}return(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&t(e.right)?"superset":"unsafe"}function Lh(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function Nl(e,t={}){return ta(e,t).condition}function ta(e,t={}){return Qo(e,n=>_h(n,t))}function jr(e,t={}){return Zo(e,n=>Jd(n,r=>ea(r,t)))}function Qo(e,t){switch(e.type){case"BINARY":{let n=t(e);return n==="unsafe"?{condition:null,relation:null}:{condition:e,relation:n}}case"LOGICAL":{if(e.op!=="AND")return{condition:null,relation:null};let n=Qo(e.left,t),r=Qo(e.right,t);return n.condition&&r.condition?{condition:{...e,left:n.condition,right:r.condition},relation:n.relation==="exact"&&r.relation==="exact"?"exact":"superset"}:n.condition?n:r}case"GROUP":return Qo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function Zo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Zo(e.left,t),r=Zo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return Zo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function _h(e,t){if(vh(e,t)||Dh(e,t))return"exact";if(e.left.type!=="FIELD"||!ea(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||Te(e,i=>{if(!ea(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:te({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":Xo(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function vh(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!ea(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function Dh(e,t){return!Uh(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function Uh(e,t){if(e.type!=="FIELD"||e.field!=="$id")return!1;let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function ea(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function zr(e,t={}){let n=e!==null&&t.extractCondition!==!1?ta(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;ir(r,o);let a=new Set;return ir(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function Sn(e,t={}){let n=e.joins.every(u=>u.type==="INNER"||u.type==="CROSS"),r={allowKlike:n,allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=zr(e.where,{...r,extractCondition:i&&o&&n,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map,c=new Map;if(e.where!==null)for(let u of e.joins){if(u.type!=="INNER"&&u.type!=="CROSS"||!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let p=ta(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});p.condition!==null&&p.relation!==null&&(l.set(u.table.alias,p.condition),c.set(u.table.alias,p.relation))}let d=new Set(a.appliedKlikes);for(let u of l.values())ir(u,d);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:c,appliedKlikes:d,allKlikes:a.allKlikes}}function Cl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function ir(e,t){if(e!==null){if(Zt(e)){t.add(e);return}switch(e.type){case"LOGICAL":ir(e.left,t),ir(e.right,t);return;case"NOT":case"GROUP":ir(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function na(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=Ae(t.where);if(l.length===0||!xh(l,a)||o===null||!Xd(o,l))return null;let c={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:kh(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},d={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:c};return Mh(d,e,l),d}function Mh(e,t,n){if(e.allowForm!=="FULL_SCAN_EXACT")throw new Error("FULL_SCAN_EXACT invariant: allowForm");if(e.clientWhereEvaluation!==!1)throw new Error("FULL_SCAN_EXACT invariant: clientWhereEvaluation");if(t.capability.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: capability");if(t.select.where===null||e.prefilterPlan.prefilterWhere!==t.select.where)throw new Error("FULL_SCAN_EXACT invariant: whole WHERE identity");if(e.prefilterPlan.residualWhere!==null)throw new Error("FULL_SCAN_EXACT invariant: residualWhere");if(e.prefilterPlan.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: transport capability");if(!Xd(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Ae(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&at(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function kh(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&at(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&at(r.right.values[0].name))&&t.push(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function xh(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Xd(e,t){let n=new Map;for(let r of t){if(!at(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var ge=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function Qd(e){Zd(e)}function Ol(e){if(Cl(e).length>0)throw new ge("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function Zd(e){switch(e.type){case"SELECT":or(e);return;case"UNION":_l(e);return;case"WITH":ef(e);return;case"EXPLAIN":Zd(e.query);return;case"CREATE_TEMP_TABLE":Ll(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":Tn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Dt(e.where)&&Pe(e.where)){Pl(e.where),Tn(e);return}if(rn(e)&&e.subtableCode)throw new ge("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&Pe(e.where)&&!Gh(e,e.where)){Pl(e.where),Tn(e);return}if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(rn(e)&&e.subtableCode)throw new ge("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&Pe(e.where)){Pl(e.where),Tn(e);return}if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function Pl(e){ia(e,t=>{if(!Zt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new ge("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new ge("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Ll(e){e.type==="SELECT"?or(e):e.type==="UNION"?_l(e):ef(e)}function _l(e){Ll(e.left),or(e.right)}function ef(e){if(tn(e)){or(nn(e));return}for(let t of e.ctes)t.query.type==="SELECT"?or(t.query):t.query.type==="UNION"&&_l(t.query);Ll(e.query)}function or(e){if(Kh(e),Pe(e.where)&&!(ze(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Sn(e,{allowUnresolvedVariables:!0});if(Cl(n).length===0){Tn(e);return}if(Fh(e)){Tn(e);return}throw new ge("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}Tn(e)}function Fh(e){return e.where!==null&&Ae(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER"||t.type==="CROSS")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function Kh(e){ia(e,t=>{if(!Zt(t))return;if(!ra(e.where,t))throw new ge("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new ge("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new ge("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Tn(e){oa(e,t=>{t.type==="SELECT"&&or(t)},!0)}function rn(e){let t=!1;return oa(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function Gh(e,t){let n=!1,r=i=>{if(n||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let a of i)r(a);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){n=!0;return}for(let a of Object.values(o))r(a)}};return r(e),n}function ra(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return ra(e.left,t)||ra(e.right,t);case"NOT":case"GROUP":return ra(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function ia(e,t){if(Array.isArray(e)){for(let r of e)ia(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&$h(r)||ia(r,t)}function oa(e,t,n=!1){if(Array.isArray(e)){for(let i of e)oa(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))oa(i,t)}function $h(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var qr=class extends Error{constructor(){super("ArgumentError: PRIMARY_ORGANIZATION() \u306F DML \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093"),this.name="ArgumentError"}};function tf(e){let t=e.type==="EXPLAIN"?e.query:e;switch(t.type){case"UPDATE":case"DELETE":case"UPSERT":case"UPSERT_SELECT":case"INSERT_SELECT":if(Bh(t))throw new qr;return;default:return}}function Bh(e){let t=!1;return aa(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||Vh(n.where)&&(t=!0)}),t}function Vh(e){let t=!1;return aa(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function aa(e,t){if(Array.isArray(e)){for(let r of e)aa(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))aa(r,t)}function on(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function sa(e,t){switch(e){case"UPPER":case"LOWER":case"TRIM":case"LTRIM":case"RTRIM":case"LENGTH":case"LENGTH_CHAR":case"YEAR":case"MONTH":case"DAY":case"DAYOFWEEK":case"QUARTER":case"WEEK":case"LAST_DAY":case"ABS":case"SQRT":return on(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return on(e,t,2,3);case"LEFT":case"RIGHT":case"INSTR":case"ISNULL":case"NULLIF":case"MOD":case"POWER":case"FORMAT":case"CAST":case"DATE_FORMAT":case"DATEDIFF":return on(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return on(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return on(e,t,3,3);case"REGEXP_REPLACE":return on(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return on(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return on(e,t,0,0)}}var Ul=1e4,kt=Ul,Z=e=>new Error(`ArgumentError: ${e}`),Wh=e=>e.type==="VARIABLE",an=e=>e?.type==="STRING"&&e.fromVariable===!0;function Hh(e){return e.type==="NUMBER"?Number(q(e)):e.value}function ar(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999||r<1||r>12||i<1||i>31)return null;let o=new Date(0);return o.setUTCHours(0,0,0,0),o.setUTCFullYear(n,r-1,i),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?{year:n,month:r,day:i}:null}function vl(e){let t=ar(e),n=new Date(0);return n.setUTCHours(0,0,0,0),n.setUTCFullYear(t.year,t.month-1,t.day),Math.trunc(n.getTime()/864e5)}function Yh(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(n).padStart(4,"0")}-${String(t.getUTCMonth()+1).padStart(2,"0")}-${String(t.getUTCDate()).padStart(2,"0")}`}function nf(e){let t=e.trim(),n=/^([+-]?\d+)\s+(day|days|month|months|year|years)$/i.exec(t);if(!n)throw/^\S+\s+(?:day|days|month|months|year|years)$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"):/^[+-]?\d+\s+\S+$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let r=Number(n[1]);if(!Number.isSafeInteger(r))throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let i=n[2].toLowerCase(),o=i.startsWith("month")?"MONTH":i.startsWith("year")?"YEAR":"DAY";if(r===0)throw Z(`GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306B 0 ${o.toLowerCase()} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);return{coefficient:r,unit:o}}function Jr(e){if(typeof e=="number")return Number.isSafeInteger(e)?e:null;if(!/^[+-]?\d+$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function Xr(e){let t=we(e.raw??String(e.value));if(t===null||t.scale>0)return null;if(t.sign===0)return 0;if(t.coefficient.length-t.scale>16)return null;let r=`${t.coefficient}${"0".repeat(-t.scale)}`;if(r.length===16&&r>"9007199254740991")return null;let i=Number(r)*t.sign;return Number.isSafeInteger(i)?i:null}function rf(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function la(e,t,n){if(e===t)return 1;if(e<t&&n<0||e>t&&n>0)return 0;let r=n>0?BigInt(t)-BigInt(e):BigInt(e)-BigInt(t);return Number(r/BigInt(Math.abs(n))+1n)}function Dl(e){return e.year*12+e.month-1}function of(e,t){if(t==="MONTH"&&e.day!==1)throw Z("GENERATE_SERIES \u306E month step \u3067\u306F start \u306B\u6708\u521D\uFF08YYYY-MM-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(t==="YEAR"&&(e.month!==1||e.day!==1))throw Z("GENERATE_SERIES \u306E year step \u3067\u306F start \u306B\u5E74\u521D\uFF08YYYY-01-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}function jh(e,t,n){let r=vl(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=vl(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return la(r,i,n.coefficient);if(r===i)return 1;if(r<i&&n.coefficient<0||r>i&&n.coefficient>0)return 0;if(n.unit==="MONTH"){let s=Dl(t)+(n.coefficient<0&&t.day!==1?1:0);return la(Dl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return la(e.year,a,n.coefficient)}function af(e,t,n){if(e<1||e>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-${String(n).padStart(2,"0")}`}function zh(e){let t=Math.floor(e/12),n=e-t*12+1;return af(t,n,1)}function sf(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(g=>Hh(g));["start","stop","step"].forEach((g,S)=>{if(t[S]==="")throw Z(`GENERATE_SERIES \u306E ${g} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`)});let[n,r,i]=t,[o,a,s]=e.args,l=typeof n=="string"?ar(n):null,c=typeof r=="string"?ar(r):null,d=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(rf))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||c||d||u||typeof n=="string"&&typeof r=="string"&&!(an(o)&&an(a)&&Jr(n)!==null&&Jr(r)!==null)){if(!l||!c)throw Z(l&&typeof r!="string"||c&&typeof n!="string"?"GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(i!==void 0&&typeof i!="string")throw Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let g=i===void 0?{coefficient:1,unit:"DAY"}:nf(i);return of(l,g.unit),{kind:"DATE",start:n,stop:r,step:g.coefficient,dateUnit:g.unit,rowCount:jh(l,c,g)}}let p=o.type==="NUMBER"?Xr(o):an(o)?Jr(n):null,f=a.type==="NUMBER"?Xr(a):an(a)?Jr(r):null;if(p===null||f===null)throw(o.type==="NUMBER"||an(o))&&(a.type==="NUMBER"||an(a))?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=i===void 0?1:s?.type==="NUMBER"?Xr(s):an(s)?Jr(i):null;if(E===null)throw s?.type==="NUMBER"||an(s)?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let R=p,m=f,y=E;if(y===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:R,stop:m,step:y,rowCount:la(R,m,y)}}function qh(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(e.args.some(Wh)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw Z(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&Xr(o)===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(i<2&&o?.type==="STRING"){if(rf(o.value))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(/^\d{4}-/.test(o.value)&&ar(o.value)===null)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}});let n=e.args[2];if(n?.type==="NUMBER"){let r=Xr(n);if(r===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(r===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=nf(n.value),i=e.args[0];if(i?.type==="STRING"){let o=ar(i.value);o&&of(o,r.unit)}}return null}let t=sf(e);if(t.rowCount>kt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${kt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function lf(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="WITH"){let i=0,o=!0;for(let a of r.ctes)if(a.query.type==="GENERATE_SERIES"){let s=qh(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>kt)throw Z(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${kt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function ua(e){let t=sf(e);if(t.rowCount>kt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${kt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let n=[];if(t.kind==="INTEGER"){let r=t.start;for(let i=0;i<t.rowCount;i++)if(n.push(String(r)),i+1<t.rowCount){let o=r+t.step;if(!Number.isSafeInteger(o))throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");r=o}}else{let r=ar(t.start);if(t.dateUnit==="MONTH"){let i=Dl(r);for(let o=0;o<t.rowCount;o++)n.push(zh(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(af(r.year+i*t.step,1,1));else{let i=vl(t.start);for(let o=0;o<t.rowCount;o++)n.push(Yh(i+o*t.step))}}return{...t,values:n}}function st(e){Jh(e),tf(e),Qd(e),lf(e)}function Jh(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="STRING_FUNC"){let i=r;sa(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var pa=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],xl="\0as-of:";function Qr(e){return`${xl}${e}`}function sr(e){if(!e.startsWith(xl))return null;let t=e.slice(xl.length);return Zr(t)?t:null}function Zr(e){return pa.includes(e)}function Fl(e=new Date,t){if(!(e instanceof Date)||!Number.isFinite(e.getTime()))throw new Error("ArgumentError: asOf must be a valid Date.");let n;try{n=new Intl.DateTimeFormat("en-CA",{...t===void 0?{}:{timeZone:t},year:"numeric",month:"2-digit",day:"2-digit"}),n.format(e)}catch{throw new Error(`ArgumentError: invalid IANA timezone: ${t??""}.`)}let r=n.formatToParts(e),i=Ml(r,"year"),o=Ml(r,"month"),a=Ml(r,"day"),s=`${kl(i)}-${ca(o)}-${ca(a)}`,l=`${kl(i)}-${ca(o)}-01`,c=o===12?i+1:i,d=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${kl(c)}-${ca(d)}-01`}}}function Ml(e,t){let n=e.find(i=>i.type===t)?.value,r=Number(n);if(!Number.isInteger(r))throw new Error(`InternalError: Intl.DateTimeFormat did not return ${t}.`);return r}function ca(e){return String(e).padStart(2,"0")}function kl(e){return String(e).padStart(4,"0")}var da=16,uf=64,ie=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ei(e,t,n){if(Array.isArray(e)){for(let r of e)ei(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.cteName;typeof i=="string"&&i.startsWith("#")&&t.add(i);let o=r.appId;typeof o=="number"&&o>0&&n.add(o);for(let a of Object.values(r))ei(a,t,n)}}var Xh=new Set(["=","!=","<>",">","<",">=","<="]);function Kl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Kl(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){if(sr(r.name)!==null)return;t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",c=n&&i==="BINARY"&&a==="right"&&l&&Xh.has(String(r.op));Kl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?c:o?n:!1)}}}function Qh(e){let t=e.type==="EXPLAIN"?e.query:e;return Xt(t.type)||t.type==="VALIDATE"}function Gl(e){if(Array.isArray(e)){for(let t of e)Gl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Sl(e);for(let n of Object.values(t))Gl(n)}}function $l(e){if(e.length===0)throw new ie("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{Gl(u)}catch(f){throw f instanceof Error?new ie(f.message,p):f}try{Xn("phase15b",u),st(u)}catch(f){throw f instanceof ge||f instanceof qr?new ie(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new ie(f.message,p):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let p=u==="SET_VARIABLE"?"SET":"DECLARE";throw new ie(`ArgumentError: ${p} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let p=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new ie(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((u,p)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let v=u.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in u&&u.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new ie(v,p)}let E=Po(u),R=[],m=[],y=new Set,g=new Set,S=new Set,A=[];Kl(u,A);let I=new Set;for(let v of A){let b=o.get(v.name);if(b===void 0)throw new ie(`ParseError: variable @${v.name} is not defined before statement ${p+1}.`,p);if(b.kind==="scalar"&&v.kind==="array-in-list")throw new ie(`ParseError: scalar variable @${v.name} cannot be used as IN @${v.name}; use IN (@${v.name}) instead.`,p);if(b.kind==="array"&&v.kind!=="array-in-list")throw new ie(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,p);if(b.relativeDate&&Qh(u))throw new ie(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,p);if(b.relativeDate&&!v.relativeDateAllowed)throw new ie(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(v.name)||(b.referencedBy.push(p),I.add(v.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new ie(`ParseError: variable @${u.name} is already defined.`,p);if(o.set(u.name,{index:p,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>uf)throw new ie(`ParseError: batch exceeds ${uf} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?ei(u.query,y,g):u.type==="DROP_TEMP_TABLE"||ei(u,y,g);let N=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let v=new Set,b=new Set;ei(u.select,v,b),N=v.size>0&&b.size===0}for(let v of y){let b=t.get(v);if(b===void 0)throw new ie(`ParseError: temp table ${v} is not defined in this batch.`,p);S.add(b)}if(f){let v=u.type==="VALIDATE"?u.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:u.type==="IMPORT"&&u.targets?.some(D=>D.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(D=>D.field)]:"fields"in u?u.fields:[],b=JSON.stringify(v),M=t.get(f);if(M===void 0){if(t.set(f,p),n.set(f,b),r.push(f),R.push(f),t.size>da)throw new ie(`ParseError: batch exceeds ${da} temp tables.`,p)}else{if(n.get(f)!==b)throw new ie(`ParseError: validation error table ${f} has a different payload schema.`,p);S.add(M)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new ie(`ParseError: temp table ${u.name} is already defined.`,p);if(t.set(u.name,p),r.push(u.name),R.push(u.name),t.size>da)throw new ie(`ParseError: batch exceeds ${da} temp tables.`,p)}if(u.type==="DROP_TEMP_TABLE"){let v=t.get(u.name);if(v===void 0)throw new ie(`ParseError: temp table ${u.name} is not defined in this batch.`,p);S.add(v),m.push(u.name),t.delete(u.name)}i.push({index:p,statementType:E,isDml:il(u),isReadOnly:jn(u),hasWhere:id(u),insertValuesCount:od(u),appIds:[...g].sort((v,b)=>v-b),tempTablesCreated:R,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...S].sort((v,b)=>v-b),tempOnlySource:N,targetAppId:Xt(E)&&typeof u.appId=="number"?u.appId:null,isUpdateFrom:u.type==="UPDATE"&&u.from!=null,isValidationOnly:"validateOnly"in u&&u.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in u&&u.onErrorSkip===!0,requiresCompleteInput:nd(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),c=i.some(u=>u.requiresCompleteInput),d=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:c,tempTables:r,variables:d,warnings:d.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}var fa=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["CROSS","CROSS"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["PRIMARY_ORGANIZATION","PRIMARY_ORGANIZATION"],["CASE","CASE"],["WHEN","WHEN"],["THEN","THEN"],["ELSE","ELSE"],["END","END"],["UPPER","UPPER"],["LOWER","LOWER"],["TRIM","TRIM"],["LTRIM","LTRIM"],["RTRIM","RTRIM"],["LENGTH","LENGTH"],["LENGTH_CHAR","LENGTH_CHAR"],["SUBSTRING","SUBSTRING"],["SUBSTR","SUBSTR"],["CONCAT","CONCAT"],["REPLACE","REPLACE"],["REGEXP_LIKE","REGEXP_LIKE"],["REGEXP_REPLACE","REGEXP_REPLACE"],["REGEXP_SUBSTR","REGEXP_SUBSTR"],["COALESCE","COALESCE"],["NULLIF","NULLIF"],["ISNULL","ISNULL"],["INSTR","INSTR"],["GREATEST","GREATEST"],["LEAST","LEAST"],["LPAD","LPAD"],["RPAD","RPAD"],["TRANSLATE","TRANSLATE"],["CAST","CAST"],["CONVERT","CONVERT"],["FORMAT","FORMAT"],["ROUND","ROUND"],["FLOOR","FLOOR"],["CEIL","CEIL"],["CEILING","CEILING"],["TRUNCATE","TRUNCATE"],["TRUNC","TRUNC"],["ABS","ABS"],["MOD","MOD"],["POWER","POWER"],["POW","POW"],["SQRT","SQRT"],["YEAR","YEAR"],["MONTH","MONTH"],["DAY","DAY"],["DAYOFWEEK","DAYOFWEEK"],["QUARTER","QUARTER"],["WEEK","WEEK"],["DATE_FORMAT","DATE_FORMAT"],["DATEDIFF","DATEDIFF"],["DATE_ADD","DATE_ADD"],["LAST_DAY","LAST_DAY"],["IF","IF"]]);var ke=class extends Error{constructor(n,r,i,o=!1){let a=i.slice(Math.max(0,r-10),r+10);super(`${n}\uFF08\u4F4D\u7F6E ${r}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=r;this.input=i;this.unterminated=o;this.name="LexError"}},sn=class{constructor(t){this.input=t;this.pos=0}tokenize(){let t=[];for(;;){let n=this.nextToken();if(t.push(n),n.kind==="EOF")break}return t}nextToken(){if(this.skipWhitespaceAndComments(),this.pos>=this.input.length)return this.makeToken("EOF","",this.pos);let t=this.pos,n=this.input[this.pos];if(n==="'")return this.readString(t);if(n==="`")return this.readBacktickIdent(t);if(lr(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(Bl(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new ke(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${n}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")n+="'",this.pos++;else return this.makeToken("STRING",n,t);else n+=r,this.pos++}throw new ke("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="`")return this.pos++,this.makeToken("BIDENT",n,t);n+=r,this.pos++}throw new ke("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&lr(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&lr(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&lr(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&(this.input[this.pos]==="e"||this.input[this.pos]==="E")){if(this.pos++,this.pos<this.input.length&&(this.input[this.pos]==="+"||this.input[this.pos]==="-")&&this.pos++,this.pos>=this.input.length||!lr(this.input[this.pos]))throw new ke("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&lr(this.input[this.pos]);)this.pos++}return this.makeToken("NUMBER",this.input.slice(t,this.pos),t)}tryReadOperator(t){let n=this.input[this.pos],r=this.input[this.pos+1]??"";if(n==="!"&&r==="=")return this.pos+=2,this.makeToken("!=","!=",t);if(n==="<"&&r===">")return this.pos+=2,this.makeToken("<>","<>",t);if(n===">"&&r==="=")return this.pos+=2,this.makeToken(">=",">=",t);if(n==="<"&&r==="=")return this.pos+=2,this.makeToken("<=","<=",t);if(n==="|"&&r==="|")return this.pos+=2,this.makeToken("||","||",t);switch(n){case"=":return this.pos++,this.makeToken("=","=",t);case">":return this.pos++,this.makeToken(">",">",t);case"<":return this.pos++,this.makeToken("<","<",t);case"*":return this.pos++,this.makeToken("*","*",t);case"+":return this.pos++,this.makeToken("+","+",t);case"-":return this.pos++,this.makeToken("-","-",t);case"/":return this.pos++,this.makeToken("/","/",t);case"%":return this.pos++,this.makeToken("%","%",t);case"(":return this.pos++,this.makeToken("(","(",t);case")":return this.pos++,this.makeToken(")",")",t);case"[":return this.pos++,this.makeToken("[","[",t);case"]":return this.pos++,this.makeToken("]","]",t);case",":return this.pos++,this.makeToken(",",",",t);case".":return this.pos++,this.makeToken(".",".",t);case";":return this.pos++,this.makeToken(";",";",t)}return null}readIdentOrKeyword(t){for(;this.pos<this.input.length&&cf(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=fa.get(r)??"IDENT",o=i==="IDENT"?n:r;return this.makeToken(i,o,t)}readHashIdent(t){this.pos++;let n=this.input[this.pos]??"";if(!Bl(n))throw new ke("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&cf(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ke(`@profile is not allowed on temp table ${r}.`,this.pos,this.input);return this.makeToken("IDENT",r,t)}readVariable(t){this.pos++;let n=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(n))throw new ke("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new ke("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
1
+ "use strict";var Zs=Object.defineProperty;var Qy=Object.getOwnPropertyDescriptor;var Zy=Object.getOwnPropertyNames;var eg=Object.prototype.hasOwnProperty;var tg=(e,t)=>{for(var n in t)Zs(e,n,{get:t[n],enumerable:!0})},ng=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Zy(t))!eg.call(e,i)&&i!==n&&Zs(e,i,{get:()=>t[i],enumerable:!(r=Qy(t,i))||r.enumerable});return e};var rg=e=>ng(Zs({},"__esModule",{value:!0}),e);var NN={};tg(NN,{KsqlEngineError:()=>De,createReadonlyKintoneClient:()=>Ny,explainQuery:()=>zy,runBatch:()=>Hy,runQuery:()=>jy,version:()=>bN});module.exports=rg(NN);async function Ge(e,t,n,r,i={}){let o=i.pageSize??ig,a=Math.max(1,i.parallel??og),s=i.maxRecords??ag,l=i.onLimit??"error",c=i.stopAfter;if(c!==void 0&&(!Number.isSafeInteger(c)||c<=0||c>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=c??s,u=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,d=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,m=0,y=jp(n,R),g=await Yp(e,t,y,u,o,m);if(Hp(g,i),d.push(...g.records),c!==void 0&&d.length>=c)return d.slice(0,c);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new We(E)}if(g.records.length<o)return d;for(m+=o,m>=el&&(R=zp(g.records),m=0);;){if(c!==void 0&&d.length>=c)return d.slice(0,c);if(d.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new We(E)}let S=p-d.length,A=Math.ceil(S/o),I=Math.max(1,Math.min(a,A)),N=[];for(let D=0;D<I;D++){let k=m+D*o;if(k>=el)break;N.push(k)}let v=jp(n,R),b=await Promise.all(N.map(D=>Yp(e,t,v,u,o,D)));for(let D of b)Hp(D,i);let M=!1;for(let D of b){if(d.push(...D.records),c!==void 0&&d.length>=c)return d.slice(0,c);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new We(E)}if(D.records.length<o){M=!0;break}}if(M)break;if(m+=o*N.length,m>=el){let D=b[b.length-1];R=zp(D.records),m=0}}return d}function Hp(e,t){e.searchAborted&&t.onSearchAborted?.()}function qp(e){return e.map(t=>{let n=t.$id?.value;if(n===void 0)throw new Error('\u30EC\u30B3\u30FC\u30C9\u306B $id \u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002fields \u306B "$id" \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002');let r=Number(n);if(!Number.isFinite(r))throw new Error(`$id \u306E\u5024\u304C\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093: ${n}`);return r})}var ig=500,og=1,ag=1e4,el=1e4;async function Yp(e,t,n,r,i,o){let a=sg(n,i,o);return e({app:t,query:a,fields:r})}function jp(e,t){let n=e.trimEnd();if(t<=0)return n?`${n} order by $id asc`:"order by $id asc";let r=`$id > ${t} order by $id asc`;return n?`(${n}) and ${r}`:r}function sg(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function zp(e){let n=e[e.length-1]?.$id?.value;if(n===void 0)return 0;let r=Number(n);return Number.isFinite(r)?r:0}var We=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var lg=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function ug(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function we(e){let t=lg.exec(e.trim());if(t===null)return null;let n=ug(t[5],t[6]);if(n===null)return null;let r=t[3]??t[4]??"",i=`${t[2]??""}${r}`.replace(/^0+/,"");if(i==="")return{sign:0,coefficient:"0",scale:0};let o=r.length-n;if(!Number.isSafeInteger(o))return null;let a=/0+$/.exec(i)?.[0].length??0;return a>0&&(i=i.slice(0,-a),o-=a,!Number.isSafeInteger(o))||!Number.isSafeInteger(i.length-o)?null:{sign:t[1]==="-"?-1:1,coefficient:i,scale:o}}function tl(e){if(e.sign===0)return"0";let t=e.coefficient,n;if(e.scale<=0)n=`${t}${"0".repeat(-e.scale)}`;else if(t.length>e.scale){let r=t.length-e.scale;n=`${t.slice(0,r)}.${t.slice(r)}`}else n=`0.${"0".repeat(e.scale-t.length)}${t}`;return e.sign===-1?`-${n}`:n}function Jp(e){let t=we(e);return t===null?null:tl(t)}function cg(e,t){let n=e.coefficient.length-e.scale,r=t.coefficient.length-t.scale;if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r))throw new Error("ArgumentError: exact decimal scale is outside the supported range.");if(n!==r)return n<r?-1:1;let i=Math.max(e.coefficient.length,t.coefficient.length);for(let o=0;o<i;o++){let a=o<e.coefficient.length?e.coefficient.charCodeAt(o):48,s=o<t.coefficient.length?t.coefficient.charCodeAt(o):48;if(a!==s)return a<s?-1:1}return 0}function Io(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=cg(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function wo(e,t){let n=we(e),r=we(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Io(n,r)}var Ce="__NO_FROM__";function nl(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function bo(e){return e.windowKind==="AGGREGATE"}function rl(e){return e.windowKind==="VALUE"}function be(e){return{type:"NUMBER",value:Number(e),raw:e}}function q(e){let t=e.raw??String(e.value);return Jp(t)??t}function Xp(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function pg(e){return`${e.tableAlias??""}\0${e.field}`}function ee(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=pg(o);t.has(a)||(t.add(a),n.push(o))}let r=e.grouping.sets.map(i=>({items:[...i.items]}));return{type:"GROUPING_SETS",source:e.grouping.source,allItems:n,sets:r}}function Qp(e){return ee(e).type!=="NONE"}function Zp(e,t){let n=ee(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),c=r.get(l.canonicalId);if(c)return c;let p={...l,field:s};return r.set(p.canonicalId,p),p},o=n.allItems.map(i).filter((s,l,c)=>c.findIndex(p=>p.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function Po(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Xt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function dg(e){return e==="SELECT"||e==="VALIDATE"||e==="UNION"||e==="WITH"||e==="EXPLAIN"||e==="SHOW_APPS"||e==="DESCRIBE"||e==="CREATE_TEMP_TABLE"||e==="DROP_TEMP_TABLE"||e==="SET_VARIABLE"||e==="DECLARE_VARIABLE"||e==="ASSERT"||e==="EXIT"}function il(e){return Xt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function zn(e){return!il(e)&&(dg(e.type)||Xt(e.type))}function ed(e){return zn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var td=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Me(e,t){for(let n of t)e.add(n)}function No(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&td.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>No(i,t)):No(r,t))}function Co(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return!1;t.add(e);let n=e;return(n.type==="AGGREGATE"||n.type==="AGG_REF")&&typeof n.func=="string"&&!td.has(n.func)||n.type==="FIELD"&&typeof n.field=="string"&&/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT)\(/i.test(n.field)?!0:Object.values(n).some(r=>Array.isArray(r)?r.some(i=>Co(i,t)):Co(r,t))}function Jt(e){let t=new Set;if(Xt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Me(t,jn(e));break;case"UNION":Me(t,rd(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Me(t,Jt(n.query));Me(t,Jt(e.query));break;case"CREATE_TEMP_TABLE":Me(t,Jt(e.query));break;default:break}return No(e)&&t.add("STATISTICAL_AGGREGATE"),Co(e)&&t.add("AGGREGATE"),t}function nd(e){return Jt(e).size>0}function rd(e){let t=e.left.type==="SELECT"?jn(e.left):rd(e.left);return Me(t,jn(e.right)),e.all||t.add("DISTINCT"),t}function jn(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=ee(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Me(t,jn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Me(t,Yn(i.condition));return Me(t,Yn(e.where)),Me(t,Yn(e.having)),No(e)&&t.add("STATISTICAL_AGGREGATE"),Co(e)&&t.add("AGGREGATE"),t}function Yn(e){let t=new Set;if(e===null)return t;switch(e.type){case"BINARY":(e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY")&&Me(t,jn(e.right.query));break;case"LOGICAL":Me(t,Yn(e.left)),Me(t,Yn(e.right));break;case"NOT":case"GROUP":Me(t,Yn(e.expr));break;case"EXISTS":Me(t,jn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function id(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function od(e){if(!e||typeof e!="object")return null;let t=e;return t.type!=="INSERT"?null:Array.isArray(t.values)?t.values.length:null}var Oo=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),mn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Ur=new Set([...mn,...Oo]),yn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",vt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function ne(e){return Oo.has(e)}function qn(e){return mn.has(e)}function at(e){return Ur.has(e)}var fg=Object.freeze({v1:Object.freeze({operations:new Set(["PATCH"]),insert:!1,upsert:!1,multipleBlocks:!1,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),"v1.1":Object.freeze({operations:new Set(["PATCH","APPEND"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),"v1.2":Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!1,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase10a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!1,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase11:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!1,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase12:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!1,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase13a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!1,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14b:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase14c:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase15a:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE","ADD","REMOVE_VALUE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1}),phase15b:Object.freeze({operations:new Set(["PATCH","APPEND","REMOVE","ADD","REMOVE_VALUE"]),insert:!0,upsert:!0,multipleBlocks:!0,multipleParents:!0,idxSelectors:!0,expectRows:!0,updateFrom:!1,check:!1,onErrorSkip:!1,rejectLimit:!1})}),sl=Object.freeze({phase10a:Object.freeze({multipleParentPreflight:!1,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!1,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!1,insertWrite:!1,upsertWrite:!1}),phase10d:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase11:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase12:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!1,upsertWrite:!1}),phase13c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!1}),phase14c:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15a:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0}),phase15b:Object.freeze({multipleParentPreflight:!0,internalPreparedWrite:!0,publicMultipleParentWrite:!0,insertWrite:!0,upsertWrite:!0})}),Mr="v1";function J(e){throw new Error(`UnsupportedError: APPLY ${Mr} scope does not support ${e}`)}function Eg(e,t){let n=Mr;Mr=e;try{return t()}finally{Mr=n}}function Rg(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks?.length?t:null:t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)?t:null}function Qn(e,t){return Eg(e,()=>mg(t,fg[e]))}function mg(e,t){let n=Rg(e);if(n===null)return;if(n.type==="UPSERT"){gg(n,t);return}let r=n.applyBlocks;if(ol(r),!t.multipleBlocks&&r.length!==1&&J("multiple APPLY blocks in this phase"),n.type==="INSERT"){hg(n,r,t);return}let i=n;i.subtableCode&&J("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&J("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&J("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&J("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&J("REJECT LIMIT in this phase"),Ag(i.where,t.multipleParents),sd(r,t)}function sd(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||J(`${r.kind} in this phase`);ld(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Lo(i,"APPEND targets");Xn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&ad(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.assignments.length===0&&J("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&J("parent or qualified PATCH targets in this phase")}Xn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&ad(r.selector.where,t.idxSelectors)}}}}function ld(e){let t=e.operations.some(i=>i.kind==="PATCH"||i.kind==="APPEND"||i.kind==="REMOVE"),n=e.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE");if(t&&n)throw new Error("ArgumentError: APPLY block cannot mix row operations and multi-value operations.");let r=n?"MULTI_VALUE":"SUBTABLE";if(e.targetKind!==r)throw new Error(`ArgumentError: APPLY block target kind ${String(e.targetKind)} does not match ${r} operations.`)}var yg=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ud(e,t){if(ld(e),e.targetKind==="MULTI_VALUE"){if(!yg.has(t))throw new Error(`ArgumentError: APPLY multi-value operations require MULTI_SELECT, CHECK_BOX, USER_SELECT, ORGANIZATION_SELECT, or GROUP_SELECT target; ${e.field} is ${t}.`);return}if(t!=="SUBTABLE")throw new Error(`ArgumentError: APPLY row operations require a SUBTABLE target; ${e.field} is ${t}.`)}function ol(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Mr} scope allows only one block for table ${n.field}`);t.add(n.field)}}function gg(e,t){t.upsert||J("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&J("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&J("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&J("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];ol(n),ol(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&J("multiple APPLY blocks in this phase"),cd(n,"UPSERT ON INSERT"),sd(r,{...t,idxSelectors:!1,expectRows:!1})}function cd(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&J(`${r.kind} for ${t} in this phase`);for(let i of r.fields)Lo(i,"APPEND targets");Xn(r.values,"APPEND values")}}function hg(e,t,n){n.insert||J("INSERT in this phase"),e.subtableCode&&J("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&J("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&J("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&J("REJECT LIMIT in this phase"),cd(t,"INSERT")}function Dt(e){if(e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="$id"||e.right.type!=="NUMBER")return!1;let t=e.right.raw??String(e.right.value);return/^\d+$/.test(t)&&e.right.value>0&&Number.isSafeInteger(e.right.value)}function _o(e,t){let n=sl[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&ll(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Jn(e)} multi-value execution is not connected`);if(t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)){if(t.validateOnly!==!0&&!n.upsertWrite)throw new Error(`UnsupportedError: APPLY ${Jn(e)} UPSERT execution is not connected`);return}if(t.type==="INSERT"&&t.applyBlocks?.length){if(t.validateOnly!==!0&&!n.insertWrite)throw new Error(`UnsupportedError: APPLY ${Jn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Dt(t.where))throw new Error(`UnsupportedError: APPLY ${Jn(e)} execution does not support multiple-parent APPLY`)}function ll(e){let t=e.type==="EXPLAIN"?e.query:e;return(t.type==="UPDATE"||t.type==="INSERT"?t.applyBlocks??[]:t.type==="UPSERT"?[...t.onInsertApplyBlocks??[],...t.onUpdateApplyBlocks??[]]:[]).some(r=>r.targetKind==="MULTI_VALUE"||r.operations.some(i=>i.kind==="ADD"||i.kind==="REMOVE_VALUE"))}function pd(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Dt(t.where))&&!sl[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Jn(e)} public multiple-parent write is not connected`)}function Zn(e){if(!sl[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Jn(e)} internal prepared write is not available`)}function Jn(e){return`Phase ${e.slice(5)}`}function Ag(e,t){Dt(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&J("a parent $id that is not a positive safe integer in this phase"),t||J("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),al(e,t))}function al(e,t){if(Array.isArray(e)){for(let o of e)al(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&J("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&J("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&J("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&J("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&ne(n.name))&&J("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))al(o,t)}function ad(e,t){Xn(e,"child row selectors",t)}function Xn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Xn(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&J(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&J(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&J(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&ne(r.name))&&J(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&J(`qualified or parent field references in ${t}`),Lo(l,t,n)}if(i==="FIELD_REF"&&Lo(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Xn(s,t,n)}function Lo(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&J(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&J(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&J(`aggregate expressions in ${t}`)}function kr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Sg(e.op);if(t===null)throw new de(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:kr(e.left),right:kr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:kr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Sg(e){switch(e){case"=":return"!=";case"!=":case"<>":return"=";case">":return"<=";case"<":return">=";case">=":return"<";case"<=":return">";case"LIKE":return"NOT_LIKE";case"NOT_LIKE":return"LIKE";case"KLIKE":return"NOT_KLIKE";case"NOT_KLIKE":return"KLIKE";case"IN":return"NOT_IN";case"NOT_IN":return"IN"}}function dd(e){return e.includes("%")||e.includes("_")}function xr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Zt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Qt(e){if(e===null)return!1;if(xr(e))return!0;switch(e.type){case"LOGICAL":return Qt(e.left)||Qt(e.right);case"NOT":case"GROUP":return Qt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Pe(e){if(e===null)return!1;if(Zt(e))return!0;switch(e.type){case"LOGICAL":return Pe(e.left)||Pe(e.right);case"NOT":case"GROUP":return Pe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function z(e){switch(e.type){case"BINARY":return Tg(e);case"NULL_CHECK":return wg(e);case"LOGICAL":return bg(e);case"NOT":return Ng(e);case"GROUP":return Cg(e);case"EXISTS":throw new de("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new de("internal error: BOOLEAN predicate reached kintone query conversion")}}function Tg(e){if(xr(e))throw new de("LIKE / NOT LIKE \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08\u5E38\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u3067\u3059\uFF09");let t=Ed(e.left),n=Ig(e.op),r=Pg(e.right,e.op);return`${t} ${n} ${r}`}function Ig(e){switch(e){case"=":return"=";case"!=":case"<>":return"!=";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"like";case"NOT_LIKE":return"not like";case"KLIKE":return"like";case"NOT_KLIKE":return"not like";case"IN":return"in";case"NOT_IN":return"not in"}}function wg(e){let t=Ed(e.field);return e.not?`${t} != ""`:`${t} = ""`}function bg(e){let t=z(e.left),n=z(e.right),r=e.op==="AND"?"and":"or",i=fd(e.left)?`(${t})`:t,o=fd(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function Ng(e){return z(kr(e.expr))}function Cg(e){return`(${z(e.expr)})`}function Ed(e){if(e.type==="FUNC_FIELD")throw new de(`WHERE \u53E5\u306E\u95A2\u6570\uFF08${e.expr.func}\uFF09\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093`);if(e.type==="AGG_FIELD")throw new de("HAVING \u53E5\u306E\u96C6\u8A08\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="ARITH_FIELD")throw new de("WHERE \u53E5\u306E\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="CASE_FIELD")throw new de("WHERE \u53E5\u306E CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");if(e.type==="GROUPING_FIELD")throw new de("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return kg(e.field)}function Pg(e,t){switch(e.type){case"VARIABLE":throw new de(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new de(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Rd(e);case"NUMBER":return q(e);case"KINTONE_FUNC":return md(e);case"IN_LIST":return Ug(e,t);case"ARITH_VALUE":throw new de("WHERE \u53E5\u306E\u53F3\u8FBA\u7B97\u8853\u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new de("WHERE \u53E5\u306E\u53F3\u8FBA CASE WHEN \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new de("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new de("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"ARRAY":throw new de("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Rd(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function md(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Og(e)}function Og(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Fr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!vg(e.args.offset,e.args.offsetText)||!Lg.has(e.args.unit)?Fr():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!_g.has(e.args.weekday)?Fr():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!Dg(e.args.day)?Fr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Fr()}var Lg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),_g=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function vg(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function Dg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Fr(){throw new de("internal error: invalid relative date function AST reached kintone query conversion")}function Ug(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new de("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Mg(e.values),`(${e.values.map(r=>r.type==="STRING"?Rd(r):r.type==="NUMBER"?q(r):md(r)).join(",")})`}function Mg(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new de(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function kg(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function fd(e){return e.type==="LOGICAL"}var de=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function vo(e){return`'${e.replace(/'/g,"''")}'`}function er(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return q(e);if(e.type==="STRING_FUNC")return cl(e);let n=`${er(e.left)}${e.op}${er(e.right)}`;return t?n:`(${n})`}function yd(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return cl(e.expr);if(e.type==="AGG_FIELD")return gt(e.expr);if(e.type==="ARITH_FIELD")return er(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return ul(e.expr)}function hd(e){switch(e.type){case"STRING":return vo(e.value);case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>vo(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(hd).join(",")})`;case"ARITH_VALUE":return er(e.expr);case"CASE_VALUE":return ul(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Kr(e){switch(e.type){case"BINARY":return`${yd(e.left)} ${e.op.replace("_"," ")} ${hd(e.right)}`;case"NULL_CHECK":return`${yd(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Kr(e.left)} ${e.op} ${Kr(e.right)})`;case"NOT":return`NOT (${Kr(e.expr)})`;case"GROUP":return`(${Kr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function gd(e){return e.type==="ARRAY"?`[${e.elements.map(t=>vo(t.value)).join(",")}]`:e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?gt(e):e.type==="FIELD_REF"||e.type==="ARITH"?er(e):gn(e)}function ul(e){let t=e.branches.map(r=>`WHEN ${Kr(r.condition)} THEN ${gd(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${gd(e.elseResult)}`;return`CASE ${t}${n} END`}function xg(e){return e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?gt(e):gn(e)}function cl(e){return`${e.func}(${e.args.map(xg).join(",")})`}function gn(e){switch(e.type){case"STRING":return vo(e.value);case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return cl(e);case"CASE_WHEN":return ul(e);case"SCALAR_ARITH":return`(${gn(e.left)}${e.op}${gn(e.right)})`;case"CONCAT_OP":return`(${gn(e.left)}||${gn(e.right)})`}}function Fg(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?er(e,!0):gn(e)}function fe(e,t,n){let r=Fg(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function gt(e){return e.type==="NUMBER"?q(e):e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${gt(e.left)}${e.op}${gt(e.right)}`}var Ad=Symbol("ksql.groupingRowMeta"),Sd=new WeakMap;function pl(e,t){return Object.defineProperty(e,Ad,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function dl(e){return e[Ad]}function Kg(e){return dl(e)?.includedCanonicalIds}function Td(e,t){Sd.set(e,t)}function tr(e,t){let n=Kg(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Sd.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Do=["$id","$revision","\u30EC\u30B3\u30FC\u30C9\u756A\u53F7","\u4F5C\u6210\u8005","\u4F5C\u6210\u65E5\u6642","\u66F4\u65B0\u8005","\u66F4\u65B0\u65E5\u6642","\u30B9\u30C6\u30FC\u30BF\u30B9","\u4F5C\u696D\u8005"];function Uo(e){return e.startsWith("_")||e.startsWith("$")}var Gg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function El(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(El);let t=e;return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:t.type==="FIELD"&&typeof t.field=="string"?Gg.test(t.field):Object.values(t).some(El)}function $g(e){switch(e.type){case"AGGREGATE":case"ARITH_AGG_COL":return"AGGREGATE_DEPENDENT";case"GROUPING_COL":case"WINDOW_COL":return"POST_GROUP_ONLY";case"VARIABLE_COL":throw new Error("InternalError: unresolved VARIABLE_COL reached GROUP BY alias planning.");case"WILDCARD":case"PARENT_WILDCARD":case"FIELD":case"LITERAL_COL":case"ARITH_COL":case"CASE_COL":case"STRFUNC_COL":case"SCALAR_VALUE_COL":case"SCALAR_SUBQUERY_COL":return Se(e)||El(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Bg=["_pid","_rid","_idx"];function fl(e){return[...new Set(e)]}function Vg(e){switch(e.kind){case"APP":return fl([...e.fieldCodes,...Do]);case"SUBTABLE":return fl([...e.childFieldCodes,...Bg,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return fl(e.columns)}}function Id(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Vg(t(r,i))}))}function wd(e){if(e.startsWith("_p."))return{qualifier:null,fieldCode:e};let t=e.indexOf(".");return t<=0||t===e.length-1?{qualifier:null,fieldCode:e}:{qualifier:e.slice(0,t),fieldCode:e.slice(t+1)}}function bd(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Nd(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?wd(e.field):{qualifier:e.tableAlias,fieldCode:e.field},o=(r.qualifier===null?t:t.filter(s=>s.qualifier===r.qualifier)).filter(s=>s.columns.includes(r.fieldCode));if(o.length>1)return{kind:"AMBIGUOUS",name:n};if(o.length===0)return{kind:"UNKNOWN",name:n};let a=o[0];return{kind:"PHYSICAL",sourceIndex:a.sourceIndex,fieldCode:r.fieldCode,runtimeKey:bd(a,r.fieldCode)}}function Wg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Hg(e,t,n){let r=wd(e),o=(r.qualifier===null?n:n.filter(l=>l.qualifier===r.qualifier)).filter(l=>l.columns.includes(r.fieldCode));if(o.length>1)throw new Error(`ArgumentError: GROUP BY field ${e} is ambiguous across multiple sources (reason=GROUP_BY_FIELD_AMBIGUOUS).`);if(o.length===1){let l=o[0];return{kind:"PHYSICAL",sourceIndex:l.sourceIndex,fieldCode:r.fieldCode,runtimeKey:bd(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,c)=>Wg(l)===e?[{column:l,columnIndex:c}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],c=$g(l.column);return c==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:c==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&fe(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Cd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Hg(r.name,t,n):{kind:"EXPRESSION"})}}function Oe(e,t){let n=[...t];if(n.includes(e))return e;let r=e.toLowerCase();return n.find(i=>i===r)}var Yg="B65_NON_GROUPED_DEPENDENCY",ml=new Map([["ARITH_COL","expr"],["ARITH_AGG_COL","expr"],["STRFUNC_COL","expr"],["SCALAR_VALUE_COL","expr"],["CASE_COL","expr"],["ARITH_KEY","expr"],["FUNC_KEY","expr"],["FUNC_FIELD","expr"],["ARITH_FIELD","expr"],["CASE_FIELD","expr"],["ARITH_VALUE","expr"],["CASE_VALUE","expr"],["AGG_FIELD","expr"]]);function Mo(e){if(e.startsWith("_p."))return{type:"FIELD",tableAlias:null,field:e};let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function yl(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return Mo(e.field);if(t==="AGG_GROUP_KEY"&&typeof e.field=="string")return{type:"FIELD",tableAlias:typeof e.tableAlias=="string"?e.tableAlias:null,field:e.field};if(t==="FIELD"&&typeof e.field=="string"){if(e.aggregateRef!==void 0)return null;let n=typeof e.tableAlias=="string"?e.tableAlias:null;return n===null?Mo(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function gl(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function Od(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Ld(e){return e.type==="WINDOW_COL"}function jg(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function en(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number")return String(e);if(Array.isArray(e)){let c=e.map(p=>en(p,t));return c.some(p=>p===null)?null:`[${c.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||gl(n))return null;if(r==="GROUP"&&n.expr!==void 0)return en(n.expr,t);let i=typeof r=="string"?ml.get(r):void 0;if(i!==void 0)return en(n[i],t);if(r==="LITERAL_COL")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="STRING")return`STRING:${JSON.stringify(n.value??"")}`;if(r==="NUMBER")return`NUMBER:${jg(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=yl(n);if(o!==null)try{return`FIELD:${t(o)}`}catch{return null}if(r==="FIELD"&&n.aggregateRef!==void 0)return null;let a=new Set(["alias","aliasDisplay","raw","separator","distinct","source"]),s=[];for(let c of Object.keys(n)){if(c==="type"||a.has(c))continue;let p=en(n[c],t);if(p===null)return null;s.push(`${c}=${p}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function zg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function qg(e){let t=new Map;for(let n of e){let r=zg(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function hl(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var Jg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function ko(e){if(e&&typeof e=="object"){let t=e,n=yl(t);if(n!==null)return hl(n);if(t.type==="FIELD_NAME"&&typeof t.name=="string")return t.name;if(t.type==="WILDCARD")return"*";if(t.type==="PARENT_WILDCARD")return"_p.*";let r=t.alias;if(typeof r=="string"&&r.length>0)return r;let i=typeof t.type=="string"?ml.get(t.type):void 0;if(i!==void 0){let a=ko(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Pd(e,t,n,r){let i=n==="WILDCARD"?"wildcard":hl(n),o=ko(t),a=r.groupingLabel===null?"GROUP BY \u304C\u306A\u3044\u305F\u3081\u5165\u529B\u5168\u4F53\u304C1\u30B0\u30EB\u30FC\u30D7\u306B\u306A\u308A":`${r.groupingLabel} \u306E\u5404\u30B0\u30EB\u30FC\u30D7\u3067\u306F`,s=n==="WILDCARD"?"\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066 SELECT \u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u300C${i}\u300D\u3092 MIN() \u306A\u3069\u306E\u96C6\u8A08\u95A2\u6570\u3067\u5305\u3080\u304B\u3001GROUP BY \u3078\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,l=n!=="WILDCARD"&&n.tableAlias===null&&o===i&&r.migrationSourceSql!==void 0?r.migrationGroupingFields&&r.migrationGroupingFields.length>0?` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT ${r.migrationGroupingFields.join(", ")}, MIN(${i}) FROM ${r.migrationSourceSql} GROUP BY ${r.migrationGroupingFields.join(", ")}\u300D\u3002`:` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT MIN(${i}) FROM ${r.migrationSourceSql}\u300D\u3002`:"";return new Error(`ArgumentError: ${e} \u5F0F\u300C${o}\u300D\u306F\u96C6\u8A08\u3082\u30B0\u30EB\u30FC\u30D7\u5316\u3082\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08${r.sourceLabel}\u3001\u975E\u30B0\u30EB\u30FC\u30D7\u5316\u4F9D\u5B58: ${i}\uFF09\u3002${a}\u3001\u3069\u306E\u884C\u306E\u5024\u3092\u8FD4\u3059\u304B\u6C7A\u307E\u308A\u307E\u305B\u3093\u3002${s}${l} (reason=${Yg})`)}function hn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)hn(a,t);return}let n=e;if(gl(n)||Od(n)||Ld(n)||n.type==="GROUPING_REF"||n.type==="GROUPING_FIELD"||n.type==="GROUPING_COL"||n.type==="GROUPING_KEY")return;if(n.type==="WILDCARD"||n.type==="PARENT_WILDCARD")throw Pd(t.clause,t.expression,"WILDCARD",t.policy);let r=yl(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&Jg.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=Oe(r.field,t.aliases.keys()),c=l===void 0?[]:t.aliases.get(l)??[];if(c.length===1&&l!==void 0&&!t.resolvingAliases.has(l)){let p=new Set(t.resolvingAliases);p.add(l),hn(c[0],{...t,resolvingAliases:p});return}}let a=en(n,t.policy.resolveField);if(a!==null&&t.policy.identities.has(a))return;let s=`FIELD:${t.policy.resolveField(r)}`;if(!t.policy.identities.has(s))throw Pd(t.clause,t.expression,r,t.policy);return}let i=en(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?ml.get(n.type):void 0;if(o!==void 0){hn(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||hn(n[a],t)}function Gr(e,t){let n=qg(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&hn(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&hn(e.having,{clause:"HAVING",expression:e.having,policy:t,aliases:n,resolvingAliases:new Set});for(let r of e.orderBy){let i=r.key.type==="FIELD_NAME"?Mo(r.key.name):r.key;hn(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function Rl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Rl);let t=e;return gl(t)||Ld(t)?!1:Od(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Rl)}function Ut(e){return ee(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Rl(t))}function Xg(e){return e.type==="FIELD_NAME"?Mo(e.name):e.expr}function _d(e,t,n){let r=ee(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let E=Nd(f,n);if(E.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${E.name} is ambiguous across multiple sources.`);return E.kind==="UNKNOWN"?`unknown:${E.name}`:`source:${E.sourceIndex}:${E.fieldCode}`},a=new Set;t.items.forEach((f,E)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let R=en(e.columns[f.columnIndex],o);R!==null&&a.add(R);return}if(f.kind==="EXPRESSION"){let R=en(Xg(i[E]),o);R!==null&&a.add(R)}});let s=[e.from,...e.joins.map(f=>f.table)],l=f=>`APP${f.appId}${f.subtableCode!=null?`$${f.subtableCode}`:""}`,c=s.map(f=>f.cteName??l(f)).join(" / "),p=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:ko(f)).join(", ")}`,u=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,d=i.every((f,E)=>f.type==="FIELD_NAME"&&t.items[E]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:c,groupingLabel:p,migrationSourceSql:u,migrationGroupingFields:d}}function xo(e){if(ee(e).type!=="NONE"||!Ut(e))return;let t={identities:new Set,resolveField:n=>`ast:${hl(n)}`,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:null,migrationSourceSql:e.from.cteName===null&&e.joins.length===0?`APP${e.from.appId}${e.from.alias&&e.from.alias!==`APP${e.from.appId}`?` ${e.from.alias}`:""}`:void 0};Gr(e,t)}function vd(e){return`FIELD:${e}`}var Dd=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function Al(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function je(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>je(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="GROUPING_REF"){t.push(n);return}Object.values(n).forEach(r=>je(r,t))}}function Go(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Go(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){je(n.arg,t);return}Object.values(n).forEach(r=>Go(r,t))}}function Se(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Se);let t=e;return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:Object.values(t).some(Se)}function Qg(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="ARITH_COL"||e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?Se(e):!1}function Zg(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${Al(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${Al(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Td(e,r.canonicalId)}function Sl(e){let t=ee(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&je(i,n);je(e.having,n),je(e.orderBy,n);let r=[];je(e.where,r),je(e.joins,r),Go(e.columns,r),Go(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&je(i,r);if(r.length>0)throw new Error("ArgumentError: GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");xo(e);return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: KORDER BY is not supported with extended grouping.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: window functions are not supported with extended grouping.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: SELECT wildcard \u306F\u96C6\u8A08 query \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044 (reason=B65_NON_GROUPED_DEPENDENCY).")}function Ud(e,t,n=()=>{}){Sl(e);let r=ee(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&je(c,i);if(je(e.having,i),je(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=Zp(e,t),a=new Set,s=[];for(let c of o.allItems){let p=c;if(!p.physical)throw new Error(`ArgumentError: grouping item ${Al(c.field)} must resolve to a physical APP field.`);a.has(p.canonicalId)||(a.add(p.canonicalId),s.push(p))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let c of i)Zg(c,t,a);Gr(e,{identities:new Set([...a].map(vd)),resolveField:c=>t(c).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let c of s)l.add(c.directKey),c.unqualifiedBridgeKey!==null&&l.add(c.unqualifiedBridgeKey);for(let c of e.columns){if(!Qg(c))continue;let p="alias"in c?c.alias:null;if(p!==null&&l.has(p))throw new Error(`ArgumentError: aggregate alias ${p} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function eh(e){return e.some(t=>t.type==="WINDOW_COL")}function ze(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ee(e).type!=="NONE"||e.distinct||eh(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&Se(t.expr)||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Se(t.expr)||t.type==="STRFUNC_COL"&&Kd(t.expr)||t.type==="SCALAR_VALUE_COL"&&Br(t.expr))||Mt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Mt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Md(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||xr(e);case"NULL_CHECK":return Md(e.field);case"LOGICAL":return Mt(e.left)||Mt(e.right);case"NOT":case"GROUP":return Mt(e.expr);case"EXISTS":return!0}}function Md(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Bo(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(z(e.where)),e.orderBy.length>0){let i=e.orderBy.map(th).join(", ");t.push(`order by ${i}`)}else r&&t.push("order by $id asc");return e.limit!==null&&t.push(`limit ${e.limit}`),e.offset!==null&&t.push(`offset ${e.offset}`),{app:e.from.appId,query:t.join(" "),fields:nh(e.columns),totalCount:!1}}function Fd(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Mt(e.where)&&n.push(z(e.where)),{app:t,query:n.join(" "),fields:[]}}function An(e,t,n){let i=$d(e,n).get(t);if(!i)return[];if(i.allFields)return[];let o=new Set(i.fields);return i.table.subtableCode&&o.add(i.table.subtableCode),o.size===0&&o.add("$id"),[...o]}function th(e){let t=e.direction==="ASC"?"asc":"desc";if(e.key.type!=="FIELD_NAME")throw new Error("ORDER BY \u5F0F\u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093\uFF08FULL_SCAN \u304C\u5FC5\u8981\u3067\u3059\uFF09");return`${e.key.name} ${t}`}function nh(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="ARITH_COL"&&Se(r.expr)||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(Vo(r.field)):r.type==="ARITH_COL"?$r(r.expr,n):r.type==="STRFUNC_COL"?Tl(r.expr,n):r.type==="SCALAR_VALUE_COL"&&nr(r.expr,n);return[...new Set(n)]}function rh(e,t){$r(e.left,t),$r(e.right,t)}function $r(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(Vo(e.field)):e.type==="ARITH"?rh(e,t):e.type==="STRING_FUNC"&&Tl(e,t)}function Vo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Tl(e,t){for(let n of e.args)ih(n,t)}function ih(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){$o(e,t);return}nr(e,t)}function nr(e,t){if(e.type==="FIELD"){t.push(Vo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Tl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){nr(e.left,t),nr(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)kd(n.result,t);e.elseResult&&kd(e.elseResult,t)}}function kd(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){$o(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){$r(e,t);return}nr(e,t)}}function $o(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&oh(e.arg,t);return}e.type==="AGG_ARITH"&&($o(e.left,t),$o(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Vo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function oh(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?$r(e,t):nr(e,t)}function Kd(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Br(t))}function Br(e){return e.type==="STRING_FUNC"?Kd(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Br(e.left)||Br(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>xd(t.result))||e.elseResult!==null&&xd(e.elseResult):!1}function xd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Br(e)}function Gd(e,t){let n=new Set,r=$d(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function $d(e,t,n){let r=[e.from,...e.joins.map(h=>h.table)],i=[e.from,...e.joins.map(h=>h.table)].filter(h=>h.cteName===null),o=n?r:i,a=new Map;for(let h of o)a.set(h,{table:h,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(h=>!!h.subtableCode)??null,c=new Map;for(let h of o)h.alias&&c.set(h.alias,h),h.cteName!==null?c.set(h.cteName,h):h.subtableCode||(c.set(`APP${h.appId}`,h),c.set(`app${h.appId}`,h));let p=ah(e.columns),u=h=>{let w=a.get(h);w&&(w.allFields=!0,w.fields.clear())},d=()=>{for(let h of o)u(h)},f=()=>{for(let h of o)h.subtableCode&&u(h)},E=(h,w)=>{let _=a.get(h);if(!(!_||_.allFields)){if(h.subtableCode){if(w.startsWith("_p.")){let L=w.slice(3);L&&L!=="*"&&_.fields.add(L);return}return void 0}w&&_.fields.add(w)}},R=(h,w="select",_)=>{if(!h||h==="*")return;if(h==="_p.*"){f();return}if(h.endsWith(".*")){let F=h.slice(0,-2);if(!F){d();return}if(F==="_p"){f();return}let B=c.get(F);if(B){u(B);return}return}if(w==="groupBy"&&_!==void 0){if(_.kind==="PHYSICAL"){let F=r[_.sourceIndex];F&&(n||F.cteName===null)&&E(F,_.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&Oe(h,p)!==void 0||(w==="orderBy"||w==="having"||w==="groupBy")&&sh(h))return;let L=h.indexOf(".");if(L>0){let F=h.slice(0,L),B=h.slice(L+1);if(F==="_p"){l&&E(l,`_p.${B}`);return}let V=c.get(F);if(V){E(V,B);return}if(n)return}n?n.unqualified.add(h):s&&E(s,h)},m=(h,w,_="select")=>{if(w){if(w==="_p"){l&&E(l,`_p.${h}`);return}let L=c.get(w);if(L){E(L,h);return}if(n)return}R(h,_)},y=(h,w="select")=>{if(h.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${h.name} reached source-aware field collection.`);if(h.type==="FIELD_REF"){R(h.field,w);return}if(h.type==="ARITH"){y(h.left,w),y(h.right,w);return}if(h.type==="STRING_FUNC"){A(h,w);return}},g=(h,w="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&N(h.arg,w);return}h.type==="AGG_ARITH"&&(g(h.left,w),g(h.right,w)),h.type==="AGG_GROUP_KEY"&&m(h.field,h.tableAlias??null,w)},S=(h,w="select")=>{if(h.type==="AGG_REF"||h.type==="AGG_ARITH"||h.type==="AGG_GROUP_KEY"||h.type==="VARIABLE"){g(h,w);return}I(h,w)},A=(h,w="select")=>{for(let _ of h.args)S(_,w)},I=(h,w="select")=>{if(h.type==="FIELD"){m(h.field,h.tableAlias,w);return}if(h.type==="STRING_FUNC"){A(h,w);return}if(h.type==="SCALAR_ARITH"||h.type==="CONCAT_OP"){I(h.left,w),I(h.right,w);return}h.type==="CASE_WHEN"&&b(h,w)},N=(h,w="select")=>{if(h.type==="FIELD_REF"||h.type==="ARITH"){y(h,w);return}I(h,w)},v=(h,w="select")=>{if(h.type!=="ARRAY"){if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){g(h,w);return}if(h.type==="FIELD_REF"||h.type==="ARITH"){y(h,w);return}I(h,w)}},b=(h,w="select")=>{for(let _ of h.branches)k(_.condition,w),v(_.result,w);h.elseResult&&v(h.elseResult,w)},M=(h,w="select")=>{if(h.type==="FIELD"){if(h.aggregateRef){g(h.aggregateRef,w);return}m(h.field,h.tableAlias,w);return}if(h.type==="FUNC_FIELD"){A(h.expr,w);return}if(h.type==="AGG_FIELD"){g(h.expr,w);return}if(h.type==="ARITH_FIELD"){y(h.expr,w);return}h.type!=="GROUPING_FIELD"&&b(h.expr,w)},D=(h,w="select")=>{if(h.type==="ARITH_VALUE"){y(h.expr,w);return}if(h.type==="CASE_VALUE"){b(h.expr,w);return}},k=(h,w="where")=>{if(h)switch(h.type){case"BINARY":M(h.left,w),D(h.right,w);return;case"NULL_CHECK":M(h.field,w);return;case"LOGICAL":k(h.left,w),k(h.right,w);return;case"NOT":case"GROUP":k(h.expr,w);return;case"EXISTS":case"BOOLEAN":return}},P=(h,w)=>{if(h.type==="FIELD_NAME"){R(h.name,"groupBy",w);return}if(h.type==="ARITH_KEY"){y(h.expr,"groupBy");return}A(h.expr,"groupBy")},O=(h,w="orderBy")=>{if(h.type==="FIELD_NAME"){R(h.name,w);return}if(h.type==="ARITH_KEY"){y(h.expr,w);return}h.type!=="GROUPING_KEY"&&A(h.expr,w)};for(let h of e.columns)switch(h.type){case"WILDCARD":d();break;case"PARENT_WILDCARD":f();break;case"FIELD":R(h.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${h.name}`);case"AGGREGATE":h.arg.type!=="WILDCARD"&&N(h.arg,"select");break;case"ARITH_AGG_COL":g(h.expr,"select");break;case"ARITH_COL":y(h.expr,"select");break;case"CASE_COL":b(h.expr,"select");break;case"STRFUNC_COL":A(h.expr,"select");break;case"SCALAR_VALUE_COL":I(h.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(h.windowKind==="AGGREGATE"||h.windowKind==="VALUE")&&h.arg.type!=="WILDCARD"&&N(h.arg,"select");for(let w of h.partitionBy)m(w.field,w.tableAlias,"select");for(let w of h.orderBy)O(w.key,"select");break}for(let h of e.joins)h.type!=="CROSS"&&(m(h.on.left.field,h.on.left.tableAlias,"where"),m(h.on.right.field,h.on.right.tableAlias,"where"));k(e.where,"where");let C=ee(e);if(C.type==="PLAIN")C.allItems.forEach((h,w)=>P(h,t?.items[w]));else if(C.type==="GROUPING_SETS")for(let h of C.allItems)m(h.field,h.tableAlias,"select");k(e.having,"having");for(let h of e.orderBy)O(h.key);return a}function ah(e){let t=new Set;for(let n of e){if(n.type==="FIELD"&&n.alias){t.add(n.alias);continue}if(n.type==="LITERAL_COL"){t.add(n.alias??`'${n.value}'`);continue}if(n.type==="AGGREGATE"){n.alias?t.add(n.alias):t.add(fe(n.func,n.distinct,n.arg));continue}if(n.type==="ARITH_AGG_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="ARITH_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="CASE_COL"){t.add(n.alias??"case");continue}if(n.type==="STRFUNC_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="SCALAR_VALUE_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="GROUPING_COL"){t.add(n.alias??`GROUPING(${n.ref.field.tableAlias?`${n.ref.field.tableAlias}.`:""}${n.ref.field.field})`);continue}if(n.type==="SCALAR_SUBQUERY_COL"){t.add(n.alias??"(subquery)");continue}n.type==="WINDOW_COL"&&t.add(n.alias)}return t}function sh(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function tn(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||ze(t.query)!=="SIMPLE"||!t.query.columns.every(r=>r.type==="WILDCARD"||r.type==="FIELD"&&(r.alias===null||r.alias===r.field)))return!1;let n=e.query;return n.type!=="SELECT"||n.from.cteName!==t.name||n.joins.length>0||Qp(n)||n.distinct?!1:!Ut(n)}function nn(e){let t=e.ctes[0].query,n=e.query,r=Wo(n.where,n.from.alias),i=t.where===null?r:r===null?t.where:{type:"LOGICAL",op:"AND",left:t.where,right:r},o=n.columns.every(a=>a.type==="WILDCARD")?t.columns:n.columns;return{type:"SELECT",from:t.from,joins:[],columns:o,where:i,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:n.orderBy.length>0?n.orderBy:t.orderBy,limit:n.limit??t.limit,offset:n.offset??t.offset,distinct:!1}}function Wo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Bd(e.left,t)};case"NULL_CHECK":return{...e,field:Bd(e.field,t)};case"LOGICAL":return{...e,left:Wo(e.left,t),right:Wo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Wo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Bd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var lh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),uh=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function te(e){let t;e.fieldType==="RECORD_NUMBER"||e.fieldType==="__ID__"?t="recordNumber":e.fieldType==="NUMBER"?t="number":e.fieldType==="CALC"?t=e.sortKind==="number"?"number":"string":uh.has(e.fieldType)?t="option":lh.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function W(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function rr(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Ho(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}var qe=["=","!=",">","<",">=","<="],ch=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),ph=new Set(qe),dh=new Map([["TODAY",new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"])],["NOW",new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"])],["LOGINUSER",new Set(["CREATOR","MODIFIER","USER_SELECT"])],["PRIMARY_ORGANIZATION",new Set(["ORGANIZATION_SELECT"])]]),fh=new Map([["TODAY",new Set(qe)],["NOW",new Set(qe)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Eh=["=","!=","in","not in"],Rh=new Map([["RECORD_NUMBER",new Set([...qe,"in","not in"])],["__ID__",new Set([...qe,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(qe)],["UPDATED_TIME",new Set(qe)],["DATE",new Set(qe)],["TIME",new Set(qe)],["DATETIME",new Set(qe)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...qe,"in","not in"])],["CALC",new Set([...qe,"in","not in"])],["MULTI_LINE_TEXT",new Set(["like","not like"])],["RICH_TEXT",new Set(["like","not like"])],["CHECK_BOX",new Set(["in","not in"])],["RADIO_BUTTON",new Set(["in","not in"])],["DROP_DOWN",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])],["FILE",new Set(["like","not like"])],["USER_SELECT",new Set(["in","not in"])],["ORGANIZATION_SELECT",new Set(["in","not in"])],["GROUP_SELECT",new Set(["in","not in"])],["STATUS",new Set(Eh)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),mh=new Map([["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CHECK_BOX",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])]]),wl=new Set(["RECORD_NUMBER","__ID__","CREATOR","MODIFIER","CREATED_TIME","UPDATED_TIME","DATE","TIME","DATETIME","SINGLE_LINE_TEXT","LINK","NUMBER","CALC","MULTI_LINE_TEXT","RICH_TEXT","RADIO_BUTTON","DROP_DOWN","STATUS","KSQL_STRING","KSQL_NUMBER","KSQL_BOOLEAN"]),Hd=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function jo(e){return Rh.get(e)??new Set}function Yd(e,t){let n=[],r=i=>{if(i.type==="BINARY"){if((i.op==="="||i.op==="!="||i.op==="<>")&&i.left.type==="FIELD"&&i.right.type==="STRING"&&i.right.value!==""){let o=t(i.left);if(o!==void 0&&o.compareMode==="option"&&wl.has(o.fieldType)&&jo(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function Te(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Wr(e,t)}function Wr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return yh(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Il():Ah(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Il();case"GROUP":return Wr(e.expr,t);case"NOT":{let n=Wr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:zd(n.reasons)?Yr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Wr(e.left,t),r=Wr(e.right,t);return Th(e.op,n,r)}}}function yh(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ne(n.name))return gh(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Vd(n))return Wd(e,t,n,r);if(n.type==="IN_LIST"){let p=n.values.filter(u=>u.type==="KINTONE_FUNC");if(p.length>0)return n.values.length===1&&p.length===1?Wd(e,t,p[0],r):Yo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Hr(e))}if(t.type!=="FIELD")return Il();let i=r(t);if(!i)return ir("WHERE_FIELD_UNRESOLVED",t.field,void 0,Hr(e));let o=Hr(e);if(!jd(i.fieldType,o))return ir("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Sh(i.fieldType,e))return ir("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=jo(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Vd(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",c=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!c?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function Vd(e){return e.type==="KINTONE_FUNC"&&mn.has(e.name)}function Wd(e,t,n,r){let i=Hr(e),o=n.name;if(!mn.has(o)||t.type!=="FIELD")return Yo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=dh.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Yo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):fh.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Yo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function gh(e,t,n,r){let i=Hr(e),o=n.name;if(t.type!=="FIELD")return Vr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?hh(n)?ph.has(i)?!ch.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Vr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,a.fieldType,i):{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Vr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Vr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Vr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function hh(e){if(!("args"in e)||!e.args)return!1;switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args.kind==="NONE";case"FROM_TODAY":return e.args.kind==="FROM_TODAY"&&Number.isSafeInteger(e.args.offset)&&e.args.offsetText===String(e.args.offset===0?0:e.args.offset)&&(e.args.unit==="DAYS"||e.args.unit==="WEEKS"||e.args.unit==="MONTHS"||e.args.unit==="YEARS");case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args.kind==="WEEK"&&(e.args.weekday===null||e.args.weekday==="SUNDAY"||e.args.weekday==="MONDAY"||e.args.weekday==="TUESDAY"||e.args.weekday==="WEDNESDAY"||e.args.weekday==="THURSDAY"||e.args.weekday==="FRIDAY"||e.args.weekday==="SATURDAY");case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args.kind==="MONTH"&&(e.args.day===null||e.args.day==="LAST"||Number.isInteger(e.args.day)&&e.args.day>=1&&e.args.day<=31);default:return!1}}function Ah(e,t,n){let r=n(e);return r?jd(r.fieldType,t)?!wl.has(r.fieldType)&&!Hd.has(r.fieldType)?ir("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:ir("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):ir("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function jd(e,t){let n=mh.get(e);return n===void 0||n.has(t)}function Sh(e,t){return wl.has(e)?!0:Hd.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Hr(e){switch(e){case"<>":return"!=";case"IN":return"in";case"NOT_IN":return"not in";case"LIKE":case"KLIKE":return"like";case"NOT_LIKE":case"NOT_KLIKE":return"not like";default:return e}}function Th(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Yr({capability:"UNSUPPORTED",reasons:r}):t.capability==="EXACT_PUSHDOWN"&&n.capability==="EXACT_PUSHDOWN"?{capability:"EXACT_PUSHDOWN",reasons:r}:e==="AND"&&(t.capability==="EXACT_PUSHDOWN"||n.capability==="EXACT_PUSHDOWN"||t.capability==="SUPERSET_PREFILTER"||n.capability==="SUPERSET_PREFILTER")?Yr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Yr({capability:"LOCAL_ONLY",reasons:r})}function Il(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function ir(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Yo(e,t,n,r,i){return Yr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Vr(e,t,n,r,i){return qd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function zd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ne(t.functionName))}function Ih(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&mn.has(t.functionName))}function qd(e){if(e.capability==="EXACT_PUSHDOWN"||!zd(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&ne(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function wh(e){if(e.capability==="EXACT_PUSHDOWN"||!Ih(e.reasons)||e.reasons.some(n=>n.code==="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_KINTONE_FUNCTION_")||n.functionName!==void 0&&mn.has(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function Yr(e){return wh(qd(e))}function jr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function zo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function qo(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!jr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function Jo(e){let t=e.raw??String(e.value),n=we(t);if(n===null)return!1;if(n.sign===0)return q(e)==="0";let r=Math.max(n.scale,0),i=Math.max(n.coefficient.length-n.scale,0);if(r>10||i+r>30)return!1;let o=tl(n);return q(e)===o}var bh=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Nh=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Ch=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Ph=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Xo(e,t){let{fieldCode:n,fieldType:r,fieldOptions:i}=t;return r.startsWith("KSQL_")||e.op==="LIKE"||e.op==="NOT_LIKE"?"unsafe":e.op==="KLIKE"||e.op==="NOT_KLIKE"?Ch.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?Lh(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Oh(e):r==="NUMBER"?(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(o=>o.type==="NUMBER"&&Jo(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&Jo(e.right)?"exact":"unsafe":Nh.has(r)?bl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?bl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Ph.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?jr(e.right.value)?"exact":"unsafe":r==="TIME"?zo(e.right.value)?"exact":"unsafe":qo(e.right.value)?"exact":"unsafe":bh.has(r)?!bl(e)||i===void 0?"unsafe":e.right.type==="IN_LIST"&&e.right.values.every(o=>o.type==="STRING"&&i.has(o.value))?"exact":"unsafe":"unsafe"}function Jd(e,t){if(e.left.type!=="FIELD"||e.left.field==="$id"||!t(e.left))return!1;if(e.op==="IN"||e.op==="NOT_IN"){if(e.right.type!=="IN_LIST"||e.right.values.length===0)return!1;let n=e.right.values[0].type;return n!=="NUMBER"&&n!=="STRING"?!1:e.right.values.every(r=>r.type===n&&(r.type!=="STRING"||r.value!==""))}return e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="?!1:e.right.type==="NUMBER"||e.right.type==="STRING"&&e.right.value!==""}function bl(e){return(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(t=>t.type==="STRING"&&t.value!=="")}function Oh(e){let t=n=>n.type==="NUMBER"&&Jo(n)||n.type==="STRING"&&n.value!=="";if((e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"){let n=e.right.values;if(n.length>0&&n.every(t)&&n.every(r=>r.type===n[0].type))return"superset"}return(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&t(e.right)?"superset":"unsafe"}function Lh(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function Nl(e,t={}){return ta(e,t).condition}function ta(e,t={}){return Qo(e,n=>_h(n,t))}function zr(e,t={}){return Zo(e,n=>Jd(n,r=>ea(r,t)))}function Qo(e,t){switch(e.type){case"BINARY":{let n=t(e);return n==="unsafe"?{condition:null,relation:null}:{condition:e,relation:n}}case"LOGICAL":{if(e.op!=="AND")return{condition:null,relation:null};let n=Qo(e.left,t),r=Qo(e.right,t);return n.condition&&r.condition?{condition:{...e,left:n.condition,right:r.condition},relation:n.relation==="exact"&&r.relation==="exact"?"exact":"superset"}:n.condition?n:r}case"GROUP":return Qo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function Zo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Zo(e.left,t),r=Zo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return Zo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function _h(e,t){if(vh(e,t)||Dh(e,t))return"exact";if(e.left.type!=="FIELD"||!ea(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||Te(e,i=>{if(!ea(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:te({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":Xo(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function vh(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!ea(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function Dh(e,t){return!Uh(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function Uh(e,t){if(e.type!=="FIELD"||e.field!=="$id")return!1;let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function ea(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function qr(e,t={}){let n=e!==null&&t.extractCondition!==!1?ta(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;or(r,o);let a=new Set;return or(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function Sn(e,t={}){let n=e.joins.every(u=>u.type==="INNER"||u.type==="CROSS"),r={allowKlike:n,allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=qr(e.where,{...r,extractCondition:i&&o&&n,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map,c=new Map;if(e.where!==null)for(let u of e.joins){if(u.type!=="INNER"&&u.type!=="CROSS"||!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let d=ta(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});d.condition!==null&&d.relation!==null&&(l.set(u.table.alias,d.condition),c.set(u.table.alias,d.relation))}let p=new Set(a.appliedKlikes);for(let u of l.values())or(u,p);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:c,appliedKlikes:p,allKlikes:a.allKlikes}}function Cl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function or(e,t){if(e!==null){if(Zt(e)){t.add(e);return}switch(e.type){case"LOGICAL":or(e.left,t),or(e.right,t);return;case"NOT":case"GROUP":or(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function na(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=Ae(t.where);if(l.length===0||!xh(l,a)||o===null||!Xd(o,l))return null;let c={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:kh(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},p={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:c};return Mh(p,e,l),p}function Mh(e,t,n){if(e.allowForm!=="FULL_SCAN_EXACT")throw new Error("FULL_SCAN_EXACT invariant: allowForm");if(e.clientWhereEvaluation!==!1)throw new Error("FULL_SCAN_EXACT invariant: clientWhereEvaluation");if(t.capability.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: capability");if(t.select.where===null||e.prefilterPlan.prefilterWhere!==t.select.where)throw new Error("FULL_SCAN_EXACT invariant: whole WHERE identity");if(e.prefilterPlan.residualWhere!==null)throw new Error("FULL_SCAN_EXACT invariant: residualWhere");if(e.prefilterPlan.capability!=="EXACT_PUSHDOWN")throw new Error("FULL_SCAN_EXACT invariant: transport capability");if(!Xd(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Ae(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&at(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function kh(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&at(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&at(r.right.values[0].name))&&t.push(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function xh(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Xd(e,t){let n=new Map;for(let r of t){if(!at(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var ge=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function Qd(e){Zd(e)}function Ol(e){if(Cl(e).length>0)throw new ge("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function Zd(e){switch(e.type){case"SELECT":ar(e);return;case"UNION":_l(e);return;case"WITH":ef(e);return;case"EXPLAIN":Zd(e.query);return;case"CREATE_TEMP_TABLE":Ll(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":Tn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Dt(e.where)&&Pe(e.where)){Pl(e.where),Tn(e);return}if(rn(e)&&e.subtableCode)throw new ge("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&Pe(e.where)&&!Gh(e,e.where)){Pl(e.where),Tn(e);return}if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA UPDATE \u306E WHERE\u3001\u307E\u305F\u306F APPLY \u8907\u6570\u89AA UPDATE \u306E\u5B89\u5168\u306A\u89AA WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"DELETE":if(rn(e)&&e.subtableCode)throw new ge("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&Pe(e.where)){Pl(e.where),Tn(e);return}if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F\u901A\u5E38\u89AA DELETE \u306E WHERE \u3060\u3051\u3067\u4F7F\u7528\u3067\u304D\u307E\u3059");return;case"INSERT":case"INSERT_SELECT":if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB REORDER \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"VALIDATE":if(rn(e))throw new ge("KLIKE / NOT KLIKE \u306F VALIDATE \u306E WHERE / CHECK \u3067\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"SHOW_APPS":case"DESCRIBE":case"DROP_TEMP_TABLE":return}}function Pl(e){ia(e,t=>{if(!Zt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new ge("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new ge("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Ll(e){e.type==="SELECT"?ar(e):e.type==="UNION"?_l(e):ef(e)}function _l(e){Ll(e.left),ar(e.right)}function ef(e){if(tn(e)){ar(nn(e));return}for(let t of e.ctes)t.query.type==="SELECT"?ar(t.query):t.query.type==="UNION"&&_l(t.query);Ll(e.query)}function ar(e){if(Kh(e),Pe(e.where)&&!(ze(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Sn(e,{allowUnresolvedVariables:!0});if(Cl(n).length===0){Tn(e);return}if(Fh(e)){Tn(e);return}throw new ge("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}Tn(e)}function Fh(e){return e.where!==null&&Ae(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER"||t.type==="CROSS")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function Kh(e){ia(e,t=>{if(!Zt(t))return;if(!ra(e.where,t))throw new ge("KLIKE / NOT KLIKE \u306F SELECT \u306E WHERE \u53E5\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new ge("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u6587\u5B57\u5217\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");if(n.type==="STRING"&&n.value.includes("%"))throw new ge("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function Tn(e){oa(e,t=>{t.type==="SELECT"&&ar(t)},!0)}function rn(e){let t=!1;return oa(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function Gh(e,t){let n=!1,r=i=>{if(n||i===t||i===null||typeof i!="object")return;if(Array.isArray(i)){for(let a of i)r(a);return}let o=i;if(o.type!=="SELECT"){if(o.type==="BINARY"&&(o.op==="KLIKE"||o.op==="NOT_KLIKE")){n=!0;return}for(let a of Object.values(o))r(a)}};return r(e),n}function ra(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return ra(e.left,t)||ra(e.right,t);case"NOT":case"GROUP":return ra(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function ia(e,t){if(Array.isArray(e)){for(let r of e)ia(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&$h(r)||ia(r,t)}function oa(e,t,n=!1){if(Array.isArray(e)){for(let i of e)oa(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))oa(i,t)}function $h(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Jr=class extends Error{constructor(){super("ArgumentError: PRIMARY_ORGANIZATION() \u306F DML \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093"),this.name="ArgumentError"}};function tf(e){let t=e.type==="EXPLAIN"?e.query:e;switch(t.type){case"UPDATE":case"DELETE":case"UPSERT":case"UPSERT_SELECT":case"INSERT_SELECT":if(Bh(t))throw new Jr;return;default:return}}function Bh(e){let t=!1;return aa(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||Vh(n.where)&&(t=!0)}),t}function Vh(e){let t=!1;return aa(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function aa(e,t){if(Array.isArray(e)){for(let r of e)aa(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))aa(r,t)}function on(e,t,n,r=Number.POSITIVE_INFINITY){if(t.length>=n&&t.length<=r)return;let i=n===r?String(n):r===Number.POSITIVE_INFINITY?`${n} or more`:`${n} to ${r}`;throw new Error(`ArgumentError: ${e} expects ${i} argument(s).`)}function sa(e,t){switch(e){case"UPPER":case"LOWER":case"TRIM":case"LTRIM":case"RTRIM":case"LENGTH":case"LENGTH_CHAR":case"YEAR":case"MONTH":case"DAY":case"DAYOFWEEK":case"QUARTER":case"WEEK":case"LAST_DAY":case"ABS":case"SQRT":return on(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return on(e,t,2,3);case"LEFT":case"RIGHT":case"INSTR":case"ISNULL":case"NULLIF":case"MOD":case"POWER":case"FORMAT":case"CAST":case"DATE_FORMAT":case"DATEDIFF":return on(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return on(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return on(e,t,3,3);case"REGEXP_REPLACE":return on(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return on(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return on(e,t,0,0)}}var Ul=1e4,kt=Ul,Z=e=>new Error(`ArgumentError: ${e}`),Wh=e=>e.type==="VARIABLE",an=e=>e?.type==="STRING"&&e.fromVariable===!0;function Hh(e){return e.type==="NUMBER"?Number(q(e)):e.value}function sr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999||r<1||r>12||i<1||i>31)return null;let o=new Date(0);return o.setUTCHours(0,0,0,0),o.setUTCFullYear(n,r-1,i),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?{year:n,month:r,day:i}:null}function vl(e){let t=sr(e),n=new Date(0);return n.setUTCHours(0,0,0,0),n.setUTCFullYear(t.year,t.month-1,t.day),Math.trunc(n.getTime()/864e5)}function Yh(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(n).padStart(4,"0")}-${String(t.getUTCMonth()+1).padStart(2,"0")}-${String(t.getUTCDate()).padStart(2,"0")}`}function nf(e){let t=e.trim(),n=/^([+-]?\d+)\s+(day|days|month|months|year|years)$/i.exec(t);if(!n)throw/^\S+\s+(?:day|days|month|months|year|years)$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"):/^[+-]?\d+\s+\S+$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let r=Number(n[1]);if(!Number.isSafeInteger(r))throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let i=n[2].toLowerCase(),o=i.startsWith("month")?"MONTH":i.startsWith("year")?"YEAR":"DAY";if(r===0)throw Z(`GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306B 0 ${o.toLowerCase()} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);return{coefficient:r,unit:o}}function Xr(e){if(typeof e=="number")return Number.isSafeInteger(e)?e:null;if(!/^[+-]?\d+$/.test(e))return null;let t=Number(e);return Number.isSafeInteger(t)?t:null}function Qr(e){let t=we(e.raw??String(e.value));if(t===null||t.scale>0)return null;if(t.sign===0)return 0;if(t.coefficient.length-t.scale>16)return null;let r=`${t.coefficient}${"0".repeat(-t.scale)}`;if(r.length===16&&r>"9007199254740991")return null;let i=Number(r)*t.sign;return Number.isSafeInteger(i)?i:null}function rf(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function la(e,t,n){if(e===t)return 1;if(e<t&&n<0||e>t&&n>0)return 0;let r=n>0?BigInt(t)-BigInt(e):BigInt(e)-BigInt(t);return Number(r/BigInt(Math.abs(n))+1n)}function Dl(e){return e.year*12+e.month-1}function of(e,t){if(t==="MONTH"&&e.day!==1)throw Z("GENERATE_SERIES \u306E month step \u3067\u306F start \u306B\u6708\u521D\uFF08YYYY-MM-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(t==="YEAR"&&(e.month!==1||e.day!==1))throw Z("GENERATE_SERIES \u306E year step \u3067\u306F start \u306B\u5E74\u521D\uFF08YYYY-01-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}function jh(e,t,n){let r=vl(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=vl(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return la(r,i,n.coefficient);if(r===i)return 1;if(r<i&&n.coefficient<0||r>i&&n.coefficient>0)return 0;if(n.unit==="MONTH"){let s=Dl(t)+(n.coefficient<0&&t.day!==1?1:0);return la(Dl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return la(e.year,a,n.coefficient)}function af(e,t,n){if(e<1||e>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-${String(n).padStart(2,"0")}`}function zh(e){let t=Math.floor(e/12),n=e-t*12+1;return af(t,n,1)}function sf(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(g=>Hh(g));["start","stop","step"].forEach((g,S)=>{if(t[S]==="")throw Z(`GENERATE_SERIES \u306E ${g} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`)});let[n,r,i]=t,[o,a,s]=e.args,l=typeof n=="string"?sr(n):null,c=typeof r=="string"?sr(r):null,p=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(rf))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||c||p||u||typeof n=="string"&&typeof r=="string"&&!(an(o)&&an(a)&&Xr(n)!==null&&Xr(r)!==null)){if(!l||!c)throw Z(l&&typeof r!="string"||c&&typeof n!="string"?"GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(i!==void 0&&typeof i!="string")throw Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let g=i===void 0?{coefficient:1,unit:"DAY"}:nf(i);return of(l,g.unit),{kind:"DATE",start:n,stop:r,step:g.coefficient,dateUnit:g.unit,rowCount:jh(l,c,g)}}let d=o.type==="NUMBER"?Qr(o):an(o)?Xr(n):null,f=a.type==="NUMBER"?Qr(a):an(a)?Xr(r):null;if(d===null||f===null)throw(o.type==="NUMBER"||an(o))&&(a.type==="NUMBER"||an(a))?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=i===void 0?1:s?.type==="NUMBER"?Qr(s):an(s)?Xr(i):null;if(E===null)throw s?.type==="NUMBER"||an(s)?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let R=d,m=f,y=E;if(y===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:R,stop:m,step:y,rowCount:la(R,m,y)}}function qh(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(e.args.some(Wh)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw Z(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&Qr(o)===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(i<2&&o?.type==="STRING"){if(rf(o.value))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(/^\d{4}-/.test(o.value)&&sr(o.value)===null)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}});let n=e.args[2];if(n?.type==="NUMBER"){let r=Qr(n);if(r===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(r===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=nf(n.value),i=e.args[0];if(i?.type==="STRING"){let o=sr(i.value);o&&of(o,r.unit)}}return null}let t=sf(e);if(t.rowCount>kt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${kt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function lf(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="WITH"){let i=0,o=!0;for(let a of r.ctes)if(a.query.type==="GENERATE_SERIES"){let s=qh(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>kt)throw Z(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${kt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function ua(e){let t=sf(e);if(t.rowCount>kt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${kt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let n=[];if(t.kind==="INTEGER"){let r=t.start;for(let i=0;i<t.rowCount;i++)if(n.push(String(r)),i+1<t.rowCount){let o=r+t.step;if(!Number.isSafeInteger(o))throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");r=o}}else{let r=sr(t.start);if(t.dateUnit==="MONTH"){let i=Dl(r);for(let o=0;o<t.rowCount;o++)n.push(zh(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(af(r.year+i*t.step,1,1));else{let i=vl(t.start);for(let o=0;o<t.rowCount;o++)n.push(Yh(i+o*t.step))}}return{...t,values:n}}function st(e){Jh(e),tf(e),Qd(e),lf(e)}function Jh(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="STRING_FUNC"){let i=r;sa(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var pa=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],xl="\0as-of:";function Zr(e){return`${xl}${e}`}function lr(e){if(!e.startsWith(xl))return null;let t=e.slice(xl.length);return ei(t)?t:null}function ei(e){return pa.includes(e)}function Fl(e=new Date,t){if(!(e instanceof Date)||!Number.isFinite(e.getTime()))throw new Error("ArgumentError: asOf must be a valid Date.");let n;try{n=new Intl.DateTimeFormat("en-CA",{...t===void 0?{}:{timeZone:t},year:"numeric",month:"2-digit",day:"2-digit"}),n.format(e)}catch{throw new Error(`ArgumentError: invalid IANA timezone: ${t??""}.`)}let r=n.formatToParts(e),i=Ml(r,"year"),o=Ml(r,"month"),a=Ml(r,"day"),s=`${kl(i)}-${ca(o)}-${ca(a)}`,l=`${kl(i)}-${ca(o)}-01`,c=o===12?i+1:i,p=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${kl(c)}-${ca(p)}-01`}}}function Ml(e,t){let n=e.find(i=>i.type===t)?.value,r=Number(n);if(!Number.isInteger(r))throw new Error(`InternalError: Intl.DateTimeFormat did not return ${t}.`);return r}function ca(e){return String(e).padStart(2,"0")}function kl(e){return String(e).padStart(4,"0")}var da=16,uf=64,ie=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ti(e,t,n){if(Array.isArray(e)){for(let r of e)ti(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.cteName;typeof i=="string"&&i.startsWith("#")&&t.add(i);let o=r.appId;typeof o=="number"&&o>0&&n.add(o);for(let a of Object.values(r))ti(a,t,n)}}var Xh=new Set(["=","!=","<>",">","<",">=","<="]);function Kl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Kl(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){if(lr(r.name)!==null)return;t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",c=n&&i==="BINARY"&&a==="right"&&l&&Xh.has(String(r.op));Kl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?c:o?n:!1)}}}function Qh(e){let t=e.type==="EXPLAIN"?e.query:e;return Xt(t.type)||t.type==="VALIDATE"}function Gl(e){if(Array.isArray(e)){for(let t of e)Gl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Sl(e);for(let n of Object.values(t))Gl(n)}}function $l(e){if(e.length===0)throw new ie("ArgumentError: SQL is empty.",0);if(e.forEach((u,d)=>{try{Gl(u)}catch(f){throw f instanceof Error?new ie(f.message,d):f}try{Qn("phase15b",u),st(u)}catch(f){throw f instanceof ge||f instanceof Jr?new ie(f.message,d):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new ie(f.message,d):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let d=u==="SET_VARIABLE"?"SET":"DECLARE";throw new ie(`ArgumentError: ${d} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let d=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new ie(`ArgumentError: ${d} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((u,d)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let v=u.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in u&&u.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new ie(v,d)}let E=Po(u),R=[],m=[],y=new Set,g=new Set,S=new Set,A=[];Kl(u,A);let I=new Set;for(let v of A){let b=o.get(v.name);if(b===void 0)throw new ie(`ParseError: variable @${v.name} is not defined before statement ${d+1}.`,d);if(b.kind==="scalar"&&v.kind==="array-in-list")throw new ie(`ParseError: scalar variable @${v.name} cannot be used as IN @${v.name}; use IN (@${v.name}) instead.`,d);if(b.kind==="array"&&v.kind!=="array-in-list")throw new ie(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,d);if(b.relativeDate&&Qh(u))throw new ie(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,d);if(b.relativeDate&&!v.relativeDateAllowed)throw new ie(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,d);I.has(v.name)||(b.referencedBy.push(d),I.add(v.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new ie(`ParseError: variable @${u.name} is already defined.`,d);if(o.set(u.name,{index:d,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>uf)throw new ie(`ParseError: batch exceeds ${uf} variables.`,d)}u.type==="CREATE_TEMP_TABLE"?ti(u.query,y,g):u.type==="DROP_TEMP_TABLE"||ti(u,y,g);let N=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let v=new Set,b=new Set;ti(u.select,v,b),N=v.size>0&&b.size===0}for(let v of y){let b=t.get(v);if(b===void 0)throw new ie(`ParseError: temp table ${v} is not defined in this batch.`,d);S.add(b)}if(f){let v=u.type==="VALIDATE"?u.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:u.type==="IMPORT"&&u.targets?.some(D=>D.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(D=>D.kind==="FIELD"?[D.field]:D.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(D=>D.field)]:"fields"in u?u.fields:[],b=JSON.stringify(v),M=t.get(f);if(M===void 0){if(t.set(f,d),n.set(f,b),r.push(f),R.push(f),t.size>da)throw new ie(`ParseError: batch exceeds ${da} temp tables.`,d)}else{if(n.get(f)!==b)throw new ie(`ParseError: validation error table ${f} has a different payload schema.`,d);S.add(M)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new ie(`ParseError: temp table ${u.name} is already defined.`,d);if(t.set(u.name,d),r.push(u.name),R.push(u.name),t.size>da)throw new ie(`ParseError: batch exceeds ${da} temp tables.`,d)}if(u.type==="DROP_TEMP_TABLE"){let v=t.get(u.name);if(v===void 0)throw new ie(`ParseError: temp table ${u.name} is not defined in this batch.`,d);S.add(v),m.push(u.name),t.delete(u.name)}i.push({index:d,statementType:E,isDml:il(u),isReadOnly:zn(u),hasWhere:id(u),insertValuesCount:od(u),appIds:[...g].sort((v,b)=>v-b),tempTablesCreated:R,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...S].sort((v,b)=>v-b),tempOnlySource:N,targetAppId:Xt(E)&&typeof u.appId=="number"?u.appId:null,isUpdateFrom:u.type==="UPDATE"&&u.from!=null,isValidationOnly:"validateOnly"in u&&u.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in u&&u.onErrorSkip===!0,requiresCompleteInput:nd(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),c=i.some(u=>u.requiresCompleteInput),p=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:c,tempTables:r,variables:p,warnings:p.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}var fa=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["CROSS","CROSS"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["PRIMARY_ORGANIZATION","PRIMARY_ORGANIZATION"],["CASE","CASE"],["WHEN","WHEN"],["THEN","THEN"],["ELSE","ELSE"],["END","END"],["UPPER","UPPER"],["LOWER","LOWER"],["TRIM","TRIM"],["LTRIM","LTRIM"],["RTRIM","RTRIM"],["LENGTH","LENGTH"],["LENGTH_CHAR","LENGTH_CHAR"],["SUBSTRING","SUBSTRING"],["SUBSTR","SUBSTR"],["CONCAT","CONCAT"],["REPLACE","REPLACE"],["REGEXP_LIKE","REGEXP_LIKE"],["REGEXP_REPLACE","REGEXP_REPLACE"],["REGEXP_SUBSTR","REGEXP_SUBSTR"],["COALESCE","COALESCE"],["NULLIF","NULLIF"],["ISNULL","ISNULL"],["INSTR","INSTR"],["GREATEST","GREATEST"],["LEAST","LEAST"],["LPAD","LPAD"],["RPAD","RPAD"],["TRANSLATE","TRANSLATE"],["CAST","CAST"],["CONVERT","CONVERT"],["FORMAT","FORMAT"],["ROUND","ROUND"],["FLOOR","FLOOR"],["CEIL","CEIL"],["CEILING","CEILING"],["TRUNCATE","TRUNCATE"],["TRUNC","TRUNC"],["ABS","ABS"],["MOD","MOD"],["POWER","POWER"],["POW","POW"],["SQRT","SQRT"],["YEAR","YEAR"],["MONTH","MONTH"],["DAY","DAY"],["DAYOFWEEK","DAYOFWEEK"],["QUARTER","QUARTER"],["WEEK","WEEK"],["DATE_FORMAT","DATE_FORMAT"],["DATEDIFF","DATEDIFF"],["DATE_ADD","DATE_ADD"],["LAST_DAY","LAST_DAY"],["IF","IF"]]);var ke=class extends Error{constructor(n,r,i,o=!1){let a=i.slice(Math.max(0,r-10),r+10);super(`${n}\uFF08\u4F4D\u7F6E ${r}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=r;this.input=i;this.unterminated=o;this.name="LexError"}},sn=class{constructor(t){this.input=t;this.pos=0}tokenize(){let t=[];for(;;){let n=this.nextToken();if(t.push(n),n.kind==="EOF")break}return t}nextToken(){if(this.skipWhitespaceAndComments(),this.pos>=this.input.length)return this.makeToken("EOF","",this.pos);let t=this.pos,n=this.input[this.pos];if(n==="'")return this.readString(t);if(n==="`")return this.readBacktickIdent(t);if(ur(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(Bl(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new ke(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${n}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")n+="'",this.pos++;else return this.makeToken("STRING",n,t);else n+=r,this.pos++}throw new ke("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="`")return this.pos++,this.makeToken("BIDENT",n,t);n+=r,this.pos++}throw new ke("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&ur(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&ur(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&ur(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&(this.input[this.pos]==="e"||this.input[this.pos]==="E")){if(this.pos++,this.pos<this.input.length&&(this.input[this.pos]==="+"||this.input[this.pos]==="-")&&this.pos++,this.pos>=this.input.length||!ur(this.input[this.pos]))throw new ke("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&ur(this.input[this.pos]);)this.pos++}return this.makeToken("NUMBER",this.input.slice(t,this.pos),t)}tryReadOperator(t){let n=this.input[this.pos],r=this.input[this.pos+1]??"";if(n==="!"&&r==="=")return this.pos+=2,this.makeToken("!=","!=",t);if(n==="<"&&r===">")return this.pos+=2,this.makeToken("<>","<>",t);if(n===">"&&r==="=")return this.pos+=2,this.makeToken(">=",">=",t);if(n==="<"&&r==="=")return this.pos+=2,this.makeToken("<=","<=",t);if(n==="|"&&r==="|")return this.pos+=2,this.makeToken("||","||",t);switch(n){case"=":return this.pos++,this.makeToken("=","=",t);case">":return this.pos++,this.makeToken(">",">",t);case"<":return this.pos++,this.makeToken("<","<",t);case"*":return this.pos++,this.makeToken("*","*",t);case"+":return this.pos++,this.makeToken("+","+",t);case"-":return this.pos++,this.makeToken("-","-",t);case"/":return this.pos++,this.makeToken("/","/",t);case"%":return this.pos++,this.makeToken("%","%",t);case"(":return this.pos++,this.makeToken("(","(",t);case")":return this.pos++,this.makeToken(")",")",t);case"[":return this.pos++,this.makeToken("[","[",t);case"]":return this.pos++,this.makeToken("]","]",t);case",":return this.pos++,this.makeToken(",",",",t);case".":return this.pos++,this.makeToken(".",".",t);case";":return this.pos++,this.makeToken(";",";",t)}return null}readIdentOrKeyword(t){for(;this.pos<this.input.length&&cf(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=fa.get(r)??"IDENT",o=i==="IDENT"?n:r;return this.makeToken(i,o,t)}readHashIdent(t){this.pos++;let n=this.input[this.pos]??"";if(!Bl(n))throw new ke("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&cf(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ke(`@profile is not allowed on temp table ${r}.`,this.pos,this.input);return this.makeToken("IDENT",r,t)}readVariable(t){this.pos++;let n=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(n))throw new ke("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new ke("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
2
2
  `){this.pos++;continue}if(t==="-"&&this.input[this.pos+1]==="-"){for(;this.pos<this.input.length&&this.input[this.pos]!==`
3
- `;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new ke("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r,end:this.pos}}};function Bl(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Zh(t)}function cf(e){let t=e.codePointAt(0);return Bl(e)||t>=48&&t<=57}function lr(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Zh(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var df=20,Wl=Object.freeze({UPPER:"UPPER",LOWER:"LOWER",TRIM:"TRIM",LTRIM:"LTRIM",RTRIM:"RTRIM",LENGTH:"LENGTH",LENGTH_CHAR:"LENGTH_CHAR",SUBSTRING:"SUBSTRING",SUBSTR:"SUBSTRING",LEFT:"LEFT",RIGHT:"RIGHT",INSTR:"INSTR",CONCAT:"CONCAT",REPLACE:"REPLACE",REGEXP_LIKE:"REGEXP_LIKE",REGEXP_REPLACE:"REGEXP_REPLACE",REGEXP_SUBSTR:"REGEXP_SUBSTR",TRANSLATE:"TRANSLATE",COALESCE:"COALESCE",ISNULL:"ISNULL",NULLIF:"NULLIF",GREATEST:"GREATEST",LEAST:"LEAST",LPAD:"LPAD",RPAD:"RPAD",ROUND:"ROUND",FLOOR:"FLOOR",CEIL:"CEIL",CEILING:"CEIL",TRUNCATE:"TRUNCATE",TRUNC:"TRUNCATE",ABS:"ABS",MOD:"MOD",POWER:"POWER",POW:"POWER",SQRT:"SQRT",FORMAT:"FORMAT",CAST:"CAST",CONVERT:"CAST",YEAR:"YEAR",MONTH:"MONTH",DAY:"DAY",DAYOFWEEK:"DAYOFWEEK",QUARTER:"QUARTER",WEEK:"WEEK",DATE_FORMAT:"DATE_FORMAT",DATEDIFF:"DATEDIFF",DATE_ADD:"DATE_ADD",LAST_DAY:"LAST_DAY"}),Ef=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),ti=Object.freeze({COUNT:"COUNT",SUM:"SUM",AVG:"AVG",MAX:"MAX",MIN:"MIN",GROUP_CONCAT:"GROUP_CONCAT",STDDEV_POP:"STDDEV_POP",STDDEV_SAMP:"STDDEV_SAMP",VAR_POP:"VAR_POP",VAR_SAMP:"VAR_SAMP",MEDIAN:"MEDIAN",MODE:"MODE"}),bP=Object.freeze(Object.values(ti).filter(e=>e!==void 0)),eA=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),tA=new Set(eA);function nA(e){return tA.has(e)}var Rf=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),ni=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function ff(e){return ni[e]!==void 0}var rA=Object.freeze([...Oo]),iA=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),oA=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function aA(e){return iA.has(e)}function sA(e){return oA.has(e)}function lA(e){return Number.isInteger(e)&&e>=1&&e<=31}var NP=Object.freeze(Array.from(new Set([...Object.keys(Wl),...Ef,...Object.keys(ti),...Object.keys(Rf),...Object.keys(ni),...rA,"IF"]))),uA=new Set(["IDENT","BIDENT","COUNT","SUM","AVG","MAX","MIN","GROUP_CONCAT","STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE","ROW_NUMBER","RANK","DENSE_RANK","TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION","UPPER","LOWER","TRIM","LTRIM","RTRIM","LENGTH","LENGTH_CHAR","SUBSTRING","SUBSTR","CONCAT","REPLACE","TRANSLATE","COALESCE","NULLIF","ISNULL","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","LEFT","RIGHT","INSTR","GREATEST","LEAST","LPAD","RPAD","CAST","CONVERT","FORMAT","ROUND","FLOOR","CEIL","CEILING","TRUNCATE","TRUNC","ABS","MOD","POWER","POW","SQRT","YEAR","MONTH","DAY","DAYOFWEEK","QUARTER","WEEK","DATE_FORMAT","DATEDIFF","DATE_ADD","LAST_DAY","IF"]);function cA(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!uA.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.rawMessage=n;this.token=r;this.name="ParseError"}},Vl=["\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306E\u7D50\u679C\u306F\u540C\u3058 SELECT \u306E\u5F0F\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002"," \xD7 SELECT ROUND(SUM(x) OVER (), 1) AS a FROM t"," \u25CB WITH w AS (SELECT SUM(x) OVER () AS \u7DCF\u8A08 FROM t) SELECT ROUND(\u7DCF\u8A08, 1) AS a FROM w","\u30A6\u30A3\u30F3\u30C9\u30A6\u7D50\u679C\u3092\u5217\u3068\u3057\u3066\u51FA\u3057\u3001\u305D\u308C\u3092\u4F7F\u3046\u5F0F\u306F\u6B21\u306E\u6BB5\uFF08CTE \u307E\u305F\u306F\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\uFF09\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044"].join(`
4
- `),ln=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.bareTempTableNames=new Set;this.tempTableRefs=[];this.aggregateGroupKeyTokens=new WeakMap;this.activeCteDefinition=null;this.provisionalRecursiveCte=null;this.allowSelectArithVariable=!1;if(n.dialect1)for(let r=0;r+1<t.length;r++){let i=t[r];if(i.kind!=="VARIABLE"||t[r+1].kind!=="(")continue;let o=i.value.slice(1).toUpperCase();if(!Zr(o))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${pa.map(a=>`@${a}`).join("/")} \u3067\u3059`,i)}}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){return this.parseStatementsWithRanges().statements}parseStatementsWithRanges(){let t=[],n=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let r=this.peek();if(t.push(this.parseStatement()),t.length>df)throw new T(`batch exceeds ${df} statements.`,r);let i=this.peek();if(i.kind!==";"&&i.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",i);let o=this.prev();n.push({start:r.pos,end:o.end??i.pos})}return this.expect("EOF"),{statements:t,statementRanges:n}}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="EXIT")return this.parseExit();if(n==="MERGE"){if(!this.capabilities.dialect1)throw new T("MERGE \u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t);return this.parseMergeAsUpsert()}if(n==="GENERATE_SERIES")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT / EXIT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:r}}parseRelativeDateVariableToken(){let t=this.peek(),n=ni[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new T("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE"){if(this.peekAt(1).kind==="("&&this.capabilities.dialect1)return this.advance(),this.finishVariableReference(r);throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r)}if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=ni[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i==="PRIMARY_ORGANIZATION")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek(),i;if(r.kind==="WITH")i=this.parseWith();else if(r.kind==="SELECT")i=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",r);return t!==null&&this.bareTempTableNames.add(t),{type:"CREATE_TEMP_TABLE",name:n,query:i}}parseDropTempTable(){this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();return t!==null&&this.bareTempTableNames.delete(t),{type:"DROP_TEMP_TABLE",name:n}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;if(this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT"))return this.advance(),`#${t.value}`;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}isDialect1BareTempTableName(){let t=this.peek();return this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT")&&!t.value.startsWith("#")?t.value:null}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ht(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=ht(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let N=this.parseIdentifier();if(s.has(N))throw new T(`IMPORT target ${N} is declared more than once.`,this.prev());if(s.add(N),this.peek().kind==="("){this.advance();let v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new T(`IMPORT subtable ${N} contains duplicate child declarations.`,this.prev());let b;if(this.isSoftKeyword("ROW")){this.advance();for(let M of["ID","SOURCE"]){if(!this.isSoftKeyword(M))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}b=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:N,children:v,...b?{rowIdSourceHeader:b}:{}})}else a.push(N),o.push({kind:"FIELD",field:N});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let c=this.parseIdentifier(),d,u=!0,p;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let N=this.parseIdentifier().toUpperCase();if(N!=="UTF8"&&N!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());d=N==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(u)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),p=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Ce||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(N=>N.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!u)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let m,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let N of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(N))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let g;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),g=this.parseIdentList(),this.expect(")"),new Set(g).size!==g.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let S=o.filter(N=>N.kind==="SUBTABLE");if(S.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(S.some(N=>N.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(g)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!g)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let N=new Set(g);for(let v of S){if(!v.rowIdSourceHeader)throw new T(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!N.has(v.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of N)if(!S.some(b=>b.subtableCode===v))throw new T(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(g)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let A=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:c}:{kind:"CSV",sourceName:c,encoding:d,hasHeader:u,mappingMode:E,ignoreUnknownColumns:R,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...g?{replaceSubtables:g}:{},...m?{keyFields:m}:{},...A,...I}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=ht(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let u=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:p})}else o.push({kind:"FIELD",field:u})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),c;if(this.consume("INTO")){let u=this.peek();if(u.kind!=="IDENT"||!u.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",u);c=this.parseTableName()}let d={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...c?{errorTable:c}:{}};return this.assertValidateExpressions(d,t),d}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.peek(),n=this.isSoftKeyword("WARN");n&&(this.requireDialect1(t),this.advance());let r=this.parseAssertCondition(),i=this.parseFlowMessage();return{type:"ASSERT",...r,...n?{warn:!0}:{},...i!==void 0?{message:i}:{}}}parseExit(){let t=this.advance();if(this.requireDialect1(t),!this.isSoftKeyword("SUCCESS"))throw new T("EXIT \u306E\u5F8C\u306B\u306F SUCCESS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.peek().kind!=="IF"&&!this.isSoftKeyword("IF"))throw new T("EXIT SUCCESS \u306E\u5F8C\u306B\u306F IF \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=this.parseAssertCondition();if(!this.consume(","))throw new T("EXIT SUCCESS IF \u306B\u306F\u672B\u5C3E\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u6587\u5B57\u5217\u304C\u5FC5\u8981\u3067\u3059",this.peek());let r=this.expect("STRING","EXIT SUCCESS IF \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return{type:"EXIT",...n,message:r.value}}parseAssertCondition(){let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseFlowMessage(){if(this.consume(","))return this.requireDialect1(this.prev()),this.expect("STRING","ASSERT \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}requireDialect1(t){if(!this.capabilities.dialect1)throw new T("\u3053\u306E\u69CB\u6587\u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t)}finishVariableReference(t){let n={type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(this.peek().kind!=="("||!this.capabilities.dialect1)return n;let r=t.value.slice(1).toUpperCase();if(!Zr(r))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${pa.map(i=>`@${i}`).join("/")} \u3067\u3059`,t);return this.advance(),this.expect(")",`@${r} \u306F\u5F15\u6570\u306A\u3057\u306E () \u3067\u547C\u3073\u51FA\u3057\u3066\u304F\u3060\u3055\u3044`),{type:"VARIABLE",name:Qr(r)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&cA(this.tokens[i-1],o)&&(r+=" "),r+=a}return r}parseSelect(t=!1){this.expect("SELECT");let n=this.consume("DISTINCT"),r=this.parseSelectColumns(),i=this.consume("FROM"),o=i?this.parseTableRef():{appId:0,alias:null,cteName:Ce},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],c,d=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?c=this.parseGroupingSetsClause():this.isRollupStart()?c=this.parseRollupClause():this.isCubeStart()?c=this.parseCubeClause():l=this.parseGroupByKeys(),c&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(d=this.parseWhereExpr("HAVING"))}let u="CANONICAL",p=[];if(this.consume("ORDER"))this.expect("BY"),p=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());u="KINTONE_NATIVE",this.expect("BY"),p=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=r.some(y=>y.type==="WINDOW_COL"),m=r.some(y=>this.selectColumnHasAggregate(y));if(R&&(l.length>0||c!==void 0||m))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(c&&u==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,d,l,c),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...c?{grouping:c}:{},having:d,orderMode:u,orderBy:p,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,c=this.peek().kind;if(c==="SHOW")s=this.parseShow();else if(c==="DESCRIBE"||c==="DESC")s=this.parseDescribe();else if(c==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES")s=this.parseGenerateSeries();else if(t){let p=this.parseRecursiveCteCandidate(o);s=p.query,l=p.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let d=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(d&&!l)throw new T("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:d},this.validateRecursiveCte(o,a,l),r++,r>1))throw new T("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let u={name:o,query:s};a&&(u.columnAliases=a),l&&(u.recursiveSpec=l),n.push(u),this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.add(o)}while(this.consume(","));let i=this.tryParseUnionChain(this.parseSelect());return t?{type:"WITH",ctes:n,query:i,recursive:!0}:{type:"WITH",ctes:n,query:i}}finally{this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.clear()}}parseOptionalCteColumnAliases(){if(!this.consume("("))return;let t=[];if(this.peek().kind===")")throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u306F1\u500B\u4EE5\u4E0A\u306E\u5217\u540D\u304C\u5FC5\u8981\u3067\u3059",this.peek());do t.push(this.parseIdentifier());while(this.consume(","));if(this.expect(")"),new Set(t).size!==t.length)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u540C\u3058\u5217\u540D\u3092\u91CD\u8907\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());return t}parseRecursiveCteCandidate(t){let n=this.parseSelect();if(this.peek().kind!=="UNION")return{query:n};this.advance();let r=this.consume("ALL");this.activeCteDefinition={name:t,recursiveWith:!0,phase:"RECURSIVE_TERM"},this.provisionalRecursiveCte={name:t,references:0};let i=this.parseSelect(),o=this.provisionalRecursiveCte.references;this.provisionalRecursiveCte=null;let a={type:"UNION",all:r,left:n,right:i};if(a=this.tryParseUnionChain(a),this.activeCteDefinition={name:t,recursiveWith:!0,phase:"SEED"},o===0)return{query:a};if(!r||a.type!=="UNION"||a.left!==n||a.right!==i)throw new T("\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(o!==1)throw new T("\u518D\u5E30\u9805\u304B\u3089\u306E\u81EA\u5DF1\u53C2\u7167\u306F\u3061\u3087\u3046\u30691\u56DE\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());return{query:a,recursiveSpec:{seed:n,recursiveTerm:i,unionAll:!0,cycle:null}}}parseRecursiveCycleClause(){this.advance();let t=this.parseIdentifier();this.expect("SET","CYCLE \u306E\u5217\u540D\u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentifier();if(!this.isSoftKeyword("TO"))throw new T("CYCLE \u306E mark \u5217\u306E\u5F8C\u306B\u306F TO \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=this.expect("STRING","CYCLE TO \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(!this.isSoftKeyword("DEFAULT"))throw new T("CYCLE TO \u306E\u5024\u306E\u5F8C\u306B\u306F DEFAULT \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let i=this.expect("STRING","CYCLE DEFAULT \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(r.value===i.value)throw new T("CYCLE \u306E TO \u3068 DEFAULT \u306B\u306F\u7570\u306A\u308B\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);return{column:t,markColumn:n,markValue:r.value,defaultValue:i.value,exposePath:!1}}validateRecursiveCte(t,n,r){let i=this.prev(),o=r.seed,a=r.recursiveTerm,{groupBy:s}=a;if(o.columns.length!==a.columns.length)throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(n&&n.length!==o.columns.length)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u3068 SELECT \u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(o.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD")||a.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD"))throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new T("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new T("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(d=>d===t).length!==1)throw new T("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new T("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let c=n??o.columns.map(d=>this.selectColumnOutputName(d));if(r.cycle){if(c.filter(u=>u===r.cycle.column).length!==1)throw new T("CYCLE \u5217\u306F\u518D\u5E30 CTE \u306E\u51FA\u529B\u52171\u500B\u3078\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",i);if(c.includes(r.cycle.markColumn))throw new T("CYCLE \u306E mark \u5217\u306F\u518D\u5E30 CTE \u306E\u65E2\u5B58\u51FA\u529B\u5217\u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093",i)}}containsRecursiveForbiddenNode(t){if(Array.isArray(t))return t.some(r=>this.containsRecursiveForbiddenNode(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="AGGREGATE"||n.type==="AGG_REF"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"||n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SUBQUERY_IN_LIST"||n.type==="EXISTS"?!0:Object.values(n).some(r=>this.containsRecursiveForbiddenNode(r))}selectColumnOutputName(t){return"alias"in t&&typeof t.alias=="string"?t.alias:t.type==="FIELD"?t.field:null}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new T("GENERATE_SERIES \u304C\u5FC5\u8981\u3067\u3059",t);this.expect("(");let n=[];if(this.peek().kind!==")")do{let i=this.peek();if(i.kind==="STRING"){this.advance(),n.push({type:"STRING",value:i.value});continue}if(i.kind==="VARIABLE"){this.advance(),n.push(this.finishVariableReference(i));continue}let o="";(i.kind==="+"||i.kind==="-")&&(o=i.kind==="-"?"-":"+",this.advance());let a=this.peek();if(a.kind!=="NUMBER")throw new T("GENERATE_SERIES \u306E\u5F15\u6570\u306B\u306F\u6570\u5024\u3001\u6587\u5B57\u5217\u3001\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",a);this.advance(),n.push(be(`${o}${a.value}`))}while(this.consume(","));this.expect(")");let r=this.consume("AS")?this.parseIdentifier():"generate_series";return{type:"GENERATE_SERIES",args:n,columnAlias:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new T(Vl,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.finishVariableReference(this.advance()),s=sr(a.name),l=null;if(s===null){if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());l=this.parseAliasName()}else this.consume("AS")&&(l=this.parseAliasName());return this.withAliasDisplay({type:"VARIABLE_COL",name:a.name,alias:l?.alias??null},l)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s)}let r=this.tryAggregateFunc();if(r!==null){let a=this.parseAggregateRef(r);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let a={type:"FIELD_REF",field:i},s=this.parseSelectArith(()=>this.continueArith(a)),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let o=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:i,alias:o?.alias??null},o)}tryWindowFunc(){return Rf[this.peek().kind]??null}tryValueWindowFunc(t=this.pos){let n=this.tokens[t];if(n?.kind!=="IDENT"||this.tokens[t+1]?.kind!=="(")return null;let r=n.value.toUpperCase();if(r!=="LAG"&&r!=="LEAD")return null;let i=0;for(let o=t+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];return s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER"?r:null}}return null}hasNestedAggregateWindowInSelectColumn(){let t=0;for(let n=this.pos;n<this.tokens.length;n++){let r=this.tokens[n];if(t===0&&(r.kind===","||r.kind==="FROM"||r.kind===";"||r.kind==="EOF"))return!1;if(ti[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}if(this.tryValueWindowFunc(n)!==null)return!0;r.kind==="("?t++:r.kind===")"&&t--}return!1}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseValueWindowColumn(t){this.advance(),this.expect("(");let n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}),r=1;if(this.consume(",")){let s=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(r=Number(s.value),!Number.isSafeInteger(r)||r<0)throw new T(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,s)}this.expect(")",`${t} \u306F expr \u3068\u7701\u7565\u53EF\u80FD\u306A offset \u306E 2 \u5F15\u6570\u307E\u3067\u3067\u3059`),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();i.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}if(!this.consume("ORDER"))throw new T(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let o=this.parseOrderBy(!1);if(this.expect(")"),this.isArithOp(this.peek().kind)||this.peek().kind==="||")throw new T(Vl,this.peek());if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:n,offset:r,partitionBy:i,orderBy:o,alias:a.alias},a)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new T(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new T("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new T("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T(Vl,this.peek());if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?be(`-${q(n)}`):{type:"AGG_ARITH",left:be("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return be(n.value)}if(this.peek().kind==="VARIABLE"){let n=this.advance();return this.finishVariableReference(n)}let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),ti[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=d=>{if(Array.isArray(d)){d.forEach(a);return}if(d===null||typeof d!="object")return;let u=d;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(d);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new T("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let c=new Set(r.filter(d=>d.type==="FIELD_NAME").map(d=>d.name));for(let d of o){let u=this.aggregateGroupKeyDisplay(d);if(!c.has(u))throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(d)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return be(`${n.kind==="-"?"-":"+"}${q(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:be("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),be(n.value);if(n.kind==="VARIABLE")return this.advance(),this.finishVariableReference(n);if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return be(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?be(`-${q(n)}`):{type:"ARITH",left:be("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),be(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult(t);this.expect(",");let i=this.parseCaseResult(t);return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult(t);n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Wl[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Wl[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek(),r=n.value.toUpperCase();if(Ef.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new T(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof T))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new T(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=pA(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return ti[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!nA(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek();if(t.kind==="IDENT"&&t.value.toUpperCase()==="GENERATE_SERIES"&&this.peekAt(1).kind==="(")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let n=this.parseTableName();if(this.capabilities.dialect1&&this.bareTempTableNames.has(n)){let s=`#${n}`;return this.tempTableRefs.push({...this.prev(),value:s}),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:s}}if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new T(s,t)}let{appId:r,subtableCode:i}=ht(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"||t==="IDENT"&&this.peek().value.toUpperCase()==="KEY"&&this.peekAt(1).kind==="("?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();if(n==="CROSS"){if(this.peek().kind==="ON")throw new T("CROSS JOIN \u306B ON \u53E5\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());t.push({type:"CROSS",table:r,on:null});continue}this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){if(this.consume("INNER")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B INNER \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"INNER"}if(this.consume("LEFT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"LEFT"}if(this.consume("RIGHT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"RIGHT"}return this.consume("CROSS")?(this.expect("JOIN"),"CROSS"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue(n!=="LIKE");return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:fe(r.func,r.distinct,r.arg),...this.groupingFieldContext==="SELECT_CASE"||this.groupingFieldContext==="HAVING"?{aggregateRef:r}:{}}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(t=!0){let n=this.peek();if(t&&n.kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return be(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(n.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!aA(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let c=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:c,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!sA(o))throw new T(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!lA(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(ff(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:ni[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}let t=this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");return this.peek().kind==="("&&this.capabilities.dialect1?{type:"IN_LIST",values:[this.finishVariableReference(t)]}:{type:"VARIABLE_IN_LIST",name:t.value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(be(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(be(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push(this.finishVariableReference(i));else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else if(i.kind==="PRIMARY_ORGANIZATION"){let o="PRIMARY_ORGANIZATION() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";if(t.length>0)throw new T(o,i);if(this.expect("(","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"PRIMARY_ORGANIZATION"}),this.peek().kind===",")throw new T(o,this.peek())}else throw new T(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new T("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new T("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Xp(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ht(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let d=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:d,...u,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let d=this.parseInsertRow(i.length,!0);this.expect(")"),o.push(d)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...c,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...c,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ht(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect(),p=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:u,keyFields:p,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length,!1)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...c,...d}}parseOnDuplicate(){if(this.capabilities.dialect1&&this.consumeSoftKeyword("KEY")){this.expect("(","KEY \u306E\u5F8C\u306B\u306F (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentList();if(this.expect(")"),n.length===0)throw new T("KEY \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return n}if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}parseMergeAsUpsert(){let t=this.advance();this.expect("INTO","MERGE \u306E\u5F8C\u306B\u306F INTO \u304C\u5FC5\u8981\u3067\u3059"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=ht(n,this.prev());if(i)throw new T("MERGE \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("AS","MERGE \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseTableAliasName();this.expectSoftKeyword("USING","MERGE \u306B\u306F USING <source> AS alias \u304C\u5FC5\u8981\u3067\u3059");let a=this.pos,s=this.parseTableRef();if(!this.tokens.slice(a,this.pos).some(I=>I.kind==="AS")||s.alias===null)throw new T("MERGE \u306E USING \u30BD\u30FC\u30B9\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let c=s.alias;this.expect("ON","MERGE \u306B\u306F ON t.key = s.key \u306E\u5358\u4E00\u30AD\u30FC\u7B49\u5024\u304C\u5FC5\u8981\u3067\u3059");let d=this.parseMergeQualifiedField("MERGE \u306E ON \u5DE6\u8FBA\u306F targetAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(!this.consume("="))throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\uFF08t.key = s.key\uFF09\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u3084\u975E\u7B49\u5024\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let u=this.parseMergeQualifiedField("MERGE \u306E ON \u53F3\u8FBA\u306F sourceAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(d.alias.toLowerCase()!==o.toLowerCase()||u.alias.toLowerCase()!==c.toLowerCase())throw new T(`MERGE \u306E ON \u306F ${o}.key = ${c}.key \u306E\u5225\u540D\u4FEE\u98FE\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);if(this.peek().kind==="AND"||this.peek().kind==="OR")throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let p=null,f=null,E=null;for(;this.peek().kind==="WHEN";){let I=this.advance();if(this.consume("NOT")){if(this.expectSoftKeyword("MATCHED","WHEN NOT \u306E\u5F8C\u306B\u306F MATCHED \u304C\u5FC5\u8981\u3067\u3059"),f!==null)throw new T("WHEN NOT MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);if(this.expect("THEN","WHEN NOT MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("INSERT","WHEN NOT MATCHED THEN \u306E\u5F8C\u306B\u306F INSERT \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT \u306B\u306F\u5217\u30EA\u30B9\u30C8\u304C\u5FC5\u8981\u3067\u3059"),f=this.parseIdentList(),this.expect(")"),this.expect("VALUES","MERGE INSERT \u306E\u5217\u30EA\u30B9\u30C8\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT VALUES \u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),E=this.parseMergeValueList(),this.expect(")"),f.length!==E.length)throw new T("MERGE INSERT \u306E\u5217\u6570\u3068 VALUES \u306E\u5024\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",I)}else{if(this.expectSoftKeyword("MATCHED","WHEN \u306E\u5F8C\u306B\u306F MATCHED \u307E\u305F\u306F NOT MATCHED \u304C\u5FC5\u8981\u3067\u3059"),p!==null)throw new T("WHEN MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);this.expect("THEN","WHEN MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("UPDATE","WHEN MATCHED THEN \u306E\u5F8C\u306B\u306F UPDATE \u304C\u5FC5\u8981\u3067\u3059"),this.expect("SET","WHEN MATCHED THEN UPDATE \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059"),p=this.parseMergeAssignments(o)}}if(p===null||f===null||E===null)throw new T("WHEN MATCHED / WHEN NOT MATCHED \u306E\u4E21\u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u66F4\u65B0\u306E\u307F\u306F UPDATE ... FROM\u3001\u633F\u5165\u306E\u307F\u306F INSERT ... SELECT \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(!f.some(I=>I.toLowerCase()===d.field.toLowerCase()))throw new T(`MERGE \u306E ON \u30AD\u30FC ${d.field} \u306F INSERT \u5217\u30EA\u30B9\u30C8\u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044`,t);let R=new Map;f.forEach((I,N)=>R.set(I.toLowerCase(),E[N]));for(let I of p){let N=I.field.toLowerCase(),v=R.get(N);if(v!==void 0&&!this.mergeExpressionsEqual(v,I.value,c))throw new T(`MERGE \u306E\u5217 ${I.field} \u306F\u4E21\u53E5\u306E\u5F0F\u304C\u4E00\u81F4\u3059\u308B\u5834\u5408\u306E\u307F MERGE \u3092 UPSERT \u3078\u6B63\u898F\u5316\u3067\u304D\u307E\u3059`,t);v===void 0&&(f.push(I.field),E.push(I.value),R.set(N,I.value))}let m=E.map(I=>this.mergeValueToSelectColumn(I,c,t)),y=s.cteName!==null?{...s,alias:null}:{...s,alias:`APP${s.appId}${s.subtableCode?`$${s.subtableCode}`:""}`},g={type:"SELECT",distinct:!1,columns:m,from:y,joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null},S=this.parseCheckGroups(),A=this.parseDmlControlSuffix();return{type:"UPSERT_SELECT",appId:r,fields:f,select:g,keyFields:[d.field],...S,...A}}parseMergeQualifiedField(t){let n=this.peek(),r=this.parseFieldPath(),i=this.splitQualifiedField(r);if(i.alias===null)throw new T(t,n);return{alias:i.alias,field:i.field}}parseMergeAssignments(t){let n=[];do{let r=this.peek(),i=this.parseFieldPath(),o=this.splitQualifiedField(i);if(o.alias!==null&&o.alias.toLowerCase()!==t.toLowerCase())throw new T(`MERGE UPDATE SET \u306E\u5DE6\u8FBA\u306F target alias ${t} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);this.expect("="),n.push({field:o.field,value:this.parseAssignmentValue()})}while(this.consume(","));return n}parseMergeValueList(){let t=[];if(this.peek().kind===")")return t;do t.push(this.parseAssignmentValue());while(this.consume(","));return t}mergeExpressionsEqual(t,n,r){return this.mergeNormalizedValueEqual(this.normalizeMergeValue(t,r,!0),this.normalizeMergeValue(n,r,!0))}normalizeMergeValue(t,n,r=!1){if(Array.isArray(t))return t.map(o=>this.normalizeMergeValue(o,n,r));if(t===null||typeof t!="object")return t;let i=t;if(r&&i.type==="NUMBER")return{type:"NUMBER",value:i.value};if(i.type==="SOURCE_FIELD")return String(i.alias).toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{type:"FIELD_REF",field:i.field};if(i.type==="FIELD_REF"&&typeof i.field=="string"){let o=this.splitQualifiedField(i.field);return o.alias!==null&&o.alias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,field:o.field}}return i.type==="FIELD"&&typeof i.tableAlias=="string"?i.tableAlias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,tableAlias:null}:Object.fromEntries(Object.entries(i).map(([o,a])=>[o,this.normalizeMergeValue(a,n,r)]))}mergeNormalizedValueEqual(t,n){if(t===n)return!0;if(Array.isArray(t)||Array.isArray(n))return Array.isArray(t)&&Array.isArray(n)&&t.length===n.length&&t.every((s,l)=>this.mergeNormalizedValueEqual(s,n[l]));if(t===null||n===null||typeof t!="object"||typeof n!="object")return!1;let r=t,i=n,o=Object.keys(r),a=Object.keys(i);return o.length===a.length&&o.every(s=>Object.prototype.hasOwnProperty.call(i,s)&&this.mergeNormalizedValueEqual(r[s],i[s]))}mergeValueToSelectColumn(t,n,r){let i=this.normalizeMergeValue(t,n);if(this.mergeValueContainsInvalidSource(i))throw new T(`MERGE \u306E\u5F0F\u306F source alias ${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044`,r);let o=i;switch(o.type){case"FIELD_REF":return{type:"FIELD",field:String(o.field),alias:null};case"STRING":return{type:"LITERAL_COL",value:String(o.value),alias:null};case"NUMBER":return{type:"ARITH_COL",expr:o,alias:null};case"ARITH":return{type:"ARITH_COL",expr:o,alias:null};case"STRING_FUNC":return{type:"STRFUNC_COL",expr:o,alias:null};case"CASE_VALUE":return{type:"CASE_COL",expr:o.expr,alias:null};default:throw new T("MERGE \u306E\u4EE3\u5165\u5F0F\u306F\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9\u30FB\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u6587\u5B57\u5217\u95A2\u6570\u30FBCASE \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",r)}}mergeValueContainsInvalidSource(t){if(Array.isArray(t))return t.some(r=>this.mergeValueContainsInvalidSource(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="INVALID_SOURCE"||Object.values(n).some(r=>this.mergeValueContainsInvalidSource(r))}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t,n){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let i=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="IF"){let i=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let i=this.advance(),o=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");r.push(be(`${i.kind==="-"?"-":"+"}${o.value}`))}else{let i=this.advance();if(i.kind==="STRING")r.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")r.push(be(i.value));else if(n&&this.isDialect1AsOfCall(i))r.push(this.finishVariableReference(i));else{let o=this.isDialect1AsOfCall(i)?" INSERT ... VALUES \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u6587\u578B\u3067\u306F INSERT ... SELECT \u3067\u6CE8\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"";throw new T(`INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059${o}`,i)}}while(this.consume(","));if(r.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${r.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return r}isDialect1AsOfCall(t){return this.capabilities.dialect1===!0&&t.kind==="VARIABLE"&&Zr(t.value.slice(1).toUpperCase())&&this.peek().kind==="("&&this.peekAt(1).kind===")"}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ht(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(p=>p.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let p=this.parseTableRef();if(p.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(p.cteName!==null&&!p.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!p.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(p.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:p.appId,cteName:p.cteName,alias:p.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let p=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=p.targetJoinField,o.joinKeyField=p.joinKeyField,o.targetFilter=p.targetFilter}else{if(i.some(p=>p.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(p=>p.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(p.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&c.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(d.validateOnly||d.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...c,...d}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...c,...d}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...c,...d}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length,!1)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((d,u)=>{let p=this.matchUpdateFromJoin(d,n,r);p!==null&&a.push({index:u,...p})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let d=0;d<o.length;d++){if(d!==s.index&&this.nodeContainsQualifiedField(o[d],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(d!==s.index&&this.nodeContainsForeignQualifier(o[d],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let c=o.filter((d,u)=>u!==s.index).reduce((d,u)=>d===null?u:{type:"LOGICAL",op:"AND",left:d,right:u},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:c}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(ff(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ht(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=ht(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}tryParseDigitPrefixedIdentifier(){let t=this.peek(),n=this.peekAt(1);return t.kind!=="NUMBER"||!/^\d+$/.test(t.value)||n.kind!=="IDENT"||n.pos!==t.pos+t.value.length?null:(this.advance(),this.advance(),t.value+n.value)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||fa.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),t}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function pA(e){let t=e.toUpperCase(),n=new Set(["TEXT","VARCHAR","CHAR","NCHAR","NVARCHAR","STRING"]),r=new Set(["NUMBER","INT","INTEGER","NUMERIC","DECIMAL","FLOAT","DOUBLE","REAL","BIGINT","SMALLINT"]);return n.has(t)?"TEXT":r.has(t)?"NUMBER":null}function ht(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}function un(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function dA(e,t){return e<t?-1:e>t?1:0}function mf(e){if(e==="")return{band:0};let t=we(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function fA(e,t){let n=mf(e),r=mf(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Io(n.value,r.value):n.band===5&&r.band===5?un(n.value,r.value):0}function yf(e,t){if(e==="")return{empty:!0,normalizedId:"",display:e};let n=/^\d+$/.test(e)?e:t?/-(\d+)$/.exec(e)?.[1]:void 0;if(n===void 0)throw new Error(`ArgumentError: invalid ${t?"RECORD_NUMBER":"$id"} value: ${e}`);return{empty:!1,normalizedId:n.replace(/^0+(?=\d)/,""),display:e}}function EA(e,t,n){let r=yf(e,n),i=yf(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=un(r.normalizedId,i.normalizedId);return o!==0?o:un(r.display,i.display)}function RA(e,t){if(e==="")return[];if(t!=="CHECK_BOX"&&t!=="MULTI_SELECT")return[e];try{let n=JSON.parse(e);return Array.isArray(n)?n.map(r=>String(r??"")):[e]}catch{return[e]}}function gf(e,t){let n=t.optionOrder??new Map,i=[...new Set(RA(e,t.fieldType))].map(o=>{let a=n.get(o);return a===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:a,label:o}});return i.sort(hf),i}function hf(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:un(e.label,t.label)}function mA(e,t,n){let r=gf(e,n),i=gf(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=hf(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function lt(e,t,n){switch(n.compareMode){case"string":return un(e,t);case"number":return fA(e,t);case"recordNumber":return EA(e,t,n.fieldType==="RECORD_NUMBER");case"option":return mA(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function xt(e,t,n,r=W("string")){let i=lt(t,n,r);switch(e){case"=":return i===0;case"!=":case"<>":return i!==0;case">":return i>0;case"<":return i<0;case">=":return i>=0;case"<=":return i<=0}}function Af(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=we(o),l=we(a),c=s!==null&&l!==null?Io(s,l):dA(Number(o),Number(a));if(c!==0)return c}return un(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function Ee(e,t,n={}){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number($e(t,e.field));if(e.type==="STRING_FUNC")return Number(he(e,t,void 0,void 0,n));let r=Ee(e.left,t,n),i=Ee(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function Le(e,t,n,r,i={}){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return $e(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return he(e,t,n,r,i);case"CASE_WHEN":return He(e,t,n,r,i);case"CONCAT_OP":return he({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r,i);case"SCALAR_ARITH":{let o=Number(Le(e.left,t,n,r,i)),a=Number(Le(e.right,t,n,r,i));switch(e.op){case"+":return o+a;case"-":return o-a;case"*":return o*a;case"/":return a!==0?o/a:NaN;case"%":return a!==0?o%a:NaN}}}}function Ft(e,t,n,r,i={}){switch(e.type){case"CASE_WHEN":return wf(e,t,n,r,i);case"SCALAR_ARITH":{let o=Ft(e.left,t,n,r,i),a=Ft(e.right,t,n,r,i);if(o===null||a===null)return null;let s=Number(o),l=Number(a);switch(e.op){case"+":return s+l;case"-":return s-l;case"*":return s*l;case"/":return l!==0?s/l:NaN;case"%":return l!==0?s%l:NaN}}case"CONCAT_OP":{let o=Ft(e.left,t,n,r,i),a=Ft(e.right,t,n,r,i);return`${o??""}${a??""}`}default:return Le(e,t,n,r,i)}}function Ea(e,t,n){let r=Math.pow(10,n),i=Math[e](t*r)/r;return n>0?String(parseFloat(i.toFixed(n))):String(i)}function yA(e){return e>=55296&&e<=56319}function gA(e){return e>=56320&&e<=57343}function ma(e,t){return t>0&&t<e.length&&yA(e.charCodeAt(t-1))&&gA(e.charCodeAt(t))}function Sf(e,t){if(Number.isNaN(e)||e===Number.NEGATIVE_INFINITY)return 0;if(e===Number.POSITIVE_INFINITY)return t;let n=Math.trunc(e);return n<0?Math.max(t+n,0):Math.min(n,t)}function Yl(e,t){let n=Math.min(Math.max(0,t),e.length);return ma(e,n)&&(n-=1),e.slice(0,n)}function hA(e,t){let n=Math.max(0,e.length-t);return ma(e,n)&&(n+=1),e.slice(n)}function AA(e,t,n){let r=Sf(t,e.length),i=Sf(n,e.length);return i<=r?"":(ma(e,r)&&(r+=1),ma(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function SA(e,t){let n=e.repeat(Math.ceil(t/e.length));return Yl(n,t)}var TA=200,ri=new Map;function IA(e){if(/[^ims]/.test(e))throw new Error("ArgumentError: regular expression flags may contain only i, m, or s.");if(new Set(e).size!==e.length)throw new Error("ArgumentError: regular expression flags must not contain duplicates.");return`${e}u`}function Hl(e,t,n=!1){let r=IA(t)+(n?"g":""),i=`${e}\0${r}`,o=ri.get(i);if(o!==void 0)return o.lastIndex=0,o;let a;try{a=new RegExp(e,r)}catch(s){let l=s instanceof Error?s.message:String(s);throw new Error(`ArgumentError: invalid regular expression: ${l}`)}if(ri.size>=TA){let s=ri.keys().next().value;s!==void 0&&ri.delete(s)}return ri.set(i,a),a}function wA(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function bA(e){if(e===void 0)return 0;if(!/^\d+$/.test(e))throw new Error("ArgumentError: REGEXP_REPLACE occurrence must be a non-negative integer.");return Number(e)}function NA(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let d=Number(s+l);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=2;continue}}let c=Number(s);if(c>=1&&c<=n.length){i+=n[c-1]??"",o+=1;continue}}i+="$"}return i}function CA(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,c=a.length-(l?3:2),d=a.slice(0,c);return NA(n,o,d,l?s:void 0)})}function he(e,t,n,r,i={}){sa(e.func,e.args);let o=e.args.map(a=>MA(a,t,n,r,i));switch(e.func){case"UPPER":return(o[0]??"").toUpperCase();case"LOWER":return(o[0]??"").toLowerCase();case"TRIM":return(o[0]??"").trim();case"LTRIM":return(o[0]??"").trimStart();case"RTRIM":return(o[0]??"").trimEnd();case"LENGTH":return String((o[0]??"").length);case"LENGTH_CHAR":return String([...o[0]??""].length);case"SUBSTRING":{let a=o[0]??"",s=Math.max(0,Number(o[1]??"1")-1),l=o[2]!==void 0?Number(o[2]):void 0;return AA(a,s,l!==void 0?s+l:a.length)}case"LEFT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":Yl(a,s)}case"RIGHT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":hA(a,s)}case"INSTR":return String(o[0].indexOf(o[1])+1);case"LPAD":case"RPAD":{let a=o[0],s=Math.trunc(Number(o[1]));if(Number.isNaN(s)||s<=0)return"";if(a.length>=s)return Yl(a,s);let l=o[2]??" ";if(l==="")return a;let c=SA(l,s-a.length);return e.func==="LPAD"?c+a:a+c}case"GREATEST":case"LEAST":return Af(o,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return o.join("");case"REPLACE":{let a=o[0]??"",s=o[1]??"",l=o[2]??"";return s===""?a:a.split(s).join(l)}case"REGEXP_LIKE":return Hl(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{wA(o[2]);let a=bA(o[4]),s=Hl(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):CA(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return Hl(o[1],o[2]??"").exec(o[0])?.[0]??"";case"TRANSLATE":{let a=[...o[1]],s=[...o[2]];if(a.length!==s.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${a.length}, to=${s.length}\uFF09`);let l=new Map;return a.forEach((c,d)=>{l.has(c)||l.set(c,s[d])}),[...o[0]].map(c=>l.get(c)??c).join("")}case"COALESCE":return o.find(a=>a!=="")??"";case"NULLIF":return(o[0]??"")===(o[1]??"")?"":o[0]??"";case"ISNULL":return(o[0]??"")!==""?o[0]??"":o[1]??"";case"ROUND":return Ea("round",Number(o[0]??"0"),Number(o[1]??"0"));case"FLOOR":return Ea("floor",Number(o[0]??"0"),Number(o[1]??"0"));case"CEIL":return Ea("ceil",Number(o[0]??"0"),Number(o[1]??"0"));case"TRUNCATE":return Ea("trunc",Number(o[0]),Number(o[1]??"0"));case"CAST":{let a=o[0]??"";if((o[1]??"TEXT")==="NUMBER"){let l=Number(a);return isNaN(l)?a:String(l)}return a}case"FORMAT":{let a=Number(o[0]??"0"),s=o[1]??"0";return DA(a,s)}case"YEAR":{let a=o[0]??"";return a.length>=4?String(parseInt(a.slice(0,4),10)):""}case"MONTH":{let a=o[0]??"";return a.length>=7?String(parseInt(a.slice(5,7),10)):""}case"DAY":{let a=o[0]??"";return a.length>=10?String(parseInt(a.slice(8,10),10)):""}case"DAYOFWEEK":return Ra(o[0])?String(jl(o[0])+1):"";case"QUARTER":return Ra(o[0])?String(Math.ceil(Number(o[0].slice(5,7))/3)):"";case"WEEK":return Ra(o[0])?String(If(o[0])):"";case"DATE_FORMAT":return OA(o[0]??"",o[1]??"");case"DATEDIFF":return LA(o[0]??"",o[1]??"");case"DATE_ADD":return _A(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return vA(o[0]);case"ABS":return String(Math.abs(Number(o[0]??"0")));case"MOD":{let a=Number(o[0]??"0"),s=Number(o[1]??"0");return String(s!==0?a%s:NaN)}case"POWER":return String(Math.pow(Number(o[0]??"0"),Number(o[1]??"0")));case"SQRT":return String(Math.sqrt(Number(o[0]??"0")));case"CURRENT_DATE":{let a=i.statementInstant??new Date,s=a.getFullYear(),l=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${s}-${l}-${c}`}case"CURRENT_TIMESTAMP":return(i.statementInstant??new Date).toISOString()}}function ii(e){return{y:e.slice(0,4)||"0000",mo:e.slice(5,7)||"01",d:e.slice(8,10)||"01",h:e.length>=13?e.slice(11,13):"00",mi:e.length>=16?e.slice(14,16):"00",sec:e.length>=19?e.slice(17,19):"00"}}function ya(e){let t=new Date(0);return t.setUTCHours(0,0,0,0),t.setUTCFullYear(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),t}function Ra(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=ya(t);return n.getUTCFullYear()===Number(t.slice(0,4))&&n.getUTCMonth()+1===Number(t.slice(5,7))&&n.getUTCDate()===Number(t.slice(8,10))}function jl(e){return ya(e).getUTCDay()}function Tf(e){let t=ya(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function PA(e){return Tf(e).getUTCFullYear()}function If(e){let t=Tf(e),n=t.getUTCFullYear(),r=ya(`${String(n).padStart(4,"0")}-01-04`),i=r.getUTCDay()||7;return r.setUTCDate(r.getUTCDate()+4-i),1+Math.round((t.getTime()-r.getTime())/(7*864e5))}function OA(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=ii(e),l=Ra(e);return t.replace(/%[YymcdeHiswavG]/g,c=>{switch(c){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(jl(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][jl(e)]:"";case"%v":return l?String(If(e)).padStart(2,"0"):"";case"%G":return l?String(PA(e)).padStart(4,"0"):"";default:return c}})}function LA(e,t){if(e.length<10||t.length<10)return"0";let n=ii(e),r=ii(t),i=Date.UTC(+n.y,+n.mo-1,+n.d),o=Date.UTC(+r.y,+r.mo-1,+r.d);return String(Math.round((i-o)/864e5))}function _A(e,t,n){if(n!=="YEAR"&&n!=="MONTH"&&n!=="DAY")throw new Error("ArgumentError: DATE_ADD unit must be YEAR, MONTH, or DAY.");if(!e||e.length<10)return e;let{y:r,mo:i,d:o}=ii(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let p=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(p,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),c=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${l}-${c}-${d}`}function vA(e){if(!e||e.length<10)return e;let{y:t,mo:n}=ii(e),r=new Date(Date.UTC(+t,+n,0)),i=String(r.getUTCFullYear()).padStart(4,"0"),o=String(r.getUTCMonth()+1).padStart(2,"0"),a=String(r.getUTCDate()).padStart(2,"0");return`${i}-${o}-${a}`}function DA(e,t){if(/^-?\d+$/.test(t.trim()))return UA(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,c=s+l,d=i.toFixed(c),[u,p=""]=d.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,E=p?`${f}.${p}`:f;return n?E+"%":E}function UA(e,t){let n=e.toFixed(t),[r,i]=n.split("."),o=r.replace(/\B(?=(\d{3})+(?!\d))/g,",");return i?`${o}.${i}`:o}function MA(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(oi(e,t)):e.type==="NUMBER"?q(e):String(Le(e,t,n,r,i))}function oi(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[fe(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number($e(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(oi(e.left,t)),r=Number(oi(e.right,t));switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function $e(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}var kA=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]),xA=new Set(["COALESCE","ISNULL","NULLIF","GREATEST","LEAST"]);function zl(e){return e==="number"||e==="string"?e:e?.compareMode==="number"||e?.compareMode==="recordNumber"?"number":"string"}function FA(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function KA(e,t){return e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN"?"number":e.func==="GROUP_CONCAT"||e.arg.type==="WILDCARD"?"string":ql(e.arg,t)}function At(e,t){if(e.func==="CAST"){let n=e.args[1];return n?.type==="STRING"&&n.value==="NUMBER"?"number":"string"}return kA.has(e.func)||xA.has(e.func)&&e.args.length>0&&e.args.every(n=>ql(n,t)==="number")?"number":"string"}function ql(e,t){if(e===null||typeof e!="object")return"string";let n=e;switch(n.type){case"NUMBER":case"ARITH":case"SCALAR_ARITH":case"AGG_ARITH":return"number";case"STRING_FUNC":return At(e,t);case"AGG_REF":return KA(e,t);case"FIELD":return zl(t?.(e));case"FIELD_REF":return zl(t?.(FA(n.field)));case"AGG_GROUP_KEY":return zl(t?.({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field}));case"CASE_WHEN":{let r=n.branches,i=n.elseResult,o=[...r.map(a=>a.result),...i==null?[]:[i]];return o.length>0&&o.every(a=>ql(a,t)==="number")?"number":"string"}default:return"string"}}function le(e,t,n,r,i,o={}){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return GA(e,t,n,r,i,o);case"NULL_CHECK":return YA(e,t);case"LOGICAL":return jA(e,t,n,r,i,o);case"NOT":return!le(e.expr,t,n,r,i,o);case"GROUP":return le(e.expr,t,n,r,i,o);case"EXISTS":{let a=e.resolved;return e.not?!a:a}}}function GA(e,t,n,r,i,o={}){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let a=_f(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=BA(e.left,s,i);return $A(e.op,a,e.right,t,s,n,l,i,o)}function $A(e,t,n,r,i,o,a=W("string"),s,l={}){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(HA(n.values),d=new Set(n.values.map(p=>p.type==="NUMBER"?i==="NUMBER"?q(p):String(p.value):p.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let u=WA(t,d,i);return e==="IN"?u:!u}if(e==="LIKE"){let d=Jl(n,r,o,void 0,l);return Lf(t,d)}if(e==="NOT_LIKE"){let d=Jl(n,r,o,void 0,l);return!Lf(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let c=Jl(n,r,o,s,l);return xt(e,t,c,a)}function BA(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?te({fieldType:t}):W("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return W("number");if(e.type==="FUNC_FIELD")return W(At(e.expr,r=>n?.(r)));if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return W("number");if(o.type==="STRING_FUNC")return W(At(o,a=>n?.(a)));if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??W("string")}return W("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?W("number"):W("string")}var bf=new Set(["CHECK_BOX","MULTI_SELECT"]),Nf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),VA=new Set(["CREATOR","MODIFIER"]);function WA(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=W("number");return[...t].some(a=>xt("=",e,a,o))}let i;if(bf.has(n)||Nf.has(n)||VA.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return bf.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Nf.has(n)?!Array.isArray(i)||!i.every(Cf)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Cf(i)?t.has(i.code):r()}function Cf(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function HA(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let n=e.find(r=>r.type==="KINTONE_FUNC");if(n?.type==="KINTONE_FUNC")throw new Error(`${n.name}: ${vt}`)}function YA(e,t){let n=_f(e.field,t);return e.not?n!=="":n===""}function jA(e,t,n,r,i,o={}){return e.op==="AND"?le(e.left,t,n,r,i,o)&&le(e.right,t,n,r,i,o):le(e.left,t,n,r,i,o)||le(e.right,t,n,r,i,o)}function _f(e,t,n,r,i={}){if(e.type==="FUNC_FIELD")return he(e.expr,t,void 0,void 0,i);if(e.type==="AGG_FIELD")return String(oi(e.expr,t));if(e.type==="ARITH_FIELD")return String(Ee(e.expr,t,i));if(e.type==="CASE_FIELD")return He(e.expr,t,n,r,i);if(e.type==="GROUPING_FIELD")return er(e.ref,t);if(e.aggregateRef){let a=e.aggregateRef;return $e(t,fe(a.func,a.distinct,a.arg))}let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return $e(t,o)}function Jl(e,t,n,r,i={}){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return q(e);case"KINTONE_FUNC":return zA(e.name);case"IN_LIST":return"";case"SUBQUERY_IN_LIST":return"";case"SCALAR_SUBQUERY":return e.resolved;case"ARITH_VALUE":return e.expr.type==="FIELD_REF"?$e(t,e.expr.field):e.expr.type==="STRING_FUNC"?he(e.expr,t,void 0,void 0,i):String(Ee(e.expr,t,i));case"CASE_VALUE":return He(e.expr,t,n,r,i);case"ARRAY":return e.elements.map(o=>o.value).join(",")}}function He(e,t,n,r,i={}){for(let o of e.branches)if(le(o.condition,t,n,void 0,r,i))return Of(o.result,t,n,r,i);return e.elseResult!==null?Of(e.elseResult,t,n,r,i):""}function wf(e,t,n,r,i={}){for(let o of e.branches)if(le(o.condition,t,n,void 0,r,i))return Pf(o.result,t,n,r,i);return e.elseResult===null?null:Pf(e.elseResult,t,n,r,i)}function Pf(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[fe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[gt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?Ee(e,t,i):Ft(e,t,n,r,i)}function Of(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[fe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[gt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(Ee(e,t,i)):String(Le(e,t,n,r,i))}function vf(e,t={}){let n=t.statementInstant??new Date;switch(e){case"TODAY":{let r=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,"0"),o=String(n.getDate()).padStart(2,"0");return`${r}-${i}-${o}`}case"NOW":return n.toISOString();case"LOGINUSER":case"PRIMARY_ORGANIZATION":return""}}function zA(e){throw ne(e)?new Error(`${e}: ${yn}`):zn(e)?new Error(`${e}: ${vt}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var ga=new Map,qA=200;function Lf(e,t){if(!dd(t))return e.includes(t);let n=ga.get(t);if(!n){let r="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?r+=".*":o==="_"?r+=".":r+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}r+="$",n=new RegExp(r,"u"),ga.size>=qA&&ga.clear(),ga.set(t,n)}return n.test(e)}function ur(e){return Uf(e)}function Df(e){return Uf(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Uf(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw _e("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw _e("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function _e(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function ha(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!le(a.condition,t,n))continue;let s=Le(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Xl(e){if(Qt(e))throw new oe("UPDATE / DELETE \u306E WHERE \u306B LIKE / NOT LIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002LIKE \u306F kSQL \u306E\u610F\u5473\u8AD6\u306B\u5F93\u3063\u3066 JS \u3067\u8A55\u4FA1\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u89AA\u30EC\u30B3\u30FC\u30C9 DML \u306B\u306F JS \u8A55\u4FA1\u7D4C\u8DEF\u304C\u306A\u3044\u305F\u3081\u3001\u5B89\u5168\u4E0A\u62D2\u5426\u3057\u307E\u3057\u305F\u3002SELECT \u3067\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001IN \u307E\u305F\u306F\u5B8C\u5168\u4E00\u81F4\u3067\u5BFE\u8C61\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var JA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),XA=new Set(["CHECK_BOX","MULTI_SELECT"]);function Ta(e,t=new Map,n={}){let r=e.values.map(i=>QA(e.fields,i,t,n));return ui(r,100).map(i=>({app:e.appId,records:i}))}function QA(e,t,n,r){let i={};return e.forEach((o,a)=>{let s=t[a];s.type==="CASE_VALUE"?i[o]={value:Kt(s.expr,{},n.get(o),r)}:i[o]={value:St(s,n.get(o))}}),i}function si(e){Xl(e.where);let t=jf(e);return{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function li(e,t,n=new Map){let r=ZA(e.assignments,n);return ui(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function ZA(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:St(i,t.get(r))});return n}function Ff(e){return e.assignments.some(t=>t.value.type==="ARITH"||t.value.type==="SCALAR_ARITH"||t.value.type==="CONCAT_OP"||t.value.type==="CASE_VALUE")}function Ia(e){return e.assignments.some(t=>t.value.type==="ARITH"||t.value.type==="SCALAR_ARITH"||t.value.type==="CONCAT_OP"||t.value.type==="CASE_VALUE"||t.value.type==="STRING_FUNC")}function Ql(e){Xl(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Kf(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?cr(n,t):n.type==="STRING_FUNC"?Zl(n,t):n.type==="CASE_VALUE"&&Gf(n.expr,t);return jf(e).forEach(n=>t.add(n)),{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function Kf(e,t){ai(e.left,t),ai(e.right,t)}function ai(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Kf(e,t):e.type==="STRING_FUNC"&&Zl(e,t)}function Zl(e,t){for(let n of e.args)eS(n,t)}function eS(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Sa(e,t);return}cr(e,t)}function cr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Zl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){cr(e.left,t),cr(e.right,t);return}e.type==="CASE_WHEN"&&Gf(e,t)}function Sa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&tS(e.arg,t);return}e.type==="AGG_ARITH"&&(Sa(e.left,t),Sa(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function tS(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?ai(e,t):cr(e,t)}function Mf(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Sa(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){ai(e,t);return}cr(e,t)}}function Gf(e,t){for(let n of e.branches)Aa(n.condition,t),Mf(n.result,t);e.elseResult!==null&&Mf(e.elseResult,t)}function Aa(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&ai(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Aa(e.left,t),Aa(e.right,t);break;case"NOT":case"GROUP":Aa(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function eu(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=$f(o),l={};for(let{field:c,value:d}of e.assignments)l[c]={value:tu(d,s,n.get(c),o,r)};return{id:a,record:l}});return ui(i,100).map(o=>({app:e.appId,records:o}))}function tu(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?ru(e,r):Ee(e,t,i));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Le(e,t,void 0,void 0,i));if(e.type==="STRING_FUNC")return he(e,t,void 0,void 0,i);if(e.type==="CASE_VALUE")return Kt(e.expr,t,n,i);if(e.type==="SOURCE_FIELD")throw new oe("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return St(e,n)}function wa(e,t,n,r={}){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return q(e);if(e.type==="ARITH")return String(Ee(e,t,r));if(e.type==="CASE_VALUE")return He(e.expr,t,n,void 0,r);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var nS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function nu(e,t,n=new Map,r={}){let i=t.map(({target:o,source:a})=>{let s=Number(o.$id?.value);if(!Number.isSafeInteger(s)||s<=0)throw new oe("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let l=$f(o),c={};for(let{field:d,value:u}of e.assignments){let p=n.get(d);if(u.type==="SOURCE_FIELD"){if(nS.has(p??""))throw new oe(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${p} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(a,u.field))throw new oe(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let f=a[u.field];if(typeof f!="string")throw new oe(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((p==="NUMBER"||p==="CALC")&&f!==""&&!Number.isFinite(Number(f)))throw new oe(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${f}`);c[d]={value:St({type:"STRING",value:f},p)}}else{if(u.type==="STRING_FUNC")throw new oe("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");u.type==="ARITH"?c[d]={value:String(ru(u,o))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?c[d]={value:String(Le(u,l,void 0,void 0,r))}:u.type==="CASE_VALUE"?c[d]={value:Kt(u.expr,l,p,r)}:c[d]={value:St(u,p)}}}return{id:s,record:c}});return ui(i,100).map(o=>({app:e.appId,records:o}))}function $f(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function ru(e,t){let n=kf(e.left,t),r=kf(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new oe("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new oe("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function kf(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return ru(e,t);if(e.type==="STRING_FUNC")throw new oe("UPDATE SET \u306E\u7B97\u8853\u5F0F\u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093");let n=t[e.field]?.value??"",r=Number(n);if(Number.isNaN(r))throw new oe(`\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 "${e.field}" \u306E\u5024 "${n}" \u306F\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return r}function Bf(e){return Xl(e.where),{app:e.appId,query:z(e.where),fields:["$id"],totalCount:!1}}function Vf(e,t){return ui(t,100).map(n=>({app:e,ids:n}))}function Wf(e){return JA.has(e??"")}function rS(e){return XA.has(e??"")}function iS(e){if(!e||/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/.test(e))return e;let t=e.replace(/\//g,"-").replace(" ","T");/T\d{2}:\d{2}$/.test(t)&&(t+=":00");let n=new Date(t);return isNaN(n.getTime())?e:n.toISOString().replace(/\.\d{3}Z$/,"Z")}function oS(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Hf(e,t){return Wf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):rS(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?iS(e):t==="DATE"?oS(e):e}function Yf(e,t){return Wf(t)?e.map(n=>({code:n})):e}function xf(e,t,n,r){if(e.type==="ARRAY")return Yf(e.elements.map(i=>i.value),n);if(e.type==="AGG_REF"||e.type==="AGG_ARITH")throw new Error("InternalError: aggregate CASE result reached DML evaluation.");return e.type==="STRING"?Hf(e.value,n):e.type==="STRING_FUNC"?he(e,t,void 0,void 0,r):e.type==="FIELD_REF"||e.type==="ARITH"?String(Ee(e,t,r)):String(Le(e,t,void 0,void 0,r))}function jf(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(ur(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Kt(e,t,n,r={}){for(let i of e.branches)if(le(i.condition,t,void 0,void 0,void 0,r))return xf(i.result,t,n,r);return e.elseResult!==null?xf(e.elseResult,t,n,r):""}function St(e,t){let n=iu(e,t);if(!n.ok)throw new oe(n.message);return n.value}function iu(e,t){try{return{ok:!0,value:aS(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function aS(e,t){switch(e.type){case"VARIABLE":throw new oe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new oe(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Hf(e.value,t);case"NUMBER":return q(e);case"ARRAY":return Yf(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new oe(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new oe("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new oe("\u7B97\u8853\u5F0F\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new oe("CASE WHEN \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new oe("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new oe("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function ui(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var oe=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var ou=new Set(["CHECK_BOX","MULTI_SELECT"]),sS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ci(e){throw new Error(`ArgumentError: ${e}`)}function zf(e,t,n){let r=lS(n.fieldType,e.field),i=uS(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let g=y.value;g!==""&&(y.kind==="ADD"?(s.has(g)||a.push(g),s.add(g)):l.add(g))}for(let y of s)l.has(y)&&ci(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let c=i.filter(y=>!l.has(y)),d=a.filter(y=>!o.has(y)),u=[...c,...d],p=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let g=y.kind==="ADD"?f:E,S=!g.has(y.value);return g.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&S&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=ou.has(r)?u:u.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:R,postImageValue:m,addedValues:d.length,removedValues:p,changedValues:d.length+p}}function lS(e,t){return ou.has(e)||sS.has(e)?e:ci(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function uS(e,t,n){if(!Array.isArray(e))return ci(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>ou.has(t)?typeof i!="string"?ci(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?ci(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function X(e){throw new Error(`ArgumentError: ${e}`)}function lu(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?X("APPLY parent selector must be a single positive $id."):t.right.value}function Gt(e,t){let n=e.applyBlocks;if(!n?.length)return X("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)au(s.field,null,r),cS(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&X(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(u=>u.field===s.field)&&X(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(u=>u.code===s.field&&!u.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?X(`APPLY target ${s.field} is not a SUBTABLE.`):X(`APPLY target ${s.field} does not exist as a top-level field.`);if(ud(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&X(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let c=l,d=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,c),a.set(s.field,d);for(let u of s.operations)if(u.kind==="PATCH"){for(let p of u.assignments)au(p.field,s.field,r,d),su(p.value,s.field,r,d);u.selector.kind==="WHERE"&&su(u.selector.where,s.field,r,d)}else if(u.kind==="APPEND"){let p=new Set;for(let f of u.fields)p.has(f)&&X(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),au(f,s.field,r,d)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&su(u.selector.where,s.field,r,d)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function cS(e,t){pi(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&X(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&X(`APPLY parent FILE reference ${n} is not supported.`)})}function au(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&X(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);t!==null&&o?.inSubtable&&X(`APPLY child ${e} does not belong to subtable ${t}.`),X(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&X(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function su(e,t,n,r){pi(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&X(`APPLY child reference ${i} does not belong to subtable ${t}.`),X(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function ba(e,t){let n=Gt(e,t),r=new Set(["$id","$revision"]);for(let i of t)i.inSubtable||i.fieldType==="FILE"||r.add(i.code);for(let i of n.targetTables.values())r.add(i.code);for(let i of e.assignments)pi(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Na(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=eE(i?.value);return n}function Jf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Gt(t,r),o=pu(n.$id?.value,"APPLY snapshot $id"),a=lu(t);return o!==a&&X(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Qf(t,n,i,o,e.evaluationContext)}function Xf(e,t,n,r=Gt(e,n),i={}){let o=new Set;return t.map(a=>{let s=pu(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&X(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),Qf(e,a,r,s,i)})}function Qf(e,t,n,r,i={}){let o=pu(t.$revision?.value,"APPLY snapshot $revision"),a=[],s=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let k=n.targetMultiValueFields.get(u.field);k||X(`APPLY multi-value metadata for ${u.field} is missing.`),s.push(zf(u,t[u.field]?.value,k));continue}let p=n.childrenByTable.get(u.field),f=mS(t,u.field),E=new Set;for(let k of f)k.id||X(`APPLY snapshot for ${u.field} contains a row without _rid.`),E.has(k.id)&&X(`APPLY snapshot for ${u.field} contains duplicate _rid ${k.id}.`),E.add(k.id);let R=k=>k.field==="_rid"?"SINGLE_LINE_TEXT":k.field==="_idx"?"NUMBER":p.get(k.field)?.fieldType,m=[],y=[],g=[],S=new Set,A=new Set,I=new Set,N=u.operations.some(k=>k.kind==="REMOVE");for(let[k,P]of u.operations.entries()){if(P.kind==="APPEND"){let C=uu(P,p,u.field,i);g.push({kind:"APPEND",addedRows:C.length}),y.push(...C);continue}if(P.kind==="REMOVE"){let C=fS(P,f,R,u.field,i);P.expectRows&&qf(P.expectRows,C.length,r,u.field,k,P.kind),g.push({kind:"REMOVE",removedRows:C.length});for(let h of C){let w=f[h].id;A.has(h)&&X(`APPLY row ${w} is selected by both PATCH and REMOVE.`),I.has(h)&&X(`APPLY removes row ${w} more than once.`),I.add(h)}continue}if(P.kind!=="PATCH")continue;let O=dS(P,f,R,u.field,i);P.expectRows&&qf(P.expectRows,O.length,r,u.field,k,P.kind),g.push({kind:"PATCH",matchedRows:O.length,changedRows:O.length});for(let C of O){let h=f[C];I.has(C)&&X(`APPLY row ${h.id} is selected by both PATCH and REMOVE.`),A.add(C);let w=Na(h,C);for(let _ of P.assignments){let L=`${h.id}\0${_.field}`;S.has(L)&&X(`APPLY patches cell ${h.id}.${_.field} more than once.`),S.add(L),m.push({rowIndex:C,field:_.field,value:wa(_.value,w,R,i)})}}}let v=new Map;for(let k of m){let P=v.get(k.rowIndex)??{};P[k.field]={value:k.value},v.set(k.rowIndex,P)}let M=[...f.flatMap((k,P)=>I.has(P)?[]:[{id:k.id,value:{...k.value,...v.get(P)??{}}}]),...y],D={table:u.field,operations:g,changedSubtableRows:v.size+I.size+y.length,deletedRows:I.size,snapshotRowIds:f.map(k=>k.id),postImageRows:M};N?a.push({...D,payloadShape:"FULL_SURVIVORS",removedRowIds:f.flatMap((k,P)=>I.has(P)?[k.id]:[]),payloadRows:M.map(k=>({...k.id===void 0?{}:{id:k.id},value:k.value}))}):a.push({...D,payloadShape:"PATCH_ONLY",payloadRows:[...f.map((k,P)=>{let O=v.get(P);return O?{id:k.id,value:O}:{id:k.id}}),...y.map(k=>({value:k.value}))]})}let l=yS(t),c={};for(let u of e.assignments){let p=n.fieldsByCode.get(u.field)?.fieldType;c[u.field]={value:tu(u.value,l,p,t,i)}}let d={...t};Object.assign(d,c);for(let u of a)d[u.table]={value:u.postImageRows};for(let u of s)d[u.field]={value:u.postImageValue};return{app:e.appId,parentId:r,revision:o,parentRows:1,changedSubtableRows:a.reduce((u,p)=>u+p.changedSubtableRows,0),parentValues:c,postImage:d,tables:a,multiValues:s}}function qf(e,t,n,r,i,o){if(e.kind==="EXACT"?t===e.count:e.kind==="BETWEEN"?t>=e.min&&t<=e.max:e.kind==="AT_LEAST"?t>=e.count:t<=e.count)return;let s=e.kind==="EXACT"?`exactly ${e.count}`:e.kind==="BETWEEN"?`between ${e.min} and ${e.max}`:e.kind==="AT_LEAST"?`at least ${e.count}`:`at most ${e.count}`;X(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Ca(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return X(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,c)=>{let d=a[c];return d?.value?l.id===void 0?{value:d.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,d.value[u]]))}:X(`APPLY normalized post-image for ${o.table} row ${c+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:X(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function uu(e,t,n,r={}){return e.values.map(i=>({value:pS(e,i,t,n,r)}))}function pS(e,t,n,r,i){if(t.length!==e.fields.length)return X(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let o=new Map(e.fields.map((s,l)=>[s,t[l]])),a={};for(let s of n.values()){if(s.fieldType==="FILE"||s.writable===!1)continue;let l=o.get(s.code);a[s.code]={value:l===void 0?cu(s):l.type==="CASE_VALUE"?Kt(l.expr,{},s.fieldType,i):St(l,s.fieldType)}}return a}function cu(e){return e.defaultValue!==void 0&&e.defaultValue!==null?e.defaultValue:["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(e.fieldType)?[]:""}function dS(e,t,n,r,i={}){return Zf(e.selector,t,n,r,i)}function fS(e,t,n,r,i={}){return Zf(e.selector,t,n,r,i)}function Zf(e,t,n,r,i={}){if(e.kind==="ALL_ROWS")return t.map((c,d)=>d);let o=e.where,a=t.flatMap((c,d)=>le(o,Na(c,d),n,void 0,void 0,i)?[d]:[]),s=ES(o);s!==null&&a.length===0&&X(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=RS(o);return l!==null&&a.length===0&&X(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function ES(e){return e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="_rid"?null:e.right.type==="STRING"?e.right.value:e.right.type==="NUMBER"?e.right.raw??String(e.right.value):null}function RS(e){return e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="_idx"||e.right.type!=="NUMBER"?null:Number.isSafeInteger(e.right.value)&&e.right.value>=0?e.right.value:null}function mS(e,t){let n=e[t]?.value;return Array.isArray(n)?n.map(r=>{let i=r;return{id:typeof i.id=="string"?i.id:"",value:i.value&&typeof i.value=="object"?i.value:{}}}):X(`APPLY snapshot field ${t} is not a subtable value.`)}function pu(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&X(`${t} must be a positive integer.`),n}function yS(e){let t={};for(let[n,r]of Object.entries(e))t[n]=eE(r?.value);return t}function eE(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function pi(e,t){if(Array.isArray(e)){e.forEach(r=>pi(r,t));return}if(e===null||typeof e!="object")return;let n=e;(n.type==="FIELD"||n.type==="FIELD_REF")&&typeof n.field=="string"&&t(n.field);for(let r of Object.values(n))pi(r,t)}function Re(e){throw new Error(`ArgumentError: ${e}`)}function Oa(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?Re("APPLY snapshot $revision must be a positive integer."):t}function di(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return Re("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return Re("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&Re(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&Re(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&Re(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),gS(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function tE(e){if(e.records.length===0)return[];let t=e.plans[0]?.app;if(!Number.isSafeInteger(t)||t<=0||e.plans.length!==e.records.length)return Re("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function gS(e){let t=du(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(d=>d.id===void 0?[]:[d.id]);for(let d of e.payloadRows)d.id===void 0&&d.value===void 0&&Re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(du(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&Re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let d=e.payloadRows.slice(0,t.length).map(p=>p.id??"");Pa(t,d,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(p=>p.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(p=>p.id??"");Pa(t,u,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(p=>p.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(d=>d.kind==="REMOVE")||Re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=du(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&Re(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&Re(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(d=>d.id===void 0?[]:[d.id]),o=new Set(r),a=new Set(i);for(let d of r)a.has(d)&&Re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${d}.`);let s=t.filter(d=>!o.has(d));Pa(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(d=>d.id??"");Pa(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(d=>d.id!==void 0)||e.postImageRows.slice(i.length).some(d=>d.id!==void 0))&&Re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(d=>d.value===void 0)&&Re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((d,u)=>!fu(d.value,e.postImageRows[u]?.value))&&Re(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let c=new Set([...i,...r]);(c.size!==t.length||t.some(d=>!c.has(d)))&&Re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function du(e,t){let n=[...e],r=new Set;for(let i of n)i||Re(`APPLY ${t} contains an empty row id.`),r.has(i)&&Re(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function Pa(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&Re(n)}function fu(e,t){if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((a,s)=>fu(a,t[s]));if(e===null||t===null||typeof e!="object"||typeof t!="object")return!1;let n=e,r=t,i=Object.keys(n),o=Object.keys(r);return i.length===o.length&&i.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&fu(n[a],r[a]))}function nE(e,t,n,r){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`SettingsError: numberPrecision.${t} must be an integer string.`);let i=0;for(let o of e)i=i*10+o.charCodeAt(0)-48;if(i<n||i>r)throw new Error(`SettingsError: numberPrecision.${t} must be between ${n} and ${r}.`);return i}function rE(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=nE(t.digits,"digits",1,30),r=nE(t.decimalPlaces,"decimalPlaces",0,10),i=t.roundingMode;if(i!=="HALF_EVEN"&&i!=="UP"&&i!=="DOWN")throw new Error("SettingsError: numberPrecision.roundingMode is unsupported.");return{digits:n,decimalPlaces:r,roundingMode:i}}function iE(e){return e.sign===0?{integerDigits:0,fractionDigits:0}:{integerDigits:Math.max(e.coefficient.length-e.scale,0),fractionDigits:Math.max(e.scale,0)}}var hS=new Set(["CHECK_BOX","MULTI_SELECT"]),AS=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ye(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=SS(e);if(i!==""&&!TS(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=fi(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:IS(t.fieldType),message:o}}if(t.required&&La(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!La(r)&&t.fieldType==="NUMBER"){let i=String(r),o=we(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&wo(i,t.minValue)<0)return{ok:!1,code:"ERR_RANGE_MIN",message:`${t.code} \u306F ${t.minValue} \u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.maxValue!=null&&wo(i,t.maxValue)>0)return{ok:!1,code:"ERR_RANGE_MAX",message:`${t.code} \u306F ${t.maxValue} \u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(n!==void 0){let{integerDigits:a}=iE(o),s=n.digits-n.decimalPlaces;if(a>s)return{ok:!1,code:"ERR_NUMBER_INTEGER_DIGITS",message:`${t.code} \u306E\u6574\u6570\u90E8\u306F ${a} \u6841\u3067\u3059\u3002\u8A31\u5BB9\u306F ${s} \u6841\u307E\u3067\u3067\u3059 (digits=${n.digits}, decimalPlaces=${n.decimalPlaces})`}}}if(!La(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!In(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!La(r)&&AS.has(t.fieldType)&&t.optionOrder&&(Array.isArray(r)?r.map(String):[String(r)]).some(o=>!(o in t.optionOrder))?{ok:!1,code:"ERR_CHOICE_INVALID",message:`${t.code} \u306B\u5B9A\u7FA9\u5916\u306E\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u3059`}:{ok:!0,value:r}}function SS(e){return e==null?"":_a(e)&&e.type==="NUMBER"?q(e):_a(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function TS(e,t){if(t==="DATE")return In(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return In(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?In(n.slice(0,10),"DATE")&&In(n.slice(11),"TIME"):In(n,"DATETIME")}function fi(e,t){if(_a(e)){let r=iu(e,t);if(!r.ok)throw new Error(r.message);return r.value}if(Array.isArray(e))return e.map(r=>typeof r=="object"&&r!==null&&"code"in r?String(r.code):String(r));let n=e==null?"":String(e);if(hS.has(t)){if(n==="")return[];try{let r=JSON.parse(n);if(Array.isArray(r))return r.map(String)}catch{}return n.split(",").map(r=>r.trim())}return n}function _a(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function wn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(_a(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function La(e){return e===""||Array.isArray(e)&&e.length===0}function IS(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function In(e,t){if(t==="TIME"){let c=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return c!==null&&Number(c[1])<=23&&Number(c[2])<=59&&Number(c[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&In(l,"TIME")}var pr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Eu(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(d=>typeof d=="object"&&d!==null&&"code"in d),c=a;try{c=fi(a,s)}catch{}i.record[o]={value:l?a:c}}}}function Ru(e,t,n,r,i,o,a,s=[],l=!0,c=!0,d={}){let u=new Map(i.map(m=>[m.code,m])),p=[],f=new Set,E=[];d.validateUpdateBuiltIns===!1&&Eu(e,r,i);let R;for(let m of e){m.record??={};let y=c?[...m.preErrors]:[],g=[],S=[],A=m.mode==="create"||d.validateUpdateBuiltIns!==!1;for(let b of r){if(!m.payload.has(b))continue;let M=m.payload.get(b),D=u.get(b).fieldType,k=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(D)&&Array.isArray(M)&&M.every(O=>typeof O=="object"&&O!==null&&"code"in O);if(!A)continue;let P=Ye(M,u.get(b),a);P.ok?m.record[b]={value:k?M:P.value}:g.push({field:b,code:P.code,message:P.message})}if(l&&m.mode==="create")for(let b of i){if(b.inSubtable||m.payload.has(b.code))continue;if(wn(b.defaultValue)){let D=Ye("",b,a);D.ok?b.required&&g.push({field:b.code,code:"ERR_REQUIRED",message:`${b.code} \u306F\u5FC5\u9808\u3067\u3059`}):g.push({field:b.code,code:D.code,message:D.message})}else{let D=Ye(b.defaultValue,b,a);D.ok||g.push({field:b.code,code:D.code,message:`\u65E2\u5B9A\u5024: ${D.message}`})}}if(s.length>0){let b=m.evaluationRow??Object.fromEntries([...m.payload].map(([k,P])=>[k,Tt(P)])),M=m.evaluationFieldTypes,D=k=>{let P=k.tableAlias?`${k.tableAlias}.${k.field}`:k.field;return M?.get(P)??M?.get(k.field)};try{for(let k of ha(s,b,D))S.push({field:"",code:"ERR_CHECK",message:k.message})}catch(k){R??=k}}let I=b=>b.map(M=>{let D={};for(let k of n)D[k]=Tt(m.payload.get(k));return D.$err_statement=String(o),D.$err_operation=t,D.$err_row=String(m.rowNumber),D.$err_field=M.field,D.$err_code=M.code,D.$err_message=M.message,D.$err_value="",D.$err_subtable="",D.$err_subrow="",D.$err_subrow_id="",D}),N={rowNumber:m.rowNumber,preErrors:I(y),builtInErrors:I(g),checkErrors:I(S)};E.push(N);let v=[...N.preErrors,...N.builtInErrors,...N.checkErrors];v.length>0&&f.add(m.rowNumber),p.push(...v)}if(R!==void 0)throw R;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function Tt(e){if(e==null)return"";if(typeof e=="object"&&"type"in e){let t=e;if(t.type==="NUMBER")return t.raw??String(t.value??"");if(t.type==="STRING")return String(t.value??"");if(t.type==="ARRAY")return JSON.stringify(t.elements?.map(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var mu=["required","length","range","choice"];function yu(e){return[...e.required===!0?["required"]:[],...e.minLength!==void 0||e.maxLength!==void 0?["length"]:[],...e.minValue!==void 0||e.maxValue!==void 0?["range"]:[],...e.optionOrder!==void 0?["choice"]:[]]}function gu(e){let t=e.filter(r=>!r.inSubtable),n=new Map;for(let r of e){if(!r.inSubtable||!r.subtableCode)continue;let i=n.get(r.subtableCode)??[];i.push(r),n.set(r.subtableCode,i)}return{topLevel:t,topByCode:new Map(t.map(r=>[r.code,r])),childrenByTable:n}}function wS(e){return yu(e).length>0}function bS(e){return e.fieldType==="NUMBER"||wS(e)}function va(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function hu(e,t){let{topByCode:n,childrenByTable:r}=gu(t),i=bS;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,c)=>{let d=c?`${c}\0${l.code}`:l.code;if(a.has(d))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(d),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...c?{subtableCode:c}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let u=r.get(l.subtableCode);if(!u)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let p of l.children){let f=u.find(E=>E.code===p);if(!f){let E=[...r.entries()].some(([R,m])=>R!==l.subtableCode&&m.some(y=>y.code===p));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let c=l.field;if(c==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let d=n.get(c);if(d?.fieldType==="SUBTABLE"){let u=(r.get(c)??[]).filter(i);if(u.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${c} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);u.forEach(p=>s(p,c));continue}if(d){s(d);continue}throw[...r.values()].some(u=>u.some(p=>p.code===c))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${c}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Ei(e,t){return wn(e)?"":Tt(fi(e,t))}var NS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Ri=pr;function It(e,t=["$id"]){let n=gu(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!NS.has(o.fieldType)),i=new Map;for(let[o,a]of n.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:r,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function bn(e,t){if(t.topLevel.some(n=>n.fieldType==="NUMBER"&&n.code in e))return!0;for(let[n,r]of t.subtables){if(!r.some(o=>o.fieldType==="NUMBER"))continue;let i=e[n]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(r.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function Nn(e,t,n,r,i=1,o="UPDATE"){let a=CS(e),s=[],l=new Set,c=[...t.payloadFields,...Ri],d=Tt(e.$id?.value),u=(p,f,E,R)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?d:Tt(e[y]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=p.code,m.$err_code=E.code,m.$err_message=E.message,m.$err_value=Ei(f,p.fieldType),m.$err_subtable=R?.subtable??"",m.$err_subrow=R?String(R.subrow):"",m.$err_subrow_id=R?.subrowId??"",s.push(m)};for(let p of t.topLevel){let f=e[p.code]?.value,E=Ye(f,p,n);E.ok?a[p.code]={value:oE(f,p.fieldType,E.value)}:u(p,f,E)}for(let[p,f]of t.subtables){let E=e[p]?.value;if(!Array.isArray(E))continue;let R=a[p]?.value;for(let m=0;m<E.length;m++){let y=E[m],g=R[m];for(let S of f){let A=y.value?.[S.code]?.value,I=Ye(A,S,n);I.ok?(g.value??={},g.value[S.code]={value:oE(A,S.fieldType,I.value)}):u(S,A,I,va(p,m,y))}}}return{normalizedRecord:a,errors:s,columns:c,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function oE(e,t,n){return["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(t)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)?e:n}function CS(e){let t={};for(let[n,r]of Object.entries(e)){let i=r?.value;t[n]={value:Array.isArray(i)?i.map(o=>{if(o===null||typeof o!="object")return o;let a=o;return a.value?{...a,value:Object.fromEntries(Object.entries(a.value).map(([s,l])=>[s,{...l}]))}:{...a}}):i}}return t}async function Da(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;aE(o,"dmlMaxRows"),aE(a,"dmlMaxSubtableRows");for(let S of n)Oa(S);let l=Xf(t,n,r,i),c=It(r,t.assignments.map(S=>S.field)),d=l.some(S=>bn(S.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=l.map((S,A)=>Nn(S.postImage,c,u,s,e.parentRowNumbers?.[A]??A+1));if(!t.validateOnly){let S=p.flatMap(A=>A.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:S})}`)}let f=l.length,E=l.reduce((S,A)=>S+A.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((S,A)=>Ca(S,p[A].normalizedRecord)),y=m.flatMap(S=>di(S).records),g=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return sE({plans:m,records:y,validations:g,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function aE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function sE(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))sE(n,t);return Object.freeze(e)}var Au=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Ua(e,t){if(new Set(e.fields).size!==e.fields.length)return wt("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)lE(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return wt(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return wt(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return wt(`APPLY INSERT supports APPEND only (${l.kind}).`);let c=new Set;for(let d of l.fields){if(c.has(d))return wt(`APPLY APPEND specifies child ${d} more than once.`);c.add(d),lE(d,o.field,n,s)}for(let d of l.values)if(d.length!==l.fields.length)return wt(`APPLY APPEND for ${o.field} has ${d.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function PS(e,t,n=Ua(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Ta(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),c=s.operations.flatMap(d=>uu(d,l,s.field));return{table:s.field,rows:c,addedRows:c.length}});return o.map((s,l)=>{let c={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||Au.has(u.fieldType)||(c[u.code]=s[u.code]??{value:cu(u)});let d={...s};for(let u of a){let p=u.rows.map(f=>({value:f.value}));c[u.table]={value:p},d[u.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:c,record:d}})}async function mi(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;uE(r,"dmlMaxRows"),uE(i,"dmlMaxSubtableRows");let a=e.metadata??Ua(t,n),s=PS(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!Au.has(A.fieldType)),c=It(l,t.fields),d=s.some(A=>bn(A.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=s.map(A=>Nn(A.postImage,c,u,o,A.parentRowNumber,"INSERT"));if(!t.validateOnly){let A=p.flatMap(I=>I.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:A})}`)}let f=s.length,E=s.reduce((A,I)=>A+I.tables.reduce((N,v)=>N+v.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((A,I)=>{let N=p[I].normalizedRecord,v={};for(let b of t.fields)v[b]=N[b];for(let b of A.tables){let M=N[b.table]?.value;v[b.table]={value:b.rows.map((D,k)=>({value:Object.fromEntries(Object.keys(D.value).map(P=>[P,M[k]?.value?.[P]??D.value[P]]))}))}}return{...A,postImage:N,record:v}}),y=m.map(A=>A.record),g=[];for(let A=0;A<y.length;A+=100)g.push({app:t.appId,records:y.slice(A,A+100)});let S=p.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return cE({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:g,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function lE(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return wt(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);return t!==null&&o?.inSubtable?wt(`APPLY child ${e} does not belong to subtable ${t}.`):wt(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Au.has(i.fieldType))return wt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function uE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function wt(e){throw new Error(`ArgumentError: ${e}`)}function cE(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))cE(n,t);return Object.freeze(e)}async function dE(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;pE(i,"dmlMaxRows"),pE(o,"dmlMaxSubtableRows"),DS(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),c=OS(t,s.map(y=>y.sourceRowIndex)),d=await mi({statement:c,fieldInfos:r,metadata:Ua(c,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],p=new Set;for(let y of l){let g=y.targetId;p.has(g)&&Su(`UPSERT APPLY resolves more than one source row to parent $id ${g}.`),p.add(g),y.snapshot||Su(`UPSERT APPLY snapshot for parent $id ${g} is missing.`);let S=Number(y.snapshot.$id?.value);S!==g&&Su(`UPSERT APPLY snapshot $id ${S} does not match target $id ${g}.`);let A=LS(t,y.sourceRowIndex,g),I=A.applyBlocks?.length?Gt(A,r):_S(r);u.push(await Da({statement:A,snapshots:[y.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=vS(u,i,o),E=d.guards.parentRows+f.guards.parentRows,R=d.guards.subtableRows+f.guards.subtableRows,m=E>i||R>o;if(!t.validateOnly){let y=[...d.validations.flatMap(g=>g.errors),...f.validations.flatMap(g=>g.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return Tu({create:d,update:f,createBatches:d.batches,updateBatches:US(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:m,create:d.guards,update:f.guards}})}function OS(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function LS(e,t,n){let r=e.fields.map((i,o)=>({field:i,value:e.values[t][o]}));return{type:"UPDATE",appId:e.appId,subtableCode:null,assignments:r,from:null,where:{type:"BINARY",op:"=",left:{type:"FIELD",tableAlias:null,field:"$id"},right:{type:"NUMBER",value:n,raw:String(n)}},applyBlocks:e.onUpdateApplyBlocks??[],validateOnly:!0}}function _S(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function vS(e,t,n){let r=e.flatMap(s=>s.plans),i=e.flatMap(s=>s.records),o=e.flatMap(s=>s.validations),a=r.reduce((s,l)=>s+l.changedSubtableRows,0);return Tu({plans:r,records:i,validations:o,guards:{revisionRequired:!0,parentRows:r.length,dmlMaxRows:t,subtableRows:a,dmlMaxSubtableRows:n,wouldExceed:r.length>t||a>n}})}function DS(e,t){if(t.length!==e.values.length)throw new Error("InternalError: UPSERT APPLY match count differs from VALUES rows.");let n=new Set;for(let r of t){if(!Number.isSafeInteger(r.sourceRowIndex)||r.sourceRowIndex<0||r.sourceRowIndex>=e.values.length||n.has(r.sourceRowIndex))throw new Error("InternalError: UPSERT APPLY matches must cover each source row exactly once.");n.add(r.sourceRowIndex)}}function US(e,t){let n=[];for(let r=0;r<e.length;r+=100)n.push({app:t,records:e.slice(r,r+100)});return n}function pE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Su(e){throw new Error(`ArgumentError: ${e}`)}function Tu(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))Tu(n,t);return Object.freeze(e)}function gi(e){return dr("UPDATE",[RE(e)])}function Iu(e){return dr("INSERT",[EE(e)])}function wu(e){return dr("UPSERT",[EE(e.create),RE(e.update)])}function Je(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function ka(e,t,n){return e.type==="UPDATE"?dr("UPDATE",[Ma("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?dr("INSERT",[Ma("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):dr("UPSERT",[Ma("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Ma("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function dr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function EE(e){let t=new Map;if(e.applyBlocks)for(let n of e.applyBlocks){let r=n.operations.map(i=>{if(i.kind!=="APPEND")throw new Error(`InternalError: prepared APPLY INSERT contains ${i.kind}.`);let o=i.values.length*e.guards.parentRows;return{kind:"APPEND",count:o,addedRows:o}});t.set(n.field,{targetKind:n.targetKind,field:n.field,operations:r,changedCount:r.reduce((i,o)=>i+(o.addedRows??0),0)})}else for(let n of e.candidates)for(let r of n.tables){let i=t.get(r.table),o=i?.operations[0]?.addedRows??0;t.set(r.table,{targetKind:"SUBTABLE",field:r.table,operations:[{kind:"APPEND",count:o+r.addedRows,addedRows:o+r.addedRows}],changedCount:(i?.changedCount??0)+r.addedRows})}return{branch:"insert",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:e.batches.length},deletedParentRows:0}}function RE(e){let t=new Map,n=0;for(let r of e.plans){let i=!1;for(let o of r.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:fE(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:fE(a?.operations,o.operations.map(l=>({kind:l.kind,value:l.value,count:l.changed?1:0,changed:l.changed}))),changedCount:(a?.changedCount??0)+o.changedValues,postImages:[...a?.postImages??[],s]})}i&&(n+=1)}return{branch:"update",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:Math.ceil(e.records.length/100)},deletedParentRows:n}}function fE(e,t){return e?t.map((n,r)=>{let i=e[r];if(!i||i.kind!==n.kind||i.value!==n.value)throw new Error("InternalError: APPLY diagnostic operation shape differs between parents.");return{...n,...i.changed!==void 0?{changed:i.changed}:{},count:yi(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:yi(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:yi(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:yi(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:yi(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function yi(e,t){return e==null||t===null?null:e+t}function Ma(e,t,n,r,i,o){let a=t.map(d=>{let u=d.operations.map(f=>MS(f,n)),p=u.every(f=>f.count!==null)?u.reduce((f,E)=>f+E.count,0):null;return{targetKind:d.targetKind,field:d.field,operations:u,changedCount:p}}),s=a.filter(d=>d.targetKind==="SUBTABLE"),l=s.every(d=>d.changedCount!==null)?s.reduce((d,u)=>d+u.changedCount,0):null,c=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:c},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function MS(e,t){if(e.kind==="APPEND"){let n=t===null?null:e.values.length*t;return{kind:e.kind,count:n,addedRows:n}}return e.kind==="PATCH"?{kind:e.kind,count:null,matchedRows:null,changedRows:null}:e.kind==="REMOVE"?{kind:e.kind,count:null,removedRows:null}:{kind:e.kind,value:e.value,count:null}}var bt=class extends Error{constructor(t,n){let r=n instanceof Error?n.message:String(n),i=t.failedStage==="POST_CHUNK"?"POST":"PUT",o=t.failedBranch?` UPSERT ${t.failedBranch}`:"";super(`ApplyWritePartialFailureError: APPLY${o} ${i} chunk ${t.failedChunkIndex+1} failed (index ${t.failedChunkIndex}) after ${t.successfulChunks} successful chunk(s) and ${t.successfulParents} successful parent(s); writes are non-transactional and were not retried. Cause: ${r}`),this.name="ApplyWritePartialFailureError",this.partialSuccess=t,this.cause=n}};async function mE(e,t,n){Qn("phase10c");let r=tE(e),i=0,o=0;for(let a=0;a<r.length;a+=1){let s=r[a];try{await t.putRecords(s)}catch(l){throw new bt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Je(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function yE(e,t,n){Qn("phase13c");let r=[],i=0,o=0;for(let a=0;a<e.batches.length;a+=1){let s=e.batches[a];try{let l=await t.postRecords({app:s.app,records:[...s.records]});r.push(l.ids)}catch(l){throw new bt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Je(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function gE(e,t,n){Qn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let c=e.createBatches[l];try{let d=await t.postRecords({app:c.app,records:[...c.records]});r.push(d.ids)}catch(d){throw new bt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Je(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},d)}i+=1,a+=c.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let c=e.updateBatches[l];try{await t.putRecords({app:c.app,records:[...c.records]})}catch(d){throw new bt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Je(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},d)}o+=1,s+=c.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var kS=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function xS(e){if(!kS.test(e))throw new Error(`ArgumentError: invalid variable name "${e}". Use a name without @ matching [A-Za-z_][A-Za-z0-9_]{0,63}.`);return e.toLowerCase()}function FS(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=xS(n);if(Object.prototype.hasOwnProperty.call(t,i))throw new Error(`ArgumentError: variable "${n}" is specified more than once.`);t[i]=r}return t}function bu(e,t){let n=FS(t),r=new Set(e.filter(i=>i.type==="DECLARE_VARIABLE").map(i=>i.name));for(let i of Object.keys(n))if(!r.has(i))throw new Error(`ArgumentError: injected variable @${i} is not declared.`);return n}function KS(e){return e.type!=="SELECT"||!Array.isArray(e.joins)?!1:e.joins.some(t=>{if(t===null||typeof t!="object")return!1;let n=t.type;return n==="LEFT"||n==="RIGHT"})}function Nu(e){let t=new Set,n=r=>{if(Array.isArray(r))return r.some(n);if(r===null||typeof r!="object"||t.has(r))return!1;t.add(r);let i=r;return KS(i)?!0:Object.values(i).some(n)};return n(e)}function hE(e,t,n){if(n)return t===e.from&&e.joins.some(r=>r.type==="RIGHT");for(let r=0;r<e.joins.length;r+=1){let i=e.joins[r];if(i.type==="LEFT"&&t===i.table||i.type==="RIGHT"&&e.joins.slice(0,r).some(o=>t===o.table))return!0}return!1}function Nt(e){let t=[["recursiveCteMaxDepth",e.recursiveCteMaxDepth,100],["recursiveCteMaxRows",e.recursiveCteMaxRows,1e4],["recursiveCteMaxExpansions",e.recursiveCteMaxExpansions,1e5]];for(let[n,r]of t)if(r!==void 0&&(!Number.isSafeInteger(r)||r<=0))throw new RangeError(`${n} must be a positive safe integer`);return{depth:e.recursiveCteMaxDepth??100,rows:e.recursiveCteMaxRows??1e4,expansions:e.recursiveCteMaxExpansions??1e5}}var hi=class extends Error{constructor(t,n,r,i){let o=t==="DEPTH"?"\u6DF1\u3055":t==="ROWS"?"\u7D50\u679C\u884C\u6570":"\u4E2D\u9593\u5C55\u958B\u6570",a=t==="DEPTH"?"":" \u4EF6";super(`\u518D\u5E30 CTE\u300C${i}\u300D\u306E${o}\u304C\u4E0A\u9650 ${n}${a}\u3092\u8D85\u3048\u307E\u3057\u305F\uFF08\u691C\u51FA\u5024: ${r}${a}\uFF09\u3002`),this.name="RecursiveCteLimitError",this.kind=t,this.limit=n,this.detected=r,this.cteName=i,Object.setPrototypeOf(this,new.target.prototype)}},xa=class{constructor(t,n=Nt({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new hi("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new hi("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new hi("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var Fa=50;function Pu(e,t,n){if(e.kind==="RANGE")return[`${t} >= ${n(e.min)} and ${t} <= ${n(e.max)}`];if(e.kind!=="IN")return[];let r=[];for(let i=0;i<e.values.length;i+=Fa){let o=e.values.slice(i,i+Fa);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Cu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),GS=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function $S(e,t){return e==="DATE"?Yr(t):e==="TIME"?zo(t):Cu.has(e)?qo(t):!1}function BS(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Cu.has(e)?Cu.has(t.fieldType):!1}function Ou(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=jo(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!GS.has(e.fieldType))return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let a=[...new Set(e.values)];return a.length===0?{kind:"EMPTY_SOURCE"}:a.length>e.maxInKeys?{kind:"FALLBACK",reason:"JOIN_KEY_LIMIT_EXCEEDED"}:{kind:"IN",values:a,relation:"exact"}}if(!t.has(">=")||!t.has("<="))return{kind:"FALLBACK",reason:"JOIN_KEY_OPERATOR_UNAVAILABLE"};if(e.values===void 0)return{kind:"RANGE_CANDIDATE",relation:"superset",reason:"JOIN_KEY_VALUES_RUNTIME"};if(!BS(e.fieldType,e.sourceSemantics))return{kind:"FALLBACK",reason:"JOIN_KEY_SEMANTICS_UNRESOLVED"};let n=e.sourceSemantics;if(e.hasEmptyValue)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let r=[...new Set(e.values)];if(r.some(a=>!$S(e.fieldType,a)))return{kind:"FALLBACK",reason:"JOIN_KEY_NON_CANONICAL_VALUE"};if(r.length===0)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let i=r[0],o=r[0];for(let a=1;a<r.length;a+=1){let s=r[a];lt(s,i,n)<0&&(i=s),lt(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Lu=Ul;function Ai(e,t,n=Lu){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function AE(e,t){let n=ee(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function Ct(e){if(e===null)return!1;switch(e.type){case"BINARY":return Ka(e.left);case"NULL_CHECK":return Ka(e.field);case"LOGICAL":return Ct(e.left)||Ct(e.right);case"NOT":case"GROUP":return Ct(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Ka(e){if(Array.isArray(e))return e.some(Ka);if(e===null||typeof e!="object")return!1;let t=e;return t.type==="FIELD"?t.field!=="$id":t.type==="SELECT"?!1:Object.values(t).some(Ka)}async function ut(e,t,n,r,i){let o=await Ge(e,t,n,r,{maxRecords:i.maxRecords,parallel:i.parallel,onLimit:i.onLimit??"error",onTruncate:i.onTruncate,onSearchAborted:i.onSearchAborted});return{records:o,metrics:{fetchedRows:o.length}}}async function Ga(e,t,n,r){let{records:i,metrics:o}=await ut(e,t,n,["$id"],r);return{ids:qp(i),metrics:o}}function Er(e,t){if(e.tableAlias!==null){let r=t.filter(o=>o.alias===e.tableAlias);if(r.length>1)return Object.freeze({status:"AMBIGUOUS"});if(r.length===0)return Object.freeze({status:"UNKNOWN"});let i=r[0];return i.fieldTypes.has(e.field)?TE(i,e.field):Object.freeze({status:"UNKNOWN"})}let n=t.filter(r=>r.fieldTypes.has(e.field));return n.length>1?Object.freeze({status:"AMBIGUOUS"}):n.length===0?Object.freeze({status:"UNKNOWN"}):TE(n[0],e.field)}function Du(e,t){if(e.left.type!=="FIELD")return Si();let n=Er(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Si();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Te(e,a=>{let s=Er(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:te({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Si();let o=Xo(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?Si():Object.freeze({relation:o,owner:n})}function IE(e,t){let n=Ae(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Er(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Te(e,o=>{let a=Er(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:te({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function wE(e,t){let n=new Set;Cn(e,n);let i=(e===null?[]:CE(fr(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=VS(e,t),a=new Set;if(o.serverFunctionCandidate?.variant==="WHOLE_WHERE_EXACT")for(let s of n)a.add(s);else for(let s of i)Cn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(YS(e,t)),fetchQueriesByAlias:new Map,...o})}function bE(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Pn(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||e.allKlikes.some(a=>!e.appliedKlikes.has(a)))return e;let n=new Map,r=(a,s)=>{let l=n.get(a);l?l.push(s):n.set(a,[s])};try{if(e.serverFunctionCandidate.variant==="EXACT_LEAF")for(let a of e.items)r(a.targetAlias,Rr(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(c=>c.alias===a.targetAlias&&c.appId===a.appId&&c.sourceKind==="APP"))return e;let l=Rr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!Pn(Ya(l),a.functionOccurrences))return e;r(a.targetAlias,l)}}catch{return e}let i=new Map;for(let[a,s]of n)i.set(a,s.length===1?s[0]:s.map(l=>`(${l})`).join(" and "));let o=e.serverFunctionConsumptions.map(a=>{let s=i.get(a.targetAlias);return s?Object.freeze({...a,fetchBinding:Object.freeze({status:"BOUND_TO_TARGET_FETCH",targetAlias:a.targetAlias,appId:a.appId,query:s})}):null});return o.some(a=>a===null)?e:Object.freeze({...e,serverFunctionCandidate:Object.freeze({...e.serverFunctionCandidate,fetchContract:"CONFIRMED"}),serverFunctionConsumptions:Object.freeze(o),fetchQueriesByAlias:i})}function mr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Pn(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||!e.serverFunctionConsumptions.every(t=>{let n=t.fetchBinding;return n!=="PENDING_STEP_2"&&n.status==="BOUND_TO_TARGET_FETCH"&&n.targetAlias===t.targetAlias&&n.appId===t.appId&&n.query===e.fetchQueriesByAlias.get(t.targetAlias)&&n.query.includes(t.serializedPredicate)}))return!1;for(let[t,n]of e.fetchQueriesByAlias){let r=e.serverFunctionConsumptions.filter(i=>i.targetAlias===t).flatMap(i=>[...i.functionOccurrences]);if(r.length>0&&!Pn(Ya(n),r))return!1}return!(e.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"&&(e.serverFunctionConsumptions.length!==1||e.serverFunctionConsumptions[0].consumption!=="whole-where"||e.residualWhere!==null||e.allKlikes.some(t=>!e.appliedKlikes.has(t))||NE(HS(e))!==e.allKlikes.length))}function VS(e,t){if(e===null)return SE(null);let n=Object.freeze([...Ae(e)]);if(n.length===0)return SE(e);let r=WS(e,t,n);if(r!==null)return r;let i=Va(e),o=[],a=new Set;for(let u of i){let p=IE(u,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,relation:"exact"},E;try{E=Rr(f,t)}catch{continue}let R=Ya(E);Pn(R,p.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),functionOccurrences:p.functionOccurrences,relation:p.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=Wa(e,a),l=Object.freeze(s===null?[]:[...Ae(s)]),c=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),d=Pn(n,c)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:d,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:c,residualWhere:s,residualServerFunctionOccurrences:l}}function WS(e,t,n){let r=$a(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Rr(i,t)}catch{return null}if(!Pn(Ya(o),n))return null;let a=new Set;if(Cn(e,a),NE(o)!==a.size)return null;let s=Object.freeze(Ba(e)),l=Object.freeze({targetAlias:r.alias,appId:r.appId,predicate:e,functionLeaves:s,functionOccurrences:Object.freeze([...n]),relation:"function-leaf-exact",consumption:"whole-where",serializedPredicate:o,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"});return{serverFunctionCandidate:Object.freeze({variant:"WHOLE_WHERE_EXACT",staticContract:"CONFIRMED",fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze([l]),allServerFunctionOccurrences:Object.freeze([...n]),adoptedServerFunctionOccurrences:Object.freeze([...n]),residualWhere:null,residualServerFunctionOccurrences:Object.freeze([])}}function $a(e,t){switch(e.type){case"BINARY":{if(Ae(e).length>0){let i=IE(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Du(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=$a(e.left,t),r=$a(e.right,t);return n!==null&&r!==null&&ja(n,r)?n:null}case"GROUP":case"NOT":return $a(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Ba(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return[...Ba(e.left),...Ba(e.right)];case"GROUP":case"NOT":return Ba(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function SE(e){let t=e===null?[]:Ae(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Va(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Va(e.left),...Va(e.right)]:[];case"GROUP":return Va(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Wa(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Wa(e.left,t),r=Wa(e.right,t);return n===null?r:r===null?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}if(e.type==="GROUP"){let n=Wa(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function Ya(e){let t=[];for(let n of Dr){let r=new RegExp(`\\b${n}\\s*\\(`,"g"),i;for(;(i=r.exec(e))!==null;)t.push({name:n,index:i.index})}return t.sort((n,r)=>n.index-r.index).map(n=>n.name)}function Pn(e,t){if(e.length!==t.length)return!1;let n=new Map;for(let r of e)n.set(r,(n.get(r)??0)+1);for(let r of t){let i=n.get(r);if(i===void 0)return!1;i===1?n.delete(r):n.set(r,i-1)}return n.size===0}function NE(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function HS(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function YS(e,t){if(e===null)return[];let n=new Set,r=i=>{if(i.type==="BINARY"){if(i.left.type!=="FIELD"){n.add("UNSAFE_RELATION");return}let o=Er(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Ha(i.right)){n.add("CROSS_TABLE_BINARY");return}Du(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(OE(i)){n.add("KLIKE_OR");return}let o=fr(i.left,t),a=fr(i.right,t);if(o.length!==1||a.length!==1||!ja(o[0].owner,a[0].owner)){n.add("CROSS_ALIAS_OR");return}}r(i.left),r(i.right);return}if(i.type==="GROUP"){r(i.expr);return}if(i.type==="NOT"){n.add("NOT");return}n.add("UNSAFE_RELATION")};return r(e),[...n].map(i=>Object.freeze({reason:i}))}function Rr(e,t){return Ti(e.predicate,e,t),z(e.predicate)}function Ti(e,t,n){switch(e.type){case"LOGICAL":Ti(e.left,t,n),Ti(e.right,t,n);return;case"GROUP":Ti(e.expr,t,n);return;case"NOT":Ti(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Ha(e.right))throw vu(t,"predicate contains a non-target or RHS field reference");let r=Er(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw vu(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw vu(t,"predicate shape is outside the Phase A serializer contract")}}function vu(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function fr(e,t){switch(e.type){case"BINARY":{let n=Du(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=fr(e.left,t),r=fr(e.right,t);if(e.op==="AND")return CE([...n,...r]);if(OE(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return ja(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:PE(i.relation,o.relation)}]:[]}case"GROUP":return fr(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function CE(e){let t=[];for(let n of e){let r=t.findIndex(o=>ja(o.owner,n.owner));if(r<0){t.push(n);continue}let i=t[r];t[r]={owner:i.owner,predicate:{type:"LOGICAL",op:"AND",left:i.predicate,right:n.predicate},relation:PE(i.relation,n.relation)}}return t}function TE(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Si(){return Object.freeze({relation:"unsafe"})}function ja(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function PE(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Cn(e,t){if(e!==null){if(Zt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Cn(e.left,t),Cn(e.right,t);return;case"NOT":case"GROUP":Cn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function OE(e){let t=new Set;return Cn(e,t),t.size>0}function Ha(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ha);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Ha)}function Uu(e,t){let n=zr(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}var jS=1e4,zS=500;function qS(e,t){if(e.key.type!=="FIELD_NAME")return;let n=Oe(e.key.name,t.keys());return n===void 0?void 0:t.get(n)}function JS(e,t){let n=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]);return Oe(t,n)!==void 0}function Ii(e){let{stmt:t}=e,n=[],r=t.columns.flatMap(a=>a.type==="WINDOW_COL"?a.orderBy:[]),i=[...t.orderBy,...r];for(let a of i){if(a.key.type!=="FIELD_NAME")continue;let s=qS(a,e.orderSemantics);if(!s){n.push("ORDER_KEY_UNRESOLVED");continue}s.fieldType==="KSQL_AMBIGUOUS"?n.push("ORDER_KEY_AMBIGUOUS"):s.compareMode==="unsupported"&&n.push("ORDER_KEY_UNSUPPORTED")}if(n.includes("ORDER_KEY_AMBIGUOUS"))throw new Error("ArgumentError: ORDER BY key is an ambiguous column reference (reason=ORDER_KEY_AMBIGUOUS). Qualify the key with its table alias.");if(n.includes("ORDER_KEY_UNSUPPORTED")||n.includes("ORDER_KEY_UNRESOLVED")){let a=n.includes("ORDER_KEY_UNSUPPORTED")?"ORDER_KEY_UNSUPPORTED":"ORDER_KEY_UNRESOLVED";throw new Error(`ArgumentError: ORDER BY key has no canonical comparison contract (reason=${a}).`)}return t.orderBy.length>0&&r.length===0&&t.orderBy.every(a=>a.key.type==="FIELD_NAME"&&a.key.name==="$id"&&!JS(t,a.key.name))||n.push("ORDER_KEY_NOT_REST_EQUIVALENT"),e.whereCapability!=="EXACT_PUSHDOWN"&&n.push("WHERE_NOT_EXACT"),e.staticMode!=="SIMPLE"&&n.push("QUERY_SHAPE_LOCAL"),(t.limit===null||t.limit<0||t.limit>zS)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>jS)&&n.push("OFFSET_NOT_REST_WINDOW"),t.limit!==null&&t.limit>e.maxRecords&&n.push("MAX_RECORDS_WINDOW"),e.hasKlike&&n.push("KLIKE_NOT_REST_WINDOW"),n.length===0?{kind:"CANONICAL_REST_TOP_N",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[]}:{kind:"CANONICAL_LOCAL",requiresCompleteInput:i.length>0,localOrderBy:t.orderBy.length>0,applyLocalOffsetLimit:t.orderBy.length>0,reasonCodes:[...new Set(n)]}}var XS=new Set(["RECORD_NUMBER","SINGLE_LINE_TEXT","NUMBER","CALC","DATE","DATETIME","TIME","CREATED_TIME","UPDATED_TIME","DROP_DOWN","RADIO_BUTTON","STATUS","LINK","CREATOR","MODIFIER"]);function QS(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function wi(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,c=e.orderSemantics.get(l);if(!c){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(QS(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!c.source||c.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}XS.has(c.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${c.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var za=class extends Error{constructor(t,n,r){super(`CursorCapacityError: host=${t} \u306E active cursor \u4E0A\u9650 ${n} \u306B ${r}ms \u4EE5\u5185\u3067\u7A7A\u304D\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002`),this.name="CursorCapacityError"}},qa=class extends Error{constructor(t){super("CursorCreateOutcomeUnknownError: Create Cursor \u306E\u6210\u5426\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u81EA\u52D5\u518D\u8A66\u884C\u305B\u305A\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002"),this.name="CursorCreateOutcomeUnknownError",this.cause=t}},Ja=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(`CursorCleanupWarning: Cursor \u306E\u89E3\u653E\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u7D50\u679C\u306F\u6709\u52B9\u3067\u3059\u304C\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002\u8A73\u7D30: ${n}`),this.name="CursorCleanupWarning",this.cause=t}};async function LE(e){let t=await e.client.openCursor({app:e.app,fields:e.fields.length>0?e.fields:void 0,query:e.query,size:500}),n=[],r=0,i,o;try{if(t.totalCount>e.offset)for(;n.length<e.limit;){let a=await t.nextPage();for(let s of a.records)if(r<e.offset)r+=1;else if(n.length<e.limit)n.push(s);else break;if(!a.next)break}}catch(a){throw i=a,a}finally{try{await t.close()}catch(a){i&&i instanceof Error?Object.defineProperty(i,"cursorCleanupError",{value:a,configurable:!0}):o=new Ja(a).message}}return{records:n,cleanupWarning:o}}function Mu(e){let t=[];e.where&&t.push(z(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var ZS={CALC:"RECORD",CATEGORY:"NON_RECORD",CHECK_BOX:"RECORD",CREATED_TIME:"RECORD",CREATOR:"RECORD",DATE:"RECORD",DATETIME:"RECORD",DROP_DOWN:"RECORD",FILE:"RECORD",GROUP:"NON_RECORD",GROUP_SELECT:"RECORD",LINK:"RECORD",MODIFIER:"RECORD",MULTI_LINE_TEXT:"RECORD",MULTI_SELECT:"RECORD",NUMBER:"RECORD",ORGANIZATION_SELECT:"RECORD",RADIO_BUTTON:"RECORD",RECORD_NUMBER:"RECORD",REFERENCE_TABLE:"NON_RECORD",RICH_TEXT:"RECORD",SINGLE_LINE_TEXT:"RECORD",STATUS:"PROCESS",STATUS_ASSIGNEE:"PROCESS",SUBTABLE:"RECORD",TIME:"RECORD",UPDATED_TIME:"RECORD",USER_SELECT:"RECORD"};function _E(e,t){let n=ZS[e];if(n===void 0)throw new Error(`ArgumentError: getFields returned unknown fieldType "${e}" for field "${t}". getFields must return only the fields from /k/v1/app/form/fields.json; $id and $revision are synthesized by the engine and must not be added.`);return n}async function vE(e,t,n){if(t!=null)return["_pid","_rid","_idx",...e.filter(s=>s.inSubtable===!0&&s.subtableCode===t).map(s=>s.code)];let r=e.filter(s=>!s.inSubtable),o=r.some(s=>_E(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=_E(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var yr=new WeakMap,xu=new WeakMap,eT="\u6BD4\u8F03\u6761\u4EF6\u3067\u53C2\u7167\u3057\u305F\u96C6\u8A08\u5024\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u30EA\u30B9\u30C8\u306B\u540C\u3058\u96C6\u8A08\u5F0F\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002";function Bu(e){if(xu.has(e))return e;let t;return t=new Proxy(e,{get(n,r,i){return typeof r!="string"||Object.prototype.hasOwnProperty.call(n,r)?Reflect.get(n,r,i):Ie(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&Ie(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=Ie(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),xu.set(t,e),t}function ct(e){return xu.get(e)??e}function VE(e){let t=yr.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},yr.set(e,t)),t}function pt(e,t,n,r=[]){let i=VE(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function Be(e,t){return yr.get(e)?.byColumn.get(t)}function Ie(e,t){return yr.get(e)?.byLookupKey.get(t)}function $t(e,t){return yr.has(e)?void 0:e[t]}function DE(e,t,n){if(!n||t.length===0)return;let r=new Set,i=o=>{if(o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="FIELD"&&a.aggregateRef!==void 0){let s=a.aggregateRef;r.add(fe(s.func,s.distinct,s.arg));return}a.type==="SELECT"||a.type==="SCALAR_SUBQUERY"||Object.values(a).forEach(i)};i(e),[...r].some(o=>t.some(a=>Ie(a,o)===void 0&&a[o]===void 0))&&n.add(eT)}function tT(e){let t=yr.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=dl(e);return r&&pl(n,r.includedCanonicalIds),n}function Bt(e,t){let n={};for(let[r,i]of Object.entries(e)){let o=i.value,a=o==null?"":typeof o=="string"?o:JSON.stringify(o);t&&(n[`${t}.${r}`]=a),n[r]=a}return n}function nT(e,t,n,r={}){if(n.type==="CROSS"){let p=Ai(e.length,t.length);if(!p.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${p.outputRows} \u884C\uFF08\u5DE6 ${p.leftRows} \u884C \xD7 \u53F3 ${p.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${p.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let E of e)for(let R of t)f.push({...E,...R});return f}let{on:i,type:o}=n,a=rT(i,e,t,r.leftColumns,r.rightColumns),s=Fu(a.left),l=Fu(a.right);if(ME(e,s,r.leftColumns),ME(t,l,r.rightColumns),o==="RIGHT"){let p=new Map;for(let R of e){let m=R[s]??"",y=p.get(m);y?y.push(R):p.set(m,[R])}let f={};for(let R of r.leftColumns??Object.keys(e[0]??{}))f[R]="";let E=[];for(let R of t){let m=R[l]??"",y=p.get(m)??[];if(y.length>0)for(let g of y)E.push({...g,...R});else E.push({...f,...R})}return E}let c=new Map;for(let p of t){let f=p[l]??"",E=c.get(f);E?E.push(p):c.set(f,[p])}let d=[],u={};for(let p of r.rightColumns??Object.keys(t[0]??{}))u[p]="";for(let p of e){let f=p[s]??"",E=c.get(f)??[];if(E.length>0)for(let R of E)d.push({...p,...R});else o==="LEFT"&&d.push({...p,...u})}return d}function Fu(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function rT(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=UE(o),l=UE(a),c=p=>{if(p.tableAlias){let m=s.has(p.tableAlias),y=l.has(p.tableAlias);if(m!==y)return m?"LEFT":"RIGHT"}let f=Fu(p),E=o.includes(f),R=a.includes(f);return E!==R?E?"LEFT":"RIGHT":"UNKNOWN"},d=c(e.left),u=c(e.right);return d==="RIGHT"&&u==="LEFT"?{left:e.right,right:e.left}:e}function UE(e){let t=new Set;for(let n of e){let r=n.indexOf(".");r>0&&t.add(n.slice(0,r))}return t}function ME(e,t,n){if(e.length>0?e.some(i=>!Object.prototype.hasOwnProperty.call(i,t)):n!==void 0&&!n.includes(t))throw new Error(`ArgumentError: JOIN key ${t} is not available in the materialized table.`)}function iT(e,t,n,r,i,o={}){return t===null?e:e.filter(a=>le(t,a,n,r,i,o))}function Qa(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&Se(t.expr)||t.type==="CASE_COL"&&Se(t.expr)||t.type==="STRFUNC_COL"&&vi(t.expr)||t.type==="SCALAR_VALUE_COL"&&cn(t.expr))}function oT(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let c=t.map((u,p)=>sT(u,l,i?.items[p],n,o)).join("\0"),d=a.get(c);d?d.push(l):a.set(c,[l])}a.size===0&&t.length===0&&Qa(n)&&a.set("",[]);let s=[];for(let l of a.values()){let c=Bu({...l[0]});for(let d of t)d.type==="ARITH_KEY"?c[_i(d.expr)]=String(Ee(d.expr,l[0],o.evaluationContext)):d.type==="FUNC_KEY"&&(c[pn(d.expr)]=he(d.expr,l[0],void 0,void 0,o.evaluationContext));WE(c,l,n,r,o.evaluationContext),s.push(c)}return s}function aT(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let c={children:new Map},d=[];for(let p of e){let f=c;for(let E of l.items){let R=kE(E,p),m=f.children.get(R);m||(m={children:new Map},f.children.set(R,m)),f=m}f.rows||(s(),f.rows=[],d.push(f.rows)),f.rows.push(p)}e.length===0&&l.items.length===0&&(s(),c.rows=[],d.push(c.rows));let u=new Set(l.items.map(p=>p.canonicalId));for(let p of d){let f=Bu({...p[0]}),E=new Map;for(let R of l.items)E.has(R.canonicalId)||E.set(R.canonicalId,kE(R,p[0]));for(let R of t.allItems){let m=E.get(R.canonicalId)??"";f[R.directKey]=m,R.unqualifiedBridgeKey!==null&&(f[R.unqualifiedBridgeKey]=m)}WE(f,p,n,r,i.evaluationContext),pl(f,u),o.push(f)}}return o}function kE(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function WE(e,t,n,r,i={}){for(let[o,a]of n.entries())if(a.type==="AGGREGATE"){let s=fe(a.func,a.distinct,a.arg),l=String(Pi(a.func,a.distinct,a.arg,a.separator,t,r,i));pt(e,o,l,a.alias?[a.alias,s]:[s])}else if(a.type==="ARITH_AGG_COL"){bi(e,t,a.expr,r,i);let s=a.alias??Oi(a.expr);pt(e,o,String(Ni(a.expr,t,r,i)),[s])}else if(a.type==="ARITH_COL"&&Se(a.expr)){bi(e,t,a.expr,r,i);let s=a.alias??_i(a.expr),l=$u(a.expr,t,r);pt(e,o,String(Ee(l,e,i)),[s])}else if(a.type==="STRFUNC_COL"&&vi(a.expr)){bi(e,t,a.expr,r,i);let s=a.alias??pn(a.expr),l=es(a.expr,t,r);pt(e,o,he(l,e,void 0,void 0,i),[s])}else if(a.type==="SCALAR_VALUE_COL"&&cn(a.expr)){bi(e,t,a.expr,r,i);let s=a.alias??Pt(a.expr),l=Ci(a.expr,t,r);pt(e,o,String(Le(l,e,void 0,void 0,i)),[s])}else if(a.type==="CASE_COL"&&Se(a.expr)){bi(e,t,a.expr,r,i);let s=qE(a.expr,t,r),c=He(s,e,void 0,d=>d.aggregateRef?YE(d.aggregateRef,r):void 0,i);pt(e,o,c,[Ku(a.alias,o)])}}function Ku(e,t){return e??`__ksql_case_column_${t}`}function Gu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Gu(r,t));return}let n=e;if(n.type==="AGG_REF"){t.push(n);return}n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"||Object.values(n).forEach(r=>Gu(r,t))}function bi(e,t,n,r,i={}){let o=[];Gu(n,o);for(let a of o){let s=fe(a.func,a.distinct,a.arg);if(Ie(e,s)!==void 0)continue;let l=String(Pi(a.func,a.distinct,a.arg,a.separator,t,r,i));VE(e).byLookupKey.set(s,l)}}function sT(e,t,n,r,i){if(e.type==="FIELD_NAME"){if(!n)return t[e.name]??"";if(n.kind==="PHYSICAL")return t[n.runtimeKey]??"";if(n.kind==="ALIAS_SAFE"){let o=r[n.columnIndex];if(!o)throw new Error(`InternalError: GROUP BY alias column index ${n.columnIndex} is out of range.`);let a=Xa(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?he(e.expr,t,void 0,void 0,i.evaluationContext):String(Ee(e.expr,t,i.evaluationContext))}function Pi(e,t,n,r,i,o,a={}){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let s=HE(e,n,i,a).filter(E=>E!==null),l=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",c=l?s.map(E=>{let R=Number(E);if(!Number.isFinite(R))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${E}`);return R}):null,d=t?l?[...new Set(c)]:[...new Set(s)]:l?c:s;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?Li(n,o):void 0,p=typeof u=="string"?W(u):u??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?W("string"):W("number"));if(e==="MODE"){if(s.length===0)return"";let E=new Map;for(let y of s)E.set(y,(E.get(y)??0)+1);let R="",m=0;for(let[y,g]of E){if(g>m){R=y,m=g;continue}if(g!==m)continue;let S=lt(y,R,p);(S<0||S===0&&un(y,R)<0)&&(R=y)}return R}if(e==="MIN"||e==="MAX"){let E=d;if(E.length===0)return"";let R=E[0];for(let m of E.slice(1)){let y=lt(m,R,p);(e==="MAX"&&y>0||e==="MIN"&&y<0)&&(R=m)}return R}let f=l?d:d.map(Number);switch(e){case"SUM":return f.reduce((E,R)=>E+R,0);case"AVG":return f.length===0?0:f.reduce((E,R)=>E+R,0)/f.length;case"MEDIAN":{if(f.length===0)return"";let E=[...f].sort((m,y)=>m-y),R=Math.floor(E.length/2);return E.length%2===1?E[R]:(E[R-1]+E[R])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let E=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(f.length===0||E&&f.length<2)return"";let R=f[0],m=0,y=0,g=0;for(let A of f){let I=A-R;m++;let N=I-y;y+=N/m,g+=N*(I-y)}let S=Math.max(0,g/(E?m-1:m));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(S):S}}}function HE(e,t,n,r={}){return n.map(i=>{let o=ct(i),a;if(t.type==="FIELD_REF"){let s=o[t.field];if(s===void 0||s===""&&e!=="MIN"&&e!=="MAX")return null;a=s}else if(t.type==="ARITH"||t.type==="NUMBER"){let s=Ee(t,o,r);if(isNaN(s))return null;a=String(s)}else{let s=Ft(t,o,void 0,void 0,r);if(s===null||s===""&&e!=="MIN"&&e!=="MAX"||typeof s=="number"&&Number.isNaN(s))return null;a=String(s)}return a})}function lT(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function Ni(e,t,n,r={}){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Pi(e.func,e.distinct,e.arg,e.separator,t,n,r));if(e.type==="AGG_GROUP_KEY"){let a=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number($e(t[0]??{},a))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let i=Ni(e.left,t,n,r),o=Ni(e.right,t,n,r);switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}function Oi(e){return gt(e)}function Li(e,t){if(e.type==="FIELD_REF")return t?.(lT(e.field))??"string";if(e.type==="FIELD")return t?.(e)??"string";if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return"number";if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return"string";if(e.type==="STRING_FUNC")return At(e,o=>t?.(o));let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Li(o,t));if(n.length===0||n.some(o=>o===void 0))return"string";let r=n.map(o=>typeof o=="string"?o:o.compareMode==="number"||o.compareMode==="recordNumber"?"number":"string");if(!r.every(o=>o===r[0]))return"string";let i=n[0];return n.every(o=>JSON.stringify(o)===JSON.stringify(i))?i:r[0]}function YE(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return W("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return W("string");let n=e.arg.type==="WILDCARD"?"string":Li(e.arg,t)??"string";return typeof n=="string"?W(n):n}function uT(e,t,n,r,i={}){return t===null?e:e.filter(o=>le(t,tT(o),n,void 0,r,i))}function cT(e,t,n,r,i,o={}){if(e.length===0)return e;let a=pT(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i,evaluationContext:o}),s=new Set;return e.filter(l=>{let c=a(l);return s.has(c)?!1:(s.add(c),!0)})}function pT(e,t,n){let r=[];if(t.some(a=>a.type==="WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))a.add(l);r=[...a].sort()}let i=[];if(t.some(a=>a.type==="PARENT_WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))l.startsWith("_p.")&&a.add(l);i=[...a].sort()}let o={...n,wildcardKeys:r,parentWildcardKeys:i};return a=>JSON.stringify(hT(t,a,o))}function Vu(e,t,n,r,i,o,a={}){return t.length===0?e:jE(e,t,n,r,i,o,a).rows.map(s=>s.row)}function jE(e,t,n,r,i,o,a={}){let s=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:W("number")};if(d.type==="FUNC_KEY")return{semantics:W(At(d.expr,f=>i?.get(f.tableAlias?`${f.tableAlias}.${f.field}`:f.field)))};if(d.type==="GROUPING_KEY")return{semantics:W("number")};let u=i?.get(d.name);if(u)return{semantics:u};let p=n?.get(d.name);return p?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:p}}:{semantics:W(r?.get(d.name)??"string")}}),l=e.map(d=>({row:d,keys:t.map(({key:u},p)=>({s:ET(u,d,o,a)}))})),c=(d,u)=>dT(d,u,t,s);return l.sort(c),{rows:l,compare:c}}function dT(e,t,n,r){for(let i=0;i<n.length;i++){let o=fT(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function fT(e,t,n){return lt(e.s,t.s,n.semantics)}function ET(e,t,n,r={}){let i=ct(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??Ie(t,e.name)??i[e.name]??"";case"ARITH_KEY":return String(Ee(e.expr,i,r));case"FUNC_KEY":return he(e.expr,i,void 0,void 0,r);case"GROUPING_KEY":return er(e.ref,t)}}function Wu(e,t,n,r,i={}){let o=new Map;for(let[a,s]of e.entries()){if(!("alias"in s)||s.alias===null)continue;let l=s.alias;switch(s.type){case"FIELD":o.set(l,c=>$e(ct(c),s.field));break;case"LITERAL_COL":o.set(l,()=>s.value);break;case"AGGREGATE":{o.set(l,c=>Be(c,a)??"0");break}case"ARITH_AGG_COL":{o.set(l,c=>Be(c,a)??"0");break}case"WINDOW_COL":o.set(l,c=>Be(c,a)??"");break;case"ARITH_COL":o.set(l,c=>Se(s.expr)?Be(c,a)??"":String(Ee(s.expr,ct(c),i)));break;case"STRFUNC_COL":{let c=pn(s.expr);o.set(l,d=>vi(s.expr)?Be(d,a)??Ie(d,c)??he(s.expr,ct(d),n,r,i):he(s.expr,ct(d),n,r,i));break}case"CASE_COL":o.set(l,c=>Se(s.expr)?Be(c,a)??"":He(s.expr,ct(c),n,r,i));break;case"SCALAR_VALUE_COL":{let c=Pt(s.expr);o.set(l,d=>cn(s.expr)?Be(d,a)??Ie(d,c)??"":String(Le(s.expr,ct(d),n,r,i)));break}case"SCALAR_SUBQUERY_COL":o.set(l,()=>t?.get(a)??"");break;case"GROUPING_COL":o.set(l,c=>er(s.ref,c));break;case"VARIABLE_COL":break}}return(a,s)=>{let l=Oe(a,o.keys());return l===void 0?void 0:o.get(l)?.(s)}}function Hu(e,t,n,r,i,o,a={}){let s=t.map((l,c)=>({column:l,columnIndex:c})).filter(l=>l.column.type==="WINDOW_COL");if(e.length===0||s.length===0)return e;for(let l=0;l<e.length;l++)e[l]=Bu(e[l]);for(let{column:l,columnIndex:c}of s){let d=new Map;for(let u of e){let p=JSON.stringify(l.partitionBy.map(E=>gT(u,E))),f=d.get(p);f?f.push(u):d.set(p,[u])}for(let u of d.values()){let p=jE(u,l.orderBy,n,r,i,void 0,a),f=p.rows;if(bo(l)){yT(l,c,p,o,a);continue}if(rl(l)){mT(l,c,f,a);continue}if(!nl(l))throw new Error(`InternalError: unknown window kind ${l.windowKind??"undefined"}`);let E=1,R=1;for(let m=0;m<f.length;m++){m>0&&p.compare(f[m-1],f[m])!==0&&(E=m+1,R++);let y=l.func==="ROW_NUMBER"?m+1:l.func==="RANK"?E:R;pt(f[m].row,c,String(y),[l.alias])}}}return e}function RT(e,t,n={}){let r=Ft(e,ct(t),void 0,void 0,n);return r==null||typeof r=="number"&&!Number.isFinite(r)?"":String(r)}function mT(e,t,n,r={}){let i=n.map(a=>RT(e.arg,a.row,r)),o=e.valueFunc==="LAG"?-1:1;for(let a=0;a<n.length;a++){let s=a+o*e.offset;pt(n[a].row,t,s>=0&&s<i.length?i[s]:"",[e.alias])}}function yT(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:HE(e.aggFunc,e.arg,o.map(f=>f.row),i),s=e.arg.type==="WILDCARD"?void 0:Li(e.arg,r),l=typeof s=="string"?W(s):s??W("string"),c=[],d=0,u=0,p;for(let f=0;f<o.length;f++){let E=a?.[f]??null;if(e.arg.type==="WILDCARD")d++;else if(E!==null)if(e.aggFunc==="COUNT")d++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")u+=Number(E),d++;else if(p===void 0)p=E;else{let m=lt(E,p,l);(e.aggFunc==="MAX"&&m>0||e.aggFunc==="MIN"&&m<0)&&(p=E)}let R=e.aggFunc==="COUNT"?d:e.aggFunc==="SUM"?u:e.aggFunc==="AVG"?d===0?0:u/d:p??0;c.push(String(R))}if(e.frame===null){let f=c[c.length-1];for(let E of o)pt(E.row,t,f,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let f=0;f<o.length;){let E=f;for(;E+1<o.length&&n.compare(o[E],o[E+1])===0;)E++;for(let R=f;R<=E;R++)pt(o[R].row,t,c[E],[e.alias]);f=E+1}return}for(let f=0;f<o.length;f++)pt(o[f].row,t,c[f],[e.alias])}function gT(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return $e(ct(e),n)}function Za(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Xa(e,t,n,r={}){let i=ct(t);switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(i)).map(a=>[a,i[a]!==void 0?i[a]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(i).filter(a=>a.startsWith("_p.")).sort()).map(a=>[a,i[a]!==void 0?i[a]:null])};case"FIELD":return $e(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=fe(e.func,e.distinct,e.arg);return Be(t,n)??Ie(t,e.alias??o)??Ie(t,o)??$t(t,e.alias??o)??$t(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??Oi(e.expr);return Be(t,n)??Ie(t,o)??$t(t,o)??"0"}case"ARITH_COL":return Se(e.expr)?Be(t,n)??Ie(t,e.alias??_i(e.expr))??"":String(Ee(e.expr,i,r.evaluationContext));case"CASE_COL":return Se(e.expr)?Be(t,n)??Ie(t,Ku(e.alias,n))??$t(t,Ku(e.alias,n))??"":He(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return er(e.ref,t);case"STRFUNC_COL":{let o=pn(e.expr);return vi(e.expr)?Be(t,n)??Ie(t,e.alias??o)??Ie(t,o)??$t(t,e.alias??o)??$t(t,o)??he(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext):he(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext)}case"SCALAR_VALUE_COL":{let o=Pt(e.expr);return cn(e.expr)?Be(t,n)??Ie(t,e.alias??o)??Ie(t,o)??$t(t,e.alias??o)??$t(t,o)??"":String(Le(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return Be(t,n)??Ie(t,e.alias)??$t(t,e.alias)??""}}function hT(e,t,n={}){return e.map((r,i)=>{let o=Xa(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function On(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let E=e.map(m=>{let y=$E(FE(m),a),g=Xa(t[0],m,0,{wildcardKeys:Object.keys(y)}),S={};if(typeof g!="string")for(let[A,I]of g.entries)I!==null&&(S[A]=I);return S}),R=E.length>0?Object.keys(E[0]):[...i??[]];return{rows:E,columns:R}}let l=IT(t),c=TT(t),d=t.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD"),u=d?null:AT(t,l,c),p=u??[];return d&&e.length===0?{rows:[],columns:ST(t,l,c)}:{rows:e.map((E,R)=>{let m={},y={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys($E(FE(E),a)),parentWildcardKeys:Object.keys(E).filter(g=>g.startsWith("_p.")).sort()};for(let[g,S]of t.entries()){let A=Xa(S,E,g,y);switch(S.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof A!="string")for(let[I,N]of A.entries)N!==null&&(m[I]=N);break;case"PARENT_WILDCARD":{if(typeof A!="string")for(let[I,N]of A.entries)N!==null&&(m[I]=N),R===0&&p.push(I);break}case"FIELD":{let I=u?.[g]??S.alias??l.get(g)??S.field;m[I]=A,u===null&&R===0&&p.push(I);break}case"LITERAL_COL":{let I=u?.[g]??S.alias??`'${S.value}'`;m[I]=A,u===null&&R===0&&p.push(I);break}case"AGGREGATE":{let I=fe(S.func,S.distinct,S.arg),N=u?.[g]??S.alias??I;m[N]=A,u===null&&R===0&&p.push(N);break}case"ARITH_AGG_COL":{let I=u?.[g]??S.alias??Oi(S.expr);m[I]=A,u===null&&R===0&&p.push(I);break}case"ARITH_COL":{let I=u?.[g]??S.alias??_i(S.expr);m[I]=A,u===null&&R===0&&p.push(I);break}case"CASE_COL":{let I=u?.[g]??S.alias??c.get(g)??"case";m[I]=A,u===null&&R===0&&p.push(I);break}case"GROUPING_COL":{let I=u?.[g]??S.alias??`GROUPING(${S.ref.field.tableAlias?`${S.ref.field.tableAlias}.`:""}${S.ref.field.field})`;m[I]=A,u===null&&R===0&&p.push(I);break}case"STRFUNC_COL":{let I=u?.[g]??S.alias??pn(S.expr);m[I]=A,u===null&&R===0&&p.push(I);break}case"SCALAR_VALUE_COL":{let I=u?.[g]??S.alias??Pt(S.expr);m[I]=A,u===null&&R===0&&p.push(I);break}case"SCALAR_SUBQUERY_COL":{let I=u?.[g]??S.alias??"(subquery)";m[I]=A,u===null&&R===0&&p.push(I);break}case"WINDOW_COL":{let I=u?.[g]??S.alias;m[I]=A,u===null&&R===0&&p.push(I);break}}}return m}),columns:p}}function AT(e,t,n){return e.map((r,i)=>zE(r,i,t,n))}function ST(e,t,n){let r=[],i=new Set;for(let[o,a]of e.entries()){if(a.type==="WILDCARD"||a.type==="PARENT_WILDCARD")continue;let s=zE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function zE(e,t,n,r){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??fe(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Oi(e.expr);case"ARITH_COL":return e.alias??_i(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??pn(e.expr);case"SCALAR_VALUE_COL":return e.alias??Pt(e.expr);case"GROUPING_COL":return e.alias??`GROUPING(${e.ref.field.tableAlias?`${e.ref.field.tableAlias}.`:""}${e.ref.field.field})`;case"SCALAR_SUBQUERY_COL":return e.alias??"(subquery)";case"WINDOW_COL":return e.alias;case"WILDCARD":case"PARENT_WILDCARD":throw new Error("internal: computeOutputKey received a wildcard column")}}function TT(e){let t=new Set(e.flatMap(i=>"alias"in i&&i.alias!==null?[i.alias]:[])),n=new Map,r=1;for(let[i,o]of e.entries()){if(o.type!=="CASE_COL"||o.alias!==null)continue;let a;do a=r===1?"case":`case_${r}`,r++;while(t.has(a));t.add(a),n.set(i,a)}return n}function IT(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=xE(r.field);t.set(i,(t.get(i)??0)+1)}let n=new Map;for(let[r,i]of e.entries()){if(i.type!=="FIELD"||i.alias)continue;let o=xE(i.field),a=(t.get(o)??0)>1,s=i.field.includes(".")&&!i.field.startsWith("_p.");n.set(r,a&&s?i.field:o)}return n}function xE(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function FE(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function _i(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?q(n):n.type==="STRING_FUNC"?pn(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function pn(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Oi(n):n.type==="VARIABLE"?`@${n.name}`:Pt(n));return`${e.func}(${t.join(",")})`}function Pt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return pn(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${Pt(e.left)}${e.op}${Pt(e.right)}`;case"CONCAT_OP":return`${Pt(e.left)}||${Pt(e.right)}`}}function wT(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:cn(e)}function cn(e){return e.type==="STRING_FUNC"?vi(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?cn(e.left)||cn(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>KE(t.result))||e.elseResult!==null&&KE(e.elseResult):!1}function KE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:cn(e)}function vi(e){return e.args.some(t=>wT(t))}function bT(e,t,n){if(e.type==="AGG_REF"){let r=Pi(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=Ni(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}if(e.type==="AGG_GROUP_KEY"){let r=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return{type:"NUMBER",value:Number($e(t[0]??{},r)),raw:$e(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?es(e,t,n):Ci(e,t,n)}function Ci(e,t,n){return e.type==="STRING_FUNC"?es(e,t,n):e.type==="CASE_WHEN"?qE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Ci(e.left,t,n),right:Ci(e.right,t,n)}:e}function $u(e,t,n){return e.type==="STRING_FUNC"?es(e,t,n):e.type==="ARITH"?{...e,left:$u(e.left,t,n),right:$u(e.right,t,n)}:e}function GE(e,t,n){if(e.type==="AGG_REF"){let r=Pi(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=Ni(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:Ci(e,t,n)}function qE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:GE(r.result,t,n)})),elseResult:e.elseResult===null?null:GE(e.elseResult,t,n)}}function es(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>bT(r,t,n))}}function $E(e,t){if(!t||t.size===0)return e;let n={};for(let[r,i]of Object.entries(e))[...t].some(o=>r.startsWith(`${o}.`))||(n[r]=i);return n}function BE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function ku(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function NT(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,W("number"));else if(r.type==="WINDOW_COL"){if(nl(r)||bo(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,W("number"));else if((bo(r)||rl(r))&&r.arg.type!=="WILDCARD"){let i=Li(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?W(i):i)}}else r.type==="AGGREGATE"?r.func==="COUNT"||r.func==="SUM"||r.func==="AVG"||r.func==="STDDEV_POP"||r.func==="STDDEV_SAMP"||r.func==="VAR_POP"||r.func==="VAR_SAMP"||r.func==="MEDIAN"?n.set(r.alias,W("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,W("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,W("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,W(At(r.expr,i=>t?.(i))));return n}function Yu(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:c,havingFieldSemanticsResolver:d,aggregateSortKindResolver:u,appliedKlikes:p,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:m,plainGroupByPlan:y,warnings:g,evaluationContext:S}=e,A=NT(t.columns,u);for(let[P,O]of a??[])A.set(P,O);let I=[],N=t.from.alias;I=(n.get(N)??n.get(null)??[]).map(P=>Bt(P,N));let b=ku(BE(E?.get(N),N),void 0,I);for(let P of t.joins){let O=P.table.alias,h=(n.get(O)??[]).map(_=>Bt(_,O)),w=ku(BE(E?.get(O),O),void 0,h);I=nT(I,h,P,{leftColumns:b,rightColumns:w}),b=ku(b,w,I)}let M=e.residualWhere!==void 0?e.residualWhere:t.where;I=iT(I,M,s,p,l,S);let D=ee(t);if(D.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");I=aT(I,m,t.columns,u,{maxGeneratedRows:5e4,evaluationContext:S})}else(D.type==="PLAIN"||Qa(t.columns))&&(I=oT(I,D.type==="PLAIN"?D.allItems:[],t.columns,u,D.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:S}));DE(t.columns,I,g);let k=P=>P.aggregateRef?YE(P.aggregateRef,u):d?.(P);return DE(t.having,I,g),I=uT(I,t.having,c,k,S),I=Hu(I,t.columns,i,o,A,u,S),t.distinct&&(I=cT(I,t.columns,r,s,l,S)),I=Vu(I,t.orderBy,i,o,A,Wu(t.columns,r,s,l,S),S),I=Za(I,t.limit,t.offset),On(I,t.columns,r,s,f,l,R,S)}function JE(e,t){let n=[];for(let r of e){let i=ju(r.$id?.value),o=CT(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[c,d]of Object.entries(r)){if(c===t)continue;let u=ju(d?.value);l[`_p.${c}`]={value:u}}for(let[c,d]of Object.entries(s.value??{}))l[c]={value:ju(d?.value)};n.push(l)}}return n}function CT(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function ju(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}var Xe={HEADER_UNKNOWN_KEY:"KSQL1001",HEADER_DUPLICATE_KEY:"KSQL1002",HEADER_INVALID_NAME:"KSQL1003",HEADER_INVALID_DEPENDS_ON:"KSQL1004",HEADER_INVALID_TIMEOUT:"KSQL1005",HEADER_INVALID_DIALECT:"KSQL1006",LOGICAL_APP_UNRESOLVED:"KSQL1101",LEX_ERROR:"KSQL1201",PARSE_ERROR:"KSQL1202",DIALECT1_REQUIRED:"KSQL1203",UPDATE_KEY_COMPOSITE:"KSQL1301",UPDATE_KEY_FIELD_TYPE:"KSQL1302",UPDATE_KEY_NOT_UNIQUE:"KSQL1303",SUBTABLE_DML_FORBIDDEN:"KSQL1304",BARE_INSERT_NOT_IDEMPOTENT:"KSQL1305",SERVER_TIME_FUNCTION_NOT_AS_OF:"KSQL1306"};function PT(e,t){let n=Math.max(0,Math.min(t,e.length)),r=1,i=1;for(let o=0;o<n;o++){let a=e[o];a==="\r"?(e[o+1]===`
3
+ `;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new ke("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r,end:this.pos}}};function Bl(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Zh(t)}function cf(e){let t=e.codePointAt(0);return Bl(e)||t>=48&&t<=57}function ur(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Zh(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var df=20,Wl=Object.freeze({UPPER:"UPPER",LOWER:"LOWER",TRIM:"TRIM",LTRIM:"LTRIM",RTRIM:"RTRIM",LENGTH:"LENGTH",LENGTH_CHAR:"LENGTH_CHAR",SUBSTRING:"SUBSTRING",SUBSTR:"SUBSTRING",LEFT:"LEFT",RIGHT:"RIGHT",INSTR:"INSTR",CONCAT:"CONCAT",REPLACE:"REPLACE",REGEXP_LIKE:"REGEXP_LIKE",REGEXP_REPLACE:"REGEXP_REPLACE",REGEXP_SUBSTR:"REGEXP_SUBSTR",TRANSLATE:"TRANSLATE",COALESCE:"COALESCE",ISNULL:"ISNULL",NULLIF:"NULLIF",GREATEST:"GREATEST",LEAST:"LEAST",LPAD:"LPAD",RPAD:"RPAD",ROUND:"ROUND",FLOOR:"FLOOR",CEIL:"CEIL",CEILING:"CEIL",TRUNCATE:"TRUNCATE",TRUNC:"TRUNCATE",ABS:"ABS",MOD:"MOD",POWER:"POWER",POW:"POWER",SQRT:"SQRT",FORMAT:"FORMAT",CAST:"CAST",CONVERT:"CAST",YEAR:"YEAR",MONTH:"MONTH",DAY:"DAY",DAYOFWEEK:"DAYOFWEEK",QUARTER:"QUARTER",WEEK:"WEEK",DATE_FORMAT:"DATE_FORMAT",DATEDIFF:"DATEDIFF",DATE_ADD:"DATE_ADD",LAST_DAY:"LAST_DAY"}),Ef=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),ni=Object.freeze({COUNT:"COUNT",SUM:"SUM",AVG:"AVG",MAX:"MAX",MIN:"MIN",GROUP_CONCAT:"GROUP_CONCAT",STDDEV_POP:"STDDEV_POP",STDDEV_SAMP:"STDDEV_SAMP",VAR_POP:"VAR_POP",VAR_SAMP:"VAR_SAMP",MEDIAN:"MEDIAN",MODE:"MODE"}),bP=Object.freeze(Object.values(ni).filter(e=>e!==void 0)),eA=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),tA=new Set(eA);function nA(e){return tA.has(e)}var Rf=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),ri=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function ff(e){return ri[e]!==void 0}var rA=Object.freeze([...Oo]),iA=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),oA=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function aA(e){return iA.has(e)}function sA(e){return oA.has(e)}function lA(e){return Number.isInteger(e)&&e>=1&&e<=31}var NP=Object.freeze(Array.from(new Set([...Object.keys(Wl),...Ef,...Object.keys(ni),...Object.keys(Rf),...Object.keys(ri),...rA,"IF"]))),uA=new Set(["IDENT","BIDENT","COUNT","SUM","AVG","MAX","MIN","GROUP_CONCAT","STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE","ROW_NUMBER","RANK","DENSE_RANK","TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION","UPPER","LOWER","TRIM","LTRIM","RTRIM","LENGTH","LENGTH_CHAR","SUBSTRING","SUBSTR","CONCAT","REPLACE","TRANSLATE","COALESCE","NULLIF","ISNULL","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","LEFT","RIGHT","INSTR","GREATEST","LEAST","LPAD","RPAD","CAST","CONVERT","FORMAT","ROUND","FLOOR","CEIL","CEILING","TRUNCATE","TRUNC","ABS","MOD","POWER","POW","SQRT","YEAR","MONTH","DAY","DAYOFWEEK","QUARTER","WEEK","DATE_FORMAT","DATEDIFF","DATE_ADD","LAST_DAY","IF"]);function cA(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!uA.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.rawMessage=n;this.token=r;this.name="ParseError"}},Vl=["\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306E\u7D50\u679C\u306F\u540C\u3058 SELECT \u306E\u5F0F\u3067\u306F\u4F7F\u3048\u307E\u305B\u3093\u3002"," \xD7 SELECT ROUND(SUM(x) OVER (), 1) AS a FROM t"," \u25CB WITH w AS (SELECT SUM(x) OVER () AS \u7DCF\u8A08 FROM t) SELECT ROUND(\u7DCF\u8A08, 1) AS a FROM w","\u30A6\u30A3\u30F3\u30C9\u30A6\u7D50\u679C\u3092\u5217\u3068\u3057\u3066\u51FA\u3057\u3001\u305D\u308C\u3092\u4F7F\u3046\u5F0F\u306F\u6B21\u306E\u6BB5\uFF08CTE \u307E\u305F\u306F\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\uFF09\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044"].join(`
4
+ `),ln=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.bareTempTableNames=new Set;this.tempTableRefs=[];this.aggregateGroupKeyTokens=new WeakMap;this.activeCteDefinition=null;this.provisionalRecursiveCte=null;this.allowSelectArithVariable=!1;if(n.dialect1)for(let r=0;r+1<t.length;r++){let i=t[r];if(i.kind!=="VARIABLE"||t[r+1].kind!=="(")continue;let o=i.value.slice(1).toUpperCase();if(!ei(o))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${pa.map(a=>`@${a}`).join("/")} \u3067\u3059`,i)}}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){return this.parseStatementsWithRanges().statements}parseStatementsWithRanges(){let t=[],n=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let r=this.peek();if(t.push(this.parseStatement()),t.length>df)throw new T(`batch exceeds ${df} statements.`,r);let i=this.peek();if(i.kind!==";"&&i.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",i);let o=this.prev();n.push({start:r.pos,end:o.end??i.pos})}return this.expect("EOF"),{statements:t,statementRanges:n}}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="EXIT")return this.parseExit();if(n==="MERGE"){if(!this.capabilities.dialect1)throw new T("MERGE \u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t);return this.parseMergeAsUpsert()}if(n==="GENERATE_SERIES")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT / EXIT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:r}}parseRelativeDateVariableToken(){let t=this.peek(),n=ri[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new T("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE"){if(this.peekAt(1).kind==="("&&this.capabilities.dialect1)return this.advance(),this.finishVariableReference(r);throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r)}if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=ri[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i==="PRIMARY_ORGANIZATION")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek(),i;if(r.kind==="WITH")i=this.parseWith();else if(r.kind==="SELECT")i=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",r);return t!==null&&this.bareTempTableNames.add(t),{type:"CREATE_TEMP_TABLE",name:n,query:i}}parseDropTempTable(){this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();return t!==null&&this.bareTempTableNames.delete(t),{type:"DROP_TEMP_TABLE",name:n}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;if(this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT"))return this.advance(),`#${t.value}`;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}isDialect1BareTempTableName(){let t=this.peek();return this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT")&&!t.value.startsWith("#")?t.value:null}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ht(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=ht(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let N=this.parseIdentifier();if(s.has(N))throw new T(`IMPORT target ${N} is declared more than once.`,this.prev());if(s.add(N),this.peek().kind==="("){this.advance();let v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new T(`IMPORT subtable ${N} contains duplicate child declarations.`,this.prev());let b;if(this.isSoftKeyword("ROW")){this.advance();for(let M of["ID","SOURCE"]){if(!this.isSoftKeyword(M))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}b=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:N,children:v,...b?{rowIdSourceHeader:b}:{}})}else a.push(N),o.push({kind:"FIELD",field:N});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let c=this.parseIdentifier(),p,u=!0,d;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let N=this.parseIdentifier().toUpperCase();if(N!=="UTF8"&&N!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());p=N==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(u)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),d=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Ce||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(N=>N.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!u)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let m,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let N of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(N))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let g;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),g=this.parseIdentList(),this.expect(")"),new Set(g).size!==g.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let S=o.filter(N=>N.kind==="SUBTABLE");if(S.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(S.some(N=>N.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(g)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!g)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let N=new Set(g);for(let v of S){if(!v.rowIdSourceHeader)throw new T(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!N.has(v.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of N)if(!S.some(b=>b.subtableCode===v))throw new T(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(g)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let A=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:c}:{kind:"CSV",sourceName:c,encoding:p,hasHeader:u,mappingMode:E,ignoreUnknownColumns:R,...d?{columns:d}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...g?{replaceSubtables:g}:{},...m?{keyFields:m}:{},...A,...I}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=ht(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let u=this.parseIdentifier();if(this.consume("(")){let d=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:d})}else o.push({kind:"FIELD",field:u})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),c;if(this.consume("INTO")){let u=this.peek();if(u.kind!=="IDENT"||!u.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",u);c=this.parseTableName()}let p={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...c?{errorTable:c}:{}};return this.assertValidateExpressions(p,t),p}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.peek(),n=this.isSoftKeyword("WARN");n&&(this.requireDialect1(t),this.advance());let r=this.parseAssertCondition(),i=this.parseFlowMessage();return{type:"ASSERT",...r,...n?{warn:!0}:{},...i!==void 0?{message:i}:{}}}parseExit(){let t=this.advance();if(this.requireDialect1(t),!this.isSoftKeyword("SUCCESS"))throw new T("EXIT \u306E\u5F8C\u306B\u306F SUCCESS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.peek().kind!=="IF"&&!this.isSoftKeyword("IF"))throw new T("EXIT SUCCESS \u306E\u5F8C\u306B\u306F IF \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=this.parseAssertCondition();if(!this.consume(","))throw new T("EXIT SUCCESS IF \u306B\u306F\u672B\u5C3E\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u6587\u5B57\u5217\u304C\u5FC5\u8981\u3067\u3059",this.peek());let r=this.expect("STRING","EXIT SUCCESS IF \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return{type:"EXIT",...n,message:r.value}}parseAssertCondition(){let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseFlowMessage(){if(this.consume(","))return this.requireDialect1(this.prev()),this.expect("STRING","ASSERT \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}requireDialect1(t){if(!this.capabilities.dialect1)throw new T("\u3053\u306E\u69CB\u6587\u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t)}finishVariableReference(t){let n={type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(this.peek().kind!=="("||!this.capabilities.dialect1)return n;let r=t.value.slice(1).toUpperCase();if(!ei(r))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${pa.map(i=>`@${i}`).join("/")} \u3067\u3059`,t);return this.advance(),this.expect(")",`@${r} \u306F\u5F15\u6570\u306A\u3057\u306E () \u3067\u547C\u3073\u51FA\u3057\u3066\u304F\u3060\u3055\u3044`),{type:"VARIABLE",name:Zr(r)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&cA(this.tokens[i-1],o)&&(r+=" "),r+=a}return r}parseSelect(t=!1){this.expect("SELECT");let n=this.consume("DISTINCT"),r=this.parseSelectColumns(),i=this.consume("FROM"),o=i?this.parseTableRef():{appId:0,alias:null,cteName:Ce},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],c,p=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?c=this.parseGroupingSetsClause():this.isRollupStart()?c=this.parseRollupClause():this.isCubeStart()?c=this.parseCubeClause():l=this.parseGroupByKeys(),c&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(p=this.parseWhereExpr("HAVING"))}let u="CANONICAL",d=[];if(this.consume("ORDER"))this.expect("BY"),d=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());u="KINTONE_NATIVE",this.expect("BY"),d=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,R=r.some(y=>y.type==="WINDOW_COL"),m=r.some(y=>this.selectColumnHasAggregate(y));if(R&&(l.length>0||c!==void 0||m))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(c&&u==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,p,l,c),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...c?{grouping:c}:{},having:p,orderMode:u,orderBy:d,limit:f,offset:E}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,c=this.peek().kind;if(c==="SHOW")s=this.parseShow();else if(c==="DESCRIBE"||c==="DESC")s=this.parseDescribe();else if(c==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES")s=this.parseGenerateSeries();else if(t){let d=this.parseRecursiveCteCandidate(o);s=d.query,l=d.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let p=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(p&&!l)throw new T("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:p},this.validateRecursiveCte(o,a,l),r++,r>1))throw new T("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let u={name:o,query:s};a&&(u.columnAliases=a),l&&(u.recursiveSpec=l),n.push(u),this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.add(o)}while(this.consume(","));let i=this.tryParseUnionChain(this.parseSelect());return t?{type:"WITH",ctes:n,query:i,recursive:!0}:{type:"WITH",ctes:n,query:i}}finally{this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.clear()}}parseOptionalCteColumnAliases(){if(!this.consume("("))return;let t=[];if(this.peek().kind===")")throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u306F1\u500B\u4EE5\u4E0A\u306E\u5217\u540D\u304C\u5FC5\u8981\u3067\u3059",this.peek());do t.push(this.parseIdentifier());while(this.consume(","));if(this.expect(")"),new Set(t).size!==t.length)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u540C\u3058\u5217\u540D\u3092\u91CD\u8907\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());return t}parseRecursiveCteCandidate(t){let n=this.parseSelect();if(this.peek().kind!=="UNION")return{query:n};this.advance();let r=this.consume("ALL");this.activeCteDefinition={name:t,recursiveWith:!0,phase:"RECURSIVE_TERM"},this.provisionalRecursiveCte={name:t,references:0};let i=this.parseSelect(),o=this.provisionalRecursiveCte.references;this.provisionalRecursiveCte=null;let a={type:"UNION",all:r,left:n,right:i};if(a=this.tryParseUnionChain(a),this.activeCteDefinition={name:t,recursiveWith:!0,phase:"SEED"},o===0)return{query:a};if(!r||a.type!=="UNION"||a.left!==n||a.right!==i)throw new T("\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(o!==1)throw new T("\u518D\u5E30\u9805\u304B\u3089\u306E\u81EA\u5DF1\u53C2\u7167\u306F\u3061\u3087\u3046\u30691\u56DE\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());return{query:a,recursiveSpec:{seed:n,recursiveTerm:i,unionAll:!0,cycle:null}}}parseRecursiveCycleClause(){this.advance();let t=this.parseIdentifier();this.expect("SET","CYCLE \u306E\u5217\u540D\u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentifier();if(!this.isSoftKeyword("TO"))throw new T("CYCLE \u306E mark \u5217\u306E\u5F8C\u306B\u306F TO \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=this.expect("STRING","CYCLE TO \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(!this.isSoftKeyword("DEFAULT"))throw new T("CYCLE TO \u306E\u5024\u306E\u5F8C\u306B\u306F DEFAULT \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let i=this.expect("STRING","CYCLE DEFAULT \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(r.value===i.value)throw new T("CYCLE \u306E TO \u3068 DEFAULT \u306B\u306F\u7570\u306A\u308B\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);return{column:t,markColumn:n,markValue:r.value,defaultValue:i.value,exposePath:!1}}validateRecursiveCte(t,n,r){let i=this.prev(),o=r.seed,a=r.recursiveTerm,{groupBy:s}=a;if(o.columns.length!==a.columns.length)throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(n&&n.length!==o.columns.length)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u3068 SELECT \u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(o.columns.some(p=>p.type==="WILDCARD"||p.type==="PARENT_WILDCARD")||a.columns.some(p=>p.type==="WILDCARD"||p.type==="PARENT_WILDCARD"))throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new T("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new T("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(p=>p===t).length!==1)throw new T("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new T("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let c=n??o.columns.map(p=>this.selectColumnOutputName(p));if(r.cycle){if(c.filter(u=>u===r.cycle.column).length!==1)throw new T("CYCLE \u5217\u306F\u518D\u5E30 CTE \u306E\u51FA\u529B\u52171\u500B\u3078\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",i);if(c.includes(r.cycle.markColumn))throw new T("CYCLE \u306E mark \u5217\u306F\u518D\u5E30 CTE \u306E\u65E2\u5B58\u51FA\u529B\u5217\u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093",i)}}containsRecursiveForbiddenNode(t){if(Array.isArray(t))return t.some(r=>this.containsRecursiveForbiddenNode(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="AGGREGATE"||n.type==="AGG_REF"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"||n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SUBQUERY_IN_LIST"||n.type==="EXISTS"?!0:Object.values(n).some(r=>this.containsRecursiveForbiddenNode(r))}selectColumnOutputName(t){return"alias"in t&&typeof t.alias=="string"?t.alias:t.type==="FIELD"?t.field:null}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new T("GENERATE_SERIES \u304C\u5FC5\u8981\u3067\u3059",t);this.expect("(");let n=[];if(this.peek().kind!==")")do{let i=this.peek();if(i.kind==="STRING"){this.advance(),n.push({type:"STRING",value:i.value});continue}if(i.kind==="VARIABLE"){this.advance(),n.push(this.finishVariableReference(i));continue}let o="";(i.kind==="+"||i.kind==="-")&&(o=i.kind==="-"?"-":"+",this.advance());let a=this.peek();if(a.kind!=="NUMBER")throw new T("GENERATE_SERIES \u306E\u5F15\u6570\u306B\u306F\u6570\u5024\u3001\u6587\u5B57\u5217\u3001\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",a);this.advance(),n.push(be(`${o}${a.value}`))}while(this.consume(","));this.expect(")");let r=this.consume("AS")?this.parseIdentifier():"generate_series";return{type:"GENERATE_SERIES",args:n,columnAlias:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new T(Vl,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.finishVariableReference(this.advance()),s=lr(a.name),l=null;if(s===null){if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());l=this.parseAliasName()}else this.consume("AS")&&(l=this.parseAliasName());return this.withAliasDisplay({type:"VARIABLE_COL",name:a.name,alias:l?.alias??null},l)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s)}let r=this.tryAggregateFunc();if(r!==null){let a=this.parseAggregateRef(r);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let a={type:"FIELD_REF",field:i},s=this.parseSelectArith(()=>this.continueArith(a)),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let o=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:i,alias:o?.alias??null},o)}tryWindowFunc(){return Rf[this.peek().kind]??null}tryValueWindowFunc(t=this.pos){let n=this.tokens[t];if(n?.kind!=="IDENT"||this.tokens[t+1]?.kind!=="(")return null;let r=n.value.toUpperCase();if(r!=="LAG"&&r!=="LEAD")return null;let i=0;for(let o=t+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];return s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER"?r:null}}return null}hasNestedAggregateWindowInSelectColumn(){let t=0;for(let n=this.pos;n<this.tokens.length;n++){let r=this.tokens[n];if(t===0&&(r.kind===","||r.kind==="FROM"||r.kind===";"||r.kind==="EOF"))return!1;if(ni[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}if(this.tryValueWindowFunc(n)!==null)return!0;r.kind==="("?t++:r.kind===")"&&t--}return!1}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseValueWindowColumn(t){this.advance(),this.expect("(");let n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}),r=1;if(this.consume(",")){let s=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(r=Number(s.value),!Number.isSafeInteger(r)||r<0)throw new T(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,s)}this.expect(")",`${t} \u306F expr \u3068\u7701\u7565\u53EF\u80FD\u306A offset \u306E 2 \u5F15\u6570\u307E\u3067\u3067\u3059`),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();i.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}if(!this.consume("ORDER"))throw new T(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let o=this.parseOrderBy(!1);if(this.expect(")"),this.isArithOp(this.peek().kind)||this.peek().kind==="||")throw new T(Vl,this.peek());if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:n,offset:r,partitionBy:i,orderBy:o,alias:a.alias},a)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new T(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new T("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new T("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T(Vl,this.peek());if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?be(`-${q(n)}`):{type:"AGG_ARITH",left:be("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return be(n.value)}if(this.peek().kind==="VARIABLE"){let n=this.advance();return this.finishVariableReference(n)}let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),ni[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=p=>{if(Array.isArray(p)){p.forEach(a);return}if(p===null||typeof p!="object")return;let u=p;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(p);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new T("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let c=new Set(r.filter(p=>p.type==="FIELD_NAME").map(p=>p.name));for(let p of o){let u=this.aggregateGroupKeyDisplay(p);if(!c.has(u))throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(p)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return be(`${n.kind==="-"?"-":"+"}${q(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:be("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),be(n.value);if(n.kind==="VARIABLE")return this.advance(),this.finishVariableReference(n);if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return be(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?be(`-${q(n)}`):{type:"ARITH",left:be("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),be(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult(t);this.expect(",");let i=this.parseCaseResult(t);return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult(t);n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Wl[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Wl[this.peek().kind]??null;if(t!==null&&t!=="LEFT"&&t!=="RIGHT")return t;if(this.peek().kind==="IDENT"){let n=this.peek(),r=n.value.toUpperCase();if(Ef.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new T(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof T))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new T(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=pA(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return ni[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!nA(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek();if(t.kind==="IDENT"&&t.value.toUpperCase()==="GENERATE_SERIES"&&this.peekAt(1).kind==="(")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let n=this.parseTableName();if(this.capabilities.dialect1&&this.bareTempTableNames.has(n)){let s=`#${n}`;return this.tempTableRefs.push({...this.prev(),value:s}),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:s}}if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new T(s,t)}let{appId:r,subtableCode:i}=ht(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"||t==="IDENT"&&this.peek().value.toUpperCase()==="KEY"&&this.peekAt(1).kind==="("?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();if(n==="CROSS"){if(this.peek().kind==="ON")throw new T("CROSS JOIN \u306B ON \u53E5\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());t.push({type:"CROSS",table:r,on:null});continue}this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){if(this.consume("INNER")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B INNER \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"INNER"}if(this.consume("LEFT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"LEFT"}if(this.consume("RIGHT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"RIGHT"}return this.consume("CROSS")?(this.expect("JOIN"),"CROSS"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue(n!=="LIKE");return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:fe(r.func,r.distinct,r.arg),...this.groupingFieldContext==="SELECT_CASE"||this.groupingFieldContext==="HAVING"?{aggregateRef:r}:{}}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(t=!0){let n=this.peek();if(t&&n.kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return be(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(n.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!aA(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let c=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:c,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!sA(o))throw new T(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!lA(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(ff(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:ri[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}let t=this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");return this.peek().kind==="("&&this.capabilities.dialect1?{type:"IN_LIST",values:[this.finishVariableReference(t)]}:{type:"VARIABLE_IN_LIST",name:t.value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(be(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(be(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push(this.finishVariableReference(i));else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else if(i.kind==="PRIMARY_ORGANIZATION"){let o="PRIMARY_ORGANIZATION() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";if(t.length>0)throw new T(o,i);if(this.expect("(","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"PRIMARY_ORGANIZATION"}),this.peek().kind===",")throw new T(o,this.peek())}else throw new T(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new T("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new T("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Xp(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ht(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let p=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let u=this.parseCheckGroups(),d=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:p,...u,...d}}this.expect("VALUES");let o=[];do{this.expect("(");let p=this.parseInsertRow(i.length,!0);this.expect(")"),o.push(p)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...c,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...c,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ht(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect(),d=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:u,keyFields:d,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length,!1)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...c,...p}}parseOnDuplicate(){if(this.capabilities.dialect1&&this.consumeSoftKeyword("KEY")){this.expect("(","KEY \u306E\u5F8C\u306B\u306F (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentList();if(this.expect(")"),n.length===0)throw new T("KEY \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return n}if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}parseMergeAsUpsert(){let t=this.advance();this.expect("INTO","MERGE \u306E\u5F8C\u306B\u306F INTO \u304C\u5FC5\u8981\u3067\u3059"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=ht(n,this.prev());if(i)throw new T("MERGE \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("AS","MERGE \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseTableAliasName();this.expectSoftKeyword("USING","MERGE \u306B\u306F USING <source> AS alias \u304C\u5FC5\u8981\u3067\u3059");let a=this.pos,s=this.parseTableRef();if(!this.tokens.slice(a,this.pos).some(I=>I.kind==="AS")||s.alias===null)throw new T("MERGE \u306E USING \u30BD\u30FC\u30B9\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let c=s.alias;this.expect("ON","MERGE \u306B\u306F ON t.key = s.key \u306E\u5358\u4E00\u30AD\u30FC\u7B49\u5024\u304C\u5FC5\u8981\u3067\u3059");let p=this.parseMergeQualifiedField("MERGE \u306E ON \u5DE6\u8FBA\u306F targetAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(!this.consume("="))throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\uFF08t.key = s.key\uFF09\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u3084\u975E\u7B49\u5024\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let u=this.parseMergeQualifiedField("MERGE \u306E ON \u53F3\u8FBA\u306F sourceAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(p.alias.toLowerCase()!==o.toLowerCase()||u.alias.toLowerCase()!==c.toLowerCase())throw new T(`MERGE \u306E ON \u306F ${o}.key = ${c}.key \u306E\u5225\u540D\u4FEE\u98FE\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);if(this.peek().kind==="AND"||this.peek().kind==="OR")throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let d=null,f=null,E=null;for(;this.peek().kind==="WHEN";){let I=this.advance();if(this.consume("NOT")){if(this.expectSoftKeyword("MATCHED","WHEN NOT \u306E\u5F8C\u306B\u306F MATCHED \u304C\u5FC5\u8981\u3067\u3059"),f!==null)throw new T("WHEN NOT MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);if(this.expect("THEN","WHEN NOT MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("INSERT","WHEN NOT MATCHED THEN \u306E\u5F8C\u306B\u306F INSERT \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT \u306B\u306F\u5217\u30EA\u30B9\u30C8\u304C\u5FC5\u8981\u3067\u3059"),f=this.parseIdentList(),this.expect(")"),this.expect("VALUES","MERGE INSERT \u306E\u5217\u30EA\u30B9\u30C8\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT VALUES \u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),E=this.parseMergeValueList(),this.expect(")"),f.length!==E.length)throw new T("MERGE INSERT \u306E\u5217\u6570\u3068 VALUES \u306E\u5024\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",I)}else{if(this.expectSoftKeyword("MATCHED","WHEN \u306E\u5F8C\u306B\u306F MATCHED \u307E\u305F\u306F NOT MATCHED \u304C\u5FC5\u8981\u3067\u3059"),d!==null)throw new T("WHEN MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);this.expect("THEN","WHEN MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("UPDATE","WHEN MATCHED THEN \u306E\u5F8C\u306B\u306F UPDATE \u304C\u5FC5\u8981\u3067\u3059"),this.expect("SET","WHEN MATCHED THEN UPDATE \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059"),d=this.parseMergeAssignments(o)}}if(d===null||f===null||E===null)throw new T("WHEN MATCHED / WHEN NOT MATCHED \u306E\u4E21\u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u66F4\u65B0\u306E\u307F\u306F UPDATE ... FROM\u3001\u633F\u5165\u306E\u307F\u306F INSERT ... SELECT \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(!f.some(I=>I.toLowerCase()===p.field.toLowerCase()))throw new T(`MERGE \u306E ON \u30AD\u30FC ${p.field} \u306F INSERT \u5217\u30EA\u30B9\u30C8\u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044`,t);let R=new Map;f.forEach((I,N)=>R.set(I.toLowerCase(),E[N]));for(let I of d){let N=I.field.toLowerCase(),v=R.get(N);if(v!==void 0&&!this.mergeExpressionsEqual(v,I.value,c))throw new T(`MERGE \u306E\u5217 ${I.field} \u306F\u4E21\u53E5\u306E\u5F0F\u304C\u4E00\u81F4\u3059\u308B\u5834\u5408\u306E\u307F MERGE \u3092 UPSERT \u3078\u6B63\u898F\u5316\u3067\u304D\u307E\u3059`,t);v===void 0&&(f.push(I.field),E.push(I.value),R.set(N,I.value))}let m=E.map(I=>this.mergeValueToSelectColumn(I,c,t)),y=s.cteName!==null?{...s,alias:null}:{...s,alias:`APP${s.appId}${s.subtableCode?`$${s.subtableCode}`:""}`},g={type:"SELECT",distinct:!1,columns:m,from:y,joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null},S=this.parseCheckGroups(),A=this.parseDmlControlSuffix();return{type:"UPSERT_SELECT",appId:r,fields:f,select:g,keyFields:[p.field],...S,...A}}parseMergeQualifiedField(t){let n=this.peek(),r=this.parseFieldPath(),i=this.splitQualifiedField(r);if(i.alias===null)throw new T(t,n);return{alias:i.alias,field:i.field}}parseMergeAssignments(t){let n=[];do{let r=this.peek(),i=this.parseFieldPath(),o=this.splitQualifiedField(i);if(o.alias!==null&&o.alias.toLowerCase()!==t.toLowerCase())throw new T(`MERGE UPDATE SET \u306E\u5DE6\u8FBA\u306F target alias ${t} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);this.expect("="),n.push({field:o.field,value:this.parseAssignmentValue()})}while(this.consume(","));return n}parseMergeValueList(){let t=[];if(this.peek().kind===")")return t;do t.push(this.parseAssignmentValue());while(this.consume(","));return t}mergeExpressionsEqual(t,n,r){return this.mergeNormalizedValueEqual(this.normalizeMergeValue(t,r,!0),this.normalizeMergeValue(n,r,!0))}normalizeMergeValue(t,n,r=!1){if(Array.isArray(t))return t.map(o=>this.normalizeMergeValue(o,n,r));if(t===null||typeof t!="object")return t;let i=t;if(r&&i.type==="NUMBER")return{type:"NUMBER",value:i.value};if(i.type==="SOURCE_FIELD")return String(i.alias).toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{type:"FIELD_REF",field:i.field};if(i.type==="FIELD_REF"&&typeof i.field=="string"){let o=this.splitQualifiedField(i.field);return o.alias!==null&&o.alias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,field:o.field}}return i.type==="FIELD"&&typeof i.tableAlias=="string"?i.tableAlias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,tableAlias:null}:Object.fromEntries(Object.entries(i).map(([o,a])=>[o,this.normalizeMergeValue(a,n,r)]))}mergeNormalizedValueEqual(t,n){if(t===n)return!0;if(Array.isArray(t)||Array.isArray(n))return Array.isArray(t)&&Array.isArray(n)&&t.length===n.length&&t.every((s,l)=>this.mergeNormalizedValueEqual(s,n[l]));if(t===null||n===null||typeof t!="object"||typeof n!="object")return!1;let r=t,i=n,o=Object.keys(r),a=Object.keys(i);return o.length===a.length&&o.every(s=>Object.prototype.hasOwnProperty.call(i,s)&&this.mergeNormalizedValueEqual(r[s],i[s]))}mergeValueToSelectColumn(t,n,r){let i=this.normalizeMergeValue(t,n);if(this.mergeValueContainsInvalidSource(i))throw new T(`MERGE \u306E\u5F0F\u306F source alias ${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044`,r);let o=i;switch(o.type){case"FIELD_REF":return{type:"FIELD",field:String(o.field),alias:null};case"STRING":return{type:"LITERAL_COL",value:String(o.value),alias:null};case"NUMBER":return{type:"ARITH_COL",expr:o,alias:null};case"ARITH":return{type:"ARITH_COL",expr:o,alias:null};case"STRING_FUNC":return{type:"STRFUNC_COL",expr:o,alias:null};case"CASE_VALUE":return{type:"CASE_COL",expr:o.expr,alias:null};default:throw new T("MERGE \u306E\u4EE3\u5165\u5F0F\u306F\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9\u30FB\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u6587\u5B57\u5217\u95A2\u6570\u30FBCASE \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",r)}}mergeValueContainsInvalidSource(t){if(Array.isArray(t))return t.some(r=>this.mergeValueContainsInvalidSource(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="INVALID_SOURCE"||Object.values(n).some(r=>this.mergeValueContainsInvalidSource(r))}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t,n){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let i=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="IF"){let i=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let i=this.advance(),o=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");r.push(be(`${i.kind==="-"?"-":"+"}${o.value}`))}else{let i=this.advance();if(i.kind==="STRING")r.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")r.push(be(i.value));else if(n&&this.isDialect1AsOfCall(i))r.push(this.finishVariableReference(i));else{let o=this.isDialect1AsOfCall(i)?" INSERT ... VALUES \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u6587\u578B\u3067\u306F INSERT ... SELECT \u3067\u6CE8\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"";throw new T(`INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059${o}`,i)}}while(this.consume(","));if(r.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${r.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return r}isDialect1AsOfCall(t){return this.capabilities.dialect1===!0&&t.kind==="VARIABLE"&&ei(t.value.slice(1).toUpperCase())&&this.peek().kind==="("&&this.peekAt(1).kind===")"}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ht(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(d=>d.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let d=this.parseTableRef();if(d.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(d.cteName!==null&&!d.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!d.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(d.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:d.appId,cteName:d.cteName,alias:d.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let d=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=d.targetJoinField,o.joinKeyField=d.joinKeyField,o.targetFilter=d.targetFilter}else{if(i.some(d=>d.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(d=>d.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(d.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&c.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(p.validateOnly||p.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...c,...p}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...c,...p}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...c,...p}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length,!1)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((p,u)=>{let d=this.matchUpdateFromJoin(p,n,r);d!==null&&a.push({index:u,...d})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let p=0;p<o.length;p++){if(p!==s.index&&this.nodeContainsQualifiedField(o[p],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(p!==s.index&&this.nodeContainsForeignQualifier(o[p],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let c=o.filter((p,u)=>u!==s.index).reduce((p,u)=>p===null?u:{type:"LOGICAL",op:"AND",left:p,right:u},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:c}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(ff(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=ht(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=ht(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}tryParseDigitPrefixedIdentifier(){let t=this.peek(),n=this.peekAt(1);return t.kind!=="NUMBER"||!/^\d+$/.test(t.value)||n.kind!=="IDENT"||n.pos!==t.pos+t.value.length?null:(this.advance(),this.advance(),t.value+n.value)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||fa.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),t}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function pA(e){let t=e.toUpperCase(),n=new Set(["TEXT","VARCHAR","CHAR","NCHAR","NVARCHAR","STRING"]),r=new Set(["NUMBER","INT","INTEGER","NUMERIC","DECIMAL","FLOAT","DOUBLE","REAL","BIGINT","SMALLINT"]);return n.has(t)?"TEXT":r.has(t)?"NUMBER":null}function ht(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}function un(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function dA(e,t){return e<t?-1:e>t?1:0}function mf(e){if(e==="")return{band:0};let t=we(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function fA(e,t){let n=mf(e),r=mf(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Io(n.value,r.value):n.band===5&&r.band===5?un(n.value,r.value):0}function yf(e,t){if(e==="")return{empty:!0,normalizedId:"",display:e};let n=/^\d+$/.test(e)?e:t?/-(\d+)$/.exec(e)?.[1]:void 0;if(n===void 0)throw new Error(`ArgumentError: invalid ${t?"RECORD_NUMBER":"$id"} value: ${e}`);return{empty:!1,normalizedId:n.replace(/^0+(?=\d)/,""),display:e}}function EA(e,t,n){let r=yf(e,n),i=yf(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=un(r.normalizedId,i.normalizedId);return o!==0?o:un(r.display,i.display)}function RA(e,t){if(e==="")return[];if(t!=="CHECK_BOX"&&t!=="MULTI_SELECT")return[e];try{let n=JSON.parse(e);return Array.isArray(n)?n.map(r=>String(r??"")):[e]}catch{return[e]}}function gf(e,t){let n=t.optionOrder??new Map,i=[...new Set(RA(e,t.fieldType))].map(o=>{let a=n.get(o);return a===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:a,label:o}});return i.sort(hf),i}function hf(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:un(e.label,t.label)}function mA(e,t,n){let r=gf(e,n),i=gf(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=hf(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function lt(e,t,n){switch(n.compareMode){case"string":return un(e,t);case"number":return fA(e,t);case"recordNumber":return EA(e,t,n.fieldType==="RECORD_NUMBER");case"option":return mA(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function xt(e,t,n,r=W("string")){let i=lt(t,n,r);switch(e){case"=":return i===0;case"!=":case"<>":return i!==0;case">":return i>0;case"<":return i<0;case">=":return i>=0;case"<=":return i<=0}}function Af(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=we(o),l=we(a),c=s!==null&&l!==null?Io(s,l):dA(Number(o),Number(a));if(c!==0)return c}return un(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function Ee(e,t,n={}){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number($e(t,e.field));if(e.type==="STRING_FUNC")return Number(he(e,t,void 0,void 0,n));let r=Ee(e.left,t,n),i=Ee(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function Le(e,t,n,r,i={}){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return $e(t,e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);case"VARIABLE":throw new Error(`ArgumentError: unresolved variable @${e.name} reached scalar evaluator.`);case"STRING_FUNC":return he(e,t,n,r,i);case"CASE_WHEN":return He(e,t,n,r,i);case"CONCAT_OP":return he({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r,i);case"SCALAR_ARITH":{let o=Number(Le(e.left,t,n,r,i)),a=Number(Le(e.right,t,n,r,i));switch(e.op){case"+":return o+a;case"-":return o-a;case"*":return o*a;case"/":return a!==0?o/a:NaN;case"%":return a!==0?o%a:NaN}}}}function Ft(e,t,n,r,i={}){switch(e.type){case"CASE_WHEN":return wf(e,t,n,r,i);case"SCALAR_ARITH":{let o=Ft(e.left,t,n,r,i),a=Ft(e.right,t,n,r,i);if(o===null||a===null)return null;let s=Number(o),l=Number(a);switch(e.op){case"+":return s+l;case"-":return s-l;case"*":return s*l;case"/":return l!==0?s/l:NaN;case"%":return l!==0?s%l:NaN}}case"CONCAT_OP":{let o=Ft(e.left,t,n,r,i),a=Ft(e.right,t,n,r,i);return`${o??""}${a??""}`}default:return Le(e,t,n,r,i)}}function Ea(e,t,n){let r=Math.pow(10,n),i=Math[e](t*r)/r;return n>0?String(parseFloat(i.toFixed(n))):String(i)}function yA(e){return e>=55296&&e<=56319}function gA(e){return e>=56320&&e<=57343}function ma(e,t){return t>0&&t<e.length&&yA(e.charCodeAt(t-1))&&gA(e.charCodeAt(t))}function Sf(e,t){if(Number.isNaN(e)||e===Number.NEGATIVE_INFINITY)return 0;if(e===Number.POSITIVE_INFINITY)return t;let n=Math.trunc(e);return n<0?Math.max(t+n,0):Math.min(n,t)}function Yl(e,t){let n=Math.min(Math.max(0,t),e.length);return ma(e,n)&&(n-=1),e.slice(0,n)}function hA(e,t){let n=Math.max(0,e.length-t);return ma(e,n)&&(n+=1),e.slice(n)}function AA(e,t,n){let r=Sf(t,e.length),i=Sf(n,e.length);return i<=r?"":(ma(e,r)&&(r+=1),ma(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function SA(e,t){let n=e.repeat(Math.ceil(t/e.length));return Yl(n,t)}var TA=200,ii=new Map;function IA(e){if(/[^ims]/.test(e))throw new Error("ArgumentError: regular expression flags may contain only i, m, or s.");if(new Set(e).size!==e.length)throw new Error("ArgumentError: regular expression flags must not contain duplicates.");return`${e}u`}function Hl(e,t,n=!1){let r=IA(t)+(n?"g":""),i=`${e}\0${r}`,o=ii.get(i);if(o!==void 0)return o.lastIndex=0,o;let a;try{a=new RegExp(e,r)}catch(s){let l=s instanceof Error?s.message:String(s);throw new Error(`ArgumentError: invalid regular expression: ${l}`)}if(ii.size>=TA){let s=ii.keys().next().value;s!==void 0&&ii.delete(s)}return ii.set(i,a),a}function wA(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function bA(e){if(e===void 0)return 0;if(!/^\d+$/.test(e))throw new Error("ArgumentError: REGEXP_REPLACE occurrence must be a non-negative integer.");return Number(e)}function NA(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let p=Number(s+l);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=2;continue}}let c=Number(s);if(c>=1&&c<=n.length){i+=n[c-1]??"",o+=1;continue}}i+="$"}return i}function CA(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,c=a.length-(l?3:2),p=a.slice(0,c);return NA(n,o,p,l?s:void 0)})}function he(e,t,n,r,i={}){sa(e.func,e.args);let o=e.args.map(a=>MA(a,t,n,r,i));switch(e.func){case"UPPER":return(o[0]??"").toUpperCase();case"LOWER":return(o[0]??"").toLowerCase();case"TRIM":return(o[0]??"").trim();case"LTRIM":return(o[0]??"").trimStart();case"RTRIM":return(o[0]??"").trimEnd();case"LENGTH":return String((o[0]??"").length);case"LENGTH_CHAR":return String([...o[0]??""].length);case"SUBSTRING":{let a=o[0]??"",s=Math.max(0,Number(o[1]??"1")-1),l=o[2]!==void 0?Number(o[2]):void 0;return AA(a,s,l!==void 0?s+l:a.length)}case"LEFT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":Yl(a,s)}case"RIGHT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":hA(a,s)}case"INSTR":return String(o[0].indexOf(o[1])+1);case"LPAD":case"RPAD":{let a=o[0],s=Math.trunc(Number(o[1]));if(Number.isNaN(s)||s<=0)return"";if(a.length>=s)return Yl(a,s);let l=o[2]??" ";if(l==="")return a;let c=SA(l,s-a.length);return e.func==="LPAD"?c+a:a+c}case"GREATEST":case"LEAST":return Af(o,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return o.join("");case"REPLACE":{let a=o[0]??"",s=o[1]??"",l=o[2]??"";return s===""?a:a.split(s).join(l)}case"REGEXP_LIKE":return Hl(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{wA(o[2]);let a=bA(o[4]),s=Hl(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):CA(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return Hl(o[1],o[2]??"").exec(o[0])?.[0]??"";case"TRANSLATE":{let a=[...o[1]],s=[...o[2]];if(a.length!==s.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${a.length}, to=${s.length}\uFF09`);let l=new Map;return a.forEach((c,p)=>{l.has(c)||l.set(c,s[p])}),[...o[0]].map(c=>l.get(c)??c).join("")}case"COALESCE":return o.find(a=>a!=="")??"";case"NULLIF":return(o[0]??"")===(o[1]??"")?"":o[0]??"";case"ISNULL":return(o[0]??"")!==""?o[0]??"":o[1]??"";case"ROUND":return Ea("round",Number(o[0]??"0"),Number(o[1]??"0"));case"FLOOR":return Ea("floor",Number(o[0]??"0"),Number(o[1]??"0"));case"CEIL":return Ea("ceil",Number(o[0]??"0"),Number(o[1]??"0"));case"TRUNCATE":return Ea("trunc",Number(o[0]),Number(o[1]??"0"));case"CAST":{let a=o[0]??"";if((o[1]??"TEXT")==="NUMBER"){let l=Number(a);return isNaN(l)?a:String(l)}return a}case"FORMAT":{let a=Number(o[0]??"0"),s=o[1]??"0";return DA(a,s)}case"YEAR":{let a=o[0]??"";return a.length>=4?String(parseInt(a.slice(0,4),10)):""}case"MONTH":{let a=o[0]??"";return a.length>=7?String(parseInt(a.slice(5,7),10)):""}case"DAY":{let a=o[0]??"";return a.length>=10?String(parseInt(a.slice(8,10),10)):""}case"DAYOFWEEK":return Ra(o[0])?String(jl(o[0])+1):"";case"QUARTER":return Ra(o[0])?String(Math.ceil(Number(o[0].slice(5,7))/3)):"";case"WEEK":return Ra(o[0])?String(If(o[0])):"";case"DATE_FORMAT":return OA(o[0]??"",o[1]??"");case"DATEDIFF":return LA(o[0]??"",o[1]??"");case"DATE_ADD":return _A(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return vA(o[0]);case"ABS":return String(Math.abs(Number(o[0]??"0")));case"MOD":{let a=Number(o[0]??"0"),s=Number(o[1]??"0");return String(s!==0?a%s:NaN)}case"POWER":return String(Math.pow(Number(o[0]??"0"),Number(o[1]??"0")));case"SQRT":return String(Math.sqrt(Number(o[0]??"0")));case"CURRENT_DATE":{let a=i.statementInstant??new Date,s=a.getFullYear(),l=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${s}-${l}-${c}`}case"CURRENT_TIMESTAMP":return(i.statementInstant??new Date).toISOString()}}function oi(e){return{y:e.slice(0,4)||"0000",mo:e.slice(5,7)||"01",d:e.slice(8,10)||"01",h:e.length>=13?e.slice(11,13):"00",mi:e.length>=16?e.slice(14,16):"00",sec:e.length>=19?e.slice(17,19):"00"}}function ya(e){let t=new Date(0);return t.setUTCHours(0,0,0,0),t.setUTCFullYear(Number(e.slice(0,4)),Number(e.slice(5,7))-1,Number(e.slice(8,10))),t}function Ra(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=ya(t);return n.getUTCFullYear()===Number(t.slice(0,4))&&n.getUTCMonth()+1===Number(t.slice(5,7))&&n.getUTCDate()===Number(t.slice(8,10))}function jl(e){return ya(e).getUTCDay()}function Tf(e){let t=ya(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function PA(e){return Tf(e).getUTCFullYear()}function If(e){let t=Tf(e),n=t.getUTCFullYear(),r=ya(`${String(n).padStart(4,"0")}-01-04`),i=r.getUTCDay()||7;return r.setUTCDate(r.getUTCDate()+4-i),1+Math.round((t.getTime()-r.getTime())/(7*864e5))}function OA(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=oi(e),l=Ra(e);return t.replace(/%[YymcdeHiswavG]/g,c=>{switch(c){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(jl(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][jl(e)]:"";case"%v":return l?String(If(e)).padStart(2,"0"):"";case"%G":return l?String(PA(e)).padStart(4,"0"):"";default:return c}})}function LA(e,t){if(e.length<10||t.length<10)return"0";let n=oi(e),r=oi(t),i=Date.UTC(+n.y,+n.mo-1,+n.d),o=Date.UTC(+r.y,+r.mo-1,+r.d);return String(Math.round((i-o)/864e5))}function _A(e,t,n){if(n!=="YEAR"&&n!=="MONTH"&&n!=="DAY")throw new Error("ArgumentError: DATE_ADD unit must be YEAR, MONTH, or DAY.");if(!e||e.length<10)return e;let{y:r,mo:i,d:o}=oi(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let d=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(d,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),c=String(a.getUTCMonth()+1).padStart(2,"0"),p=String(a.getUTCDate()).padStart(2,"0");return`${l}-${c}-${p}`}function vA(e){if(!e||e.length<10)return e;let{y:t,mo:n}=oi(e),r=new Date(Date.UTC(+t,+n,0)),i=String(r.getUTCFullYear()).padStart(4,"0"),o=String(r.getUTCMonth()+1).padStart(2,"0"),a=String(r.getUTCDate()).padStart(2,"0");return`${i}-${o}-${a}`}function DA(e,t){if(/^-?\d+$/.test(t.trim()))return UA(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,c=s+l,p=i.toFixed(c),[u,d=""]=p.split(".");l>0&&(d=d.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,E=d?`${f}.${d}`:f;return n?E+"%":E}function UA(e,t){let n=e.toFixed(t),[r,i]=n.split("."),o=r.replace(/\B(?=(\d{3})+(?!\d))/g,",");return i?`${o}.${i}`:o}function MA(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(ai(e,t)):e.type==="NUMBER"?q(e):String(Le(e,t,n,r,i))}function ai(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[fe(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number($e(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(ai(e.left,t)),r=Number(ai(e.right,t));switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":return r!==0?n/r:NaN;case"%":return r!==0?n%r:NaN}}function $e(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}var kA=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]),xA=new Set(["COALESCE","ISNULL","NULLIF","GREATEST","LEAST"]);function zl(e){return e==="number"||e==="string"?e:e?.compareMode==="number"||e?.compareMode==="recordNumber"?"number":"string"}function FA(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function KA(e,t){return e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN"?"number":e.func==="GROUP_CONCAT"||e.arg.type==="WILDCARD"?"string":ql(e.arg,t)}function At(e,t){if(e.func==="CAST"){let n=e.args[1];return n?.type==="STRING"&&n.value==="NUMBER"?"number":"string"}return kA.has(e.func)||xA.has(e.func)&&e.args.length>0&&e.args.every(n=>ql(n,t)==="number")?"number":"string"}function ql(e,t){if(e===null||typeof e!="object")return"string";let n=e;switch(n.type){case"NUMBER":case"ARITH":case"SCALAR_ARITH":case"AGG_ARITH":return"number";case"STRING_FUNC":return At(e,t);case"AGG_REF":return KA(e,t);case"FIELD":return zl(t?.(e));case"FIELD_REF":return zl(t?.(FA(n.field)));case"AGG_GROUP_KEY":return zl(t?.({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field}));case"CASE_WHEN":{let r=n.branches,i=n.elseResult,o=[...r.map(a=>a.result),...i==null?[]:[i]];return o.length>0&&o.every(a=>ql(a,t)==="number")?"number":"string"}default:return"string"}}function le(e,t,n,r,i,o={}){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return GA(e,t,n,r,i,o);case"NULL_CHECK":return YA(e,t);case"LOGICAL":return jA(e,t,n,r,i,o);case"NOT":return!le(e.expr,t,n,r,i,o);case"GROUP":return le(e.expr,t,n,r,i,o);case"EXISTS":{let a=e.resolved;return e.not?!a:a}}}function GA(e,t,n,r,i,o={}){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let a=_f(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=BA(e.left,s,i);return $A(e.op,a,e.right,t,s,n,l,i,o)}function $A(e,t,n,r,i,o,a=W("string"),s,l={}){if(e==="IN"||e==="NOT_IN"){let p=null;if(n.type==="IN_LIST"&&(HA(n.values),p=new Set(n.values.map(d=>d.type==="NUMBER"?i==="NUMBER"?q(d):String(d.value):d.value))),n.type==="SUBQUERY_IN_LIST"&&(p=n.resolved),p===null)return e==="NOT_IN";let u=WA(t,p,i);return e==="IN"?u:!u}if(e==="LIKE"){let p=Jl(n,r,o,void 0,l);return Lf(t,p)}if(e==="NOT_LIKE"){let p=Jl(n,r,o,void 0,l);return!Lf(t,p)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let c=Jl(n,r,o,s,l);return xt(e,t,c,a)}function BA(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?te({fieldType:t}):W("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return W("number");if(e.type==="FUNC_FIELD")return W(At(e.expr,r=>n?.(r)));if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return W("number");if(o.type==="STRING_FUNC")return W(At(o,a=>n?.(a)));if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??W("string")}return W("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?W("number"):W("string")}var bf=new Set(["CHECK_BOX","MULTI_SELECT"]),Nf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),VA=new Set(["CREATOR","MODIFIER"]);function WA(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=W("number");return[...t].some(a=>xt("=",e,a,o))}let i;if(bf.has(n)||Nf.has(n)||VA.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return bf.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Nf.has(n)?!Array.isArray(i)||!i.every(Cf)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Cf(i)?t.has(i.code):r()}function Cf(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function HA(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let n=e.find(r=>r.type==="KINTONE_FUNC");if(n?.type==="KINTONE_FUNC")throw new Error(`${n.name}: ${vt}`)}function YA(e,t){let n=_f(e.field,t);return e.not?n!=="":n===""}function jA(e,t,n,r,i,o={}){return e.op==="AND"?le(e.left,t,n,r,i,o)&&le(e.right,t,n,r,i,o):le(e.left,t,n,r,i,o)||le(e.right,t,n,r,i,o)}function _f(e,t,n,r,i={}){if(e.type==="FUNC_FIELD")return he(e.expr,t,void 0,void 0,i);if(e.type==="AGG_FIELD")return String(ai(e.expr,t));if(e.type==="ARITH_FIELD")return String(Ee(e.expr,t,i));if(e.type==="CASE_FIELD")return He(e.expr,t,n,r,i);if(e.type==="GROUPING_FIELD")return tr(e.ref,t);if(e.aggregateRef){let a=e.aggregateRef;return $e(t,fe(a.func,a.distinct,a.arg))}let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return $e(t,o)}function Jl(e,t,n,r,i={}){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return q(e);case"KINTONE_FUNC":return zA(e.name);case"IN_LIST":return"";case"SUBQUERY_IN_LIST":return"";case"SCALAR_SUBQUERY":return e.resolved;case"ARITH_VALUE":return e.expr.type==="FIELD_REF"?$e(t,e.expr.field):e.expr.type==="STRING_FUNC"?he(e.expr,t,void 0,void 0,i):String(Ee(e.expr,t,i));case"CASE_VALUE":return He(e.expr,t,n,r,i);case"ARRAY":return e.elements.map(o=>o.value).join(",")}}function He(e,t,n,r,i={}){for(let o of e.branches)if(le(o.condition,t,n,void 0,r,i))return Of(o.result,t,n,r,i);return e.elseResult!==null?Of(e.elseResult,t,n,r,i):""}function wf(e,t,n,r,i={}){for(let o of e.branches)if(le(o.condition,t,n,void 0,r,i))return Pf(o.result,t,n,r,i);return e.elseResult===null?null:Pf(e.elseResult,t,n,r,i)}function Pf(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[fe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[gt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?Ee(e,t,i):Ft(e,t,n,r,i)}function Of(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[fe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[gt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(Ee(e,t,i)):String(Le(e,t,n,r,i))}function vf(e,t={}){let n=t.statementInstant??new Date;switch(e){case"TODAY":{let r=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,"0"),o=String(n.getDate()).padStart(2,"0");return`${r}-${i}-${o}`}case"NOW":return n.toISOString();case"LOGINUSER":case"PRIMARY_ORGANIZATION":return""}}function zA(e){throw ne(e)?new Error(`${e}: ${yn}`):qn(e)?new Error(`${e}: ${vt}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var ga=new Map,qA=200;function Lf(e,t){if(!dd(t))return e.includes(t);let n=ga.get(t);if(!n){let r="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?r+=".*":o==="_"?r+=".":r+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}r+="$",n=new RegExp(r,"u"),ga.size>=qA&&ga.clear(),ga.set(t,n)}return n.test(e)}function cr(e){return Uf(e)}function Df(e){return Uf(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Uf(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw _e("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw _e("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function _e(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function ha(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!le(a.condition,t,n))continue;let s=Le(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Xl(e){if(Qt(e))throw new oe("UPDATE / DELETE \u306E WHERE \u306B LIKE / NOT LIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002LIKE \u306F kSQL \u306E\u610F\u5473\u8AD6\u306B\u5F93\u3063\u3066 JS \u3067\u8A55\u4FA1\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u89AA\u30EC\u30B3\u30FC\u30C9 DML \u306B\u306F JS \u8A55\u4FA1\u7D4C\u8DEF\u304C\u306A\u3044\u305F\u3081\u3001\u5B89\u5168\u4E0A\u62D2\u5426\u3057\u307E\u3057\u305F\u3002SELECT \u3067\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001IN \u307E\u305F\u306F\u5B8C\u5168\u4E00\u81F4\u3067\u5BFE\u8C61\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var JA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),XA=new Set(["CHECK_BOX","MULTI_SELECT"]);function Ta(e,t=new Map,n={}){let r=e.values.map(i=>QA(e.fields,i,t,n));return ci(r,100).map(i=>({app:e.appId,records:i}))}function QA(e,t,n,r){let i={};return e.forEach((o,a)=>{let s=t[a];s.type==="CASE_VALUE"?i[o]={value:Kt(s.expr,{},n.get(o),r)}:i[o]={value:St(s,n.get(o))}}),i}function li(e){Xl(e.where);let t=jf(e);return{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function ui(e,t,n=new Map){let r=ZA(e.assignments,n);return ci(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function ZA(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:St(i,t.get(r))});return n}function Ff(e){return e.assignments.some(t=>t.value.type==="ARITH"||t.value.type==="SCALAR_ARITH"||t.value.type==="CONCAT_OP"||t.value.type==="CASE_VALUE")}function Ia(e){return e.assignments.some(t=>t.value.type==="ARITH"||t.value.type==="SCALAR_ARITH"||t.value.type==="CONCAT_OP"||t.value.type==="CASE_VALUE"||t.value.type==="STRING_FUNC")}function Ql(e){Xl(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Kf(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?pr(n,t):n.type==="STRING_FUNC"?Zl(n,t):n.type==="CASE_VALUE"&&Gf(n.expr,t);return jf(e).forEach(n=>t.add(n)),{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function Kf(e,t){si(e.left,t),si(e.right,t)}function si(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Kf(e,t):e.type==="STRING_FUNC"&&Zl(e,t)}function Zl(e,t){for(let n of e.args)eS(n,t)}function eS(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Sa(e,t);return}pr(e,t)}function pr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Zl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){pr(e.left,t),pr(e.right,t);return}e.type==="CASE_WHEN"&&Gf(e,t)}function Sa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&tS(e.arg,t);return}e.type==="AGG_ARITH"&&(Sa(e.left,t),Sa(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function tS(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?si(e,t):pr(e,t)}function Mf(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Sa(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){si(e,t);return}pr(e,t)}}function Gf(e,t){for(let n of e.branches)Aa(n.condition,t),Mf(n.result,t);e.elseResult!==null&&Mf(e.elseResult,t)}function Aa(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&si(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Aa(e.left,t),Aa(e.right,t);break;case"NOT":case"GROUP":Aa(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function eu(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=$f(o),l={};for(let{field:c,value:p}of e.assignments)l[c]={value:tu(p,s,n.get(c),o,r)};return{id:a,record:l}});return ci(i,100).map(o=>({app:e.appId,records:o}))}function tu(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?ru(e,r):Ee(e,t,i));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Le(e,t,void 0,void 0,i));if(e.type==="STRING_FUNC")return he(e,t,void 0,void 0,i);if(e.type==="CASE_VALUE")return Kt(e.expr,t,n,i);if(e.type==="SOURCE_FIELD")throw new oe("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return St(e,n)}function wa(e,t,n,r={}){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return q(e);if(e.type==="ARITH")return String(Ee(e,t,r));if(e.type==="CASE_VALUE")return He(e.expr,t,n,void 0,r);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var nS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function nu(e,t,n=new Map,r={}){let i=t.map(({target:o,source:a})=>{let s=Number(o.$id?.value);if(!Number.isSafeInteger(s)||s<=0)throw new oe("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let l=$f(o),c={};for(let{field:p,value:u}of e.assignments){let d=n.get(p);if(u.type==="SOURCE_FIELD"){if(nS.has(d??""))throw new oe(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${d} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${p}\uFF09`);if(!Object.prototype.hasOwnProperty.call(a,u.field))throw new oe(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let f=a[u.field];if(typeof f!="string")throw new oe(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((d==="NUMBER"||d==="CALC")&&f!==""&&!Number.isFinite(Number(f)))throw new oe(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${f}`);c[p]={value:St({type:"STRING",value:f},d)}}else{if(u.type==="STRING_FUNC")throw new oe("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");u.type==="ARITH"?c[p]={value:String(ru(u,o))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?c[p]={value:String(Le(u,l,void 0,void 0,r))}:u.type==="CASE_VALUE"?c[p]={value:Kt(u.expr,l,d,r)}:c[p]={value:St(u,d)}}}return{id:s,record:c}});return ci(i,100).map(o=>({app:e.appId,records:o}))}function $f(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function ru(e,t){let n=kf(e.left,t),r=kf(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new oe("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new oe("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function kf(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return ru(e,t);if(e.type==="STRING_FUNC")throw new oe("UPDATE SET \u306E\u7B97\u8853\u5F0F\u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093");let n=t[e.field]?.value??"",r=Number(n);if(Number.isNaN(r))throw new oe(`\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 "${e.field}" \u306E\u5024 "${n}" \u306F\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return r}function Bf(e){return Xl(e.where),{app:e.appId,query:z(e.where),fields:["$id"],totalCount:!1}}function Vf(e,t){return ci(t,100).map(n=>({app:e,ids:n}))}function Wf(e){return JA.has(e??"")}function rS(e){return XA.has(e??"")}function iS(e){if(!e||/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?Z$/.test(e))return e;let t=e.replace(/\//g,"-").replace(" ","T");/T\d{2}:\d{2}$/.test(t)&&(t+=":00");let n=new Date(t);return isNaN(n.getTime())?e:n.toISOString().replace(/\.\d{3}Z$/,"Z")}function oS(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Hf(e,t){return Wf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):rS(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?iS(e):t==="DATE"?oS(e):e}function Yf(e,t){return Wf(t)?e.map(n=>({code:n})):e}function xf(e,t,n,r){if(e.type==="ARRAY")return Yf(e.elements.map(i=>i.value),n);if(e.type==="AGG_REF"||e.type==="AGG_ARITH")throw new Error("InternalError: aggregate CASE result reached DML evaluation.");return e.type==="STRING"?Hf(e.value,n):e.type==="STRING_FUNC"?he(e,t,void 0,void 0,r):e.type==="FIELD_REF"||e.type==="ARITH"?String(Ee(e,t,r)):String(Le(e,t,void 0,void 0,r))}function jf(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(cr(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Kt(e,t,n,r={}){for(let i of e.branches)if(le(i.condition,t,void 0,void 0,void 0,r))return xf(i.result,t,n,r);return e.elseResult!==null?xf(e.elseResult,t,n,r):""}function St(e,t){let n=iu(e,t);if(!n.ok)throw new oe(n.message);return n.value}function iu(e,t){try{return{ok:!0,value:aS(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function aS(e,t){switch(e.type){case"VARIABLE":throw new oe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new oe(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Hf(e.value,t);case"NUMBER":return q(e);case"ARRAY":return Yf(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new oe(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new oe("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new oe("\u7B97\u8853\u5F0F\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new oe("CASE WHEN \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new oe("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new oe("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function ci(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var oe=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var ou=new Set(["CHECK_BOX","MULTI_SELECT"]),sS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function pi(e){throw new Error(`ArgumentError: ${e}`)}function zf(e,t,n){let r=lS(n.fieldType,e.field),i=uS(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let g=y.value;g!==""&&(y.kind==="ADD"?(s.has(g)||a.push(g),s.add(g)):l.add(g))}for(let y of s)l.has(y)&&pi(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let c=i.filter(y=>!l.has(y)),p=a.filter(y=>!o.has(y)),u=[...c,...p],d=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let g=y.kind==="ADD"?f:E,S=!g.has(y.value);return g.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&S&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=ou.has(r)?u:u.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:R,postImageValue:m,addedValues:p.length,removedValues:d,changedValues:p.length+d}}function lS(e,t){return ou.has(e)||sS.has(e)?e:pi(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function uS(e,t,n){if(!Array.isArray(e))return pi(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>ou.has(t)?typeof i!="string"?pi(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?pi(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function X(e){throw new Error(`ArgumentError: ${e}`)}function lu(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?X("APPLY parent selector must be a single positive $id."):t.right.value}function Gt(e,t){let n=e.applyBlocks;if(!n?.length)return X("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)au(s.field,null,r),cS(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&X(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(u=>u.field===s.field)&&X(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(u=>u.code===s.field&&!u.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?X(`APPLY target ${s.field} is not a SUBTABLE.`):X(`APPLY target ${s.field} does not exist as a top-level field.`);if(ud(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&X(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let c=l,p=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,c),a.set(s.field,p);for(let u of s.operations)if(u.kind==="PATCH"){for(let d of u.assignments)au(d.field,s.field,r,p),su(d.value,s.field,r,p);u.selector.kind==="WHERE"&&su(u.selector.where,s.field,r,p)}else if(u.kind==="APPEND"){let d=new Set;for(let f of u.fields)d.has(f)&&X(`APPLY APPEND specifies child ${f} more than once.`),d.add(f),au(f,s.field,r,p)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&su(u.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function cS(e,t){di(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&X(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&X(`APPLY parent FILE reference ${n} is not supported.`)})}function au(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&X(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);t!==null&&o?.inSubtable&&X(`APPLY child ${e} does not belong to subtable ${t}.`),X(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&X(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function su(e,t,n,r){di(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&X(`APPLY child reference ${i} does not belong to subtable ${t}.`),X(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function ba(e,t){let n=Gt(e,t),r=new Set(["$id","$revision"]);for(let i of t)i.inSubtable||i.fieldType==="FILE"||r.add(i.code);for(let i of n.targetTables.values())r.add(i.code);for(let i of e.assignments)di(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Na(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=eE(i?.value);return n}function Jf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Gt(t,r),o=pu(n.$id?.value,"APPLY snapshot $id"),a=lu(t);return o!==a&&X(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Qf(t,n,i,o,e.evaluationContext)}function Xf(e,t,n,r=Gt(e,n),i={}){let o=new Set;return t.map(a=>{let s=pu(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&X(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),Qf(e,a,r,s,i)})}function Qf(e,t,n,r,i={}){let o=pu(t.$revision?.value,"APPLY snapshot $revision"),a=[],s=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let k=n.targetMultiValueFields.get(u.field);k||X(`APPLY multi-value metadata for ${u.field} is missing.`),s.push(zf(u,t[u.field]?.value,k));continue}let d=n.childrenByTable.get(u.field),f=mS(t,u.field),E=new Set;for(let k of f)k.id||X(`APPLY snapshot for ${u.field} contains a row without _rid.`),E.has(k.id)&&X(`APPLY snapshot for ${u.field} contains duplicate _rid ${k.id}.`),E.add(k.id);let R=k=>k.field==="_rid"?"SINGLE_LINE_TEXT":k.field==="_idx"?"NUMBER":d.get(k.field)?.fieldType,m=[],y=[],g=[],S=new Set,A=new Set,I=new Set,N=u.operations.some(k=>k.kind==="REMOVE");for(let[k,P]of u.operations.entries()){if(P.kind==="APPEND"){let C=uu(P,d,u.field,i);g.push({kind:"APPEND",addedRows:C.length}),y.push(...C);continue}if(P.kind==="REMOVE"){let C=fS(P,f,R,u.field,i);P.expectRows&&qf(P.expectRows,C.length,r,u.field,k,P.kind),g.push({kind:"REMOVE",removedRows:C.length});for(let h of C){let w=f[h].id;A.has(h)&&X(`APPLY row ${w} is selected by both PATCH and REMOVE.`),I.has(h)&&X(`APPLY removes row ${w} more than once.`),I.add(h)}continue}if(P.kind!=="PATCH")continue;let O=dS(P,f,R,u.field,i);P.expectRows&&qf(P.expectRows,O.length,r,u.field,k,P.kind),g.push({kind:"PATCH",matchedRows:O.length,changedRows:O.length});for(let C of O){let h=f[C];I.has(C)&&X(`APPLY row ${h.id} is selected by both PATCH and REMOVE.`),A.add(C);let w=Na(h,C);for(let _ of P.assignments){let L=`${h.id}\0${_.field}`;S.has(L)&&X(`APPLY patches cell ${h.id}.${_.field} more than once.`),S.add(L),m.push({rowIndex:C,field:_.field,value:wa(_.value,w,R,i)})}}}let v=new Map;for(let k of m){let P=v.get(k.rowIndex)??{};P[k.field]={value:k.value},v.set(k.rowIndex,P)}let M=[...f.flatMap((k,P)=>I.has(P)?[]:[{id:k.id,value:{...k.value,...v.get(P)??{}}}]),...y],D={table:u.field,operations:g,changedSubtableRows:v.size+I.size+y.length,deletedRows:I.size,snapshotRowIds:f.map(k=>k.id),postImageRows:M};N?a.push({...D,payloadShape:"FULL_SURVIVORS",removedRowIds:f.flatMap((k,P)=>I.has(P)?[k.id]:[]),payloadRows:M.map(k=>({...k.id===void 0?{}:{id:k.id},value:k.value}))}):a.push({...D,payloadShape:"PATCH_ONLY",payloadRows:[...f.map((k,P)=>{let O=v.get(P);return O?{id:k.id,value:O}:{id:k.id}}),...y.map(k=>({value:k.value}))]})}let l=yS(t),c={};for(let u of e.assignments){let d=n.fieldsByCode.get(u.field)?.fieldType;c[u.field]={value:tu(u.value,l,d,t,i)}}let p={...t};Object.assign(p,c);for(let u of a)p[u.table]={value:u.postImageRows};for(let u of s)p[u.field]={value:u.postImageValue};return{app:e.appId,parentId:r,revision:o,parentRows:1,changedSubtableRows:a.reduce((u,d)=>u+d.changedSubtableRows,0),parentValues:c,postImage:p,tables:a,multiValues:s}}function qf(e,t,n,r,i,o){if(e.kind==="EXACT"?t===e.count:e.kind==="BETWEEN"?t>=e.min&&t<=e.max:e.kind==="AT_LEAST"?t>=e.count:t<=e.count)return;let s=e.kind==="EXACT"?`exactly ${e.count}`:e.kind==="BETWEEN"?`between ${e.min} and ${e.max}`:e.kind==="AT_LEAST"?`at least ${e.count}`:`at most ${e.count}`;X(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Ca(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return X(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,c)=>{let p=a[c];return p?.value?l.id===void 0?{value:p.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,p.value[u]]))}:X(`APPLY normalized post-image for ${o.table} row ${c+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:X(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function uu(e,t,n,r={}){return e.values.map(i=>({value:pS(e,i,t,n,r)}))}function pS(e,t,n,r,i){if(t.length!==e.fields.length)return X(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let o=new Map(e.fields.map((s,l)=>[s,t[l]])),a={};for(let s of n.values()){if(s.fieldType==="FILE"||s.writable===!1)continue;let l=o.get(s.code);a[s.code]={value:l===void 0?cu(s):l.type==="CASE_VALUE"?Kt(l.expr,{},s.fieldType,i):St(l,s.fieldType)}}return a}function cu(e){return e.defaultValue!==void 0&&e.defaultValue!==null?e.defaultValue:["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(e.fieldType)?[]:""}function dS(e,t,n,r,i={}){return Zf(e.selector,t,n,r,i)}function fS(e,t,n,r,i={}){return Zf(e.selector,t,n,r,i)}function Zf(e,t,n,r,i={}){if(e.kind==="ALL_ROWS")return t.map((c,p)=>p);let o=e.where,a=t.flatMap((c,p)=>le(o,Na(c,p),n,void 0,void 0,i)?[p]:[]),s=ES(o);s!==null&&a.length===0&&X(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=RS(o);return l!==null&&a.length===0&&X(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function ES(e){return e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="_rid"?null:e.right.type==="STRING"?e.right.value:e.right.type==="NUMBER"?e.right.raw??String(e.right.value):null}function RS(e){return e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="_idx"||e.right.type!=="NUMBER"?null:Number.isSafeInteger(e.right.value)&&e.right.value>=0?e.right.value:null}function mS(e,t){let n=e[t]?.value;return Array.isArray(n)?n.map(r=>{let i=r;return{id:typeof i.id=="string"?i.id:"",value:i.value&&typeof i.value=="object"?i.value:{}}}):X(`APPLY snapshot field ${t} is not a subtable value.`)}function pu(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&X(`${t} must be a positive integer.`),n}function yS(e){let t={};for(let[n,r]of Object.entries(e))t[n]=eE(r?.value);return t}function eE(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function di(e,t){if(Array.isArray(e)){e.forEach(r=>di(r,t));return}if(e===null||typeof e!="object")return;let n=e;(n.type==="FIELD"||n.type==="FIELD_REF")&&typeof n.field=="string"&&t(n.field);for(let r of Object.values(n))di(r,t)}function Re(e){throw new Error(`ArgumentError: ${e}`)}function Oa(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?Re("APPLY snapshot $revision must be a positive integer."):t}function fi(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return Re("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return Re("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&Re(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&Re(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&Re(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),gS(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function tE(e){if(e.records.length===0)return[];let t=e.plans[0]?.app;if(!Number.isSafeInteger(t)||t<=0||e.plans.length!==e.records.length)return Re("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function gS(e){let t=du(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(p=>p.id===void 0?[]:[p.id]);for(let p of e.payloadRows)p.id===void 0&&p.value===void 0&&Re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(du(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(d=>d.kind==="REMOVE")&&Re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(d=>d.id??"");Pa(t,p,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(d=>d.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(d=>d.id??"");Pa(t,u,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(d=>d.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||Re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=du(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&Re(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&Re(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(p=>p.id===void 0?[]:[p.id]),o=new Set(r),a=new Set(i);for(let p of r)a.has(p)&&Re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));Pa(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(p=>p.id??"");Pa(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(p=>p.id!==void 0)||e.postImageRows.slice(i.length).some(p=>p.id!==void 0))&&Re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&Re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,u)=>!fu(p.value,e.postImageRows[u]?.value))&&Re(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let c=new Set([...i,...r]);(c.size!==t.length||t.some(p=>!c.has(p)))&&Re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function du(e,t){let n=[...e],r=new Set;for(let i of n)i||Re(`APPLY ${t} contains an empty row id.`),r.has(i)&&Re(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function Pa(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&Re(n)}function fu(e,t){if(Object.is(e,t))return!0;if(Array.isArray(e)||Array.isArray(t))return Array.isArray(e)&&Array.isArray(t)&&e.length===t.length&&e.every((a,s)=>fu(a,t[s]));if(e===null||t===null||typeof e!="object"||typeof t!="object")return!1;let n=e,r=t,i=Object.keys(n),o=Object.keys(r);return i.length===o.length&&i.every(a=>Object.prototype.hasOwnProperty.call(r,a)&&fu(n[a],r[a]))}function nE(e,t,n,r){if(typeof e!="string"||!/^\d+$/.test(e))throw new Error(`SettingsError: numberPrecision.${t} must be an integer string.`);let i=0;for(let o of e)i=i*10+o.charCodeAt(0)-48;if(i<n||i>r)throw new Error(`SettingsError: numberPrecision.${t} must be between ${n} and ${r}.`);return i}function rE(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=nE(t.digits,"digits",1,30),r=nE(t.decimalPlaces,"decimalPlaces",0,10),i=t.roundingMode;if(i!=="HALF_EVEN"&&i!=="UP"&&i!=="DOWN")throw new Error("SettingsError: numberPrecision.roundingMode is unsupported.");return{digits:n,decimalPlaces:r,roundingMode:i}}function iE(e){return e.sign===0?{integerDigits:0,fractionDigits:0}:{integerDigits:Math.max(e.coefficient.length-e.scale,0),fractionDigits:Math.max(e.scale,0)}}var hS=new Set(["CHECK_BOX","MULTI_SELECT"]),AS=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ye(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=SS(e);if(i!==""&&!TS(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=Ei(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:IS(t.fieldType),message:o}}if(t.required&&La(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!La(r)&&t.fieldType==="NUMBER"){let i=String(r),o=we(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&wo(i,t.minValue)<0)return{ok:!1,code:"ERR_RANGE_MIN",message:`${t.code} \u306F ${t.minValue} \u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.maxValue!=null&&wo(i,t.maxValue)>0)return{ok:!1,code:"ERR_RANGE_MAX",message:`${t.code} \u306F ${t.maxValue} \u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(n!==void 0){let{integerDigits:a}=iE(o),s=n.digits-n.decimalPlaces;if(a>s)return{ok:!1,code:"ERR_NUMBER_INTEGER_DIGITS",message:`${t.code} \u306E\u6574\u6570\u90E8\u306F ${a} \u6841\u3067\u3059\u3002\u8A31\u5BB9\u306F ${s} \u6841\u307E\u3067\u3067\u3059 (digits=${n.digits}, decimalPlaces=${n.decimalPlaces})`}}}if(!La(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!In(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!La(r)&&AS.has(t.fieldType)&&t.optionOrder&&(Array.isArray(r)?r.map(String):[String(r)]).some(o=>!(o in t.optionOrder))?{ok:!1,code:"ERR_CHOICE_INVALID",message:`${t.code} \u306B\u5B9A\u7FA9\u5916\u306E\u9078\u629E\u80A2\u304C\u3042\u308A\u307E\u3059`}:{ok:!0,value:r}}function SS(e){return e==null?"":_a(e)&&e.type==="NUMBER"?q(e):_a(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function TS(e,t){if(t==="DATE")return In(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return In(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?In(n.slice(0,10),"DATE")&&In(n.slice(11),"TIME"):In(n,"DATETIME")}function Ei(e,t){if(_a(e)){let r=iu(e,t);if(!r.ok)throw new Error(r.message);return r.value}if(Array.isArray(e))return e.map(r=>typeof r=="object"&&r!==null&&"code"in r?String(r.code):String(r));let n=e==null?"":String(e);if(hS.has(t)){if(n==="")return[];try{let r=JSON.parse(n);if(Array.isArray(r))return r.map(String)}catch{}return n.split(",").map(r=>r.trim())}return n}function _a(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function wn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(_a(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function La(e){return e===""||Array.isArray(e)&&e.length===0}function IS(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function In(e,t){if(t==="TIME"){let c=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return c!==null&&Number(c[1])<=23&&Number(c[2])<=59&&Number(c[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&In(l,"TIME")}var dr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Eu(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(p=>typeof p=="object"&&p!==null&&"code"in p),c=a;try{c=Ei(a,s)}catch{}i.record[o]={value:l?a:c}}}}function Ru(e,t,n,r,i,o,a,s=[],l=!0,c=!0,p={}){let u=new Map(i.map(m=>[m.code,m])),d=[],f=new Set,E=[];p.validateUpdateBuiltIns===!1&&Eu(e,r,i);let R;for(let m of e){m.record??={};let y=c?[...m.preErrors]:[],g=[],S=[],A=m.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let b of r){if(!m.payload.has(b))continue;let M=m.payload.get(b),D=u.get(b).fieldType,k=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(D)&&Array.isArray(M)&&M.every(O=>typeof O=="object"&&O!==null&&"code"in O);if(!A)continue;let P=Ye(M,u.get(b),a);P.ok?m.record[b]={value:k?M:P.value}:g.push({field:b,code:P.code,message:P.message})}if(l&&m.mode==="create")for(let b of i){if(b.inSubtable||m.payload.has(b.code))continue;if(wn(b.defaultValue)){let D=Ye("",b,a);D.ok?b.required&&g.push({field:b.code,code:"ERR_REQUIRED",message:`${b.code} \u306F\u5FC5\u9808\u3067\u3059`}):g.push({field:b.code,code:D.code,message:D.message})}else{let D=Ye(b.defaultValue,b,a);D.ok||g.push({field:b.code,code:D.code,message:`\u65E2\u5B9A\u5024: ${D.message}`})}}if(s.length>0){let b=m.evaluationRow??Object.fromEntries([...m.payload].map(([k,P])=>[k,Tt(P)])),M=m.evaluationFieldTypes,D=k=>{let P=k.tableAlias?`${k.tableAlias}.${k.field}`:k.field;return M?.get(P)??M?.get(k.field)};try{for(let k of ha(s,b,D))S.push({field:"",code:"ERR_CHECK",message:k.message})}catch(k){R??=k}}let I=b=>b.map(M=>{let D={};for(let k of n)D[k]=Tt(m.payload.get(k));return D.$err_statement=String(o),D.$err_operation=t,D.$err_row=String(m.rowNumber),D.$err_field=M.field,D.$err_code=M.code,D.$err_message=M.message,D.$err_value="",D.$err_subtable="",D.$err_subrow="",D.$err_subrow_id="",D}),N={rowNumber:m.rowNumber,preErrors:I(y),builtInErrors:I(g),checkErrors:I(S)};E.push(N);let v=[...N.preErrors,...N.builtInErrors,...N.checkErrors];v.length>0&&f.add(m.rowNumber),d.push(...v)}if(R!==void 0)throw R;return{errors:d,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function Tt(e){if(e==null)return"";if(typeof e=="object"&&"type"in e){let t=e;if(t.type==="NUMBER")return t.raw??String(t.value??"");if(t.type==="STRING")return String(t.value??"");if(t.type==="ARRAY")return JSON.stringify(t.elements?.map(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var mu=["required","length","range","choice"];function yu(e){return[...e.required===!0?["required"]:[],...e.minLength!==void 0||e.maxLength!==void 0?["length"]:[],...e.minValue!==void 0||e.maxValue!==void 0?["range"]:[],...e.optionOrder!==void 0?["choice"]:[]]}function gu(e){let t=e.filter(r=>!r.inSubtable),n=new Map;for(let r of e){if(!r.inSubtable||!r.subtableCode)continue;let i=n.get(r.subtableCode)??[];i.push(r),n.set(r.subtableCode,i)}return{topLevel:t,topByCode:new Map(t.map(r=>[r.code,r])),childrenByTable:n}}function wS(e){return yu(e).length>0}function bS(e){return e.fieldType==="NUMBER"||wS(e)}function va(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function hu(e,t){let{topByCode:n,childrenByTable:r}=gu(t),i=bS;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,c)=>{let p=c?`${c}\0${l.code}`:l.code;if(a.has(p))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(p),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...c?{subtableCode:c}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let u=r.get(l.subtableCode);if(!u)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let d of l.children){let f=u.find(E=>E.code===d);if(!f){let E=[...r.entries()].some(([R,m])=>R!==l.subtableCode&&m.some(y=>y.code===d));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let c=l.field;if(c==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let p=n.get(c);if(p?.fieldType==="SUBTABLE"){let u=(r.get(c)??[]).filter(i);if(u.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${c} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);u.forEach(d=>s(d,c));continue}if(p){s(p);continue}throw[...r.values()].some(u=>u.some(d=>d.code===c))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${c}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Ri(e,t){return wn(e)?"":Tt(Ei(e,t))}var NS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),mi=dr;function It(e,t=["$id"]){let n=gu(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!NS.has(o.fieldType)),i=new Map;for(let[o,a]of n.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:r,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function bn(e,t){if(t.topLevel.some(n=>n.fieldType==="NUMBER"&&n.code in e))return!0;for(let[n,r]of t.subtables){if(!r.some(o=>o.fieldType==="NUMBER"))continue;let i=e[n]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(r.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function Nn(e,t,n,r,i=1,o="UPDATE"){let a=CS(e),s=[],l=new Set,c=[...t.payloadFields,...mi],p=Tt(e.$id?.value),u=(d,f,E,R)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?p:Tt(e[y]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=d.code,m.$err_code=E.code,m.$err_message=E.message,m.$err_value=Ri(f,d.fieldType),m.$err_subtable=R?.subtable??"",m.$err_subrow=R?String(R.subrow):"",m.$err_subrow_id=R?.subrowId??"",s.push(m)};for(let d of t.topLevel){let f=e[d.code]?.value,E=Ye(f,d,n);E.ok?a[d.code]={value:oE(f,d.fieldType,E.value)}:u(d,f,E)}for(let[d,f]of t.subtables){let E=e[d]?.value;if(!Array.isArray(E))continue;let R=a[d]?.value;for(let m=0;m<E.length;m++){let y=E[m],g=R[m];for(let S of f){let A=y.value?.[S.code]?.value,I=Ye(A,S,n);I.ok?(g.value??={},g.value[S.code]={value:oE(A,S.fieldType,I.value)}):u(S,A,I,va(d,m,y))}}}return{normalizedRecord:a,errors:s,columns:c,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function oE(e,t,n){return["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(t)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)?e:n}function CS(e){let t={};for(let[n,r]of Object.entries(e)){let i=r?.value;t[n]={value:Array.isArray(i)?i.map(o=>{if(o===null||typeof o!="object")return o;let a=o;return a.value?{...a,value:Object.fromEntries(Object.entries(a.value).map(([s,l])=>[s,{...l}]))}:{...a}}):i}}return t}async function Da(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;aE(o,"dmlMaxRows"),aE(a,"dmlMaxSubtableRows");for(let S of n)Oa(S);let l=Xf(t,n,r,i),c=It(r,t.assignments.map(S=>S.field)),p=l.some(S=>bn(S.postImage,c));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=p?await e.loadNumberPrecision():void 0,d=l.map((S,A)=>Nn(S.postImage,c,u,s,e.parentRowNumbers?.[A]??A+1));if(!t.validateOnly){let S=d.flatMap(A=>A.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:S})}`)}let f=l.length,E=l.reduce((S,A)=>S+A.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((S,A)=>Ca(S,d[A].normalizedRecord)),y=m.flatMap(S=>fi(S).records),g=d.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return sE({plans:m,records:y,validations:g,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function aE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function sE(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))sE(n,t);return Object.freeze(e)}var Au=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Ua(e,t){if(new Set(e.fields).size!==e.fields.length)return wt("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)lE(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return wt(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return wt(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return wt(`APPLY INSERT supports APPEND only (${l.kind}).`);let c=new Set;for(let p of l.fields){if(c.has(p))return wt(`APPLY APPEND specifies child ${p} more than once.`);c.add(p),lE(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return wt(`APPLY APPEND for ${o.field} has ${p.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function PS(e,t,n=Ua(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Ta(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),c=s.operations.flatMap(p=>uu(p,l,s.field));return{table:s.field,rows:c,addedRows:c.length}});return o.map((s,l)=>{let c={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||Au.has(u.fieldType)||(c[u.code]=s[u.code]??{value:cu(u)});let p={...s};for(let u of a){let d=u.rows.map(f=>({value:f.value}));c[u.table]={value:d},p[u.table]={value:d}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:c,record:p}})}async function yi(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;uE(r,"dmlMaxRows"),uE(i,"dmlMaxSubtableRows");let a=e.metadata??Ua(t,n),s=PS(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!Au.has(A.fieldType)),c=It(l,t.fields),p=s.some(A=>bn(A.postImage,c));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=p?await e.loadNumberPrecision():void 0,d=s.map(A=>Nn(A.postImage,c,u,o,A.parentRowNumber,"INSERT"));if(!t.validateOnly){let A=d.flatMap(I=>I.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:A})}`)}let f=s.length,E=s.reduce((A,I)=>A+I.tables.reduce((N,v)=>N+v.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((A,I)=>{let N=d[I].normalizedRecord,v={};for(let b of t.fields)v[b]=N[b];for(let b of A.tables){let M=N[b.table]?.value;v[b.table]={value:b.rows.map((D,k)=>({value:Object.fromEntries(Object.keys(D.value).map(P=>[P,M[k]?.value?.[P]??D.value[P]]))}))}}return{...A,postImage:N,record:v}}),y=m.map(A=>A.record),g=[];for(let A=0;A<y.length;A+=100)g.push({app:t.appId,records:y.slice(A,A+100)});let S=d.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return cE({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:g,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function lE(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return wt(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);return t!==null&&o?.inSubtable?wt(`APPLY child ${e} does not belong to subtable ${t}.`):wt(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Au.has(i.fieldType))return wt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function uE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function wt(e){throw new Error(`ArgumentError: ${e}`)}function cE(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))cE(n,t);return Object.freeze(e)}async function dE(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;pE(i,"dmlMaxRows"),pE(o,"dmlMaxSubtableRows"),DS(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),c=OS(t,s.map(y=>y.sourceRowIndex)),p=await yi({statement:c,fieldInfos:r,metadata:Ua(c,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],d=new Set;for(let y of l){let g=y.targetId;d.has(g)&&Su(`UPSERT APPLY resolves more than one source row to parent $id ${g}.`),d.add(g),y.snapshot||Su(`UPSERT APPLY snapshot for parent $id ${g} is missing.`);let S=Number(y.snapshot.$id?.value);S!==g&&Su(`UPSERT APPLY snapshot $id ${S} does not match target $id ${g}.`);let A=LS(t,y.sourceRowIndex,g),I=A.applyBlocks?.length?Gt(A,r):_S(r);u.push(await Da({statement:A,snapshots:[y.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=vS(u,i,o),E=p.guards.parentRows+f.guards.parentRows,R=p.guards.subtableRows+f.guards.subtableRows,m=E>i||R>o;if(!t.validateOnly){let y=[...p.validations.flatMap(g=>g.errors),...f.validations.flatMap(g=>g.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return Tu({create:p,update:f,createBatches:p.batches,updateBatches:US(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:m,create:p.guards,update:f.guards}})}function OS(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function LS(e,t,n){let r=e.fields.map((i,o)=>({field:i,value:e.values[t][o]}));return{type:"UPDATE",appId:e.appId,subtableCode:null,assignments:r,from:null,where:{type:"BINARY",op:"=",left:{type:"FIELD",tableAlias:null,field:"$id"},right:{type:"NUMBER",value:n,raw:String(n)}},applyBlocks:e.onUpdateApplyBlocks??[],validateOnly:!0}}function _S(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function vS(e,t,n){let r=e.flatMap(s=>s.plans),i=e.flatMap(s=>s.records),o=e.flatMap(s=>s.validations),a=r.reduce((s,l)=>s+l.changedSubtableRows,0);return Tu({plans:r,records:i,validations:o,guards:{revisionRequired:!0,parentRows:r.length,dmlMaxRows:t,subtableRows:a,dmlMaxSubtableRows:n,wouldExceed:r.length>t||a>n}})}function DS(e,t){if(t.length!==e.values.length)throw new Error("InternalError: UPSERT APPLY match count differs from VALUES rows.");let n=new Set;for(let r of t){if(!Number.isSafeInteger(r.sourceRowIndex)||r.sourceRowIndex<0||r.sourceRowIndex>=e.values.length||n.has(r.sourceRowIndex))throw new Error("InternalError: UPSERT APPLY matches must cover each source row exactly once.");n.add(r.sourceRowIndex)}}function US(e,t){let n=[];for(let r=0;r<e.length;r+=100)n.push({app:t,records:e.slice(r,r+100)});return n}function pE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Su(e){throw new Error(`ArgumentError: ${e}`)}function Tu(e,t=new Set){if(e===null||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.values(e))Tu(n,t);return Object.freeze(e)}function hi(e){return fr("UPDATE",[RE(e)])}function Iu(e){return fr("INSERT",[EE(e)])}function wu(e){return fr("UPSERT",[EE(e.create),RE(e.update)])}function Je(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function ka(e,t,n){return e.type==="UPDATE"?fr("UPDATE",[Ma("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?fr("INSERT",[Ma("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):fr("UPSERT",[Ma("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Ma("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function fr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function EE(e){let t=new Map;if(e.applyBlocks)for(let n of e.applyBlocks){let r=n.operations.map(i=>{if(i.kind!=="APPEND")throw new Error(`InternalError: prepared APPLY INSERT contains ${i.kind}.`);let o=i.values.length*e.guards.parentRows;return{kind:"APPEND",count:o,addedRows:o}});t.set(n.field,{targetKind:n.targetKind,field:n.field,operations:r,changedCount:r.reduce((i,o)=>i+(o.addedRows??0),0)})}else for(let n of e.candidates)for(let r of n.tables){let i=t.get(r.table),o=i?.operations[0]?.addedRows??0;t.set(r.table,{targetKind:"SUBTABLE",field:r.table,operations:[{kind:"APPEND",count:o+r.addedRows,addedRows:o+r.addedRows}],changedCount:(i?.changedCount??0)+r.addedRows})}return{branch:"insert",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:e.batches.length},deletedParentRows:0}}function RE(e){let t=new Map,n=0;for(let r of e.plans){let i=!1;for(let o of r.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:fE(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:fE(a?.operations,o.operations.map(l=>({kind:l.kind,value:l.value,count:l.changed?1:0,changed:l.changed}))),changedCount:(a?.changedCount??0)+o.changedValues,postImages:[...a?.postImages??[],s]})}i&&(n+=1)}return{branch:"update",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:Math.ceil(e.records.length/100)},deletedParentRows:n}}function fE(e,t){return e?t.map((n,r)=>{let i=e[r];if(!i||i.kind!==n.kind||i.value!==n.value)throw new Error("InternalError: APPLY diagnostic operation shape differs between parents.");return{...n,...i.changed!==void 0?{changed:i.changed}:{},count:gi(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:gi(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:gi(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:gi(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:gi(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function gi(e,t){return e==null||t===null?null:e+t}function Ma(e,t,n,r,i,o){let a=t.map(p=>{let u=p.operations.map(f=>MS(f,n)),d=u.every(f=>f.count!==null)?u.reduce((f,E)=>f+E.count,0):null;return{targetKind:p.targetKind,field:p.field,operations:u,changedCount:d}}),s=a.filter(p=>p.targetKind==="SUBTABLE"),l=s.every(p=>p.changedCount!==null)?s.reduce((p,u)=>p+u.changedCount,0):null,c=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:c},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function MS(e,t){if(e.kind==="APPEND"){let n=t===null?null:e.values.length*t;return{kind:e.kind,count:n,addedRows:n}}return e.kind==="PATCH"?{kind:e.kind,count:null,matchedRows:null,changedRows:null}:e.kind==="REMOVE"?{kind:e.kind,count:null,removedRows:null}:{kind:e.kind,value:e.value,count:null}}var bt=class extends Error{constructor(t,n){let r=n instanceof Error?n.message:String(n),i=t.failedStage==="POST_CHUNK"?"POST":"PUT",o=t.failedBranch?` UPSERT ${t.failedBranch}`:"";super(`ApplyWritePartialFailureError: APPLY${o} ${i} chunk ${t.failedChunkIndex+1} failed (index ${t.failedChunkIndex}) after ${t.successfulChunks} successful chunk(s) and ${t.successfulParents} successful parent(s); writes are non-transactional and were not retried. Cause: ${r}`),this.name="ApplyWritePartialFailureError",this.partialSuccess=t,this.cause=n}};async function mE(e,t,n){Zn("phase10c");let r=tE(e),i=0,o=0;for(let a=0;a<r.length;a+=1){let s=r[a];try{await t.putRecords(s)}catch(l){throw new bt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Je(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function yE(e,t,n){Zn("phase13c");let r=[],i=0,o=0;for(let a=0;a<e.batches.length;a+=1){let s=e.batches[a];try{let l=await t.postRecords({app:s.app,records:[...s.records]});r.push(l.ids)}catch(l){throw new bt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Je(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function gE(e,t,n){Zn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let c=e.createBatches[l];try{let p=await t.postRecords({app:c.app,records:[...c.records]});r.push(p.ids)}catch(p){throw new bt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Je(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},p)}i+=1,a+=c.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let c=e.updateBatches[l];try{await t.putRecords({app:c.app,records:[...c.records]})}catch(p){throw new bt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Je(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},p)}o+=1,s+=c.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var kS=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function xS(e){if(!kS.test(e))throw new Error(`ArgumentError: invalid variable name "${e}". Use a name without @ matching [A-Za-z_][A-Za-z0-9_]{0,63}.`);return e.toLowerCase()}function FS(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=xS(n);if(Object.prototype.hasOwnProperty.call(t,i))throw new Error(`ArgumentError: variable "${n}" is specified more than once.`);t[i]=r}return t}function bu(e,t){let n=FS(t),r=new Set(e.filter(i=>i.type==="DECLARE_VARIABLE").map(i=>i.name));for(let i of Object.keys(n))if(!r.has(i))throw new Error(`ArgumentError: injected variable @${i} is not declared.`);return n}function KS(e){return e.type!=="SELECT"||!Array.isArray(e.joins)?!1:e.joins.some(t=>{if(t===null||typeof t!="object")return!1;let n=t.type;return n==="LEFT"||n==="RIGHT"})}function Nu(e){let t=new Set,n=r=>{if(Array.isArray(r))return r.some(n);if(r===null||typeof r!="object"||t.has(r))return!1;t.add(r);let i=r;return KS(i)?!0:Object.values(i).some(n)};return n(e)}function hE(e,t,n){if(n)return t===e.from&&e.joins.some(r=>r.type==="RIGHT");for(let r=0;r<e.joins.length;r+=1){let i=e.joins[r];if(i.type==="LEFT"&&t===i.table||i.type==="RIGHT"&&e.joins.slice(0,r).some(o=>t===o.table))return!0}return!1}function Nt(e){let t=[["recursiveCteMaxDepth",e.recursiveCteMaxDepth,100],["recursiveCteMaxRows",e.recursiveCteMaxRows,1e4],["recursiveCteMaxExpansions",e.recursiveCteMaxExpansions,1e5]];for(let[n,r]of t)if(r!==void 0&&(!Number.isSafeInteger(r)||r<=0))throw new RangeError(`${n} must be a positive safe integer`);return{depth:e.recursiveCteMaxDepth??100,rows:e.recursiveCteMaxRows??1e4,expansions:e.recursiveCteMaxExpansions??1e5}}var Ai=class extends Error{constructor(t,n,r,i){let o=t==="DEPTH"?"\u6DF1\u3055":t==="ROWS"?"\u7D50\u679C\u884C\u6570":"\u4E2D\u9593\u5C55\u958B\u6570",a=t==="DEPTH"?"":" \u4EF6";super(`\u518D\u5E30 CTE\u300C${i}\u300D\u306E${o}\u304C\u4E0A\u9650 ${n}${a}\u3092\u8D85\u3048\u307E\u3057\u305F\uFF08\u691C\u51FA\u5024: ${r}${a}\uFF09\u3002`),this.name="RecursiveCteLimitError",this.kind=t,this.limit=n,this.detected=r,this.cteName=i,Object.setPrototypeOf(this,new.target.prototype)}},xa=class{constructor(t,n=Nt({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new Ai("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new Ai("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new Ai("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var Fa=50;function Pu(e,t,n){if(e.kind==="RANGE")return[`${t} >= ${n(e.min)} and ${t} <= ${n(e.max)}`];if(e.kind!=="IN")return[];let r=[];for(let i=0;i<e.values.length;i+=Fa){let o=e.values.slice(i,i+Fa);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Cu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),GS=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function $S(e,t){return e==="DATE"?jr(t):e==="TIME"?zo(t):Cu.has(e)?qo(t):!1}function BS(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Cu.has(e)?Cu.has(t.fieldType):!1}function Ou(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=jo(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!GS.has(e.fieldType))return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let a=[...new Set(e.values)];return a.length===0?{kind:"EMPTY_SOURCE"}:a.length>e.maxInKeys?{kind:"FALLBACK",reason:"JOIN_KEY_LIMIT_EXCEEDED"}:{kind:"IN",values:a,relation:"exact"}}if(!t.has(">=")||!t.has("<="))return{kind:"FALLBACK",reason:"JOIN_KEY_OPERATOR_UNAVAILABLE"};if(e.values===void 0)return{kind:"RANGE_CANDIDATE",relation:"superset",reason:"JOIN_KEY_VALUES_RUNTIME"};if(!BS(e.fieldType,e.sourceSemantics))return{kind:"FALLBACK",reason:"JOIN_KEY_SEMANTICS_UNRESOLVED"};let n=e.sourceSemantics;if(e.hasEmptyValue)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let r=[...new Set(e.values)];if(r.some(a=>!$S(e.fieldType,a)))return{kind:"FALLBACK",reason:"JOIN_KEY_NON_CANONICAL_VALUE"};if(r.length===0)return{kind:"FALLBACK",reason:"JOIN_KEY_EMPTY_VALUE"};let i=r[0],o=r[0];for(let a=1;a<r.length;a+=1){let s=r[a];lt(s,i,n)<0&&(i=s),lt(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Lu=Ul;function Si(e,t,n=Lu){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function AE(e,t){let n=ee(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function Ct(e){if(e===null)return!1;switch(e.type){case"BINARY":return Ka(e.left);case"NULL_CHECK":return Ka(e.field);case"LOGICAL":return Ct(e.left)||Ct(e.right);case"NOT":case"GROUP":return Ct(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Ka(e){if(Array.isArray(e))return e.some(Ka);if(e===null||typeof e!="object")return!1;let t=e;return t.type==="FIELD"?t.field!=="$id":t.type==="SELECT"?!1:Object.values(t).some(Ka)}async function ut(e,t,n,r,i){let o=await Ge(e,t,n,r,{maxRecords:i.maxRecords,parallel:i.parallel,onLimit:i.onLimit??"error",onTruncate:i.onTruncate,onSearchAborted:i.onSearchAborted});return{records:o,metrics:{fetchedRows:o.length}}}async function Ga(e,t,n,r){let{records:i,metrics:o}=await ut(e,t,n,["$id"],r);return{ids:qp(i),metrics:o}}function Rr(e,t){if(e.tableAlias!==null){let r=t.filter(o=>o.alias===e.tableAlias);if(r.length>1)return Object.freeze({status:"AMBIGUOUS"});if(r.length===0)return Object.freeze({status:"UNKNOWN"});let i=r[0];return i.fieldTypes.has(e.field)?TE(i,e.field):Object.freeze({status:"UNKNOWN"})}let n=t.filter(r=>r.fieldTypes.has(e.field));return n.length>1?Object.freeze({status:"AMBIGUOUS"}):n.length===0?Object.freeze({status:"UNKNOWN"}):TE(n[0],e.field)}function Du(e,t){if(e.left.type!=="FIELD")return Ti();let n=Rr(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Ti();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Te(e,a=>{let s=Rr(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:te({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Ti();let o=Xo(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?Ti():Object.freeze({relation:o,owner:n})}function IE(e,t){let n=Ae(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Rr(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Te(e,o=>{let a=Rr(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:te({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function wE(e,t){let n=new Set;Cn(e,n);let i=(e===null?[]:CE(Er(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=VS(e,t),a=new Set;if(o.serverFunctionCandidate?.variant==="WHOLE_WHERE_EXACT")for(let s of n)a.add(s);else for(let s of i)Cn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(YS(e,t)),fetchQueriesByAlias:new Map,...o})}function bE(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Pn(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||e.allKlikes.some(a=>!e.appliedKlikes.has(a)))return e;let n=new Map,r=(a,s)=>{let l=n.get(a);l?l.push(s):n.set(a,[s])};try{if(e.serverFunctionCandidate.variant==="EXACT_LEAF")for(let a of e.items)r(a.targetAlias,mr(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(c=>c.alias===a.targetAlias&&c.appId===a.appId&&c.sourceKind==="APP"))return e;let l=mr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!Pn(Ya(l),a.functionOccurrences))return e;r(a.targetAlias,l)}}catch{return e}let i=new Map;for(let[a,s]of n)i.set(a,s.length===1?s[0]:s.map(l=>`(${l})`).join(" and "));let o=e.serverFunctionConsumptions.map(a=>{let s=i.get(a.targetAlias);return s?Object.freeze({...a,fetchBinding:Object.freeze({status:"BOUND_TO_TARGET_FETCH",targetAlias:a.targetAlias,appId:a.appId,query:s})}):null});return o.some(a=>a===null)?e:Object.freeze({...e,serverFunctionCandidate:Object.freeze({...e.serverFunctionCandidate,fetchContract:"CONFIRMED"}),serverFunctionConsumptions:Object.freeze(o),fetchQueriesByAlias:i})}function yr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Pn(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||!e.serverFunctionConsumptions.every(t=>{let n=t.fetchBinding;return n!=="PENDING_STEP_2"&&n.status==="BOUND_TO_TARGET_FETCH"&&n.targetAlias===t.targetAlias&&n.appId===t.appId&&n.query===e.fetchQueriesByAlias.get(t.targetAlias)&&n.query.includes(t.serializedPredicate)}))return!1;for(let[t,n]of e.fetchQueriesByAlias){let r=e.serverFunctionConsumptions.filter(i=>i.targetAlias===t).flatMap(i=>[...i.functionOccurrences]);if(r.length>0&&!Pn(Ya(n),r))return!1}return!(e.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"&&(e.serverFunctionConsumptions.length!==1||e.serverFunctionConsumptions[0].consumption!=="whole-where"||e.residualWhere!==null||e.allKlikes.some(t=>!e.appliedKlikes.has(t))||NE(HS(e))!==e.allKlikes.length))}function VS(e,t){if(e===null)return SE(null);let n=Object.freeze([...Ae(e)]);if(n.length===0)return SE(e);let r=WS(e,t,n);if(r!==null)return r;let i=Va(e),o=[],a=new Set;for(let u of i){let d=IE(u,t);if(d.relation!=="function-leaf-exact")continue;let f={targetAlias:d.owner.alias,appId:d.owner.appId,predicate:u,relation:"exact"},E;try{E=mr(f,t)}catch{continue}let R=Ya(E);Pn(R,d.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:d.owner.alias,appId:d.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),functionOccurrences:d.functionOccurrences,relation:d.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=Wa(e,a),l=Object.freeze(s===null?[]:[...Ae(s)]),c=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),p=Pn(n,c)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:p,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:c,residualWhere:s,residualServerFunctionOccurrences:l}}function WS(e,t,n){let r=$a(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=mr(i,t)}catch{return null}if(!Pn(Ya(o),n))return null;let a=new Set;if(Cn(e,a),NE(o)!==a.size)return null;let s=Object.freeze(Ba(e)),l=Object.freeze({targetAlias:r.alias,appId:r.appId,predicate:e,functionLeaves:s,functionOccurrences:Object.freeze([...n]),relation:"function-leaf-exact",consumption:"whole-where",serializedPredicate:o,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"});return{serverFunctionCandidate:Object.freeze({variant:"WHOLE_WHERE_EXACT",staticContract:"CONFIRMED",fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze([l]),allServerFunctionOccurrences:Object.freeze([...n]),adoptedServerFunctionOccurrences:Object.freeze([...n]),residualWhere:null,residualServerFunctionOccurrences:Object.freeze([])}}function $a(e,t){switch(e.type){case"BINARY":{if(Ae(e).length>0){let i=IE(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Du(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=$a(e.left,t),r=$a(e.right,t);return n!==null&&r!==null&&ja(n,r)?n:null}case"GROUP":case"NOT":return $a(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Ba(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return[...Ba(e.left),...Ba(e.right)];case"GROUP":case"NOT":return Ba(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function SE(e){let t=e===null?[]:Ae(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Va(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Va(e.left),...Va(e.right)]:[];case"GROUP":return Va(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Wa(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Wa(e.left,t),r=Wa(e.right,t);return n===null?r:r===null?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}if(e.type==="GROUP"){let n=Wa(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function Ya(e){let t=[];for(let n of Ur){let r=new RegExp(`\\b${n}\\s*\\(`,"g"),i;for(;(i=r.exec(e))!==null;)t.push({name:n,index:i.index})}return t.sort((n,r)=>n.index-r.index).map(n=>n.name)}function Pn(e,t){if(e.length!==t.length)return!1;let n=new Map;for(let r of e)n.set(r,(n.get(r)??0)+1);for(let r of t){let i=n.get(r);if(i===void 0)return!1;i===1?n.delete(r):n.set(r,i-1)}return n.size===0}function NE(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function HS(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function YS(e,t){if(e===null)return[];let n=new Set,r=i=>{if(i.type==="BINARY"){if(i.left.type!=="FIELD"){n.add("UNSAFE_RELATION");return}let o=Rr(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Ha(i.right)){n.add("CROSS_TABLE_BINARY");return}Du(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(OE(i)){n.add("KLIKE_OR");return}let o=Er(i.left,t),a=Er(i.right,t);if(o.length!==1||a.length!==1||!ja(o[0].owner,a[0].owner)){n.add("CROSS_ALIAS_OR");return}}r(i.left),r(i.right);return}if(i.type==="GROUP"){r(i.expr);return}if(i.type==="NOT"){n.add("NOT");return}n.add("UNSAFE_RELATION")};return r(e),[...n].map(i=>Object.freeze({reason:i}))}function mr(e,t){return Ii(e.predicate,e,t),z(e.predicate)}function Ii(e,t,n){switch(e.type){case"LOGICAL":Ii(e.left,t,n),Ii(e.right,t,n);return;case"GROUP":Ii(e.expr,t,n);return;case"NOT":Ii(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Ha(e.right))throw vu(t,"predicate contains a non-target or RHS field reference");let r=Rr(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw vu(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw vu(t,"predicate shape is outside the Phase A serializer contract")}}function vu(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Er(e,t){switch(e.type){case"BINARY":{let n=Du(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=Er(e.left,t),r=Er(e.right,t);if(e.op==="AND")return CE([...n,...r]);if(OE(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return ja(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:PE(i.relation,o.relation)}]:[]}case"GROUP":return Er(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function CE(e){let t=[];for(let n of e){let r=t.findIndex(o=>ja(o.owner,n.owner));if(r<0){t.push(n);continue}let i=t[r];t[r]={owner:i.owner,predicate:{type:"LOGICAL",op:"AND",left:i.predicate,right:n.predicate},relation:PE(i.relation,n.relation)}}return t}function TE(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Ti(){return Object.freeze({relation:"unsafe"})}function ja(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function PE(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Cn(e,t){if(e!==null){if(Zt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Cn(e.left,t),Cn(e.right,t);return;case"NOT":case"GROUP":Cn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function OE(e){let t=new Set;return Cn(e,t),t.size>0}function Ha(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ha);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Ha)}function Uu(e,t){let n=qr(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}var jS=1e4,zS=500;function qS(e,t){if(e.key.type!=="FIELD_NAME")return;let n=Oe(e.key.name,t.keys());return n===void 0?void 0:t.get(n)}function JS(e,t){let n=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]);return Oe(t,n)!==void 0}function wi(e){let{stmt:t}=e,n=[],r=t.columns.flatMap(a=>a.type==="WINDOW_COL"?a.orderBy:[]),i=[...t.orderBy,...r];for(let a of i){if(a.key.type!=="FIELD_NAME")continue;let s=qS(a,e.orderSemantics);if(!s){n.push("ORDER_KEY_UNRESOLVED");continue}s.fieldType==="KSQL_AMBIGUOUS"?n.push("ORDER_KEY_AMBIGUOUS"):s.compareMode==="unsupported"&&n.push("ORDER_KEY_UNSUPPORTED")}if(n.includes("ORDER_KEY_AMBIGUOUS"))throw new Error("ArgumentError: ORDER BY key is an ambiguous column reference (reason=ORDER_KEY_AMBIGUOUS). Qualify the key with its table alias.");if(n.includes("ORDER_KEY_UNSUPPORTED")||n.includes("ORDER_KEY_UNRESOLVED")){let a=n.includes("ORDER_KEY_UNSUPPORTED")?"ORDER_KEY_UNSUPPORTED":"ORDER_KEY_UNRESOLVED";throw new Error(`ArgumentError: ORDER BY key has no canonical comparison contract (reason=${a}).`)}return t.orderBy.length>0&&r.length===0&&t.orderBy.every(a=>a.key.type==="FIELD_NAME"&&a.key.name==="$id"&&!JS(t,a.key.name))||n.push("ORDER_KEY_NOT_REST_EQUIVALENT"),e.whereCapability!=="EXACT_PUSHDOWN"&&n.push("WHERE_NOT_EXACT"),e.staticMode!=="SIMPLE"&&n.push("QUERY_SHAPE_LOCAL"),(t.limit===null||t.limit<0||t.limit>zS)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>jS)&&n.push("OFFSET_NOT_REST_WINDOW"),t.limit!==null&&t.limit>e.maxRecords&&n.push("MAX_RECORDS_WINDOW"),e.hasKlike&&n.push("KLIKE_NOT_REST_WINDOW"),n.length===0?{kind:"CANONICAL_REST_TOP_N",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[]}:{kind:"CANONICAL_LOCAL",requiresCompleteInput:i.length>0,localOrderBy:t.orderBy.length>0,applyLocalOffsetLimit:t.orderBy.length>0,reasonCodes:[...new Set(n)]}}var XS=new Set(["RECORD_NUMBER","SINGLE_LINE_TEXT","NUMBER","CALC","DATE","DATETIME","TIME","CREATED_TIME","UPDATED_TIME","DROP_DOWN","RADIO_BUTTON","STATUS","LINK","CREATOR","MODIFIER"]);function QS(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function bi(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,c=e.orderSemantics.get(l);if(!c){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(QS(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!c.source||c.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}XS.has(c.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${c.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var za=class extends Error{constructor(t,n,r){super(`CursorCapacityError: host=${t} \u306E active cursor \u4E0A\u9650 ${n} \u306B ${r}ms \u4EE5\u5185\u3067\u7A7A\u304D\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002`),this.name="CursorCapacityError"}},qa=class extends Error{constructor(t){super("CursorCreateOutcomeUnknownError: Create Cursor \u306E\u6210\u5426\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u81EA\u52D5\u518D\u8A66\u884C\u305B\u305A\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002"),this.name="CursorCreateOutcomeUnknownError",this.cause=t}},Ja=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(`CursorCleanupWarning: Cursor \u306E\u89E3\u653E\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u7D50\u679C\u306F\u6709\u52B9\u3067\u3059\u304C\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002\u8A73\u7D30: ${n}`),this.name="CursorCleanupWarning",this.cause=t}};async function LE(e){let t=await e.client.openCursor({app:e.app,fields:e.fields.length>0?e.fields:void 0,query:e.query,size:500}),n=[],r=0,i,o;try{if(t.totalCount>e.offset)for(;n.length<e.limit;){let a=await t.nextPage();for(let s of a.records)if(r<e.offset)r+=1;else if(n.length<e.limit)n.push(s);else break;if(!a.next)break}}catch(a){throw i=a,a}finally{try{await t.close()}catch(a){i&&i instanceof Error?Object.defineProperty(i,"cursorCleanupError",{value:a,configurable:!0}):o=new Ja(a).message}}return{records:n,cleanupWarning:o}}function Mu(e){let t=[];e.where&&t.push(z(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var ZS={CALC:"RECORD",CATEGORY:"NON_RECORD",CHECK_BOX:"RECORD",CREATED_TIME:"RECORD",CREATOR:"RECORD",DATE:"RECORD",DATETIME:"RECORD",DROP_DOWN:"RECORD",FILE:"RECORD",GROUP:"NON_RECORD",GROUP_SELECT:"RECORD",LINK:"RECORD",MODIFIER:"RECORD",MULTI_LINE_TEXT:"RECORD",MULTI_SELECT:"RECORD",NUMBER:"RECORD",ORGANIZATION_SELECT:"RECORD",RADIO_BUTTON:"RECORD",RECORD_NUMBER:"RECORD",REFERENCE_TABLE:"NON_RECORD",RICH_TEXT:"RECORD",SINGLE_LINE_TEXT:"RECORD",STATUS:"PROCESS",STATUS_ASSIGNEE:"PROCESS",SUBTABLE:"RECORD",TIME:"RECORD",UPDATED_TIME:"RECORD",USER_SELECT:"RECORD"};function _E(e,t){let n=ZS[e];if(n===void 0)throw new Error(`ArgumentError: getFields returned unknown fieldType "${e}" for field "${t}". getFields must return only the fields from /k/v1/app/form/fields.json; $id and $revision are synthesized by the engine and must not be added.`);return n}async function vE(e,t,n){if(t!=null)return["_pid","_rid","_idx",...e.filter(s=>s.inSubtable===!0&&s.subtableCode===t).map(s=>s.code)];let r=e.filter(s=>!s.inSubtable),o=r.some(s=>_E(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=_E(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var gr=new WeakMap,xu=new WeakMap,eT="\u6BD4\u8F03\u6761\u4EF6\u3067\u53C2\u7167\u3057\u305F\u96C6\u8A08\u5024\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u30EA\u30B9\u30C8\u306B\u540C\u3058\u96C6\u8A08\u5F0F\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002";function Bu(e){if(xu.has(e))return e;let t;return t=new Proxy(e,{get(n,r,i){return typeof r!="string"||Object.prototype.hasOwnProperty.call(n,r)?Reflect.get(n,r,i):Ie(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&Ie(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=Ie(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),xu.set(t,e),t}function ct(e){return xu.get(e)??e}function VE(e){let t=gr.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},gr.set(e,t)),t}function pt(e,t,n,r=[]){let i=VE(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function Be(e,t){return gr.get(e)?.byColumn.get(t)}function Ie(e,t){return gr.get(e)?.byLookupKey.get(t)}function $t(e,t){return gr.has(e)?void 0:e[t]}function DE(e,t,n){if(!n||t.length===0)return;let r=new Set,i=o=>{if(o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="FIELD"&&a.aggregateRef!==void 0){let s=a.aggregateRef;r.add(fe(s.func,s.distinct,s.arg));return}a.type==="SELECT"||a.type==="SCALAR_SUBQUERY"||Object.values(a).forEach(i)};i(e),[...r].some(o=>t.some(a=>Ie(a,o)===void 0&&a[o]===void 0))&&n.add(eT)}function tT(e){let t=gr.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=dl(e);return r&&pl(n,r.includedCanonicalIds),n}function Bt(e,t){let n={};for(let[r,i]of Object.entries(e)){let o=i.value,a=o==null?"":typeof o=="string"?o:JSON.stringify(o);t&&(n[`${t}.${r}`]=a),n[r]=a}return n}function nT(e,t,n,r={}){if(n.type==="CROSS"){let d=Si(e.length,t.length);if(!d.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${d.outputRows} \u884C\uFF08\u5DE6 ${d.leftRows} \u884C \xD7 \u53F3 ${d.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${d.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let E of e)for(let R of t)f.push({...E,...R});return f}let{on:i,type:o}=n,a=rT(i,e,t,r.leftColumns,r.rightColumns),s=Fu(a.left),l=Fu(a.right);if(ME(e,s,r.leftColumns),ME(t,l,r.rightColumns),o==="RIGHT"){let d=new Map;for(let R of e){let m=R[s]??"",y=d.get(m);y?y.push(R):d.set(m,[R])}let f={};for(let R of r.leftColumns??Object.keys(e[0]??{}))f[R]="";let E=[];for(let R of t){let m=R[l]??"",y=d.get(m)??[];if(y.length>0)for(let g of y)E.push({...g,...R});else E.push({...f,...R})}return E}let c=new Map;for(let d of t){let f=d[l]??"",E=c.get(f);E?E.push(d):c.set(f,[d])}let p=[],u={};for(let d of r.rightColumns??Object.keys(t[0]??{}))u[d]="";for(let d of e){let f=d[s]??"",E=c.get(f)??[];if(E.length>0)for(let R of E)p.push({...d,...R});else o==="LEFT"&&p.push({...d,...u})}return p}function Fu(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function rT(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=UE(o),l=UE(a),c=d=>{if(d.tableAlias){let m=s.has(d.tableAlias),y=l.has(d.tableAlias);if(m!==y)return m?"LEFT":"RIGHT"}let f=Fu(d),E=o.includes(f),R=a.includes(f);return E!==R?E?"LEFT":"RIGHT":"UNKNOWN"},p=c(e.left),u=c(e.right);return p==="RIGHT"&&u==="LEFT"?{left:e.right,right:e.left}:e}function UE(e){let t=new Set;for(let n of e){let r=n.indexOf(".");r>0&&t.add(n.slice(0,r))}return t}function ME(e,t,n){if(e.length>0?e.some(i=>!Object.prototype.hasOwnProperty.call(i,t)):n!==void 0&&!n.includes(t))throw new Error(`ArgumentError: JOIN key ${t} is not available in the materialized table.`)}function iT(e,t,n,r,i,o={}){return t===null?e:e.filter(a=>le(t,a,n,r,i,o))}function Qa(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&Se(t.expr)||t.type==="CASE_COL"&&Se(t.expr)||t.type==="STRFUNC_COL"&&vi(t.expr)||t.type==="SCALAR_VALUE_COL"&&cn(t.expr))}function oT(e,t,n,r,i,o={},a=null){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let s=new Map;for(let c of e){let p=t.map((d,f)=>sT(d,c,i?.items[f],n,o)).join("\0"),u=s.get(p);u?u.push(c):s.set(p,[c])}s.size===0&&t.length===0&&Qa(n)&&s.set("",[]);let l=[];for(let c of s.values()){let p=Bu({...c[0]});for(let u of t)u.type==="ARITH_KEY"?p[_i(u.expr)]=String(Ee(u.expr,c[0],o.evaluationContext)):u.type==="FUNC_KEY"&&(p[pn(u.expr)]=he(u.expr,c[0],void 0,void 0,o.evaluationContext));WE(p,c,n,r,o.evaluationContext),On(p,c,a,r,o.evaluationContext),l.push(p)}return l}function aT(e,t,n,r,i={},o=null){let a=[],s=0,l=()=>{if(s++,i.maxGeneratedRows!==void 0&&s>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${s} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let c of t.sets){let p={children:new Map},u=[];for(let f of e){let E=p;for(let R of c.items){let m=kE(R,f),y=E.children.get(m);y||(y={children:new Map},E.children.set(m,y)),E=y}E.rows||(l(),E.rows=[],u.push(E.rows)),E.rows.push(f)}e.length===0&&c.items.length===0&&(l(),p.rows=[],u.push(p.rows));let d=new Set(c.items.map(f=>f.canonicalId));for(let f of u){let E=Bu({...f[0]}),R=new Map;for(let m of c.items)R.has(m.canonicalId)||R.set(m.canonicalId,kE(m,f[0]));for(let m of t.allItems){let y=R.get(m.canonicalId)??"";E[m.directKey]=y,m.unqualifiedBridgeKey!==null&&(E[m.unqualifiedBridgeKey]=y)}WE(E,f,n,r,i.evaluationContext),On(E,f,o,r,i.evaluationContext),pl(E,d),a.push(E)}}return a}function kE(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function WE(e,t,n,r,i={}){for(let[o,a]of n.entries())if(a.type==="AGGREGATE"){let s=fe(a.func,a.distinct,a.arg),l=String(Pi(a.func,a.distinct,a.arg,a.separator,t,r,i));pt(e,o,l,a.alias?[a.alias,s]:[s])}else if(a.type==="ARITH_AGG_COL"){On(e,t,a.expr,r,i);let s=a.alias??Oi(a.expr);pt(e,o,String(Ni(a.expr,t,r,i)),[s])}else if(a.type==="ARITH_COL"&&Se(a.expr)){On(e,t,a.expr,r,i);let s=a.alias??_i(a.expr),l=$u(a.expr,t,r);pt(e,o,String(Ee(l,e,i)),[s])}else if(a.type==="STRFUNC_COL"&&vi(a.expr)){On(e,t,a.expr,r,i);let s=a.alias??pn(a.expr),l=es(a.expr,t,r);pt(e,o,he(l,e,void 0,void 0,i),[s])}else if(a.type==="SCALAR_VALUE_COL"&&cn(a.expr)){On(e,t,a.expr,r,i);let s=a.alias??Pt(a.expr),l=Ci(a.expr,t,r);pt(e,o,String(Le(l,e,void 0,void 0,i)),[s])}else if(a.type==="CASE_COL"&&Se(a.expr)){On(e,t,a.expr,r,i);let s=qE(a.expr,t,r),c=He(s,e,void 0,p=>p.aggregateRef?YE(p.aggregateRef,r):void 0,i);pt(e,o,c,[Ku(a.alias,o)])}}function Ku(e,t){return e??`__ksql_case_column_${t}`}function Gu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Gu(r,t));return}let n=e;if(n.type==="AGG_REF"){t.push(n);return}n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"||Object.values(n).forEach(r=>Gu(r,t))}function On(e,t,n,r,i={}){let o=[];Gu(n,o);for(let a of o){let s=fe(a.func,a.distinct,a.arg);if(Ie(e,s)!==void 0)continue;let l=String(Pi(a.func,a.distinct,a.arg,a.separator,t,r,i));VE(e).byLookupKey.set(s,l)}}function sT(e,t,n,r,i){if(e.type==="FIELD_NAME"){if(!n)return t[e.name]??"";if(n.kind==="PHYSICAL")return t[n.runtimeKey]??"";if(n.kind==="ALIAS_SAFE"){let o=r[n.columnIndex];if(!o)throw new Error(`InternalError: GROUP BY alias column index ${n.columnIndex} is out of range.`);let a=Xa(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?he(e.expr,t,void 0,void 0,i.evaluationContext):String(Ee(e.expr,t,i.evaluationContext))}function Pi(e,t,n,r,i,o,a={}){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let s=HE(e,n,i,a).filter(E=>E!==null),l=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",c=l?s.map(E=>{let R=Number(E);if(!Number.isFinite(R))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${E}`);return R}):null,p=t?l?[...new Set(c)]:[...new Set(s)]:l?c:s;if(e==="COUNT")return p.length;if(e==="GROUP_CONCAT")return p.join(r??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?Li(n,o):void 0,d=typeof u=="string"?W(u):u??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?W("string"):W("number"));if(e==="MODE"){if(s.length===0)return"";let E=new Map;for(let y of s)E.set(y,(E.get(y)??0)+1);let R="",m=0;for(let[y,g]of E){if(g>m){R=y,m=g;continue}if(g!==m)continue;let S=lt(y,R,d);(S<0||S===0&&un(y,R)<0)&&(R=y)}return R}if(e==="MIN"||e==="MAX"){let E=p;if(E.length===0)return"";let R=E[0];for(let m of E.slice(1)){let y=lt(m,R,d);(e==="MAX"&&y>0||e==="MIN"&&y<0)&&(R=m)}return R}let f=l?p:p.map(Number);switch(e){case"SUM":return f.reduce((E,R)=>E+R,0);case"AVG":return f.length===0?0:f.reduce((E,R)=>E+R,0)/f.length;case"MEDIAN":{if(f.length===0)return"";let E=[...f].sort((m,y)=>m-y),R=Math.floor(E.length/2);return E.length%2===1?E[R]:(E[R-1]+E[R])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let E=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(f.length===0||E&&f.length<2)return"";let R=f[0],m=0,y=0,g=0;for(let A of f){let I=A-R;m++;let N=I-y;y+=N/m,g+=N*(I-y)}let S=Math.max(0,g/(E?m-1:m));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(S):S}}}function HE(e,t,n,r={}){return n.map(i=>{let o=ct(i),a;if(t.type==="FIELD_REF"){let s=o[t.field];if(s===void 0||s===""&&e!=="MIN"&&e!=="MAX")return null;a=s}else if(t.type==="ARITH"||t.type==="NUMBER"){let s=Ee(t,o,r);if(isNaN(s))return null;a=String(s)}else{let s=Ft(t,o,void 0,void 0,r);if(s===null||s===""&&e!=="MIN"&&e!=="MAX"||typeof s=="number"&&Number.isNaN(s))return null;a=String(s)}return a})}function lT(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function Ni(e,t,n,r={}){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Pi(e.func,e.distinct,e.arg,e.separator,t,n,r));if(e.type==="AGG_GROUP_KEY"){let a=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number($e(t[0]??{},a))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let i=Ni(e.left,t,n,r),o=Ni(e.right,t,n,r);switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}function Oi(e){return gt(e)}function Li(e,t){if(e.type==="FIELD_REF")return t?.(lT(e.field))??"string";if(e.type==="FIELD")return t?.(e)??"string";if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return"number";if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return"string";if(e.type==="STRING_FUNC")return At(e,o=>t?.(o));let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Li(o,t));if(n.length===0||n.some(o=>o===void 0))return"string";let r=n.map(o=>typeof o=="string"?o:o.compareMode==="number"||o.compareMode==="recordNumber"?"number":"string");if(!r.every(o=>o===r[0]))return"string";let i=n[0];return n.every(o=>JSON.stringify(o)===JSON.stringify(i))?i:r[0]}function YE(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return W("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return W("string");let n=e.arg.type==="WILDCARD"?"string":Li(e.arg,t)??"string";return typeof n=="string"?W(n):n}function uT(e,t,n,r,i={}){return t===null?e:e.filter(o=>le(t,tT(o),n,void 0,r,i))}function cT(e,t,n,r,i,o={}){if(e.length===0)return e;let a=pT(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i,evaluationContext:o}),s=new Set;return e.filter(l=>{let c=a(l);return s.has(c)?!1:(s.add(c),!0)})}function pT(e,t,n){let r=[];if(t.some(a=>a.type==="WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))a.add(l);r=[...a].sort()}let i=[];if(t.some(a=>a.type==="PARENT_WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))l.startsWith("_p.")&&a.add(l);i=[...a].sort()}let o={...n,wildcardKeys:r,parentWildcardKeys:i};return a=>JSON.stringify(hT(t,a,o))}function Vu(e,t,n,r,i,o,a={}){return t.length===0?e:jE(e,t,n,r,i,o,a).rows.map(s=>s.row)}function jE(e,t,n,r,i,o,a={}){let s=t.map(({key:p})=>{if(p.type==="ARITH_KEY")return{semantics:W("number")};if(p.type==="FUNC_KEY")return{semantics:W(At(p.expr,f=>i?.get(f.tableAlias?`${f.tableAlias}.${f.field}`:f.field)))};if(p.type==="GROUPING_KEY")return{semantics:W("number")};let u=i?.get(p.name);if(u)return{semantics:u};let d=n?.get(p.name);return d?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:d}}:{semantics:W(r?.get(p.name)??"string")}}),l=e.map(p=>({row:p,keys:t.map(({key:u},d)=>({s:ET(u,p,o,a)}))})),c=(p,u)=>dT(p,u,t,s);return l.sort(c),{rows:l,compare:c}}function dT(e,t,n,r){for(let i=0;i<n.length;i++){let o=fT(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function fT(e,t,n){return lt(e.s,t.s,n.semantics)}function ET(e,t,n,r={}){let i=ct(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??Ie(t,e.name)??i[e.name]??"";case"ARITH_KEY":return String(Ee(e.expr,i,r));case"FUNC_KEY":return he(e.expr,i,void 0,void 0,r);case"GROUPING_KEY":return tr(e.ref,t)}}function Wu(e,t,n,r,i={}){let o=new Map;for(let[a,s]of e.entries()){if(!("alias"in s)||s.alias===null)continue;let l=s.alias;switch(s.type){case"FIELD":o.set(l,c=>$e(ct(c),s.field));break;case"LITERAL_COL":o.set(l,()=>s.value);break;case"AGGREGATE":{o.set(l,c=>Be(c,a)??"0");break}case"ARITH_AGG_COL":{o.set(l,c=>Be(c,a)??"0");break}case"WINDOW_COL":o.set(l,c=>Be(c,a)??"");break;case"ARITH_COL":o.set(l,c=>Se(s.expr)?Be(c,a)??"":String(Ee(s.expr,ct(c),i)));break;case"STRFUNC_COL":{let c=pn(s.expr);o.set(l,p=>vi(s.expr)?Be(p,a)??Ie(p,c)??he(s.expr,ct(p),n,r,i):he(s.expr,ct(p),n,r,i));break}case"CASE_COL":o.set(l,c=>Se(s.expr)?Be(c,a)??"":He(s.expr,ct(c),n,r,i));break;case"SCALAR_VALUE_COL":{let c=Pt(s.expr);o.set(l,p=>cn(s.expr)?Be(p,a)??Ie(p,c)??"":String(Le(s.expr,ct(p),n,r,i)));break}case"SCALAR_SUBQUERY_COL":o.set(l,()=>t?.get(a)??"");break;case"GROUPING_COL":o.set(l,c=>tr(s.ref,c));break;case"VARIABLE_COL":break}}return(a,s)=>{let l=Oe(a,o.keys());return l===void 0?void 0:o.get(l)?.(s)}}function Hu(e,t,n,r,i,o,a={}){let s=t.map((l,c)=>({column:l,columnIndex:c})).filter(l=>l.column.type==="WINDOW_COL");if(e.length===0||s.length===0)return e;for(let l=0;l<e.length;l++)e[l]=Bu(e[l]);for(let{column:l,columnIndex:c}of s){let p=new Map;for(let u of e){let d=JSON.stringify(l.partitionBy.map(E=>gT(u,E))),f=p.get(d);f?f.push(u):p.set(d,[u])}for(let u of p.values()){let d=jE(u,l.orderBy,n,r,i,void 0,a),f=d.rows;if(bo(l)){yT(l,c,d,o,a);continue}if(rl(l)){mT(l,c,f,a);continue}if(!nl(l))throw new Error(`InternalError: unknown window kind ${l.windowKind??"undefined"}`);let E=1,R=1;for(let m=0;m<f.length;m++){m>0&&d.compare(f[m-1],f[m])!==0&&(E=m+1,R++);let y=l.func==="ROW_NUMBER"?m+1:l.func==="RANK"?E:R;pt(f[m].row,c,String(y),[l.alias])}}}return e}function RT(e,t,n={}){let r=Ft(e,ct(t),void 0,void 0,n);return r==null||typeof r=="number"&&!Number.isFinite(r)?"":String(r)}function mT(e,t,n,r={}){let i=n.map(a=>RT(e.arg,a.row,r)),o=e.valueFunc==="LAG"?-1:1;for(let a=0;a<n.length;a++){let s=a+o*e.offset;pt(n[a].row,t,s>=0&&s<i.length?i[s]:"",[e.alias])}}function yT(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:HE(e.aggFunc,e.arg,o.map(f=>f.row),i),s=e.arg.type==="WILDCARD"?void 0:Li(e.arg,r),l=typeof s=="string"?W(s):s??W("string"),c=[],p=0,u=0,d;for(let f=0;f<o.length;f++){let E=a?.[f]??null;if(e.arg.type==="WILDCARD")p++;else if(E!==null)if(e.aggFunc==="COUNT")p++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")u+=Number(E),p++;else if(d===void 0)d=E;else{let m=lt(E,d,l);(e.aggFunc==="MAX"&&m>0||e.aggFunc==="MIN"&&m<0)&&(d=E)}let R=e.aggFunc==="COUNT"?p:e.aggFunc==="SUM"?u:e.aggFunc==="AVG"?p===0?0:u/p:d??0;c.push(String(R))}if(e.frame===null){let f=c[c.length-1];for(let E of o)pt(E.row,t,f,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let f=0;f<o.length;){let E=f;for(;E+1<o.length&&n.compare(o[E],o[E+1])===0;)E++;for(let R=f;R<=E;R++)pt(o[R].row,t,c[E],[e.alias]);f=E+1}return}for(let f=0;f<o.length;f++)pt(o[f].row,t,c[f],[e.alias])}function gT(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return $e(ct(e),n)}function Za(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Xa(e,t,n,r={}){let i=ct(t);switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(i)).map(a=>[a,i[a]!==void 0?i[a]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(i).filter(a=>a.startsWith("_p.")).sort()).map(a=>[a,i[a]!==void 0?i[a]:null])};case"FIELD":return $e(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=fe(e.func,e.distinct,e.arg);return Be(t,n)??Ie(t,e.alias??o)??Ie(t,o)??$t(t,e.alias??o)??$t(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??Oi(e.expr);return Be(t,n)??Ie(t,o)??$t(t,o)??"0"}case"ARITH_COL":return Se(e.expr)?Be(t,n)??Ie(t,e.alias??_i(e.expr))??"":String(Ee(e.expr,i,r.evaluationContext));case"CASE_COL":return Se(e.expr)?Be(t,n)??Ie(t,Ku(e.alias,n))??$t(t,Ku(e.alias,n))??"":He(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return tr(e.ref,t);case"STRFUNC_COL":{let o=pn(e.expr);return vi(e.expr)?Be(t,n)??Ie(t,e.alias??o)??Ie(t,o)??$t(t,e.alias??o)??$t(t,o)??he(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext):he(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext)}case"SCALAR_VALUE_COL":{let o=Pt(e.expr);return cn(e.expr)?Be(t,n)??Ie(t,e.alias??o)??Ie(t,o)??$t(t,e.alias??o)??$t(t,o)??"":String(Le(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return Be(t,n)??Ie(t,e.alias)??$t(t,e.alias)??""}}function hT(e,t,n={}){return e.map((r,i)=>{let o=Xa(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Ln(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let E=e.map(m=>{let y=$E(FE(m),a),g=Xa(t[0],m,0,{wildcardKeys:Object.keys(y)}),S={};if(typeof g!="string")for(let[A,I]of g.entries)I!==null&&(S[A]=I);return S}),R=E.length>0?Object.keys(E[0]):[...i??[]];return{rows:E,columns:R}}let l=IT(t),c=TT(t),p=t.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD"),u=p?null:AT(t,l,c),d=u??[];return p&&e.length===0?{rows:[],columns:ST(t,l,c)}:{rows:e.map((E,R)=>{let m={},y={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys($E(FE(E),a)),parentWildcardKeys:Object.keys(E).filter(g=>g.startsWith("_p.")).sort()};for(let[g,S]of t.entries()){let A=Xa(S,E,g,y);switch(S.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof A!="string")for(let[I,N]of A.entries)N!==null&&(m[I]=N);break;case"PARENT_WILDCARD":{if(typeof A!="string")for(let[I,N]of A.entries)N!==null&&(m[I]=N),R===0&&d.push(I);break}case"FIELD":{let I=u?.[g]??S.alias??l.get(g)??S.field;m[I]=A,u===null&&R===0&&d.push(I);break}case"LITERAL_COL":{let I=u?.[g]??S.alias??`'${S.value}'`;m[I]=A,u===null&&R===0&&d.push(I);break}case"AGGREGATE":{let I=fe(S.func,S.distinct,S.arg),N=u?.[g]??S.alias??I;m[N]=A,u===null&&R===0&&d.push(N);break}case"ARITH_AGG_COL":{let I=u?.[g]??S.alias??Oi(S.expr);m[I]=A,u===null&&R===0&&d.push(I);break}case"ARITH_COL":{let I=u?.[g]??S.alias??_i(S.expr);m[I]=A,u===null&&R===0&&d.push(I);break}case"CASE_COL":{let I=u?.[g]??S.alias??c.get(g)??"case";m[I]=A,u===null&&R===0&&d.push(I);break}case"GROUPING_COL":{let I=u?.[g]??S.alias??`GROUPING(${S.ref.field.tableAlias?`${S.ref.field.tableAlias}.`:""}${S.ref.field.field})`;m[I]=A,u===null&&R===0&&d.push(I);break}case"STRFUNC_COL":{let I=u?.[g]??S.alias??pn(S.expr);m[I]=A,u===null&&R===0&&d.push(I);break}case"SCALAR_VALUE_COL":{let I=u?.[g]??S.alias??Pt(S.expr);m[I]=A,u===null&&R===0&&d.push(I);break}case"SCALAR_SUBQUERY_COL":{let I=u?.[g]??S.alias??"(subquery)";m[I]=A,u===null&&R===0&&d.push(I);break}case"WINDOW_COL":{let I=u?.[g]??S.alias;m[I]=A,u===null&&R===0&&d.push(I);break}}}return m}),columns:d}}function AT(e,t,n){return e.map((r,i)=>zE(r,i,t,n))}function ST(e,t,n){let r=[],i=new Set;for(let[o,a]of e.entries()){if(a.type==="WILDCARD"||a.type==="PARENT_WILDCARD")continue;let s=zE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function zE(e,t,n,r){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??fe(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Oi(e.expr);case"ARITH_COL":return e.alias??_i(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??pn(e.expr);case"SCALAR_VALUE_COL":return e.alias??Pt(e.expr);case"GROUPING_COL":return e.alias??`GROUPING(${e.ref.field.tableAlias?`${e.ref.field.tableAlias}.`:""}${e.ref.field.field})`;case"SCALAR_SUBQUERY_COL":return e.alias??"(subquery)";case"WINDOW_COL":return e.alias;case"WILDCARD":case"PARENT_WILDCARD":throw new Error("internal: computeOutputKey received a wildcard column")}}function TT(e){let t=new Set(e.flatMap(i=>"alias"in i&&i.alias!==null?[i.alias]:[])),n=new Map,r=1;for(let[i,o]of e.entries()){if(o.type!=="CASE_COL"||o.alias!==null)continue;let a;do a=r===1?"case":`case_${r}`,r++;while(t.has(a));t.add(a),n.set(i,a)}return n}function IT(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=xE(r.field);t.set(i,(t.get(i)??0)+1)}let n=new Map;for(let[r,i]of e.entries()){if(i.type!=="FIELD"||i.alias)continue;let o=xE(i.field),a=(t.get(o)??0)>1,s=i.field.includes(".")&&!i.field.startsWith("_p.");n.set(r,a&&s?i.field:o)}return n}function xE(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function FE(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function _i(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?q(n):n.type==="STRING_FUNC"?pn(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function pn(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Oi(n):n.type==="VARIABLE"?`@${n.name}`:Pt(n));return`${e.func}(${t.join(",")})`}function Pt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return pn(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${Pt(e.left)}${e.op}${Pt(e.right)}`;case"CONCAT_OP":return`${Pt(e.left)}||${Pt(e.right)}`}}function wT(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:cn(e)}function cn(e){return e.type==="STRING_FUNC"?vi(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?cn(e.left)||cn(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>KE(t.result))||e.elseResult!==null&&KE(e.elseResult):!1}function KE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:cn(e)}function vi(e){return e.args.some(t=>wT(t))}function bT(e,t,n){if(e.type==="AGG_REF"){let r=Pi(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=Ni(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}if(e.type==="AGG_GROUP_KEY"){let r=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return{type:"NUMBER",value:Number($e(t[0]??{},r)),raw:$e(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?es(e,t,n):Ci(e,t,n)}function Ci(e,t,n){return e.type==="STRING_FUNC"?es(e,t,n):e.type==="CASE_WHEN"?qE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Ci(e.left,t,n),right:Ci(e.right,t,n)}:e}function $u(e,t,n){return e.type==="STRING_FUNC"?es(e,t,n):e.type==="ARITH"?{...e,left:$u(e.left,t,n),right:$u(e.right,t,n)}:e}function GE(e,t,n){if(e.type==="AGG_REF"){let r=Pi(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=Ni(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:Ci(e,t,n)}function qE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:GE(r.result,t,n)})),elseResult:e.elseResult===null?null:GE(e.elseResult,t,n)}}function es(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>bT(r,t,n))}}function $E(e,t){if(!t||t.size===0)return e;let n={};for(let[r,i]of Object.entries(e))[...t].some(o=>r.startsWith(`${o}.`))||(n[r]=i);return n}function BE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function ku(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function NT(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,W("number"));else if(r.type==="WINDOW_COL"){if(nl(r)||bo(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,W("number"));else if((bo(r)||rl(r))&&r.arg.type!=="WILDCARD"){let i=Li(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?W(i):i)}}else r.type==="AGGREGATE"?r.func==="COUNT"||r.func==="SUM"||r.func==="AVG"||r.func==="STDDEV_POP"||r.func==="STDDEV_SAMP"||r.func==="VAR_POP"||r.func==="VAR_SAMP"||r.func==="MEDIAN"?n.set(r.alias,W("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,W("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,W("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,W(At(r.expr,i=>t?.(i))));return n}function Yu(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:c,havingFieldSemanticsResolver:p,aggregateSortKindResolver:u,appliedKlikes:d,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:m,plainGroupByPlan:y,warnings:g,evaluationContext:S}=e,A=NT(t.columns,u);for(let[P,O]of a??[])A.set(P,O);let I=[],N=t.from.alias;I=(n.get(N)??n.get(null)??[]).map(P=>Bt(P,N));let b=ku(BE(E?.get(N),N),void 0,I);for(let P of t.joins){let O=P.table.alias,h=(n.get(O)??[]).map(_=>Bt(_,O)),w=ku(BE(E?.get(O),O),void 0,h);I=nT(I,h,P,{leftColumns:b,rightColumns:w}),b=ku(b,w,I)}let M=e.residualWhere!==void 0?e.residualWhere:t.where;I=iT(I,M,s,d,l,S);let D=ee(t);if(D.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");I=aT(I,m,t.columns,u,{maxGeneratedRows:5e4,evaluationContext:S},t.having)}else(D.type==="PLAIN"||Qa(t.columns))&&(I=oT(I,D.type==="PLAIN"?D.allItems:[],t.columns,u,D.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:S},t.having));DE(t.columns,I,g);let k=P=>P.aggregateRef?YE(P.aggregateRef,u):p?.(P);return DE(t.having,I,g),I=uT(I,t.having,c,k,S),I=Hu(I,t.columns,i,o,A,u,S),t.distinct&&(I=cT(I,t.columns,r,s,l,S)),I=Vu(I,t.orderBy,i,o,A,Wu(t.columns,r,s,l,S),S),I=Za(I,t.limit,t.offset),Ln(I,t.columns,r,s,f,l,R,S)}function JE(e,t){let n=[];for(let r of e){let i=ju(r.$id?.value),o=CT(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[c,p]of Object.entries(r)){if(c===t)continue;let u=ju(p?.value);l[`_p.${c}`]={value:u}}for(let[c,p]of Object.entries(s.value??{}))l[c]={value:ju(p?.value)};n.push(l)}}return n}function CT(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function ju(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}var Xe={HEADER_UNKNOWN_KEY:"KSQL1001",HEADER_DUPLICATE_KEY:"KSQL1002",HEADER_INVALID_NAME:"KSQL1003",HEADER_INVALID_DEPENDS_ON:"KSQL1004",HEADER_INVALID_TIMEOUT:"KSQL1005",HEADER_INVALID_DIALECT:"KSQL1006",LOGICAL_APP_UNRESOLVED:"KSQL1101",LEX_ERROR:"KSQL1201",PARSE_ERROR:"KSQL1202",DIALECT1_REQUIRED:"KSQL1203",UPDATE_KEY_COMPOSITE:"KSQL1301",UPDATE_KEY_FIELD_TYPE:"KSQL1302",UPDATE_KEY_NOT_UNIQUE:"KSQL1303",SUBTABLE_DML_FORBIDDEN:"KSQL1304",BARE_INSERT_NOT_IDEMPOTENT:"KSQL1305",SERVER_TIME_FUNCTION_NOT_AS_OF:"KSQL1306"};function PT(e,t){let n=Math.max(0,Math.min(t,e.length)),r=1,i=1;for(let o=0;o<n;o++){let a=e[o];a==="\r"?(e[o+1]===`
5
5
  `&&o+1<n&&o++,r++,i=1):a===`
6
- `?(r++,i=1):i++}return{line:r,column:i}}function Ln(e,t,n){return{...n,...PT(e,t)}}var OT=/^(\s*)--\s*@ksql\s+([^:\s]+)\s*:\s*(.*)$/i;function XE(e){let t={name:null,dependsOn:[],timeout:null,dialect:0},n=[],r=new Set,i=!1,o=e.charCodeAt(0)===65279?1:0,a=o;for(;o<e.length;){let s=vT(e,o),l=e.slice(o,s.contentEnd);if(!/^\s*--/.test(l))break;a=s.next;let c=OT.exec(l);if(c){i=!0;let d=c[2],u=d.toLowerCase(),p=c[3],f=p.indexOf("#"),E=f<0?p:p.slice(0,f),R=E.match(/^\s*/)?.[0].length??0,m=E.trim(),y=o+c.index+c[0].length-p.length+R;LT(u)?r.has(u)?n.push(Ln(e,y,{severity:"warning",code:Xe.HEADER_DUPLICATE_KEY,message:`Duplicate @ksql header key "${u}" was ignored; the first value is retained.`})):(r.add(u),_T(t,u,m,e,y,n)):n.push(Ln(e,y,{severity:"warning",code:Xe.HEADER_UNKNOWN_KEY,message:`Unknown @ksql header key "${d}" was ignored.`}))}o=s.next}return{meta:t,diagnostics:n,hasDirectives:i,headerEnd:a}}function LT(e){return e==="name"||e==="depends_on"||e==="timeout"||e==="dialect"}function _T(e,t,n,r,i,o){if(t==="name"){n?e.name=n:o.push(Ln(r,i,{severity:"error",code:Xe.HEADER_INVALID_NAME,message:"@ksql name must not be empty."}));return}if(t==="depends_on"){let a=n.split(",").map(s=>s.trim());!n||a.some(s=>!s)?o.push(Ln(r,i,{severity:"error",code:Xe.HEADER_INVALID_DEPENDS_ON,message:"@ksql depends_on must be a comma-separated list without empty items."})):e.dependsOn=a;return}if(t==="timeout"){!/^[1-9]\d*$/.test(n)||!Number.isSafeInteger(Number(n))?o.push(Ln(r,i,{severity:"error",code:Xe.HEADER_INVALID_TIMEOUT,message:"@ksql timeout must be a positive integer."})):e.timeout=Number(n);return}n!=="0"&&n!=="1"?o.push(Ln(r,i,{severity:"error",code:Xe.HEADER_INVALID_DIALECT,message:"@ksql dialect must be 0 or 1."})):e.dialect=Number(n)}function vT(e,t){let n=t;for(;n<e.length&&e[n]!=="\r"&&e[n]!==`
6
+ `?(r++,i=1):i++}return{line:r,column:i}}function _n(e,t,n){return{...n,...PT(e,t)}}var OT=/^(\s*)--\s*@ksql\s+([^:\s]+)\s*:\s*(.*)$/i;function XE(e){let t={name:null,dependsOn:[],timeout:null,dialect:0},n=[],r=new Set,i=!1,o=e.charCodeAt(0)===65279?1:0,a=o;for(;o<e.length;){let s=vT(e,o),l=e.slice(o,s.contentEnd);if(!/^\s*--/.test(l))break;a=s.next;let c=OT.exec(l);if(c){i=!0;let p=c[2],u=p.toLowerCase(),d=c[3],f=d.indexOf("#"),E=f<0?d:d.slice(0,f),R=E.match(/^\s*/)?.[0].length??0,m=E.trim(),y=o+c.index+c[0].length-d.length+R;LT(u)?r.has(u)?n.push(_n(e,y,{severity:"warning",code:Xe.HEADER_DUPLICATE_KEY,message:`Duplicate @ksql header key "${u}" was ignored; the first value is retained.`})):(r.add(u),_T(t,u,m,e,y,n)):n.push(_n(e,y,{severity:"warning",code:Xe.HEADER_UNKNOWN_KEY,message:`Unknown @ksql header key "${p}" was ignored.`}))}o=s.next}return{meta:t,diagnostics:n,hasDirectives:i,headerEnd:a}}function LT(e){return e==="name"||e==="depends_on"||e==="timeout"||e==="dialect"}function _T(e,t,n,r,i,o){if(t==="name"){n?e.name=n:o.push(_n(r,i,{severity:"error",code:Xe.HEADER_INVALID_NAME,message:"@ksql name must not be empty."}));return}if(t==="depends_on"){let a=n.split(",").map(s=>s.trim());!n||a.some(s=>!s)?o.push(_n(r,i,{severity:"error",code:Xe.HEADER_INVALID_DEPENDS_ON,message:"@ksql depends_on must be a comma-separated list without empty items."})):e.dependsOn=a;return}if(t==="timeout"){!/^[1-9]\d*$/.test(n)||!Number.isSafeInteger(Number(n))?o.push(_n(r,i,{severity:"error",code:Xe.HEADER_INVALID_TIMEOUT,message:"@ksql timeout must be a positive integer."})):e.timeout=Number(n);return}n!=="0"&&n!=="1"?o.push(_n(r,i,{severity:"error",code:Xe.HEADER_INVALID_DIALECT,message:"@ksql dialect must be 0 or 1."})):e.dialect=Number(n)}function vT(e,t){let n=t;for(;n<e.length&&e[n]!=="\r"&&e[n]!==`
7
7
  `;)n++;let r=n;return e[n]==="\r"&&e[n+1]===`
8
- `?n+=2:n<e.length&&n++,{contentEnd:r,next:n}}function QE(e,t={}){let n=new sn(e).tokenize(),r=new ln(n,t).parse();return st(r),r}function zu(e,t={}){let n=new sn(e).tokenize(),r=new ln(n,t).parseStatements();return r.forEach(st),r}function qu(e,t={}){let n=XE(e),r=n.diagnostics.find(a=>a.severity==="error");if(n.hasDirectives&&r)throw new Error(`${r.code}: ${r.message} (${r.line}:${r.column})`);let i=n.hasDirectives?e.slice(n.headerEnd):e,o=n.hasDirectives?{...t,dialect1:n.meta.dialect===1}:t;return{statements:zu(i,o),meta:n.meta}}var ZE="bare \u306E\u6642\u523B\u4F9D\u5B58\u95A2\u6570\u306F kintone \u30B5\u30FC\u30D0\u30FC\u8A55\u4FA1\u306E\u305F\u3081 as-of \u306E\u5BFE\u8C61\u5916\u3067\u3059\u3002\u518D\u73FE\u6027\u304C\u5FC5\u8981\u306A\u3089 @ \u4ED8\u304D\u95A2\u6570\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002";function Ju(e,t){if(t===void 0)return e.keyFields.length===1?[]:[{code:Xe.UPDATE_KEY_COMPOSITE,severity:"error",message:"dialect 1 \u306E UPSERT / MERGE \u306E\u30AD\u30FC\u306F\u5358\u4E00\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u8907\u5408\u30AD\u30FC\u306E\u4EE3\u308F\u308A\u306B\u3001\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u4F8B: \u9867\u5BA2\u30B3\u30FC\u30C9_\u5E74\u6708\uFF09\u3092\u30A2\u30D7\u30EA\u5074\u306B\u7528\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}];if(e.keyFields.length!==1)return[];let n=e.keyFields[0],r=t.find(o=>o.code===n),i=[];return(r===void 0||r.fieldType!=="SINGLE_LINE_TEXT"&&r.fieldType!=="NUMBER")&&i.push({code:Xe.UPDATE_KEY_FIELD_TYPE,severity:"error",message:r===void 0?`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C APP${e.appId} \u306E\u30D5\u30A9\u30FC\u30E0\u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u578B ${r.fieldType} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),r?.isUnique===!1?i.push({code:Xe.UPDATE_KEY_NOT_UNIQUE,severity:"error",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306F\u91CD\u8907\u7981\u6B62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u8A2D\u5B9A\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}):r!==void 0&&r.isUnique===void 0&&i.push({code:Xe.UPDATE_KEY_NOT_UNIQUE,severity:"warning",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u91CD\u8907\u7981\u6B62\u8A2D\u5B9A\u3092 schema resolver \u304B\u3089\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002isUnique \u3092\u8FD4\u3059 resolver \u3092\u4F7F\u7528\u3057\u3001\u30A2\u30D7\u30EA\u5074\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u304C\u6709\u52B9\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),i}function Xu(e){let t=!1,n=r=>{if(t||r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r,o=i.where;if(o!==null&&typeof o=="object"&&Ae(o).some(s=>s==="TODAY"||s==="NOW"||ne(s))){t=!0;return}Object.values(i).forEach(n)};return n(e),t}function eR(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function tR(e,t){let n=Di(e);for(let[r,i]of Object.entries(t))n[r]=Di(i);return n}function nR(e){let t=[...e.preErrors.map(i=>Qu(i)),...e.postImageErrors.map(i=>Qu(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Qu(i))],n=new Set;t.length>0&&n.add(e.rowNumber);let r={};for(let i of new Set(e.setFields)){if(!Object.prototype.hasOwnProperty.call(e.normalizedPostImage,i))throw new Error(`InternalError: normalized post-image is missing SET field: ${i}`);r[i]=Di(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Qu(e,t=!1){return{...e,$err_value:t?e.$err_value??"":"",$err_subtable:t?e.$err_subtable??"":"",$err_subrow:t?e.$err_subrow??"":"",$err_subrow_id:t?e.$err_subrow_id??"":""}}function Di(e,t=new Map){if(e===null||typeof e!="object")return e;let n=e,r=t.get(n);if(r!==void 0)return r;if(Array.isArray(e)){let o=[];t.set(n,o);for(let a of e)o.push(Di(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Di(a,t);return i}function iR(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="KINTONE_FUNC"&&typeof a.name=="string"&&at(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function ec(e){return iR(e,!0)}function ts(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function dt(e,t,n,r,i=!0,o=!0,a=r){let s=ec(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:Ae(e.where)}),ts(e,e).forEach((l,c)=>dt(l,`${t}.select-source[${c}]`,n,a,a?!1:i,a?!1:o,a))}function Ui(e,t,n,r,i=!0){e.left.type==="UNION"?Ui(e.left,`${t}.left`,n,r,i):dt(e.left,`${t}.left`,n,r,!0,i),dt(e.right,`${t}.right`,n,r,!0,i)}function rR(e,t,n,r){if(!r&&tn(e)){dt(nn(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?dt(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Ui(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?dt(e.query,`${t}.main`,n,r,!1,!r,!0):Ui(e.query,`${t}.main`,n,!0,!1)}function oR(e,t,n,r=!1){switch(e.type){case"SELECT":dt(e,t,n,r);return;case"UNION":Ui(e,t,n,r);return;case"WITH":rR(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?rR(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Ui(e.query,`${t}.query`,n,!0,!1):dt(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":oR(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=ec(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Ae(e.where)}),ts(e,e).forEach((o,a)=>dt(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=ec(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Ae(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=iR(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}ts(e,e).forEach((o,a)=>dt(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:ts(e,e).forEach((i,o)=>dt(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function ns(e,t){let n=new Map;for(let r of t){if(!at(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function tc(e,t){return t.eligible===!0&&ze(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function DT(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER"||n.type==="CROSS")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&mr(t)}function UT(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function MT(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return zn(e)?(n.some(r=>r!==vt)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(vt)||n.push(vt)):n.includes(yn)||n.push(yn),[...new Set(n)]}function Zu(e,t){let n=e.functionNames[0],r=zn(n)?vt:yn,i=MT(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function aR(e,t){let n=[];oR(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let d=UT(i);return r.push(d),{hasRelativeDate:i.functionNames.some(ne),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Zu(i)}}if(i.kind==="SELECT"){let d=i.source,u=d.from.cteName===null&&!d.from.subtableCode&&d.joins.length===0,p=ze(d),f=await t.select(d),E="";try{E=i.where===null?"":z(i.where)}catch{E=""}let R=u&&p==="SIMPLE"&&(d.orderBy.length===0||d.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&ns(E,i.relativeFunctionOccurrences),m,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(d);I?.eligible===!0&&tc(d,I)&&(m=I.plan,y=!0,R=!0)}let g;!R&&f.capability==="EXACT_PUSHDOWN"&&(g=na({select:d,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,g&&(m=g.prefilterPlan,R=!0));let S;if(!R&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(d);I!==null&&DT(d,I)&&(S=I,R=!0)}let A={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:f,restQuery:E,...m?{prefilterPlan:m,phase2PrefilterEligible:y}:{},...g?{fullScanExactPlan:g,allowForm:g.allowForm}:{},...S?{joinServerFunctionPlan:S,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:S.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(A),!R)return{hasRelativeDate:n.some(I=>I.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Zu(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":z(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&ns(s,i.relativeFunctionOccurrences),c={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(c),!l)return{hasRelativeDate:n.some(d=>d.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Zu(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ne)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function nc(e){if(!e.allowed&&e.rejection){let t=zn(e.rejection.functionName)?vt:yn,n=e.rejection.reasonCodes.filter(r=>r!==t);throw new Error(`${e.rejection.functionName}: ${t}${n.length>0?` (reason=${n.join(", ")})`:""} (path=${e.rejection.path})`)}}function rc(e,t,n={}){let r=Te(e.where,t),i=(S,A="INELIGIBLE")=>({eligible:!1,disposition:A,reasonCodes:S,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=ki(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=kT(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!xT(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(r.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(r.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=KT(e.where,t),l=zr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),c=n.serialize??z,d=n.containsFunctions??ns,u=[];for(let S of a.leaves){let A=as(S);if(A===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let I;try{I=c(S)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!d(I,[A]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(S)}let p=FT(l.condition),f=new Set(u),E=is(e.where,f,p);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=c(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=u.map(S=>as(S));if(!d(R,[...new Set(m)])||!GT(R,m))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):os(e.where,f);if(y!==null&&ki(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let g=new Set;for(let S of m)g.add(S);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:y,exactRelativeLeaves:u,relativeFunctionNames:g,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function kT(e,t){let n=[],r=null,i=o=>{if(r===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}ki(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":ki(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(as(o)===null)return;if(Te(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":ki(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function as(e){return e.right.type==="KINTONE_FUNC"&&at(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&at(e.right.values[0].name)?e.right.values[0].name:null}function ki(e){let t=[],n=r=>{if(r.type==="BINARY"&&as(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function xT(e,t){if(e.length!==t.length)return!1;let n=new Set(t);for(let r of e)if(!n.delete(r))return!1;return n.size===0}function FT(e){let t=new Set,n=r=>{switch(r.type){case"BINARY":t.add(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&n(e),t}function is(e,t,n){switch(e.type){case"BINARY":return t.has(e)||n.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=is(e.left,t,n),i=is(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=is(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Mi={type:"BOOLEAN",value:!0};function os(e,t){if(e.type==="BINARY"&&t.has(e))return Mi;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=os(e.left,t)??Mi,r=os(e.right,t)??Mi;return rs(n)?rs(r)?null:r:rs(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=os(e.expr,t)??Mi;return rs(n)?Mi:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function rs(e){return e.type==="BOOLEAN"&&e.value}function KT(e,t){let n=new Map,r=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(r);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){n.set(s.field,a);return}Object.values(s).forEach(r)}};r(e);let i=new Map,o=new Map;for(let[a,s]of n){let l=t(s);l&&(i.set(a,l.fieldType),l.optionOrder&&o.set(a,new Set(l.optionOrder.keys())))}return{fieldTypes:i,fieldOptions:o}}function GT(e,t){let n=new Map;for(let r of t){if(!Dr.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var Y=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}},Qe=class extends Error{constructor(t,n,r){super(`${t}: ${n}`),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}};function sR(e){if(e===null||typeof e!="object")return;let t=e,n=t.code==="ImportSourceReadError"||t.code==="ImportSourceNotRegularFileError"?t.code:t.name==="ImportSourceReadError"||t.name==="ImportSourceNotRegularFileError"?t.name:void 0;if(!n)return;let r=n==="ImportSourceReadError"?"IMPORT source could not be read.":"IMPORT source is not a regular file.";return new Qe(n,typeof t.message=="string"&&t.message.length>0?t.message:r,e)}function $T(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function lR(e,t){if(!t)throw new Qe("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);try{let n=t(e);if(!n)throw new Qe("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);if(typeof n!="object"||typeof n.load!="function")throw new Qe("ImportSourceInvalidPayloadError","resolver must return a handle with a load function.");return n}catch(n){throw n instanceof Qe?n:sR(n)??new Qe("ImportSourceReadError","IMPORT source resolution failed.",n)}}async function ss(e,t){let n=t.get(e);return n||(n=Promise.resolve().then(()=>e.load()).catch(r=>{throw sR(r)??new Qe("ImportSourceReadError","IMPORT source could not be read.",r)}).then(r=>{if(r===null||typeof r!="object"||!$T(r.bytes))throw new Qe("ImportSourceInvalidPayloadError","loader must return Uint8Array bytes.");if(r.encoding!==void 0&&r.encoding!=="utf8"&&r.encoding!=="sjis")throw new Qe("ImportSourceInvalidPayloadError","loader returned an unsupported encoding.");if(r.bytes.byteLength>10485760)throw new Qe("ImportSourceTooLargeError","source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function BT(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new Y(`invalid ${t.toUpperCase()} byte sequence.`)}}function VT(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let c=e[a];if(i){if(c==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=c,a++;continue}if(o&&c!==","&&c!=="\r"&&c!==`
8
+ `?n+=2:n<e.length&&n++,{contentEnd:r,next:n}}function QE(e,t={}){let n=new sn(e).tokenize(),r=new ln(n,t).parse();return st(r),r}function zu(e,t={}){let n=new sn(e).tokenize(),r=new ln(n,t).parseStatements();return r.forEach(st),r}function qu(e,t={}){let n=XE(e),r=n.diagnostics.find(a=>a.severity==="error");if(n.hasDirectives&&r)throw new Error(`${r.code}: ${r.message} (${r.line}:${r.column})`);let i=n.hasDirectives?e.slice(n.headerEnd):e,o=n.hasDirectives?{...t,dialect1:n.meta.dialect===1}:t;return{statements:zu(i,o),meta:n.meta}}var ZE="bare \u306E\u6642\u523B\u4F9D\u5B58\u95A2\u6570\u306F kintone \u30B5\u30FC\u30D0\u30FC\u8A55\u4FA1\u306E\u305F\u3081 as-of \u306E\u5BFE\u8C61\u5916\u3067\u3059\u3002\u518D\u73FE\u6027\u304C\u5FC5\u8981\u306A\u3089 @ \u4ED8\u304D\u95A2\u6570\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002";function Ju(e,t){if(t===void 0)return e.keyFields.length===1?[]:[{code:Xe.UPDATE_KEY_COMPOSITE,severity:"error",message:"dialect 1 \u306E UPSERT / MERGE \u306E\u30AD\u30FC\u306F\u5358\u4E00\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u8907\u5408\u30AD\u30FC\u306E\u4EE3\u308F\u308A\u306B\u3001\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u4F8B: \u9867\u5BA2\u30B3\u30FC\u30C9_\u5E74\u6708\uFF09\u3092\u30A2\u30D7\u30EA\u5074\u306B\u7528\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}];if(e.keyFields.length!==1)return[];let n=e.keyFields[0],r=t.find(o=>o.code===n),i=[];return(r===void 0||r.fieldType!=="SINGLE_LINE_TEXT"&&r.fieldType!=="NUMBER")&&i.push({code:Xe.UPDATE_KEY_FIELD_TYPE,severity:"error",message:r===void 0?`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C APP${e.appId} \u306E\u30D5\u30A9\u30FC\u30E0\u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u578B ${r.fieldType} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),r?.isUnique===!1?i.push({code:Xe.UPDATE_KEY_NOT_UNIQUE,severity:"error",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306F\u91CD\u8907\u7981\u6B62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u8A2D\u5B9A\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}):r!==void 0&&r.isUnique===void 0&&i.push({code:Xe.UPDATE_KEY_NOT_UNIQUE,severity:"warning",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u91CD\u8907\u7981\u6B62\u8A2D\u5B9A\u3092 schema resolver \u304B\u3089\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002isUnique \u3092\u8FD4\u3059 resolver \u3092\u4F7F\u7528\u3057\u3001\u30A2\u30D7\u30EA\u5074\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u304C\u6709\u52B9\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),i}function Xu(e){let t=!1,n=r=>{if(t||r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r,o=i.where;if(o!==null&&typeof o=="object"&&Ae(o).some(s=>s==="TODAY"||s==="NOW"||ne(s))){t=!0;return}Object.values(i).forEach(n)};return n(e),t}function eR(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function tR(e,t){let n=Di(e);for(let[r,i]of Object.entries(t))n[r]=Di(i);return n}function nR(e){let t=[...e.preErrors.map(i=>Qu(i)),...e.postImageErrors.map(i=>Qu(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Qu(i))],n=new Set;t.length>0&&n.add(e.rowNumber);let r={};for(let i of new Set(e.setFields)){if(!Object.prototype.hasOwnProperty.call(e.normalizedPostImage,i))throw new Error(`InternalError: normalized post-image is missing SET field: ${i}`);r[i]=Di(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Qu(e,t=!1){return{...e,$err_value:t?e.$err_value??"":"",$err_subtable:t?e.$err_subtable??"":"",$err_subrow:t?e.$err_subrow??"":"",$err_subrow_id:t?e.$err_subrow_id??"":""}}function Di(e,t=new Map){if(e===null||typeof e!="object")return e;let n=e,r=t.get(n);if(r!==void 0)return r;if(Array.isArray(e)){let o=[];t.set(n,o);for(let a of e)o.push(Di(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Di(a,t);return i}function iR(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="KINTONE_FUNC"&&typeof a.name=="string"&&at(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function ec(e){return iR(e,!0)}function ts(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function dt(e,t,n,r,i=!0,o=!0,a=r){let s=ec(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:Ae(e.where)}),ts(e,e).forEach((l,c)=>dt(l,`${t}.select-source[${c}]`,n,a,a?!1:i,a?!1:o,a))}function Ui(e,t,n,r,i=!0){e.left.type==="UNION"?Ui(e.left,`${t}.left`,n,r,i):dt(e.left,`${t}.left`,n,r,!0,i),dt(e.right,`${t}.right`,n,r,!0,i)}function rR(e,t,n,r){if(!r&&tn(e)){dt(nn(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?dt(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Ui(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?dt(e.query,`${t}.main`,n,r,!1,!r,!0):Ui(e.query,`${t}.main`,n,!0,!1)}function oR(e,t,n,r=!1){switch(e.type){case"SELECT":dt(e,t,n,r);return;case"UNION":Ui(e,t,n,r);return;case"WITH":rR(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?rR(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Ui(e.query,`${t}.query`,n,!0,!1):dt(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":oR(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=ec(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Ae(e.where)}),ts(e,e).forEach((o,a)=>dt(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=ec(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Ae(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=iR(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}ts(e,e).forEach((o,a)=>dt(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:ts(e,e).forEach((i,o)=>dt(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function ns(e,t){let n=new Map;for(let r of t){if(!at(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function tc(e,t){return t.eligible===!0&&ze(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function DT(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER"||n.type==="CROSS")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&yr(t)}function UT(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function MT(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return qn(e)?(n.some(r=>r!==vt)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(vt)||n.push(vt)):n.includes(yn)||n.push(yn),[...new Set(n)]}function Zu(e,t){let n=e.functionNames[0],r=qn(n)?vt:yn,i=MT(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function aR(e,t){let n=[];oR(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=UT(i);return r.push(p),{hasRelativeDate:i.functionNames.some(ne),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Zu(i)}}if(i.kind==="SELECT"){let p=i.source,u=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,d=ze(p),f=await t.select(p),E="";try{E=i.where===null?"":z(i.where)}catch{E=""}let R=u&&d==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&ns(E,i.relativeFunctionOccurrences),m,y;if(!R&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(p);I?.eligible===!0&&tc(p,I)&&(m=I.plan,y=!0,R=!0)}let g;!R&&f.capability==="EXACT_PUSHDOWN"&&(g=na({select:p,selectMode:d,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,g&&(m=g.prefilterPlan,R=!0));let S;if(!R&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(p);I!==null&&DT(p,I)&&(S=I,R=!0)}let A={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:d,capability:f,restQuery:E,...m?{prefilterPlan:m,phase2PrefilterEligible:y}:{},...g?{fullScanExactPlan:g,allowForm:g.allowForm}:{},...S?{joinServerFunctionPlan:S,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:S.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!R,allowed:R};if(r.push(A),!R)return{hasRelativeDate:n.some(I=>I.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Zu(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":z(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&ns(s,i.relativeFunctionOccurrences),c={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(c),!l)return{hasRelativeDate:n.some(p=>p.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Zu(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ne)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function nc(e){if(!e.allowed&&e.rejection){let t=qn(e.rejection.functionName)?vt:yn,n=e.rejection.reasonCodes.filter(r=>r!==t);throw new Error(`${e.rejection.functionName}: ${t}${n.length>0?` (reason=${n.join(", ")})`:""} (path=${e.rejection.path})`)}}function rc(e,t,n={}){let r=Te(e.where,t),i=(S,A="INELIGIBLE")=>({eligible:!1,disposition:A,reasonCodes:S,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=ki(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=kT(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!xT(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(r.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(r.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=KT(e.where,t),l=qr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),c=n.serialize??z,p=n.containsFunctions??ns,u=[];for(let S of a.leaves){let A=as(S);if(A===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let I;try{I=c(S)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!p(I,[A]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(S)}let d=FT(l.condition),f=new Set(u),E=is(e.where,f,d);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let R;try{R=c(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=u.map(S=>as(S));if(!p(R,[...new Set(m)])||!GT(R,m))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):os(e.where,f);if(y!==null&&ki(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let g=new Set;for(let S of m)g.add(S);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:y,exactRelativeLeaves:u,relativeFunctionNames:g,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function kT(e,t){let n=[],r=null,i=o=>{if(r===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}ki(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":ki(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(as(o)===null)return;if(Te(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":ki(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function as(e){return e.right.type==="KINTONE_FUNC"&&at(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&at(e.right.values[0].name)?e.right.values[0].name:null}function ki(e){let t=[],n=r=>{if(r.type==="BINARY"&&as(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function xT(e,t){if(e.length!==t.length)return!1;let n=new Set(t);for(let r of e)if(!n.delete(r))return!1;return n.size===0}function FT(e){let t=new Set,n=r=>{switch(r.type){case"BINARY":t.add(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&n(e),t}function is(e,t,n){switch(e.type){case"BINARY":return t.has(e)||n.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=is(e.left,t,n),i=is(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=is(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Mi={type:"BOOLEAN",value:!0};function os(e,t){if(e.type==="BINARY"&&t.has(e))return Mi;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=os(e.left,t)??Mi,r=os(e.right,t)??Mi;return rs(n)?rs(r)?null:r:rs(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=os(e.expr,t)??Mi;return rs(n)?Mi:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function rs(e){return e.type==="BOOLEAN"&&e.value}function KT(e,t){let n=new Map,r=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(r);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){n.set(s.field,a);return}Object.values(s).forEach(r)}};r(e);let i=new Map,o=new Map;for(let[a,s]of n){let l=t(s);l&&(i.set(a,l.fieldType),l.optionOrder&&o.set(a,new Set(l.optionOrder.keys())))}return{fieldTypes:i,fieldOptions:o}}function GT(e,t){let n=new Map;for(let r of t){if(!Ur.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var Y=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}},Qe=class extends Error{constructor(t,n,r){super(`${t}: ${n}`),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}};function sR(e){if(e===null||typeof e!="object")return;let t=e,n=t.code==="ImportSourceReadError"||t.code==="ImportSourceNotRegularFileError"?t.code:t.name==="ImportSourceReadError"||t.name==="ImportSourceNotRegularFileError"?t.name:void 0;if(!n)return;let r=n==="ImportSourceReadError"?"IMPORT source could not be read.":"IMPORT source is not a regular file.";return new Qe(n,typeof t.message=="string"&&t.message.length>0?t.message:r,e)}function $T(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function lR(e,t){if(!t)throw new Qe("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);try{let n=t(e);if(!n)throw new Qe("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);if(typeof n!="object"||typeof n.load!="function")throw new Qe("ImportSourceInvalidPayloadError","resolver must return a handle with a load function.");return n}catch(n){throw n instanceof Qe?n:sR(n)??new Qe("ImportSourceReadError","IMPORT source resolution failed.",n)}}async function ss(e,t){let n=t.get(e);return n||(n=Promise.resolve().then(()=>e.load()).catch(r=>{throw sR(r)??new Qe("ImportSourceReadError","IMPORT source could not be read.",r)}).then(r=>{if(r===null||typeof r!="object"||!$T(r.bytes))throw new Qe("ImportSourceInvalidPayloadError","loader must return Uint8Array bytes.");if(r.encoding!==void 0&&r.encoding!=="utf8"&&r.encoding!=="sjis")throw new Qe("ImportSourceInvalidPayloadError","loader returned an unsupported encoding.");if(r.bytes.byteLength>10485760)throw new Qe("ImportSourceTooLargeError","source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function BT(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new Y(`invalid ${t.toUpperCase()} byte sequence.`)}}function VT(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let c=e[a];if(i){if(c==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=c,a++;continue}if(o&&c!==","&&c!=="\r"&&c!==`
9
9
  `)throw new Y(`unexpected character after closing quote at offset ${a}.`);if(c==='"'){if(r.length!==0)throw new Y(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(c===","){s(),a++;continue}if(c==="\r"||c===`
10
10
  `){c==="\r"&&e[a+1]===`
11
11
  `&&a++,l(),a++;continue}r+=c,a++}if(i)throw new Y("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function WT(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new Y(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new Y(`CSV column name "${n}" is duplicated.`);t.add(n)})}function ls(e,t){let n=VT(BT(e,t.encoding)),r,i;if(t.hasHeader?(r=n[0]??[],i=n.slice(1)):(i=n,r=t.columns?[...t.columns]:Array.from({length:i[0]?.length??0},(o,a)=>`c${a+1}`)),WT(r),i.length===0)throw new Y("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new Y(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var HT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),YT=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),xi=class extends Error{constructor(){super("multiple-value CSV cell contains an empty LF-delimited item");this.code="ERR_IMPORT_MULTI_EMPTY_ITEM";this.name="ImportCsvValueError"}};function uR(e,t,n){if(!HT.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new xi;return YT.has(t??"")?r.map(i=>({code:i})):r}function Vt(e,t,n,r){throw new Y(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function cR(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new Y("JSON source is not valid UTF-8.")}}function pR(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
12
12
  `?(r++,i=1):i++,s},a=()=>({offset:n,line:r,column:i});for(;n<e.length;){let s=e[n];if(s===" "||s===" "||s==="\r"||s===`
13
- `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&Vt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){p+=E;continue}n>=e.length&&Vt("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
14
- `,r:"\r",t:" "};if(R in m){p+=m[R];continue}R!=="u"&&Vt(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||Vt("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let g=Number.parseInt(y,16);if(g>=55296&&g<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Vt("has an unpaired high surrogate",n,r,i),o(),o();let S=e.slice(n,n+4);for(let I=0;I<4;I++)o();let A=Number.parseInt(S,16);(A<56320||A>57343)&&Vt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(g-55296<<10)+A-56320)}else g>=56320&&g<=57343?Vt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(g)}f||Vt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let c=e.slice(n),d=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(c)?.[0];if(d){for(let p=0;p<d.length;p++)o();t.push({kind:"number",lexeme:d,...l});continue}let u=/^(true|false|null)/.exec(c)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}Vt(`has an unexpected token ${JSON.stringify(s)}`,l.offset,l.line,l.column)}return t.push({kind:"eof",offset:n,line:r,column:i}),t}function us(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function cs(e){if(e.byteLength===0)throw new Y("JSON source is empty.");let t=pR(cR(e)),n=0,r=(c,d=t[n])=>{throw new Y(`JSON ${c} (offset=${d.offset}, line=${d.line}, column=${d.column}).`)},i=(c,d)=>c.kind==="punct"&&c.value===d,o=c=>{let d=t[n];(d.kind!=="punct"||d.value!==c)&&r(`expected ${c}; found ${us(d)}`,d),n++},a=()=>{let c=t[n++];if(c.kind==="string")return c.value;if(c.kind==="number")return{kind:"number",lexeme:c.lexeme};if(c.kind==="literal")return c.value;if(c.kind==="punct"&&c.value==="{"){let d=new Map;if(i(t[n],"}"))return n++,d;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${us(u)}`,u);let p=u.value;d.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),d.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return d}if(c.kind==="punct"&&c.value==="["){let d=[];if(i(t[n],"]"))return n++,d;for(;;){d.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return d}return r(`expected a value; found ${us(c)}`,c)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${us(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new Y("JSON source contains no records.");return l.forEach((c,d)=>{if(!(c instanceof Map))throw new Y(`JSON record ${d+1} must be an object.`)}),l}var jT=new Set(["CHECK_BOX","MULTI_SELECT"]),dR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ot(e,t,n){throw new Y(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function zT(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function qT(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&Ot(n,t.code,"boolean is not accepted."),zT(e)){t.fieldType==="NUMBER"&&Ot(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&Ot(n,t.code,`JSON number ${e.lexeme} must be a non-negative-zero safe integer lexeme.`);let i=Number(e.lexeme);return Number.isSafeInteger(i)||Ot(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&Ot(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||Ot(n,t.code,"unsupported value type."),!jT.has(t.fieldType)&&!dR.has(t.fieldType)&&Ot(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&Ot(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&Ot(n,t.code,"array elements must not contain duplicates."),dR.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function ic(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let i=cs(t.bytes);if(i.length>r)throw new Y(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new Y("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,c)=>{for(let p of l.keys())o.has(p)||Ot(c+1,p,"unknown key (not declared in INTO).");let d={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),d[p.code]=qT(l.get(p.code),p,c+1));a.push(d),s.push(u)}),{receipt:{rows:i.length,encoding:"utf8"},rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function oc(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ls(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(s.rows.length>n)throw new Y(`source rows (${s.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new Y("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let c=new Map(s.columns.map((g,S)=>[g,S]));for(let g of r)if(!c.has(g))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${g}" is missing.`);let d=new Map(i.map(g=>[g.code,g])),u=new Set(r);if(o&&u.has(o))throw new Y("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!c.has(o))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let p=[],f=[],E=g=>s.rows.filter(S=>S[g]!=="").length,R=g=>g.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":g.inSubtable||g.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":g.writable===!1?`non-writable ${g.fieldType} field`:`known export-only ${g.fieldType} field`;for(let[g,S]of s.columns.entries()){if(u.has(S)||S===o)continue;let A=d.get(S);if(A)p.push({column:S,reason:R(A),nonEmptyCells:E(g)});else if(e.ignoreUnknownColumns)f.push({column:S,reason:"unknown column ignored by explicit policy",nonEmptyCells:E(g)});else throw new Y(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${S}".`)}for(let g of r){let S=d.get(g);if(!S)throw new Error(`ArgumentError: DML target field ${g} does not exist.`);if(S.inSubtable||S.writable===!1||S.fieldType==="FILE"||S.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${g} is not writable (${S.fieldType}).`)}let m=[],y=s.rows.map(g=>{let S=[],A={};for(let I of r){let N=g[c.get(I)];try{A[I]=uR(N,d.get(I)?.fieldType,{cliKintone:!0})}catch(v){if(!(v instanceof xi))throw v;A[I]=N,S.push({field:I,code:v.code,message:v.message})}}return m.push(S),A});return{receipt:{rows:s.rows.length,encoding:a},rows:y,columns:[...r],columnMeta:new Map(r.map(g=>[g,{fieldType:d.get(g)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:m,...o?{recordNumberSourceValues:s.rows.map(g=>g[c.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:p,ignoredUnknownColumns:f}}}let l=s.rows.map(c=>Object.fromEntries(s.columns.map((d,u)=>[d,c[u]])));return{receipt:{rows:s.rows.length,encoding:a},rows:l,columns:s.columns,columnMeta:new Map(s.columns.map(c=>[c,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Fi=(e,t,n)=>{throw new Y(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function fR(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let o=cs(t.bytes);if(o.length>r)throw new Y(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new Y("IMPORT targets contain duplicates.");let s=0;return{receipt:{rows:o.length,encoding:"utf8"},records:o.map((l,c)=>{let d=c+1;for(let E of l.keys())a.has(E)||Fi(d,E,"unknown key (not declared in INTO).");let u=new Map,p=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&Fi(d,R,"object is not accepted for a top-level field."),u.set(R,m);continue}Array.isArray(m)||Fi(d,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),g=m.map((S,A)=>{S instanceof Map||Fi(d,R,`childRow=${A+1} must be an object.`);let I=S;for(let N of I.keys())y.has(N)||Fi(d,N,`unknown child key in subtable ${R} at childRow=${A+1}.`);if(s++,s>i)throw new Y(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:A+1,values:I}});p.set(R,g)}return{rowNumber:d,top:u,subtables:p,replacementTables:f}})}}function ER(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ls(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||s.columns[0]!=="*")throw new Y('ERR_IMPORT_MARKER: first CSV header must be "*".');let l=new Map(s.columns.map((f,E)=>[f,E]));if(o&&!l.has(o))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=n.filter(f=>f.kind==="FIELD"),d=n.filter(f=>f.kind==="SUBTABLE");for(let f of c)if(!l.has(f.field))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${f.field}" is missing.`);for(let f of d){if(!f.rowIdSourceHeader||!l.has(f.rowIdSourceHeader))throw new Y(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${f.subtableCode} is missing.`);for(let E of f.children)if(!l.has(E))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required child header "${E}" is missing.`)}let u=[],p;if(s.rows.forEach((f,E)=>{let R=E+2,m=f[0];if(m!==""&&m!=="*")throw new Y(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(m)} at source row ${R}.`);if(m==="*"){if(u.length>=i)throw new Y(`source parent rows exceed maxRecords (${i}).`);p={rowNumber:u.length+1,markerRowNumber:R,top:new Map(c.map(y=>[y.field,f[l.get(y.field)]])),subtables:new Map(d.map(y=>[y.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:f[l.get(o)]}:{}},u.push(p)}else if(p){for(let y of c){let g=f[l.get(y.field)];if(g!==""&&g!==p.top.get(y.field))throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${y.field} at source row ${R}.`)}if(o){let y=f[l.get(o)];if(y!==""&&y!==p.recordNumberSourceValue)throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new Y(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let y of d){let g=f[l.get(y.rowIdSourceHeader)],S=new Map(y.children.map(I=>[I,f[l.get(I)]]));if(g===""&&[...S.values()].every(I=>I===""))continue;let A=p.subtables.get(y.subtableCode);A.push({childRowNumber:A.length+1,sourceRowNumber:R,...g?{rowId:g}:{},values:S})}}),u.length===0)throw new Y("CSV has no parent rows.");return{receipt:{rows:s.rows.length,encoding:a},records:u}}var JT=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),XT=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function lc(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function gR(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)RR(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let E=a.get(p.subtableCode)??new Map;for(let R of p.children)RR(R,E.get(R),p.subtableCode)}let c=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),d=e.records.map(p=>QT(p,s,l,o,a,r,i,c)),u=d.flatMap(p=>[...p.errors]);return{parents:d,errors:u,invalidParentRows:new Set(d.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:c}}function QT(e,t,n,r,i,o,a,s){let l=[],c={};for(let p of t)e.top.has(p.field)&&sc(e.top.get(p.field),r.get(p.field),o,c,p.field,l,ac(e,a,p.field));let d={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||mR(p,o,d,l,ac(e,a,p.code));let u=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(p.subtableCode)){f.childRows++;let m=l.length,y={},g=i.get(p.subtableCode);for(let S of p.children){let A=g.get(S),I=ac(e,a,S,p.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(S)?sc(R.values.get(S),A,o,y,S,l,I):mR(A,o,y,l,I)}l.length===m?(f.validChildRows++,E.push(y)):f.invalidChildRows++}u.set(p.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:c,subtables:u,replacementTables:e.replacementTables,errors:l}}function RR(e,t,n){if(!t)throw new Error(n?`ArgumentError: IMPORT child ${e} does not belong to subtable ${n}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||n&&XT.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function mR(e,t,n,r,i){let o=wn(e.defaultValue)?"":e.defaultValue;sc(o,e,t,n,e.code,r,i,!wn(e.defaultValue))}function sc(e,t,n,r,i,o,a,s=!1){let l=ZT(e),c=Ye(l,t,n);c.ok?r[i]={value:eI(l,t)?l:c.value}:o.push({...a,code:c.code,message:s?`\u65E2\u5B9A\u5024: ${c.message}`:c.message})}function ZT(e){return yR(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:yR(t)?t.lexeme:t):e}function yR(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function eI(e,t){return JT.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function ac(e,t,n,r,i,o){let a=o??e.markerRowNumber;return{operation:t,parentRow:e.rowNumber,field:n,...r?{subtable:r}:{},...i==null?{}:{subrow:i},...a==null?{}:{sourceRow:a},sourceValues:r?e.subtables.get(r)?.[i-1]?.values??new Map:e.top}}var uc=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function cc(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":tI(r.sourceValues.get(o));return i.$err_statement=String(n),i.$err_operation=r.operation,i.$err_row=String(r.parentRow),i.$err_field=r.field,i.$err_subtable=r.subtable??"",i.$err_subrow=r.subrow==null?"":String(r.subrow),i.$err_source_row=r.sourceRow==null?null:String(r.sourceRow),i.$err_code=r.code,i.$err_message=r.message,i})}function tI(e){return e==null?"":typeof e=="object"&&e!==null&&"kind"in e&&"lexeme"in e&&e.kind==="number"?String(e.lexeme):Array.isArray(e)?JSON.stringify(e):String(e)}function pc(e,t,n){let r={};for(let[i,o]of e)r[i]={value:o};for(let[i,o]of t)r[i]={value:o.map(a=>({...n==="PRESERVE"&&a.rowId?{id:a.rowId}:{},value:Object.fromEntries([...a.values].map(([s,l])=>[s,{value:l}]))}))};return r}function hR(e,t){return pc(e,t,"DROP")}function AR(e){for(let t of e.records)for(let[n,r]of t.subtables)for(let i of r)if(i.rowId!==void 0||i.values.has("_rid")||i.values.has("id"))throw new Error(`ArgumentError: JSON IMPORT subtable ${n} does not accept _rid/id; rows are always newly numbered.`)}function SR(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,c])=>{let d=a?.record[l]?.value,u=Array.isArray(d)?d.length:0;return{table:l,existingRows:u,inputRows:c.length,addRows:c.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function nI(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function TR(e){let t=new Map;for(let n of e)for(let[r,i]of n.subtables)for(let o of i){if(!o.rowId)continue;let a=`${r}\0${o.rowId}`;if(t.has(a))throw new Error(`ERR_SUBTABLE_ROW_ID_DUP_SOURCE: duplicate row ID ${o.rowId} in ${r}`);t.set(a,n.rowNumber)}}function IR(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],c=l===void 0?void 0:r.get(l),d=[...o.errors];if(!c||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:d};let u=new Map,p=[];for(let f of o.replacementTables){let E=nI(c.record,f),R=new Set(E.map(N=>N.id).filter(N=>!!N)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],g=0,S=0,A=0,I=m.map((N,v)=>{let b=y[v]??{};return N.rowId&&R.has(N.rowId)?(g++,{rowId:N.rowId,record:b}):(N.rowId&&((i.get(N.rowId)??[]).some(D=>D.parentId!==l||D.table!==f)&&d.push({operation:"UPDATE",parentRow:o.parentRow,field:N.rowId,subtable:f,subrow:N.childRowNumber,sourceRow:N.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${N.rowId}`,sourceValues:N.values}),A++),S++,{record:b})});u.set(f,I),p.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:g,addRows:S,deleteRows:E.length-g,rowIdNotFound:A})}return{parentRow:o.parentRow,targetId:l,...c.revision===void 0?{}:{revision:c.revision},valid:d.length===0,top:o.top,subtables:u,tables:p,errors:d}})}var dc="#__import_source";function wR(e){return{...e,from:{appId:0,alias:null,cteName:dc}}}function rI(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function fc(e,t){let n=e.map(rI),r=new Set;for(let i of n)if(i!==null){if(r.has(i))throw new Error("ERR_RECORD_NUMBER_DUP_SOURCE: source contains a duplicate record number");r.add(i)}return{normalized:n,errors:n.map(i=>i===null?[{field:t,code:"ERR_RECORD_NUMBER_INVALID",message:`${t} must be a non-empty ASCII decimal record number`}]:[])}}var iI="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",xn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}};function Nr(e,t){return e?.columns.includes(t)?t:void 0}function Ne(e,t){let n=Nr(e,t);return n===void 0?void 0:e?.columnMeta?.get(n)}var ce=new WeakMap;function QR(e){return ce.get(e)}var $n=new WeakMap,Cr=new WeakMap,Is=new WeakMap;function bR(e,t){t?.length&&Is.set(e,[...new Set(t)])}function gr(e,t){let n=Is.get(e);return{result:t,...n?.length?{warnings:n}:{}}}var Ic=Symbol("statementEvaluationContext"),oI=Symbol("importSourceMaterializedCallback"),ZR=Symbol("nativeUpsertExecution"),aI=Symbol("nativeUpsertExplainCapability"),sI=Symbol("batchCompletionObserver");function em(e){return e[ZR]===!0}function lI(e){return ZR in e}function uI(e){return e[aI]}function tm(e){return e[Ic]?e:{...e,[Ic]:{statementInstant:new Date}}}function se(e){return e[Ic]??{}}async function Jc(e,t,n){let r=e[oI];r&&await r({name:t.sourceName,kind:t.kind,...n})}var NR=new WeakMap,cI=1,pI=1;function nm(e,t){if(t)return t;let n=NR.get(e);return n||(n=`client:${cI++}`,NR.set(e,n)),n}function Xc(e){return`${e}\0inv:${pI++}`}async function Qc(e,t,n={}){Nt(n);let r=Date.now(),i=Xc(nm(t,n.cacheContext));try{let o=fb(e,n.enableImport===!0),a=rm(),s=om(t,a),l={aborted:!1},c=ep(s,l,!fI(o)||Nu(o)),d=await wc(o,c,n,i);a.elapsedMs=Date.now()-r;let u={...am(d,l),metrics:a};if(d.type==="SELECT"){let p=ce.get(d);p&&ce.set(u,p)}return u}finally{yp(i)}}function rm(){return{getCalls:0,postCalls:0,putCalls:0,nativeUpsertCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,limitReached:!1,limitReachedApps:[],elapsedMs:0}}var im=Symbol("limitMetricsSink");function Zc(e,t){let n=e[im];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function om(e,t){let n={[im]:t,getRecords:async r=>{t.getCalls+=1;let i=await e.getRecords(r);return t.fetchedRows+=i.records.length,i},openCursor:async r=>{t.cursorCreateCalls+=1;let i;try{i=await e.openCursor(r)}catch(s){throw s instanceof Error&&s.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),s}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let o=!1,a=()=>{o||(o=!0,t.cursorActiveCurrent-=1)};return{totalCount:i.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let s=await i.nextPage();return t.cursorRecordsScanned+=s.records.length,s.next||a(),s},close:async()=>{o||(t.cursorDeleteCalls+=1);try{await i.close(),a()}catch(s){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,s}}}},postRecords:r=>(t.postCalls+=1,e.postRecords(r)),putRecords:r=>(t.putCalls+=1,e.putRecords(r)),deleteRecords:r=>(t.deleteCalls+=1,e.deleteRecords(r)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:r=>(t.fieldCalls+=1,e.getFields(r)),getNumberPrecision:r=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(r)),getProcessStatuses:r=>(t.processStatusCalls+=1,e.getProcessStatuses(r))};return Rp(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var CR=Symbol("searchAbortFailClosed");function ep(e,t,n){return n&&e[CR]?e:{...e,...n?{[CR]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new xn;return i}}}function dI(e){let t=new Set;return{client:{...e,openCursor:async n=>{let r=await e.openCursor(n);t.add(r);let i=()=>t.delete(r);return{totalCount:r.totalCount,async nextPage(){let o=await r.nextPage();return o.next||i(),o},async close(){try{await r.close()}finally{i()}}}}},closeActive:async()=>{await Promise.all([...t].map(n=>n.close().catch(()=>{})))}}}function fI(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function am(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(iI),{...e,warnings:[...n]}}async function PR(e,t,n){let r=await ao(e,t,n);return nc(r),r}async function ao(e,t,n){return aR(e,{select:async r=>{let{resolver:i}=await Un(r,t,n);return Te(r.where,i)},dml:r=>hm(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Un(r,t,n);return rc(r,i)},joinServerFunctionPlan:async r=>{await Un(r,t,n);let i=await Us(r,t,n),o=Ds(r,i);return o===null?null:(mr(o.joinPlan)&&sp.set(r,o),o.joinPlan)}})}async function wc(e,t,n,r){n=tm(n);let i=await ao(e,t,r);e.type!=="EXPLAIN"&&nc(i);let o=Nc(e);if(o!==null&&!Ww(e))throw new Error(Rs(o,"in a batch"));if(Xn("phase15b",e),_o("phase15b",e),st(e),e.type!=="EXPLAIN"&&await OI(e,t,r),e.type==="IMPORT")return zm(e,t,n,r);if(e.type==="UPDATE"&&e.applyBlocks?.length){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Vc(e,t,n,r)}if("validateOnly"in e&&e.validateOnly===!0){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return hp(e,t,{...n,onLimitReached:"error"},r,void 0,1)}if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");switch(e.type){case"VALIDATE":return EI(e,t,n,r);case"SELECT":return Ht(vc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Dm(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return dp(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Fw(e,t,n,r);case"INSERT_SELECT":return Ip(e,t,n,r);case"UPSERT":return ib(e,t,n,r);case"UPSERT_SELECT":return Cp(e,t,n,r);case"UPDATE":return Vc(e,t,n,r);case"DELETE":return nb(e,t,n,r);case"REORDER":return cb(e,t,n,r);case"SHOW_APPS":return Qm(t);case"DESCRIBE":return Zm(e,t,r);case"EXPLAIN":return Sb(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?rt(n.dmlMaxRows,"dmlMaxRows",jt):jt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve):ve,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,n.resolveMetadata!==!1,lI(n)?{surface:"CLI",enableNativeUpsert:em(n),clientHasNativeUpsert:uI(n)??Rp(t)}:{surface:"DOCUMENT_ONLY"});case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return pm(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var tp=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],np=["$id","$err_subtable","$err_field","$err_code","$err_count"];function rp(e){let t=[],n=new Set,r=o=>{n.has(o)||(n.add(o),t.push(o))},i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;a.type==="FIELD"&&typeof a.field=="string"&&r(a.field),a.type==="FIELD_REF"&&typeof a.field=="string"&&r(a.field),Object.values(a).forEach(i)};return i(e),t}function sm(e=!1){let t=e?np:tp;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:W(n==="$id"||n==="$err_count"?"number":"string")}]))}async function EI(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return lm(e,t,n,r)}async function lm(e,t,n,r){let i=await Q(e.appId,t,r),o=new Map(i.filter(L=>!L.inSubtable).map(L=>[L.code,L])),a=new Set(i.filter(L=>L.inSubtable).map(L=>L.code)),s=hu(e,i),l=new Set(s.flatMap(L=>yu(L.field))),c={present:mu.filter(L=>l.has(L)),absent:mu.filter(L=>!l.has(L))},d=e.checkGroups??[],u=ur(d);for(let L of u){if(L.field!=="$id"&&!o.has(L.field)&&!a.has(L.field))throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!o.has(L.field)&&a.has(L.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([L,F])=>[L,F.fieldType]));p.set("$id","RECORD_NUMBER"),Gn(e,p);let f=rp(e.where),E=[...new Set(["$id",...s.map(L=>L.subtableCode??L.field.code),...f,...u.map(L=>L.field)])];for(let L of f){if(L!=="$id"&&!o.has(L)&&!a.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${e.appId}.`);if(L!=="$id"&&!o.has(L)&&a.has(L))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(L=>L.field.fieldType==="NUMBER")?await _t(e.appId,t,r):void 0,m=L=>L.field==="$id"?te({fieldType:"__ID__"}):o.get(L.field)?.semantics??(o.has(L.field)?te(o.get(L.field)):void 0),y=Te(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Mn(y)}).`);let g=new Map([...o].map(([L,F])=>[L,F.fieldType])),S=new Map([...o.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),A=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:Nl(e.where,{allowUnqualifiedFields:!0,fieldTypes:g,fieldOptions:S,allowKlike:!1}),I=A===null?"":z(A),v=(await Ge(t.getRecords,e.appId,I,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(L=>({id:String(L.$id?.value??""),record:L,flat:Bt(L,null)})).filter(L=>e.where===null||le(e.where,L.flat,F=>p.get(F.field),void 0,void 0,se(n))),b=[],M=new Map,D=new Map,k=new Set,P=0,O=L=>{if(k.add(L.id),P+=1,e.summary){let V=JSON.stringify([L.id,L.subtable??"",L.field,L.code]),x=D.get(V);x?x.$err_count=String(Number(x.$err_count)+1):D.set(V,{$id:L.id,$err_subtable:L.subtable??"",$err_field:L.field,$err_code:L.code,$err_count:"1"});return}let F=JSON.stringify([L.id,L.subtable??"",L.field,L.code,L.message]),B=M.get(F);B?(B.$err_count=String(Number(B.$err_count)+1),L.subrow!==void 0&&(B.$err_subrow=`${B.$err_subrow},${L.subrow}`,B.$err_subrow_id=`${B.$err_subrow_id},${L.subrowId??""}`)):M.set(F,{$id:L.id,$err_field:L.field,$err_code:L.code,$err_message:L.message,$err_value:L.value,$err_subtable:L.subtable??"",$err_subrow:L.subrow===void 0?"":String(L.subrow),$err_subrow_id:L.subrowId??"",$err_count:"1"})},C=s.filter(L=>!L.subtableCode),h=new Map;for(let L of s){if(!L.subtableCode)continue;let F=h.get(L.subtableCode)??[];F.push(L),h.set(L.subtableCode,F)}for(let L of v){for(let F of C){let B=L.record[F.field.code]?.value,V=Ye(B,F.field,R);V.ok||O({id:L.id,field:F.field.code,code:V.code,message:V.message,value:Ei(B,F.field.fieldType)})}for(let[F,B]of h){let V=L.record[F]?.value;if(Array.isArray(V))for(let x=0;x<V.length;x++){let K=V[x];for(let j of B){let $=K.value?.[j.field.code]?.value,G=Ye($,j.field,R);if(!G.ok){let U=va(F,x,K);O({id:L.id,field:j.field.code,code:G.code,message:G.message,value:Ei($,j.field.fieldType),...U})}}}}for(let F of ha(d,L.flat,B=>p.get(B.field)))O({id:L.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)b.push(...D.values());else for(let L of M.values()){let F=Number(L.$err_count);L.$err_subtable!==""&&F>=2&&(L.$err_message=`${L.$err_message}\uFF08${F}\u884C: ${L.$err_subrow}\uFF09`),b.push(L)}let _={type:"SELECT",columns:[...e.summary?np:tp],rows:b,rowCount:b.length,validateStats:{errorRecords:k.size,errorCount:P,constraintMetadata:c}};return ce.set(_,sm(e.summary===!0)),_}var nt=1e4;function Lt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,c)=>l!==n[c])||!RI(a.columnMeta,o)))throw new Error(`ArgumentError: validation error table ${t} has a different schema.`);let s=a?.rows??[];if(s.length+r.length>i)throw new Error(`ArgumentError: temp table ${t} exceeds max rows (${i}).`);e.set(t,{columns:[...n],rows:[...s,...r],columnMeta:o})}function RI(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.displayName!==r.displayName||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!Ho(i.semantics,r.semantics))return!1}return!0}var Sr=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function um(e,t,n={}){let r=Fl(n.asOf??new Date,n.timezone);Nt(n);let{statements:i,meta:o}=qu(e,{import:n.enableImport===!0}),a=o.dialect===1&&i.some(Xu)?[ZE]:[],s=$l(i);if(i.forEach(m=>_o("phase15b",m)),n.allowApplyMutation!==!0&&i.some(m=>ll(m)||m.type==="UPSERT"&&mI(m)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let l=bu(i,n.variables),c=cm(i,l),d={...n,variables:l};if(n.continueOnError&&s.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let m of s.statements){if(!m.isDml||m.tempTablesReferenced.length===0||m.statementType==="INSERT_SELECT"||m.statementType==="UPSERT_SELECT")continue;let y=i[m.index];if(!(y?.type==="UPDATE"&&y.from?.cteName!=null))throw new ie(`ArgumentError: temp table references in ${m.statementType} are not supported yet.`,m.index)}let u=rm(),p=om(t,u),f=Date.now(),E=n.timeoutMs!=null?f+n.timeoutMs:null,R=Xc(nm(t,n.cacheContext));try{let m=new Map,y=new Map;for(let[b,M]of Object.entries(r.values))y.set(Qr(b),{type:"string",value:M});let g=[],S=new Set,A=null;for(let b=0;b<i.length;b++){let M=s.statements[b],D={index:b,type:M.statementType};if(A){g.push({...D,status:"skipped",skippedReason:A}),A!=="exit"&&S.add(b);continue}let k=M.dependsOn.find(P=>S.has(P));if(k!==void 0){let P=s.statements[k].tempTablesCreated[0]??`statement ${k}`;g.push({...D,status:"skipped",skippedReason:`dependency: ${P}`}),S.add(b);continue}if(E!==null&&Date.now()>=E){g.push({...D,status:"skipped",skippedReason:"timeout"}),S.add(b),A="timeout";continue}try{let P=E!==null?E-Date.now():null,O=d.confirm,C=O?{...d,confirm:(K,j,$)=>O(K,j,{statementIndex:b,statementCount:i.length,statementType:M.statementType,targetAppId:M.targetAppId,...$?.importDetail?{importDetail:$.importDetail}:{},...$?.applyDetail?{applyDetail:$.applyDetail}:{},...$?.applyDiagnostic?{applyDiagnostic:$.applyDiagnostic}:{}})}:d,h={aborted:!1},w=ep(p,h,M.statementType!=="SELECT"&&M.statementType!=="UNION"&&M.statementType!=="WITH"||Nu(i[b])),_=dI(w),L=tm(C),F={stmt:i[b],info:M,client:_.client,options:L,cacheContext:R,tempTables:m,variables:y,relativeDateVariables:c,clock:se(L),dialect:o.dialect},B=await hI(yI(F),P,_.closeActive);B.result&&(B.result=am(B.result,h),a.length>0&&Xu(i[b])&&B.result.type==="SELECT"&&(B.result=vs(B.result,a)));let{exitTriggered:V,...x}=B;g.push({...D,status:"success",...x}),V&&(A="exit")}catch(P){g.push({...D,status:"error",error:AI(P),...P instanceof to?{result:P.diagnostic}:{}}),S.add(b),P instanceof Sr?A="timeout":P instanceof qi?A="assertion":M.statementType==="SET_VARIABLE"||M.statementType==="DECLARE_VARIABLE"?A="fail-fast":n.continueOnError||(A="fail-fast")}}u.elapsedMs=Date.now()-f;let I=[...new Set([...a,...g.flatMap(b=>b.warnings??[])])],N={ok:g.every(b=>b.status==="success"||b.skippedReason==="exit"),statementCount:i.length,statements:g,analysis:s,metrics:u,...I.length>0?{warnings:I}:{}},v=n[sI];if(v)try{v({result:N,tempTables:m})}catch{}return N}finally{yp(R)}}function mI(e){return e.type==="UPDATE"||e.type==="INSERT"?e.validateOnly!==!0&&!!e.applyBlocks?.length:e.type==="UPSERT"&&e.validateOnly!==!0&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)}async function yI(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:c,dialect:d}=e;if(t.type==="SET_VARIABLE"){let f=ws(t,s);if(st(f),await PR(f,r,o),f.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:f.expr.elements.map(E=>({type:"string",value:E.value}))});else if(f.expr.type==="SCALAR_SUBQUERY")try{let E=await Em(f.expr.query,r,i,o,a),R=await fm(f.expr.query,r,o,a),m=R?Number(E):Number.NaN;s.set(t.name,R&&Number.isFinite(m)?{type:"number",value:m,raw:E}:{type:"string",value:E})}catch(E){throw E instanceof Dn?new Error(`ArgumentError: ${E.message}`):E}else s.set(t.name,OR(f.expr,c));return{}}if(t.type==="DECLARE_VARIABLE"){if(t.annotation==="RELATIVE_DATE")return s.set(t.name,{type:"relative-date",value:l.get(t.name)}),{};let f=i.variables??{};if(Object.prototype.hasOwnProperty.call(f,t.name))s.set(t.name,{type:"string",value:f[t.name]});else{let E=OR(t.default,c);s.set(t.name,{type:"string",value:E.type==="number"?E.raw??String(E.value):E.value})}return{}}let u=ws(t,s);if(Xn("phase15b",u),_o("phase15b",u),st(u),d===1&&(u.type==="INSERT"||u.type==="UPDATE"||u.type==="DELETE")&&u.subtableCode)throw new Error("ArgumentError: dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(d===1&&(u.type==="UPSERT"||u.type==="UPSERT_SELECT")){let f=Ju(u)[0];if(f)throw new Error(`ArgumentError: ${f.message}`);let E=await Q(u.appId,r,o),R=Ju(u,E)[0];if(R)throw new Error(`ArgumentError: ${R.message}`)}if(await PR(u,r,o),u.type==="VALIDATE"){let f=await lm(u,r,{...i,onLimitReached:"error"},o);return u.errorTable&&Lt(a,u.errorTable,f.columns,f.rows,i.tempTableMaxRows??nt,ce.get(f)??sm(u.summary===!0)),{result:f}}if(u.type==="IMPORT"){let f=await zm(u,r,i,o,a);return gr(u,f)}if("validateOnly"in u&&u.validateOnly===!0){let f=await hp(u,r,{...i,onLimitReached:"error"},o,a,n.index+1);return u.validationErrorTable&&Lt(a,u.validationErrorTable,f.columns,f.errors,i.tempTableMaxRows??nt,$n.get(f)??new Map),gr(u,f)}if("onErrorSkip"in u&&u.onErrorSkip===!0){let f=await $c(u,r,{...i,onLimitReached:"error"},o,a,n.index+1);return gr(u,f)}if(u.type==="CREATE_TEMP_TABLE"){let f={...i,maxRecords:i.tempTableMaxRows??nt,onLimitReached:"error"},E=await gI(u.query,r,f,o,a);return a.set(u.name,{rows:E.rows,columns:E.columns,columnMeta:ce.get(E)}),{tempTable:u.name,rowCount:E.rows.length,...E.warnings?.length?{warnings:[...E.warnings]}:{}}}if(t.type==="DROP_TEMP_TABLE")return a.delete(t.name),{tempTable:t.name};if(t.type==="EXPLAIN"){let f=u;qc.set(f,a);try{return{result:await wc(f,r,i,o)}}finally{qc.delete(f)}}if(u.type==="ASSERT"){let f=await pm(u,r,i,o,a);return f.warning!==void 0?{result:f}:{}}if(u.type==="EXIT"){let f=await bI(u,r,i,o,a);return{result:f,...f.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(u.type==="SELECT"||u.type==="UNION")return{result:await mt(u,r,i,a,o,i.captureColumnMeta===!0)};if(u.type==="WITH")return{result:await dp(u,r,i,o,a)};if(u.type==="INSERT_SELECT"){let f=await Ip(u,r,i,o,a);return gr(u,f)}if(u.type==="UPSERT_SELECT"){let f=await Cp(u,r,i,o,a);return gr(u,f)}if(u.type==="UPDATE"&&u.from?.cteName!=null)return{result:await Vc(u,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}let p=await wc(u,r,i,o);return gr(u,p)}async function gI(e,t,n,r,i){return e.type==="WITH"?dp(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function hI(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Sr;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(c=>{l=setTimeout(c,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Sr)})()},t)})])}catch(a){throw a instanceof Sr&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function AI(e){let t;if(e instanceof bt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Ec(e.message),message:e.message};else if(e!==null&&typeof e=="object"){let n=e,r=typeof n.message=="string"&&n.message.length>0?n.message:SI(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Ec(r),message:r}}else{let n=String(e);t={code:Ec(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Ec(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function SI(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function TI(e,t=!1,n=!1){let r=new sn(e).tokenize();return new ln(r,{import:t,dialect1:n}).parseStatements()}function II(e,t){try{let n=TI(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function cm(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?II(r.name,t[r.name]):r.default);return n}function OR(e,t={}){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:q(e)};case"KINTONE_FUNC":return{type:"string",value:vf(e.name,t)};case"STRING_FUNC":return{type:"string",value:he(e,{},void 0,void 0,t)};case"ARITH":{let n=Ee(e,{},t);if(!Number.isFinite(n))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:n,raw:String(n)}}case"VARIABLE":throw new Error(`InternalError: unresolved variable @${e.name} reached scalar evaluation.`)}}function ws(e,t){return bc(e,t,!1)}function Rs(e,t){return sr(e)===null?`ParseError: variable @${e} is not defined ${t}.`:"ParseError: @NOW() \u306A\u3069\u306E as-of \u95A2\u6570\u306F\u57FA\u6E96\u6642\u523B\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"}function bc(e,t,n){if(Array.isArray(e))return e.map(r=>bc(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(Rs(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&a.placeholder===!0))throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`:a.raw??String(a.value)}:{type:"STRING",value:a.value,fromVariable:!0}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&(typeof r.alias=="string"||r.alias===null)){let a=t.get(r.name);if(a===void 0)throw new Error(Rs(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,bc(s,t,a==="left"||a==="right"?r.type==="AGG_ARITH"?"AGG_ARITH":r.type==="ARITH"||r.type==="SCALAR_ARITH"?"ARITH":!1:!1)]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(Rs(a.name,"in this batch"));if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=wI(i);if(o.type==="SELECT"&&Ze(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Ze(o.where,!0))throw new Error("ArgumentError: empty-array simplification makes the target WHERE always true; use an explicit safe target condition.");return o}return e}function Ze(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function wI(e){if(e.type==="NOT"&&Ze(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Ze(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Ze(t,!1)||Ze(n,!1))return{type:"BOOLEAN",value:!1};if(Ze(t,!0))return n;if(Ze(n,!0))return t}else if(e.op==="OR"){if(Ze(t,!0)||Ze(n,!0))return{type:"BOOLEAN",value:!0};if(Ze(t,!1))return n;if(Ze(n,!1))return t}}return e}function Nc(e){if(Array.isArray(e)){for(let t of e){let n=Nc(t);if(n!==null)return n}return null}if(e!==null&&typeof e=="object"){let t=e;if((t.type==="VARIABLE"||t.type==="VARIABLE_COL"||t.type==="VARIABLE_IN_LIST")&&typeof t.name=="string")return t.name;for(let n of Object.values(t)){let r=Nc(n);if(r!==null)return r}}return null}var qi=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Dn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function pm(e,t,n,r,i){let o=await dm(e,t,n,r,i);if(!o.passed){if(e.warn===!0)return{type:"ASSERT",condition:e.text,passed:!1,warning:e.message??`assertion failed: ${e.text} (actual: ${o.actual}).`};let a=e.message!==void 0?` ${e.message}`:"";throw new qi(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function bI(e,t,n,r,i){let o=await dm(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function dm(e,t,n,r,i){let o=await ps(e.left,t,n,r,i);if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await ps(e.low,t,n,r,i),c=await ps(e.high,t,n,r,i);return{passed:xt(">=",o.value,l.value,Rc(o,l))&&xt("<=",o.value,c.value,Rc(o,c)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await ps(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?W("number"):W("string"):Rc(o,a);return{passed:xt(e.op,o.value,a.value,s),actual:o.value}}function Rc(e,t){return W(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function ps(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:q(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(Cc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await Em(e.query,t,n,r,i),a=await fm(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof Dn?new qi(o.message):o}}}async function fm(e,t,n,r){let i=e.columns[0],o=i?.type==="ARITH_COL"||i?.type==="ARITH_AGG_COL"||i?.type==="WINDOW_COL"&&(i.windowKind===void 0||i.windowKind==="RANKING"||i.windowKind==="AGGREGATE"&&(i.aggFunc==="COUNT"||i.aggFunc==="SUM"||i.aggFunc==="AVG"))||i?.type==="AGGREGATE"&&(i.func==="COUNT"||i.func==="SUM"||i.func==="AVG"||i.func==="STDDEV_POP"||i.func==="STDDEV_SAMP"||i.func==="VAR_POP"||i.func==="VAR_SAMP"||i.func==="MEDIAN");if(i?.type==="AGGREGATE"&&i.func==="MODE"||i?.type==="WINDOW_COL"&&i.windowKind==="VALUE"||i?.type==="WINDOW_COL"&&i.windowKind==="AGGREGATE"&&(i.aggFunc==="MIN"||i.aggFunc==="MAX")){let a=(await Qi(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function Em(e,t,n,r,i){let{query:o,probed:a}=NI(e),s=await Yi(o,t,n,r,i);if(s.columns.length!==1)throw new Dn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Dn("scalar subquery returned no rows (expected 1 row).");if(s.rowCount>1){let l=a&&s.rowCount===2?"2 or more rows":`${s.rowCount} rows`;throw new Dn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function NI(e){return Ut(e)||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function Cc(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached ASSERT evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=Cc(e.left),n=Cc(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function so(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||Ct(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await Q(p,t,n);return[p,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,c=p=>{if(Array.isArray(p)){p.forEach(c);return}if(p===null||typeof p!="object")return;let f=p;if(f.type==="SELECT")return;let E=String(f.op),R=f.right,m=["=","!=","<>"].includes(E)&&R?.type==="STRING"&&R.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(E)||m)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(c)};c(e.where),c(e.having);for(let p of e.columns)p.type==="CASE_COL"&&c(p.expr);let d=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await gp(p,t,n);R&&d.set(p,R)}));let u=(p,f,E)=>{if(f==="$id")return nr(te({fieldType:"__ID__"}),p.appId,"$id");if(E&&p.subtableCode){if(f==="_rid")return W("string");if(f==="_idx"||f==="_pid")return W("number")}let R=s.get(p.appId)?.get(ue(p,f));if(!R)return;let m=R.semantics??te(R),y=R.fieldType==="STATUS"&&d.has(p.appId)?{...m,optionOrder:d.get(p.appId)}:m;return nr(y,p.appId,R.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let E=o.find(R=>pe(R)===p.tableAlias);return E?E.cteName!==null?Ne(r?.get(E.cteName),p.field)?.semantics??W("string"):u(E,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?Ne(r?.get(e.from.cteName),p.field)?.semantics??W("string"):u(e.from,p.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName):void 0,m=E.cteName!==null?Nr(R,p.field)!==void 0?Ne(R,p.field)?.semantics??W("string"):void 0:u(E,p.field,!0);return m?[m]:[]});if(f.length===1)return f[0];if(!o.some(E=>ys(E,p.field)!==void 0))return f.length>1?W("string"):void 0}}var Rm=new WeakMap;async function Un(e,t,n,r,i=!1){let o=await so(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Yd(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&Rm.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function CI(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function mm(e){return CI(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function LR(e,t,n,r,i){return i!==void 0&&e.joins.length===0&&e.from.cteName!==null?t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===pe(e.from)}):r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function _R(e,t){return e!=="DIRECT"?"\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u3001ORDER BY \u306E\u5024\u306E\u7D44\u304C\u5165\u529B\u884C\u3092\u4E00\u610F\u306B\u8B58\u5225\u3059\u308B\u3068\u30AF\u30A8\u30EA\u69CB\u9020\u307E\u305F\u306F\u4FDD\u8A3C\u6E08\u307F\u306E\u30C7\u30FC\u30BF\u5236\u7D04\u304B\u3089\u78BA\u8A8D\u3067\u304D\u308B\u5834\u5408\u306B\u9650\u308A\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3067\u304D\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3080\u5F62\u3084\u3001JOIN \u5F8C\u3082\u540C\u3058\u7CFB\u5217\u5024\u304C\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u9AD8\u30051\u884C\u3068\u4FDD\u8A3C\u3067\u304D\u308B\u5F62\u304C\u8A72\u5F53\u3057\u307E\u3059\u3002\u751F\u6210\u5217\u3001\u518D\u5E30\u306E\u6DF1\u3055\u5217\u3001\u307E\u305F\u306F $id \u306B\u7531\u6765\u3059\u308B\u5217\u3067\u3042\u308B\u3068\u3044\u3046\u7406\u7531\u3060\u3051\u3067\u306F\u7121\u8996\u3067\u304D\u307E\u305B\u3093\u3002":t==="RANGE"?"ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}function ym(e,t,n,r){let i=[];for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="AGGREGATE"||o.orderBy.length===0||o.frame?.source!=="DEFAULT"||LR(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306F\u65E2\u5B9A\u30D5\u30EC\u30FC\u30E0\uFF08RANGE\uFF09\u3067\u8A55\u4FA1\u3055\u308C\u307E\u3059\u3002ORDER BY \u306E\u5024\u304C\u540C\u3058\u884C\u306F\u3059\u3079\u3066\u540C\u3058\u5024\u306B\u306A\u308A\u307E\u3059\u3002\u884C\u3054\u3068\u306E\u5024\u304C\u5FC5\u8981\u306A\u3089 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3092\u660E\u793A\u3059\u308B\u304B\u3001`+_R(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||LR(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306E ORDER BY \u306F\u5168\u9806\u5E8F\u3067\u306A\u3044\u305F\u3081\u3001\u540C\u9806\u5185\u306E\u524D\u5F8C\u95A2\u4FC2\u306F\u672A\u898F\u5B9A\u3067\u3059\u3002`+_R(n,"VALUE"));return i}function vs(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=ce.get(e);return r&&ce.set(n,r),n}function ip(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>Ct(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function gm(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Fe(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=W("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=W("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Kn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Kn(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?W("string"):W("number"):r.type==="STRFUNC_COL"?i=Fn(r.expr,o=>{let a=t(o);return a?{compareMode:a.compareMode}:void 0}).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=W("string")),i&&n.set(r.alias,i)}return r=>{if(r.tableAlias!==null)return t(r);let i=Oe(r.field,n.keys());return i===void 0?t(r):n.get(i)}}function Mn(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function bs(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function hm(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Ct(e.where)?await Q(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Te(null,()=>{}):Te(e.where,o=>{if(o.field==="$id")return te({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?te(a):void 0)})}async function Tr(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await hm(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new oe(`WHERE predicate cannot be represented by kintone REST (${Mn(r)})`)}async function Ht(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){GI(e);let l,c=new Set;if(await Xi(e,t,r,i),vI(e))return l=MI(e,n),o&&ce.set(l,await Qi(e,l.columns,t,r,i,a)),l;let{resolver:d}=await Un(e,t,r,i,mm(e)),u=ym(e,d,s),p=await Ir(e,t,r,i);await ey(e,t,n,r,c,i);let f=qI(e,Te(e.where,d));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Mn(f)}).`);let E=ze(e),R,m;if(f.capability==="SUPERSET_PREFILTER"){let b=await so(e,t,r,i),M=rc(e,b);M.eligible&&tc(e,M)&&(R=M.plan)}if(R===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let b=null;try{b=z(e.where)}catch{b=null}m=na({select:e,selectMode:E,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:b,relativeFunctionNames:Ae(e.where)})??void 0,m&&(R=m.prefilterPlan)}let y=f.capability==="EXACT_PUSHDOWN"?E:"FULL_SCAN",g=await eo(e,t,r,i),S=bs(e)?(e.orderMode==="KINTONE_NATIVE"?wi:Ii)({stmt:e,staticMode:y,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:g.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Pe(e.where)}):null,A=await xI(e,S?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":y,t,r),I=op(e,n,S),v=m!==void 0&&(E==="FULL_SCAN"||S?.kind==="CANONICAL_LOCAL")?ep(t,{aborted:!1},!0):t;try{y==="SIMPLE"?l=await kI(e,v,I.effectiveOptions,r,S,g):l=await QI(e,v,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&R===void 0,g,R,p)}catch(b){Sm(I,b)}return o&&ce.set(l,await Qi(e,l.columns,t,r,i,a)),vs(l,[...c,...u,...A])}function Pc(e,t){if(t.length===1){let{appId:r,owner:i}=t[0];return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${i}\u300D\uFF08APP${r}\uFF09\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002APP${r}$${i} \u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`}let n=t.map(({appId:r,owner:i})=>`APP${r}$${i}`).join(" / ");return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\uFF08${n}\uFF09\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u3069\u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u96C6\u8A08\u3059\u308B\u304B\u3092 FROM \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}function Am(e){let t=new Set,n=[];for(let r of e){let i=`${r.appId}\0${r.owner}`;t.has(i)||(t.add(i),n.push(r))}return n}async function Ir(e,t,n,r){let i=ee(e);if(!Ut(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(u=>u.table)],s=new Map,l=await Promise.all(a.map(async u=>{if(u.cteName!==null){let R=r?.get(u.cteName);if(!R)throw new Error(`InternalError: materialized schema ${u.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:R.columns}}let p=await Q(u.appId,t,n);if(!u.subtableCode){for(let R of p){if(R.inSubtable!==!0||!R.subtableCode)continue;let m=s.get(R.code)??[];m.push({appId:u.appId,owner:R.subtableCode}),s.set(R.code,Am(m))}return{kind:"APP",fieldCodes:p.filter(R=>!R.inSubtable).map(R=>R.code)}}let f=p.filter(R=>R.inSubtable&&R.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:p.filter(R=>R.inSubtable&&R.subtableCode===void 0)).map(R=>R.code),parentFieldCodes:p.filter(R=>!R.inSubtable).map(R=>R.code)}})),c=Id(e,(u,p)=>l[p]),d=Cd(o,e.columns,c);return PI(e,o,d,s),Kr(e,_d(e,d,c)),d}function PI(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let c=t[l],d=c?.type==="FIELD_NAME"?c.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,p=s.name.indexOf("."),f=p>=0?s.name.slice(p+1):s.name,E=r.get(s.name)??r.get(f)??[];throw E.length>0?new Error(Pc(s.name,E)):new Error(`ArgumentError: unknown field code(s): ${s.name}${u}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var Ji=new WeakMap;async function OI(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;if(a.type==="SELECT"){for(let s of Object.values(a))await i(s);await Xi(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function LI(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let p=await Q(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),s=(u,p)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(p);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,p)=>{if(p==="$id")return"$id";let f=ue(u,p);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},c=(u,p)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?Nr(f,p)!==void 0:!0},d=(u,p,f,E)=>{let R=i.filter(g=>g.cteName===null&&l(g,f.field)!==null).length,m=i.some(g=>c(g,f.field)),y=pe(u);return{canonicalId:`source:${p}:APP${u.appId}:${E}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:R===1&&!m?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let m=i.findIndex(S=>pe(S)===u.tableAlias);if(m<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[m];if(y.cteName!==null)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let g=l(y,u.field);if(g===null){let S=s(y,ue(y,u.field));throw S!==null&&S!==""?new Error(Pc(u.field,[{appId:y.appId,owner:S}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${y.appId}.`)}return d(y,m,u,g)}let p=i.flatMap((m,y)=>{if(m.cteName!==null)return[];let g=l(m,u.field);return g===null?[]:[{table:m,tableIndex:y,code:g}]}),f=i.filter(m=>c(m,u.field));if(p.length+f.length>1)throw new Error(`ArgumentError: field ${u.field} is ambiguous across multiple sources.`);if(p.length===1&&f.length===0){let m=p[0];return d(m.table,m.tableIndex,u,m.code)}if(f.length===1)throw new Error(`ArgumentError: field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let E=i.flatMap(m=>{if(m.cteName!==null)return[];let y=s(m,ue(m,u.field));return y===null||y===""?[]:[{appId:m.appId,owner:y}]}),R=Am(E);throw R.length>0?new Error(Pc(u.field,R)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function Xi(e,t,n,r){Ji.delete(e);let i=ee(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await LI(e,t,n,r),c=Ud(e,l,Dd);c&&Ji.set(e,c);return}if(!Ut(e))return;if(i.type==="NONE"){xo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await Ir(e,t,n,r)}function _I(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C";return`${e.size===1&&e.has("CROSS_JOIN")?"CROSS JOIN \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("DML")||e.has("VALIDATE")?o:r&&i?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":r?n.find(([s])=>e.has(s))[1]:"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C"}\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: ${t}\u3002`}function op(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Jt({...e,orderBy:[]}):Jt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Sm(e,t){throw e.reasons.size>0&&t instanceof We&&!t.completeInputWrapped?new We(_I(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Oc(e,t){try{return await t()}catch(n){Sm(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function vI(e){return e.from.appId===0&&e.from.cteName===Ce}function Ns(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT planning.`);return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Ns(e.left)||Ns(e.right):e.type==="STRING_FUNC"?ap(e):!1}function DI(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:$i(e)}function $i(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?ap(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?$i(e.left)||$i(e.right):e.type==="CASE_WHEN"?[...e.branches.map(n=>n.result),...e.elseResult?[e.elseResult]:[]].some(n=>n.type!=="ARRAY"&&(n.type==="FIELD_REF"||n.type==="ARITH"?Ns(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:$i(n))):!1}function ap(e){return e.args.some(t=>DI(t))}function UI(e){for(let t of e.columns)switch(t.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${t.name}`);case"LITERAL_COL":break;case"ARITH_COL":if(Ns(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(ap(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if($i(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"WINDOW_COL":if(t.partitionBy.length>0||t.orderBy.length>0)throw new Error("ArgumentError: field reference is not allowed without FROM.");break;default:throw new Error(`ArgumentError: ${t.type} is not supported without FROM.`)}}function MI(e,t){if(e.joins.length>0||e.where||ee(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");UI(e);let n=Hu([{}],e.columns,void 0,void 0,void 0,void 0,se(t)),{rows:r,columns:i}=On(n,e.columns,void 0,void 0,void 0,void 0,void 0,se(t)),o=Za(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function kI(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Cm(e):e,s=Bo(a),l=i?.kind==="CANONICAL_LOCAL"?An(e,e.from):s.fields,c=await lp(e,t,r),d=cp(e,c),u=e.columns.some(b=>b.type==="CASE_COL")?await so(e,t,r,void 0,ip(e)):void 0,p=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&y!==null&&y<=p&&!Pe(e.where)?y:void 0,S;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)S=[];else if(i?.kind==="KORDER_CURSOR"){let b=await LE({client:t,app:s.app,fields:s.fields,query:Mu(e),offset:e.offset??0,limit:e.limit});S=b.records,b.cleanupWarning&&f.add(b.cleanupWarning)}else if(m)S=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let b=e.where?z(e.where):"";S=await Ge(t.getRecords,s.app,b,l,{parallel:R,maxRecords:p,stopAfter:g,onLimit:E,onTruncate:M=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${M} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${M} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Zc(t,e.from.appId)}})}let A=S.map(b=>Bt(b,null));m||(A=Vu(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Wu(e.columns,void 0,d.row,u,se(n)),se(n)),A=Za(A,e.limit,e.offset));let{rows:I,columns:N}=On(A,e.columns,void 0,d.row,void 0,u,void 0,se(n)),v=await fp(e,I,N,t,r);return{type:"SELECT",rows:I,columns:v,rowCount:I.length,warnings:[...f]}}async function xI(e,t,n,r){let i=[],o=new Map,a=(c,d)=>{if(d.length===0)return;let u=o.get(c);u||(u=new Set,o.set(c,u));for(let p of d)u.add(p)},s=new Map,l=(c,d)=>{let u=s.get(c);u||(u=new Set,s.set(c,u));for(let p of d)u.add(p)};if(t==="SIMPLE"){let c=Bo(e);a(c.app,c.fields),e.from.subtableCode||l(c.app,c.fields)}else{let c=[e.from,...e.joins.map(d=>d.table)].filter(d=>d.cteName===null);for(let d of c){let u=An(e,d);a(d.appId,u),d.subtableCode||l(d.appId,u)}}for(let[c,d]of o.entries()){let u=[...d].filter(m=>!Uo(m));if(u.length===0)continue;let p=await Q(c,n,r);if(p.length===0)continue;let f=new Set(p.map(m=>m.code)),E=u.filter(m=>!f.has(m));if(E.length>0)throw new Error(`ArgumentError: unknown field code(s): ${E.join(", ")} (APP${c})`);let R=s.get(c);if(R){let m=p.filter(y=>y.inSubtable===!0&&R.has(y.code));for(let y of m){let g=y.subtableCode??"",S=g?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${g}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${S}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${c} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(g?`APP${c}$${g} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function mc(e){return e.cteName??`APP${e.appId}`}function Tm(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function FI(e,t){return Uo(t)||e.validCodes.has(t)}function yc(e,t){return e.table.cteName!==null?e.validCodes.has(t):FI(e,t)}async function KI(e,t,n){let r=[e.from,...e.joins.map(o=>o.table)].filter(o=>o.cteName===null),i=new Map;return await Promise.all([...new Set(r.map(o=>o.appId))].map(async o=>{let a=await Q(o,t,n);i.set(o,new Set(a.map(s=>s.code)))})),(o,a)=>{if(o.cteName!==null)return!1;if(o.subtableCode||Uo(a))return!0;let s=i.get(o.appId);return!s||s.size===0?!0:s.has(ue(o,a))}}async function Im(e,t,n,r){let i=!1;vR(e,t,()=>(i=!0,!0)),i&&vR(e,t,await KI(e,n,r))}function vR(e,t,n){let r=[e.from,...e.joins.map(E=>E.table)],i=new Map;for(let E of r)for(let R of Tm(E))i.set(R,E);let o=e.columns.flatMap(E=>"alias"in E&&E.alias!==null?[E.alias]:[]),a=E=>E.cteName===null||E.cteName===Ce?[]:t.get(E.cteName)?.columns??[],s=(E,R)=>E?Oe(R,a(E)):void 0,l=E=>{if(r.some(y=>a(y).includes(E)))return E;let R=r.flatMap(y=>{let g=s(y,E);return g===void 0?[]:[g]}),m=[...new Set(R)];if(m.length===1)return r.some(y=>n(y,E))?E:m[0]},c=(E,R,m)=>{if(m&&R===null){let y=Oe(E,o);if(y!==void 0)return y}return R===null?l(E)??E:s(i.get(R),E)??E},d=(E,R)=>{let m=E.indexOf(".");if(m<=0)return c(E,null,R);let y=E.slice(0,m),g=E.slice(m+1),S=c(g,y,!1);return S===g?E:`${y}.${S}`};for(let E of e.joins)E.type!=="CROSS"&&(E.on.left.field=c(E.on.left.field,E.on.left.tableAlias,!1),E.on.right.field=c(E.on.right.field,E.on.right.tableAlias,!1));let u=new Set,p=(E,R=!1)=>{if(E===null||typeof E!="object"||u.has(E))return;if(u.add(E),Array.isArray(E)){for(let y of E)p(y,R);return}let m=E;if(!(E!==e&&(m.type==="SELECT"||m.type==="UNION"))){if(m.type==="FIELD"&&typeof m.field=="string"){let y=typeof m.tableAlias=="string"?m.tableAlias:null;m.field=y===null?d(m.field,R):c(m.field,y,R)}else if(m.type==="FIELD_REF"&&typeof m.field=="string")m.field=d(m.field,R);else if(m.type==="AGG_GROUP_KEY"&&typeof m.field=="string"){let y=typeof m.tableAlias=="string"?m.tableAlias:null;m.field=c(m.field,y,R)}for(let y of Object.values(m))p(y,R)}};for(let E of e.columns)p(E);p(e.where),p(e.having,!0),p(e.grouping);let f=ee(e);if(f.type==="PLAIN")for(let E of f.allItems)E.type==="FIELD_NAME"?E.name=d(E.name,!0):p(E);for(let E of e.orderBy)E.key.type==="FIELD_NAME"?E.key.name=d(E.key.name,!0):p(E.key);for(let E of e.columns)if(E.type==="WINDOW_COL"){for(let R of E.partitionBy)R.field=c(R.field,R.tableAlias,!1);for(let R of E.orderBy)R.key.type==="FIELD_NAME"?R.key.name=d(R.key.name,!1):p(R.key)}}function GI(e){let t=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]),n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(!(i.type==="AGG_REF"||i.type==="AGG_ARITH")){if(i.type==="FIELD"&&(i.tableAlias===null||i.tableAlias===void 0)&&typeof i.field=="string"){let o=Oe(i.field,t);o!==void 0&&(i.field=o)}i.type==="SELECT"||i.type==="UNION"||Object.values(i).forEach(n)}};n(e.having)}function $I(e){let t=[],n=r=>{if(r!==null)switch(r.type){case"BINARY":(r.right.type==="SUBQUERY_IN_LIST"||r.right.type==="SCALAR_SUBQUERY")&&t.push(r.right.query);return;case"EXISTS":t.push(r.query);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"BOOLEAN":return}};n(e.where),n(e.having);for(let r of e.columns)if(r.type==="SCALAR_SUBQUERY_COL")t.push(r.query);else if(r.type==="CASE_COL")for(let i of r.expr.branches)n(i.condition);return t}async function Lc(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=new Map,s=new Set,l=new Set;for(let p of o){let f=pe(p);if(f!==null){if(l.has(f))throw new Error(`ArgumentError: effective alias ${f} is used by multiple tables.`);l.add(f)}}for(let p of o){if(p.cteName===null||p.cteName===Ce)continue;let f=n.get(p.cteName);if(!f){if(i){s.add(p);continue}throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`)}if(f.rows.length>0&&f.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&f.rows.length===0&&f.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);a.set(p,f)}let c=new Map;await Promise.all(o.map(async p=>{if(s.has(p)){c.set(p,{table:p,label:mc(p),validCodes:new Set,authoritative:!1,schemaUnavailable:!0});return}let f=a.get(p);if(f){c.set(p,{table:p,label:mc(p),validCodes:new Set(f.columns),authoritative:!0,schemaUnavailable:f.rows.length===0&&f.columns.length===0});return}if(p.cteName===Ce)return;let E=i?await Vm(p.appId,r):await Q(p.appId,t,r);c.set(p,{table:p,label:mc(p),validCodes:new Set((E??[]).map(R=>R.code)),authoritative:E!==null&&E.length>0,schemaUnavailable:!1})}));let d=new Map;for(let p of c.values())for(let f of Tm(p.table))d.set(f,p);for(let p of e.joins)if(p.type!=="CROSS")for(let f of[p.on.left,p.on.right]){if(!f.tableAlias)continue;let E=d.get(f.tableAlias);if(E&&E.table.cteName!==null&&!E.schemaUnavailable&&!yc(E,f.field))throw new Error(`ArgumentError: JOIN key ${f.tableAlias}.${f.field} is not available in the materialized table.`)}let u=Gd(e);for(let[p,f]of u.bySource){let E=c.get(p);if(!E||E.schemaUnavailable||!E.authoritative)continue;let R=[...f].filter(m=>!yc(E,m));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (${E.label})`)}for(let p of u.unqualified){let f=[...c.values()].filter(R=>!R.schemaUnavailable);if(f.some(R=>yc(R,p))||[...c.values()].some(R=>R.schemaUnavailable)||f.some(R=>R.table.cteName===null&&!R.authoritative))continue;let E=f.map(R=>R.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${E})`)}}async function ms(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await ms(e.left,t,n,r,i),await ms(e.right,t,n,r,i);return}await Im(e,n,t,r),await Lc(e,t,n,r);for(let o of $I(e))await ms(o,t,n,r,i)}}function wm(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?jr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?jr(e.where,{tableAlias:e.from.alias}):null}function Bi(e){return e.type==="BINARY"?e.right.type==="STRING"?e.right.value.startsWith("@"):e.right.type==="IN_LIST"?e.right.values.some(t=>t.type==="STRING"&&t.value.startsWith("@")):!1:e.type==="LOGICAL"?Bi(e.left)||Bi(e.right):e.type==="GROUP"||e.type==="NOT"?Bi(e.expr):!1}var sp=new WeakMap;function Ds(e,t){if(e.joins.length===0||e.where===null||e.joins.some(f=>f.type!=="INNER"&&f.type!=="CROSS"))return null;let n=[e.from,...e.joins.map(f=>f.table)];if(n.some(f=>f.alias===null||f.cteName!==null||!!f.subtableCode))return null;let r=n.map(f=>({alias:f.alias,appId:f.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(f.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(f.appId)})),i=wE(e.where,r),o=bE(i,r),a=new Map,s=new Map;for(let[f,E]of o.fetchQueriesByAlias)s.set(f,E);for(let f of o.items)s.has(f.targetAlias)||s.set(f.targetAlias,Rr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,c=a.get(l)??null,d=new Map(a);d.delete(l);let u=new Map(o.items.map(f=>[f.targetAlias,f.relation])),p=u.get(l)??null;return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:c,mainRelation:p,joinConditions:d,joinRelations:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Us(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let c=r.get(s);c?c.push(l):r.set(s,[l])};if(i(e.from.appId,wm(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER"||s.type==="CROSS")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=jr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[c,d]=await Promise.all([Ke(s,t,n),Ew(s,t,n)]),u=BI(l).filter(p=>c.get(p)==="STATUS");if(u.length>0){let p=await xs(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(E=>E.name));for(let E of u)d.set(E,f)}}return[s,c,d]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function BI(e){let t=new Set,n=r=>{if(r.type==="BINARY"){r.left.type==="FIELD"&&t.add(r.left.field);return}if(r.type==="LOGICAL"){n(r.left),n(r.right);return}(r.type==="GROUP"||r.type==="NOT")&&n(r.expr)};for(let r of e)n(r);return[...t]}function Wt(e,t){if(e!==null)switch(e.type){case"BINARY":(e.op==="IN"||e.op==="NOT_IN")&&e.left.type==="FIELD"&&t.push(e.left),e.left.type==="CASE_FIELD"&&Cs(e.left.expr,t),e.right.type==="CASE_VALUE"&&Cs(e.right.expr,t);return;case"LOGICAL":Wt(e.left,t),Wt(e.right,t);return;case"NOT":case"GROUP":Wt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Cs(e,t){for(let n of e.branches)Wt(n.condition,t)}function VI(e){let t=[];Wt(e.where,t),Wt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Cs(n.expr,t);return t}function pe(e){return e.alias??e.cteName}function bm(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>pe(n)===t)}function Ms(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function lp(e,t,n){let r=VI(e);if(r.length===0)return new Map;let i=new Set,o=Ms(e);for(let s of r){if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){i.add(e.from.appId);continue}let l=bm(e,s.tableAlias);l&&l.cteName===null&&i.add(l.appId);continue}if(e.joins.length===0){e.from.cteName===null&&i.add(e.from.appId);continue}for(let l of o)i.add(l.appId)}let a=await Promise.all([...i].map(async s=>[s,await Ke(s,t,n)]));return new Map(a)}function Fe(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function up(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||_n(t,n)}function _n(e,t){if(e.type==="FIELD_REF"){t.push(Fe(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){_n(e.left,t),_n(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){_n(e.left,t),_n(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field}):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&_n(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type==="AGG_REF"||n.type==="AGG_ARITH"?wr(n,t):n.type!=="ARRAY"&&_n(n,t)}function wr(e,t){if(e.type==="AGG_REF"){up(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(wr(e.left,t),wr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function _c(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")wr(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Vi(n,t)}}function Vi(e,t){if(e.type==="STRING_FUNC"){_c(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Vi(e.left,t),Vi(e.right,t);return}if(e.type==="CASE_WHEN"){let n=[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]];for(let r of n)r.type==="STRING_FUNC"?_c(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?wr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Vi(r,t)}}function DR(e,t){let n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(i.type==="AGG_REF"){let o=i;up(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function WI(e){let t=[];for(let n of e)n.type==="AGGREGATE"?up(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?wr(n.expr,t):n.type==="ARITH_COL"?DR(n.expr,t):n.type==="STRFUNC_COL"?_c(n.expr,t):n.type==="SCALAR_VALUE_COL"?Vi(n.expr,t):n.type==="CASE_COL"&&DR(n.expr,t);return t}var HI=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function YI(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":HI.has(e.fieldType)?"string":void 0}async function Nm(e,t,n,r){let i=WI(e.columns);if(i.length===0)return;let o=new Set,a=Ms(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=bm(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await Q(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,c=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...c].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await gp(f,t,n);R&&l.set(f,R)}));let d=[e.from,...e.joins.map(f=>f.table)],u=(f,E)=>{let R=f.semantics??te(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let m=d.find(y=>pe(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return Ne(r?.get(m.cteName),f.field)?.semantics??W("string");E=s.get(m.appId)?.get(ue(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return Ne(r?.get(e.from.cteName),f.field)?.semantics??W("string");E=s.get(e.from.appId)?.get(ue(e.from,f.field))}else{let m=d.flatMap(y=>{if(y.cteName!==null){let S=r?.get(y.cteName);return Nr(S,f.field)!==void 0?[Ne(S,f.field)?.semantics??W("string")]:[]}let g=s.get(y.appId)?.get(ue(y,f.field));return g?[u(g,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?d.find(m=>pe(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(E,R?.appId??e.from.appId)}}function ue(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function ys(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function xe(e,t){let n=e.semantics??te(e);return{sortKind:YI(e),fieldType:e.fieldType,semantics:t===void 0?n:nr(n,t,e.code)}}function Cm(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function re(e){return{sortKind:e,semantics:W(e)}}function et(){return{semantics:W("string","KSQL_UNKNOWN")}}function Pm(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function tt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:te({fieldType:"__ID__"})};if(e==="_rid")return re("string");if(e==="_pid"||e==="_idx"||e==="$revision")return re("number")}function Fn(e,t){return re(At(e,n=>{let r=t?.(n);if(r)return"compareMode"in r?r:r.semantics}))}function br(e,t){return e.type==="STRING"?re("string"):e.type==="ARRAY"?Pm():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?et():Kn(e.arg,t):e.func==="GROUP_CONCAT"?re("string"):re("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?re("number"):e.type==="STRING_FUNC"?Fn(e,t):e.type==="FIELD_REF"?t(Fe(e.field))??et():e.type==="FIELD"?t(e)??et():et()}function ks(e){if(e.length===0)return et();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&Ho(n(r.semantics),n(t.semantics)))?e.every(i=>Ho(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?Pm("KSQL_MIXED_UNSUPPORTED"):et()}function Kn(e,t){if(e.type==="FIELD_REF")return t(Fe(e.field))??et();if(e.type==="FIELD")return t(e)??et();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return re("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return re("string");if(e.type==="STRING_FUNC")return Fn(e,t);let n=e.branches.map(r=>br(r.result,t));return e.elseResult&&n.push(br(e.elseResult,t)),ks(n)}function Om(e,t){return e.windowKind==="VALUE"?Kn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?re("number"):e.arg.type==="WILDCARD"?et():Kn(e.arg,t):re("number")}function gs(e,t){return{...e??{},displayName:t}}function jI(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function Qi(e,t,n,r,i,o=!1){let a=new Map;jI(e)&&await Promise.all(Ms(e).map(async R=>{if(a.has(R.appId))return;let m=await Q(R.appId,n,r);a.set(R.appId,new Map(m.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),c=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let S=a.get(e.from.appId)?.get(R.field);return S?xe(S,e.from.appId):void 0}let y=s.find(S=>pe(S)===R.tableAlias);if(!y)return;if(y.cteName!==null)return Ne(i?.get(y.cteName),R.field);let g=a.get(y.appId)?.get(ue(y,R.field));return g?xe(g,y.appId):tt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Ne(i?.get(e.from.cteName),R.field);let y=a.get(e.from.appId)?.get(ue(e.from,R.field));return y?xe(y,e.from.appId):tt(R.field)}let m=s.flatMap(y=>{if(y.cteName!==null){let A=i?.get(y.cteName);return Nr(A,R.field)===void 0?[]:[Ne(A,R.field)]}let g=a.get(y.appId)?.get(ue(y,R.field)),S=g?xe(g,y.appId):tt(R.field);return S?[S]:[]});return m.length===1?m[0]:void 0},d=R=>{if(!l)return;let m=s.filter(y=>{if(R.tableAlias!==null&&pe(y)!==R.tableAlias)return!1;let g=ue(y,R.field);return a.get(y.appId)?.has(g)===!0||tt(R.field)!==void 0});return m.length===1?m[0].appId:void 0},u=(R,m)=>{let y=d(m);return R&&y!==void 0?{...R,publicSourceApp:y}:R},p=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let m=Fe(R),y=u(c(m),m);p.set(R,gs(y,y?.displayName??R))}return p}if(f)for(let R of t){let m=Fe(R),y=u(c(m),m);p.set(R,gs(y,y?.displayName??R))}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,m)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[m];if(!y)return;let g;if(R.type==="FIELD"){let S=Fe(R.field);g=u(c(S),S)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?g=re("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?g=re("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(g=Kn(R.arg,c));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")g=re("number");else if(R.type==="GROUPING_COL")g=re("number");else if(R.type==="LITERAL_COL")g=re("string");else if(R.type==="SCALAR_VALUE_COL"){let S=R.expr;S.type==="STRING_FUNC"?g=Fn(S,c):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?g=re("number"):S.type==="FIELD"?g=c(S):g=re("string")}else if(R.type==="STRFUNC_COL")g=Fn(R.expr,c);else if(R.type==="WINDOW_COL")g=Om(R,c);else if(R.type==="CASE_COL"){let S=R.expr.branches.map(A=>br(A.result,c));R.expr.elseResult&&S.push(br(R.expr.elseResult,c)),g=ks(S)}else R.type==="SCALAR_SUBQUERY_COL"&&(g=et());p.set(y,gs(g,R.aliasDisplay??y))}),p}function zI(e,t){let n=ce.get(e),r=ce.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],c=l===void 0?void 0:r?.get(l),d;if(s&&c){let u=ks([s,c]),p=s.publicSourceApp===c.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=u;d=p===void 0?E:{...E,publicSourceApp:p}}else d=et();i.set(o,gs(d,s?.displayName??o))}),i}function cp(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let c=n.find(d=>pe(d)===s.tableAlias);return!c||c.cteName!==null?void 0:ys(c,s.field)??t.get(c.appId)?.get(ue(c,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:ys(e.from,s.field)??t.get(e.from.appId)?.get(ue(e.from,s.field));if(n.some(c=>c.cteName!==null))return;let l=r.flatMap(c=>{let d=ys(c,s.field)??t.get(c.appId)?.get(ue(c,s.field));return d?[d]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var Lm=new WeakSet,pp=new WeakMap;function vc(e){return Lm.add(e),e}function qI(e,t){return pp.set(e,t),t}function _m(e,t){if(t.capability!=="EXACT_PUSHDOWN")return!1;let n=e.columns.filter(r=>r.type==="AGGREGATE"&&r.func==="COUNT"&&!r.distinct&&r.arg.type==="WILDCARD");return n.length!==1||e.columns.some(r=>r!==n[0]&&r.type!=="LITERAL_COL")?!1:!e.distinct&&ee(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function JI(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function XI(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":z(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new xn;if(!JI(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=On([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function QI(e,t,n,r,i,o=!0,a,s,l){let c=pp.get(e);if(Lm.has(e)&&c!==void 0&&_m(e,c)){let G=await XI(e,t);if(G!==null)return G}let d=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([io(e.where,t,n,r,u,i),io(e.having,t,n,r,u,i)]);let[f,E,R]=await Promise.all([Us(e,t,r),lp(e,t,r),Nm(e,t,r,i)]),m=cp(e,E),y=await so(e,t,r,i,Ct(e.having)||ip(e)),g=gm(e,y),S=sp.get(e);if(S&&!mr(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let A=S??Ds(e,f)??Sn(e,f);Ol(A);let I="joinPlan"in A?A:null,N=I&&mr(I.joinPlan)?I:null,v=t,b=A.mainCondition,M=A.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let D=s?s.prefilterWhere:N?null:b,k=N?.queriesByAlias.get(e.from.alias)??"",P=await ny(e.columns,t,n,r,u,i),O=Rt(e.where),C=O?Promise.resolve([]):Wi(e,e.from,v,d,p,!0,n.onLimitReached??"error",u,D,N?!1:o,l,k),h=[],w=[];for(let G of e.joins){if(O){h.push({join:G,promise:Promise.resolve([])});continue}let U=G.table.alias?N?.queriesByAlias.get(G.table.alias)??"":"",H=N?null:G.table.alias?M.get(G.table.alias)??null:null;H!==null||U!==""?h.push({join:G,promise:Wi(e,G.table,v,d,p,!1,n.onLimitReached??"error",u,H,!0,l,U)}):w.push(G)}let _=a?Promise.resolve(a):eo(e,t,r,i);_.catch(()=>{});let L=await C,F=new Map;F.set(e.from.alias,L);for(let{join:G,promise:U}of h)F.set(G.table.alias,await U);await Promise.all(w.map(async G=>{let H=await Bm(e,G,F,v,d,p,n.onLimitReached??"error",u,r,i,null,l,"")??await Wi(e,G.table,v,d,p,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(G.table.alias,H)}));let{optionOrders:B,sortKinds:V,semantics:x}=await _,{rows:K,columns:j}=Yu({tables:F,stmt:e,scalarCache:P,optionOrders:B,sortKinds:V,orderSemantics:x,fieldTypeResolver:m.row,fieldSemanticsResolver:y,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:g,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??A.appliedKlikes,...s?{residualWhere:s.residualWhere}:N?{residualWhere:N.joinPlan.residualWhere}:{},resolvedGroupingSpec:Ji.get(e),plainGroupByPlan:l,warnings:u,evaluationContext:se(n)}),$=await fp(e,K,j,t,r);return{type:"SELECT",rows:K,columns:$,rowCount:K.length,warnings:[...u]}}function ZI(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
15
- UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}function Dc(e,t,n){ZI(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,c)=>{s[l]=a[e.columns[c]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=ce.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let c=e.columns[l],d=n?.get(s)??(c===void 0?void 0:o?.get(c));d&&a.set(s,{...d,displayName:s})}),ce.set(i,a)}return i}function vm(e,t,n,r){let i=Dc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:ew(o,e.columns),s=[...new Set([...e.warnings??[],...t.warnings??[]])],l={type:"SELECT",rows:a,columns:[...e.columns],rowCount:a.length,warnings:s};return r&&ce.set(l,zI(e,t)),l}async function Dm(e,t,n,r,i=!1,o=!1){let a=op(e,n,null);return Oc(a,async()=>{let s=a.effectiveOptions,[l,c]=await Promise.all([e.left.type==="UNION"?Dm(e.left,t,s,r,i,o):Ht(vc(e.left),t,s,r,void 0,i,o,"DERIVED"),Ht(vc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return vm(l,c,e.all,i)})}function ew(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}function Um(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function Mm(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(Um);if(n.some(i=>i===null))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u5F0F\u306B\u306F AS \u5225\u540D\u304C\u5FC5\u8981\u3067\u3059`);let r=n;if(new Set(r).size!==r.length)throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u51FA\u529B\u5217\u540D\u3092\u91CD\u8907\u3055\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093`);return r}function UR(e){return e.columns.map((t,n)=>Um(t)??`__b53_column_${n}`)}function MR(e,t){let n=e.semantics,r=t.semantics;if(!n||!r||n.compareMode==="unsupported"||r.compareMode==="unsupported"||n.compareMode!==r.compareMode||e.sortKind&&t.sortKind&&e.sortKind!==t.sortKind||n.inSubtable!==r.inSubtable||n.requiresCollectionOperators!==r.requiresCollectionOperators)return!1;let i=o=>o===void 0||o.startsWith("KSQL_");return!(!i(e.fieldType)&&!i(t.fieldType)&&e.fieldType!==t.fieldType)}async function km(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)],o=new Map;await Promise.all(i.filter(s=>s.cteName===null).map(async s=>{if(o.has(s.appId))return;let l=await Q(s.appId,t,n);o.set(s.appId,new Map(l.map(c=>[c.code,c])))}));let a=(s,l)=>{if(s.cteName!==null)return Ne(r.get(s.cteName),l);let c=o.get(s.appId)?.get(ue(s,l));return c?xe(c,s.appId):tt(l)};return s=>{if(s.tableAlias!==null){let c=i.find(d=>pe(d)===s.tableAlias);return c?a(c,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(c=>a(c,s.field)).filter(c=>c!==void 0);return l.length===1?l[0]:void 0}}function Ki(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Ki(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:Fe(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=Fe(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){Ki(r.left,t,!0),Ki(r.right,t,!0);return}for(let i of Object.values(r))Ki(i,t,n)}async function kR(e,t,n,r,i){let o=await km(e,n,r,i);e.columns.forEach(c=>Ki(c,o));let a=await Qi(e,UR(e),n,r,i),s=UR(e),l=new Map;return t.forEach((c,d)=>{let u=a.get(s[d]);if(!u?.semantics||u.semantics.fieldType==="KSQL_UNKNOWN"||u.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${d+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(c,{...u,displayName:c})}),l}function dn(e){return`${e.appId}:${e.subtableCode??""}`}function xm(...e){let t=new Map;for(let n of e)for(let r of[n.from,...n.joins.map(i=>i.table)])r.cteName===null&&!t.has(dn(r))&&t.set(dn(r),r);return[...t.values()]}function tw(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function nw(e){let t=new Map,n=r=>{for(let i of r)t.set(dn(i),null)};for(let r of e){let i=Ms(r);for(let s of i){let l=dn(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let c=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(u=>u.table)].find(u=>pe(u)?.toLowerCase()===s.toLowerCase());if(!c){n(i);return}if(c.cteName!==null)return;let d=t.get(dn(c));d!==null&&d?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let c=tw(l.field),d=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:c.alias;o(d,c.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(ee(r)),a(r.having),a(r.orderBy);for(let s of r.joins){if(s.on===null){n(i);continue}o(s.on.left.tableAlias,s.on.left.field),o(s.on.right.tableAlias,s.on.right.field)}}return t}function rw(e,t){return{type:"SELECT",distinct:!1,columns:t!==null&&t.size>0?[...t].map(r=>({type:"FIELD",field:r,alias:null})):[{type:"WILDCARD"}],from:{...e,alias:null},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function iw(e,t,n,r){let i=nw(e),o=await Promise.all(xm(...e).map(async(a,s)=>{let l=await Ht(rw(a,i.get(dn(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),c=`__b53_source_${s}`;return[dn(a),{name:c,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:ce.get(l)}}]}));return new Map(o)}function xR(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(dn(r));if(!i)throw new Error("PlanningError: \u518D\u5E30 CTE \u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{appId:0,alias:r.alias,cteName:i.name,subtableCode:null}};return{...e,from:n(e.from),joins:e.joins.map(r=>({...r,table:n(r.table)}))}}function FR(e,t,n){return e.cteName===null?void 0:Ne(n.get(e.cteName),t)}function gc(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=we(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function KR(e,t){let n=t.joins[0];if(!n||n.type!=="INNER")throw new Error("PlanningError: \u518D\u5E30\u9805\u306E INNER JOIN \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");let r=t.from.cteName===e?t.from:n.table,i=r===t.from?n.table:t.from,o=pe(r),a=n.on.left.tableAlias===o,s=n.on.right.tableAlias===o;if(a===s)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u3092\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{self:r,source:i,selfField:a?n.on.left.field:n.on.right.field,sourceField:a?n.on.right.field:n.on.left.field}}async function ow(e,t,n,r,i){let o=e.recursiveSpec,a=Mm(e),s=await kR(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let c=await kR(o.recursiveTerm,a,t,i,l);a.forEach((V,x)=>{let K=s.get(V),j=c.get(V);if(!K||!j||!MR(K,j))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${x+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let d=KR(e.name,o.recursiveTerm),u=await km(o.recursiveTerm,t,i,l),p=u({type:"FIELD",tableAlias:pe(d.self),field:d.selfField}),f=u({type:"FIELD",tableAlias:pe(d.source),field:d.sourceField});if(!p||!f||!MR(p,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let E=await iw([o.seed,o.recursiveTerm],t,n,i),R=new Map(r);for(let V of E.values())R.set(V.name,V.table);let m=xR(o.seed,E),y=xR(o.recursiveTerm,E),g=await mt(m,t,n,R,i,!0,!0),S=Dc(g,a,s),A=o.cycle,I=A?s.get(A.column):void 0,N=new Map(s);A&&N.set(A.markColumn,{...re("string"),displayName:A.markColumn});let v=A?[...a,A.markColumn]:[...a],b=[],M=[],D=new Set([...S.warnings??[],...[...E.values()].flatMap(V=>V.warnings)]),k=new xa(e.name,Nt(n)),P=V=>{k.addRow(),b.push(V)};for(let V of S.rows){let x=A?String(V[A.column]??""):"",K=A?{...V,[A.markColumn]:A.defaultValue}:V;P(K),M.push({row:V,path:A?[x]:[]})}let O=KR(e.name,y),C=O.source.cteName===null?void 0:R.get(O.source.cteName);if(!C)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let h=FR(O.self,O.selfField,l)??FR(O.source,O.sourceField,R);if(!h?.semantics||h.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${O.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let w=new Map;for(let V of C.rows){let x=String(V[O.sourceField]??""),K=gc(x,h.semantics),j=w.get(K);j?j.push(V):w.set(K,[V])}let _=w.has(gc("",h.semantics)),L=0,F=!1;for(;M.length>0;){L++;let V=[];for(let x of M){let K=String(x.row[O.selfField]??"");!F&&K===""&&_&&(D.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${O.selfField} = ${O.sourceField} \u3067\u7B2C ${L} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let j=w.get(gc(K,h.semantics))??[];for(let H of j){let ye=String(H[O.sourceField]??"");xt("=",K,ye,h.semantics)&&k.addExpansion()}if(j.length===0)continue;let $=new Map(R);$.set(e.name,{rows:[x.row],columns:a,columnMeta:s});let G=await mt(y,t,n,$,i,!0,!0);for(let H of G.warnings??[])D.add(H);let U=Dc(G,a,s);U.rows.length>0&&k.observeDepth(L);for(let H of U.rows){if(!A){P(H),V.push({row:H,path:[]});continue}let ye=String(H[A.column]??""),Ve=x.path.some(ae=>xt("=",ae,ye,I.semantics));P({...H,[A.markColumn]:Ve?A.markValue:A.defaultValue}),Ve||V.push({row:H,path:[...x.path,ye]})}}M=V}let B={type:"SELECT",rows:b,columns:v,rowCount:b.length,warnings:[...D]};return ce.set(B,N),B}async function dp(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&tn(e))return Ht(nn(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let c of e.ctes){let d;c.recursiveSpec?d=await ow(c,t,n,a,r):c.query.type==="SHOW_APPS"?d=await Qm(t):c.query.type==="DESCRIBE"?d=await Zm(c.query,t,r):c.query.type==="GENERATE_SERIES"?d=Fm(c.query):d=await mt(c.query,t,n,a,r,!0);for(let u of d.warnings??[])s.add(u);a.set(c.name,{rows:d.rows,columns:d.columns,columnMeta:ce.get(d),...c.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:c.query.columnAlias}:{}})}let l=await mt(e.query,t,n,a,r,o);return vs(l,[...s])}function Fm(e){let t=ua(e),n={type:"SELECT",columns:[e.columnAlias],rows:t.values.map(i=>({[e.columnAlias]:i})),rowCount:t.rowCount,warnings:[]},r=t.kind==="INTEGER"?{sortKind:"number",fieldType:"NUMBER",semantics:te({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:te({fieldType:"DATE"})};return ce.set(n,new Map([[e.columnAlias,r]])),n}async function mt(e,t,n,r,i,o=!1,a=!1){if(a||await ms(e,t,r,i),e.type==="UNION"){let[c,d]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]);return vm(c,d,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Ce||e.joins.some(c=>c.table.cteName!=null)))return Ht(e,t,n,i,r,o,!1,"DERIVED");let l=await aw(e,t,n,r,i);return o&&ce.set(l,await Qi(e,l.columns,t,i,r)),l}async function aw(e,t,n,r,i){await Xi(e,t,i,r);let o=Ji.get(e),a=await Ir(e,t,i,r),s=new Set,l=$=>{if($.alias!==null||$.cteName===null)return $;let G=pe($);return s.add(G),{...$,alias:G}};e={...e,from:l(e.from),joins:e.joins.map($=>({...$,table:l($.table)}))};let c=new Set;for(let $ of[e.from,...e.joins.map(G=>G.table)]){let G=pe($);if(G!==null){if(c.has(G))throw new Error(`ArgumentError: effective alias ${G} is used by multiple tables.`);c.add(G)}}let d=$=>{let G=r.get($);if(!G)throw new Error(`ArgumentError: materialized source ${$} is not available.`);return G};for(let $ of[e.from,...e.joins.map(G=>G.table)])$.cteName!==null&&d($.cteName);let{resolver:u}=await Un(e,t,i,r,mm(e)),p=ym(e,u,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,E=new Set,R=n.fetchParallel??1;await Promise.all([io(e.where,t,n,i,E,r),io(e.having,t,n,i,E,r),ey(e,t,n,i,E,r)]);let m=Te(e.where,u);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Mn(m)}).`);let y=await eo(e,t,i,r),g=bs(e)?(e.orderMode==="KINTONE_NATIVE"?wi:Ii)({stmt:e,staticMode:"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:Pe(e.where)}):null,S=op(e,n,g),A=S.effectiveOptions,[I,N,v]=await Promise.all([Us(e,t,i),lp(e,t,i),Nm(e,t,i,r)]),b=cp(e,N),M=await so(e,t,i,r,Ct(e.having)||ip(e)),D=gm(e,M),k=Ds(e,I)??Sn(e,I);Ol(k);let P=t,O=await ny(e.columns,t,A,i,E,r),C=Promise.resolve(y);C.catch(()=>{});let h=new Map,w=new Map;if(e.from.cteName!=null){let $=d(e.from.cteName);h.set(e.from.alias,$.rows.map(GR)),w.set(e.from.alias,$.columns)}else{let $=await Oc(S,()=>Wi(e,e.from,P,f,R,!0,A.onLimitReached??"error",E,k.mainCondition,m.capability==="EXACT_PUSHDOWN",a));h.set(e.from.alias,$)}let _=e.joins.map($=>Oc(S,async()=>{if($.table.cteName!=null){let G=d($.table.cteName);h.set($.table.alias,G.rows.map(GR)),w.set($.table.alias,G.columns)}else{let G=$.table.alias?k.joinConditions.get($.table.alias)??null:null,H=await Bm(e,$,h,P,f,R,A.onLimitReached??"error",E,i,r,G,a)??await Wi(e,$.table,P,f,R,!1,A.onLimitReached??"error",E,G,!0,a);h.set($.table.alias,H)}}));await Promise.all(_);let{optionOrders:L,sortKinds:F,semantics:B}=await C,V=e.joins.length===0&&e.from.cteName!=null?d(e.from.cteName).columns:void 0,{rows:x,columns:K}=Yu({tables:h,stmt:e,scalarCache:O,optionOrders:L,sortKinds:F,orderSemantics:B,fieldTypeResolver:b.row,fieldSemanticsResolver:M,havingFieldTypeResolver:b.having,havingFieldSemanticsResolver:D,aggregateSortKindResolver:v,appliedKlikes:k.appliedKlikes,sourceColumns:V,tableColumns:w,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:se(n)}),j=await fp(e,x,K,t,i);return vs({type:"SELECT",rows:x,columns:j,rowCount:x.length,warnings:[...E]},p)}async function fp(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await Q(e.from.appId,r,i);return vE(o,e.from.subtableCode,()=>xs(e.from.appId,r,i))}function GR(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Wi(e,t,n,r,i,o,a,s,l=null,c=!0,d,u=""){let p=An(e,t,d),f=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Zc(n,t.appId),hE(e,t,o))throw new We(`\u5916\u90E8\u7D50\u5408\u306E\u6B63\u3057\u3044\u7D50\u679C\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: OUTER_JOIN_NON_PRESERVED\uFF08APP${t.appId}\uFF09\u3002onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,!0)};if(!t.subtableCode){let y=o&&c?Fd(e,t.appId).query:"",g=[l!==null?z(l):"",u].filter(N=>N!==""),S=g.length>1?g.map(N=>`(${N})`).join(" and "):g[0]??"",A=y&&S?`(${y}) and (${S})`:y||S;return(await ut(n.getRecords,t.appId,A,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let E=o&&c&&e.joins.length===0&&e.where!==null&&pp.get(e)?.capability==="EXACT_PUSHDOWN"&&!Mt(e.where)?z(e.where):"",m=(await ut(n.getRecords,t.appId,E,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return JE(m,t.subtableCode)}var Ar=50;function sw(e){let t=we(e);return t!==null?JSON.stringify(t):e}function Uc(e){return JSON.stringify(e)}function fn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?sw(n):n))}var $R={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function BR(e,t,n,r=[]){if(t){if(e===1)return"\u901A\u5E38\u5B9F\u884C client \u306E native \u80FD\u529B\u304C\u4E0D\u660E";if(e===2)return"native \u8A2D\u5B9A\u304C\u4E0D\u660E";if(e===3)return"\u30D5\u30A9\u30FC\u30E0\u30E1\u30BF\u30C7\u30FC\u30BF\u672A\u53D6\u5F97";if(e===5||r.includes(5))return"\u30BD\u30FC\u30B9\u884C\u672A materialize";if(e===6)return"\u30AD\u30FC\u578B\u60C5\u5831\u304C\u672A\u78BA\u5B9A\u306E\u305F\u3081\u91CD\u8907\u5224\u5B9A\u4E0D\u80FD"}return e===1?"client \u304C upsertRecords \u80FD\u529B\u3092\u6301\u305F\u306A\u3044":e===2?n==="CLI"?"--native-upsert \u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044":"enableNativeUpsert \u304C false":e===3?"\u30AD\u30FC\u9805\u76EE\u306F\u91CD\u8907\u7981\u6B62\u306E SINGLE_LINE_TEXT \u307E\u305F\u306F NUMBER \u3067\u306F\u306A\u3044":e===4?"CHECK / APPLY / IMPORT / VALIDATE ONLY / ON ERROR SKIP \u3092\u4F34\u3046\u7D20\u3067\u306A\u3044 UPSERT":e===5?"\u30BD\u30FC\u30B9\u306B\u7A7A\u6587\u5B57\u30AD\u30FC\u304C\u3042\u308B":"\u30BD\u30FC\u30B9\u5185\u306B\u540C\u4E00\u30AD\u30FC\u304C\u3042\u308B"}function hc(e,t,n){if(t.status==="ELIGIBLE")return` ${e}: ELIGIBLE\uFF08${e.includes("statement/data")?"\u6761\u4EF6 3\u301C6 \u3092":"6 \u6761\u4EF6\u3092\u3059\u3079\u3066"}\u6E80\u305F\u3059\uFF09`;if(t.status==="INELIGIBLE")return` ${e}: INELIGIBLE\uFF08\u6761\u4EF6 ${t.condition}: ${$R[t.condition]} \u2014 ${BR(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${$R[o]} \u2014 ${BR(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function lw(e,t){if(t==="DOCUMENT_ONLY")return[hc("native UPSERT statement/data eligibility",e.statement,t),` native UPSERT execution surface: NOT_APPLICABLE\uFF08\u3053\u306E\u9762\u3067\u306F\u5B9F\u884C\u3057\u306A\u3044${e.statement.status==="ELIGIBLE"?"\u3002/flow \u307E\u305F\u306F CLI --native-upsert \u3067\u306F native \u5019\u88DC":""}\uFF09`];let n=[hc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(hc("native UPSERT statement/data eligibility",e.statement,t)),n}function uw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function cw(e,t,n){let r=null;if(e.type==="UPSERT")try{r=wp(e)}catch{}return Ep({surface:n.surface==="DOCUMENT_ONLY"?"DOCUMENT_ONLY":"EXECUTION",clientCapability:n.surface==="DOCUMENT_ONLY"?null:n.clientHasNativeUpsert??null,enabled:n.surface==="DOCUMENT_ONLY"?null:n.surface==="FLOW"?n.enableNativeUpsert!==!1:n.enableNativeUpsert===!0,statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Cr.has(e)},fieldInfos:t,rowKeyValues:r})}async function Km(e,t,n){let r=uw(e);if(!r)return[];let i=await Vm(r.appId,t);return lw(cw(r,i,n),n.surface)}function Ep(e){let t=e.statement.keyFields.length===1?e.statement.keyFields[0]:void 0,n=t===void 0||e.fieldInfos===null?void 0:e.fieldInfos.find(p=>p.code===t),r=n?.fieldType==="SINGLE_LINE_TEXT"||n?.fieldType==="NUMBER",i=e.fieldInfos===null?null:!!(t!==void 0&&n&&r&&n.isUnique===!0),o=!e.statement.hasCheck&&!e.statement.hasApply&&!e.statement.validateOnly&&!e.statement.onErrorSkip&&!(e.statement.kind==="SELECT"&&e.statement.importDerived),a=e.rowKeyValues,s=a===null?null:a.every(p=>p.every(f=>f!=="")),l=null;if(a!==null&&t!==void 0&&r){let p=new Set;l=!0;for(let f of a){let E=fn([...f],[n.fieldType==="NUMBER"]);if(p.has(E)){l=!1;break}p.add(E)}}let c=(p,f)=>({state:p===null?"UNKNOWN":p?"PASS":"FAIL",reason:f}),d={1:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"client capability is not applicable on this surface"}:c(e.clientCapability,"client does not provide upsertRecords"),2:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"native setting is not applicable on this surface"}:c(e.enabled,"native UPSERT is disabled"),3:c(i,"update key schema is not a single unique text or number field"),4:c(o,"statement is not a plain UPSERT"),5:c(s,"source contains an empty update key"),6:c(l,"source contains duplicate update keys")},u=p=>{let f=p.find(R=>d[R].state==="FAIL");if(f!==void 0)return{status:"INELIGIBLE",condition:f,reason:d[f].reason};let E=p.filter(R=>d[R].state==="UNKNOWN").map(R=>({condition:R,reason:d[R].reason}));return E.length>0?{status:"UNKNOWN",unknownConditions:E}:{status:"ELIGIBLE"}};return{conditions:d,execution:u([1,2,3,4,5,6]),statement:u([3,4,5,6])}}function Rp(e){return"upsertRecords"in e&&typeof e.upsertRecords=="function"}function Gm(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:Rp(t),enabled:em(n),statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Cr.has(e)},fieldInfos:r,rowKeyValues:i}}var Ps=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function pw(e,t){if(!e||!Array.isArray(e.records)||e.records.length!==t)throw new Ps;let n=0,r=0;for(let i of e.records){if(!i||typeof i.id!="string"||typeof i.revision!="string"||i.operation!=="INSERT"&&i.operation!=="UPDATE")throw new Ps;i.operation==="INSERT"?n+=1:r+=1}return{insertedCount:n,updatedCount:r}}async function $m(e,t,n,r,i,o){if(n.length===0)return{type:"UPSERT",insertedCount:0,updatedCount:0};if(o.confirm&&!await o.confirm(n.length,"UPDATE"))throw new me("UPDATE",n.length);let a=0,s=0;for(let l=0;l<n.length;l+=100){let c=n.slice(l,l+100).map((p,f)=>{let E={};for(let[R,m]of Object.entries(p))R!==t&&(E[R]=m);return{updateKey:{field:t,value:r[l+f][0]},record:E}}),d=await i.upsertRecords({app:e,upsert:!0,records:c}),u=pw(d,c.length);a+=u.insertedCount,s+=u.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function lo(e,t){let n=e.raw.get(Uc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(fn(t,e.numericKey))}async function uo(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,c=t.map(y=>o.get(y)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:c,...a?{snapshots:new Map}:{}},u=(y,g,S)=>{let A=y.get(g);(A===void 0||S>A)&&y.set(g,S)},p=(y,g)=>{u(d.raw,Uc(y),g),c.some(Boolean)&&u(d.normalized,fn(y,c),g)},f=new Set,E=[],R=new Set;for(let y of n){let g=Uc(y);R.has(g)||(R.add(g),y.some(S=>S==="")?E.push(y):f.add(y[0]))}let m=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let y of co([...f],Ar)){let g=`${t[0]} in (${y.map(Zi).join(",")})`,S=await Ge(r.getRecords,e,g,m,{maxRecords:s,parallel:l});for(let A of S){let I=Number(A.$id?.value);Number.isFinite(I)&&(d.snapshots?.set(I,A),p(t.map(N=>mp(A[N]?.value)),I))}}for(let y of E){let g=t.map((I,N)=>`${I} = ${Zi(y[N])}`).join(" and "),S=a?[...new Set(["$id",...a])]:["$id"],A=await Ge(r.getRecords,e,g,S,{maxRecords:s,parallel:l});if(A.length!==0){for(let I of A){let N=Number(I.$id?.value);Number.isFinite(N)&&d.snapshots?.set(N,I)}p(y,dw(A))}}return d}function dw(e){let t=Number.NEGATIVE_INFINITY;for(let n of e){let r=Number(n.$id?.value);Number.isFinite(r)&&r>t&&(t=r)}if(!Number.isFinite(t))throw new Error("\u30EC\u30B3\u30FC\u30C9\u306B\u6570\u5024\u306E $id \u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002");return t}function mp(e){return typeof e=="string"?e:e==null?"":String(e)}function Zi(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function co(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var fw=6,hs=Fa*fw;async function Bm(e,t,n,r,i,o,a,s,l,c,d=null,u,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,E=t.on.right.tableAlias;if(!f||!E)return null;let R,m,y;if(f===t.table.alias&&E!==t.table.alias)R=E,m=t.on.right.field,y=t.on.left.field;else if(E===t.table.alias&&f!==t.table.alias)R=f,m=t.on.left.field,y=t.on.right.field;else return null;let g=n.get(R);if(!g)return null;let S=[e.from,...e.joins.map(h=>h.table)].find(h=>pe(h)===R),A=(await Q(t.table.appId,r,l)).find(h=>h.code===ue(t.table,y)),I=A?xe(A,t.table.appId):tt(y),N;if(S?.cteName!==null&&S?.cteName!==void 0)N=Ne(c?.get(S.cteName),m);else if(S){let h=(await Q(S.appId,r,l)).find(w=>w.code===ue(S,m));N=h?xe(h,S.appId):tt(m)}let v=[],b=!1;for(let h of g){let w=h[m]?.value,_=mp(w);(w==null||_.length===0)&&(b=!0),v.push(_)}let M=Ou({fieldType:I?.fieldType,sourceSemantics:N?.semantics,sourceRowCount:g.length,values:v,hasEmptyValue:b,maxInKeys:hs});if(M.kind==="EMPTY_SOURCE")return[];if(M.kind==="FALLBACK"){if(M.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let h=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${h} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${hs} \u4EF6\uFF09\u3002`)}return null}if(M.kind==="RANGE_CANDIDATE")return null;let D=Pu(M,y,Zi);if(D.length===0)return s.add(`JOIN\u30AD\u30FC\u304C 0 \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${hs} \u4EF6\uFF09\u3002`),null;let k=An(e,t.table,u),P=h=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${h} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${h} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Zc(r,t.table.appId)},O=[],C=new Set;for(let h of D){let _=[d!==null?z(d):"",p].filter(F=>F!=="").reduce((F,B)=>`(${F}) and (${B})`,h),L=await ut(r.getRecords,t.table.appId,_,k,{parallel:o,maxRecords:i,onLimit:a,onTruncate:P});for(let F of L.records){let B=`${F.$id?.value??""}:${JSON.stringify(F)}`;C.has(B)||(C.add(B),O.push(F))}}return O}var Mc=new Map,kc=new Map,xc=new Map,Os=new Map,Fc=new Map,Kc=new Map;function yp(e){Mc.delete(e),kc.delete(e),xc.delete(e),Os.delete(e),Fc.delete(e),Kc.delete(e)}function Bn(e,t,n){return e.get(t)?.get(n)}function Pr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function Q(e,t,n){let r=Bn(Os,n,e);if(r)return r;let i=t.getFields(e);return Pr(Os,n,e,i),i}async function Vm(e,t){let n=Bn(Os,t,e);return n?await n:null}async function _t(e,t,n){let r=Bn(Kc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Pr(Kc,n,e,i),i}async function xs(e,t,n){let r=Bn(Fc,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Pr(Fc,n,e,i),i}async function gp(e,t,n){let r=await xs(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ke(e,t,n){let r=Bn(Mc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Pr(Mc,n,e,o),o}async function Gc(e,t,n){let r=Bn(kc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Pr(kc,n,e,o),o}async function Ew(e,t,n){let r=await Gc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function VR(e,t,n){let r=Bn(xc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Pr(xc,n,e,o),o}function Rw(e){let t=[...e.orderBy,...e.columns.flatMap(n=>n.type==="WINDOW_COL"?n.orderBy:[])];return[...new Set(t.flatMap(n=>n.key.type==="FIELD_NAME"?[n.key.name]:[]))]}async function mw(e,t,n,r){let i=Rw(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let p=await Q(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(u.field);return R?xe(R,e.from.appId):void 0}let f=o.find(R=>pe(R)===u.tableAlias);if(!f)return;if(f.cteName!==null)return Ne(r?.get(f.cteName),u.field);let E=s.get(f.appId)?.get(ue(f,u.field));return E?xe(E,f.appId):tt(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Ne(r?.get(e.from.cteName),u.field);let f=s.get(e.from.appId)?.get(ue(e.from,u.field));return f?xe(f,e.from.appId):tt(u.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),y=Ne(m,u.field);return y?[y]:[]}let E=s.get(f.appId)?.get(ue(f,u.field)),R=E?xe(E,f.appId):tt(u.field);return R?[R]:[]});return p.length>1&&a.add(u.field),p.length===1?p[0]:void 0},c=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let p;if(u.type==="FIELD")p=l(Fe(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")p=re("number");else if(u.type==="WINDOW_COL")p=Om(u,l);else if(u.type==="GROUPING_COL")p=re("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")p=re("string");else if(u.type==="STRFUNC_COL")p=Fn(u.expr,l);else if(u.type==="SCALAR_SUBQUERY_COL")p=et();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(E=>br(E.result,l));u.expr.elseResult&&f.push(br(u.expr.elseResult,l)),p=ks(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(p=Kn(u.arg,l)):p=u.func==="GROUP_CONCAT"?re("string"):re("number"));p?.semantics&&c.set(u.alias,p.semantics)}let d=new Map;for(let u of i){let p=Oe(u,c.keys()),f=(p===void 0?void 0:c.get(p))??l(Fe(u))?.semantics;if(!f){let R=Fe(u);R.tableAlias===null&&a.has(R.field)&&d.set(u,te({fieldType:"KSQL_AMBIGUOUS"}));continue}let E=f;if(f.fieldType==="STATUS"&&f.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await xs(f.source.appId,t,n);R.enable&&R.states!==null&&(E={...f,optionOrder:new Map(R.states.map(m=>[m.name,m.index]))})}d.set(u,E)}return d}async function eo(e,t,n,r){let i=e.columns.some(l=>l.type==="WINDOW_COL"&&l.orderBy.length>0);if(e.orderBy.length===0&&!i)return{optionOrders:new Map,sortKinds:new Map,semantics:new Map};let[o,a,s]=await Promise.all([yw(e,t,n),gw(e,t,n),mw(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function yw(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await Gc(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Gc(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}async function gw(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await VR(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await VR(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}function Wm(e,t){if(typeof e!="string")return e;let n=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),r=new Set(["CHECK_BOX","MULTI_SELECT"]);if(n.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i)&&i.every(o=>typeof o=="object"&&"code"in o))return i.map(o=>({code:o.code}))}catch{}return e.split(",").map(i=>({code:i.trim()}))}if(r.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i))return i.map(String)}catch{}return e.split(",").map(i=>i.trim())}return e}var hw=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Aw(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of t){let o=r.get(i);if(!o)throw new Error(`ArgumentError: DML target field ${i} does not exist.`);if(o.inSubtable)throw new Error(`ArgumentError: DML target field ${i} is inside a subtable. Use subtable DML syntax (for example, APP${e}$\u30C6\u30FC\u30D6\u30EB).`);if(o.writable===!1||hw.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function yt(e,t,n,r){let i=await Q(e,n,r);return Aw(e,t,i),i}async function Yt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?_t(e,r,i):void 0}function En(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),c=o[s]?.value??"",d=Ye(c,l,r);if(!d.ok)throw new Error(`DmlValidationError: ${d.code} ${d.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(c)&&c.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:u?c:d.value}}})}async function Sw(e,t,n,r,i){let o=await yt(e.appId,e.fields,t,r),a=await mi({statement:e,fieldInfos:o,dmlMaxRows:rt(n.dmlMaxRows,"dmlMaxRows",jt),dmlMaxSubtableRows:rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),statementNumber:i,loadNumberPrecision:()=>_t(e.appId,t,r)});return Xw(e,a,o)}async function Tw(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Hm(e,t,n,r,i);return Zw(e,a,o)}async function Hm(e,t,n,r,i){let o=await yt(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=wp(e),l=new Set;for(let m of s){let y=fn(m,e.keyFields.map(g=>a.get(g)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let c=await uo(e.appId,e.keyFields,s,t,n,a),d=s.map(m=>lo(c,m)),u=new Map,p=[...new Set(d.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of co(p,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let g of y.records){let S=Number(g.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,g)}}let E=d.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:u.get(m)}})),R=await dE({statement:e,matches:E,fieldInfos:o,dmlMaxRows:rt(n.dmlMaxRows,"dmlMaxRows",jt),dmlMaxSubtableRows:rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),statementNumber:i,loadNumberPrecision:()=>_t(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Iw(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await yt(e.appId,e.fields,t,r),o=await mi({statement:e,fieldInfos:i,dmlMaxRows:rt(n.dmlMaxRows,"dmlMaxRows",jt),dmlMaxSubtableRows:rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),loadNumberPrecision:()=>_t(e.appId,t,r)}),a=Iu(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Fs(a),applyDiagnostic:a}))throw new me("INSERT",o.guards.parentRows);let s=await yE(o,t,a);return{...s,diagnostic:Je(a,s)}}async function ww(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Hm(e,t,n,r,1),o=wu(i);if(n.confirm){let s=Fs(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new me("UPDATE",i.guards.parentRows)}let a=await gE(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Je(o,a)}}function bw(e,t){let n=new Map;for(let r of[...e,...t]){let i=n.get(r.table);n.set(r.table,i?{table:r.table,patchRows:i.patchRows+r.patchRows,appendRows:i.appendRows+r.appendRows,removeRows:i.removeRows+r.removeRows}:{...r})}return[...n.values()]}function Fs(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=bw(n?ds(n):[],r?ds(r):[]),a=Nw(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),c=o.reduce((p,f)=>p+f.appendRows,0),d=o.reduce((p,f)=>p+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:c,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:d,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=ds(n),f=ds(r);return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:p.reduce((E,R)=>E+R.appendRows,0),tables:p},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return u}function ds(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=kn(t,"APPEND"),r=kn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function kn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function Nw(e){let t=new Map;for(let n of e.filter(r=>r.targetKind==="MULTI_VALUE")){let r={field:n.field,fieldType:n.fieldType??"UNKNOWN",addedValues:kn(n,"ADD"),removedValues:kn(n,"REMOVE_VALUE"),changedValues:n.changedCount??0,parents:(n.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(n.field);t.set(n.field,i?{...i,addedValues:i.addedValues+r.addedValues,removedValues:i.removedValues+r.removedValues,changedValues:i.changedValues+r.changedValues,parents:[...i.parents,...r.parents]}:r)}return[...t.values()]}async function hp(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Sw(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Tw(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Jm(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Ap(e,t,n,r,i,o)).result}var to=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Ap(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",c=e.type==="UPDATE"?["$id",...e.assignments.map(C=>C.field)]:[...e.fields];if(new Set(c).size!==c.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let d=e.type==="UPDATE"?e.assignments.map(C=>C.field):e.fields,u=await yt(e.appId,d,t,r);e.type==="UPDATE"&&await Tr(e,t,r);let p=new Map(u.map(C=>[C.code,C])),f=await Yt(e.appId,d,u,t,r),E=It(u,c),R=eR(E),m=(await Cw(e,l,t,n,r,i,p,e.type==="UPDATE"?R:void 0)).sort((C,h)=>C.rowNumber-h.rowNumber),y=m.filter(C=>C.mode==="update"),g=e.type==="UPDATE"?Lw:e.type.startsWith("UPSERT")?C=>_w(C,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??g,A=y.length>0&&S!==void 0,I=new Map;if(A){Eu(y,d,u);let C=await S({appId:e.appId,candidates:y,fields:R}),h=new Map;for(let w of y){if(w.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${w.rowNumber}).`);let _=C.get(w.targetId);if(!_)throw new Error(`InternalError: update-mode snapshot is missing for record ${w.targetId}.`);let L=tR(_,w.record??{});h.set(w.rowNumber,L)}f===void 0&&[...h.values()].some(w=>bn(w,E))&&(f=await _t(e.appId,t,r));for(let w of y){let _=h.get(w.rowNumber);if(!_)throw new Error(`InternalError: validation post-image is missing for row ${w.rowNumber}.`);I.set(w.rowNumber,Nn(_,E,f,o,w.rowNumber,l))}}let N=Ru(m,l,c,d,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!A}),{errors:v,invalidRows:b,invalidRowNumbers:M}=N;if(A){let C=new Map(N.candidateResults.map(h=>[h.rowNumber,h]));v=[],M=new Set;for(let h of m){let w=C.get(h.rowNumber);if(!w)throw new Error(`InternalError: validation detail is missing for row ${h.rowNumber}.`);if(h.mode==="create"){let F=[...w.preErrors,...w.builtInErrors,...w.checkErrors];v.push(...F),F.length>0&&M.add(h.rowNumber);continue}let _=I.get(h.rowNumber);if(!_)throw new Error(`InternalError: prepared post-image validation is missing for row ${h.rowNumber}.`);let L=nR({rowNumber:h.rowNumber,setFields:d,normalizedPostImage:_.normalizedRecord,preErrors:w.preErrors,postImageErrors:_.errors,checkErrors:w.checkErrors});h.record=L.writeRecord,v.push(...L.errors);for(let F of L.invalidRowNumbers)M.add(F)}b=M.size}let D=[...c,...pr],k={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-b,invalidRows:b,errorCount:v.length,columns:D,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},P=new Map;for(let C of c){if(C==="$id"){P.set(C,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:te({fieldType:"RECORD_NUMBER"})});continue}let h=p.get(C);h&&P.set(C,xe(h,e.appId))}let O=new Set(["$err_statement","$err_row"]);for(let C of pr)P.set(C,re(O.has(C)?"number":"string"));return $n.set(k,P),{result:k,candidates:m,invalidRowNumbers:M,columnMeta:P}}async function $c(e,t,n,r,i,o){let a=await Ap(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");Lt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??nt,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new to(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let c=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(c.length,E))throw new me(E,c.length)}let d={affectedRows:c.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<c.length;R+=100){let m=await t.postRecords({app:e.appId,records:c.slice(R,R+100).map(y=>y.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...d}}if(e.type==="UPDATE"){let E=c.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...d}}let u=c.filter(E=>E.mode==="create"),p=c.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<u.length;E+=100){let R=await t.postRecords({app:e.appId,records:u.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<p.length;E+=100)await t.putRecords({app:e.appId,records:p.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...d}}async function Cw(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return Ow(e,n,r,i,o,s);let l,c,d,u,p;if(e.type==="INSERT"||e.type==="UPSERT")WR(e,e.fields),p=new Map(e.fields.map(A=>[A,a.get(A)?.fieldType??""])),Gn(e,p),l=e.values.map(A=>A.map((I,N)=>I.type==="CASE_VALUE"?Kt(I.expr,{},a.get(e.fields[N])?.fieldType,se(r)):I));else{let A=await Tp.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(A.columns.length<e.fields.length||!I&&A.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${A.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(I&&new Set(A.columns).size!==A.columns.length)throw _e("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");WR(e,A.columns),c=A.rows,d=A.importPresence,u=A.importRowErrors;let N=A.columnMeta;p=new Map(A.columns.map(v=>{let b=N?.get(v),M=b?.fieldType??(b?.semantics?.compareMode==="number"||b?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,M]})),Gn(e,p),l=A.rows.map(v=>A.columns.map(b=>v[b]??""))}let f=l.map((A,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((N,v)=>d&&!d[I]?.has(N)?[]:[[N,A[v]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:c?.[I]??Object.fromEntries(e.fields.map((N,v)=>[N,Tt(A[v])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let A of e.keyFields)if(!e.fields.includes(A))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${A}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([A,I])=>[A,I.fieldType])),R=f.map(A=>e.keyFields.map(I=>Tt(A.payload.get(I)))),m=e.keyFields.map(A=>E.get(A)==="NUMBER"),y=new Map;for(let A of R){let I=fn(A,m);y.set(I,(y.get(I)??0)+1)}let g=Cr.has(e);if(g&&[...y.values()].some(A=>A>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let S=await uo(e.appId,e.keyFields,R,n,r,E);return f.forEach((A,I)=>{let N=R[I],v=lo(S,N);A.mode=v===void 0?"create":"update",v!==void 0&&(A.targetId=v),e.keyFields.forEach((b,M)=>{N[M]===""&&A.preErrors.push({field:b,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${b} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!g&&(y.get(fn(N,m))??0)>1&&A.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function Sp(e){return e.checkGroups?ur(e.checkGroups):[]}function WR(e,t){let n=new Set(t);for(let r of Sp(e)){if(r.tableAlias!==null)throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var Pw=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Gn(e,t){if(e.checkGroups)for(let n of Df(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(Pw.has(i??""))throw _e(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function Ow(e,t,n,r,i,o){if(e.from)return Dw(e,e.from,t,n,r,i,o);await ty(e.assignments,t,n,r);let a=await Ke(e.appId,t,r),s=Ym(e,a);Gn(e,Bc(a,e.appId));let l,c=new Map,d=new Map;if(Ia(e)){let u=Ql(e),p=[...new Set([...u.fields,...s,...o??[]])],f=await ut(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=As(f.records),c=d,l=eu(e,f.records,a,se(n)).flatMap(E=>E.records)}else{let u=si(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await ut(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=As(f.records),c=d,l=li(e,[...c.keys()],a).flatMap(E=>E.records)}else if(o){let p=await ut(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=As(p.records),l=li(e,[...d.keys()],a).flatMap(f=>f.records)}else{let p=await Ga(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=li(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((u,p)=>u.id-p.id).map((u,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:d.get(u.id),evaluationRow:vw(c.get(u.id),e.appId),evaluationFieldTypes:Bc(a,e.appId)}))}function As(e){let t=new Map;for(let n of e){let r=n.$id?.value,i=Number(r);if(!Number.isSafeInteger(i)||i<=0)throw new Error(`InternalError: invalid $id in UPDATE validation snapshot: ${String(r)}.`);if(t.has(i))throw new Error(`InternalError: duplicate $id in UPDATE validation snapshot: ${i}.`);t.set(i,n)}return t}async function Lw(e){let t=new Map;for(let n of e.candidates){if(n.targetId===void 0||!n.validationSnapshot)throw new Error(`InternalError: update-mode snapshot is missing for record ${String(n.targetId)}.`);if(t.has(n.targetId))throw new Error(`InternalError: duplicate UPDATE validation candidate target: ${n.targetId}.`);t.set(n.targetId,n.validationSnapshot)}return t}async function _w(e,t,n){let r=[...new Set(e.candidates.map(a=>{let s=a.targetId;if(!Number.isSafeInteger(s)||s===void 0||s<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(s)}.`);return s}))];if(r.length>n)throw new We(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of co(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let c=l.$id?.value,d=Number(c);if(!Number.isSafeInteger(d)||d<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(c)}.`);if(!i.has(d))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${d}.`);if(o.has(d))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${d}.`);o.set(d,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function Ym(e,t){if(e.from)return[];let n=new Set;for(let r of Sp(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw _e(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw _e(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function vw(e,t){if(!e)return{};let n=Bt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Bc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Dw(e,t,n,r,i,o,a){let s=await yy(e,t,n,i,o);Gn(e,s.evaluationTypes);let l=await jm(e,t,n,r,i,o,a),c=await Ke(e.appId,n,i),d=nu(e,l,c,se(r)).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?As(l.map(f=>f.target)):new Map;return d.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:p.get(f.id),evaluationRow:Gb(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var Uw=Ar,Mw=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function jm(e,t,n,r,i,o,a){if(t.cteName!==null){let I=o?.get(t.cteName),N=b=>Oe(b,I?.columns??[])??b;t.joinKeyField=N(t.joinKeyField);for(let b of e.assignments)b.value.type==="SOURCE_FIELD"&&b.value.alias===t.alias&&(b.value.field=N(b.value.field));let v=b=>{if(b===null||typeof b!="object")return;if(Array.isArray(b)){b.forEach(v);return}let M=b;M.type==="FIELD"&&M.tableAlias===t.alias&&typeof M.field=="string"&&(M.field=N(M.field)),Object.values(M).forEach(v)};v(e.checkGroups)}let s=await kw(e,t,n,i),l=await yy(e,t,n,i,o),c=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],d=[...new Set([t.joinKeyField,...c])],u=await xw(t,d,c,n,r,i,o),p=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let N=HR(I[t.joinKeyField],s,"source");if(p.has(N))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${N}.`);p.set(N,I),f.set(N,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...tb(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":si({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],g=new Set,S=0;for(let I of co([...f.values()],Uw)){let N=`${t.targetJoinField} in (${I.map(Zi).join(",")})`,v=m?`(${N}) and (${m})`:N,b=await ut(n.getRecords,e.appId,v,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=b.records.length,S>E)throw new We(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let M of b.records){let D=M.$id?.value;if(typeof D!="string"||D==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");g.has(D)||(g.add(D),y.push(M))}}let A=[];for(let I of y){let N=I[t.targetJoinField]?.value,v=HR(N,s,"target");if(v===null)continue;let b=p.get(v);b!==void 0&&A.push({target:I,source:b})}return A}async function kw(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await Q(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function xw(e,t,n,r,i,o,a){if(e.cteName!==null){let d=a?.get(e.cteName);if(!d)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(Nr(d,u)===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return d.rows}let s=await Ke(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let d of n){if(d!=="$id"&&!s.has(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);let u=d==="$id"?"RECORD_NUMBER":s.get(d);if(Mw.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${d}).`)}return(await ut(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(d=>Bt(d,null))}function HR(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=we(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function po(e,t,n,r,i){let o=await Ap(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new me(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(E=>E.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<u.length;p+=100)await t.putRecords({app:e.appId,records:u.slice(p,p+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),c=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),d=0;for(let u=0;u<l.length;u+=100){let p=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});d+=p.ids.length}for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPSERT",insertedCount:d,updatedCount:c.length}}async function Fw(e,t,n,r){if(e.applyBlocks?.length)return Iw(e,t,n,r);if(e.checkGroups?.length)return po(e,t,n,r);if(e.subtableCode)return ob(e,t,n,r);let i=await yt(e.appId,e.fields,t,r),o=await Yt(e.appId,e.fields,i,t,r),a=await Ke(e.appId,t,r),s=Ta(e,a,se(n));En(s.flatMap(c=>c.records),e.fields,i,o);let l=[];for(let c of s){let d=await t.postRecords(c);l.push(d.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function Kw(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Ce},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function zm(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=lR(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let x=new Set(e.targets.filter(K=>K.kind==="SUBTABLE").map(K=>K.subtableCode));if(e.replaceSubtables.some(K=>!x.has(K)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let K of e.targets.filter(j=>j.kind==="SUBTABLE"))if(!K.rowIdSourceHeader||!e.replaceSubtables.includes(K.subtableCode))throw new Error(`ArgumentError: CSV subtable ${K.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,p=await Q(e.appId,t,r),f=u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children),E=p.some(x=>f.includes(x.code)&&x.fieldType==="NUMBER")?await _t(e.appId,t,r):void 0,R=await ss(o,new Map),m=e.source.kind==="JSON"?fR(e.source,R,u,n.maxRecords??1e4):ER(e.source,R,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader);await Jc(n,e.source,m.receipt);let y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",g=gR(m,u,p,E,y);if(e.source.kind==="CSV")return Gw(e,m,g,p,t,n,i);lc(g,e.rejectLimit);let S=[...new Set(u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children))],A=cc(g.errors,S),I=[...S,...uc],N=g.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:g.parents.length,valid:g.parents.length-N,invalid:N,mutationCandidates:g.parents.filter(x=>x.valid).length},tables:Object.fromEntries(g.tableCounts),writesKintone:!1},b={type:"VALIDATION",operation:y,validatedRows:g.parents.length,validRows:g.parents.length-N,invalidRows:N,errorCount:A.length,columns:I,errors:A,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&Lt(i,e.validationErrorTable,I,A,n.tempTableMaxRows??nt,new Map),e.validateOnly)return b;if(AR(m),g.errors.length>0&&!e.onErrorSkip){let x=g.errors[0];throw new Error(`DmlValidationError: ${x.code} ${x.message} (row=${x.parentRow}, field=${x.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Lt(i,e.errorTable,I,A,n.tempTableMaxRows??nt,new Map)}let M=g.parents.filter(x=>x.valid),D=new Map(p.map(x=>[x.code,x.fieldType])),k=M.map(()=>{});if(e.keyFields){for(let G of e.keyFields)if(!e.fields.includes(G))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${G}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let x=e.keyFields.map(G=>D.get(G)==="NUMBER"),K=new Set,j=M.map(G=>e.keyFields.map(U=>String(G.top[U]?.value??"")));for(let G of j){let U=fn(G,x);if(K.has(U))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");K.add(U)}let $=await uo(e.appId,e.keyFields,j,t,n,D);j.forEach((G,U)=>{k[U]=lo($,G)})}let P=u.filter(x=>x.kind==="SUBTABLE").map(x=>x.subtableCode),O=new Map,C=k.filter(x=>x!==void 0);for(let x of co([...new Set(C)],100)){let K=await t.getRecords({app:e.appId,query:`$id in (${x.join(",")}) limit 500`,fields:["$id","$revision",...P]});for(let j of K.records){let $=Number(j.$id?.value),G=Number(j.$revision?.value);Number.isFinite($)&&O.set($,{id:$,...Number.isFinite(G)?{revision:G}:{},record:j})}}let h=SR(M,k,O),w={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:h.length,insertedParents:h.filter(x=>x.mode==="INSERT").length,updatedParents:h.filter(x=>x.mode==="UPDATE").length,hasDeletes:h.some(x=>x.tables.some(K=>K.deleteRows>0)),parents:h.map(x=>({parentRow:x.parentRow,mode:x.mode,...x.targetId===void 0?{}:{targetId:x.targetId},tables:x.tables}))};if(h.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(h.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new me(e.keyFields?"UPDATE":"INSERT",h.length)}let _=x=>new Map(Object.entries(x).map(([K,j])=>[K,j.value])),L=x=>hR(_(x.top),new Map([...x.subtables].map(([K,j])=>[K,j.map($=>({values:_($)}))]))),F=h.filter(x=>x.mode==="INSERT"),B=h.filter(x=>x.mode==="UPDATE"),V=[];for(let x=0;x<F.length;x+=100){let K=await t.postRecords({app:e.appId,records:F.slice(x,x+100).map(L)});V.push(K.ids)}for(let x=0;x<B.length;x+=100)await t.putRecords({app:e.appId,records:B.slice(x,x+100).map(K=>({id:K.targetId,...K.revision===void 0?{}:{revision:K.revision},record:L(K)}))});return e.keyFields?{type:"UPSERT",insertedCount:V.flat().length,updatedCount:B.length,affectedRows:h.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}:{type:"INSERT",createdIds:V,insertedCount:V.flat().length,affectedRows:h.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return $w(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:Kw(),validateOnly:e.validateOnly,validationErrorTable:e.validationErrorTable,onErrorSkip:e.onErrorSkip,errorTable:e.errorTable,rejectLimit:e.rejectLimit,checkGroups:e.checkGroups},s=e.keyFields?{type:"UPSERT_SELECT",...a,keyFields:e.keyFields}:{type:"INSERT_SELECT",...a},l={source:e.source,handle:o,cache:new Map};Cr.set(s,l);let c=u=>{l.audit&&Object.assign(u,{importAudit:l.audit});let p=Is.get(s);return p?.length&&Is.set(e,p),u};if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await hp(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&Lt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??nt,$n.get(u)??new Map),c(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",$c(s,t,n,r,i,1));return c(u)}let d=await(s.type==="UPSERT_SELECT"?Cp(s,t,n,r,i):Ip(s,t,n,r,i));return c(d)}async function Gw(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");TR(t.records);let s=t.records.map(O=>O.recordNumberSourceValue??""),l=fc(s,e.recordNumberSourceHeader),c=[...e.replaceSubtables],d=[...new Set(r.filter(O=>!O.inSubtable&&O.fieldType==="SUBTABLE").map(O=>O.code))],u=await Ge(i.getRecords,e.appId,"",["$id","$revision",...d],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let O of u){let C=Number(O.$id?.value),h=Number(O.$revision?.value);if(Number.isFinite(C)){p.set(C,{id:C,...Number.isFinite(h)?{revision:h}:{},record:O});for(let w of d){let _=O[w]?.value;if(Array.isArray(_)){for(let L of _)if(L.id){let F=f.get(L.id)??[];F.push({parentId:C,table:w}),f.set(L.id,F)}}}}}let E=l.normalized.map(O=>O===null?void 0:Number(O)),R=n.parents.map((O,C)=>{let h=[...O.errors];for(let _ of l.errors[C])h.push({operation:"UPDATE",parentRow:O.parentRow,field:_.field,code:_.code,message:_.message,sourceValues:t.records[C].top});let w=E[C];return w!==void 0&&!p.has(w)&&h.push({operation:"UPDATE",parentRow:O.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`,sourceValues:t.records[C].top}),{...O,valid:h.length===0,errors:h}}),m=IR(t.records,R,E,p,f),y=m.flatMap(O=>[...O.errors]),g=new Set(m.filter(O=>!O.valid).map(O=>O.parentRow)),S={...n,parents:R,errors:y,invalidParentRows:g};lc(S,e.rejectLimit);let A=m.filter(O=>O.valid),I=m.flatMap(O=>O.tables),N=(O,C)=>I.filter(h=>h.table===O).reduce((h,w)=>h+Number(w[C]),0),v=Object.fromEntries(c.map(O=>[O,{existingRows:N(O,"existingRows"),inputRows:N(O,"inputRows"),updateRows:N(O,"updateRows"),addRows:N(O,"addRows"),deleteRows:N(O,"deleteRows"),rowIdNotFound:N(O,"rowIdNotFound")}])),b={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:A.length,insertedParents:0,updatedParents:A.length,hasDeletes:A.some(O=>O.tables.some(C=>C.deleteRows>0)),totalDeleteRows:A.flatMap(O=>O.tables).reduce((O,C)=>O+C.deleteRows,0),rowIdNotFound:A.flatMap(O=>O.tables).reduce((O,C)=>O+C.rowIdNotFound,0),invalidParents:g.size,parents:A.map(O=>({parentRow:O.parentRow,mode:"UPDATE",targetId:O.targetId,tables:O.tables}))},M=[...new Set(e.targets.flatMap(O=>O.kind==="FIELD"?[O.field]:O.children))],D=cc(y,M),k=[...M,...uc];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&Lt(a,e.validationErrorTable,k,D,o.tempTableMaxRows??nt,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-g.size,invalidRows:g.size,errorCount:D.length,columns:k,errors:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:A.length,invalid:g.size,mutationCandidates:A.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:b.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let O=y[0];throw new Error(`DmlValidationError: ${O.code} ${O.message} (row=${O.parentRow}, field=${O.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Lt(a,e.errorTable,k,D,o.tempTableMaxRows??nt,new Map)}if(A.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(A.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:b}))throw new me("UPDATE",A.length)}let P=O=>new Map(Object.entries(O).map(([C,h])=>[C,h.value]));for(let O of A){let C=pc(P(O.top),new Map([...O.subtables].map(([h,w])=>[h,w.map(_=>({..._.rowId?{rowId:_.rowId}:{},values:P(_.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:O.targetId,...O.revision===void 0?{}:{revision:O.revision},record:C}]})}return{type:"UPDATE",updatedCount:A.length,affectedRows:A.length,skippedRows:g.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}async function $w(e,t,n,r,i,o){if(e.source.kind!=="CSV"||e.source.mappingMode!=="BY_NAME"||!e.recordNumberSourceHeader)throw new Error("InternalError: invalid IMPORT UPDATE AST.");if(new Set(e.fields).size!==e.fields.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let a=await yt(e.appId,e.fields,n,i),s=await Yt(e.appId,e.fields,a,n,i),l=await ss(t,new Map),c=oc(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader);await Jc(r,e.source,c.receipt);let d=c.recordNumberSourceValues;if(!d)throw new Error("InternalError: record-number source values were not materialized.");let u=fc(d,e.recordNumberSourceHeader),p=new Set,f=[...new Set(u.normalized.filter(b=>b!==null))];for(let b=0;b<f.length;b+=100){let M=f.slice(b,b+100),D=await n.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id"]});for(let k of D.records){let P=k.$id?.value;typeof P=="string"&&P!==""&&p.add(P.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(b=>[b.code,b])),R=new Map(e.fields.map(b=>[b,E.get(b)?.fieldType??"SINGLE_LINE_TEXT"])),m=c.rows.map((b,M)=>{let D=u.normalized[M],k=[...c.importRowErrors?.[M]??[],...u.errors[M]];return D!==null&&!p.has(D)&&k.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${D} does not exist in APP${e.appId}`}),{rowNumber:M+1,operation:"UPDATE",mode:"update",...D!==null&&p.has(D)?{targetId:Number(D)}:{},payload:new Map([[e.recordNumberSourceHeader,d[M]],...e.fields.map(P=>[P,b[P]??""])]),preErrors:k,record:{},evaluationRow:b,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],g=Ru(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),S=[...y,...pr],A={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-g.invalidRows,invalidRows:g.invalidRows,errorCount:g.errors.length,columns:S,errors:g.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(A,{importAudit:c.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&Lt(o,e.validationErrorTable,S,g.errors,r.tempTableMaxRows??nt,new Map),A}if(!e.onErrorSkip&&g.invalidRows>0){let b=g.errors[0];throw new Error(`DmlValidationError: ${b.$err_code} ${b.$err_message} (row=${b.$err_row}, field=${b.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(Lt(o,e.errorTable,S,g.errors,r.tempTableMaxRows??nt,new Map),e.rejectLimit!=null&&g.invalidRows>e.rejectLimit)throw new to(`rejected rows (${g.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let I=m.filter(b=>!g.invalidRowNumbers.has(b.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new me("UPDATE",I.length);let N=I.map(b=>({id:b.targetId,record:b.record}));for(let b=0;b<N.length;b+=100)await n.putRecords({app:e.appId,records:N.slice(b,b+100)});let v={type:"UPDATE",updatedCount:N.length,...e.onErrorSkip?{affectedRows:N.length,skippedRows:g.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:c.importAudit}),v}async function Bw(e,t,n,r,i,o){let a=Cr.get(e);if(!a){let R=i&&i.size>0?await mt(e.select,t,n,i,r,!0):await Ht(e.select,t,n,r,void 0,!0);return bR(e,R.warnings),{rows:R.rows,columns:R.columns,columnMeta:ce.get(R)}}let s=await ss(a.handle,a.cache),l=n.maxRecords??1e4,c=new Map((o??[]).map(R=>[R.code,R])),d=e.fields.map(R=>({code:R,fieldType:c.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?ic(a.source,s,d,l):oc(a.source,s,l,e.fields,o);if(await Jc(n,a.source,u.receipt),a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=wR(a.source.projection),f=new Map(i??[]);f.set(dc,u);let E=await mt(p,t,{...n,onLimitReached:"error"},f,r,!0);return bR(e,E.warnings),{rows:E.rows,columns:E.columns,columnMeta:ce.get(E)}}var Tp={materialize:Bw};function qm(e){for(let t=0;t<(e.importRowErrors?.length??0);t++){let n=e.importRowErrors?.[t]?.[0];if(n)throw new Error(`DmlValidationError: ${n.code} ${n.message} (row=${t+1}, field=${n.field})`)}}async function Ip(e,t,n,r,i){if(e.checkGroups?.length)return po(e,t,n,r,i);let o=await yt(e.appId,e.fields,t,r),a=await Yt(e.appId,e.fields,o,t,r),s=await Tp.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(qm(s),c.length!==e.fields.length){let f=c.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${c.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new me("INSERT",l.length);let d=await Ke(e.appId,t,r),u=l.map((f,E)=>{let R={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let g=f[c[y]]??"";R[m]={value:Wm(g,d.get(m))}}),R});u.forEach(f=>En([f],e.fields.filter(E=>E in f),o,a));let p=[];for(let f=0;f<u.length;f+=100){let E=u.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});p.push(R.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function Vc(e,t,n,r,i){if(e.applyBlocks?.length)return Jm(e,t,n,r);if(e.checkGroups?.length&&Rt(e.where)){let E=await yt(e.appId,e.assignments.map(m=>m.field),t,r);await Yt(e.appId,e.assignments.map(m=>m.field),E,t,r);let R=await Ke(e.appId,t,r);return Ym(e,R),Gn(e,Bc(R,e.appId)),await Tr(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return po(e,t,n,r,i);if(e.subtableCode)return await Tr(e,t,r),ab(e,t,n,r);let o=await yt(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await Yt(e.appId,a,o,t,r);if(await Tr(e,t,r),Rt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return eb(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await ty(e.assignments,t,n,r);let c=await Ke(e.appId,t,r);if(Ia(e)){let E=Ql(e),m=(await ut(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=eu(e,m,c,se(n));if(En(y.flatMap(g=>g.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new me("UPDATE",m.length);for(let g of y)await t.putRecords(g);return{type:"UPDATE",updatedCount:m.length}}let d=si(e),p=(await Ga(t.getRecords,d.app,d.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=li(e,p,c);if(En(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new me("UPDATE",p.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:p.length}}async function Jm(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Dt(e.where))return Vw(e,t,n,r,i);let o=await Q(e.appId,t,r),a=Gt(e,o),s=ba(e,o),l=lu(e),c=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(c.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(c.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let d=Number(c.records[0].$id?.value);if(d!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${d} does not match requested $id ${l}.`);Oa(c.records[0]);let u=Jf({statement:e,snapshot:c.records[0],fieldInfos:o,metadata:a,evaluationContext:se(n)}),p=It(o,e.assignments.map(I=>I.field)),f=bn(u.postImage,p)?await _t(e.appId,t,r):void 0,E=Nn(u.postImage,p,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=rt(n.dmlMaxRows,"dmlMaxRows",jt),m=rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),y=u.parentRows>R||u.changedSubtableRows>m;if(e.validateOnly){let I=gi({plans:[u],records:di(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),N={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:no(I.branches[0]),guards:ro(I.branches[0]),deletedRows:{total:u.tables.reduce((v,b)=>v+b.deletedRows,0),parentRows:u.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:I};return $n.set(N,Ks(E.columns,o,e.appId)),N}if(u.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${R}).`);if(u.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let g=Ca(u,E.normalizedRecord),S=di(g),A=gi({plans:[g],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let I=Fs(A,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:A}))throw new me("UPDATE",u.parentRows)}return await t.putRecords(S),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:Je(A,{successfulChunks:1,successfulParents:u.parentRows})}}async function Vw(e,t,n,r,i){let o=rt(n.dmlMaxRows,"dmlMaxRows",jt),a=rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),s=await Q(e.appId,t,r),l=Gt(e,s),c;if(Ls(e))c=await jw(e,t,n,s,r);else{let f=ba(e,s),E=si(e).query,R=o+1;c=await Ge(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&c.length>o)throw new Error(`ArgumentError: APPLY parent rows (${c.length}) exceed dmlMaxRows (${o}).`);let d=await Da({statement:e,snapshots:c,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>_t(e.appId,t,r)});if(e.validateOnly)return Qw(e,d,s);pd("phase15b",e);let u=gi(d);if(n.confirm){let f=Fs(u);if(!await n.confirm(d.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new me("UPDATE",d.guards.parentRows)}let p=await mE(d,t,u);return{...p,diagnostic:Je(u,p)}}function Ls(e){return(e.applyBlocks?.length??0)>0&&!Dt(e.where)&&(Qt(e.where)||Pe(e.where))}function Ww(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Ls(t)&&Pe(t.where)}var Hw=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
13
+ `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let d="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&Vt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){d+=E;continue}n>=e.length&&Vt("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
14
+ `,r:"\r",t:" "};if(R in m){d+=m[R];continue}R!=="u"&&Vt(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||Vt("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let g=Number.parseInt(y,16);if(g>=55296&&g<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Vt("has an unpaired high surrogate",n,r,i),o(),o();let S=e.slice(n,n+4);for(let I=0;I<4;I++)o();let A=Number.parseInt(S,16);(A<56320||A>57343)&&Vt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),d+=String.fromCodePoint(65536+(g-55296<<10)+A-56320)}else g>=56320&&g<=57343?Vt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):d+=String.fromCharCode(g)}f||Vt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:d,...l});continue}let c=e.slice(n),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(c)?.[0];if(p){for(let d=0;d<p.length;d++)o();t.push({kind:"number",lexeme:p,...l});continue}let u=/^(true|false|null)/.exec(c)?.[0];if(u){for(let d=0;d<u.length;d++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}Vt(`has an unexpected token ${JSON.stringify(s)}`,l.offset,l.line,l.column)}return t.push({kind:"eof",offset:n,line:r,column:i}),t}function us(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function cs(e){if(e.byteLength===0)throw new Y("JSON source is empty.");let t=pR(cR(e)),n=0,r=(c,p=t[n])=>{throw new Y(`JSON ${c} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(c,p)=>c.kind==="punct"&&c.value===p,o=c=>{let p=t[n];(p.kind!=="punct"||p.value!==c)&&r(`expected ${c}; found ${us(p)}`,p),n++},a=()=>{let c=t[n++];if(c.kind==="string")return c.value;if(c.kind==="number")return{kind:"number",lexeme:c.lexeme};if(c.kind==="literal")return c.value;if(c.kind==="punct"&&c.value==="{"){let p=new Map;if(i(t[n],"}"))return n++,p;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${us(u)}`,u);let d=u.value;p.has(d)&&r(`duplicate key ${JSON.stringify(d)}`,u),o(":"),p.set(d,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return p}if(c.kind==="punct"&&c.value==="["){let p=[];if(i(t[n],"]"))return n++,p;for(;;){p.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return p}return r(`expected a value; found ${us(c)}`,c)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${us(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new Y("JSON source contains no records.");return l.forEach((c,p)=>{if(!(c instanceof Map))throw new Y(`JSON record ${p+1} must be an object.`)}),l}var jT=new Set(["CHECK_BOX","MULTI_SELECT"]),dR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Ot(e,t,n){throw new Y(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function zT(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function qT(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&Ot(n,t.code,"boolean is not accepted."),zT(e)){t.fieldType==="NUMBER"&&Ot(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&Ot(n,t.code,`JSON number ${e.lexeme} must be a non-negative-zero safe integer lexeme.`);let i=Number(e.lexeme);return Number.isSafeInteger(i)||Ot(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&Ot(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||Ot(n,t.code,"unsupported value type."),!jT.has(t.fieldType)&&!dR.has(t.fieldType)&&Ot(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&Ot(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&Ot(n,t.code,"array elements must not contain duplicates."),dR.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function ic(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let i=cs(t.bytes);if(i.length>r)throw new Y(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new Y("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,c)=>{for(let d of l.keys())o.has(d)||Ot(c+1,d,"unknown key (not declared in INTO).");let p={},u=new Set;for(let d of n)l.has(d.code)&&(u.add(d.code),p[d.code]=qT(l.get(d.code),d,c+1));a.push(p),s.push(u)}),{receipt:{rows:i.length,encoding:"utf8"},rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function oc(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ls(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(s.rows.length>n)throw new Y(`source rows (${s.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new Y("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let c=new Map(s.columns.map((g,S)=>[g,S]));for(let g of r)if(!c.has(g))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${g}" is missing.`);let p=new Map(i.map(g=>[g.code,g])),u=new Set(r);if(o&&u.has(o))throw new Y("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!c.has(o))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let d=[],f=[],E=g=>s.rows.filter(S=>S[g]!=="").length,R=g=>g.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":g.inSubtable||g.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":g.writable===!1?`non-writable ${g.fieldType} field`:`known export-only ${g.fieldType} field`;for(let[g,S]of s.columns.entries()){if(u.has(S)||S===o)continue;let A=p.get(S);if(A)d.push({column:S,reason:R(A),nonEmptyCells:E(g)});else if(e.ignoreUnknownColumns)f.push({column:S,reason:"unknown column ignored by explicit policy",nonEmptyCells:E(g)});else throw new Y(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${S}".`)}for(let g of r){let S=p.get(g);if(!S)throw new Error(`ArgumentError: DML target field ${g} does not exist.`);if(S.inSubtable||S.writable===!1||S.fieldType==="FILE"||S.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${g} is not writable (${S.fieldType}).`)}let m=[],y=s.rows.map(g=>{let S=[],A={};for(let I of r){let N=g[c.get(I)];try{A[I]=uR(N,p.get(I)?.fieldType,{cliKintone:!0})}catch(v){if(!(v instanceof xi))throw v;A[I]=N,S.push({field:I,code:v.code,message:v.message})}}return m.push(S),A});return{receipt:{rows:s.rows.length,encoding:a},rows:y,columns:[...r],columnMeta:new Map(r.map(g=>[g,{fieldType:p.get(g)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:m,...o?{recordNumberSourceValues:s.rows.map(g=>g[c.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:d,ignoredUnknownColumns:f}}}let l=s.rows.map(c=>Object.fromEntries(s.columns.map((p,u)=>[p,c[u]])));return{receipt:{rows:s.rows.length,encoding:a},rows:l,columns:s.columns,columnMeta:new Map(s.columns.map(c=>[c,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Fi=(e,t,n)=>{throw new Y(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function fR(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let o=cs(t.bytes);if(o.length>r)throw new Y(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new Y("IMPORT targets contain duplicates.");let s=0;return{receipt:{rows:o.length,encoding:"utf8"},records:o.map((l,c)=>{let p=c+1;for(let E of l.keys())a.has(E)||Fi(p,E,"unknown key (not declared in INTO).");let u=new Map,d=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&Fi(p,R,"object is not accepted for a top-level field."),u.set(R,m);continue}Array.isArray(m)||Fi(p,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),g=m.map((S,A)=>{S instanceof Map||Fi(p,R,`childRow=${A+1} must be an object.`);let I=S;for(let N of I.keys())y.has(N)||Fi(p,N,`unknown child key in subtable ${R} at childRow=${A+1}.`);if(s++,s>i)throw new Y(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:A+1,values:I}});d.set(R,g)}return{rowNumber:p,top:u,subtables:d,replacementTables:f}})}}function ER(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ls(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||s.columns[0]!=="*")throw new Y('ERR_IMPORT_MARKER: first CSV header must be "*".');let l=new Map(s.columns.map((f,E)=>[f,E]));if(o&&!l.has(o))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let c=n.filter(f=>f.kind==="FIELD"),p=n.filter(f=>f.kind==="SUBTABLE");for(let f of c)if(!l.has(f.field))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${f.field}" is missing.`);for(let f of p){if(!f.rowIdSourceHeader||!l.has(f.rowIdSourceHeader))throw new Y(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${f.subtableCode} is missing.`);for(let E of f.children)if(!l.has(E))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required child header "${E}" is missing.`)}let u=[],d;if(s.rows.forEach((f,E)=>{let R=E+2,m=f[0];if(m!==""&&m!=="*")throw new Y(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(m)} at source row ${R}.`);if(m==="*"){if(u.length>=i)throw new Y(`source parent rows exceed maxRecords (${i}).`);d={rowNumber:u.length+1,markerRowNumber:R,top:new Map(c.map(y=>[y.field,f[l.get(y.field)]])),subtables:new Map(p.map(y=>[y.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:f[l.get(o)]}:{}},u.push(d)}else if(d){for(let y of c){let g=f[l.get(y.field)];if(g!==""&&g!==d.top.get(y.field))throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${y.field} at source row ${R}.`)}if(o){let y=f[l.get(o)];if(y!==""&&y!==d.recordNumberSourceValue)throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new Y(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let y of p){let g=f[l.get(y.rowIdSourceHeader)],S=new Map(y.children.map(I=>[I,f[l.get(I)]]));if(g===""&&[...S.values()].every(I=>I===""))continue;let A=d.subtables.get(y.subtableCode);A.push({childRowNumber:A.length+1,sourceRowNumber:R,...g?{rowId:g}:{},values:S})}}),u.length===0)throw new Y("CSV has no parent rows.");return{receipt:{rows:s.rows.length,encoding:a},records:u}}var JT=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),XT=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function lc(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function gR(e,t,n,r,i){let o=new Map(n.filter(d=>!d.inSubtable).map(d=>[d.code,d])),a=new Map;for(let d of n)if(d.inSubtable&&d.subtableCode){let f=a.get(d.subtableCode);f||a.set(d.subtableCode,f=new Map),f.set(d.code,d)}let s=t.filter(d=>d.kind==="FIELD"),l=t.filter(d=>d.kind==="SUBTABLE");for(let d of s)RR(d.field,o.get(d.field),void 0);for(let d of l){let f=o.get(d.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${d.subtableCode} does not exist.`);let E=a.get(d.subtableCode)??new Map;for(let R of d.children)RR(R,E.get(R),d.subtableCode)}let c=new Map(l.map(d=>[d.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(d=>QT(d,s,l,o,a,r,i,c)),u=p.flatMap(d=>[...d.errors]);return{parents:p,errors:u,invalidParentRows:new Set(p.filter(d=>!d.valid).map(d=>d.parentRow)),tableCounts:c}}function QT(e,t,n,r,i,o,a,s){let l=[],c={};for(let d of t)e.top.has(d.field)&&sc(e.top.get(d.field),r.get(d.field),o,c,d.field,l,ac(e,a,d.field));let p={};if(a==="INSERT")for(let d of r.values())d.fieldType==="SUBTABLE"||d.writable===!1||e.top.has(d.code)||mR(d,o,p,l,ac(e,a,d.code));let u=new Map;for(let d of n){if(!e.subtables.has(d.subtableCode))continue;let f=s.get(d.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(d.subtableCode)){f.childRows++;let m=l.length,y={},g=i.get(d.subtableCode);for(let S of d.children){let A=g.get(S),I=ac(e,a,S,d.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(S)?sc(R.values.get(S),A,o,y,S,l,I):mR(A,o,y,l,I)}l.length===m?(f.validChildRows++,E.push(y)):f.invalidChildRows++}u.set(d.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:c,subtables:u,replacementTables:e.replacementTables,errors:l}}function RR(e,t,n){if(!t)throw new Error(n?`ArgumentError: IMPORT child ${e} does not belong to subtable ${n}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||n&&XT.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function mR(e,t,n,r,i){let o=wn(e.defaultValue)?"":e.defaultValue;sc(o,e,t,n,e.code,r,i,!wn(e.defaultValue))}function sc(e,t,n,r,i,o,a,s=!1){let l=ZT(e),c=Ye(l,t,n);c.ok?r[i]={value:eI(l,t)?l:c.value}:o.push({...a,code:c.code,message:s?`\u65E2\u5B9A\u5024: ${c.message}`:c.message})}function ZT(e){return yR(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:yR(t)?t.lexeme:t):e}function yR(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function eI(e,t){return JT.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function ac(e,t,n,r,i,o){let a=o??e.markerRowNumber;return{operation:t,parentRow:e.rowNumber,field:n,...r?{subtable:r}:{},...i==null?{}:{subrow:i},...a==null?{}:{sourceRow:a},sourceValues:r?e.subtables.get(r)?.[i-1]?.values??new Map:e.top}}var uc=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function cc(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":tI(r.sourceValues.get(o));return i.$err_statement=String(n),i.$err_operation=r.operation,i.$err_row=String(r.parentRow),i.$err_field=r.field,i.$err_subtable=r.subtable??"",i.$err_subrow=r.subrow==null?"":String(r.subrow),i.$err_source_row=r.sourceRow==null?null:String(r.sourceRow),i.$err_code=r.code,i.$err_message=r.message,i})}function tI(e){return e==null?"":typeof e=="object"&&e!==null&&"kind"in e&&"lexeme"in e&&e.kind==="number"?String(e.lexeme):Array.isArray(e)?JSON.stringify(e):String(e)}function pc(e,t,n){let r={};for(let[i,o]of e)r[i]={value:o};for(let[i,o]of t)r[i]={value:o.map(a=>({...n==="PRESERVE"&&a.rowId?{id:a.rowId}:{},value:Object.fromEntries([...a.values].map(([s,l])=>[s,{value:l}]))}))};return r}function hR(e,t){return pc(e,t,"DROP")}function AR(e){for(let t of e.records)for(let[n,r]of t.subtables)for(let i of r)if(i.rowId!==void 0||i.values.has("_rid")||i.values.has("id"))throw new Error(`ArgumentError: JSON IMPORT subtable ${n} does not accept _rid/id; rows are always newly numbered.`)}function SR(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,c])=>{let p=a?.record[l]?.value,u=Array.isArray(p)?p.length:0;return{table:l,existingRows:u,inputRows:c.length,addRows:c.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function nI(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function TR(e){let t=new Map;for(let n of e)for(let[r,i]of n.subtables)for(let o of i){if(!o.rowId)continue;let a=`${r}\0${o.rowId}`;if(t.has(a))throw new Error(`ERR_SUBTABLE_ROW_ID_DUP_SOURCE: duplicate row ID ${o.rowId} in ${r}`);t.set(a,n.rowNumber)}}function IR(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],c=l===void 0?void 0:r.get(l),p=[...o.errors];if(!c||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let u=new Map,d=[];for(let f of o.replacementTables){let E=nI(c.record,f),R=new Set(E.map(N=>N.id).filter(N=>!!N)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],g=0,S=0,A=0,I=m.map((N,v)=>{let b=y[v]??{};return N.rowId&&R.has(N.rowId)?(g++,{rowId:N.rowId,record:b}):(N.rowId&&((i.get(N.rowId)??[]).some(D=>D.parentId!==l||D.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:N.rowId,subtable:f,subrow:N.childRowNumber,sourceRow:N.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${N.rowId}`,sourceValues:N.values}),A++),S++,{record:b})});u.set(f,I),d.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:g,addRows:S,deleteRows:E.length-g,rowIdNotFound:A})}return{parentRow:o.parentRow,targetId:l,...c.revision===void 0?{}:{revision:c.revision},valid:p.length===0,top:o.top,subtables:u,tables:d,errors:p}})}var dc="#__import_source";function wR(e){return{...e,from:{appId:0,alias:null,cteName:dc}}}function rI(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function fc(e,t){let n=e.map(rI),r=new Set;for(let i of n)if(i!==null){if(r.has(i))throw new Error("ERR_RECORD_NUMBER_DUP_SOURCE: source contains a duplicate record number");r.add(i)}return{normalized:n,errors:n.map(i=>i===null?[{field:t,code:"ERR_RECORD_NUMBER_INVALID",message:`${t} must be a non-empty ASCII decimal record number`}]:[])}}var iI="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",Fn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}};function Cr(e,t){return e?.columns.includes(t)?t:void 0}function Ne(e,t){let n=Cr(e,t);return n===void 0?void 0:e?.columnMeta?.get(n)}var ce=new WeakMap;function QR(e){return ce.get(e)}var Bn=new WeakMap,Pr=new WeakMap,Is=new WeakMap;function bR(e,t){t?.length&&Is.set(e,[...new Set(t)])}function hr(e,t){let n=Is.get(e);return{result:t,...n?.length?{warnings:n}:{}}}var Ic=Symbol("statementEvaluationContext"),oI=Symbol("importSourceMaterializedCallback"),ZR=Symbol("nativeUpsertExecution"),aI=Symbol("nativeUpsertExplainCapability"),sI=Symbol("batchCompletionObserver");function em(e){return e[ZR]===!0}function lI(e){return ZR in e}function uI(e){return e[aI]}function tm(e){return e[Ic]?e:{...e,[Ic]:{statementInstant:new Date}}}function se(e){return e[Ic]??{}}async function Jc(e,t,n){let r=e[oI];r&&await r({name:t.sourceName,kind:t.kind,...n})}var NR=new WeakMap,cI=1,pI=1;function nm(e,t){if(t)return t;let n=NR.get(e);return n||(n=`client:${cI++}`,NR.set(e,n)),n}function Xc(e){return`${e}\0inv:${pI++}`}async function Qc(e,t,n={}){Nt(n);let r=Date.now(),i=Xc(nm(t,n.cacheContext));try{let o=fb(e,n.enableImport===!0),a=rm(),s=om(t,a),l={aborted:!1},c=ep(s,l,!fI(o)||Nu(o)),p=await wc(o,c,n,i);a.elapsedMs=Date.now()-r;let u={...am(p,l),metrics:a};if(p.type==="SELECT"){let d=ce.get(p);d&&ce.set(u,d)}return u}finally{yp(i)}}function rm(){return{getCalls:0,postCalls:0,putCalls:0,nativeUpsertCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,limitReached:!1,limitReachedApps:[],elapsedMs:0}}var im=Symbol("limitMetricsSink");function Zc(e,t){let n=e[im];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function om(e,t){let n={[im]:t,getRecords:async r=>{t.getCalls+=1;let i=await e.getRecords(r);return t.fetchedRows+=i.records.length,i},openCursor:async r=>{t.cursorCreateCalls+=1;let i;try{i=await e.openCursor(r)}catch(s){throw s instanceof Error&&s.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),s}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let o=!1,a=()=>{o||(o=!0,t.cursorActiveCurrent-=1)};return{totalCount:i.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let s=await i.nextPage();return t.cursorRecordsScanned+=s.records.length,s.next||a(),s},close:async()=>{o||(t.cursorDeleteCalls+=1);try{await i.close(),a()}catch(s){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,s}}}},postRecords:r=>(t.postCalls+=1,e.postRecords(r)),putRecords:r=>(t.putCalls+=1,e.putRecords(r)),deleteRecords:r=>(t.deleteCalls+=1,e.deleteRecords(r)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:r=>(t.fieldCalls+=1,e.getFields(r)),getNumberPrecision:r=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(r)),getProcessStatuses:r=>(t.processStatusCalls+=1,e.getProcessStatuses(r))};return Rp(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var CR=Symbol("searchAbortFailClosed");function ep(e,t,n){return n&&e[CR]?e:{...e,...n?{[CR]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new Fn;return i}}}function dI(e){let t=new Set;return{client:{...e,openCursor:async n=>{let r=await e.openCursor(n);t.add(r);let i=()=>t.delete(r);return{totalCount:r.totalCount,async nextPage(){let o=await r.nextPage();return o.next||i(),o},async close(){try{await r.close()}finally{i()}}}}},closeActive:async()=>{await Promise.all([...t].map(n=>n.close().catch(()=>{})))}}}function fI(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function am(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(iI),{...e,warnings:[...n]}}async function PR(e,t,n){let r=await ao(e,t,n);return nc(r),r}async function ao(e,t,n){return aR(e,{select:async r=>{let{resolver:i}=await Mn(r,t,n);return Te(r.where,i)},dml:r=>hm(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Mn(r,t,n);return rc(r,i)},joinServerFunctionPlan:async r=>{await Mn(r,t,n);let i=await Us(r,t,n),o=Ds(r,i);return o===null?null:(yr(o.joinPlan)&&sp.set(r,o),o.joinPlan)}})}async function wc(e,t,n,r){n=tm(n);let i=await ao(e,t,r);e.type!=="EXPLAIN"&&nc(i);let o=Nc(e);if(o!==null&&!Ww(e))throw new Error(Rs(o,"in a batch"));if(Qn("phase15b",e),_o("phase15b",e),st(e),e.type!=="EXPLAIN"&&await OI(e,t,r),e.type==="IMPORT")return zm(e,t,n,r);if(e.type==="UPDATE"&&e.applyBlocks?.length){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Vc(e,t,n,r)}if("validateOnly"in e&&e.validateOnly===!0){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return hp(e,t,{...n,onLimitReached:"error"},r,void 0,1)}if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");switch(e.type){case"VALIDATE":return EI(e,t,n,r);case"SELECT":return Ht(vc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Dm(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return dp(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Fw(e,t,n,r);case"INSERT_SELECT":return Ip(e,t,n,r);case"UPSERT":return ib(e,t,n,r);case"UPSERT_SELECT":return Cp(e,t,n,r);case"UPDATE":return Vc(e,t,n,r);case"DELETE":return nb(e,t,n,r);case"REORDER":return cb(e,t,n,r);case"SHOW_APPS":return Qm(t);case"DESCRIBE":return Zm(e,t,r);case"EXPLAIN":return Sb(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?rt(n.dmlMaxRows,"dmlMaxRows",jt):jt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve):ve,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,n.resolveMetadata!==!1,lI(n)?{surface:"CLI",enableNativeUpsert:em(n),clientHasNativeUpsert:uI(n)??Rp(t)}:{surface:"DOCUMENT_ONLY"});case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return pm(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var tp=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],np=["$id","$err_subtable","$err_field","$err_code","$err_count"];function rp(e){let t=[],n=new Set,r=o=>{n.has(o)||(n.add(o),t.push(o))},i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;a.type==="FIELD"&&typeof a.field=="string"&&r(a.field),a.type==="FIELD_REF"&&typeof a.field=="string"&&r(a.field),Object.values(a).forEach(i)};return i(e),t}function sm(e=!1){let t=e?np:tp;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:W(n==="$id"||n==="$err_count"?"number":"string")}]))}async function EI(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return lm(e,t,n,r)}async function lm(e,t,n,r){let i=await Q(e.appId,t,r),o=new Map(i.filter(L=>!L.inSubtable).map(L=>[L.code,L])),a=new Set(i.filter(L=>L.inSubtable).map(L=>L.code)),s=hu(e,i),l=new Set(s.flatMap(L=>yu(L.field))),c={present:mu.filter(L=>l.has(L)),absent:mu.filter(L=>!l.has(L))},p=e.checkGroups??[],u=cr(p);for(let L of u){if(L.field!=="$id"&&!o.has(L.field)&&!a.has(L.field))throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!o.has(L.field)&&a.has(L.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let d=new Map([...o].map(([L,F])=>[L,F.fieldType]));d.set("$id","RECORD_NUMBER"),$n(e,d);let f=rp(e.where),E=[...new Set(["$id",...s.map(L=>L.subtableCode??L.field.code),...f,...u.map(L=>L.field)])];for(let L of f){if(L!=="$id"&&!o.has(L)&&!a.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${e.appId}.`);if(L!=="$id"&&!o.has(L)&&a.has(L))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(L=>L.field.fieldType==="NUMBER")?await _t(e.appId,t,r):void 0,m=L=>L.field==="$id"?te({fieldType:"__ID__"}):o.get(L.field)?.semantics??(o.has(L.field)?te(o.get(L.field)):void 0),y=Te(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${kn(y)}).`);let g=new Map([...o].map(([L,F])=>[L,F.fieldType])),S=new Map([...o.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),A=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:Nl(e.where,{allowUnqualifiedFields:!0,fieldTypes:g,fieldOptions:S,allowKlike:!1}),I=A===null?"":z(A),v=(await Ge(t.getRecords,e.appId,I,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(L=>({id:String(L.$id?.value??""),record:L,flat:Bt(L,null)})).filter(L=>e.where===null||le(e.where,L.flat,F=>d.get(F.field),void 0,void 0,se(n))),b=[],M=new Map,D=new Map,k=new Set,P=0,O=L=>{if(k.add(L.id),P+=1,e.summary){let V=JSON.stringify([L.id,L.subtable??"",L.field,L.code]),x=D.get(V);x?x.$err_count=String(Number(x.$err_count)+1):D.set(V,{$id:L.id,$err_subtable:L.subtable??"",$err_field:L.field,$err_code:L.code,$err_count:"1"});return}let F=JSON.stringify([L.id,L.subtable??"",L.field,L.code,L.message]),B=M.get(F);B?(B.$err_count=String(Number(B.$err_count)+1),L.subrow!==void 0&&(B.$err_subrow=`${B.$err_subrow},${L.subrow}`,B.$err_subrow_id=`${B.$err_subrow_id},${L.subrowId??""}`)):M.set(F,{$id:L.id,$err_field:L.field,$err_code:L.code,$err_message:L.message,$err_value:L.value,$err_subtable:L.subtable??"",$err_subrow:L.subrow===void 0?"":String(L.subrow),$err_subrow_id:L.subrowId??"",$err_count:"1"})},C=s.filter(L=>!L.subtableCode),h=new Map;for(let L of s){if(!L.subtableCode)continue;let F=h.get(L.subtableCode)??[];F.push(L),h.set(L.subtableCode,F)}for(let L of v){for(let F of C){let B=L.record[F.field.code]?.value,V=Ye(B,F.field,R);V.ok||O({id:L.id,field:F.field.code,code:V.code,message:V.message,value:Ri(B,F.field.fieldType)})}for(let[F,B]of h){let V=L.record[F]?.value;if(Array.isArray(V))for(let x=0;x<V.length;x++){let K=V[x];for(let j of B){let $=K.value?.[j.field.code]?.value,G=Ye($,j.field,R);if(!G.ok){let U=va(F,x,K);O({id:L.id,field:j.field.code,code:G.code,message:G.message,value:Ri($,j.field.fieldType),...U})}}}}for(let F of ha(p,L.flat,B=>d.get(B.field)))O({id:L.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)b.push(...D.values());else for(let L of M.values()){let F=Number(L.$err_count);L.$err_subtable!==""&&F>=2&&(L.$err_message=`${L.$err_message}\uFF08${F}\u884C: ${L.$err_subrow}\uFF09`),b.push(L)}let _={type:"SELECT",columns:[...e.summary?np:tp],rows:b,rowCount:b.length,validateStats:{errorRecords:k.size,errorCount:P,constraintMetadata:c}};return ce.set(_,sm(e.summary===!0)),_}var nt=1e4;function Lt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,c)=>l!==n[c])||!RI(a.columnMeta,o)))throw new Error(`ArgumentError: validation error table ${t} has a different schema.`);let s=a?.rows??[];if(s.length+r.length>i)throw new Error(`ArgumentError: temp table ${t} exceeds max rows (${i}).`);e.set(t,{columns:[...n],rows:[...s,...r],columnMeta:o})}function RI(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.displayName!==r.displayName||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!Ho(i.semantics,r.semantics))return!1}return!0}var Tr=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function um(e,t,n={}){let r=Fl(n.asOf??new Date,n.timezone);Nt(n);let{statements:i,meta:o}=qu(e,{import:n.enableImport===!0}),a=o.dialect===1&&i.some(Xu)?[ZE]:[],s=$l(i);if(i.forEach(m=>_o("phase15b",m)),n.allowApplyMutation!==!0&&i.some(m=>ll(m)||m.type==="UPSERT"&&mI(m)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let l=bu(i,n.variables),c=cm(i,l),p={...n,variables:l};if(n.continueOnError&&s.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let m of s.statements){if(!m.isDml||m.tempTablesReferenced.length===0||m.statementType==="INSERT_SELECT"||m.statementType==="UPSERT_SELECT")continue;let y=i[m.index];if(!(y?.type==="UPDATE"&&y.from?.cteName!=null))throw new ie(`ArgumentError: temp table references in ${m.statementType} are not supported yet.`,m.index)}let u=rm(),d=om(t,u),f=Date.now(),E=n.timeoutMs!=null?f+n.timeoutMs:null,R=Xc(nm(t,n.cacheContext));try{let m=new Map,y=new Map;for(let[b,M]of Object.entries(r.values))y.set(Zr(b),{type:"string",value:M});let g=[],S=new Set,A=null;for(let b=0;b<i.length;b++){let M=s.statements[b],D={index:b,type:M.statementType};if(A){g.push({...D,status:"skipped",skippedReason:A}),A!=="exit"&&S.add(b);continue}let k=M.dependsOn.find(P=>S.has(P));if(k!==void 0){let P=s.statements[k].tempTablesCreated[0]??`statement ${k}`;g.push({...D,status:"skipped",skippedReason:`dependency: ${P}`}),S.add(b);continue}if(E!==null&&Date.now()>=E){g.push({...D,status:"skipped",skippedReason:"timeout"}),S.add(b),A="timeout";continue}try{let P=E!==null?E-Date.now():null,O=p.confirm,C=O?{...p,confirm:(K,j,$)=>O(K,j,{statementIndex:b,statementCount:i.length,statementType:M.statementType,targetAppId:M.targetAppId,...$?.importDetail?{importDetail:$.importDetail}:{},...$?.applyDetail?{applyDetail:$.applyDetail}:{},...$?.applyDiagnostic?{applyDiagnostic:$.applyDiagnostic}:{}})}:p,h={aborted:!1},w=ep(d,h,M.statementType!=="SELECT"&&M.statementType!=="UNION"&&M.statementType!=="WITH"||Nu(i[b])),_=dI(w),L=tm(C),F={stmt:i[b],info:M,client:_.client,options:L,cacheContext:R,tempTables:m,variables:y,relativeDateVariables:c,clock:se(L),dialect:o.dialect},B=await hI(yI(F),P,_.closeActive);B.result&&(B.result=am(B.result,h),a.length>0&&Xu(i[b])&&B.result.type==="SELECT"&&(B.result=vs(B.result,a)));let{exitTriggered:V,...x}=B;g.push({...D,status:"success",...x}),V&&(A="exit")}catch(P){g.push({...D,status:"error",error:AI(P),...P instanceof to?{result:P.diagnostic}:{}}),S.add(b),P instanceof Tr?A="timeout":P instanceof qi?A="assertion":M.statementType==="SET_VARIABLE"||M.statementType==="DECLARE_VARIABLE"?A="fail-fast":n.continueOnError||(A="fail-fast")}}u.elapsedMs=Date.now()-f;let I=[...new Set([...a,...g.flatMap(b=>b.warnings??[])])],N={ok:g.every(b=>b.status==="success"||b.skippedReason==="exit"),statementCount:i.length,statements:g,analysis:s,metrics:u,...I.length>0?{warnings:I}:{}},v=n[sI];if(v)try{v({result:N,tempTables:m})}catch{}return N}finally{yp(R)}}function mI(e){return e.type==="UPDATE"||e.type==="INSERT"?e.validateOnly!==!0&&!!e.applyBlocks?.length:e.type==="UPSERT"&&e.validateOnly!==!0&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)}async function yI(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:c,dialect:p}=e;if(t.type==="SET_VARIABLE"){let f=ws(t,s);if(st(f),await PR(f,r,o),f.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:f.expr.elements.map(E=>({type:"string",value:E.value}))});else if(f.expr.type==="SCALAR_SUBQUERY")try{let E=await Em(f.expr.query,r,i,o,a),R=await fm(f.expr.query,r,o,a),m=R?Number(E):Number.NaN;s.set(t.name,R&&Number.isFinite(m)?{type:"number",value:m,raw:E}:{type:"string",value:E})}catch(E){throw E instanceof Un?new Error(`ArgumentError: ${E.message}`):E}else s.set(t.name,OR(f.expr,c));return{}}if(t.type==="DECLARE_VARIABLE"){if(t.annotation==="RELATIVE_DATE")return s.set(t.name,{type:"relative-date",value:l.get(t.name)}),{};let f=i.variables??{};if(Object.prototype.hasOwnProperty.call(f,t.name))s.set(t.name,{type:"string",value:f[t.name]});else{let E=OR(t.default,c);s.set(t.name,{type:"string",value:E.type==="number"?E.raw??String(E.value):E.value})}return{}}let u=ws(t,s);if(Qn("phase15b",u),_o("phase15b",u),st(u),p===1&&(u.type==="INSERT"||u.type==="UPDATE"||u.type==="DELETE")&&u.subtableCode)throw new Error("ArgumentError: dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(p===1&&(u.type==="UPSERT"||u.type==="UPSERT_SELECT")){let f=Ju(u)[0];if(f)throw new Error(`ArgumentError: ${f.message}`);let E=await Q(u.appId,r,o),R=Ju(u,E)[0];if(R)throw new Error(`ArgumentError: ${R.message}`)}if(await PR(u,r,o),u.type==="VALIDATE"){let f=await lm(u,r,{...i,onLimitReached:"error"},o);return u.errorTable&&Lt(a,u.errorTable,f.columns,f.rows,i.tempTableMaxRows??nt,ce.get(f)??sm(u.summary===!0)),{result:f}}if(u.type==="IMPORT"){let f=await zm(u,r,i,o,a);return hr(u,f)}if("validateOnly"in u&&u.validateOnly===!0){let f=await hp(u,r,{...i,onLimitReached:"error"},o,a,n.index+1);return u.validationErrorTable&&Lt(a,u.validationErrorTable,f.columns,f.errors,i.tempTableMaxRows??nt,Bn.get(f)??new Map),hr(u,f)}if("onErrorSkip"in u&&u.onErrorSkip===!0){let f=await $c(u,r,{...i,onLimitReached:"error"},o,a,n.index+1);return hr(u,f)}if(u.type==="CREATE_TEMP_TABLE"){let f={...i,maxRecords:i.tempTableMaxRows??nt,onLimitReached:"error"},E=await gI(u.query,r,f,o,a);return a.set(u.name,{rows:E.rows,columns:E.columns,columnMeta:ce.get(E)}),{tempTable:u.name,rowCount:E.rows.length,...E.warnings?.length?{warnings:[...E.warnings]}:{}}}if(t.type==="DROP_TEMP_TABLE")return a.delete(t.name),{tempTable:t.name};if(t.type==="EXPLAIN"){let f=u;qc.set(f,a);try{return{result:await wc(f,r,i,o)}}finally{qc.delete(f)}}if(u.type==="ASSERT"){let f=await pm(u,r,i,o,a);return f.warning!==void 0?{result:f}:{}}if(u.type==="EXIT"){let f=await bI(u,r,i,o,a);return{result:f,...f.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(u.type==="SELECT"||u.type==="UNION")return{result:await mt(u,r,i,a,o,i.captureColumnMeta===!0)};if(u.type==="WITH")return{result:await dp(u,r,i,o,a)};if(u.type==="INSERT_SELECT"){let f=await Ip(u,r,i,o,a);return hr(u,f)}if(u.type==="UPSERT_SELECT"){let f=await Cp(u,r,i,o,a);return hr(u,f)}if(u.type==="UPDATE"&&u.from?.cteName!=null)return{result:await Vc(u,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}let d=await wc(u,r,i,o);return hr(u,d)}async function gI(e,t,n,r,i){return e.type==="WITH"?dp(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function hI(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Tr;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(c=>{l=setTimeout(c,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Tr)})()},t)})])}catch(a){throw a instanceof Tr&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function AI(e){let t;if(e instanceof bt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Ec(e.message),message:e.message};else if(e!==null&&typeof e=="object"){let n=e,r=typeof n.message=="string"&&n.message.length>0?n.message:SI(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Ec(r),message:r}}else{let n=String(e);t={code:Ec(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Ec(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function SI(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function TI(e,t=!1,n=!1){let r=new sn(e).tokenize();return new ln(r,{import:t,dialect1:n}).parseStatements()}function II(e,t){try{let n=TI(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function cm(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?II(r.name,t[r.name]):r.default);return n}function OR(e,t={}){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:q(e)};case"KINTONE_FUNC":return{type:"string",value:vf(e.name,t)};case"STRING_FUNC":return{type:"string",value:he(e,{},void 0,void 0,t)};case"ARITH":{let n=Ee(e,{},t);if(!Number.isFinite(n))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:n,raw:String(n)}}case"VARIABLE":throw new Error(`InternalError: unresolved variable @${e.name} reached scalar evaluation.`)}}function ws(e,t){return bc(e,t,!1)}function Rs(e,t){return lr(e)===null?`ParseError: variable @${e} is not defined ${t}.`:"ParseError: @NOW() \u306A\u3069\u306E as-of \u95A2\u6570\u306F\u57FA\u6E96\u6642\u523B\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"}function bc(e,t,n){if(Array.isArray(e))return e.map(r=>bc(r,t,!1));if(e!==null&&typeof e=="object"){let r=e;if(r.type==="VARIABLE"&&typeof r.name=="string"){let a=t.get(r.name);if(a===void 0)throw new Error(Rs(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&a.placeholder===!0))throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`:a.raw??String(a.value)}:{type:"STRING",value:a.value,fromVariable:!0}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&(typeof r.alias=="string"||r.alias===null)){let a=t.get(r.name);if(a===void 0)throw new Error(Rs(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,bc(s,t,a==="left"||a==="right"?r.type==="AGG_ARITH"?"AGG_ARITH":r.type==="ARITH"||r.type==="SCALAR_ARITH"?"ARITH":!1:!1)]));if(typeof r.aliasDisplay=="string"&&(i.aliasDisplay=r.aliasDisplay),i.type==="BINARY"){let a=i.right;if(a?.type==="VARIABLE_IN_LIST"&&typeof a.name=="string"){let s=t.get(a.name);if(s===void 0)throw new Error(Rs(a.name,"in this batch"));if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=wI(i);if(o.type==="SELECT"&&Ze(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Ze(o.where,!0))throw new Error("ArgumentError: empty-array simplification makes the target WHERE always true; use an explicit safe target condition.");return o}return e}function Ze(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function wI(e){if(e.type==="NOT"&&Ze(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Ze(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Ze(t,!1)||Ze(n,!1))return{type:"BOOLEAN",value:!1};if(Ze(t,!0))return n;if(Ze(n,!0))return t}else if(e.op==="OR"){if(Ze(t,!0)||Ze(n,!0))return{type:"BOOLEAN",value:!0};if(Ze(t,!1))return n;if(Ze(n,!1))return t}}return e}function Nc(e){if(Array.isArray(e)){for(let t of e){let n=Nc(t);if(n!==null)return n}return null}if(e!==null&&typeof e=="object"){let t=e;if((t.type==="VARIABLE"||t.type==="VARIABLE_COL"||t.type==="VARIABLE_IN_LIST")&&typeof t.name=="string")return t.name;for(let n of Object.values(t)){let r=Nc(n);if(r!==null)return r}}return null}var qi=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Un=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function pm(e,t,n,r,i){let o=await dm(e,t,n,r,i);if(!o.passed){if(e.warn===!0)return{type:"ASSERT",condition:e.text,passed:!1,warning:e.message??`assertion failed: ${e.text} (actual: ${o.actual}).`};let a=e.message!==void 0?` ${e.message}`:"";throw new qi(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function bI(e,t,n,r,i){let o=await dm(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function dm(e,t,n,r,i){let o=await ps(e.left,t,n,r,i);if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await ps(e.low,t,n,r,i),c=await ps(e.high,t,n,r,i);return{passed:xt(">=",o.value,l.value,Rc(o,l))&&xt("<=",o.value,c.value,Rc(o,c)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await ps(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?W("number"):W("string"):Rc(o,a);return{passed:xt(e.op,o.value,a.value,s),actual:o.value}}function Rc(e,t){return W(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function ps(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:q(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(Cc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await Em(e.query,t,n,r,i),a=await fm(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof Un?new qi(o.message):o}}}async function fm(e,t,n,r){let i=e.columns[0],o=i?.type==="ARITH_COL"||i?.type==="ARITH_AGG_COL"||i?.type==="WINDOW_COL"&&(i.windowKind===void 0||i.windowKind==="RANKING"||i.windowKind==="AGGREGATE"&&(i.aggFunc==="COUNT"||i.aggFunc==="SUM"||i.aggFunc==="AVG"))||i?.type==="AGGREGATE"&&(i.func==="COUNT"||i.func==="SUM"||i.func==="AVG"||i.func==="STDDEV_POP"||i.func==="STDDEV_SAMP"||i.func==="VAR_POP"||i.func==="VAR_SAMP"||i.func==="MEDIAN");if(i?.type==="AGGREGATE"&&i.func==="MODE"||i?.type==="WINDOW_COL"&&i.windowKind==="VALUE"||i?.type==="WINDOW_COL"&&i.windowKind==="AGGREGATE"&&(i.aggFunc==="MIN"||i.aggFunc==="MAX")){let a=(await Qi(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function Em(e,t,n,r,i){let{query:o,probed:a}=NI(e),s=await Yi(o,t,n,r,i);if(s.columns.length!==1)throw new Un(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Un("scalar subquery returned no rows (expected 1 row).");if(s.rowCount>1){let l=a&&s.rowCount===2?"2 or more rows":`${s.rowCount} rows`;throw new Un(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function NI(e){return Ut(e)||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function Cc(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached ASSERT evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH"){let t=Cc(e.left),n=Cc(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function so(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=i||Ct(e.where)?[...new Set(o.filter(d=>d.cteName===null).map(d=>d.appId))]:[],s=new Map(await Promise.all(a.map(async d=>{let f=await Q(d,t,n);return[d,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,c=d=>{if(Array.isArray(d)){d.forEach(c);return}if(d===null||typeof d!="object")return;let f=d;if(f.type==="SELECT")return;let E=String(f.op),R=f.right,m=["=","!=","<>"].includes(E)&&R?.type==="STRING"&&R.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(E)||m)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(c)};c(e.where),c(e.having);for(let d of e.columns)d.type==="CASE_COL"&&c(d.expr);let p=new Map;await Promise.all([...s].map(async([d,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await gp(d,t,n);R&&p.set(d,R)}));let u=(d,f,E)=>{if(f==="$id")return rr(te({fieldType:"__ID__"}),d.appId,"$id");if(E&&d.subtableCode){if(f==="_rid")return W("string");if(f==="_idx"||f==="_pid")return W("number")}let R=s.get(d.appId)?.get(ue(d,f));if(!R)return;let m=R.semantics??te(R),y=R.fieldType==="STATUS"&&p.has(d.appId)?{...m,optionOrder:p.get(d.appId)}:m;return rr(y,d.appId,R.code)};return d=>{if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,d.field,!1);let E=o.find(R=>pe(R)===d.tableAlias);return E?E.cteName!==null?Ne(r?.get(E.cteName),d.field)?.semantics??W("string"):u(E,d.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?Ne(r?.get(e.from.cteName),d.field)?.semantics??W("string"):u(e.from,d.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName):void 0,m=E.cteName!==null?Cr(R,d.field)!==void 0?Ne(R,d.field)?.semantics??W("string"):void 0:u(E,d.field,!0);return m?[m]:[]});if(f.length===1)return f[0];if(!o.some(E=>ys(E,d.field)!==void 0))return f.length>1?W("string"):void 0}}var Rm=new WeakMap;async function Mn(e,t,n,r,i=!1){let o=await so(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Yd(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&Rm.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function CI(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function mm(e){return CI(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function LR(e,t,n,r,i){return i!==void 0&&e.joins.length===0&&e.from.cteName!==null?t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===pe(e.from)}):r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function _R(e,t){return e!=="DIRECT"?"\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u3001ORDER BY \u306E\u5024\u306E\u7D44\u304C\u5165\u529B\u884C\u3092\u4E00\u610F\u306B\u8B58\u5225\u3059\u308B\u3068\u30AF\u30A8\u30EA\u69CB\u9020\u307E\u305F\u306F\u4FDD\u8A3C\u6E08\u307F\u306E\u30C7\u30FC\u30BF\u5236\u7D04\u304B\u3089\u78BA\u8A8D\u3067\u304D\u308B\u5834\u5408\u306B\u9650\u308A\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3067\u304D\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3080\u5F62\u3084\u3001JOIN \u5F8C\u3082\u540C\u3058\u7CFB\u5217\u5024\u304C\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u9AD8\u30051\u884C\u3068\u4FDD\u8A3C\u3067\u304D\u308B\u5F62\u304C\u8A72\u5F53\u3057\u307E\u3059\u3002\u751F\u6210\u5217\u3001\u518D\u5E30\u306E\u6DF1\u3055\u5217\u3001\u307E\u305F\u306F $id \u306B\u7531\u6765\u3059\u308B\u5217\u3067\u3042\u308B\u3068\u3044\u3046\u7406\u7531\u3060\u3051\u3067\u306F\u7121\u8996\u3067\u304D\u307E\u305B\u3093\u3002":t==="RANGE"?"ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}function ym(e,t,n,r){let i=[];for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="AGGREGATE"||o.orderBy.length===0||o.frame?.source!=="DEFAULT"||LR(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306F\u65E2\u5B9A\u30D5\u30EC\u30FC\u30E0\uFF08RANGE\uFF09\u3067\u8A55\u4FA1\u3055\u308C\u307E\u3059\u3002ORDER BY \u306E\u5024\u304C\u540C\u3058\u884C\u306F\u3059\u3079\u3066\u540C\u3058\u5024\u306B\u306A\u308A\u307E\u3059\u3002\u884C\u3054\u3068\u306E\u5024\u304C\u5FC5\u8981\u306A\u3089 ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3092\u660E\u793A\u3059\u308B\u304B\u3001`+_R(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||LR(e,o.orderBy,t,n,r)||i.push(`${o.alias} \u306E ORDER BY \u306F\u5168\u9806\u5E8F\u3067\u306A\u3044\u305F\u3081\u3001\u540C\u9806\u5185\u306E\u524D\u5F8C\u95A2\u4FC2\u306F\u672A\u898F\u5B9A\u3067\u3059\u3002`+_R(n,"VALUE"));return i}function vs(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=ce.get(e);return r&&ce.set(n,r),n}function ip(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>Ct(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function gm(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Fe(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=W("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=W("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Gn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Gn(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?W("string"):W("number"):r.type==="STRFUNC_COL"?i=Kn(r.expr,o=>{let a=t(o);return a?{compareMode:a.compareMode}:void 0}).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=W("string")),i&&n.set(r.alias,i)}return r=>{if(r.tableAlias!==null)return t(r);let i=Oe(r.field,n.keys());return i===void 0?t(r):n.get(i)}}function kn(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function bs(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function hm(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Ct(e.where)?await Q(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Te(null,()=>{}):Te(e.where,o=>{if(o.field==="$id")return te({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?te(a):void 0)})}async function Ir(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await hm(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new oe(`WHERE predicate cannot be represented by kintone REST (${kn(r)})`)}async function Ht(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){GI(e);let l,c=new Set;if(await Xi(e,t,r,i),vI(e))return l=MI(e,n),o&&ce.set(l,await Qi(e,l.columns,t,r,i,a)),l;let{resolver:p}=await Mn(e,t,r,i,mm(e)),u=ym(e,p,s),d=await wr(e,t,r,i);await ey(e,t,n,r,c,i);let f=qI(e,Te(e.where,p));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${kn(f)}).`);let E=ze(e),R,m;if(f.capability==="SUPERSET_PREFILTER"){let b=await so(e,t,r,i),M=rc(e,b);M.eligible&&tc(e,M)&&(R=M.plan)}if(R===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let b=null;try{b=z(e.where)}catch{b=null}m=na({select:e,selectMode:E,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:b,relativeFunctionNames:Ae(e.where)})??void 0,m&&(R=m.prefilterPlan)}let y=f.capability==="EXACT_PUSHDOWN"?E:"FULL_SCAN",g=await eo(e,t,r,i),S=bs(e)?(e.orderMode==="KINTONE_NATIVE"?bi:wi)({stmt:e,staticMode:y,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:g.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Pe(e.where)}):null,A=await xI(e,S?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":y,t,r),I=op(e,n,S),v=m!==void 0&&(E==="FULL_SCAN"||S?.kind==="CANONICAL_LOCAL")?ep(t,{aborted:!1},!0):t;try{y==="SIMPLE"?l=await kI(e,v,I.effectiveOptions,r,S,g):l=await QI(e,v,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&R===void 0,g,R,d)}catch(b){Sm(I,b)}return o&&ce.set(l,await Qi(e,l.columns,t,r,i,a)),vs(l,[...c,...u,...A])}function Pc(e,t){if(t.length===1){let{appId:r,owner:i}=t[0];return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${i}\u300D\uFF08APP${r}\uFF09\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002APP${r}$${i} \u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`}let n=t.map(({appId:r,owner:i})=>`APP${r}$${i}`).join(" / ");return`ArgumentError: ${e} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\uFF08${n}\uFF09\u3002\u89AA\u30C6\u30FC\u30D6\u30EB\u306E GROUP BY \u306B\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u3069\u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u304B\u3089\u96C6\u8A08\u3059\u308B\u304B\u3092 FROM \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}function Am(e){let t=new Set,n=[];for(let r of e){let i=`${r.appId}\0${r.owner}`;t.has(i)||(t.add(i),n.push(r))}return n}async function wr(e,t,n,r){let i=ee(e);if(!Ut(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(u=>u.table)],s=new Map,l=await Promise.all(a.map(async u=>{if(u.cteName!==null){let R=r?.get(u.cteName);if(!R)throw new Error(`InternalError: materialized schema ${u.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:R.columns}}let d=await Q(u.appId,t,n);if(!u.subtableCode){for(let R of d){if(R.inSubtable!==!0||!R.subtableCode)continue;let m=s.get(R.code)??[];m.push({appId:u.appId,owner:R.subtableCode}),s.set(R.code,Am(m))}return{kind:"APP",fieldCodes:d.filter(R=>!R.inSubtable).map(R=>R.code)}}let f=d.filter(R=>R.inSubtable&&R.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:d.filter(R=>R.inSubtable&&R.subtableCode===void 0)).map(R=>R.code),parentFieldCodes:d.filter(R=>!R.inSubtable).map(R=>R.code)}})),c=Id(e,(u,d)=>l[d]),p=Cd(o,e.columns,c);return PI(e,o,p,s),Gr(e,_d(e,p,c)),p}function PI(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let c=t[l],p=c?.type==="FIELD_NAME"?c.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,d=s.name.indexOf("."),f=d>=0?s.name.slice(d+1):s.name,E=r.get(s.name)??r.get(f)??[];throw E.length>0?new Error(Pc(s.name,E)):new Error(`ArgumentError: unknown field code(s): ${s.name}${u}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${p} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${p} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${p} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var Ji=new WeakMap;async function OI(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;if(a.type==="SELECT"){for(let s of Object.values(a))await i(s);await Xi(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function LI(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let d=await Q(u,t,n);return[u,new Map(d.map(f=>[f.code,f]))]}))),s=(u,d)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(d);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,d)=>{if(d==="$id")return"$id";let f=ue(u,d);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},c=(u,d)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?Cr(f,d)!==void 0:!0},p=(u,d,f,E)=>{let R=i.filter(g=>g.cteName===null&&l(g,f.field)!==null).length,m=i.some(g=>c(g,f.field)),y=pe(u);return{canonicalId:`source:${d}:APP${u.appId}:${E}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:R===1&&!m?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let m=i.findIndex(S=>pe(S)===u.tableAlias);if(m<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[m];if(y.cteName!==null)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let g=l(y,u.field);if(g===null){let S=s(y,ue(y,u.field));throw S!==null&&S!==""?new Error(Pc(u.field,[{appId:y.appId,owner:S}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${y.appId}.`)}return p(y,m,u,g)}let d=i.flatMap((m,y)=>{if(m.cteName!==null)return[];let g=l(m,u.field);return g===null?[]:[{table:m,tableIndex:y,code:g}]}),f=i.filter(m=>c(m,u.field));if(d.length+f.length>1)throw new Error(`ArgumentError: field ${u.field} is ambiguous across multiple sources.`);if(d.length===1&&f.length===0){let m=d[0];return p(m.table,m.tableIndex,u,m.code)}if(f.length===1)throw new Error(`ArgumentError: field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let E=i.flatMap(m=>{if(m.cteName!==null)return[];let y=s(m,ue(m,u.field));return y===null||y===""?[]:[{appId:m.appId,owner:y}]}),R=Am(E);throw R.length>0?new Error(Pc(u.field,R)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function Xi(e,t,n,r){Ji.delete(e);let i=ee(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await LI(e,t,n,r),c=Ud(e,l,Dd);c&&Ji.set(e,c);return}if(!Ut(e))return;if(i.type==="NONE"){xo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await wr(e,t,n,r)}function _I(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C";return`${e.size===1&&e.has("CROSS_JOIN")?"CROSS JOIN \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("DML")||e.has("VALIDATE")?o:r&&i?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":r?n.find(([s])=>e.has(s))[1]:"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C"}\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: ${t}\u3002`}function op(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Jt({...e,orderBy:[]}):Jt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Sm(e,t){throw e.reasons.size>0&&t instanceof We&&!t.completeInputWrapped?new We(_I(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Oc(e,t){try{return await t()}catch(n){Sm(e,n)}}function Rt(e){return e?.type==="BOOLEAN"&&e.value===!1}function vI(e){return e.from.appId===0&&e.from.cteName===Ce}function Ns(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT planning.`);return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Ns(e.left)||Ns(e.right):e.type==="STRING_FUNC"?ap(e):!1}function DI(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:$i(e)}function $i(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?ap(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?$i(e.left)||$i(e.right):e.type==="CASE_WHEN"?[...e.branches.map(n=>n.result),...e.elseResult?[e.elseResult]:[]].some(n=>n.type!=="ARRAY"&&(n.type==="FIELD_REF"||n.type==="ARITH"?Ns(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:$i(n))):!1}function ap(e){return e.args.some(t=>DI(t))}function UI(e){for(let t of e.columns)switch(t.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${t.name}`);case"LITERAL_COL":break;case"ARITH_COL":if(Ns(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(ap(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if($i(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"WINDOW_COL":if(t.partitionBy.length>0||t.orderBy.length>0)throw new Error("ArgumentError: field reference is not allowed without FROM.");break;default:throw new Error(`ArgumentError: ${t.type} is not supported without FROM.`)}}function MI(e,t){if(e.joins.length>0||e.where||ee(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");UI(e);let n=Hu([{}],e.columns,void 0,void 0,void 0,void 0,se(t)),{rows:r,columns:i}=Ln(n,e.columns,void 0,void 0,void 0,void 0,void 0,se(t)),o=Za(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function kI(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Cm(e):e,s=Bo(a),l=i?.kind==="CANONICAL_LOCAL"?An(e,e.from):s.fields,c=await lp(e,t,r),p=cp(e,c),u=e.columns.some(b=>b.type==="CASE_COL")?await so(e,t,r,void 0,ip(e)):void 0,d=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&y!==null&&y<=d&&!Pe(e.where)?y:void 0,S;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)S=[];else if(i?.kind==="KORDER_CURSOR"){let b=await LE({client:t,app:s.app,fields:s.fields,query:Mu(e),offset:e.offset??0,limit:e.limit});S=b.records,b.cleanupWarning&&f.add(b.cleanupWarning)}else if(m)S=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let b=e.where?z(e.where):"";S=await Ge(t.getRecords,s.app,b,l,{parallel:R,maxRecords:d,stopAfter:g,onLimit:E,onTruncate:M=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${M} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${M} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Zc(t,e.from.appId)}})}let A=S.map(b=>Bt(b,null));m||(A=Vu(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Wu(e.columns,void 0,p.row,u,se(n)),se(n)),A=Za(A,e.limit,e.offset));let{rows:I,columns:N}=Ln(A,e.columns,void 0,p.row,void 0,u,void 0,se(n)),v=await fp(e,I,N,t,r);return{type:"SELECT",rows:I,columns:v,rowCount:I.length,warnings:[...f]}}async function xI(e,t,n,r){let i=[],o=new Map,a=(c,p)=>{if(p.length===0)return;let u=o.get(c);u||(u=new Set,o.set(c,u));for(let d of p)u.add(d)},s=new Map,l=(c,p)=>{let u=s.get(c);u||(u=new Set,s.set(c,u));for(let d of p)u.add(d)};if(t==="SIMPLE"){let c=Bo(e);a(c.app,c.fields),e.from.subtableCode||l(c.app,c.fields)}else{let c=[e.from,...e.joins.map(p=>p.table)].filter(p=>p.cteName===null);for(let p of c){let u=An(e,p);a(p.appId,u),p.subtableCode||l(p.appId,u)}}for(let[c,p]of o.entries()){let u=[...p].filter(m=>!Uo(m));if(u.length===0)continue;let d=await Q(c,n,r);if(d.length===0)continue;let f=new Set(d.map(m=>m.code)),E=u.filter(m=>!f.has(m));if(E.length>0)throw new Error(`ArgumentError: unknown field code(s): ${E.join(", ")} (APP${c})`);let R=s.get(c);if(R){let m=d.filter(y=>y.inSubtable===!0&&R.has(y.code));for(let y of m){let g=y.subtableCode??"",S=g?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${g}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${S}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${c} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(g?`APP${c}$${g} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function mc(e){return e.cteName??`APP${e.appId}`}function Tm(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function FI(e,t){return Uo(t)||e.validCodes.has(t)}function yc(e,t){return e.table.cteName!==null?e.validCodes.has(t):FI(e,t)}async function KI(e,t,n){let r=[e.from,...e.joins.map(o=>o.table)].filter(o=>o.cteName===null),i=new Map;return await Promise.all([...new Set(r.map(o=>o.appId))].map(async o=>{let a=await Q(o,t,n);i.set(o,new Set(a.map(s=>s.code)))})),(o,a)=>{if(o.cteName!==null)return!1;if(o.subtableCode||Uo(a))return!0;let s=i.get(o.appId);return!s||s.size===0?!0:s.has(ue(o,a))}}async function Im(e,t,n,r){let i=!1;vR(e,t,()=>(i=!0,!0)),i&&vR(e,t,await KI(e,n,r))}function vR(e,t,n){let r=[e.from,...e.joins.map(E=>E.table)],i=new Map;for(let E of r)for(let R of Tm(E))i.set(R,E);let o=e.columns.flatMap(E=>"alias"in E&&E.alias!==null?[E.alias]:[]),a=E=>E.cteName===null||E.cteName===Ce?[]:t.get(E.cteName)?.columns??[],s=(E,R)=>E?Oe(R,a(E)):void 0,l=E=>{if(r.some(y=>a(y).includes(E)))return E;let R=r.flatMap(y=>{let g=s(y,E);return g===void 0?[]:[g]}),m=[...new Set(R)];if(m.length===1)return r.some(y=>n(y,E))?E:m[0]},c=(E,R,m)=>{if(m&&R===null){let y=Oe(E,o);if(y!==void 0)return y}return R===null?l(E)??E:s(i.get(R),E)??E},p=(E,R)=>{let m=E.indexOf(".");if(m<=0)return c(E,null,R);let y=E.slice(0,m),g=E.slice(m+1),S=c(g,y,!1);return S===g?E:`${y}.${S}`};for(let E of e.joins)E.type!=="CROSS"&&(E.on.left.field=c(E.on.left.field,E.on.left.tableAlias,!1),E.on.right.field=c(E.on.right.field,E.on.right.tableAlias,!1));let u=new Set,d=(E,R=!1)=>{if(E===null||typeof E!="object"||u.has(E))return;if(u.add(E),Array.isArray(E)){for(let y of E)d(y,R);return}let m=E;if(!(E!==e&&(m.type==="SELECT"||m.type==="UNION"))){if(m.type==="FIELD"&&typeof m.field=="string"){let y=typeof m.tableAlias=="string"?m.tableAlias:null;m.field=y===null?p(m.field,R):c(m.field,y,R)}else if(m.type==="FIELD_REF"&&typeof m.field=="string")m.field=p(m.field,R);else if(m.type==="AGG_GROUP_KEY"&&typeof m.field=="string"){let y=typeof m.tableAlias=="string"?m.tableAlias:null;m.field=c(m.field,y,R)}for(let y of Object.values(m))d(y,R)}};for(let E of e.columns)d(E);d(e.where),d(e.having,!0),d(e.grouping);let f=ee(e);if(f.type==="PLAIN")for(let E of f.allItems)E.type==="FIELD_NAME"?E.name=p(E.name,!0):d(E);for(let E of e.orderBy)E.key.type==="FIELD_NAME"?E.key.name=p(E.key.name,!0):d(E.key);for(let E of e.columns)if(E.type==="WINDOW_COL"){for(let R of E.partitionBy)R.field=c(R.field,R.tableAlias,!1);for(let R of E.orderBy)R.key.type==="FIELD_NAME"?R.key.name=p(R.key.name,!1):d(R.key)}}function GI(e){let t=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]),n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(!(i.type==="AGG_REF"||i.type==="AGG_ARITH")){if(i.type==="FIELD"&&(i.tableAlias===null||i.tableAlias===void 0)&&typeof i.field=="string"){let o=Oe(i.field,t);o!==void 0&&(i.field=o)}i.type==="SELECT"||i.type==="UNION"||Object.values(i).forEach(n)}};n(e.having)}function $I(e){let t=[],n=r=>{if(r!==null)switch(r.type){case"BINARY":(r.right.type==="SUBQUERY_IN_LIST"||r.right.type==="SCALAR_SUBQUERY")&&t.push(r.right.query);return;case"EXISTS":t.push(r.query);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"BOOLEAN":return}};n(e.where),n(e.having);for(let r of e.columns)if(r.type==="SCALAR_SUBQUERY_COL")t.push(r.query);else if(r.type==="CASE_COL")for(let i of r.expr.branches)n(i.condition);return t}async function Lc(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=new Map,s=new Set,l=new Set;for(let d of o){let f=pe(d);if(f!==null){if(l.has(f))throw new Error(`ArgumentError: effective alias ${f} is used by multiple tables.`);l.add(f)}}for(let d of o){if(d.cteName===null||d.cteName===Ce)continue;let f=n.get(d.cteName);if(!f){if(i){s.add(d);continue}throw new Error(`ArgumentError: materialized source ${d.cteName} is not available.`)}if(f.rows.length>0&&f.columns.length===0)throw new Error(`InternalError: materialized source ${d.cteName} has rows but no column schema.`);if(e.joins.length>0&&f.rows.length===0&&f.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${d.cteName}.`);a.set(d,f)}let c=new Map;await Promise.all(o.map(async d=>{if(s.has(d)){c.set(d,{table:d,label:mc(d),validCodes:new Set,authoritative:!1,schemaUnavailable:!0});return}let f=a.get(d);if(f){c.set(d,{table:d,label:mc(d),validCodes:new Set(f.columns),authoritative:!0,schemaUnavailable:f.rows.length===0&&f.columns.length===0});return}if(d.cteName===Ce)return;let E=i?await Vm(d.appId,r):await Q(d.appId,t,r);c.set(d,{table:d,label:mc(d),validCodes:new Set((E??[]).map(R=>R.code)),authoritative:E!==null&&E.length>0,schemaUnavailable:!1})}));let p=new Map;for(let d of c.values())for(let f of Tm(d.table))p.set(f,d);for(let d of e.joins)if(d.type!=="CROSS")for(let f of[d.on.left,d.on.right]){if(!f.tableAlias)continue;let E=p.get(f.tableAlias);if(E&&E.table.cteName!==null&&!E.schemaUnavailable&&!yc(E,f.field))throw new Error(`ArgumentError: JOIN key ${f.tableAlias}.${f.field} is not available in the materialized table.`)}let u=Gd(e);for(let[d,f]of u.bySource){let E=c.get(d);if(!E||E.schemaUnavailable||!E.authoritative)continue;let R=[...f].filter(m=>!yc(E,m));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (${E.label})`)}for(let d of u.unqualified){let f=[...c.values()].filter(R=>!R.schemaUnavailable);if(f.some(R=>yc(R,d))||[...c.values()].some(R=>R.schemaUnavailable)||f.some(R=>R.table.cteName===null&&!R.authoritative))continue;let E=f.map(R=>R.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${d} (${E})`)}}async function ms(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await ms(e.left,t,n,r,i),await ms(e.right,t,n,r,i);return}await Im(e,n,t,r),await Lc(e,t,n,r);for(let o of $I(e))await ms(o,t,n,r,i)}}function wm(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?zr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?zr(e.where,{tableAlias:e.from.alias}):null}function Bi(e){return e.type==="BINARY"?e.right.type==="STRING"?e.right.value.startsWith("@"):e.right.type==="IN_LIST"?e.right.values.some(t=>t.type==="STRING"&&t.value.startsWith("@")):!1:e.type==="LOGICAL"?Bi(e.left)||Bi(e.right):e.type==="GROUP"||e.type==="NOT"?Bi(e.expr):!1}var sp=new WeakMap;function Ds(e,t){if(e.joins.length===0||e.where===null||e.joins.some(f=>f.type!=="INNER"&&f.type!=="CROSS"))return null;let n=[e.from,...e.joins.map(f=>f.table)];if(n.some(f=>f.alias===null||f.cteName!==null||!!f.subtableCode))return null;let r=n.map(f=>({alias:f.alias,appId:f.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(f.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(f.appId)})),i=wE(e.where,r),o=bE(i,r),a=new Map,s=new Map;for(let[f,E]of o.fetchQueriesByAlias)s.set(f,E);for(let f of o.items)s.has(f.targetAlias)||s.set(f.targetAlias,mr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,c=a.get(l)??null,p=new Map(a);p.delete(l);let u=new Map(o.items.map(f=>[f.targetAlias,f.relation])),d=u.get(l)??null;return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:c,mainRelation:d,joinConditions:p,joinRelations:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Us(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let c=r.get(s);c?c.push(l):r.set(s,[l])};if(i(e.from.appId,wm(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER"||s.type==="CROSS")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=zr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[c,p]=await Promise.all([Ke(s,t,n),Ew(s,t,n)]),u=BI(l).filter(d=>c.get(d)==="STATUS");if(u.length>0){let d=await xs(s,t,n);if(d.enable&&d.states&&d.states.length>0){let f=new Set(d.states.map(E=>E.name));for(let E of u)p.set(E,f)}}return[s,c,p]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function BI(e){let t=new Set,n=r=>{if(r.type==="BINARY"){r.left.type==="FIELD"&&t.add(r.left.field);return}if(r.type==="LOGICAL"){n(r.left),n(r.right);return}(r.type==="GROUP"||r.type==="NOT")&&n(r.expr)};for(let r of e)n(r);return[...t]}function Wt(e,t){if(e!==null)switch(e.type){case"BINARY":(e.op==="IN"||e.op==="NOT_IN")&&e.left.type==="FIELD"&&t.push(e.left),e.left.type==="CASE_FIELD"&&Cs(e.left.expr,t),e.right.type==="CASE_VALUE"&&Cs(e.right.expr,t);return;case"LOGICAL":Wt(e.left,t),Wt(e.right,t);return;case"NOT":case"GROUP":Wt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Cs(e,t){for(let n of e.branches)Wt(n.condition,t)}function VI(e){let t=[];Wt(e.where,t),Wt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Cs(n.expr,t);return t}function pe(e){return e.alias??e.cteName}function bm(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>pe(n)===t)}function Ms(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function lp(e,t,n){let r=VI(e);if(r.length===0)return new Map;let i=new Set,o=Ms(e);for(let s of r){if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){i.add(e.from.appId);continue}let l=bm(e,s.tableAlias);l&&l.cteName===null&&i.add(l.appId);continue}if(e.joins.length===0){e.from.cteName===null&&i.add(e.from.appId);continue}for(let l of o)i.add(l.appId)}let a=await Promise.all([...i].map(async s=>[s,await Ke(s,t,n)]));return new Map(a)}function Fe(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function up(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||vn(t,n)}function vn(e,t){if(e.type==="FIELD_REF"){t.push(Fe(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){vn(e.left,t),vn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){vn(e.left,t),vn(e.right,t);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field}):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&vn(n,t);return}if(e.type==="CASE_WHEN")for(let n of[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]])n.type==="AGG_REF"||n.type==="AGG_ARITH"?br(n,t):n.type!=="ARRAY"&&vn(n,t)}function br(e,t){if(e.type==="AGG_REF"){up(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(br(e.left,t),br(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function _c(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")br(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Vi(n,t)}}function Vi(e,t){if(e.type==="STRING_FUNC"){_c(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Vi(e.left,t),Vi(e.right,t);return}if(e.type==="CASE_WHEN"){let n=[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]];for(let r of n)r.type==="STRING_FUNC"?_c(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?br(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Vi(r,t)}}function DR(e,t){let n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(i.type==="AGG_REF"){let o=i;up(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function WI(e){let t=[];for(let n of e)n.type==="AGGREGATE"?up(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?br(n.expr,t):n.type==="ARITH_COL"?DR(n.expr,t):n.type==="STRFUNC_COL"?_c(n.expr,t):n.type==="SCALAR_VALUE_COL"?Vi(n.expr,t):n.type==="CASE_COL"&&DR(n.expr,t);return t}var HI=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function YI(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":HI.has(e.fieldType)?"string":void 0}async function Nm(e,t,n,r){let i=WI(e.columns);if(i.length===0)return;let o=new Set,a=Ms(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=bm(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await Q(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,c=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...c].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await gp(f,t,n);R&&l.set(f,R)}));let p=[e.from,...e.joins.map(f=>f.table)],u=(f,E)=>{let R=f.semantics??te(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let m=p.find(y=>pe(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return Ne(r?.get(m.cteName),f.field)?.semantics??W("string");E=s.get(m.appId)?.get(ue(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return Ne(r?.get(e.from.cteName),f.field)?.semantics??W("string");E=s.get(e.from.appId)?.get(ue(e.from,f.field))}else{let m=p.flatMap(y=>{if(y.cteName!==null){let S=r?.get(y.cteName);return Cr(S,f.field)!==void 0?[Ne(S,f.field)?.semantics??W("string")]:[]}let g=s.get(y.appId)?.get(ue(y,f.field));return g?[u(g,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?p.find(m=>pe(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(E,R?.appId??e.from.appId)}}function ue(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function ys(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function xe(e,t){let n=e.semantics??te(e);return{sortKind:YI(e),fieldType:e.fieldType,semantics:t===void 0?n:rr(n,t,e.code)}}function Cm(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function re(e){return{sortKind:e,semantics:W(e)}}function et(){return{semantics:W("string","KSQL_UNKNOWN")}}function Pm(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function tt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:te({fieldType:"__ID__"})};if(e==="_rid")return re("string");if(e==="_pid"||e==="_idx"||e==="$revision")return re("number")}function Kn(e,t){return re(At(e,n=>{let r=t?.(n);if(r)return"compareMode"in r?r:r.semantics}))}function Nr(e,t){return e.type==="STRING"?re("string"):e.type==="ARRAY"?Pm():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?et():Gn(e.arg,t):e.func==="GROUP_CONCAT"?re("string"):re("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?re("number"):e.type==="STRING_FUNC"?Kn(e,t):e.type==="FIELD_REF"?t(Fe(e.field))??et():e.type==="FIELD"?t(e)??et():et()}function ks(e){if(e.length===0)return et();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&Ho(n(r.semantics),n(t.semantics)))?e.every(i=>Ho(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?Pm("KSQL_MIXED_UNSUPPORTED"):et()}function Gn(e,t){if(e.type==="FIELD_REF")return t(Fe(e.field))??et();if(e.type==="FIELD")return t(e)??et();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return re("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return re("string");if(e.type==="STRING_FUNC")return Kn(e,t);let n=e.branches.map(r=>Nr(r.result,t));return e.elseResult&&n.push(Nr(e.elseResult,t)),ks(n)}function Om(e,t){return e.windowKind==="VALUE"?Gn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?re("number"):e.arg.type==="WILDCARD"?et():Gn(e.arg,t):re("number")}function gs(e,t){return{...e??{},displayName:t}}function jI(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function Qi(e,t,n,r,i,o=!1){let a=new Map;jI(e)&&await Promise.all(Ms(e).map(async R=>{if(a.has(R.appId))return;let m=await Q(R.appId,n,r);a.set(R.appId,new Map(m.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(R=>R.table)],l=o&&i===void 0&&s.every(R=>R.cteName===null),c=R=>{if(R.tableAlias!==null){if(R.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let S=a.get(e.from.appId)?.get(R.field);return S?xe(S,e.from.appId):void 0}let y=s.find(S=>pe(S)===R.tableAlias);if(!y)return;if(y.cteName!==null)return Ne(i?.get(y.cteName),R.field);let g=a.get(y.appId)?.get(ue(y,R.field));return g?xe(g,y.appId):tt(R.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Ne(i?.get(e.from.cteName),R.field);let y=a.get(e.from.appId)?.get(ue(e.from,R.field));return y?xe(y,e.from.appId):tt(R.field)}let m=s.flatMap(y=>{if(y.cteName!==null){let A=i?.get(y.cteName);return Cr(A,R.field)===void 0?[]:[Ne(A,R.field)]}let g=a.get(y.appId)?.get(ue(y,R.field)),S=g?xe(g,y.appId):tt(R.field);return S?[S]:[]});return m.length===1?m[0]:void 0},p=R=>{if(!l)return;let m=s.filter(y=>{if(R.tableAlias!==null&&pe(y)!==R.tableAlias)return!1;let g=ue(y,R.field);return a.get(y.appId)?.has(g)===!0||tt(R.field)!==void 0});return m.length===1?m[0].appId:void 0},u=(R,m)=>{let y=p(m);return R&&y!==void 0?{...R,publicSourceApp:y}:R},d=new Map,f=e.columns.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let R of t){let m=Fe(R),y=u(c(m),m);d.set(R,gs(y,y?.displayName??R))}return d}if(f)for(let R of t){let m=Fe(R),y=u(c(m),m);d.set(R,gs(y,y?.displayName??R))}return e.columns.filter(R=>R.type!=="WILDCARD"&&R.type!=="PARENT_WILDCARD").forEach((R,m)=>{let y=f?"alias"in R&&R.alias?R.alias:void 0:t[m];if(!y)return;let g;if(R.type==="FIELD"){let S=Fe(R.field);g=u(c(S),S)}else if(R.type==="AGGREGATE")R.func==="GROUP_CONCAT"?g=re("string"):R.func==="COUNT"||R.func==="SUM"||R.func==="AVG"||R.func==="STDDEV_POP"||R.func==="STDDEV_SAMP"||R.func==="VAR_POP"||R.func==="VAR_SAMP"||R.func==="MEDIAN"?g=re("number"):(R.func==="MIN"||R.func==="MAX"||R.func==="MODE")&&R.arg.type!=="WILDCARD"&&(g=Gn(R.arg,c));else if(R.type==="ARITH_AGG_COL"||R.type==="ARITH_COL")g=re("number");else if(R.type==="GROUPING_COL")g=re("number");else if(R.type==="LITERAL_COL")g=re("string");else if(R.type==="SCALAR_VALUE_COL"){let S=R.expr;S.type==="STRING_FUNC"?g=Kn(S,c):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?g=re("number"):S.type==="FIELD"?g=c(S):g=re("string")}else if(R.type==="STRFUNC_COL")g=Kn(R.expr,c);else if(R.type==="WINDOW_COL")g=Om(R,c);else if(R.type==="CASE_COL"){let S=R.expr.branches.map(A=>Nr(A.result,c));R.expr.elseResult&&S.push(Nr(R.expr.elseResult,c)),g=ks(S)}else R.type==="SCALAR_SUBQUERY_COL"&&(g=et());d.set(y,gs(g,R.aliasDisplay??y))}),d}function zI(e,t){let n=ce.get(e),r=ce.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],c=l===void 0?void 0:r?.get(l),p;if(s&&c){let u=ks([s,c]),d=s.publicSourceApp===c.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=u;p=d===void 0?E:{...E,publicSourceApp:d}}else p=et();i.set(o,gs(p,s?.displayName??o))}),i}function cp(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let c=n.find(p=>pe(p)===s.tableAlias);return!c||c.cteName!==null?void 0:ys(c,s.field)??t.get(c.appId)?.get(ue(c,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:ys(e.from,s.field)??t.get(e.from.appId)?.get(ue(e.from,s.field));if(n.some(c=>c.cteName!==null))return;let l=r.flatMap(c=>{let p=ys(c,s.field)??t.get(c.appId)?.get(ue(c,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var Lm=new WeakSet,pp=new WeakMap;function vc(e){return Lm.add(e),e}function qI(e,t){return pp.set(e,t),t}function _m(e,t){if(t.capability!=="EXACT_PUSHDOWN")return!1;let n=e.columns.filter(r=>r.type==="AGGREGATE"&&r.func==="COUNT"&&!r.distinct&&r.arg.type==="WILDCARD");return n.length!==1||e.columns.some(r=>r!==n[0]&&r.type!=="LITERAL_COL")?!1:!e.distinct&&ee(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function JI(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function XI(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":z(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new Fn;if(!JI(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=Ln([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function QI(e,t,n,r,i,o=!0,a,s,l){let c=pp.get(e);if(Lm.has(e)&&c!==void 0&&_m(e,c)){let G=await XI(e,t);if(G!==null)return G}let p=n.maxRecords??1e4,u=new Set,d=n.fetchParallel??1;await Promise.all([io(e.where,t,n,r,u,i),io(e.having,t,n,r,u,i)]);let[f,E,R]=await Promise.all([Us(e,t,r),lp(e,t,r),Nm(e,t,r,i)]),m=cp(e,E),y=await so(e,t,r,i,Ct(e.having)||ip(e)),g=gm(e,y),S=sp.get(e);if(S&&!yr(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let A=S??Ds(e,f)??Sn(e,f);Ol(A);let I="joinPlan"in A?A:null,N=I&&yr(I.joinPlan)?I:null,v=t,b=A.mainCondition,M=A.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let D=s?s.prefilterWhere:N?null:b,k=N?.queriesByAlias.get(e.from.alias)??"",P=await ny(e.columns,t,n,r,u,i),O=Rt(e.where),C=O?Promise.resolve([]):Wi(e,e.from,v,p,d,!0,n.onLimitReached??"error",u,D,N?!1:o,l,k),h=[],w=[];for(let G of e.joins){if(O){h.push({join:G,promise:Promise.resolve([])});continue}let U=G.table.alias?N?.queriesByAlias.get(G.table.alias)??"":"",H=N?null:G.table.alias?M.get(G.table.alias)??null:null;H!==null||U!==""?h.push({join:G,promise:Wi(e,G.table,v,p,d,!1,n.onLimitReached??"error",u,H,!0,l,U)}):w.push(G)}let _=a?Promise.resolve(a):eo(e,t,r,i);_.catch(()=>{});let L=await C,F=new Map;F.set(e.from.alias,L);for(let{join:G,promise:U}of h)F.set(G.table.alias,await U);await Promise.all(w.map(async G=>{let H=await Bm(e,G,F,v,p,d,n.onLimitReached??"error",u,r,i,null,l,"")??await Wi(e,G.table,v,p,d,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(G.table.alias,H)}));let{optionOrders:B,sortKinds:V,semantics:x}=await _,{rows:K,columns:j}=Yu({tables:F,stmt:e,scalarCache:P,optionOrders:B,sortKinds:V,orderSemantics:x,fieldTypeResolver:m.row,fieldSemanticsResolver:y,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:g,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??A.appliedKlikes,...s?{residualWhere:s.residualWhere}:N?{residualWhere:N.joinPlan.residualWhere}:{},resolvedGroupingSpec:Ji.get(e),plainGroupByPlan:l,warnings:u,evaluationContext:se(n)}),$=await fp(e,K,j,t,r);return{type:"SELECT",rows:K,columns:$,rowCount:K.length,warnings:[...u]}}function ZI(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
15
+ UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}function Dc(e,t,n){ZI(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,c)=>{s[l]=a[e.columns[c]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=ce.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let c=e.columns[l],p=n?.get(s)??(c===void 0?void 0:o?.get(c));p&&a.set(s,{...p,displayName:s})}),ce.set(i,a)}return i}function vm(e,t,n,r){let i=Dc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:ew(o,e.columns),s=[...new Set([...e.warnings??[],...t.warnings??[]])],l={type:"SELECT",rows:a,columns:[...e.columns],rowCount:a.length,warnings:s};return r&&ce.set(l,zI(e,t)),l}async function Dm(e,t,n,r,i=!1,o=!1){let a=op(e,n,null);return Oc(a,async()=>{let s=a.effectiveOptions,[l,c]=await Promise.all([e.left.type==="UNION"?Dm(e.left,t,s,r,i,o):Ht(vc(e.left),t,s,r,void 0,i,o,"DERIVED"),Ht(vc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return vm(l,c,e.all,i)})}function ew(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}function Um(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function Mm(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(Um);if(n.some(i=>i===null))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u5F0F\u306B\u306F AS \u5225\u540D\u304C\u5FC5\u8981\u3067\u3059`);let r=n;if(new Set(r).size!==r.length)throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u51FA\u529B\u5217\u540D\u3092\u91CD\u8907\u3055\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093`);return r}function UR(e){return e.columns.map((t,n)=>Um(t)??`__b53_column_${n}`)}function MR(e,t){let n=e.semantics,r=t.semantics;if(!n||!r||n.compareMode==="unsupported"||r.compareMode==="unsupported"||n.compareMode!==r.compareMode||e.sortKind&&t.sortKind&&e.sortKind!==t.sortKind||n.inSubtable!==r.inSubtable||n.requiresCollectionOperators!==r.requiresCollectionOperators)return!1;let i=o=>o===void 0||o.startsWith("KSQL_");return!(!i(e.fieldType)&&!i(t.fieldType)&&e.fieldType!==t.fieldType)}async function km(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)],o=new Map;await Promise.all(i.filter(s=>s.cteName===null).map(async s=>{if(o.has(s.appId))return;let l=await Q(s.appId,t,n);o.set(s.appId,new Map(l.map(c=>[c.code,c])))}));let a=(s,l)=>{if(s.cteName!==null)return Ne(r.get(s.cteName),l);let c=o.get(s.appId)?.get(ue(s,l));return c?xe(c,s.appId):tt(l)};return s=>{if(s.tableAlias!==null){let c=i.find(p=>pe(p)===s.tableAlias);return c?a(c,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(c=>a(c,s.field)).filter(c=>c!==void 0);return l.length===1?l[0]:void 0}}function Ki(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Ki(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:Fe(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=Fe(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){Ki(r.left,t,!0),Ki(r.right,t,!0);return}for(let i of Object.values(r))Ki(i,t,n)}async function kR(e,t,n,r,i){let o=await km(e,n,r,i);e.columns.forEach(c=>Ki(c,o));let a=await Qi(e,UR(e),n,r,i),s=UR(e),l=new Map;return t.forEach((c,p)=>{let u=a.get(s[p]);if(!u?.semantics||u.semantics.fieldType==="KSQL_UNKNOWN"||u.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${p+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(c,{...u,displayName:c})}),l}function dn(e){return`${e.appId}:${e.subtableCode??""}`}function xm(...e){let t=new Map;for(let n of e)for(let r of[n.from,...n.joins.map(i=>i.table)])r.cteName===null&&!t.has(dn(r))&&t.set(dn(r),r);return[...t.values()]}function tw(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function nw(e){let t=new Map,n=r=>{for(let i of r)t.set(dn(i),null)};for(let r of e){let i=Ms(r);for(let s of i){let l=dn(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let c=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(u=>u.table)].find(u=>pe(u)?.toLowerCase()===s.toLowerCase());if(!c){n(i);return}if(c.cteName!==null)return;let p=t.get(dn(c));p!==null&&p?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let c=tw(l.field),p=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:c.alias;o(p,c.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(ee(r)),a(r.having),a(r.orderBy);for(let s of r.joins){if(s.on===null){n(i);continue}o(s.on.left.tableAlias,s.on.left.field),o(s.on.right.tableAlias,s.on.right.field)}}return t}function rw(e,t){return{type:"SELECT",distinct:!1,columns:t!==null&&t.size>0?[...t].map(r=>({type:"FIELD",field:r,alias:null})):[{type:"WILDCARD"}],from:{...e,alias:null},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function iw(e,t,n,r){let i=nw(e),o=await Promise.all(xm(...e).map(async(a,s)=>{let l=await Ht(rw(a,i.get(dn(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),c=`__b53_source_${s}`;return[dn(a),{name:c,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:ce.get(l)}}]}));return new Map(o)}function xR(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(dn(r));if(!i)throw new Error("PlanningError: \u518D\u5E30 CTE \u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{appId:0,alias:r.alias,cteName:i.name,subtableCode:null}};return{...e,from:n(e.from),joins:e.joins.map(r=>({...r,table:n(r.table)}))}}function FR(e,t,n){return e.cteName===null?void 0:Ne(n.get(e.cteName),t)}function gc(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=we(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function KR(e,t){let n=t.joins[0];if(!n||n.type!=="INNER")throw new Error("PlanningError: \u518D\u5E30\u9805\u306E INNER JOIN \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");let r=t.from.cteName===e?t.from:n.table,i=r===t.from?n.table:t.from,o=pe(r),a=n.on.left.tableAlias===o,s=n.on.right.tableAlias===o;if(a===s)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u3092\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{self:r,source:i,selfField:a?n.on.left.field:n.on.right.field,sourceField:a?n.on.right.field:n.on.left.field}}async function ow(e,t,n,r,i){let o=e.recursiveSpec,a=Mm(e),s=await kR(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let c=await kR(o.recursiveTerm,a,t,i,l);a.forEach((V,x)=>{let K=s.get(V),j=c.get(V);if(!K||!j||!MR(K,j))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${x+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let p=KR(e.name,o.recursiveTerm),u=await km(o.recursiveTerm,t,i,l),d=u({type:"FIELD",tableAlias:pe(p.self),field:p.selfField}),f=u({type:"FIELD",tableAlias:pe(p.source),field:p.sourceField});if(!d||!f||!MR(d,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let E=await iw([o.seed,o.recursiveTerm],t,n,i),R=new Map(r);for(let V of E.values())R.set(V.name,V.table);let m=xR(o.seed,E),y=xR(o.recursiveTerm,E),g=await mt(m,t,n,R,i,!0,!0),S=Dc(g,a,s),A=o.cycle,I=A?s.get(A.column):void 0,N=new Map(s);A&&N.set(A.markColumn,{...re("string"),displayName:A.markColumn});let v=A?[...a,A.markColumn]:[...a],b=[],M=[],D=new Set([...S.warnings??[],...[...E.values()].flatMap(V=>V.warnings)]),k=new xa(e.name,Nt(n)),P=V=>{k.addRow(),b.push(V)};for(let V of S.rows){let x=A?String(V[A.column]??""):"",K=A?{...V,[A.markColumn]:A.defaultValue}:V;P(K),M.push({row:V,path:A?[x]:[]})}let O=KR(e.name,y),C=O.source.cteName===null?void 0:R.get(O.source.cteName);if(!C)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let h=FR(O.self,O.selfField,l)??FR(O.source,O.sourceField,R);if(!h?.semantics||h.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${O.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let w=new Map;for(let V of C.rows){let x=String(V[O.sourceField]??""),K=gc(x,h.semantics),j=w.get(K);j?j.push(V):w.set(K,[V])}let _=w.has(gc("",h.semantics)),L=0,F=!1;for(;M.length>0;){L++;let V=[];for(let x of M){let K=String(x.row[O.selfField]??"");!F&&K===""&&_&&(D.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${O.selfField} = ${O.sourceField} \u3067\u7B2C ${L} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let j=w.get(gc(K,h.semantics))??[];for(let H of j){let ye=String(H[O.sourceField]??"");xt("=",K,ye,h.semantics)&&k.addExpansion()}if(j.length===0)continue;let $=new Map(R);$.set(e.name,{rows:[x.row],columns:a,columnMeta:s});let G=await mt(y,t,n,$,i,!0,!0);for(let H of G.warnings??[])D.add(H);let U=Dc(G,a,s);U.rows.length>0&&k.observeDepth(L);for(let H of U.rows){if(!A){P(H),V.push({row:H,path:[]});continue}let ye=String(H[A.column]??""),Ve=x.path.some(ae=>xt("=",ae,ye,I.semantics));P({...H,[A.markColumn]:Ve?A.markValue:A.defaultValue}),Ve||V.push({row:H,path:[...x.path,ye]})}}M=V}let B={type:"SELECT",rows:b,columns:v,rowCount:b.length,warnings:[...D]};return ce.set(B,N),B}async function dp(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&tn(e))return Ht(nn(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let c of e.ctes){let p;c.recursiveSpec?p=await ow(c,t,n,a,r):c.query.type==="SHOW_APPS"?p=await Qm(t):c.query.type==="DESCRIBE"?p=await Zm(c.query,t,r):c.query.type==="GENERATE_SERIES"?p=Fm(c.query):p=await mt(c.query,t,n,a,r,!0);for(let u of p.warnings??[])s.add(u);a.set(c.name,{rows:p.rows,columns:p.columns,columnMeta:ce.get(p),...c.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:c.query.columnAlias}:{}})}let l=await mt(e.query,t,n,a,r,o);return vs(l,[...s])}function Fm(e){let t=ua(e),n={type:"SELECT",columns:[e.columnAlias],rows:t.values.map(i=>({[e.columnAlias]:i})),rowCount:t.rowCount,warnings:[]},r=t.kind==="INTEGER"?{sortKind:"number",fieldType:"NUMBER",semantics:te({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:te({fieldType:"DATE"})};return ce.set(n,new Map([[e.columnAlias,r]])),n}async function mt(e,t,n,r,i,o=!1,a=!1){if(a||await ms(e,t,r,i),e.type==="UNION"){let[c,p]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]);return vm(c,p,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Ce||e.joins.some(c=>c.table.cteName!=null)))return Ht(e,t,n,i,r,o,!1,"DERIVED");let l=await aw(e,t,n,r,i);return o&&ce.set(l,await Qi(e,l.columns,t,i,r)),l}async function aw(e,t,n,r,i){await Xi(e,t,i,r);let o=Ji.get(e),a=await wr(e,t,i,r),s=new Set,l=$=>{if($.alias!==null||$.cteName===null)return $;let G=pe($);return s.add(G),{...$,alias:G}};e={...e,from:l(e.from),joins:e.joins.map($=>({...$,table:l($.table)}))};let c=new Set;for(let $ of[e.from,...e.joins.map(G=>G.table)]){let G=pe($);if(G!==null){if(c.has(G))throw new Error(`ArgumentError: effective alias ${G} is used by multiple tables.`);c.add(G)}}let p=$=>{let G=r.get($);if(!G)throw new Error(`ArgumentError: materialized source ${$} is not available.`);return G};for(let $ of[e.from,...e.joins.map(G=>G.table)])$.cteName!==null&&p($.cteName);let{resolver:u}=await Mn(e,t,i,r,mm(e)),d=ym(e,u,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,E=new Set,R=n.fetchParallel??1;await Promise.all([io(e.where,t,n,i,E,r),io(e.having,t,n,i,E,r),ey(e,t,n,i,E,r)]);let m=Te(e.where,u);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${kn(m)}).`);let y=await eo(e,t,i,r),g=bs(e)?(e.orderMode==="KINTONE_NATIVE"?bi:wi)({stmt:e,staticMode:"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:Pe(e.where)}):null,S=op(e,n,g),A=S.effectiveOptions,[I,N,v]=await Promise.all([Us(e,t,i),lp(e,t,i),Nm(e,t,i,r)]),b=cp(e,N),M=await so(e,t,i,r,Ct(e.having)||ip(e)),D=gm(e,M),k=Ds(e,I)??Sn(e,I);Ol(k);let P=t,O=await ny(e.columns,t,A,i,E,r),C=Promise.resolve(y);C.catch(()=>{});let h=new Map,w=new Map;if(e.from.cteName!=null){let $=p(e.from.cteName);h.set(e.from.alias,$.rows.map(GR)),w.set(e.from.alias,$.columns)}else{let $=await Oc(S,()=>Wi(e,e.from,P,f,R,!0,A.onLimitReached??"error",E,k.mainCondition,m.capability==="EXACT_PUSHDOWN",a));h.set(e.from.alias,$)}let _=e.joins.map($=>Oc(S,async()=>{if($.table.cteName!=null){let G=p($.table.cteName);h.set($.table.alias,G.rows.map(GR)),w.set($.table.alias,G.columns)}else{let G=$.table.alias?k.joinConditions.get($.table.alias)??null:null,H=await Bm(e,$,h,P,f,R,A.onLimitReached??"error",E,i,r,G,a)??await Wi(e,$.table,P,f,R,!1,A.onLimitReached??"error",E,G,!0,a);h.set($.table.alias,H)}}));await Promise.all(_);let{optionOrders:L,sortKinds:F,semantics:B}=await C,V=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:x,columns:K}=Yu({tables:h,stmt:e,scalarCache:O,optionOrders:L,sortKinds:F,orderSemantics:B,fieldTypeResolver:b.row,fieldSemanticsResolver:M,havingFieldTypeResolver:b.having,havingFieldSemanticsResolver:D,aggregateSortKindResolver:v,appliedKlikes:k.appliedKlikes,sourceColumns:V,tableColumns:w,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:se(n)}),j=await fp(e,x,K,t,i);return vs({type:"SELECT",rows:x,columns:j,rowCount:x.length,warnings:[...E]},d)}async function fp(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await Q(e.from.appId,r,i);return vE(o,e.from.subtableCode,()=>xs(e.from.appId,r,i))}function GR(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Wi(e,t,n,r,i,o,a,s,l=null,c=!0,p,u=""){let d=An(e,t,p),f=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Zc(n,t.appId),hE(e,t,o))throw new We(`\u5916\u90E8\u7D50\u5408\u306E\u6B63\u3057\u3044\u7D50\u679C\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: OUTER_JOIN_NON_PRESERVED\uFF08APP${t.appId}\uFF09\u3002onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,!0)};if(!t.subtableCode){let y=o&&c?Fd(e,t.appId).query:"",g=[l!==null?z(l):"",u].filter(N=>N!==""),S=g.length>1?g.map(N=>`(${N})`).join(" and "):g[0]??"",A=y&&S?`(${y}) and (${S})`:y||S;return(await ut(n.getRecords,t.appId,A,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let E=o&&c&&e.joins.length===0&&e.where!==null&&pp.get(e)?.capability==="EXACT_PUSHDOWN"&&!Mt(e.where)?z(e.where):"",m=(await ut(n.getRecords,t.appId,E,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return JE(m,t.subtableCode)}var Sr=50;function sw(e){let t=we(e);return t!==null?JSON.stringify(t):e}function Uc(e){return JSON.stringify(e)}function fn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?sw(n):n))}var $R={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function BR(e,t,n,r=[]){if(t){if(e===1)return"\u901A\u5E38\u5B9F\u884C client \u306E native \u80FD\u529B\u304C\u4E0D\u660E";if(e===2)return"native \u8A2D\u5B9A\u304C\u4E0D\u660E";if(e===3)return"\u30D5\u30A9\u30FC\u30E0\u30E1\u30BF\u30C7\u30FC\u30BF\u672A\u53D6\u5F97";if(e===5||r.includes(5))return"\u30BD\u30FC\u30B9\u884C\u672A materialize";if(e===6)return"\u30AD\u30FC\u578B\u60C5\u5831\u304C\u672A\u78BA\u5B9A\u306E\u305F\u3081\u91CD\u8907\u5224\u5B9A\u4E0D\u80FD"}return e===1?"client \u304C upsertRecords \u80FD\u529B\u3092\u6301\u305F\u306A\u3044":e===2?n==="CLI"?"--native-upsert \u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044":"enableNativeUpsert \u304C false":e===3?"\u30AD\u30FC\u9805\u76EE\u306F\u91CD\u8907\u7981\u6B62\u306E SINGLE_LINE_TEXT \u307E\u305F\u306F NUMBER \u3067\u306F\u306A\u3044":e===4?"CHECK / APPLY / IMPORT / VALIDATE ONLY / ON ERROR SKIP \u3092\u4F34\u3046\u7D20\u3067\u306A\u3044 UPSERT":e===5?"\u30BD\u30FC\u30B9\u306B\u7A7A\u6587\u5B57\u30AD\u30FC\u304C\u3042\u308B":"\u30BD\u30FC\u30B9\u5185\u306B\u540C\u4E00\u30AD\u30FC\u304C\u3042\u308B"}function hc(e,t,n){if(t.status==="ELIGIBLE")return` ${e}: ELIGIBLE\uFF08${e.includes("statement/data")?"\u6761\u4EF6 3\u301C6 \u3092":"6 \u6761\u4EF6\u3092\u3059\u3079\u3066"}\u6E80\u305F\u3059\uFF09`;if(t.status==="INELIGIBLE")return` ${e}: INELIGIBLE\uFF08\u6761\u4EF6 ${t.condition}: ${$R[t.condition]} \u2014 ${BR(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${$R[o]} \u2014 ${BR(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function lw(e,t){if(t==="DOCUMENT_ONLY")return[hc("native UPSERT statement/data eligibility",e.statement,t),` native UPSERT execution surface: NOT_APPLICABLE\uFF08\u3053\u306E\u9762\u3067\u306F\u5B9F\u884C\u3057\u306A\u3044${e.statement.status==="ELIGIBLE"?"\u3002/flow \u307E\u305F\u306F CLI --native-upsert \u3067\u306F native \u5019\u88DC":""}\uFF09`];let n=[hc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(hc("native UPSERT statement/data eligibility",e.statement,t)),n}function uw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function cw(e,t,n){let r=null;if(e.type==="UPSERT")try{r=wp(e)}catch{}return Ep({surface:n.surface==="DOCUMENT_ONLY"?"DOCUMENT_ONLY":"EXECUTION",clientCapability:n.surface==="DOCUMENT_ONLY"?null:n.clientHasNativeUpsert??null,enabled:n.surface==="DOCUMENT_ONLY"?null:n.surface==="FLOW"?n.enableNativeUpsert!==!1:n.enableNativeUpsert===!0,statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Pr.has(e)},fieldInfos:t,rowKeyValues:r})}async function Km(e,t,n){let r=uw(e);if(!r)return[];let i=await Vm(r.appId,t);return lw(cw(r,i,n),n.surface)}function Ep(e){let t=e.statement.keyFields.length===1?e.statement.keyFields[0]:void 0,n=t===void 0||e.fieldInfos===null?void 0:e.fieldInfos.find(d=>d.code===t),r=n?.fieldType==="SINGLE_LINE_TEXT"||n?.fieldType==="NUMBER",i=e.fieldInfos===null?null:!!(t!==void 0&&n&&r&&n.isUnique===!0),o=!e.statement.hasCheck&&!e.statement.hasApply&&!e.statement.validateOnly&&!e.statement.onErrorSkip&&!(e.statement.kind==="SELECT"&&e.statement.importDerived),a=e.rowKeyValues,s=a===null?null:a.every(d=>d.every(f=>f!=="")),l=null;if(a!==null&&t!==void 0&&r){let d=new Set;l=!0;for(let f of a){let E=fn([...f],[n.fieldType==="NUMBER"]);if(d.has(E)){l=!1;break}d.add(E)}}let c=(d,f)=>({state:d===null?"UNKNOWN":d?"PASS":"FAIL",reason:f}),p={1:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"client capability is not applicable on this surface"}:c(e.clientCapability,"client does not provide upsertRecords"),2:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"native setting is not applicable on this surface"}:c(e.enabled,"native UPSERT is disabled"),3:c(i,"update key schema is not a single unique text or number field"),4:c(o,"statement is not a plain UPSERT"),5:c(s,"source contains an empty update key"),6:c(l,"source contains duplicate update keys")},u=d=>{let f=d.find(R=>p[R].state==="FAIL");if(f!==void 0)return{status:"INELIGIBLE",condition:f,reason:p[f].reason};let E=d.filter(R=>p[R].state==="UNKNOWN").map(R=>({condition:R,reason:p[R].reason}));return E.length>0?{status:"UNKNOWN",unknownConditions:E}:{status:"ELIGIBLE"}};return{conditions:p,execution:u([1,2,3,4,5,6]),statement:u([3,4,5,6])}}function Rp(e){return"upsertRecords"in e&&typeof e.upsertRecords=="function"}function Gm(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:Rp(t),enabled:em(n),statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Pr.has(e)},fieldInfos:r,rowKeyValues:i}}var Ps=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function pw(e,t){if(!e||!Array.isArray(e.records)||e.records.length!==t)throw new Ps;let n=0,r=0;for(let i of e.records){if(!i||typeof i.id!="string"||typeof i.revision!="string"||i.operation!=="INSERT"&&i.operation!=="UPDATE")throw new Ps;i.operation==="INSERT"?n+=1:r+=1}return{insertedCount:n,updatedCount:r}}async function $m(e,t,n,r,i,o){if(n.length===0)return{type:"UPSERT",insertedCount:0,updatedCount:0};if(o.confirm&&!await o.confirm(n.length,"UPDATE"))throw new me("UPDATE",n.length);let a=0,s=0;for(let l=0;l<n.length;l+=100){let c=n.slice(l,l+100).map((d,f)=>{let E={};for(let[R,m]of Object.entries(d))R!==t&&(E[R]=m);return{updateKey:{field:t,value:r[l+f][0]},record:E}}),p=await i.upsertRecords({app:e,upsert:!0,records:c}),u=pw(p,c.length);a+=u.insertedCount,s+=u.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function lo(e,t){let n=e.raw.get(Uc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(fn(t,e.numericKey))}async function uo(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,c=t.map(y=>o.get(y)==="NUMBER"),p={raw:new Map,normalized:new Map,numericKey:c,...a?{snapshots:new Map}:{}},u=(y,g,S)=>{let A=y.get(g);(A===void 0||S>A)&&y.set(g,S)},d=(y,g)=>{u(p.raw,Uc(y),g),c.some(Boolean)&&u(p.normalized,fn(y,c),g)},f=new Set,E=[],R=new Set;for(let y of n){let g=Uc(y);R.has(g)||(R.add(g),y.some(S=>S==="")?E.push(y):f.add(y[0]))}let m=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let y of co([...f],Sr)){let g=`${t[0]} in (${y.map(Zi).join(",")})`,S=await Ge(r.getRecords,e,g,m,{maxRecords:s,parallel:l});for(let A of S){let I=Number(A.$id?.value);Number.isFinite(I)&&(p.snapshots?.set(I,A),d(t.map(N=>mp(A[N]?.value)),I))}}for(let y of E){let g=t.map((I,N)=>`${I} = ${Zi(y[N])}`).join(" and "),S=a?[...new Set(["$id",...a])]:["$id"],A=await Ge(r.getRecords,e,g,S,{maxRecords:s,parallel:l});if(A.length!==0){for(let I of A){let N=Number(I.$id?.value);Number.isFinite(N)&&p.snapshots?.set(N,I)}d(y,dw(A))}}return p}function dw(e){let t=Number.NEGATIVE_INFINITY;for(let n of e){let r=Number(n.$id?.value);Number.isFinite(r)&&r>t&&(t=r)}if(!Number.isFinite(t))throw new Error("\u30EC\u30B3\u30FC\u30C9\u306B\u6570\u5024\u306E $id \u304C\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093\u3002");return t}function mp(e){return typeof e=="string"?e:e==null?"":String(e)}function Zi(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function co(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var fw=6,hs=Fa*fw;async function Bm(e,t,n,r,i,o,a,s,l,c,p=null,u,d=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,E=t.on.right.tableAlias;if(!f||!E)return null;let R,m,y;if(f===t.table.alias&&E!==t.table.alias)R=E,m=t.on.right.field,y=t.on.left.field;else if(E===t.table.alias&&f!==t.table.alias)R=f,m=t.on.left.field,y=t.on.right.field;else return null;let g=n.get(R);if(!g)return null;let S=[e.from,...e.joins.map(h=>h.table)].find(h=>pe(h)===R),A=(await Q(t.table.appId,r,l)).find(h=>h.code===ue(t.table,y)),I=A?xe(A,t.table.appId):tt(y),N;if(S?.cteName!==null&&S?.cteName!==void 0)N=Ne(c?.get(S.cteName),m);else if(S){let h=(await Q(S.appId,r,l)).find(w=>w.code===ue(S,m));N=h?xe(h,S.appId):tt(m)}let v=[],b=!1;for(let h of g){let w=h[m]?.value,_=mp(w);(w==null||_.length===0)&&(b=!0),v.push(_)}let M=Ou({fieldType:I?.fieldType,sourceSemantics:N?.semantics,sourceRowCount:g.length,values:v,hasEmptyValue:b,maxInKeys:hs});if(M.kind==="EMPTY_SOURCE")return[];if(M.kind==="FALLBACK"){if(M.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let h=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${h} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${hs} \u4EF6\uFF09\u3002`)}return null}if(M.kind==="RANGE_CANDIDATE")return null;let D=Pu(M,y,Zi);if(D.length===0)return s.add(`JOIN\u30AD\u30FC\u304C 0 \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${hs} \u4EF6\uFF09\u3002`),null;let k=An(e,t.table,u),P=h=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${h} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${h} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Zc(r,t.table.appId)},O=[],C=new Set;for(let h of D){let _=[p!==null?z(p):"",d].filter(F=>F!=="").reduce((F,B)=>`(${F}) and (${B})`,h),L=await ut(r.getRecords,t.table.appId,_,k,{parallel:o,maxRecords:i,onLimit:a,onTruncate:P});for(let F of L.records){let B=`${F.$id?.value??""}:${JSON.stringify(F)}`;C.has(B)||(C.add(B),O.push(F))}}return O}var Mc=new Map,kc=new Map,xc=new Map,Os=new Map,Fc=new Map,Kc=new Map;function yp(e){Mc.delete(e),kc.delete(e),xc.delete(e),Os.delete(e),Fc.delete(e),Kc.delete(e)}function Vn(e,t,n){return e.get(t)?.get(n)}function Or(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function Q(e,t,n){let r=Vn(Os,n,e);if(r)return r;let i=t.getFields(e);return Or(Os,n,e,i),i}async function Vm(e,t){let n=Vn(Os,t,e);return n?await n:null}async function _t(e,t,n){let r=Vn(Kc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Or(Kc,n,e,i),i}async function xs(e,t,n){let r=Vn(Fc,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Or(Fc,n,e,i),i}async function gp(e,t,n){let r=await xs(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ke(e,t,n){let r=Vn(Mc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Or(Mc,n,e,o),o}async function Gc(e,t,n){let r=Vn(kc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Or(kc,n,e,o),o}async function Ew(e,t,n){let r=await Gc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function VR(e,t,n){let r=Vn(xc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Or(xc,n,e,o),o}function Rw(e){let t=[...e.orderBy,...e.columns.flatMap(n=>n.type==="WINDOW_COL"?n.orderBy:[])];return[...new Set(t.flatMap(n=>n.key.type==="FIELD_NAME"?[n.key.name]:[]))]}async function mw(e,t,n,r){let i=Rw(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let d=await Q(u,t,n);return[u,new Map(d.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let R=s.get(e.from.appId)?.get(u.field);return R?xe(R,e.from.appId):void 0}let f=o.find(R=>pe(R)===u.tableAlias);if(!f)return;if(f.cteName!==null)return Ne(r?.get(f.cteName),u.field);let E=s.get(f.appId)?.get(ue(f,u.field));return E?xe(E,f.appId):tt(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Ne(r?.get(e.from.cteName),u.field);let f=s.get(e.from.appId)?.get(ue(e.from,u.field));return f?xe(f,e.from.appId):tt(u.field)}let d=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),y=Ne(m,u.field);return y?[y]:[]}let E=s.get(f.appId)?.get(ue(f,u.field)),R=E?xe(E,f.appId):tt(u.field);return R?[R]:[]});return d.length>1&&a.add(u.field),d.length===1?d[0]:void 0},c=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let d;if(u.type==="FIELD")d=l(Fe(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")d=re("number");else if(u.type==="WINDOW_COL")d=Om(u,l);else if(u.type==="GROUPING_COL")d=re("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")d=re("string");else if(u.type==="STRFUNC_COL")d=Kn(u.expr,l);else if(u.type==="SCALAR_SUBQUERY_COL")d=et();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(E=>Nr(E.result,l));u.expr.elseResult&&f.push(Nr(u.expr.elseResult,l)),d=ks(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(d=Gn(u.arg,l)):d=u.func==="GROUP_CONCAT"?re("string"):re("number"));d?.semantics&&c.set(u.alias,d.semantics)}let p=new Map;for(let u of i){let d=Oe(u,c.keys()),f=(d===void 0?void 0:c.get(d))??l(Fe(u))?.semantics;if(!f){let R=Fe(u);R.tableAlias===null&&a.has(R.field)&&p.set(u,te({fieldType:"KSQL_AMBIGUOUS"}));continue}let E=f;if(f.fieldType==="STATUS"&&f.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await xs(f.source.appId,t,n);R.enable&&R.states!==null&&(E={...f,optionOrder:new Map(R.states.map(m=>[m.name,m.index]))})}p.set(u,E)}return p}async function eo(e,t,n,r){let i=e.columns.some(l=>l.type==="WINDOW_COL"&&l.orderBy.length>0);if(e.orderBy.length===0&&!i)return{optionOrders:new Map,sortKinds:new Map,semantics:new Map};let[o,a,s]=await Promise.all([yw(e,t,n),gw(e,t,n),mw(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function yw(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await Gc(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Gc(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}async function gw(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await VR(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await VR(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}function Wm(e,t){if(typeof e!="string")return e;let n=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),r=new Set(["CHECK_BOX","MULTI_SELECT"]);if(n.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i)&&i.every(o=>typeof o=="object"&&"code"in o))return i.map(o=>({code:o.code}))}catch{}return e.split(",").map(i=>({code:i.trim()}))}if(r.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i))return i.map(String)}catch{}return e.split(",").map(i=>i.trim())}return e}var hw=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Aw(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of t){let o=r.get(i);if(!o)throw new Error(`ArgumentError: DML target field ${i} does not exist.`);if(o.inSubtable)throw new Error(`ArgumentError: DML target field ${i} is inside a subtable. Use subtable DML syntax (for example, APP${e}$\u30C6\u30FC\u30D6\u30EB).`);if(o.writable===!1||hw.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function yt(e,t,n,r){let i=await Q(e,n,r);return Aw(e,t,i),i}async function Yt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?_t(e,r,i):void 0}function En(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),c=o[s]?.value??"",p=Ye(c,l,r);if(!p.ok)throw new Error(`DmlValidationError: ${p.code} ${p.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(c)&&c.every(d=>typeof d=="object"&&d!==null&&"code"in d);o[s]={value:u?c:p.value}}})}async function Sw(e,t,n,r,i){let o=await yt(e.appId,e.fields,t,r),a=await yi({statement:e,fieldInfos:o,dmlMaxRows:rt(n.dmlMaxRows,"dmlMaxRows",jt),dmlMaxSubtableRows:rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),statementNumber:i,loadNumberPrecision:()=>_t(e.appId,t,r)});return Xw(e,a,o)}async function Tw(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Hm(e,t,n,r,i);return Zw(e,a,o)}async function Hm(e,t,n,r,i){let o=await yt(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=wp(e),l=new Set;for(let m of s){let y=fn(m,e.keyFields.map(g=>a.get(g)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let c=await uo(e.appId,e.keyFields,s,t,n,a),p=s.map(m=>lo(c,m)),u=new Map,d=[...new Set(p.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of co(d,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let g of y.records){let S=Number(g.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,g)}}let E=p.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:u.get(m)}})),R=await dE({statement:e,matches:E,fieldInfos:o,dmlMaxRows:rt(n.dmlMaxRows,"dmlMaxRows",jt),dmlMaxSubtableRows:rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),statementNumber:i,loadNumberPrecision:()=>_t(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Iw(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await yt(e.appId,e.fields,t,r),o=await yi({statement:e,fieldInfos:i,dmlMaxRows:rt(n.dmlMaxRows,"dmlMaxRows",jt),dmlMaxSubtableRows:rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),loadNumberPrecision:()=>_t(e.appId,t,r)}),a=Iu(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Fs(a),applyDiagnostic:a}))throw new me("INSERT",o.guards.parentRows);let s=await yE(o,t,a);return{...s,diagnostic:Je(a,s)}}async function ww(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Hm(e,t,n,r,1),o=wu(i);if(n.confirm){let s=Fs(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new me("UPDATE",i.guards.parentRows)}let a=await gE(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Je(o,a)}}function bw(e,t){let n=new Map;for(let r of[...e,...t]){let i=n.get(r.table);n.set(r.table,i?{table:r.table,patchRows:i.patchRows+r.patchRows,appendRows:i.appendRows+r.appendRows,removeRows:i.removeRows+r.removeRows}:{...r})}return[...n.values()]}function Fs(e,t=!0){let n=e.branches.find(d=>d.branch==="insert"),r=e.branches.find(d=>d.branch==="update"),i=e.branches.flatMap(d=>d.targets),o=bw(n?ds(n):[],r?ds(r):[]),a=Nw(i),s=e.branches.reduce((d,f)=>d+(f.parentRows??0),0),l=i.filter(d=>d.targetKind==="SUBTABLE").reduce((d,f)=>d+(f.changedCount??0),0),c=o.reduce((d,f)=>d+f.appendRows,0),p=o.reduce((d,f)=>d+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:c,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:p,deletedParentRows:e.branches.reduce((d,f)=>d+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(d=>d.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(d=>d.targetKind==="SUBTABLE").reduce((d,f)=>d+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let d=ds(n),f=ds(r);return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:d.reduce((E,R)=>E+R.appendRows,0),tables:d},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return u}function ds(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=xn(t,"APPEND"),r=xn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function xn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function Nw(e){let t=new Map;for(let n of e.filter(r=>r.targetKind==="MULTI_VALUE")){let r={field:n.field,fieldType:n.fieldType??"UNKNOWN",addedValues:xn(n,"ADD"),removedValues:xn(n,"REMOVE_VALUE"),changedValues:n.changedCount??0,parents:(n.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(n.field);t.set(n.field,i?{...i,addedValues:i.addedValues+r.addedValues,removedValues:i.removedValues+r.removedValues,changedValues:i.changedValues+r.changedValues,parents:[...i.parents,...r.parents]}:r)}return[...t.values()]}async function hp(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Sw(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Tw(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Jm(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Ap(e,t,n,r,i,o)).result}var to=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Ap(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",c=e.type==="UPDATE"?["$id",...e.assignments.map(C=>C.field)]:[...e.fields];if(new Set(c).size!==c.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let p=e.type==="UPDATE"?e.assignments.map(C=>C.field):e.fields,u=await yt(e.appId,p,t,r);e.type==="UPDATE"&&await Ir(e,t,r);let d=new Map(u.map(C=>[C.code,C])),f=await Yt(e.appId,p,u,t,r),E=It(u,c),R=eR(E),m=(await Cw(e,l,t,n,r,i,d,e.type==="UPDATE"?R:void 0)).sort((C,h)=>C.rowNumber-h.rowNumber),y=m.filter(C=>C.mode==="update"),g=e.type==="UPDATE"?Lw:e.type.startsWith("UPSERT")?C=>_w(C,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??g,A=y.length>0&&S!==void 0,I=new Map;if(A){Eu(y,p,u);let C=await S({appId:e.appId,candidates:y,fields:R}),h=new Map;for(let w of y){if(w.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${w.rowNumber}).`);let _=C.get(w.targetId);if(!_)throw new Error(`InternalError: update-mode snapshot is missing for record ${w.targetId}.`);let L=tR(_,w.record??{});h.set(w.rowNumber,L)}f===void 0&&[...h.values()].some(w=>bn(w,E))&&(f=await _t(e.appId,t,r));for(let w of y){let _=h.get(w.rowNumber);if(!_)throw new Error(`InternalError: validation post-image is missing for row ${w.rowNumber}.`);I.set(w.rowNumber,Nn(_,E,f,o,w.rowNumber,l))}}let N=Ru(m,l,c,p,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!A}),{errors:v,invalidRows:b,invalidRowNumbers:M}=N;if(A){let C=new Map(N.candidateResults.map(h=>[h.rowNumber,h]));v=[],M=new Set;for(let h of m){let w=C.get(h.rowNumber);if(!w)throw new Error(`InternalError: validation detail is missing for row ${h.rowNumber}.`);if(h.mode==="create"){let F=[...w.preErrors,...w.builtInErrors,...w.checkErrors];v.push(...F),F.length>0&&M.add(h.rowNumber);continue}let _=I.get(h.rowNumber);if(!_)throw new Error(`InternalError: prepared post-image validation is missing for row ${h.rowNumber}.`);let L=nR({rowNumber:h.rowNumber,setFields:p,normalizedPostImage:_.normalizedRecord,preErrors:w.preErrors,postImageErrors:_.errors,checkErrors:w.checkErrors});h.record=L.writeRecord,v.push(...L.errors);for(let F of L.invalidRowNumbers)M.add(F)}b=M.size}let D=[...c,...dr],k={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-b,invalidRows:b,errorCount:v.length,columns:D,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},P=new Map;for(let C of c){if(C==="$id"){P.set(C,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:te({fieldType:"RECORD_NUMBER"})});continue}let h=d.get(C);h&&P.set(C,xe(h,e.appId))}let O=new Set(["$err_statement","$err_row"]);for(let C of dr)P.set(C,re(O.has(C)?"number":"string"));return Bn.set(k,P),{result:k,candidates:m,invalidRowNumbers:M,columnMeta:P}}async function $c(e,t,n,r,i,o){let a=await Ap(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");Lt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??nt,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new to(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let c=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(c.length,E))throw new me(E,c.length)}let p={affectedRows:c.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<c.length;R+=100){let m=await t.postRecords({app:e.appId,records:c.slice(R,R+100).map(y=>y.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...p}}if(e.type==="UPDATE"){let E=c.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...p}}let u=c.filter(E=>E.mode==="create"),d=c.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<u.length;E+=100){let R=await t.postRecords({app:e.appId,records:u.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<d.length;E+=100)await t.putRecords({app:e.appId,records:d.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:d.length,...p}}async function Cw(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return Ow(e,n,r,i,o,s);let l,c,p,u,d;if(e.type==="INSERT"||e.type==="UPSERT")WR(e,e.fields),d=new Map(e.fields.map(A=>[A,a.get(A)?.fieldType??""])),$n(e,d),l=e.values.map(A=>A.map((I,N)=>I.type==="CASE_VALUE"?Kt(I.expr,{},a.get(e.fields[N])?.fieldType,se(r)):I));else{let A=await Tp.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(A.columns.length<e.fields.length||!I&&A.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${A.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(I&&new Set(A.columns).size!==A.columns.length)throw _e("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");WR(e,A.columns),c=A.rows,p=A.importPresence,u=A.importRowErrors;let N=A.columnMeta;d=new Map(A.columns.map(v=>{let b=N?.get(v),M=b?.fieldType??(b?.semantics?.compareMode==="number"||b?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,M]})),$n(e,d),l=A.rows.map(v=>A.columns.map(b=>v[b]??""))}let f=l.map((A,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((N,v)=>p&&!p[I]?.has(N)?[]:[[N,A[v]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:c?.[I]??Object.fromEntries(e.fields.map((N,v)=>[N,Tt(A[v])])),evaluationFieldTypes:d}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let A of e.keyFields)if(!e.fields.includes(A))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${A}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([A,I])=>[A,I.fieldType])),R=f.map(A=>e.keyFields.map(I=>Tt(A.payload.get(I)))),m=e.keyFields.map(A=>E.get(A)==="NUMBER"),y=new Map;for(let A of R){let I=fn(A,m);y.set(I,(y.get(I)??0)+1)}let g=Pr.has(e);if(g&&[...y.values()].some(A=>A>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let S=await uo(e.appId,e.keyFields,R,n,r,E);return f.forEach((A,I)=>{let N=R[I],v=lo(S,N);A.mode=v===void 0?"create":"update",v!==void 0&&(A.targetId=v),e.keyFields.forEach((b,M)=>{N[M]===""&&A.preErrors.push({field:b,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${b} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!g&&(y.get(fn(N,m))??0)>1&&A.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function Sp(e){return e.checkGroups?cr(e.checkGroups):[]}function WR(e,t){let n=new Set(t);for(let r of Sp(e)){if(r.tableAlias!==null)throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var Pw=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function $n(e,t){if(e.checkGroups)for(let n of Df(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(Pw.has(i??""))throw _e(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function Ow(e,t,n,r,i,o){if(e.from)return Dw(e,e.from,t,n,r,i,o);await ty(e.assignments,t,n,r);let a=await Ke(e.appId,t,r),s=Ym(e,a);$n(e,Bc(a,e.appId));let l,c=new Map,p=new Map;if(Ia(e)){let u=Ql(e),d=[...new Set([...u.fields,...s,...o??[]])],f=await ut(t.getRecords,u.app,u.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=As(f.records),c=p,l=eu(e,f.records,a,se(n)).flatMap(E=>E.records)}else{let u=li(e);if(s.length>0){let d=[...new Set(["$id",...s,...o??[]])],f=await ut(t.getRecords,u.app,u.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=As(f.records),c=p,l=ui(e,[...c.keys()],a).flatMap(E=>E.records)}else if(o){let d=await ut(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=As(d.records),l=ui(e,[...p.keys()],a).flatMap(f=>f.records)}else{let d=await Ga(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=ui(e,d.ids,a).flatMap(f=>f.records)}}return l.sort((u,d)=>u.id-d.id).map((u,d)=>({rowNumber:d+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:p.get(u.id),evaluationRow:vw(c.get(u.id),e.appId),evaluationFieldTypes:Bc(a,e.appId)}))}function As(e){let t=new Map;for(let n of e){let r=n.$id?.value,i=Number(r);if(!Number.isSafeInteger(i)||i<=0)throw new Error(`InternalError: invalid $id in UPDATE validation snapshot: ${String(r)}.`);if(t.has(i))throw new Error(`InternalError: duplicate $id in UPDATE validation snapshot: ${i}.`);t.set(i,n)}return t}async function Lw(e){let t=new Map;for(let n of e.candidates){if(n.targetId===void 0||!n.validationSnapshot)throw new Error(`InternalError: update-mode snapshot is missing for record ${String(n.targetId)}.`);if(t.has(n.targetId))throw new Error(`InternalError: duplicate UPDATE validation candidate target: ${n.targetId}.`);t.set(n.targetId,n.validationSnapshot)}return t}async function _w(e,t,n){let r=[...new Set(e.candidates.map(a=>{let s=a.targetId;if(!Number.isSafeInteger(s)||s===void 0||s<=0)throw new Error(`InternalError: invalid targetId in UPSERT validation candidate: ${String(s)}.`);return s}))];if(r.length>n)throw new We(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of co(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let c=l.$id?.value,p=Number(c);if(!Number.isSafeInteger(p)||p<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(c)}.`);if(!i.has(p))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${p}.`);if(o.has(p))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${p}.`);o.set(p,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function Ym(e,t){if(e.from)return[];let n=new Set;for(let r of Sp(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw _e(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw _e(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function vw(e,t){if(!e)return{};let n=Bt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Bc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Dw(e,t,n,r,i,o,a){let s=await yy(e,t,n,i,o);$n(e,s.evaluationTypes);let l=await jm(e,t,n,r,i,o,a),c=await Ke(e.appId,n,i),p=nu(e,l,c,se(r)).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),d=a?As(l.map(f=>f.target)):new Map;return p.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:d.get(f.id),evaluationRow:Gb(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var Uw=Sr,Mw=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function jm(e,t,n,r,i,o,a){if(t.cteName!==null){let I=o?.get(t.cteName),N=b=>Oe(b,I?.columns??[])??b;t.joinKeyField=N(t.joinKeyField);for(let b of e.assignments)b.value.type==="SOURCE_FIELD"&&b.value.alias===t.alias&&(b.value.field=N(b.value.field));let v=b=>{if(b===null||typeof b!="object")return;if(Array.isArray(b)){b.forEach(v);return}let M=b;M.type==="FIELD"&&M.tableAlias===t.alias&&typeof M.field=="string"&&(M.field=N(M.field)),Object.values(M).forEach(v)};v(e.checkGroups)}let s=await kw(e,t,n,i),l=await yy(e,t,n,i,o),c=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...c])],u=await xw(t,p,c,n,r,i,o),d=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let N=HR(I[t.joinKeyField],s,"source");if(d.has(N))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${N}.`);d.set(N,I),f.set(N,String(I[t.joinKeyField]).trim())}if(d.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...tb(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":li({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],g=new Set,S=0;for(let I of co([...f.values()],Uw)){let N=`${t.targetJoinField} in (${I.map(Zi).join(",")})`,v=m?`(${N}) and (${m})`:N,b=await ut(n.getRecords,e.appId,v,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=b.records.length,S>E)throw new We(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let M of b.records){let D=M.$id?.value;if(typeof D!="string"||D==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");g.has(D)||(g.add(D),y.push(M))}}let A=[];for(let I of y){let N=I[t.targetJoinField]?.value,v=HR(N,s,"target");if(v===null)continue;let b=d.get(v);b!==void 0&&A.push({target:I,source:b})}return A}async function kw(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await Q(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function xw(e,t,n,r,i,o,a){if(e.cteName!==null){let p=a?.get(e.cteName);if(!p)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(Cr(p,u)===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return p.rows}let s=await Ke(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let p of n){if(p!=="$id"&&!s.has(p))throw new Error(`ArgumentError: UPDATE ... FROM source column ${p} does not exist.`);let u=p==="$id"?"RECORD_NUMBER":s.get(p);if(Mw.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${p}).`)}return(await ut(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>Bt(p,null))}function HR(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=we(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function po(e,t,n,r,i){let o=await Ap(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new me(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let d=0;d<a.length;d+=100){let f=await t.postRecords({app:e.appId,records:a.slice(d,d+100).map(E=>E.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(d=>({id:d.targetId,record:d.record}));for(let d=0;d<u.length;d+=100)await t.putRecords({app:e.appId,records:u.slice(d,d+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),c=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),p=0;for(let u=0;u<l.length;u+=100){let d=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});p+=d.ids.length}for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPSERT",insertedCount:p,updatedCount:c.length}}async function Fw(e,t,n,r){if(e.applyBlocks?.length)return Iw(e,t,n,r);if(e.checkGroups?.length)return po(e,t,n,r);if(e.subtableCode)return ob(e,t,n,r);let i=await yt(e.appId,e.fields,t,r),o=await Yt(e.appId,e.fields,i,t,r),a=await Ke(e.appId,t,r),s=Ta(e,a,se(n));En(s.flatMap(c=>c.records),e.fields,i,o);let l=[];for(let c of s){let p=await t.postRecords(c);l.push(p.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function Kw(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Ce},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function zm(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=lR(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let x=new Set(e.targets.filter(K=>K.kind==="SUBTABLE").map(K=>K.subtableCode));if(e.replaceSubtables.some(K=>!x.has(K)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let K of e.targets.filter(j=>j.kind==="SUBTABLE"))if(!K.rowIdSourceHeader||!e.replaceSubtables.includes(K.subtableCode))throw new Error(`ArgumentError: CSV subtable ${K.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,d=await Q(e.appId,t,r),f=u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children),E=d.some(x=>f.includes(x.code)&&x.fieldType==="NUMBER")?await _t(e.appId,t,r):void 0,R=await ss(o,new Map),m=e.source.kind==="JSON"?fR(e.source,R,u,n.maxRecords??1e4):ER(e.source,R,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader);await Jc(n,e.source,m.receipt);let y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",g=gR(m,u,d,E,y);if(e.source.kind==="CSV")return Gw(e,m,g,d,t,n,i);lc(g,e.rejectLimit);let S=[...new Set(u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children))],A=cc(g.errors,S),I=[...S,...uc],N=g.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:g.parents.length,valid:g.parents.length-N,invalid:N,mutationCandidates:g.parents.filter(x=>x.valid).length},tables:Object.fromEntries(g.tableCounts),writesKintone:!1},b={type:"VALIDATION",operation:y,validatedRows:g.parents.length,validRows:g.parents.length-N,invalidRows:N,errorCount:A.length,columns:I,errors:A,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&Lt(i,e.validationErrorTable,I,A,n.tempTableMaxRows??nt,new Map),e.validateOnly)return b;if(AR(m),g.errors.length>0&&!e.onErrorSkip){let x=g.errors[0];throw new Error(`DmlValidationError: ${x.code} ${x.message} (row=${x.parentRow}, field=${x.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Lt(i,e.errorTable,I,A,n.tempTableMaxRows??nt,new Map)}let M=g.parents.filter(x=>x.valid),D=new Map(d.map(x=>[x.code,x.fieldType])),k=M.map(()=>{});if(e.keyFields){for(let G of e.keyFields)if(!e.fields.includes(G))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${G}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let x=e.keyFields.map(G=>D.get(G)==="NUMBER"),K=new Set,j=M.map(G=>e.keyFields.map(U=>String(G.top[U]?.value??"")));for(let G of j){let U=fn(G,x);if(K.has(U))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");K.add(U)}let $=await uo(e.appId,e.keyFields,j,t,n,D);j.forEach((G,U)=>{k[U]=lo($,G)})}let P=u.filter(x=>x.kind==="SUBTABLE").map(x=>x.subtableCode),O=new Map,C=k.filter(x=>x!==void 0);for(let x of co([...new Set(C)],100)){let K=await t.getRecords({app:e.appId,query:`$id in (${x.join(",")}) limit 500`,fields:["$id","$revision",...P]});for(let j of K.records){let $=Number(j.$id?.value),G=Number(j.$revision?.value);Number.isFinite($)&&O.set($,{id:$,...Number.isFinite(G)?{revision:G}:{},record:j})}}let h=SR(M,k,O),w={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:h.length,insertedParents:h.filter(x=>x.mode==="INSERT").length,updatedParents:h.filter(x=>x.mode==="UPDATE").length,hasDeletes:h.some(x=>x.tables.some(K=>K.deleteRows>0)),parents:h.map(x=>({parentRow:x.parentRow,mode:x.mode,...x.targetId===void 0?{}:{targetId:x.targetId},tables:x.tables}))};if(h.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(h.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new me(e.keyFields?"UPDATE":"INSERT",h.length)}let _=x=>new Map(Object.entries(x).map(([K,j])=>[K,j.value])),L=x=>hR(_(x.top),new Map([...x.subtables].map(([K,j])=>[K,j.map($=>({values:_($)}))]))),F=h.filter(x=>x.mode==="INSERT"),B=h.filter(x=>x.mode==="UPDATE"),V=[];for(let x=0;x<F.length;x+=100){let K=await t.postRecords({app:e.appId,records:F.slice(x,x+100).map(L)});V.push(K.ids)}for(let x=0;x<B.length;x+=100)await t.putRecords({app:e.appId,records:B.slice(x,x+100).map(K=>({id:K.targetId,...K.revision===void 0?{}:{revision:K.revision},record:L(K)}))});return e.keyFields?{type:"UPSERT",insertedCount:V.flat().length,updatedCount:B.length,affectedRows:h.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}:{type:"INSERT",createdIds:V,insertedCount:V.flat().length,affectedRows:h.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return $w(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:Kw(),validateOnly:e.validateOnly,validationErrorTable:e.validationErrorTable,onErrorSkip:e.onErrorSkip,errorTable:e.errorTable,rejectLimit:e.rejectLimit,checkGroups:e.checkGroups},s=e.keyFields?{type:"UPSERT_SELECT",...a,keyFields:e.keyFields}:{type:"INSERT_SELECT",...a},l={source:e.source,handle:o,cache:new Map};Pr.set(s,l);let c=u=>{l.audit&&Object.assign(u,{importAudit:l.audit});let d=Is.get(s);return d?.length&&Is.set(e,d),u};if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await hp(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&Lt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??nt,Bn.get(u)??new Map),c(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",$c(s,t,n,r,i,1));return c(u)}let p=await(s.type==="UPSERT_SELECT"?Cp(s,t,n,r,i):Ip(s,t,n,r,i));return c(p)}async function Gw(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");TR(t.records);let s=t.records.map(O=>O.recordNumberSourceValue??""),l=fc(s,e.recordNumberSourceHeader),c=[...e.replaceSubtables],p=[...new Set(r.filter(O=>!O.inSubtable&&O.fieldType==="SUBTABLE").map(O=>O.code))],u=await Ge(i.getRecords,e.appId,"",["$id","$revision",...p],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),d=new Map,f=new Map;for(let O of u){let C=Number(O.$id?.value),h=Number(O.$revision?.value);if(Number.isFinite(C)){d.set(C,{id:C,...Number.isFinite(h)?{revision:h}:{},record:O});for(let w of p){let _=O[w]?.value;if(Array.isArray(_)){for(let L of _)if(L.id){let F=f.get(L.id)??[];F.push({parentId:C,table:w}),f.set(L.id,F)}}}}}let E=l.normalized.map(O=>O===null?void 0:Number(O)),R=n.parents.map((O,C)=>{let h=[...O.errors];for(let _ of l.errors[C])h.push({operation:"UPDATE",parentRow:O.parentRow,field:_.field,code:_.code,message:_.message,sourceValues:t.records[C].top});let w=E[C];return w!==void 0&&!d.has(w)&&h.push({operation:"UPDATE",parentRow:O.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`,sourceValues:t.records[C].top}),{...O,valid:h.length===0,errors:h}}),m=IR(t.records,R,E,d,f),y=m.flatMap(O=>[...O.errors]),g=new Set(m.filter(O=>!O.valid).map(O=>O.parentRow)),S={...n,parents:R,errors:y,invalidParentRows:g};lc(S,e.rejectLimit);let A=m.filter(O=>O.valid),I=m.flatMap(O=>O.tables),N=(O,C)=>I.filter(h=>h.table===O).reduce((h,w)=>h+Number(w[C]),0),v=Object.fromEntries(c.map(O=>[O,{existingRows:N(O,"existingRows"),inputRows:N(O,"inputRows"),updateRows:N(O,"updateRows"),addRows:N(O,"addRows"),deleteRows:N(O,"deleteRows"),rowIdNotFound:N(O,"rowIdNotFound")}])),b={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:A.length,insertedParents:0,updatedParents:A.length,hasDeletes:A.some(O=>O.tables.some(C=>C.deleteRows>0)),totalDeleteRows:A.flatMap(O=>O.tables).reduce((O,C)=>O+C.deleteRows,0),rowIdNotFound:A.flatMap(O=>O.tables).reduce((O,C)=>O+C.rowIdNotFound,0),invalidParents:g.size,parents:A.map(O=>({parentRow:O.parentRow,mode:"UPDATE",targetId:O.targetId,tables:O.tables}))},M=[...new Set(e.targets.flatMap(O=>O.kind==="FIELD"?[O.field]:O.children))],D=cc(y,M),k=[...M,...uc];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&Lt(a,e.validationErrorTable,k,D,o.tempTableMaxRows??nt,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-g.size,invalidRows:g.size,errorCount:D.length,columns:k,errors:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:A.length,invalid:g.size,mutationCandidates:A.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:b.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let O=y[0];throw new Error(`DmlValidationError: ${O.code} ${O.message} (row=${O.parentRow}, field=${O.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Lt(a,e.errorTable,k,D,o.tempTableMaxRows??nt,new Map)}if(A.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(A.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:b}))throw new me("UPDATE",A.length)}let P=O=>new Map(Object.entries(O).map(([C,h])=>[C,h.value]));for(let O of A){let C=pc(P(O.top),new Map([...O.subtables].map(([h,w])=>[h,w.map(_=>({..._.rowId?{rowId:_.rowId}:{},values:P(_.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:O.targetId,...O.revision===void 0?{}:{revision:O.revision},record:C}]})}return{type:"UPDATE",updatedCount:A.length,affectedRows:A.length,skippedRows:g.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:b}}async function $w(e,t,n,r,i,o){if(e.source.kind!=="CSV"||e.source.mappingMode!=="BY_NAME"||!e.recordNumberSourceHeader)throw new Error("InternalError: invalid IMPORT UPDATE AST.");if(new Set(e.fields).size!==e.fields.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let a=await yt(e.appId,e.fields,n,i),s=await Yt(e.appId,e.fields,a,n,i),l=await ss(t,new Map),c=oc(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader);await Jc(r,e.source,c.receipt);let p=c.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let u=fc(p,e.recordNumberSourceHeader),d=new Set,f=[...new Set(u.normalized.filter(b=>b!==null))];for(let b=0;b<f.length;b+=100){let M=f.slice(b,b+100),D=await n.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id"]});for(let k of D.records){let P=k.$id?.value;typeof P=="string"&&P!==""&&d.add(P.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(b=>[b.code,b])),R=new Map(e.fields.map(b=>[b,E.get(b)?.fieldType??"SINGLE_LINE_TEXT"])),m=c.rows.map((b,M)=>{let D=u.normalized[M],k=[...c.importRowErrors?.[M]??[],...u.errors[M]];return D!==null&&!d.has(D)&&k.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${D} does not exist in APP${e.appId}`}),{rowNumber:M+1,operation:"UPDATE",mode:"update",...D!==null&&d.has(D)?{targetId:Number(D)}:{},payload:new Map([[e.recordNumberSourceHeader,p[M]],...e.fields.map(P=>[P,b[P]??""])]),preErrors:k,record:{},evaluationRow:b,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],g=Ru(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),S=[...y,...dr],A={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-g.invalidRows,invalidRows:g.invalidRows,errorCount:g.errors.length,columns:S,errors:g.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(A,{importAudit:c.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&Lt(o,e.validationErrorTable,S,g.errors,r.tempTableMaxRows??nt,new Map),A}if(!e.onErrorSkip&&g.invalidRows>0){let b=g.errors[0];throw new Error(`DmlValidationError: ${b.$err_code} ${b.$err_message} (row=${b.$err_row}, field=${b.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(Lt(o,e.errorTable,S,g.errors,r.tempTableMaxRows??nt,new Map),e.rejectLimit!=null&&g.invalidRows>e.rejectLimit)throw new to(`rejected rows (${g.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let I=m.filter(b=>!g.invalidRowNumbers.has(b.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new me("UPDATE",I.length);let N=I.map(b=>({id:b.targetId,record:b.record}));for(let b=0;b<N.length;b+=100)await n.putRecords({app:e.appId,records:N.slice(b,b+100)});let v={type:"UPDATE",updatedCount:N.length,...e.onErrorSkip?{affectedRows:N.length,skippedRows:g.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:c.importAudit}),v}async function Bw(e,t,n,r,i,o){let a=Pr.get(e);if(!a){let R=i&&i.size>0?await mt(e.select,t,n,i,r,!0):await Ht(e.select,t,n,r,void 0,!0);return bR(e,R.warnings),{rows:R.rows,columns:R.columns,columnMeta:ce.get(R)}}let s=await ss(a.handle,a.cache),l=n.maxRecords??1e4,c=new Map((o??[]).map(R=>[R.code,R])),p=e.fields.map(R=>({code:R,fieldType:c.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?ic(a.source,s,p,l):oc(a.source,s,l,e.fields,o);if(await Jc(n,a.source,u.receipt),a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let d=wR(a.source.projection),f=new Map(i??[]);f.set(dc,u);let E=await mt(d,t,{...n,onLimitReached:"error"},f,r,!0);return bR(e,E.warnings),{rows:E.rows,columns:E.columns,columnMeta:ce.get(E)}}var Tp={materialize:Bw};function qm(e){for(let t=0;t<(e.importRowErrors?.length??0);t++){let n=e.importRowErrors?.[t]?.[0];if(n)throw new Error(`DmlValidationError: ${n.code} ${n.message} (row=${t+1}, field=${n.field})`)}}async function Ip(e,t,n,r,i){if(e.checkGroups?.length)return po(e,t,n,r,i);let o=await yt(e.appId,e.fields,t,r),a=await Yt(e.appId,e.fields,o,t,r),s=await Tp.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(qm(s),c.length!==e.fields.length){let f=c.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${c.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new me("INSERT",l.length);let p=await Ke(e.appId,t,r),u=l.map((f,E)=>{let R={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let g=f[c[y]]??"";R[m]={value:Wm(g,p.get(m))}}),R});u.forEach(f=>En([f],e.fields.filter(E=>E in f),o,a));let d=[];for(let f=0;f<u.length;f+=100){let E=u.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});d.push(R.ids)}return{type:"INSERT",createdIds:d,insertedCount:d.flat().length}}async function Vc(e,t,n,r,i){if(e.applyBlocks?.length)return Jm(e,t,n,r);if(e.checkGroups?.length&&Rt(e.where)){let E=await yt(e.appId,e.assignments.map(m=>m.field),t,r);await Yt(e.appId,e.assignments.map(m=>m.field),E,t,r);let R=await Ke(e.appId,t,r);return Ym(e,R),$n(e,Bc(R,e.appId)),await Ir(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return po(e,t,n,r,i);if(e.subtableCode)return await Ir(e,t,r),ab(e,t,n,r);let o=await yt(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await Yt(e.appId,a,o,t,r);if(await Ir(e,t,r),Rt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return eb(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await ty(e.assignments,t,n,r);let c=await Ke(e.appId,t,r);if(Ia(e)){let E=Ql(e),m=(await ut(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=eu(e,m,c,se(n));if(En(y.flatMap(g=>g.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new me("UPDATE",m.length);for(let g of y)await t.putRecords(g);return{type:"UPDATE",updatedCount:m.length}}let p=li(e),d=(await Ga(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=ui(e,d,c);if(En(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new me("UPDATE",d.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:d.length}}async function Jm(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Dt(e.where))return Vw(e,t,n,r,i);let o=await Q(e.appId,t,r),a=Gt(e,o),s=ba(e,o),l=lu(e),c=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(c.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(c.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let p=Number(c.records[0].$id?.value);if(p!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${p} does not match requested $id ${l}.`);Oa(c.records[0]);let u=Jf({statement:e,snapshot:c.records[0],fieldInfos:o,metadata:a,evaluationContext:se(n)}),d=It(o,e.assignments.map(I=>I.field)),f=bn(u.postImage,d)?await _t(e.appId,t,r):void 0,E=Nn(u.postImage,d,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=rt(n.dmlMaxRows,"dmlMaxRows",jt),m=rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),y=u.parentRows>R||u.changedSubtableRows>m;if(e.validateOnly){let I=hi({plans:[u],records:fi(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),N={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:no(I.branches[0]),guards:ro(I.branches[0]),deletedRows:{total:u.tables.reduce((v,b)=>v+b.deletedRows,0),parentRows:u.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:I};return Bn.set(N,Ks(E.columns,o,e.appId)),N}if(u.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${R}).`);if(u.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let g=Ca(u,E.normalizedRecord),S=fi(g),A=hi({plans:[g],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:R,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let I=Fs(A,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:A}))throw new me("UPDATE",u.parentRows)}return await t.putRecords(S),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:Je(A,{successfulChunks:1,successfulParents:u.parentRows})}}async function Vw(e,t,n,r,i){let o=rt(n.dmlMaxRows,"dmlMaxRows",jt),a=rt(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),s=await Q(e.appId,t,r),l=Gt(e,s),c;if(Ls(e))c=await jw(e,t,n,s,r);else{let f=ba(e,s),E=li(e).query,R=o+1;c=await Ge(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&c.length>o)throw new Error(`ArgumentError: APPLY parent rows (${c.length}) exceed dmlMaxRows (${o}).`);let p=await Da({statement:e,snapshots:c,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>_t(e.appId,t,r)});if(e.validateOnly)return Qw(e,p,s);pd("phase15b",e);let u=hi(p);if(n.confirm){let f=Fs(u);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new me("UPDATE",p.guards.parentRows)}let d=await mE(p,t,u);return{...d,diagnostic:Je(u,d)}}function Ls(e){return(e.applyBlocks?.length??0)>0&&!Dt(e.where)&&(Qt(e.where)||Pe(e.where))}function Ww(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Ls(t)&&Pe(t.where)}var Hw=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
16
16
  OR / NOT \u914D\u4E0B\u306A\u3069 native query \u3078\u5B8C\u5168\u306B\u9069\u7528\u3067\u304D\u306A\u3044 KLIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
17
- WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function Yw(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Hw}`)}async function jw(e,t,n,r,i){let o=r.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),c=Uu(e.where,{fieldTypes:s,fieldOptions:l});Yw(c);let d=c.prefilter===null?"":z(c.prefilter),u=new Set(ba(e,r));for(let E of zw(e.where))u.add(E);let p=await qw(e.appId,e.where,a,t,i);return(await Ge(t.getRecords,e.appId,d,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:Bt(E,null)})).filter(({row:E})=>le(e.where,E,p.fieldTypeResolver,c.appliedKlikes,p.fieldSemanticsResolver,se(n))).map(({snapshot:E})=>E)}function zw(e){return rp(e)}async function qw(e,t,n,r,i){let s=[...Jw(t)].some(d=>n.get(d)?.fieldType==="STATUS")?await gp(e,r,i):void 0;return{fieldTypeResolver:d=>d.field==="$id"?"NUMBER":n.get(d.field)?.fieldType,fieldSemanticsResolver:d=>{if(d.field==="$id")return nr(te({fieldType:"__ID__"}),e,"$id");let u=n.get(d.field);if(!u)return;let p=u.semantics??te(u),f=u.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return nr(f,e,u.code)}}}function Jw(e){let t=new Set,n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="BINARY"&&[">","<",">=","<="].includes(String(i.op))){let o=i.left;o?.type==="FIELD"&&typeof o.field=="string"&&t.add(o.field)}Object.values(i).forEach(n)}};return n(e),t}function Xw(e,t,n){let r=t.validations.flatMap(d=>d.errors),i=t.validations.reduce((d,u)=>d+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...It(n,e.fields).payloadFields,...Ri],a=t.guards.parentRows,s=Iu(t),l=s.branches[0],c={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:no(l),guards:ro(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return $n.set(c,Ks(o,n,e.appId)),c}function Qw(e,t,n){let r=t.validations,i=r.flatMap(c=>c.errors),o=r.reduce((c,d)=>c+(d.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...It(n,e.assignments.map(c=>c.field)).payloadFields,...Ri],s=gi(t),l={type:"VALIDATION",operation:"UPDATE",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-o,invalidRows:o,errorCount:i.length,columns:a,errors:i,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:no(s.branches[0]),guards:ro(s.branches[0]),deletedRows:{total:t.plans.reduce((c,d)=>c+d.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(c=>c.tables.some(d=>d.deletedRows>0)).length},diagnostic:s};return $n.set(l,Ks(a,n,e.appId)),l}function Zw(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...It(n,e.fields).payloadFields,...Ri],l=wu(t),c=l.branches.find(E=>E.branch==="insert"),d=l.branches.find(E=>E.branch==="update"),u=no(c),p=no(d),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...u,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:ro(c)},update:{apply:p,guards:ro(d)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return $n.set(f,Ks([...s],n,e.appId)),f}function no(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:kn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:kn(t,"ADD"),removedValues:kn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function ro(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var jt=100,ve=500;function rt(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function Ks(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:te({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,xe(s,n));continue}o.set(a,re(i.has(a)?"number":"string"))}return o}async function eb(e,t,n,r,i,o){let a=await jm(e,t,n,r,i,o),s=await Ke(e.appId,n,i),l=nu(e,a,s,se(r)),c=e.assignments.map(p=>p.field),d=await Q(e.appId,n,i),u=await Yt(e.appId,c,d,n,i);if(En(l.flatMap(p=>p.records.map(f=>f.record)),c,d,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new me("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function tb(e){let t=new Set(["$id"]);e.from&&t.add(e.from.targetJoinField);let n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;i.type==="FIELD_REF"&&typeof i.field=="string"&&t.add(i.field);for(let o of Object.values(i))n(o)};for(let r of e.assignments)r.value.type!=="SOURCE_FIELD"&&n(r.value);return[...t]}async function nb(e,t,n,r){if(await Tr(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return sb(e,t,n,r);let i=Bf(e),a=(await Ga(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new me("DELETE",a.length);let s=Vf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function rb(e,t,n){return e.values.map(r=>{let i={};return e.fields.forEach((o,a)=>{let s=r[a];i[o]={value:s.type==="CASE_VALUE"?Kt(s.expr,{},t.get(o),se(n)):St(s,t.get(o))}}),i})}async function ib(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return ww(e,t,n,r);if(e.checkGroups?.length)return po(e,t,n,r);let i=await yt(e.appId,e.fields,t,r),o=await Yt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ke(e.appId,t,r),c=wp(e);if(Ep(Gm(e,t,n,i,c)).execution.status==="ELIGIBLE"){let f=rb(e,l,n);return En(f,e.fields,i,o),$m(e.appId,e.keyFields[0],f,c,t,n)}let u=await uo(e.appId,e.keyFields,c,t,n,l);if(e.values.forEach((f,E)=>{let R={};e.fields.forEach((y,g)=>{let S=f[g];S.type==="CASE_VALUE"?R[y]={value:Kt(S.expr,{},l.get(y),se(n))}:R[y]={value:St(S,l.get(y))}});let m=lo(u,c[E]);m!==void 0?s.push({id:m,record:R}):a.push(R)}),En([...a,...s.map(f=>f.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let f=a.length+s.length;if(!await n.confirm(f,"UPDATE"))throw new me("UPDATE",f)}let p=[];for(let f=0;f<a.length;f+=100){let E=await t.postRecords({app:e.appId,records:a.slice(f,f+100)});p.push(E.ids)}for(let f=0;f<s.length;f+=100)await t.putRecords({app:e.appId,records:s.slice(f,f+100)});return{type:"UPSERT",insertedCount:p.flat().length,updatedCount:s.length}}function wp(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?q(i):i.type==="CASE_VALUE"?He(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function bp(e,t,n,r){if(t.length===0)return;let i=await Ke(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function ob(e,t,n,r){let i=e.subtableCode,o=e.fields.indexOf("_pid");if(o<0)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u306F _pid \u304C\u5FC5\u9808\u3067\u3059");let a=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Gs(a),l=new Map;for(let d of e.values){let u=YR(d[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:YR(d[m])}}});let E=l.get(u);E?E.push(f):l.set(u,[f])}let c=[];for(let[d,u]of l.entries()){let p=s.get(d),E=[...fo(p,i),...u];c.push(Xm(e.appId,d,Eo(p),i,E))}for(let d of c)await t.putRecords(d);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function ab(e,t,n,r){let i=e.subtableCode;if(!Hi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Wt(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&Cs(p.value.expr,o);let a=await bp(e.appId,o,t,r),s=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Np(s,i).filter(p=>le(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new me("UPDATE",c.length);let d=new Map;for(let p of c){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=d.get(p.parentId);f||(f=new Map,d.set(p.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:wa(R.value,p.flat,a,se(n))}}f.set(p.rowId,E)}let u=Gs(s);for(let[p,f]of d.entries()){let E=u.get(p);if(!E)continue;let m=fo(E,i).map(y=>{let g=y.id??"";if(!g)return y;let S=f.get(g);return S?{id:g,value:S}:{id:g}});await t.putRecords(lb(e.appId,p,Eo(E),i,m))}return{type:"UPDATE",updatedCount:c.length}}async function sb(e,t,n,r){let i=e.subtableCode;if(!Hi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Wt(e.where,o);let a=await bp(e.appId,o,t,r),s=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Np(s,i).filter(p=>le(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"DELETE"))throw new me("DELETE",c.length);let d=new Map;for(let p of c){let f=d.get(p.parentId);f?f.push(p.rowIndex):d.set(p.parentId,[p.rowIndex])}let u=Gs(s);for(let[p,f]of d.entries()){let E=u.get(p);if(!E)continue;let R=fo(E,i),m=new Set(f),y=R.filter((g,S)=>!m.has(S));await t.putRecords(Xm(e.appId,p,Eo(E),i,y))}return{type:"DELETE",deletedCount:c.length}}function Gs(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Np(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=Eo(r),a=fo(r,t);for(let s=0;s<a.length;s++){let l=a[s],c={...Na(l,s),_pid:i};for(let[d,u]of Object.entries(r))d!==t&&(c[`_p.${d}`]=Wc(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:c})}}return n}function fo(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Eo(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Xm(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function lb(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function ub(e,t,n,r,i){if(i.some(o=>!o))throw new Error("REORDER \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i.map(o=>({id:o}))}}}]}}function YR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved variable @${e.name} reached INSERT evaluation.`);return e.type==="STRING"?e.value:e.type==="NUMBER"?q(e):e.type==="CASE_VALUE"?He(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Wc(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Hi(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Hi(e.left)||Hi(e.right);case"NOT":case"GROUP":return Hi(e.expr);default:return!1}}async function cb(e,t,n,r){let i=[];Wt(e.where,i);let o=await bp(e.appId,i,t,r),a=await Q(e.appId,t,r);if(Rt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??te(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return W("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??W("string")},c=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Np(c,e.subtableCode),u=e.all?new Set(c.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(d.filter(f=>e.where&&le(e.where,f.flat,o,void 0,l,se(n))).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new me("UPDATE",u.size);let p=Gs(c);for(let f of u){let E=p.get(f);if(!E)continue;let m=fo(E,e.subtableCode).map((g,S)=>({row:g,i:S,flat:pb(E,e.subtableCode,g,S)}));m.sort((g,S)=>db(g.flat,S.flat,e.by,l,se(n)));let y=m.map(g=>g.row.id??"");await t.putRecords(ub(e.appId,f,Eo(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function pb(e,t,n,r){let i={_pid:String(e.$id?.value??""),_rid:n.id??"",_idx:String(r)};for(let[o,a]of Object.entries(e))o!==t&&(i[`_p.${o}`]=Wc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Wc(a?.value);return i}function db(e,t,n,r,i={}){for(let o of n){let a=jR(o.key,e,i),s=jR(o.key,t,i),l=o.key.type==="FIELD_NAME"?r(Fe(o.key.name)):o.key.type==="ARITH_KEY"?W("number"):o.key.type==="FUNC_KEY"?Fn(o.key.expr,d=>{let u=r(d);return u?{compareMode:u.compareMode}:void 0}).semantics??W("string"):W("number"),c=lt(a,s,l??W("string"));if(c!==0)return o.direction==="ASC"?c:-c}return 0}function jR(e,t,n={}){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(Ee(e.expr,t,n));case"FUNC_KEY":return he(e.expr,t,void 0,void 0,n);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Cp(e,t,n,r,i){if(e.checkGroups?.length)return po(e,t,n,r,i);let o=await yt(e.appId,e.fields,t,r),a=await Yt(e.appId,e.fields,o,t,r),s=await Tp.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(qm(s),c.length!==e.fields.length){let g=c.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${c.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let d=[],u=[],p=await Ke(e.appId,t,r),f=l.map((g,S)=>{let A={};return e.fields.forEach((I,N)=>{if(s.importPresence&&!s.importPresence[S]?.has(I))return;let v=g[c[N]]??"";A[I]={value:Wm(v,p.get(I))}}),A});f.forEach(g=>En([g],e.fields.filter(S=>S in g),o,a));let E=f.map(g=>e.keyFields.map(S=>String(g[S]?.value??"")));if(Ep(Gm(e,t,n,o,E)).execution.status==="ELIGIBLE")return $m(e.appId,e.keyFields[0],f,E,t,n);if(Cr.has(e)){let g=e.keyFields.map(A=>p.get(A)==="NUMBER"),S=new Set;for(let A of E){let I=fn(A,g);if(S.has(I))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");S.add(I)}}let m=await uo(e.appId,e.keyFields,E,t,n,p);if(f.forEach((g,S)=>{let A=lo(m,E[S]);A!==void 0?u.push({id:A,record:g}):d.push(g)}),n.confirm&&d.length+u.length>0){let g=d.length+u.length;if(!await n.confirm(g,"UPDATE"))throw new me("UPDATE",g)}let y=[];for(let g=0;g<d.length;g+=100){let S=await t.postRecords({app:e.appId,records:d.slice(g,g+100)});y.push(S.ids)}for(let g=0;g<u.length;g+=100)await t.putRecords({app:e.appId,records:u.slice(g,g+100)});return{type:"UPSERT",insertedCount:y.flat().length,updatedCount:u.length}}var Pp=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),Op=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function Qm(e){let t=await e.getApps(),n=[...Pp],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function Zm(e,t,n){let r=await Q(e.appId,t,n),i=[...Op],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB:a.inSubtable===!0?a.subtableCode??"":"",\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function fb(e,t=!1){try{let n=new sn(e).tokenize(),r=new ln(n,{import:t}).parse();return Xn("phase15b",r),st(r),r}catch(n){throw n instanceof ke||n instanceof T,n}}async function io(e,t,n,r,i,o){let a=[];Ss(e,t,n,r,a,i,o),await Promise.all(a)}async function ey(e,t,n,r,i,o){let a=[];for(let s of e.columns)if(s.type==="CASE_COL")for(let l of s.expr.branches)a.push(io(l.condition,t,n,r,i,o));await Promise.all(a)}function Yi(e,t,n,r,i){return i!==void 0&&i.size>0?mt(e,t,n,i,r):Ht(e,t,n,r)}function Ss(e,t,n,r,i,o,a){if(e!==null)switch(e.type){case"BINARY":{let s=e.right;s.type==="SUBQUERY_IN_LIST"&&i.push(Yi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);let c=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(d=>d[c]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(Yi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);if(l.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(l.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let c=l.columns[0]??"";s.resolved=l.rows[0]?.[c]??""}));break}case"LOGICAL":Ss(e.left,t,n,r,i,o,a),Ss(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":Ss(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(Yi(s.query,t,n,r,a).then(l=>{for(let c of l.warnings??[])o.add(c);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function ty(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Ht(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function ny(e,t,n,r,i,o){let a=new Map,s=[];for(let d=0;d<e.length;d++){let u=e[d];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let p=JSON.stringify(u.query),f=a.get(p);f||(f=Yi(u.query,t,n,r,o).then(E=>{for(let m of E.warnings??[])i.add(m);if(E.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(E.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let R=E.columns[0]??"";return E.rows[0]?.[R]??""}),a.set(p,f)),s.push([d,f])}let l=await Promise.all(s.map(([,d])=>d)),c=new Map;return s.forEach(([d],u)=>c.set(d,l[u])),c}var ry=new WeakMap,iy=new WeakMap,oy=new WeakMap,Hc=new WeakMap,Lp=new WeakMap,ay=new WeakMap,sy=new WeakMap;async function ly(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,c={...t,getFields:async P=>(a.add(P),t.getFields(P)),getProcessStatuses:async P=>(s.add(P),t.getProcessStatuses(P)),getNumberPrecision:async P=>(l.add(P),t.getNumberPrecision(P))},d=new Map,u=new Map,p=new Map,f=[],E=new Set,R=i??await ao(e,c,n),m=P=>R.nodes.find(O=>O.source===P||JSON.stringify(O.source)===JSON.stringify(P)),y=new Map(o??[]),g=new Set(o?.keys()??[]),S=new Map([...o??new Map].map(([P,O])=>[P,O.rows.length])),A=new WeakMap,I=P=>pe(P)??(P.appId>0?`APP${P.appId}`:"source"),N=P=>P.cteName===Ce?1:P.cteName!==null?S.get(P.cteName)??null:null,v=P=>{let O=N(P.from),C=I(P.from),h=[];for(let _ of P.joins){let L=N(_.table),F=I(_.table);if(_.type==="CROSS"){let B=O!==null&&L!==null?Ai(O,L):null;h.push({leftLabel:C,rightLabel:F,leftRows:O,rightRows:L,plan:B,rightRuntimeLabel:_.table.cteName===null?`APP${_.table.appId} fetched rows`:`${F} materialized rows`}),O=B?.outputRows??null,C=`${C} \xD7 ${F}`}else O=null,C=`${C} ${_.type} JOIN ${F}`}if(h.length>0&&Lp.set(P,h),Rt(P.where)?O=0:P.where!==null&&(O=null),(ee(P).type!=="NONE"||P.distinct||P.having!==null||Ut(P)||P.columns.some(_=>_.type==="WINDOW_COL"))&&(O=null),O!==null){let _=P.offset??0;O=Math.max(0,O-_),P.limit!==null&&(O=Math.min(O,P.limit)),A.set(P,O)}},b=async P=>{let O=[P.from,...P.joins.map(h=>h.table)];if(O.length>1&&P.columns.some(h=>h.type==="WILDCARD"||h.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let C=[];for(let h of O){if(h.cteName!==null){if(h.cteName===Ce)continue;let _=y.get(h.cteName);if(!_)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${h.cteName}.`);C.push(..._.columns);continue}let w=await Q(h.appId,c,n);h.subtableCode?(C.push(...w.filter(_=>_.inSubtable&&(_.subtableCode===h.subtableCode||_.subtableCode===void 0)).map(_=>_.code)),C.push("_pid","_rid","_idx"),C.push(...w.filter(_=>!_.inSubtable).map(_=>`_p.${_.code}`))):(C.push(...w.filter(_=>!_.inSubtable).map(_=>_.code)),C.push(...Do))}return[...new Set(C)]},M=async P=>{if(P===null||typeof P!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let O=P;if(O.type==="SELECT"){let C=P,h=await b(C);if(C.columns.length===1&&C.columns[0].type==="WILDCARD")return h;let w=[];for(let _ of C.columns)_.type==="WILDCARD"?w.push(...h):_.type==="PARENT_WILDCARD"?w.push(...h.filter(L=>L.startsWith("_p."))):w.push(...On([],[_]).columns);return w}if(O.type==="UNION")return M(O.left);if(O.type==="SHOW_APPS")return[...Pp];if(O.type==="DESCRIBE")return[...Op];if(O.type==="GENERATE_SERIES")return[P.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},D=async P=>{if(P===null||typeof P!="object")return;if(Array.isArray(P)){for(let C of P)await D(C);return}let O=P;if(O.type==="WITH"){let C=P;for(let h of C.ctes){if(h.recursiveSpec){let _=Mm(h);h.recursiveSpec.cycle&&_.push(h.recursiveSpec.cycle.markColumn),y.set(h.name,{rows:[],columns:_}),await D(h.query);continue}if(await D(h.query),h.query.type==="GENERATE_SERIES"){if(h.query.args.some(L=>L.type==="VARIABLE")){y.set(h.name,{rows:[],columns:[h.query.columnAlias]});continue}let _=Fm(h.query);y.set(h.name,{rows:_.rows,columns:_.columns,columnMeta:ce.get(_),uniqueGeneratedColumn:h.query.columnAlias}),g.add(h.name),S.set(h.name,_.rows.length);continue}let w=await M(h.query);if(y.set(h.name,{rows:[],columns:w}),h.query.type==="SELECT"){let _=A.get(h.query);_!==void 0&&S.set(h.name,_)}}await D(C.query);return}if(O.type==="UNION"){await D(O.left),await D(O.right);return}if(O.type==="SELECT"){let C=P;await Im(C,y,c,n),await Lc(C,c,y,n,!0),f.push(C),v(C);for(let _ of C.columns)_.type==="SCALAR_SUBQUERY_COL"&&await D(_.query);if(await D(C.where),await D(C.having),await Xi(C,c,n,y),![C.from,...C.joins.map(_=>_.table)].some(_=>_.cteName!==null&&!y.has(_.cteName))){let _=await Ir(C,c,n,y);_&&p.set(C,_)}return}for(let C of Object.values(O))await D(C)};await D(e);let k=async P=>{if(P===null||typeof P!="object"||E.has(P))return;if(E.add(P),Array.isArray(P)){await Promise.all(P.map(k));return}let O=P;if((O.type==="UPSERT"||O.type==="UPSERT_SELECT")&&await Q(P.appId,c,n),O.type==="SELECT"){let C=P;await Xi(C,c,n);let h=[C.from,...C.joins.map(U=>U.table)].some(U=>U.cteName!==null);if(ee(C).type==="PLAIN"&&!h){let U=await Ir(C,c,n);U&&p.set(C,U)}let w=[C.from,...C.joins.map(U=>U.table)].filter(U=>U.cteName===null).map(U=>U.appId);(Ct(C.where)||C.orderBy.length>0||C.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0))&&w.forEach(U=>a.add(U));let{resolver:L,rewrites:F}=await Un(C,c,n,y);F.length>0&&Hc.set(C,F);let B=Te(C.where,L),V=m(C);if(B.capability==="UNSUPPORTED"&&!V)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Mn(B)}).`);d.set(C,B);let x=await Us(C,c,n),j=sp.get(C)??Ds(C,x);j&&ry.set(C,j);let $=j??Sn(C,x);iy.set(C,$);let G=new Map;for(let U of C.joins){let H=U.table.alias;if(U.type!=="INNER"||!H||U.table.subtableCode)continue;let ye=U.on.left.tableAlias,Ve=U.on.right.tableAlias;if(!ye||!Ve)continue;let ae=ye===H&&Ve!==H?Ve:Ve===H&&ye!==H?ye:void 0,zt=ye===H?U.on.right.field:U.on.left.field,So=ye===H?U.on.left.field:U.on.right.field;if(!ae)continue;let qt=[C.from,...C.joins.map(Ue=>Ue.table)].find(Ue=>pe(Ue)===ae),Js;if(U.table.cteName!==null)Js=Ne(y.get(U.table.cteName),So);else{let Ue=(await Q(U.table.appId,c,n)).find(ot=>ot.code===ue(U.table,So));Js=Ue?xe(Ue,U.table.appId):tt(So)}let Xs,Qs,Bp,Vp;if(qt?.cteName!==null&&qt?.cteName!==void 0){let Ue=y.get(qt.cteName);Xs=Ne(Ue,zt),g.has(qt.cteName)&&Ue&&(Bp=Ue.rows.length,Qs=Ue.rows.map(ot=>mp(ot[zt])),Vp=Qs.some(ot=>ot.length===0))}else if(qt){let Ue=(await Q(qt.appId,c,n)).find(ot=>ot.code===ue(qt,zt));Xs=Ue?xe(Ue,qt.appId):tt(zt)}let To=Ou({fieldType:Js?.fieldType,sourceSemantics:Xs?.semantics,sourceRowCount:Bp,values:Qs,hasEmptyValue:Vp,maxInKeys:hs});if(To.kind==="FALLBACK"&&To.reason==="JOIN_KEY_VALUES_RUNTIME"&&(j?.joinPlan.items.some(ot=>ot.targetAlias===H)||j?.joinPlan.serverFunctionConsumptions.some(ot=>ot.targetAlias===H)))continue;let qy=Pu(To,So,Zi),Wp=$.joinConditions.get(H),Jy=Wp?z(Wp):void 0,Xy=$.joinRelations.get(H);G.set(H,{plan:To,queries:qy,additionalQuery:Jy,additionalRelation:Xy})}if(G.size>0&&oy.set(C,G),C.orderBy.length>0||C.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0)){let U=await eo(C,c,n);if(C.orderMode!=="KINTONE_NATIVE")for(let H of U.semantics.values())H.fieldType==="STATUS"&&H.source&&s.add(H.source.appId);if(bs(C)&&!h&&V?.allowed!==!1){let H=B.capability==="EXACT_PUSHDOWN"?ze(C):"FULL_SCAN";u.set(C,(C.orderMode==="KINTONE_NATIVE"?wi:Ii)({stmt:C,staticMode:H,whereCapability:B.capability,whereReasons:B.reasons,orderSemantics:U.semantics,maxRecords:r,hasKlike:Pe(C.where)}))}}}else if(O.type==="VALIDATE"){let C=P;a.add(C.appId);let h=await Q(C.appId,c,n),w=new Map(h.filter(U=>!U.inSubtable).map(U=>[U.code,U])),_=new Set(h.filter(U=>U.inSubtable).map(U=>U.code)),L=hu(C,h),F=ur(C.checkGroups??[]),B=rp(C.where);for(let U of F){if(U.field!=="$id"&&!w.has(U.field)&&!_.has(U.field))throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${U.field} \u306F APP${C.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(U.field!=="$id"&&!w.has(U.field)&&_.has(U.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${U.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let U of B){if(U!=="$id"&&!w.has(U)&&!_.has(U))throw new Error(`ArgumentError: WHERE field ${U} does not exist in APP${C.appId}.`);if(U!=="$id"&&!w.has(U)&&_.has(U))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${U} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let V=new Map([...w].map(([U,H])=>[U,H.fieldType]));V.set("$id","RECORD_NUMBER"),Gn(C,V);let x=Te(C.where,U=>U.field==="$id"?te({fieldType:"__ID__"}):w.get(U.field)?.semantics??(w.has(U.field)?te(w.get(U.field)):void 0));if(x.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Mn(x)}).`);let K=new Map([...w].map(([U,H])=>[U,H.fieldType])),j=new Map([...w.values()].flatMap(U=>U.optionOrder?[[U.code,new Set(Object.keys(U.optionOrder))]]:[])),$=C.where===null?null:x.capability==="EXACT_PUSHDOWN"?C.where:Nl(C.where,{allowUnqualifiedFields:!0,fieldTypes:K,fieldOptions:j,allowKlike:!1}),G=L.some(U=>U.field.fieldType==="NUMBER");G&&(l.add(C.appId),await _t(C.appId,c,n)),ay.set(C,{targetFields:L.map(U=>U.subtableCode?`${U.subtableCode}(${U.field.code})`:U.field.code),fetchFields:[...new Set(["$id",...L.map(U=>U.subtableCode??U.field.code),...B,...F.map(U=>U.field)])],subtables:new Map([...new Set(L.flatMap(U=>U.subtableCode?[U.subtableCode]:[]))].map(U=>[U,L.filter(H=>H.subtableCode===U).length])),capability:x,prefilter:$,numberPrecision:G})}else if(O.type==="UPDATE"||O.type==="DELETE"){if(a.add(P.appId),O.type==="UPDATE"&&P.applyBlocks?.length){let h=P,w=await Q(h.appId,c,n);if(Gt(h,w),Ls(h)){let _=w.filter(F=>!F.inSubtable),L=Uu(h.where,{fieldTypes:new Map(_.map(F=>[F.code,F.fieldType])),fieldOptions:new Map(_.flatMap(F=>F.optionOrder?[[F.code,new Set(Object.keys(F.optionOrder))]]:[]))});sy.set(h,L)}}let C=P;(C.type!=="UPDATE"||!Ls(C))&&m(C)?.allowed!==!1&&await Tr(C,c,n)}await Promise.all(Object.values(O).map(k))};if(await k(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&tn(e)){let P=nn(e),{resolver:O,rewrites:C}=await Un(P,c,n);C.length>0&&Hc.set(P,C);let h=Te(P.where,O),w=m(P);if(h.capability==="UNSUPPORTED"&&!w)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Mn(h)}).`);if(d.set(P,h),bs(P)&&w?.allowed!==!1){let _=await eo(P,c,n);u.set(P,(P.orderMode==="KINTONE_NATIVE"?wi:Ii)({stmt:P,staticMode:h.capability==="EXACT_PUSHDOWN"?ze(P):"FULL_SCAN",whereCapability:h.capability,whereReasons:h.reasons,orderSemantics:_.semantics,maxRecords:r,hasKlike:Pe(P.where)}))}}for(let P of f)await Lc(P,c,y,n,!0);return{capabilities:d,orderPlans:u,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function Yc(e){return[...[...e.fieldApps].sort((t,n)=>t-n).map(t=>` metadata API: form definition APP${t}`),...[...e.processStatusApps].sort((t,n)=>t-n).map(t=>` metadata API: process status APP${t}`),...[...e.numberPrecisionApps].sort((t,n)=>t-n).map(t=>` metadata API: number precision APP${t}`)]}function Eb(e){switch(e){case"NOT_LIKE":return"NOT LIKE";case"NOT_KLIKE":return"NOT KLIKE";case"NOT_IN":return"NOT IN";case"LIKE":case"KLIKE":case"IN":case"=":case"!=":case"<>":case">":case"<":case">=":case"<=":return e;default:return"<op>"}}function zR(e){return e==="<>"?"!=":e}function ft(e){if(e===null||typeof e!="object")return"<expr>";let t=e;switch(t.type){case"FIELD":return typeof t.field=="string"?`${typeof t.tableAlias=="string"?`${t.tableAlias}.`:""}${t.field}`:"<expr>";case"FIELD_REF":return typeof t.field=="string"?t.field:"<expr>";case"NUMBER":return typeof t.raw=="string"?t.raw:typeof t.value=="number"?String(t.value):"<expr>";case"STRING":return typeof t.value=="string"?`'${t.value.replace(/'/g,"''")}'`:"<expr>";case"VARIABLE":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"VARIABLE_IN_LIST":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"STRING_FUNC":return typeof t.func!="string"||!Array.isArray(t.args)?"<expr>":`${t.func}(${t.args.map(ft).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return ft(t.expr);case"GROUPING_FIELD":return`GROUPING(${ft(t.ref)})`;case"GROUPING_REF":return ft(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${ft(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${ft(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?t.name==="LOGINUSER"?"LOGINUSER()":`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(ft).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(ft).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function vn(e){try{let t=e;switch(t.type){case"BINARY":return`${ft(t.left)} ${Eb(t.op)} ${ft(t.right)}`;case"NULL_CHECK":return`${ft(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${vn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${vn(t.right)})`;case"NOT":return`NOT (${vn(t.expr)})`;case"GROUP":return`(${vn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function jc(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=ne(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?Rb(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let c=Sc(l),d=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Ac(c)}: ${c}`,` ${Tc(c)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${d}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":vn(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(ne)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!ne(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=Sc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=zR(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${Ac(l)}: ${l}`,` ${Tc(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${qR(i.prefilterPlan.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}let o=n.prefilterPlan;if(n.allowed&&o?.prefilterWhere&&o.residualWhere){for(let s of o.exactRelativeLeaves){let l=Sc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=zR(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${Ac(l)}: ${l}`,` ${Tc(l)}: kintone server exact prefilter`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=z(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${vn(o.residualWhere)}`,` ${qR(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!ne(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function Rb(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,c=l?.type==="KINTONE_FUNC"&&l.name===t,d=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((c||d)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function Ac(e){return ne(e)?"relative date function":"kintone function"}function Sc(e){return e.right.type==="KINTONE_FUNC"?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"?e.right.values[0].name:"(unknown)"}function Tc(e){return ne(e)?"relative date evaluation":"kintone function evaluation"}function qR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ne(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var uy=new WeakMap;function zc(e,t){if(Array.isArray(e))return e.map(r=>zc(r,t));if(e===null||typeof e!="object")return e;let n=e;if(n.type==="GENERATE_SERIES"){let r=new Map,i=new Set,o=n.args.map((s,l)=>{if(s.type!=="STRING"||s.fromVariable!==!0||!s.value.startsWith("@"))return s;let c=s.value.slice(1);r.set(l,c);let d=t.get(c);return d===void 0?{type:"VARIABLE",name:c}:(i.add(l),{type:"STRING",value:d,fromVariable:!0})}),a={...n,args:o};return uy.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,zc(i,t)]))}function Gi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...Pp]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...Op]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let c=Gi(l.query,s);s.set(l.name,c)}return Gi(e.query,s)}if(e.type==="UNION"){let s=Gi(e.left,t),l=Gi(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Ce);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...On([],[s]).columns);return{status:"STATIC",columns:a}}function mb(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function yb(e,t,n,r){let i=new Map,o=async a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){for(let l of a)await o(l);return}let s=a;if(s.type==="SELECT"){let l=a,c=[l.from,...l.joins.map(d=>d.table)];if(c.some(d=>d.cteName!==null)&&c.every(d=>d.cteName===Ce||d.cteName!==null&&r.has(d.cteName))){let d=await Ir(l,t,n,r);d&&i.set(l,d)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var cy=Symbol("ksql.explainFetchPlan");function _p(e){return e[cy]}function py(e,t){e[cy]=t}async function dy(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=ve,c=!0,d,u,p,f,E,R={surface:"DOCUMENT_ONLY"}){let m=Fl(f??new Date,E),y=Nt({recursiveCteMaxDepth:d,recursiveCteMaxRows:u,recursiveCteMaxExpansions:p}),g=Xc(r);try{let{statements:S,meta:A}=qu(e,{import:a}),I=$l(S),N=bu(S,n),v=cm(S,N),b=new Map;for(let[C,h]of Object.entries(m.values))b.set(Qr(C),{type:"string",value:h});let M=new Map,D=new Map,k=[],P=[];for(let C=0;C<S.length;C++){let h=S[C],w=h.type==="SET_VARIABLE"?h.expr.type==="SCALAR_SUBQUERY"?{...h,expr:ws(h.expr,b)}:h:ws(h,b),_=zc(w,M);st(_);let L=await ao(_,t,g),F=mb(D),B=c?await ly(_,t,g,i,L,F):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:L};if(!c){let U=await yb(_,t,g,F);for(let[H,ye]of U)B.plainGroupByPlans.set(H,ye)}let V;if(_.type==="CREATE_TEMP_TABLE"){let U=new Map([...D].map(([ye,Ve])=>[ye,Ve.status==="STATIC"?{status:"STATIC",columns:Ve.columns}:{status:"DEFERRED"}])),H=Gi(_.query,U);V=H.status==="STATIC"?{status:"STATIC",columns:H.columns,relation:{rows:[],columns:[...H.columns]},producerStatement:C+1}:{status:"DEFERRED",producerStatement:C+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},D.set(_.name,V)}let x={sources:[]},K=L.hasServerOnlyWhereFunction&&!L.allowed?jc(L):[...jc(L),...Ey(Ab(_,I.statements[C],B.capabilities,B.orderPlans,B.plainGroupByPlans,s,l,x,D,V,{maxRecords:i,recursiveLimits:y}),o)],j=Yc(B),$=A.dialect===1?gb(_,I.statements[C],i,s):[],G=await Km(_,g,R);k.push({index:C,type:I.statements[C].statementType,plan:K.length===0?[...j,...G,...$]:[K[0],...j,...K.slice(1),...G,...$]}),P.push({index:C,fetch:vp(x.sources),sources:x.sources}),_.type==="DROP_TEMP_TABLE"&&D.delete(_.name),(h.type==="SET_VARIABLE"||h.type==="DECLARE_VARIABLE")&&(b.set(h.name,h.type==="DECLARE_VARIABLE"&&h.annotation==="RELATIVE_DATE"?{type:"relative-date",value:v.get(h.name)}:h.type==="SET_VARIABLE"&&h.expr.type==="ARRAY"?{type:"array",elements:h.expr.elements.map(U=>({type:"string",value:U.value}))}:{type:"string",value:`@${h.name}`,placeholder:!0}),h.type==="DECLARE_VARIABLE"&&h.annotation===void 0&&(h.default.type==="STRING"||h.default.type==="NUMBER")&&M.set(h.name,h.default.type==="STRING"?h.default.value:q(h.default)))}let O={statementCount:S.length,statements:k};return py(O,{statements:P}),O}finally{yp(g)}}function gb(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=hb(e);(e.type==="UPDATE"||e.type==="DELETE")&&!o.includes(`APP${e.appId}`)&&o.unshift(`APP${e.appId}`);let a=Math.ceil(n/500);for(let c of o)i.push(` read ${c}: \u4E0D\u660E\uFF08\u4E0A\u9650 maxRecords=${n} \u3068\u4EEE\u5B9A: \u6700\u5927 ${a} \u56DE\u3001500 \u4EF6/\u56DE\uFF09`);let s=[...new Set([...t.appIds,...t.targetAppId===null?[]:[t.targetAppId]])];i.push(` metadata: GET form fields \xD7 ${s.length} \u30A2\u30D7\u30EA\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\u6E08\u307F\u306F\u8FFD\u52A0 0 \u56DE\uFF09`),(e.type==="UPSERT"||e.type==="UPSERT_SELECT")&&(e.type==="UPSERT"?i.push(` UPSERT pre-read: ${Math.ceil(e.values.length/Ar)} \u56DE\uFF08${e.values.length} \u884C\u3001${Ar} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/Ar)} \u56DE\u3001${Ar} \u30AD\u30FC/\u56DE\uFF09`));let l=e.type==="INSERT"||e.type==="UPSERT"?e.values.length:null;return(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPSERT"||e.type==="UPSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE")&&(i.push(l===null?` write: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/100)} \u56DE\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`:` write: ${Math.ceil(l/100)} \u56DE\uFF08${l} \u884C\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`),i.push(" reference: bulkRequest \u306F\u672A\u5B9F\u88C5\u3002\u66F8\u8FBC\u30B5\u30D6\u30EA\u30AF\u30A8\u30B9\u30C8\u6570\u306F HTTP \u66F8\u8FBC\u56DE\u6570\u3068\u540C\u3058")),i}function hb(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(typeof i.appId=="number"&&Object.prototype.hasOwnProperty.call(i,"alias")&&Object.prototype.hasOwnProperty.call(i,"cteName")&&i.cteName===null&&i.appId>0){let o=`APP${i.appId}`,a=typeof i.subtableCode=="string"?`$${i.subtableCode}`:"",s=typeof i.alias=="string"&&i.alias!==o?` AS ${i.alias}`:"";t.push(`${o}${a}${s}`)}Object.values(i).forEach(n)};return n(e),t}function Ab(e,t,n,r,i,o=100,a=ve,s={sources:[]},l=new Map,c,d=fy()){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",...c?.status==="STATIC"?[` schema: ${c.columns.join(", ")}`,` schema source: SELECT output of statement ${c.producerStatement}`]:c?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${c.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${nt} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...hr(e.query,t,n,r,i,s,"main",l,d).map(u=>` ${u}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let u=ji(e.expr.query)?t:{...t,tempTablesReferenced:[]};return[`SET @${e.name} = (SELECT ...)`," value: \u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF081\u884C1\u5217\u30FB\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"," subquery:",...hr(e.expr.query,u,n,r,i,s,"main",l,d).map(p=>` ${p}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return hr(e.query,t,n,r,i,s,"main",l,d);if(e.type==="ASSERT"){let u=[`ASSERT${e.warn===!0?" WARN":""} ${e.text}${e.message!==void 0?`, '${e.message.replace(/'/g,"''")}'`:""}`,e.warn===!0?" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F\u8B66\u544A\u3068\u3057\u3066\u8A18\u9332\u3057\u3001\u5F8C\u7D9A\u6587\u3092\u7D9A\u884C\uFF09":" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,E)=>{u.push(p.length>1?` subquery[${E+1}]:`:" subquery:");let R=ji(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...hr(f.query,R,n,r,i,s,"main",l,d).map(m=>` ${m}`))}),u}if(e.type==="EXIT"){let u=[`EXIT SUCCESS IF ${e.text}, '${e.message.replace(/'/g,"''")}'`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u6210\u7ACB\u6642\u306F\u6B63\u5E38\u7D42\u4E86\u3057\u3001\u4EE5\u964D\u306E\u6587\u306F skippedReason: exit\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,E)=>{u.push(p.length>1?` subquery[${E+1}]:`:" subquery:");let R=ji(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...hr(f.query,R,n,r,i,s,"main",l,d).map(m=>` ${m}`))}),u}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?$s(e,void 0,n,r,o,a,1e4,i):hr(e,t,n,r,i,s,"main",l,d)}function ji(e){if(Array.isArray(e))return e.some(ji);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(ji)}return!1}function hr(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=fy()){if(t.tempTablesReferenced.length===0)return $s(e,void 0,n,r,100,ve,l.maxRecords,i,!0,o,a,l.recursiveLimits);let c=[];e.type==="INSERT_SELECT"?c.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&c.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),c.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),c.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let d=t.tempTablesReferenced.map(f=>[f,s.get(f)]);for(let[f,E]of d)E?.status==="STATIC"?c.push(` source: temp table ${f} (schema from statement ${E.producerStatement})`):(c.push(` source: temp table ${f}`),c.push(" schema: deferred (could not be derived statically)"));c.push(" rows: runtime (not materialized by EXPLAIN)");let u=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;u&&c.push(...Ry(u,i?.get(u),d.some(([,f])=>f?.status!=="STATIC"))),c.push(d.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),c.push(" records API: none");let p=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return p.length>0&&c.push(` app: ${p.map(f=>`APP${f}`).join(", ")}`),c.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),c}var qc=new WeakMap;function fy(){return{maxRecords:1e4,recursiveLimits:Nt({})}}async function Sb(e,t,n,r,i,o=100,a=ve,s,l,c,d,u=!0,p={surface:"DOCUMENT_ONLY"}){let f=Nt({recursiveCteMaxDepth:l,recursiveCteMaxRows:c,recursiveCteMaxExpansions:d}),E=s??await ao(e.query,t,n),R=u?await ly(e.query,t,n,r,E,qc.get(e)):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:E},m={sources:[]},y=jc(E),g=E.hasServerOnlyWhereFunction&&!E.allowed?[...Yc(R),...y]:[...Yc(R),...y,...Ey($s(e.query,void 0,R.capabilities,R.orderPlans,o,a,r,R.plainGroupByPlans,!0,m,"main",f),i)],S=await Km(e,n,p),A=Ts([...g,...S],m.sources),I={type:"SELECT",columns:["plan"],rows:A.map(N=>({plan:N})),rowCount:A.length};return py(I,{statements:[{index:0,fetch:vp(m.sources),sources:m.sources}]}),I}function Ey(e,t){let n=[];for(let r of e)if(n.push(r),r.trim()==="cursor page size: 500"){let i=r.match(/^\s*/)?.[0]??"";n.push(`${i}cursor concurrency: ${t} per domain (process-local)`)}return n}function $s(e,t,n,r,i=100,o=ve,a=1e4,s,l=!0,c,d="main",u=Nt({})){let p=c??{sources:[]};if(e.type==="UNION"){let E=Nb(e,n,r,s,p);return l?Ts(E,p.sources):E}if(e.type==="WITH"){let E=Pb(e,n,r,s,p,a,u);return l?Ts(E,p.sources):E}if(e.type==="INSERT")return _b(e,t,i,o);if(e.type==="INSERT_SELECT")return vb(e,t,n,r,s);if(e.type==="UPSERT")return kb(e,t,i,o);if(e.type==="UPSERT_SELECT")return xb(e,t,n,r,s);if(e.type==="UPDATE")return Db(e,t,n,r,i,o,a);if(e.type==="DELETE")return Mb(e,t);if(e.type==="REORDER")return Fb(e,t);if(e.type==="VALIDATE")return wb(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let m=e.targets?.filter(y=>y.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...m.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let E=e.keyFields?"UPSERT":"INSERT",R=e.targets?.some(m=>m.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${E} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...R?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&R?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...R?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=Et(e,t,n,r,s,!0,!0,p,d);return l?Ts(f,p.sources):f}var JR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function vp(e){return e.reduce((t,n)=>JR[t]>=JR[n.fetch]?t:n.fetch,"none")}function Ts(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${vp(t).toUpperCase()}`,...n]}function Tb(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function fs(e,t,n,r,i,o,a=!1){let s={app:t,alias:n,role:r,fetch:i.toLowerCase(),pending:a,kintoneQuery:o==="(\u5168\u4EF6\u53D6\u5F97)"||o==="(\u306A\u3057)"||o===""?null:o,limit:Tb(o)};return e.sources.push(s),s}function Ib(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Es(e){return` fetch: ${Ib(e)}`}function wb(e,t){let n=ay.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":z(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?np:tp).join(", ")}`),r.push(e.summary?" aggregation: record/subtable/field/code; row locator=none":" row locator: grouped by message; $err_subrow / $err_subrow_id list all matching rows (first-occurrence order)"),r.push(` number precision: ${n.numberPrecision?"required":"not required"}`),r.push(" local checks: original WHERE re-evaluation + built-in constraints + CHECK groups"),r.push(" records/mutation API during EXPLAIN: none; violation count unavailable"),r):(r.push(" metadata: form definition required; number precision required for NUMBER targets"),r)}function bb(e){let t=e.field.tableAlias?`${e.field.tableAlias}.${e.field.field}`:e.field.field,n=e.value.replace(/'/g,"''"),r=e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),i=e.normalizedOperator==="IN"?"in":"not in";return` pushdown normalized: ${t} ${e.originalOperator} '${n}' -> ${t} ${i} ("${r}")`}function Ry(e,t,n){let r=ee(e);if(r.type!=="PLAIN")return[];let i=[];if(t)t.items.forEach((o,a)=>{let s=r.allItems[a];s?.type==="FIELD_NAME"&&(o.kind==="PHYSICAL"?i.push(` group key ${s.name}: PHYSICAL (source=${o.sourceIndex}, field=${o.fieldCode})`):o.kind==="ALIAS_SAFE"?i.push(` group key ${s.name}: ALIAS_SAFE (column=${o.columnIndex})`):o.kind==="EXPRESSION"&&i.push(` group key ${s.name}: EXPRESSION`))});else if(n)for(let o of r.allItems)o.type==="FIELD_NAME"&&i.push(` group key ${o.name}: DEFERRED (temp table schema unavailable)`);return i}function Et(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let c=n?.get(e)??(n?[...n].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),d=r?.get(e)??(r?[...r].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),p=o&&c!==void 0&&_m(e,c),f=p?"COUNT_TOTAL_COUNT":d?.kind==="CANONICAL_LOCAL"||c&&c.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":ze(e),E=Ob(e);c&&c.capability!=="EXACT_PUSHDOWN"&&E.push(...c.reasons.map(A=>A.code));let R=[],m=AE(e,Ji.get(e)?.allItems.length);t&&R.push(t),R.push(` mode: ${f}`);for(let A of Lp.get(e)??[]){if(R.push(` cross join: ${A.leftLabel} \xD7 ${A.rightLabel}`),R.push(` left rows: ${A.leftRows??"runtime (left intermediate rows)"}`),R.push(` right rows: ${A.rightRows??`runtime (${A.rightRuntimeLabel})`}`),A.plan)R.push(` rows: ${A.plan.outputRows}`),R.push(` row guard: ${A.plan.outputRows} / ${A.plan.limit}`),R.push(" guard timing: before row materialization");else{let I=A.leftRows===null?"left rows":String(A.leftRows),N=A.rightRows===null?"right rows":String(A.rightRows);R.push(` rows: runtime (${I} \xD7 ${N})`),R.push(` row guard: runtime checked / ${Lu}`),R.push(" guard timing: after complete source fetch, before row materialization")}R.push(" records API: none")}for(let A of Hc.get(e)??Rm.get(e)??[])R.push(bb(A));m&&(R.push(` grouping source: ${m.source}`),R.push(` grouping sets: ${m.expandedSetCount} (limit: ${m.setLimit})`),R.push(` grouping items: ${m.groupingItemCount} (limit: ${m.itemLimit})`),R.push(` grouping output rows: runtime checked (limit: ${m.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),R.push(...Ry(e,u,[e.from,...e.joins.map(A=>A.table)].some(A=>A.cteName!==null)));for(let A of e.columns){if(A.type!=="WINDOW_COL"||A.windowKind===void 0||A.windowKind==="RANKING")continue;let I=[];A.partitionBy.length>0&&I.push(`PARTITION BY ${A.partitionBy.map(N=>N.tableAlias?`${N.tableAlias}.${N.field}`:N.field).join(", ")}`),A.orderBy.length>0&&I.push(`ORDER BY ${A.orderBy.map(my).join(", ")}`),A.windowKind==="VALUE"?R.push(` window ${A.alias}: ${A.valueFunc}(offset=${A.offset}) OVER (${I.join(" ")})`):A.windowKind==="AGGREGATE"&&(R.push(` window ${A.alias}: ${A.aggFunc} OVER (${I.join(" ")})`),R.push(A.frame===null?" frame: PARTITION ENTIRE":` frame: ${A.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${A.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let A=e.where===null?"":z(e.where);if(R.push(` app: APP${e.from.appId} (${e.from.appId})`),R.push(` kintone query: ${A}${A?" ":""}limit 1`),a){let I=fs(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${A}${A?" ":""}limit 1`);R.push(Es(I))}return R.push(" fields: $id"),R.push(" fetch API: GET records.json (totalCount=true)"),R.push(" REST execution: single GET"),R.push(" record limit: maxRecords/onLimitReached not applied"),R.push(" fallback: full record scan when totalCount is missing or invalid"),R.push(" search abort: fail-closed (SearchAbortedError)"),R}d?(R.push(` order plan: ${d.kind}`),d.reasonCodes.length>0&&R.push(` order reason: ${d.reasonCodes.join(", ")}`),d.kind==="KORDER_NATIVE"?(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" REST execution: single GET")):d.kind==="KORDER_CURSOR"&&(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" fetch API: POST/GET/DELETE records/cursor.json"),R.push(" cursor page size: 500"),R.push(` scan rows: ${d.scanRows}`))):m&&R.push(" order plan: CANONICAL_LOCAL");let y=d&&!d.requiresCompleteInput?{...e,orderBy:[]}:e,g=Jt(y);d?.requiresCompleteInput&&g.add("LOCAL_ORDER");let S=Rt(e.where);if(g.size>0&&(!S||m!==null)&&(R.push(" complete input: required (onLimit=truncate disabled)"),R.push(` complete input reason: ${[...g].join(", ")}`),R.push(" onLimit=truncate: disabled")),S)return R.push(" predicate: constant false"),R.push(" records API access: none"),R.push(` app: APP${e.from.appId} (${e.from.appId})`),R;if(f==="FULL_SCAN"&&E.length>0&&R.push(` reason: ${E.join(", ")}`),f==="SIMPLE"){let A=Bo(d?.kind==="CANONICAL_REST_TOP_N"?Cm(e):e);R.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=d?.kind==="KORDER_CURSOR"?Mu(e):A.query;if(R.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let N=I?"EXACT":"ALL";R.push(Es(fs(s,e.from.appId,e.from.alias,l,N,I)))}R.push(` fields: ${A.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":A.fields.join(", ")}`)}else{let A=ry.get(e),I=iy.get(e),N=I??Sn(e);if(e.joins.length>0)if(A){if(R.push(" join pushdown plan: applied (runtime metadata resolved)"),R.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),R.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),A.joinPlan.serverFunctionCandidate&&R.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${A.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),R.push(` client residual: ${A.joinPlan.residualWhere===null?"(none)":vn(A.joinPlan.residualWhere)}`),R.push(` KLIKE applied nodes: ${A.joinPlan.appliedKlikes.size}`),R.push(` KLIKE unapplied nodes: ${A.joinPlan.allKlikes.length-A.joinPlan.appliedKlikes.size}`),A.joinPlan.residualWhere!==null)for(let w of A.joinPlan.rejections)R.push(` join pushdown not applied: ${w.reason}`)}else{let w=e.joins.some(_=>_.type!=="INNER"&&_.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(_=>_.table)].some(_=>_.cteName!==null||!!_.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";R.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),R.push(` join pushdown not applied: ${w}`)}let v=An(e,e.from,u),b=e.from.alias?` AS ${e.from.alias}`:"",M=N.mainCondition,D=wm(e),k=e.joins.length===0&&c?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Mt(e.where)?z(e.where):"",P=e.from.alias?A?.queriesByAlias.get(e.from.alias):void 0,O=P||(M!==null?z(M):k||"(\u5168\u4EF6\u53D6\u5F97)");R.push(` app: APP${e.from.appId}${b} (${e.from.appId})`),R.push(` kintone query: ${O}`);let C=A?.joinPlan.items.find(w=>w.targetAlias===e.from.alias),h=A?.joinPlan.serverFunctionConsumptions.find(w=>w.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let w=!I&&D!==null,_=O==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":w?"PREFILTERED":C?.relation==="exact"||h||k!==""?"EXACT":"PREFILTERED";R.push(Es(fs(s,e.from.appId,e.from.alias,l,_,O,w)))}C||h?(R.push(` pushdown applied: ${P}`),R.push(` relation: ${C?.relation??"exact"}`)):I&&M!==null?(R.push(` pushdown applied: ${O}`),R.push(` relation: ${N.mainRelation??"exact"}`)):D!==null&&(!I||Bi(D))&&R.push(` pushdown candidate: ${z(D)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),R.push(` fields: ${v.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":v.join(", ")}`);for(let w of e.joins){let _=An(e,w.table,u),L=w.table.alias?` AS ${w.table.alias}`:"",F=w.type==="INNER"?"JOIN":`${w.type} JOIN`,B=w.table.alias?N.joinConditions.get(w.table.alias)??null:null,V=w.table.alias&&!w.table.subtableCode&&w.table.cteName===null&&e.where?jr(e.where,{tableAlias:w.table.alias}):null,x=w.table.alias?A?.queriesByAlias.get(w.table.alias):void 0,K=w.table.alias?oy.get(e)?.get(w.table.alias):void 0,j=!I&&w.type==="INNER"&&w.table.cteName===null&&!w.table.subtableCode&&[e.from,...e.joins.map(ae=>ae.table)].some(ae=>ae.cteName!==null),$=x||(B!==null?z(B):K?.additionalQuery?K.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),G=j||K?.plan.kind==="RANGE_CANDIDATE"||K?.plan.kind==="FALLBACK"&&K.plan.reason==="JOIN_KEY_VALUES_RUNTIME",U=K&&K.queries.length>0?K.queries.map(ae=>$!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${ae}) and (${$})`:ae):[G?"(runtime source keys)":$],H=U.join(" | ");R.push(` ${F}: APP${w.table.appId}${L} (${w.table.appId})`);for(let ae of U)R.push(` kintone query: ${ae}`);let ye=A?.joinPlan.items.find(ae=>ae.targetAlias===w.table.alias),Ve=A?.joinPlan.serverFunctionConsumptions.find(ae=>ae.targetAlias===w.table.alias);if(a&&w.table.cteName===null){let ae=G||!K&&!I&&V!==null,zt=H==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":ae?"PREFILTERED":K?.plan.kind==="IN"&&ye?.relation!=="superset"&&K.additionalRelation!=="superset"||ye?.relation==="exact"||Ve?"EXACT":"PREFILTERED";R.push(Es(fs(s,w.table.appId,w.table.alias,"join",zt,H,ae)))}if(K)if(K.plan.kind==="RANGE"){R.push(" join key prefilter: range");for(let ae of U)R.push(` pushdown applied: ${ae}`);R.push(" relation: superset")}else if(K.plan.kind==="IN"){let ae=ye?.relation==="superset"||K.additionalRelation==="superset"?"superset":"exact";R.push(" join key prefilter: in");for(let zt of U)R.push(` pushdown applied: ${zt}`);R.push(` relation: ${ae}`)}else K.plan.kind==="RANGE_CANDIDATE"?(R.push(" join key prefilter: range candidate"),R.push(" relation: superset"),R.push(` join key prefilter reason: ${K.plan.reason}`)):K.plan.kind==="FALLBACK"&&(R.push(K.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),R.push(` join key prefilter reason: ${K.plan.reason}`));else j?(R.push(" join key prefilter: runtime candidate"),R.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),V!==null&&R.push(` pushdown candidate: ${z(V)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):ye||Ve?(R.push(` pushdown applied: ${x}`),R.push(` relation: ${ye?.relation??"exact"}`)):I&&B!==null?(R.push(` pushdown applied: ${$}`),R.push(` relation: ${N.joinRelations.get(w.table.alias)??"exact"}`)):V!==null&&(!I||Bi(V))&&R.push(` pushdown candidate: ${z(V)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);R.push(` fields: ${_.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":_.join(", ")}`)}}return R.push(...Lb(e,n,r,i,s)),R}function Nb(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,c)=>{c>0&&s.push(""),s.push(...Et(l,`[union:${c+1}]`,t,n,r,!0,!0,i,"union"))}),s}function Cb(e){let t=new Map,n=a=>pe(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Ce?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),c=[];for(let d of a.joins){let u=r(d.table),p=n(d.table);if(d.type==="CROSS"){let f=s!==null&&u!==null?Ai(s,u):null;c.push({leftLabel:l,rightLabel:p,leftRows:s,rightRows:u,plan:f,rightRuntimeLabel:d.table.cteName===null?`APP${d.table.appId} fetched rows`:`${p} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${p}`}else s=null,l=`${l} ${d.type} JOIN ${p}`}return c.length>0&&Lp.set(a,c),Rt(a.where)?s=0:a.where!==null&&(s=null),ee(a).type!=="NONE"||a.distinct||a.having!==null||Ut(a)||a.columns.some(d=>d.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,ua(a.query).rowCount);else if(a.query.type==="SELECT"){let s=i(a.query);s!==null&&t.set(a.name,s)}else a.query.type==="UNION"&&o(a.query);o(e.query)}function Pb(e,t,n,r,i={sources:[]},o=1e4,a=Nt({})){Cb(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let c=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",c?` cycle: path-scoped on ${c.column}, mark ${c.markColumn} ('${c.markValue}'/'${c.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let d of xm(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let u=`APP${d.appId}${d.subtableCode?`$${d.subtableCode}`:""}`;s.push(` source ${u}: R unknown, pageSize=500, estimated calls=ceil(R/500), maxRecords=${o}`)}s.push(" iteration rows: unknown until execution"," records API: none","")}else if(l.query.type==="SELECT")s.push(...Et(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let c=l.query,d=uy.get(c);if(c.args.some(E=>E.type==="VARIABLE")){let E=R=>{let m=c.args[R];return m?m.type==="VARIABLE"?`@${m.name} (runtime)`:R<2?"literal":m.type==="NUMBER"?q(m):m.value:R===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`," series type: deferred (variable)",` start: ${E(0)}`,` stop: ${E(1)}`,` step: ${E(2)}`," rows: runtime",` row guard: runtime / ${kt}`," records API: none","");continue}let p=ua(c),f=p.kind==="DATE"?`${p.step} ${String(p.dateUnit??"DAY").toLowerCase()}${Math.abs(p.step)===1?"":"s"}`:String(p.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`,` series type: ${p.kind}${d?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${d?.variableNames.has(0)?`@${d.variableNames.get(0)} (DECLARE default; value hidden)`:p.start}`,` stop: ${d?.variableNames.has(1)?`@${d.variableNames.get(1)} (DECLARE default; value hidden)`:p.stop}`,` step: ${f}`,` rows: ${p.rowCount}${d?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${p.rowCount} / ${kt}`,...d?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...$s(e.query,"[main]",t,n,100,ve,o,r,!1,i,"main",a)),tn(e)){s.push("");let l=nn(e);s.push(...Et(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function Ob(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.some(r=>r.type==="CROSS")&&t.push("CROSS JOIN \u3042\u308A"),e.joins.some(r=>r.type!=="CROSS")&&t.push("JOIN \u3042\u308A");let n=ee(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),Qa(e.columns)&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),Mt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Qt(e.where)&&t.push("LIKE \u306F\u5E38\u306B JS \u8A55\u4FA1\u306E\u305F\u3081\u5168\u4EF6\u53D6\u5F97"),e.orderBy.some(r=>r.key.type!=="FIELD_NAME")&&t.push("ORDER BY \u306B\u5F0F"),t}function Lb(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...Et(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...Et(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...Et(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...Et(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function _b(e,t,n=jt,r=ve){let i=e.values.length,o=Math.ceil(i/100),a=[];return t&&a.push(t),a.push(" [INSERT]"),a.push(` target: APP${e.appId} (${e.appId})`),a.push(` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`),a.push(` api: POST /k/v1/records.json \xD7 ${o}`),a.push(` fields: ${e.fields.join(", ")}`),e.applyBlocks?.length?[...a,...Dp(ka(e,n,r))]:a}function vb(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...Et(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Db(e,t,n,r,i=100,o=ve,a=1e4){if(e.applyBlocks?.length)return Ub(e,t,i,o,a);let s=Ff(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),c=Ia(e),d=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?oo(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${oo(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),d&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!c&&!d&&p.push("\u5358\u7D14 SET"),u.push(` set type: ${p.join(", ")}`),c){let f=Kb(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${$b(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...Et(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function Ub(e,t,n,r,i){let o=ka(e,n,r),a=o.branches[0],c=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),d=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],u=d.includes("REMOVE"),p=sy.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":z(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${oo(e.where)}`,`parent cardinality: ${Dt(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${d.join(" | ")}`,`selector: ${c.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${u?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Dp(o)]}function Mb(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${oo(e.where)}`),e.subtableCode||(n.push(" selection: exact native pushdown; JS residual none"),n.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),n.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function kb(e,t,n=jt,r=ve){let i=e.values.length,o=Math.ceil(i/100),a=[...t?[t]:[]," [UPSERT]",` target: APP${e.appId} (${e.appId})`,` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`,` api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json \xD7 ${o}`];return e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length?[...a,...Dp(ka(e,n,r))]:a}function Dp(e){let t=[`apply diagnostic: ${e.statementKind}`,`non-transactional: ${e.nonTransactional}`,`partial success: ${e.partialSuccess.possible?"possible":"none"}`];for(let n of e.branches){t.push(`apply branch: ${n.branch}`,` parent rows: ${n.parentRows===null?"unknown (records API not called)":n.parentRows}`,` chunks: ${n.chunk.plannedChunks===null?"unknown":n.chunk.plannedChunks} \xD7 max ${n.chunk.size}`,` revision guard: ${n.guards.revisionRequired?"required":"not required"}`);for(let r of n.targets)t.push(` target: ${r.field} (${r.targetKind})`,` operations: ${r.operations.map(i=>`${i.kind}=${i.count===null?"unknown":i.count}`).join(" | ")}`,` changed count: ${r.changedCount===null?"unknown":r.changedCount}`)}return t.push("records API: 0","mutation API: 0"),t}function xb(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...Et(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Fb(e,t){let n=`APP${e.appId}$${e.subtableCode}`,r=e.all?"\u5168\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61":"WHERE \u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61",i=e.by.map(my).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json\uFF08\u884C ID \u53D6\u5F97\uFF09\u2192 PUT /k/v1/records.json\uFF08id \u914D\u5217\u306E\u307F\u9001\u4FE1\uFF09"];return!e.all&&e.where&&o.splice(5,0,` where: ${oo(e.where)}`),o}function my(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function oo(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return z(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function Kb(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&_s(n,t),n.type==="STRING_FUNC"&&_s(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&zi(n,t);return[...t]}function _s(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached CHECK field collection.`);if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(_s(e.left,t),_s(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&zi(n,t)}async function yy(e,t,n,r,i){let o=Sp(e),a=await Ke(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ke(t.appId,n,r),c=new Set,d=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw _e(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw _e(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else throw _e(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),E=p.field==="$id"||l.has(p.field);if(!f)throw _e(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw _e(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);c.add(p.field)}let u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...c],sourceFields:[...d],evaluationTypes:u}}function Gb(e,t,n){if(!e)return{};let r=Bt(e.target,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${n}.${i}`,o])])}function zi(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&zi(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(zi(e.left,t),zi(e.right,t))}function $b(e){let t=e.value;return t.type==="STRING"?`${e.field} = '${t.value}'`:t.type==="NUMBER"?`${e.field} = ${t.value}`:t.type==="ARITH"?`${e.field} = ${gy(t)}`:t.type==="CASE_VALUE"?`${e.field} = CASE WHEN ...`:t.type==="STRING_FUNC"?`${e.field} = ${t.func}(...)`:t.type==="SCALAR_SUBQUERY"?`${e.field} = (SELECT ...)`:t.type==="SOURCE_FIELD"?`${e.field} = ${t.alias}.${t.field}`:`${e.field} = (${t.type})`}function gy(e){return`${XR(e.left)} ${e.op} ${XR(e.right)}`}function XR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic formatting.`);return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?q(e):e.type==="ARITH"?`(${gy(e)})`:"..."}var me=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var De=class extends Error{constructor(t,n,r){super(n),this.name="KsqlEngineError",this.code=t,r!==void 0&&(this.cause=r),Object.setPrototypeOf(this,new.target.prototype)}};function Up(e,t,n){return Object.defineProperties(e,{statementIndex:{value:t,enumerable:!0,configurable:!1,writable:!1},statementType:{value:n,enumerable:!0,configurable:!1,writable:!1}}),e}function it(e){return new De("READ_ONLY_VIOLATION",e)}function Or(e,t){return new De("PARSE_ERROR",e,t)}function hy(){let e=new xn;return new De("SEARCH_ABORTED",e.message,e)}function Ro(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function Bb(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.status=="number"||typeof t.response?.status=="number"||typeof t.code=="string"&&t.code.trim()!==""}function Vn(e){return e instanceof De?e:e instanceof ke||e instanceof T?new De("PARSE_ERROR",Ro(e),e):e instanceof xn||e?.name==="SearchAbortedError"?new De("SEARCH_ABORTED",Ro(e),e):e instanceof We||e?.name==="FetchAllLimitError"?new De("FETCH_LIMIT_EXCEEDED",Ro(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new De("CLIENT_ERROR",e.message,e.cause):Bb(e)?new De("CLIENT_ERROR",Ro(e),e):new De("EXECUTION_ERROR",Ro(e),e)}function Bs(e,t){let n=Vn(e);if(e instanceof ie){let r=t[e.statementIndex];if(r!==void 0)return Up(n,e.statementIndex,r.type)}return n}var Vb=2,Vs=5,Wb=3e4,Hb=10*6e4+3e4,Ws=class{constructor(t,n={}){this.host=t;this.active=0;this.peak=0;this.quarantined=0;this.waiters=[];this.createTail=Promise.resolve();let r=n.maxActive??Vb;if(!Number.isSafeInteger(r)||r<1||r>Vs)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Vs}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??Wb,this.quarantineMs=n.quarantineMs??Hb}acquire(){return this.active<this.maxActive?(this.active+=1,this.peak=Math.max(this.peak,this.active),Promise.resolve(this.makeLease())):new Promise((t,n)=>{let r={};r.resolve=t,r.reject=n,r.timer=setTimeout(()=>{let i=this.waiters.indexOf(r);i>=0&&this.waiters.splice(i,1),n(new za(this.host,this.maxActive,this.waitTimeoutMs))},this.waitTimeoutMs),r.timer.unref?.(),this.waiters.push(r)})}setMaxActive(t){this.validateMaxActive(t),this.maxActive!==t&&(this.maxActive=t,this.dispatchWaiters())}async runCreate(t){let n=this.createTail,r;this.createTail=new Promise(i=>{r=i}),await n;try{return await t()}finally{r()}}snapshot(){return{active:this.active,peak:this.peak,quarantined:this.quarantined,waiting:this.waiters.length,limit:this.maxActive}}makeLease(){let t=!1;return{release:()=>{t||(t=!0,this.returnPermit())},quarantine:(n=this.quarantineMs)=>{if(t)return;t=!0,this.quarantined+=1,setTimeout(()=>{this.quarantined-=1,this.returnPermit()},n).unref?.()}}}returnPermit(){this.active-=1,this.dispatchWaiters()}dispatchWaiters(){for(;this.active<this.maxActive;){let t=this.waiters.shift();if(!t)return;clearTimeout(t.timer),this.active+=1,this.peak=Math.max(this.peak,this.active),t.resolve(this.makeLease())}}validateMaxActive(t){if(!Number.isSafeInteger(t)||t<1||t>Vs)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Vs}.`)}};function Yb(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function jb(e,t=r=>new Promise(i=>setTimeout(i,r)),n=Yb){try{await e();return}catch(r){if(n(r))return}await t(250);try{await e()}catch(r){if(n(r))return;throw r}}async function zb(e,t){let n,r=new Promise((i,o)=>{n=setTimeout(()=>o(new Error(`CursorCleanupTimeoutError: cleanup exceeded ${t}ms.`)),t),n.unref?.()});try{return await Promise.race([e,r])}finally{n&&clearTimeout(n)}}function Ay(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let c=await t.get();return c.next||(n=!0,t.onReleased?.()),c});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await zb(jb(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Sy(e){return Ty(e,Jb(e))}function Ty(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=Xb(o.options),s=Qb(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Hs(o.minValue),maxValue:Hs(o.maxValue),minLength:Hs(o.minLength),maxLength:Hs(o.maxLength),defaultValue:o.defaultValue,hasLookup:Object.prototype.hasOwnProperty.call(o,"lookup"),isLookupCopyTarget:t.has(o.code),isUnique:o.unique===!0,isCalculated:o.type==="CALC"||typeof o.expression=="string"&&o.expression.length>0,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!qb.has(o.type)};l.semantics=te(l),i.push(l),o.fields&&i.push(...Ty(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var qb=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function Jb(e){let t=new Set,n=r=>{for(let i of Object.values(r)){for(let o of i.lookup?.fieldMappings??[])o.field&&t.add(o.field);i.fields&&n(i.fields)}};return n(e),t}function Hs(e){return e==null||e===""?void 0:e}function Xb(e){if(!e||typeof e!="object")return;let t={},n=!1;for(let[r,i]of Object.entries(e)){let o=Number(i?.index);Number.isFinite(o)&&(t[r]=o,n=!0)}return n?t:void 0}function Qb(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Iy(e){return e===null?null:Object.values(e).map(t=>{let n=Number(t.index);if(!Number.isSafeInteger(n)||n<0)throw new Error(`ArgumentError: invalid process status index: ${String(t.index)}`);return{name:t.name,index:n}})}var Zb="Filter aborted because of too many search results";function wy(e){return e?.includes(Zb)===!0}var by="/k/v1/records.json",Ys="/k/v1/records/cursor.json",eN=4096,tN=2,Mp=e=>kintone.api.url(e,!0);function nN(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{},...e.totalCount===!0?{totalCount:!0}:{}},r=kintone.api.urlForGet(by,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=eN?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Mp(by),init:{method:"POST",credentials:"include",headers:{...i,"X-HTTP-Method-Override":"GET","Content-Type":"application/json","X-Cybozu-Request-Token":kintone.getRequestToken()},body:JSON.stringify(t)}}}function mo(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
18
- `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function rN(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return mo({code:r.code,message:r.message,errors:r.errors,status:e.status})}let n=new Error(`kintone API error: HTTP ${e.status}`);return Object.assign(n,{status:e.status,cause:t}),mo(n)}catch(t){let n=new Error(`kintone API error: HTTP ${e.status} \u306E\u5FDC\u7B54\u3092 JSON \u3068\u3057\u3066\u89E3\u6790\u3067\u304D\u307E\u305B\u3093`);return Object.assign(n,{status:e.status,cause:t}),mo(n)}}function iN(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Wn(e,t,n){try{return await kintone.api(Mp(e),t,n)}catch(r){throw mo(r)}}function oN(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Ny(e={}){let t=e.cursorMaxActive??tN;oN(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=nN(a),l=await fetch(s.url,s.init);if(!l.ok)throw await rN(l);let c=await l.json();return wy(l.headers.get("X-Cybozu-Warning"))?{...c,searchAborted:!0}:c}catch(s){throw mo(s)}},async openCursor(a){let s=Mp(Ys),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(r!==null&&r!==l)throw new Error(`CursorRouteError: factory route changed from ${r} to ${l}.`);if(r=l,n??=new Ws(l,{maxActive:t}),n.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let c=await n.acquire(),d;try{d=await n.runCreate(()=>Wn(Ys,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(c.release(),R):(c.quarantine(),new qa(R))}let u=d.id,p=Ay(Number(d.totalCount),{get:()=>Wn(Ys,"GET",{id:u}),delete:()=>Wn(Ys,"DELETE",{id:u}),isAlreadyReleasedError:iN,onReleased:()=>c.release(),onReleaseUnknown:()=>c.quarantine()}),f=null,E={totalCount:p.totalCount,async nextPage(){let R=await p.nextPage();return R.next||i.delete(E),R},close(){return f||(f=p.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let c=await Wn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let d of c.apps)s.push({appId:Number(d.appId),name:d.name,description:d.description});if(c.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Wn("/k/v1/app/form/fields.json","GET",{app:a});return Sy(s.properties)},async getNumberPrecision(a){let s=await Wn("/k/v1/app/settings.json","GET",{app:a});return rE(s)},async getProcessStatuses(a){let s=await Wn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Iy(s.states)}}}}var Cy=new Set(["postRecords","putRecords","upsertRecords","deleteRecords"]),yo=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(n),this.name="ClientOperationError",this.cause=t,Object.setPrototypeOf(this,new.target.prototype)}};async function Rn(e){try{return await e()}catch(t){throw new yo(t)}}function aN(e){return()=>{throw it(`${String(e)} is blocked by the readonly client`)}}function Lr(e){let t=e.getRecords.bind(e),n=e.openCursor.bind(e),r=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let c=await Rn(()=>t(l));if(c.searchAborted===!0)throw hy();return c},openCursor:async l=>{let c=await Rn(()=>n(l)),d=c.nextPage.bind(c),u=c.close.bind(c);return{totalCount:c.totalCount,nextPage:()=>Rn(()=>d()),close:()=>Rn(()=>u())}},getApps:()=>Rn(()=>r()),getFields:l=>Rn(()=>i(l)),getNumberPrecision:l=>Rn(()=>o(l)),getProcessStatuses:l=>Rn(()=>a(l))});return new Proxy(s,{get(l,c,d){return Cy.has(c)?aN(c):Reflect.get(l,c,d)},has(l,c){return Cy.has(c)?!1:Reflect.has(l,c)}})}function sN(e){let t=new Set,n=null;return{client:{getRecords:e.getRecords.bind(e),async openCursor(i){let o=await e.openCursor.call(e,i),a=null,s={totalCount:o.totalCount,nextPage:o.nextPage.bind(o),close(){return a||(a=Promise.resolve().then(()=>o.close()).finally(()=>{t.delete(s)}),a)}};return t.add(s),s},getApps:e.getApps.bind(e),getFields:e.getFields.bind(e),getNumberPrecision:e.getNumberPrecision.bind(e),getProcessStatuses:e.getProcessStatuses.bind(e)},close(){return n||(n=(async()=>{let o=(await Promise.allSettled([...t].map(a=>a.close()))).find(a=>a.status==="rejected");if(o)throw new yo(o.reason)})(),n)}}}async function _r(e,t){let n=sN(e),r=!1;try{return await t(n.client)}catch(i){throw r=!0,i}finally{try{await n.close()}catch(i){if(!r)throw i}}}var lN="A-Za-z",uN="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",xp=`${lN}${uN}`,Oy=`${xp}0-9_`,cN=new RegExp(`^[${xp}]$`,"u"),pN=new RegExp(`^[${Oy}]$`,"u"),dN=new RegExp(`^[${xp}][${Oy}]{0,63}$`,"u");function fN(e){return cN.test(e)}function EN(e){return pN.test(e)}function Fp(e){let t=e.normalize("NFC").toUpperCase();if(!dN.test(t))throw new Error(`ArgumentError: logical app name "${e}" is invalid; expected 1-64 UTF-16 units starting with an ASCII letter or supported Japanese character.`);return t}function kp(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===95||t===36||t>=12352&&t<=12543||t>=13312&&t<=40959||t>=63744&&t<=64255||t>=65281&&t<=65376}function RN(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||e==="_"||e==="-"||e==="."||e==="$"}function mN(e,t){let n=t>0?e[t-1]:"";if(kp(n))return null;let r,i,o,a,s,l;if(e.slice(t,t+5).toUpperCase()==="LAPP_"){if(r="logical",l=t+5,a=l,!fN(e[l]??""))return null;for(l++;l<e.length&&EN(e[l]);)l++;s=l;try{o=Fp(e.slice(a,s))}catch{return null}}else if(e.slice(t,t+3).toUpperCase()==="APP"){for(r="physical",l=t+3,a=l;l<e.length&&/[0-9]/.test(e[l]);)l++;if(s=l,s===a)return null;i=Number(e.slice(a,s))}else return null;if(e[l]==="$"){l++;let f=l;for(;l<e.length&&kp(e[l]);)l++;if(l===f)return null}let c=l,d=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&RN(e[l]);)l++;if(l===f)return null;d=e.slice(f,l)}let u=l<e.length?e[l]:"";if(kp(u))return null;let p={profile:d,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:c,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function Kp(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){for(n++;n<e.length;){if(e[n]==="'"){if(n++,n<e.length&&e[n]==="'"){n++;continue}break}n++}continue}if(r==="`"){for(n++;n<e.length&&e[n]!=="`";)n++;n<e.length&&n++;continue}if(r==="-"&&e[n+1]==="-"){for(n+=2;n<e.length&&e[n]!==`
19
- `;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=mN(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function Py(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function Ly(e,t="dev",n){let r=Kp(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let y=a(m.profile),g=o.get(m.appId);g||(g=new Set,o.set(m.appId,g)),g.add(y.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let y=a(m.profile).toLowerCase(),g=`logical:${m.logicalName}@${y}`;if(l.has(g))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${y} requires logicalApps configuration.`);let S=n.resolveLogicalApp(m.logicalName,y);l.set(g,S),s.add(S)}let c=new Map,d=new Map;for(let[m,y]of o.entries()){let g=[...y].sort();if(!(g.length<=1))for(let S of g){let A=Py(s);c.set(`physical:${m}@${S}`,A),d.set(A,{source:"physical",mappedAppId:A,appId:m,profile:S})}}let u=[],p=[],f=0,E=0,R=(m,y,g,S)=>{if(!m&&y===g)return;let A=f;u.push(m),f+=m.length,p.push({normalizedStart:A,normalizedEnd:f,sourceStart:y,sourceEnd:g,...S===void 0?{}:{bindingMappedAppId:S}})};for(let m of r){let y=a(m.profile).toLowerCase(),g;if(m.source==="physical")g={source:"physical",mappedAppId:c.get(`physical:${m.appId}@${y}`)??m.appId,appId:m.appId,profile:y};else{let I=`logical:${m.logicalName}@${y}`,N=c.get(I);N===void 0&&(N=Py(s),c.set(I,N)),g={source:"logical",logicalName:m.logicalName,mappedAppId:N,appId:l.get(I),profile:y}}d.set(g.mappedAppId,g),R(e.slice(E,m.start),E,m.start);let S=e.slice(m.referenceValueEnd,m.appEnd),A=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${g.mappedAppId}${S}`:`APP${g.mappedAppId}${S}`;R(A,m.start,m.fullEnd,g.mappedAppId),E=m.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:d,rewriteSegments:p}}var _y=new Set(["client","logicalApps","maxRecords","recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions","fetchParallel","cursorMaxActive"]),vy=new Set([..._y,"onLimitReached"]),yN=new Set([...vy,"variables","tempTableMaxRows"]);function Dy(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function vr(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Uy(e){if(e===null||typeof e!="object")throw new TypeError("client is required");let t=e;for(let n of["getRecords","openCursor","getApps","getFields","getNumberPrecision","getProcessStatuses"])if(typeof t[n]!="function")throw new TypeError(`client.${n} must be a function`)}function gN(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("variables must be an object");for(let[t,n]of Object.entries(e))if(typeof n!="string")throw new TypeError(`variables.${t} must be a string`)}function My(e){if(e===void 0)return;if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("logicalApps must be an object");let t={};for(let[n,r]of Object.entries(e)){let i;try{i=Fp(n)}catch{throw new TypeError(`logicalApps key "${n}" is invalid`)}if(Object.prototype.hasOwnProperty.call(t,i))throw new TypeError(`logicalApps key "${n}" duplicates "${i}" after canonical normalization`);vr(r,`logicalApps.${n}`),t[i]=r}return t}function ky(e,t,n){for(let r of Reflect.ownKeys(e))if(typeof r!="string"||!t.has(r))throw new TypeError(`Unknown ${n} option: ${String(r)}`);e.maxRecords!==void 0&&vr(e.maxRecords,"maxRecords");for(let r of["recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions"])e[r]!==void 0&&vr(e[r],r);if(e.fetchParallel!==void 0&&vr(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(vr(e.cursorMaxActive,"cursorMaxActive"),e.cursorMaxActive>5))throw new RangeError("cursorMaxActive must be between 1 and 5");if(e.onLimitReached!==void 0&&e.onLimitReached!=="error"&&e.onLimitReached!=="truncate")throw new TypeError('onLimitReached must be "error" or "truncate"');return{...e.maxRecords!==void 0?{maxRecords:e.maxRecords}:{},...e.recursiveCteMaxDepth!==void 0?{recursiveCteMaxDepth:e.recursiveCteMaxDepth}:{},...e.recursiveCteMaxRows!==void 0?{recursiveCteMaxRows:e.recursiveCteMaxRows}:{},...e.recursiveCteMaxExpansions!==void 0?{recursiveCteMaxExpansions:e.recursiveCteMaxExpansions}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function Gp(e,t){Dy(e);let n=t==="run"?vy:_y;Uy(e.client);let r=ky(e,n,t==="run"?"runQuery":"explainQuery"),i=My(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function xy(e){Dy(e),Uy(e.client),e.variables!==void 0&&gN(e.variables),e.tempTableMaxRows!==void 0&&vr(e.tempTableMaxRows,"tempTableMaxRows");let t=ky(e,yN,"runBatch"),n=My(e.logicalApps);return{client:e.client,...n===void 0?{}:{logicalApps:n},executeOptions:{...t,...e.variables!==void 0?{variables:e.variables}:{},...e.tempTableMaxRows!==void 0?{tempTableMaxRows:e.tempTableMaxRows}:{}}}}function js(e,t,n={}){let r=n.logicalAppDisplay??"profile";if(typeof e=="string"){let i=e.match(/^(\s*target:\s*)APP(\d+) \((\d+)\)\s*$/);if(i&&i[2]===i[3]){let s=t.get(Number(i[2]));if(s){let l=s.source==="logical"?r==="physical"?`LAPP_${s.logicalName} -> APP${s.appId}`:`LAPP_${s.logicalName} -> APP${s.appId}@${s.profile}`:r==="physical"?`APP${s.appId}`:`APP${s.appId}@${s.profile}`;return`${i[1]}${l}`}}if(t.size===0)return e;let o=[...t.keys()].sort((s,l)=>String(l).length-String(s).length),a=new RegExp(`APP(${o.join("|")})(?!\\d)(\\s+AS\\s+[^\\s()]+)?(?:\\s+\\(\\1\\))?`,"g");return e.replace(a,(s,l,c)=>{let d=t.get(Number(l));return`${d.source==="logical"?r==="physical"?`LAPP_${d.logicalName} -> APP${d.appId}`:`LAPP_${d.logicalName}@${d.profile}`:r==="physical"?`APP${d.appId}`:`APP${d.appId}@${d.profile}`}${c??""}`})}return Array.isArray(e)?e.map(i=>js(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,js(o,t,n)])):e}function hN(e,t,n){return e.slice(t,n)}function go(e,t,n){let r=Kp(e),i=r.find(c=>c.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${hN(e,i.start,i.fullEnd)}).`);if(!r.some(c=>c.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=Ly(e,"browser",{resolveLogicalApp(c){let d=n?.[c];if(d===void 0)throw new Error(`ArgumentError: logical app LAPP_${c} is not defined.`);return d}}),a=[...o.appBindingByMappedApp.values()].filter(c=>c.source==="logical"),s=c=>o.appBindingByMappedApp.get(c)?.appId??c,l={getRecords:c=>t.getRecords({...c,app:s(c.app)}),openCursor:c=>t.openCursor({...c,app:s(c.app)}),getApps:()=>t.getApps(),getFields:c=>t.getFields(s(c)),getNumberPrecision:c=>t.getNumberPrecision(s(c)),getProcessStatuses:c=>t.getProcessStatuses(s(c))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function ho(e,t){if(t.length===0)return e;let n=t.map(r=>`LAPP_${r.logicalName} -> APP${r.appId}`).filter((r,i,o)=>o.indexOf(r)===i);return e.message=`${e.message} [logical apps: ${n.join(", ")}]`,e}function Ao(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return js(e,n,{logicalAppDisplay:"physical"})}function zs(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0,limitReached:e?.limitReached??!1,limitReachedApps:e?[...e.limitReachedApps].sort((t,n)=>t-n):[]}}function AN(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function SN(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,displayName:n?.displayName??e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function qs(e,t=e.metrics){let n=QR(e);return{type:"query",rows:e.rows.map(AN),columns:e.columns.map(r=>SN(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:zs(t)}}function $p(e){let t=e.type==="EXPLAIN"?e.query:e;if(t.type!=="UPDATE"&&t.type!=="INSERT"&&t.type!=="UPSERT")return!1;let n=t;return["applyBlocks","onInsertApplyBlocks","onUpdateApplyBlocks"].some(r=>Array.isArray(n[r])&&n[r].length>0)}function Fy(e){if(e instanceof ge)return Or(e.message,e);let t=Vn(e);return t.code==="PARSE_ERROR"?t:Or("SQL statement could not be parsed",e)}function TN(e){if(e.trim()==="")throw Or("SQL statement is empty");try{return QE(e,{import:!0})}catch(t){let n=Fy(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Or("This API accepts one statement; use runBatch for multiple statements",t):n}}function Ky(e){if(Po(e)==="UNKNOWN")throw it("Unclassifiable statement is not allowed");return e}function Gy(e){if(e.trim()==="")throw Or("SQL statement is empty");try{return zu(e,{import:!0})}catch(t){throw Fy(t)}}function IN(e){let t=Ky(e),n=t.type;if(n==="IMPORT")throw it("IMPORT is disabled by default in engine library queries");if(!jn(t))throw it(`${n} statements are not read-only`);if($p(t))throw it("APPLY statements are not allowed in engine library queries");if(!ed(t))throw it(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function $y(e){let t=Ky(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw it("IMPORT is disabled by default in engine library batches");if(!jn(n))throw it(`${n.type} statements are not read-only`);if($p(n))throw it("APPLY statements are not allowed in engine library batches");if(Xt(n.type))throw it("DML VALIDATE ONLY statements are not supported by runBatch")}function By(e){let t=TN(e);return IN(t),t}function Vy(e){let t=Gy(e);return t.forEach($y),t}function Wy(e){let t=e.trim(),n=Gy(t);n.forEach($y);let r=n[0],i=r.type==="EXPLAIN"?r.query:r;return n.length===1&&(i.type==="SELECT"||i.type==="WITH"||i.type==="UNION")?{statements:n,legacySql:r.type==="EXPLAIN"?t:`EXPLAIN ${t}`}:{statements:n}}function wN(e){let t=e.error,n=t?.cause!==void 0?Vn(t.cause):new De("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Up(n,e.index,e.type)}async function Hy(e,t){let n=[],r=[];try{let i=xy(t),o=go(e,i.client,i.logicalApps);r=o.logicalBindings,n=Vy(o.sql);let a=await _r(o.client,d=>um(o.sql,Lr(d),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(d=>d.status==="error");if(s!==void 0)throw wN(s);let l=[],c=a.statements.map(d=>{let u={index:d.index,type:d.type,status:d.status};if(d.tempTable!==void 0&&(u.tempTable=d.tempTable),d.rowCount!==void 0&&(u.rowCount=d.rowCount),d.error!==void 0&&(u.error={code:d.error.code,message:d.error.message}),d.skippedReason!==void 0&&(u.skippedReason=d.skippedReason),d.status==="success"&&d.result?.type==="SELECT"){u.resultIndex=l.length;let p=qs(d.result,a.metrics);l.push(n[d.index]?.type==="EXPLAIN"?Ao(p,r):p)}return u});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:c,results:l,warnings:[]}}catch(i){throw ho(Bs(i,n),r)}}function Yy(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function jy(e,t){let n=[];try{let r=Gp(t,"run"),i=go(e,r.client,r.logicalApps);n=i.logicalBindings;let a=By(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await _r(i.client,l=>Qc(i.sql,Lr(l),{...a,captureColumnMeta:!0}));return Yy(s),qs(s)}catch(r){throw ho(Vn(r),n)}}async function zy(e,t){let n=[],r=[];try{let i=Gp(t,"explain"),o=go(e,i.client,i.logicalApps);r=o.logicalBindings;let a=Wy(o.sql);if(n=a.statements,a.legacySql!==void 0){let d=await _r(o.client,f=>Qc(a.legacySql,Lr(f),i.executeOptions));Yy(d);let u=Ao(d.rows.map(f=>String(f.plan??"")),r),p=_p(d)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
20
- `),plan:p,metrics:zs(d.metrics)}}let s=await _r(o.client,d=>dy(o.sql,Lr(d),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive,!1,100,void 0,!0,i.executeOptions.recursiveCteMaxDepth,i.executeOptions.recursiveCteMaxRows,i.executeOptions.recursiveCteMaxExpansions,void 0,void 0,{surface:"DOCUMENT_ONLY"})),l=Ao(s.statements.flatMap(d=>[...s.statementCount>1?[`[${d.index+1}] ${d.type}`]:[],...d.plan]),r),c=_p(s)??{statements:s.statements.map(d=>({index:d.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
21
- `),plan:c,metrics:zs()}}catch(i){throw ho(Bs(i,n),r)}}var bN="3.79.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runBatch,runQuery,version});
17
+ WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function Yw(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Hw}`)}async function jw(e,t,n,r,i){let o=r.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),c=Uu(e.where,{fieldTypes:s,fieldOptions:l});Yw(c);let p=c.prefilter===null?"":z(c.prefilter),u=new Set(ba(e,r));for(let E of zw(e.where))u.add(E);let d=await qw(e.appId,e.where,a,t,i);return(await Ge(t.getRecords,e.appId,p,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:Bt(E,null)})).filter(({row:E})=>le(e.where,E,d.fieldTypeResolver,c.appliedKlikes,d.fieldSemanticsResolver,se(n))).map(({snapshot:E})=>E)}function zw(e){return rp(e)}async function qw(e,t,n,r,i){let s=[...Jw(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await gp(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return rr(te({fieldType:"__ID__"}),e,"$id");let u=n.get(p.field);if(!u)return;let d=u.semantics??te(u),f=u.fieldType==="STATUS"&&s?{...d,optionOrder:s}:d;return rr(f,e,u.code)}}}function Jw(e){let t=new Set,n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="BINARY"&&[">","<",">=","<="].includes(String(i.op))){let o=i.left;o?.type==="FIELD"&&typeof o.field=="string"&&t.add(o.field)}Object.values(i).forEach(n)}};return n(e),t}function Xw(e,t,n){let r=t.validations.flatMap(p=>p.errors),i=t.validations.reduce((p,u)=>p+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...It(n,e.fields).payloadFields,...mi],a=t.guards.parentRows,s=Iu(t),l=s.branches[0],c={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:no(l),guards:ro(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return Bn.set(c,Ks(o,n,e.appId)),c}function Qw(e,t,n){let r=t.validations,i=r.flatMap(c=>c.errors),o=r.reduce((c,p)=>c+(p.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...It(n,e.assignments.map(c=>c.field)).payloadFields,...mi],s=hi(t),l={type:"VALIDATION",operation:"UPDATE",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-o,invalidRows:o,errorCount:i.length,columns:a,errors:i,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:no(s.branches[0]),guards:ro(s.branches[0]),deletedRows:{total:t.plans.reduce((c,p)=>c+p.tables.reduce((u,d)=>u+d.deletedRows,0),0),parentRows:t.plans.filter(c=>c.tables.some(p=>p.deletedRows>0)).length},diagnostic:s};return Bn.set(l,Ks(a,n,e.appId)),l}function Zw(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...It(n,e.fields).payloadFields,...mi],l=wu(t),c=l.branches.find(E=>E.branch==="insert"),p=l.branches.find(E=>E.branch==="update"),u=no(c),d=no(p),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...u,...d],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:ro(c)},update:{apply:d,guards:ro(p)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return Bn.set(f,Ks([...s],n,e.appId)),f}function no(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:xn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:xn(t,"ADD"),removedValues:xn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function ro(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var jt=100,ve=500;function rt(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function Ks(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:te({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,xe(s,n));continue}o.set(a,re(i.has(a)?"number":"string"))}return o}async function eb(e,t,n,r,i,o){let a=await jm(e,t,n,r,i,o),s=await Ke(e.appId,n,i),l=nu(e,a,s,se(r)),c=e.assignments.map(d=>d.field),p=await Q(e.appId,n,i),u=await Yt(e.appId,c,p,n,i);if(En(l.flatMap(d=>d.records.map(f=>f.record)),c,p,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new me("UPDATE",a.length);for(let d of l)await n.putRecords(d);return{type:"UPDATE",updatedCount:a.length}}function tb(e){let t=new Set(["$id"]);e.from&&t.add(e.from.targetJoinField);let n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;i.type==="FIELD_REF"&&typeof i.field=="string"&&t.add(i.field);for(let o of Object.values(i))n(o)};for(let r of e.assignments)r.value.type!=="SOURCE_FIELD"&&n(r.value);return[...t]}async function nb(e,t,n,r){if(await Ir(e,t,r),Rt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return sb(e,t,n,r);let i=Bf(e),a=(await Ga(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new me("DELETE",a.length);let s=Vf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function rb(e,t,n){return e.values.map(r=>{let i={};return e.fields.forEach((o,a)=>{let s=r[a];i[o]={value:s.type==="CASE_VALUE"?Kt(s.expr,{},t.get(o),se(n)):St(s,t.get(o))}}),i})}async function ib(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return ww(e,t,n,r);if(e.checkGroups?.length)return po(e,t,n,r);let i=await yt(e.appId,e.fields,t,r),o=await Yt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ke(e.appId,t,r),c=wp(e);if(Ep(Gm(e,t,n,i,c)).execution.status==="ELIGIBLE"){let f=rb(e,l,n);return En(f,e.fields,i,o),$m(e.appId,e.keyFields[0],f,c,t,n)}let u=await uo(e.appId,e.keyFields,c,t,n,l);if(e.values.forEach((f,E)=>{let R={};e.fields.forEach((y,g)=>{let S=f[g];S.type==="CASE_VALUE"?R[y]={value:Kt(S.expr,{},l.get(y),se(n))}:R[y]={value:St(S,l.get(y))}});let m=lo(u,c[E]);m!==void 0?s.push({id:m,record:R}):a.push(R)}),En([...a,...s.map(f=>f.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let f=a.length+s.length;if(!await n.confirm(f,"UPDATE"))throw new me("UPDATE",f)}let d=[];for(let f=0;f<a.length;f+=100){let E=await t.postRecords({app:e.appId,records:a.slice(f,f+100)});d.push(E.ids)}for(let f=0;f<s.length;f+=100)await t.putRecords({app:e.appId,records:s.slice(f,f+100)});return{type:"UPSERT",insertedCount:d.flat().length,updatedCount:s.length}}function wp(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?q(i):i.type==="CASE_VALUE"?He(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function bp(e,t,n,r){if(t.length===0)return;let i=await Ke(e,n,r);return o=>{if(o.tableAlias!==null&&o.tableAlias!=="_p")return;if(o.tableAlias==="_p")return i.get(o.field);let a=o.field.startsWith("_p.")?o.field.slice(3):o.field;return i.get(a)}}async function ob(e,t,n,r){let i=e.subtableCode,o=e.fields.indexOf("_pid");if(o<0)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u306F _pid \u304C\u5FC5\u9808\u3067\u3059");let a=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Gs(a),l=new Map;for(let p of e.values){let u=YR(p[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:YR(p[m])}}});let E=l.get(u);E?E.push(f):l.set(u,[f])}let c=[];for(let[p,u]of l.entries()){let d=s.get(p),E=[...fo(d,i),...u];c.push(Xm(e.appId,p,Eo(d),i,E))}for(let p of c)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function ab(e,t,n,r){let i=e.subtableCode;if(!Hi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Wt(e.where,o);for(let d of e.assignments)d.value.type==="CASE_VALUE"&&Cs(d.value.expr,o);let a=await bp(e.appId,o,t,r),s=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Np(s,i).filter(d=>le(e.where,d.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new me("UPDATE",c.length);let p=new Map;for(let d of c){if(!d.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=p.get(d.parentId);f||(f=new Map,p.set(d.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:wa(R.value,d.flat,a,se(n))}}f.set(d.rowId,E)}let u=Gs(s);for(let[d,f]of p.entries()){let E=u.get(d);if(!E)continue;let m=fo(E,i).map(y=>{let g=y.id??"";if(!g)return y;let S=f.get(g);return S?{id:g,value:S}:{id:g}});await t.putRecords(lb(e.appId,d,Eo(E),i,m))}return{type:"UPDATE",updatedCount:c.length}}async function sb(e,t,n,r){let i=e.subtableCode;if(!Hi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Wt(e.where,o);let a=await bp(e.appId,o,t,r),s=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Np(s,i).filter(d=>le(e.where,d.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"DELETE"))throw new me("DELETE",c.length);let p=new Map;for(let d of c){let f=p.get(d.parentId);f?f.push(d.rowIndex):p.set(d.parentId,[d.rowIndex])}let u=Gs(s);for(let[d,f]of p.entries()){let E=u.get(d);if(!E)continue;let R=fo(E,i),m=new Set(f),y=R.filter((g,S)=>!m.has(S));await t.putRecords(Xm(e.appId,d,Eo(E),i,y))}return{type:"DELETE",deletedCount:c.length}}function Gs(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Np(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=Eo(r),a=fo(r,t);for(let s=0;s<a.length;s++){let l=a[s],c={...Na(l,s),_pid:i};for(let[p,u]of Object.entries(r))p!==t&&(c[`_p.${p}`]=Wc(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:c})}}return n}function fo(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Eo(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Xm(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function lb(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function ub(e,t,n,r,i){if(i.some(o=>!o))throw new Error("REORDER \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i.map(o=>({id:o}))}}}]}}function YR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved variable @${e.name} reached INSERT evaluation.`);return e.type==="STRING"?e.value:e.type==="NUMBER"?q(e):e.type==="CASE_VALUE"?He(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Wc(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Hi(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Hi(e.left)||Hi(e.right);case"NOT":case"GROUP":return Hi(e.expr);default:return!1}}async function cb(e,t,n,r){let i=[];Wt(e.where,i);let o=await bp(e.appId,i,t,r),a=await Q(e.appId,t,r);if(Rt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??te(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return W("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??W("string")},c=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Np(c,e.subtableCode),u=e.all?new Set(c.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(p.filter(f=>e.where&&le(e.where,f.flat,o,void 0,l,se(n))).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new me("UPDATE",u.size);let d=Gs(c);for(let f of u){let E=d.get(f);if(!E)continue;let m=fo(E,e.subtableCode).map((g,S)=>({row:g,i:S,flat:pb(E,e.subtableCode,g,S)}));m.sort((g,S)=>db(g.flat,S.flat,e.by,l,se(n)));let y=m.map(g=>g.row.id??"");await t.putRecords(ub(e.appId,f,Eo(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function pb(e,t,n,r){let i={_pid:String(e.$id?.value??""),_rid:n.id??"",_idx:String(r)};for(let[o,a]of Object.entries(e))o!==t&&(i[`_p.${o}`]=Wc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Wc(a?.value);return i}function db(e,t,n,r,i={}){for(let o of n){let a=jR(o.key,e,i),s=jR(o.key,t,i),l=o.key.type==="FIELD_NAME"?r(Fe(o.key.name)):o.key.type==="ARITH_KEY"?W("number"):o.key.type==="FUNC_KEY"?Kn(o.key.expr,p=>{let u=r(p);return u?{compareMode:u.compareMode}:void 0}).semantics??W("string"):W("number"),c=lt(a,s,l??W("string"));if(c!==0)return o.direction==="ASC"?c:-c}return 0}function jR(e,t,n={}){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(Ee(e.expr,t,n));case"FUNC_KEY":return he(e.expr,t,void 0,void 0,n);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Cp(e,t,n,r,i){if(e.checkGroups?.length)return po(e,t,n,r,i);let o=await yt(e.appId,e.fields,t,r),a=await Yt(e.appId,e.fields,o,t,r),s=await Tp.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(qm(s),c.length!==e.fields.length){let g=c.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${c.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],u=[],d=await Ke(e.appId,t,r),f=l.map((g,S)=>{let A={};return e.fields.forEach((I,N)=>{if(s.importPresence&&!s.importPresence[S]?.has(I))return;let v=g[c[N]]??"";A[I]={value:Wm(v,d.get(I))}}),A});f.forEach(g=>En([g],e.fields.filter(S=>S in g),o,a));let E=f.map(g=>e.keyFields.map(S=>String(g[S]?.value??"")));if(Ep(Gm(e,t,n,o,E)).execution.status==="ELIGIBLE")return $m(e.appId,e.keyFields[0],f,E,t,n);if(Pr.has(e)){let g=e.keyFields.map(A=>d.get(A)==="NUMBER"),S=new Set;for(let A of E){let I=fn(A,g);if(S.has(I))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");S.add(I)}}let m=await uo(e.appId,e.keyFields,E,t,n,d);if(f.forEach((g,S)=>{let A=lo(m,E[S]);A!==void 0?u.push({id:A,record:g}):p.push(g)}),n.confirm&&p.length+u.length>0){let g=p.length+u.length;if(!await n.confirm(g,"UPDATE"))throw new me("UPDATE",g)}let y=[];for(let g=0;g<p.length;g+=100){let S=await t.postRecords({app:e.appId,records:p.slice(g,g+100)});y.push(S.ids)}for(let g=0;g<u.length;g+=100)await t.putRecords({app:e.appId,records:u.slice(g,g+100)});return{type:"UPSERT",insertedCount:y.flat().length,updatedCount:u.length}}var Pp=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),Op=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function Qm(e){let t=await e.getApps(),n=[...Pp],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function Zm(e,t,n){let r=await Q(e.appId,t,n),i=[...Op],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB:a.inSubtable===!0?a.subtableCode??"":"",\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}function fb(e,t=!1){try{let n=new sn(e).tokenize(),r=new ln(n,{import:t}).parse();return Qn("phase15b",r),st(r),r}catch(n){throw n instanceof ke||n instanceof T,n}}async function io(e,t,n,r,i,o){let a=[];Ss(e,t,n,r,a,i,o),await Promise.all(a)}async function ey(e,t,n,r,i,o){let a=[];for(let s of e.columns)if(s.type==="CASE_COL")for(let l of s.expr.branches)a.push(io(l.condition,t,n,r,i,o));await Promise.all(a)}function Yi(e,t,n,r,i){return i!==void 0&&i.size>0?mt(e,t,n,i,r):Ht(e,t,n,r)}function Ss(e,t,n,r,i,o,a){if(e!==null)switch(e.type){case"BINARY":{let s=e.right;s.type==="SUBQUERY_IN_LIST"&&i.push(Yi(s.query,t,n,r,a).then(l=>{for(let p of l.warnings??[])o.add(p);let c=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(p=>p[c]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(Yi(s.query,t,n,r,a).then(l=>{for(let p of l.warnings??[])o.add(p);if(l.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(l.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let c=l.columns[0]??"";s.resolved=l.rows[0]?.[c]??""}));break}case"LOGICAL":Ss(e.left,t,n,r,i,o,a),Ss(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":Ss(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(Yi(s.query,t,n,r,a).then(l=>{for(let c of l.warnings??[])o.add(c);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function ty(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Ht(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function ny(e,t,n,r,i,o){let a=new Map,s=[];for(let p=0;p<e.length;p++){let u=e[p];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let d=JSON.stringify(u.query),f=a.get(d);f||(f=Yi(u.query,t,n,r,o).then(E=>{for(let m of E.warnings??[])i.add(m);if(E.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(E.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let R=E.columns[0]??"";return E.rows[0]?.[R]??""}),a.set(d,f)),s.push([p,f])}let l=await Promise.all(s.map(([,p])=>p)),c=new Map;return s.forEach(([p],u)=>c.set(p,l[u])),c}var ry=new WeakMap,iy=new WeakMap,oy=new WeakMap,Hc=new WeakMap,Lp=new WeakMap,ay=new WeakMap,sy=new WeakMap;async function ly(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,c={...t,getFields:async P=>(a.add(P),t.getFields(P)),getProcessStatuses:async P=>(s.add(P),t.getProcessStatuses(P)),getNumberPrecision:async P=>(l.add(P),t.getNumberPrecision(P))},p=new Map,u=new Map,d=new Map,f=[],E=new Set,R=i??await ao(e,c,n),m=P=>R.nodes.find(O=>O.source===P||JSON.stringify(O.source)===JSON.stringify(P)),y=new Map(o??[]),g=new Set(o?.keys()??[]),S=new Map([...o??new Map].map(([P,O])=>[P,O.rows.length])),A=new WeakMap,I=P=>pe(P)??(P.appId>0?`APP${P.appId}`:"source"),N=P=>P.cteName===Ce?1:P.cteName!==null?S.get(P.cteName)??null:null,v=P=>{let O=N(P.from),C=I(P.from),h=[];for(let _ of P.joins){let L=N(_.table),F=I(_.table);if(_.type==="CROSS"){let B=O!==null&&L!==null?Si(O,L):null;h.push({leftLabel:C,rightLabel:F,leftRows:O,rightRows:L,plan:B,rightRuntimeLabel:_.table.cteName===null?`APP${_.table.appId} fetched rows`:`${F} materialized rows`}),O=B?.outputRows??null,C=`${C} \xD7 ${F}`}else O=null,C=`${C} ${_.type} JOIN ${F}`}if(h.length>0&&Lp.set(P,h),Rt(P.where)?O=0:P.where!==null&&(O=null),(ee(P).type!=="NONE"||P.distinct||P.having!==null||Ut(P)||P.columns.some(_=>_.type==="WINDOW_COL"))&&(O=null),O!==null){let _=P.offset??0;O=Math.max(0,O-_),P.limit!==null&&(O=Math.min(O,P.limit)),A.set(P,O)}},b=async P=>{let O=[P.from,...P.joins.map(h=>h.table)];if(O.length>1&&P.columns.some(h=>h.type==="WILDCARD"||h.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let C=[];for(let h of O){if(h.cteName!==null){if(h.cteName===Ce)continue;let _=y.get(h.cteName);if(!_)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${h.cteName}.`);C.push(..._.columns);continue}let w=await Q(h.appId,c,n);h.subtableCode?(C.push(...w.filter(_=>_.inSubtable&&(_.subtableCode===h.subtableCode||_.subtableCode===void 0)).map(_=>_.code)),C.push("_pid","_rid","_idx"),C.push(...w.filter(_=>!_.inSubtable).map(_=>`_p.${_.code}`))):(C.push(...w.filter(_=>!_.inSubtable).map(_=>_.code)),C.push(...Do))}return[...new Set(C)]},M=async P=>{if(P===null||typeof P!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let O=P;if(O.type==="SELECT"){let C=P,h=await b(C);if(C.columns.length===1&&C.columns[0].type==="WILDCARD")return h;let w=[];for(let _ of C.columns)_.type==="WILDCARD"?w.push(...h):_.type==="PARENT_WILDCARD"?w.push(...h.filter(L=>L.startsWith("_p."))):w.push(...Ln([],[_]).columns);return w}if(O.type==="UNION")return M(O.left);if(O.type==="SHOW_APPS")return[...Pp];if(O.type==="DESCRIBE")return[...Op];if(O.type==="GENERATE_SERIES")return[P.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},D=async P=>{if(P===null||typeof P!="object")return;if(Array.isArray(P)){for(let C of P)await D(C);return}let O=P;if(O.type==="WITH"){let C=P;for(let h of C.ctes){if(h.recursiveSpec){let _=Mm(h);h.recursiveSpec.cycle&&_.push(h.recursiveSpec.cycle.markColumn),y.set(h.name,{rows:[],columns:_}),await D(h.query);continue}if(await D(h.query),h.query.type==="GENERATE_SERIES"){if(h.query.args.some(L=>L.type==="VARIABLE")){y.set(h.name,{rows:[],columns:[h.query.columnAlias]});continue}let _=Fm(h.query);y.set(h.name,{rows:_.rows,columns:_.columns,columnMeta:ce.get(_),uniqueGeneratedColumn:h.query.columnAlias}),g.add(h.name),S.set(h.name,_.rows.length);continue}let w=await M(h.query);if(y.set(h.name,{rows:[],columns:w}),h.query.type==="SELECT"){let _=A.get(h.query);_!==void 0&&S.set(h.name,_)}}await D(C.query);return}if(O.type==="UNION"){await D(O.left),await D(O.right);return}if(O.type==="SELECT"){let C=P;await Im(C,y,c,n),await Lc(C,c,y,n,!0),f.push(C),v(C);for(let _ of C.columns)_.type==="SCALAR_SUBQUERY_COL"&&await D(_.query);if(await D(C.where),await D(C.having),await Xi(C,c,n,y),![C.from,...C.joins.map(_=>_.table)].some(_=>_.cteName!==null&&!y.has(_.cteName))){let _=await wr(C,c,n,y);_&&d.set(C,_)}return}for(let C of Object.values(O))await D(C)};await D(e);let k=async P=>{if(P===null||typeof P!="object"||E.has(P))return;if(E.add(P),Array.isArray(P)){await Promise.all(P.map(k));return}let O=P;if((O.type==="UPSERT"||O.type==="UPSERT_SELECT")&&await Q(P.appId,c,n),O.type==="SELECT"){let C=P;await Xi(C,c,n);let h=[C.from,...C.joins.map(U=>U.table)].some(U=>U.cteName!==null);if(ee(C).type==="PLAIN"&&!h){let U=await wr(C,c,n);U&&d.set(C,U)}let w=[C.from,...C.joins.map(U=>U.table)].filter(U=>U.cteName===null).map(U=>U.appId);(Ct(C.where)||C.orderBy.length>0||C.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0))&&w.forEach(U=>a.add(U));let{resolver:L,rewrites:F}=await Mn(C,c,n,y);F.length>0&&Hc.set(C,F);let B=Te(C.where,L),V=m(C);if(B.capability==="UNSUPPORTED"&&!V)throw new Error(`ArgumentError: WHERE predicate is unsupported (${kn(B)}).`);p.set(C,B);let x=await Us(C,c,n),j=sp.get(C)??Ds(C,x);j&&ry.set(C,j);let $=j??Sn(C,x);iy.set(C,$);let G=new Map;for(let U of C.joins){let H=U.table.alias;if(U.type!=="INNER"||!H||U.table.subtableCode)continue;let ye=U.on.left.tableAlias,Ve=U.on.right.tableAlias;if(!ye||!Ve)continue;let ae=ye===H&&Ve!==H?Ve:Ve===H&&ye!==H?ye:void 0,zt=ye===H?U.on.right.field:U.on.left.field,So=ye===H?U.on.left.field:U.on.right.field;if(!ae)continue;let qt=[C.from,...C.joins.map(Ue=>Ue.table)].find(Ue=>pe(Ue)===ae),Js;if(U.table.cteName!==null)Js=Ne(y.get(U.table.cteName),So);else{let Ue=(await Q(U.table.appId,c,n)).find(ot=>ot.code===ue(U.table,So));Js=Ue?xe(Ue,U.table.appId):tt(So)}let Xs,Qs,Bp,Vp;if(qt?.cteName!==null&&qt?.cteName!==void 0){let Ue=y.get(qt.cteName);Xs=Ne(Ue,zt),g.has(qt.cteName)&&Ue&&(Bp=Ue.rows.length,Qs=Ue.rows.map(ot=>mp(ot[zt])),Vp=Qs.some(ot=>ot.length===0))}else if(qt){let Ue=(await Q(qt.appId,c,n)).find(ot=>ot.code===ue(qt,zt));Xs=Ue?xe(Ue,qt.appId):tt(zt)}let To=Ou({fieldType:Js?.fieldType,sourceSemantics:Xs?.semantics,sourceRowCount:Bp,values:Qs,hasEmptyValue:Vp,maxInKeys:hs});if(To.kind==="FALLBACK"&&To.reason==="JOIN_KEY_VALUES_RUNTIME"&&(j?.joinPlan.items.some(ot=>ot.targetAlias===H)||j?.joinPlan.serverFunctionConsumptions.some(ot=>ot.targetAlias===H)))continue;let qy=Pu(To,So,Zi),Wp=$.joinConditions.get(H),Jy=Wp?z(Wp):void 0,Xy=$.joinRelations.get(H);G.set(H,{plan:To,queries:qy,additionalQuery:Jy,additionalRelation:Xy})}if(G.size>0&&oy.set(C,G),C.orderBy.length>0||C.columns.some(U=>U.type==="WINDOW_COL"&&U.orderBy.length>0)){let U=await eo(C,c,n);if(C.orderMode!=="KINTONE_NATIVE")for(let H of U.semantics.values())H.fieldType==="STATUS"&&H.source&&s.add(H.source.appId);if(bs(C)&&!h&&V?.allowed!==!1){let H=B.capability==="EXACT_PUSHDOWN"?ze(C):"FULL_SCAN";u.set(C,(C.orderMode==="KINTONE_NATIVE"?bi:wi)({stmt:C,staticMode:H,whereCapability:B.capability,whereReasons:B.reasons,orderSemantics:U.semantics,maxRecords:r,hasKlike:Pe(C.where)}))}}}else if(O.type==="VALIDATE"){let C=P;a.add(C.appId);let h=await Q(C.appId,c,n),w=new Map(h.filter(U=>!U.inSubtable).map(U=>[U.code,U])),_=new Set(h.filter(U=>U.inSubtable).map(U=>U.code)),L=hu(C,h),F=cr(C.checkGroups??[]),B=rp(C.where);for(let U of F){if(U.field!=="$id"&&!w.has(U.field)&&!_.has(U.field))throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${U.field} \u306F APP${C.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(U.field!=="$id"&&!w.has(U.field)&&_.has(U.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${U.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let U of B){if(U!=="$id"&&!w.has(U)&&!_.has(U))throw new Error(`ArgumentError: WHERE field ${U} does not exist in APP${C.appId}.`);if(U!=="$id"&&!w.has(U)&&_.has(U))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${U} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let V=new Map([...w].map(([U,H])=>[U,H.fieldType]));V.set("$id","RECORD_NUMBER"),$n(C,V);let x=Te(C.where,U=>U.field==="$id"?te({fieldType:"__ID__"}):w.get(U.field)?.semantics??(w.has(U.field)?te(w.get(U.field)):void 0));if(x.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${kn(x)}).`);let K=new Map([...w].map(([U,H])=>[U,H.fieldType])),j=new Map([...w.values()].flatMap(U=>U.optionOrder?[[U.code,new Set(Object.keys(U.optionOrder))]]:[])),$=C.where===null?null:x.capability==="EXACT_PUSHDOWN"?C.where:Nl(C.where,{allowUnqualifiedFields:!0,fieldTypes:K,fieldOptions:j,allowKlike:!1}),G=L.some(U=>U.field.fieldType==="NUMBER");G&&(l.add(C.appId),await _t(C.appId,c,n)),ay.set(C,{targetFields:L.map(U=>U.subtableCode?`${U.subtableCode}(${U.field.code})`:U.field.code),fetchFields:[...new Set(["$id",...L.map(U=>U.subtableCode??U.field.code),...B,...F.map(U=>U.field)])],subtables:new Map([...new Set(L.flatMap(U=>U.subtableCode?[U.subtableCode]:[]))].map(U=>[U,L.filter(H=>H.subtableCode===U).length])),capability:x,prefilter:$,numberPrecision:G})}else if(O.type==="UPDATE"||O.type==="DELETE"){if(a.add(P.appId),O.type==="UPDATE"&&P.applyBlocks?.length){let h=P,w=await Q(h.appId,c,n);if(Gt(h,w),Ls(h)){let _=w.filter(F=>!F.inSubtable),L=Uu(h.where,{fieldTypes:new Map(_.map(F=>[F.code,F.fieldType])),fieldOptions:new Map(_.flatMap(F=>F.optionOrder?[[F.code,new Set(Object.keys(F.optionOrder))]]:[]))});sy.set(h,L)}}let C=P;(C.type!=="UPDATE"||!Ls(C))&&m(C)?.allowed!==!1&&await Ir(C,c,n)}await Promise.all(Object.values(O).map(k))};if(await k(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&tn(e)){let P=nn(e),{resolver:O,rewrites:C}=await Mn(P,c,n);C.length>0&&Hc.set(P,C);let h=Te(P.where,O),w=m(P);if(h.capability==="UNSUPPORTED"&&!w)throw new Error(`ArgumentError: WHERE predicate is unsupported (${kn(h)}).`);if(p.set(P,h),bs(P)&&w?.allowed!==!1){let _=await eo(P,c,n);u.set(P,(P.orderMode==="KINTONE_NATIVE"?bi:wi)({stmt:P,staticMode:h.capability==="EXACT_PUSHDOWN"?ze(P):"FULL_SCAN",whereCapability:h.capability,whereReasons:h.reasons,orderSemantics:_.semantics,maxRecords:r,hasKlike:Pe(P.where)}))}}for(let P of f)await Lc(P,c,y,n,!0);return{capabilities:p,orderPlans:u,plainGroupByPlans:d,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function Yc(e){return[...[...e.fieldApps].sort((t,n)=>t-n).map(t=>` metadata API: form definition APP${t}`),...[...e.processStatusApps].sort((t,n)=>t-n).map(t=>` metadata API: process status APP${t}`),...[...e.numberPrecisionApps].sort((t,n)=>t-n).map(t=>` metadata API: number precision APP${t}`)]}function Eb(e){switch(e){case"NOT_LIKE":return"NOT LIKE";case"NOT_KLIKE":return"NOT KLIKE";case"NOT_IN":return"NOT IN";case"LIKE":case"KLIKE":case"IN":case"=":case"!=":case"<>":case">":case"<":case">=":case"<=":return e;default:return"<op>"}}function zR(e){return e==="<>"?"!=":e}function ft(e){if(e===null||typeof e!="object")return"<expr>";let t=e;switch(t.type){case"FIELD":return typeof t.field=="string"?`${typeof t.tableAlias=="string"?`${t.tableAlias}.`:""}${t.field}`:"<expr>";case"FIELD_REF":return typeof t.field=="string"?t.field:"<expr>";case"NUMBER":return typeof t.raw=="string"?t.raw:typeof t.value=="number"?String(t.value):"<expr>";case"STRING":return typeof t.value=="string"?`'${t.value.replace(/'/g,"''")}'`:"<expr>";case"VARIABLE":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"VARIABLE_IN_LIST":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"STRING_FUNC":return typeof t.func!="string"||!Array.isArray(t.args)?"<expr>":`${t.func}(${t.args.map(ft).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return ft(t.expr);case"GROUPING_FIELD":return`GROUPING(${ft(t.ref)})`;case"GROUPING_REF":return ft(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${ft(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${ft(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?t.name==="LOGINUSER"?"LOGINUSER()":`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(ft).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(ft).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Dn(e){try{let t=e;switch(t.type){case"BINARY":return`${ft(t.left)} ${Eb(t.op)} ${ft(t.right)}`;case"NULL_CHECK":return`${ft(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Dn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Dn(t.right)})`;case"NOT":return`NOT (${Dn(t.expr)})`;case"GROUP":return`(${Dn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function jc(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=ne(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?Rb(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let c=Sc(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Ac(c)}: ${c}`,` ${Tc(c)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${p}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Dn(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(ne)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!ne(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=Sc(s),c=s.left.type==="FIELD"?s.left.field:void 0,p=zR(s.op),u=n.capability?.reasons.find(d=>d.functionName===l&&(c===void 0||d.field===c)&&d.operator===p);t.push(` ${Ac(l)}: ${l}`,` ${Tc(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??p}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${qR(i.prefilterPlan.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}let o=n.prefilterPlan;if(n.allowed&&o?.prefilterWhere&&o.residualWhere){for(let s of o.exactRelativeLeaves){let l=Sc(s),c=s.left.type==="FIELD"?s.left.field:void 0,p=zR(s.op),u=n.capability?.reasons.find(d=>d.functionName===l&&(c===void 0||d.field===c)&&d.operator===p);t.push(` ${Ac(l)}: ${l}`,` ${Tc(l)}: kintone server exact prefilter`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??p}`)}let a=z(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Dn(o.residualWhere)}`,` ${qR(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!ne(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function Rb(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,c=l?.type==="KINTONE_FUNC"&&l.name===t,p=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((c||p)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function Ac(e){return ne(e)?"relative date function":"kintone function"}function Sc(e){return e.right.type==="KINTONE_FUNC"?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"?e.right.values[0].name:"(unknown)"}function Tc(e){return ne(e)?"relative date evaluation":"kintone function evaluation"}function qR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ne(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var uy=new WeakMap;function zc(e,t){if(Array.isArray(e))return e.map(r=>zc(r,t));if(e===null||typeof e!="object")return e;let n=e;if(n.type==="GENERATE_SERIES"){let r=new Map,i=new Set,o=n.args.map((s,l)=>{if(s.type!=="STRING"||s.fromVariable!==!0||!s.value.startsWith("@"))return s;let c=s.value.slice(1);r.set(l,c);let p=t.get(c);return p===void 0?{type:"VARIABLE",name:c}:(i.add(l),{type:"STRING",value:p,fromVariable:!0})}),a={...n,args:o};return uy.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,zc(i,t)]))}function Gi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...Pp]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...Op]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let c=Gi(l.query,s);s.set(l.name,c)}return Gi(e.query,s)}if(e.type==="UNION"){let s=Gi(e.left,t),l=Gi(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Ce);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...Ln([],[s]).columns);return{status:"STATIC",columns:a}}function mb(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function yb(e,t,n,r){let i=new Map,o=async a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){for(let l of a)await o(l);return}let s=a;if(s.type==="SELECT"){let l=a,c=[l.from,...l.joins.map(p=>p.table)];if(c.some(p=>p.cteName!==null)&&c.every(p=>p.cteName===Ce||p.cteName!==null&&r.has(p.cteName))){let p=await wr(l,t,n,r);p&&i.set(l,p)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var cy=Symbol("ksql.explainFetchPlan");function _p(e){return e[cy]}function py(e,t){e[cy]=t}async function dy(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=ve,c=!0,p,u,d,f,E,R={surface:"DOCUMENT_ONLY"}){let m=Fl(f??new Date,E),y=Nt({recursiveCteMaxDepth:p,recursiveCteMaxRows:u,recursiveCteMaxExpansions:d}),g=Xc(r);try{let{statements:S,meta:A}=qu(e,{import:a}),I=$l(S),N=bu(S,n),v=cm(S,N),b=new Map;for(let[C,h]of Object.entries(m.values))b.set(Zr(C),{type:"string",value:h});let M=new Map,D=new Map,k=[],P=[];for(let C=0;C<S.length;C++){let h=S[C],w=h.type==="SET_VARIABLE"?h.expr.type==="SCALAR_SUBQUERY"?{...h,expr:ws(h.expr,b)}:h:ws(h,b),_=zc(w,M);st(_);let L=await ao(_,t,g),F=mb(D),B=c?await ly(_,t,g,i,L,F):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:L};if(!c){let U=await yb(_,t,g,F);for(let[H,ye]of U)B.plainGroupByPlans.set(H,ye)}let V;if(_.type==="CREATE_TEMP_TABLE"){let U=new Map([...D].map(([ye,Ve])=>[ye,Ve.status==="STATIC"?{status:"STATIC",columns:Ve.columns}:{status:"DEFERRED"}])),H=Gi(_.query,U);V=H.status==="STATIC"?{status:"STATIC",columns:H.columns,relation:{rows:[],columns:[...H.columns]},producerStatement:C+1}:{status:"DEFERRED",producerStatement:C+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},D.set(_.name,V)}let x={sources:[]},K=L.hasServerOnlyWhereFunction&&!L.allowed?jc(L):[...jc(L),...Ey(Ab(_,I.statements[C],B.capabilities,B.orderPlans,B.plainGroupByPlans,s,l,x,D,V,{maxRecords:i,recursiveLimits:y}),o)],j=Yc(B),$=A.dialect===1?gb(_,I.statements[C],i,s):[],G=await Km(_,g,R);k.push({index:C,type:I.statements[C].statementType,plan:K.length===0?[...j,...G,...$]:[K[0],...j,...K.slice(1),...G,...$]}),P.push({index:C,fetch:vp(x.sources),sources:x.sources}),_.type==="DROP_TEMP_TABLE"&&D.delete(_.name),(h.type==="SET_VARIABLE"||h.type==="DECLARE_VARIABLE")&&(b.set(h.name,h.type==="DECLARE_VARIABLE"&&h.annotation==="RELATIVE_DATE"?{type:"relative-date",value:v.get(h.name)}:h.type==="SET_VARIABLE"&&h.expr.type==="ARRAY"?{type:"array",elements:h.expr.elements.map(U=>({type:"string",value:U.value}))}:{type:"string",value:`@${h.name}`,placeholder:!0}),h.type==="DECLARE_VARIABLE"&&h.annotation===void 0&&(h.default.type==="STRING"||h.default.type==="NUMBER")&&M.set(h.name,h.default.type==="STRING"?h.default.value:q(h.default)))}let O={statementCount:S.length,statements:k};return py(O,{statements:P}),O}finally{yp(g)}}function gb(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=hb(e);(e.type==="UPDATE"||e.type==="DELETE")&&!o.includes(`APP${e.appId}`)&&o.unshift(`APP${e.appId}`);let a=Math.ceil(n/500);for(let c of o)i.push(` read ${c}: \u4E0D\u660E\uFF08\u4E0A\u9650 maxRecords=${n} \u3068\u4EEE\u5B9A: \u6700\u5927 ${a} \u56DE\u3001500 \u4EF6/\u56DE\uFF09`);let s=[...new Set([...t.appIds,...t.targetAppId===null?[]:[t.targetAppId]])];i.push(` metadata: GET form fields \xD7 ${s.length} \u30A2\u30D7\u30EA\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\u6E08\u307F\u306F\u8FFD\u52A0 0 \u56DE\uFF09`),(e.type==="UPSERT"||e.type==="UPSERT_SELECT")&&(e.type==="UPSERT"?i.push(` UPSERT pre-read: ${Math.ceil(e.values.length/Sr)} \u56DE\uFF08${e.values.length} \u884C\u3001${Sr} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/Sr)} \u56DE\u3001${Sr} \u30AD\u30FC/\u56DE\uFF09`));let l=e.type==="INSERT"||e.type==="UPSERT"?e.values.length:null;return(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPSERT"||e.type==="UPSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE")&&(i.push(l===null?` write: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/100)} \u56DE\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`:` write: ${Math.ceil(l/100)} \u56DE\uFF08${l} \u884C\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`),i.push(" reference: bulkRequest \u306F\u672A\u5B9F\u88C5\u3002\u66F8\u8FBC\u30B5\u30D6\u30EA\u30AF\u30A8\u30B9\u30C8\u6570\u306F HTTP \u66F8\u8FBC\u56DE\u6570\u3068\u540C\u3058")),i}function hb(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(typeof i.appId=="number"&&Object.prototype.hasOwnProperty.call(i,"alias")&&Object.prototype.hasOwnProperty.call(i,"cteName")&&i.cteName===null&&i.appId>0){let o=`APP${i.appId}`,a=typeof i.subtableCode=="string"?`$${i.subtableCode}`:"",s=typeof i.alias=="string"&&i.alias!==o?` AS ${i.alias}`:"";t.push(`${o}${a}${s}`)}Object.values(i).forEach(n)};return n(e),t}function Ab(e,t,n,r,i,o=100,a=ve,s={sources:[]},l=new Map,c,p=fy()){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",...c?.status==="STATIC"?[` schema: ${c.columns.join(", ")}`,` schema source: SELECT output of statement ${c.producerStatement}`]:c?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${c.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${nt} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Ar(e.query,t,n,r,i,s,"main",l,p).map(u=>` ${u}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let u=ji(e.expr.query)?t:{...t,tempTablesReferenced:[]};return[`SET @${e.name} = (SELECT ...)`," value: \u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF081\u884C1\u5217\u30FB\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"," subquery:",...Ar(e.expr.query,u,n,r,i,s,"main",l,p).map(d=>` ${d}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Ar(e.query,t,n,r,i,s,"main",l,p);if(e.type==="ASSERT"){let u=[`ASSERT${e.warn===!0?" WARN":""} ${e.text}${e.message!==void 0?`, '${e.message.replace(/'/g,"''")}'`:""}`,e.warn===!0?" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F\u8B66\u544A\u3068\u3057\u3066\u8A18\u9332\u3057\u3001\u5F8C\u7D9A\u6587\u3092\u7D9A\u884C\uFF09":" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],d=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return d.forEach((f,E)=>{u.push(d.length>1?` subquery[${E+1}]:`:" subquery:");let R=ji(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Ar(f.query,R,n,r,i,s,"main",l,p).map(m=>` ${m}`))}),u}if(e.type==="EXIT"){let u=[`EXIT SUCCESS IF ${e.text}, '${e.message.replace(/'/g,"''")}'`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u6210\u7ACB\u6642\u306F\u6B63\u5E38\u7D42\u4E86\u3057\u3001\u4EE5\u964D\u306E\u6587\u306F skippedReason: exit\uFF09"],d=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return d.forEach((f,E)=>{u.push(d.length>1?` subquery[${E+1}]:`:" subquery:");let R=ji(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Ar(f.query,R,n,r,i,s,"main",l,p).map(m=>` ${m}`))}),u}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?$s(e,void 0,n,r,o,a,1e4,i):Ar(e,t,n,r,i,s,"main",l,p)}function ji(e){if(Array.isArray(e))return e.some(ji);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(ji)}return!1}function Ar(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=fy()){if(t.tempTablesReferenced.length===0)return $s(e,void 0,n,r,100,ve,l.maxRecords,i,!0,o,a,l.recursiveLimits);let c=[];e.type==="INSERT_SELECT"?c.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&c.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),c.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),c.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let p=t.tempTablesReferenced.map(f=>[f,s.get(f)]);for(let[f,E]of p)E?.status==="STATIC"?c.push(` source: temp table ${f} (schema from statement ${E.producerStatement})`):(c.push(` source: temp table ${f}`),c.push(" schema: deferred (could not be derived statically)"));c.push(" rows: runtime (not materialized by EXPLAIN)");let u=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;u&&c.push(...Ry(u,i?.get(u),p.some(([,f])=>f?.status!=="STATIC"))),c.push(p.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),c.push(" records API: none");let d=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return d.length>0&&c.push(` app: ${d.map(f=>`APP${f}`).join(", ")}`),c.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),c}var qc=new WeakMap;function fy(){return{maxRecords:1e4,recursiveLimits:Nt({})}}async function Sb(e,t,n,r,i,o=100,a=ve,s,l,c,p,u=!0,d={surface:"DOCUMENT_ONLY"}){let f=Nt({recursiveCteMaxDepth:l,recursiveCteMaxRows:c,recursiveCteMaxExpansions:p}),E=s??await ao(e.query,t,n),R=u?await ly(e.query,t,n,r,E,qc.get(e)):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:E},m={sources:[]},y=jc(E),g=E.hasServerOnlyWhereFunction&&!E.allowed?[...Yc(R),...y]:[...Yc(R),...y,...Ey($s(e.query,void 0,R.capabilities,R.orderPlans,o,a,r,R.plainGroupByPlans,!0,m,"main",f),i)],S=await Km(e,n,d),A=Ts([...g,...S],m.sources),I={type:"SELECT",columns:["plan"],rows:A.map(N=>({plan:N})),rowCount:A.length};return py(I,{statements:[{index:0,fetch:vp(m.sources),sources:m.sources}]}),I}function Ey(e,t){let n=[];for(let r of e)if(n.push(r),r.trim()==="cursor page size: 500"){let i=r.match(/^\s*/)?.[0]??"";n.push(`${i}cursor concurrency: ${t} per domain (process-local)`)}return n}function $s(e,t,n,r,i=100,o=ve,a=1e4,s,l=!0,c,p="main",u=Nt({})){let d=c??{sources:[]};if(e.type==="UNION"){let E=Nb(e,n,r,s,d);return l?Ts(E,d.sources):E}if(e.type==="WITH"){let E=Pb(e,n,r,s,d,a,u);return l?Ts(E,d.sources):E}if(e.type==="INSERT")return _b(e,t,i,o);if(e.type==="INSERT_SELECT")return vb(e,t,n,r,s);if(e.type==="UPSERT")return kb(e,t,i,o);if(e.type==="UPSERT_SELECT")return xb(e,t,n,r,s);if(e.type==="UPDATE")return Db(e,t,n,r,i,o,a);if(e.type==="DELETE")return Mb(e,t);if(e.type==="REORDER")return Fb(e,t);if(e.type==="VALIDATE")return wb(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let m=e.targets?.filter(y=>y.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...m.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let E=e.keyFields?"UPSERT":"INSERT",R=e.targets?.some(m=>m.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${E} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...R?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&R?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...R?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=Et(e,t,n,r,s,!0,!0,d,p);return l?Ts(f,d.sources):f}var JR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function vp(e){return e.reduce((t,n)=>JR[t]>=JR[n.fetch]?t:n.fetch,"none")}function Ts(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${vp(t).toUpperCase()}`,...n]}function Tb(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function fs(e,t,n,r,i,o,a=!1){let s={app:t,alias:n,role:r,fetch:i.toLowerCase(),pending:a,kintoneQuery:o==="(\u5168\u4EF6\u53D6\u5F97)"||o==="(\u306A\u3057)"||o===""?null:o,limit:Tb(o)};return e.sources.push(s),s}function Ib(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Es(e){return` fetch: ${Ib(e)}`}function wb(e,t){let n=ay.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":z(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?np:tp).join(", ")}`),r.push(e.summary?" aggregation: record/subtable/field/code; row locator=none":" row locator: grouped by message; $err_subrow / $err_subrow_id list all matching rows (first-occurrence order)"),r.push(` number precision: ${n.numberPrecision?"required":"not required"}`),r.push(" local checks: original WHERE re-evaluation + built-in constraints + CHECK groups"),r.push(" records/mutation API during EXPLAIN: none; violation count unavailable"),r):(r.push(" metadata: form definition required; number precision required for NUMBER targets"),r)}function bb(e){let t=e.field.tableAlias?`${e.field.tableAlias}.${e.field.field}`:e.field.field,n=e.value.replace(/'/g,"''"),r=e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),i=e.normalizedOperator==="IN"?"in":"not in";return` pushdown normalized: ${t} ${e.originalOperator} '${n}' -> ${t} ${i} ("${r}")`}function Ry(e,t,n){let r=ee(e);if(r.type!=="PLAIN")return[];let i=[];if(t)t.items.forEach((o,a)=>{let s=r.allItems[a];s?.type==="FIELD_NAME"&&(o.kind==="PHYSICAL"?i.push(` group key ${s.name}: PHYSICAL (source=${o.sourceIndex}, field=${o.fieldCode})`):o.kind==="ALIAS_SAFE"?i.push(` group key ${s.name}: ALIAS_SAFE (column=${o.columnIndex})`):o.kind==="EXPRESSION"&&i.push(` group key ${s.name}: EXPRESSION`))});else if(n)for(let o of r.allItems)o.type==="FIELD_NAME"&&i.push(` group key ${o.name}: DEFERRED (temp table schema unavailable)`);return i}function Et(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let c=n?.get(e)??(n?[...n].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),p=r?.get(e)??(r?[...r].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),d=o&&c!==void 0&&_m(e,c),f=d?"COUNT_TOTAL_COUNT":p?.kind==="CANONICAL_LOCAL"||c&&c.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":ze(e),E=Ob(e);c&&c.capability!=="EXACT_PUSHDOWN"&&E.push(...c.reasons.map(A=>A.code));let R=[],m=AE(e,Ji.get(e)?.allItems.length);t&&R.push(t),R.push(` mode: ${f}`);for(let A of Lp.get(e)??[]){if(R.push(` cross join: ${A.leftLabel} \xD7 ${A.rightLabel}`),R.push(` left rows: ${A.leftRows??"runtime (left intermediate rows)"}`),R.push(` right rows: ${A.rightRows??`runtime (${A.rightRuntimeLabel})`}`),A.plan)R.push(` rows: ${A.plan.outputRows}`),R.push(` row guard: ${A.plan.outputRows} / ${A.plan.limit}`),R.push(" guard timing: before row materialization");else{let I=A.leftRows===null?"left rows":String(A.leftRows),N=A.rightRows===null?"right rows":String(A.rightRows);R.push(` rows: runtime (${I} \xD7 ${N})`),R.push(` row guard: runtime checked / ${Lu}`),R.push(" guard timing: after complete source fetch, before row materialization")}R.push(" records API: none")}for(let A of Hc.get(e)??Rm.get(e)??[])R.push(bb(A));m&&(R.push(` grouping source: ${m.source}`),R.push(` grouping sets: ${m.expandedSetCount} (limit: ${m.setLimit})`),R.push(` grouping items: ${m.groupingItemCount} (limit: ${m.itemLimit})`),R.push(` grouping output rows: runtime checked (limit: ${m.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),R.push(...Ry(e,u,[e.from,...e.joins.map(A=>A.table)].some(A=>A.cteName!==null)));for(let A of e.columns){if(A.type!=="WINDOW_COL"||A.windowKind===void 0||A.windowKind==="RANKING")continue;let I=[];A.partitionBy.length>0&&I.push(`PARTITION BY ${A.partitionBy.map(N=>N.tableAlias?`${N.tableAlias}.${N.field}`:N.field).join(", ")}`),A.orderBy.length>0&&I.push(`ORDER BY ${A.orderBy.map(my).join(", ")}`),A.windowKind==="VALUE"?R.push(` window ${A.alias}: ${A.valueFunc}(offset=${A.offset}) OVER (${I.join(" ")})`):A.windowKind==="AGGREGATE"&&(R.push(` window ${A.alias}: ${A.aggFunc} OVER (${I.join(" ")})`),R.push(A.frame===null?" frame: PARTITION ENTIRE":` frame: ${A.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${A.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(d){let A=e.where===null?"":z(e.where);if(R.push(` app: APP${e.from.appId} (${e.from.appId})`),R.push(` kintone query: ${A}${A?" ":""}limit 1`),a){let I=fs(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${A}${A?" ":""}limit 1`);R.push(Es(I))}return R.push(" fields: $id"),R.push(" fetch API: GET records.json (totalCount=true)"),R.push(" REST execution: single GET"),R.push(" record limit: maxRecords/onLimitReached not applied"),R.push(" fallback: full record scan when totalCount is missing or invalid"),R.push(" search abort: fail-closed (SearchAbortedError)"),R}p?(R.push(` order plan: ${p.kind}`),p.reasonCodes.length>0&&R.push(` order reason: ${p.reasonCodes.join(", ")}`),p.kind==="KORDER_NATIVE"?(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" REST execution: single GET")):p.kind==="KORDER_CURSOR"&&(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" fetch API: POST/GET/DELETE records/cursor.json"),R.push(" cursor page size: 500"),R.push(` scan rows: ${p.scanRows}`))):m&&R.push(" order plan: CANONICAL_LOCAL");let y=p&&!p.requiresCompleteInput?{...e,orderBy:[]}:e,g=Jt(y);p?.requiresCompleteInput&&g.add("LOCAL_ORDER");let S=Rt(e.where);if(g.size>0&&(!S||m!==null)&&(R.push(" complete input: required (onLimit=truncate disabled)"),R.push(` complete input reason: ${[...g].join(", ")}`),R.push(" onLimit=truncate: disabled")),S)return R.push(" predicate: constant false"),R.push(" records API access: none"),R.push(` app: APP${e.from.appId} (${e.from.appId})`),R;if(f==="FULL_SCAN"&&E.length>0&&R.push(` reason: ${E.join(", ")}`),f==="SIMPLE"){let A=Bo(p?.kind==="CANONICAL_REST_TOP_N"?Cm(e):e);R.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=p?.kind==="KORDER_CURSOR"?Mu(e):A.query;if(R.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let N=I?"EXACT":"ALL";R.push(Es(fs(s,e.from.appId,e.from.alias,l,N,I)))}R.push(` fields: ${A.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":A.fields.join(", ")}`)}else{let A=ry.get(e),I=iy.get(e),N=I??Sn(e);if(e.joins.length>0)if(A){if(R.push(" join pushdown plan: applied (runtime metadata resolved)"),R.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),R.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),A.joinPlan.serverFunctionCandidate&&R.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${A.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),R.push(` client residual: ${A.joinPlan.residualWhere===null?"(none)":Dn(A.joinPlan.residualWhere)}`),R.push(` KLIKE applied nodes: ${A.joinPlan.appliedKlikes.size}`),R.push(` KLIKE unapplied nodes: ${A.joinPlan.allKlikes.length-A.joinPlan.appliedKlikes.size}`),A.joinPlan.residualWhere!==null)for(let w of A.joinPlan.rejections)R.push(` join pushdown not applied: ${w.reason}`)}else{let w=e.joins.some(_=>_.type!=="INNER"&&_.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(_=>_.table)].some(_=>_.cteName!==null||!!_.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";R.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),R.push(` join pushdown not applied: ${w}`)}let v=An(e,e.from,u),b=e.from.alias?` AS ${e.from.alias}`:"",M=N.mainCondition,D=wm(e),k=e.joins.length===0&&c?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Mt(e.where)?z(e.where):"",P=e.from.alias?A?.queriesByAlias.get(e.from.alias):void 0,O=P||(M!==null?z(M):k||"(\u5168\u4EF6\u53D6\u5F97)");R.push(` app: APP${e.from.appId}${b} (${e.from.appId})`),R.push(` kintone query: ${O}`);let C=A?.joinPlan.items.find(w=>w.targetAlias===e.from.alias),h=A?.joinPlan.serverFunctionConsumptions.find(w=>w.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let w=!I&&D!==null,_=O==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":w?"PREFILTERED":C?.relation==="exact"||h||k!==""?"EXACT":"PREFILTERED";R.push(Es(fs(s,e.from.appId,e.from.alias,l,_,O,w)))}C||h?(R.push(` pushdown applied: ${P}`),R.push(` relation: ${C?.relation??"exact"}`)):I&&M!==null?(R.push(` pushdown applied: ${O}`),R.push(` relation: ${N.mainRelation??"exact"}`)):D!==null&&(!I||Bi(D))&&R.push(` pushdown candidate: ${z(D)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),R.push(` fields: ${v.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":v.join(", ")}`);for(let w of e.joins){let _=An(e,w.table,u),L=w.table.alias?` AS ${w.table.alias}`:"",F=w.type==="INNER"?"JOIN":`${w.type} JOIN`,B=w.table.alias?N.joinConditions.get(w.table.alias)??null:null,V=w.table.alias&&!w.table.subtableCode&&w.table.cteName===null&&e.where?zr(e.where,{tableAlias:w.table.alias}):null,x=w.table.alias?A?.queriesByAlias.get(w.table.alias):void 0,K=w.table.alias?oy.get(e)?.get(w.table.alias):void 0,j=!I&&w.type==="INNER"&&w.table.cteName===null&&!w.table.subtableCode&&[e.from,...e.joins.map(ae=>ae.table)].some(ae=>ae.cteName!==null),$=x||(B!==null?z(B):K?.additionalQuery?K.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),G=j||K?.plan.kind==="RANGE_CANDIDATE"||K?.plan.kind==="FALLBACK"&&K.plan.reason==="JOIN_KEY_VALUES_RUNTIME",U=K&&K.queries.length>0?K.queries.map(ae=>$!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${ae}) and (${$})`:ae):[G?"(runtime source keys)":$],H=U.join(" | ");R.push(` ${F}: APP${w.table.appId}${L} (${w.table.appId})`);for(let ae of U)R.push(` kintone query: ${ae}`);let ye=A?.joinPlan.items.find(ae=>ae.targetAlias===w.table.alias),Ve=A?.joinPlan.serverFunctionConsumptions.find(ae=>ae.targetAlias===w.table.alias);if(a&&w.table.cteName===null){let ae=G||!K&&!I&&V!==null,zt=H==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":ae?"PREFILTERED":K?.plan.kind==="IN"&&ye?.relation!=="superset"&&K.additionalRelation!=="superset"||ye?.relation==="exact"||Ve?"EXACT":"PREFILTERED";R.push(Es(fs(s,w.table.appId,w.table.alias,"join",zt,H,ae)))}if(K)if(K.plan.kind==="RANGE"){R.push(" join key prefilter: range");for(let ae of U)R.push(` pushdown applied: ${ae}`);R.push(" relation: superset")}else if(K.plan.kind==="IN"){let ae=ye?.relation==="superset"||K.additionalRelation==="superset"?"superset":"exact";R.push(" join key prefilter: in");for(let zt of U)R.push(` pushdown applied: ${zt}`);R.push(` relation: ${ae}`)}else K.plan.kind==="RANGE_CANDIDATE"?(R.push(" join key prefilter: range candidate"),R.push(" relation: superset"),R.push(` join key prefilter reason: ${K.plan.reason}`)):K.plan.kind==="FALLBACK"&&(R.push(K.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),R.push(` join key prefilter reason: ${K.plan.reason}`));else j?(R.push(" join key prefilter: runtime candidate"),R.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),V!==null&&R.push(` pushdown candidate: ${z(V)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):ye||Ve?(R.push(` pushdown applied: ${x}`),R.push(` relation: ${ye?.relation??"exact"}`)):I&&B!==null?(R.push(` pushdown applied: ${$}`),R.push(` relation: ${N.joinRelations.get(w.table.alias)??"exact"}`)):V!==null&&(!I||Bi(V))&&R.push(` pushdown candidate: ${z(V)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);R.push(` fields: ${_.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":_.join(", ")}`)}}return R.push(...Lb(e,n,r,i,s)),R}function Nb(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,c)=>{c>0&&s.push(""),s.push(...Et(l,`[union:${c+1}]`,t,n,r,!0,!0,i,"union"))}),s}function Cb(e){let t=new Map,n=a=>pe(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Ce?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),c=[];for(let p of a.joins){let u=r(p.table),d=n(p.table);if(p.type==="CROSS"){let f=s!==null&&u!==null?Si(s,u):null;c.push({leftLabel:l,rightLabel:d,leftRows:s,rightRows:u,plan:f,rightRuntimeLabel:p.table.cteName===null?`APP${p.table.appId} fetched rows`:`${d} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${d}`}else s=null,l=`${l} ${p.type} JOIN ${d}`}return c.length>0&&Lp.set(a,c),Rt(a.where)?s=0:a.where!==null&&(s=null),ee(a).type!=="NONE"||a.distinct||a.having!==null||Ut(a)||a.columns.some(p=>p.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,ua(a.query).rowCount);else if(a.query.type==="SELECT"){let s=i(a.query);s!==null&&t.set(a.name,s)}else a.query.type==="UNION"&&o(a.query);o(e.query)}function Pb(e,t,n,r,i={sources:[]},o=1e4,a=Nt({})){Cb(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let c=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",c?` cycle: path-scoped on ${c.column}, mark ${c.markColumn} ('${c.markValue}'/'${c.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let p of xm(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let u=`APP${p.appId}${p.subtableCode?`$${p.subtableCode}`:""}`;s.push(` source ${u}: R unknown, pageSize=500, estimated calls=ceil(R/500), maxRecords=${o}`)}s.push(" iteration rows: unknown until execution"," records API: none","")}else if(l.query.type==="SELECT")s.push(...Et(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let c=l.query,p=uy.get(c);if(c.args.some(E=>E.type==="VARIABLE")){let E=R=>{let m=c.args[R];return m?m.type==="VARIABLE"?`@${m.name} (runtime)`:R<2?"literal":m.type==="NUMBER"?q(m):m.value:R===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`," series type: deferred (variable)",` start: ${E(0)}`,` stop: ${E(1)}`,` step: ${E(2)}`," rows: runtime",` row guard: runtime / ${kt}`," records API: none","");continue}let d=ua(c),f=d.kind==="DATE"?`${d.step} ${String(d.dateUnit??"DAY").toLowerCase()}${Math.abs(d.step)===1?"":"s"}`:String(d.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`,` series type: ${d.kind}${p?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${p?.variableNames.has(0)?`@${p.variableNames.get(0)} (DECLARE default; value hidden)`:d.start}`,` stop: ${p?.variableNames.has(1)?`@${p.variableNames.get(1)} (DECLARE default; value hidden)`:d.stop}`,` step: ${f}`,` rows: ${d.rowCount}${p?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${d.rowCount} / ${kt}`,...p?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...$s(e.query,"[main]",t,n,100,ve,o,r,!1,i,"main",a)),tn(e)){s.push("");let l=nn(e);s.push(...Et(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function Ob(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.some(r=>r.type==="CROSS")&&t.push("CROSS JOIN \u3042\u308A"),e.joins.some(r=>r.type!=="CROSS")&&t.push("JOIN \u3042\u308A");let n=ee(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),Qa(e.columns)&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),Mt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Qt(e.where)&&t.push("LIKE \u306F\u5E38\u306B JS \u8A55\u4FA1\u306E\u305F\u3081\u5168\u4EF6\u53D6\u5F97"),e.orderBy.some(r=>r.key.type!=="FIELD_NAME")&&t.push("ORDER BY \u306B\u5F0F"),t}function Lb(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...Et(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...Et(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...Et(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...Et(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function _b(e,t,n=jt,r=ve){let i=e.values.length,o=Math.ceil(i/100),a=[];return t&&a.push(t),a.push(" [INSERT]"),a.push(` target: APP${e.appId} (${e.appId})`),a.push(` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`),a.push(` api: POST /k/v1/records.json \xD7 ${o}`),a.push(` fields: ${e.fields.join(", ")}`),e.applyBlocks?.length?[...a,...Dp(ka(e,n,r))]:a}function vb(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...Et(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Db(e,t,n,r,i=100,o=ve,a=1e4){if(e.applyBlocks?.length)return Ub(e,t,i,o,a);let s=Ff(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),c=Ia(e),p=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?oo(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${oo(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let d=[];if(s&&d.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&d.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),p&&d.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!c&&!p&&d.push("\u5358\u7D14 SET"),u.push(` set type: ${d.join(", ")}`),c){let f=Kb(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${$b(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...Et(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function Ub(e,t,n,r,i){let o=ka(e,n,r),a=o.branches[0],c=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),p=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],u=p.includes("REMOVE"),d=sy.get(e),f=d?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${d.prefilter===null?"(none; empty query)":z(d.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${d.appliedKlikes.size}`,`unapplied KLIKE: ${d.unappliedKlikes.length}${d.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${oo(e.where)}`,`parent cardinality: ${Dt(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${p.join(" | ")}`,`selector: ${c.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${u?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Dp(o)]}function Mb(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${oo(e.where)}`),e.subtableCode||(n.push(" selection: exact native pushdown; JS residual none"),n.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),n.push(Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function kb(e,t,n=jt,r=ve){let i=e.values.length,o=Math.ceil(i/100),a=[...t?[t]:[]," [UPSERT]",` target: APP${e.appId} (${e.appId})`,` records: ${i} \u4EF6\uFF08\u30D0\u30C3\u30C1 ${o} \u56DE \xD7 \u6700\u5927 100 \u4EF6\uFF09`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`,` api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json \xD7 ${o}`];return e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length?[...a,...Dp(ka(e,n,r))]:a}function Dp(e){let t=[`apply diagnostic: ${e.statementKind}`,`non-transactional: ${e.nonTransactional}`,`partial success: ${e.partialSuccess.possible?"possible":"none"}`];for(let n of e.branches){t.push(`apply branch: ${n.branch}`,` parent rows: ${n.parentRows===null?"unknown (records API not called)":n.parentRows}`,` chunks: ${n.chunk.plannedChunks===null?"unknown":n.chunk.plannedChunks} \xD7 max ${n.chunk.size}`,` revision guard: ${n.guards.revisionRequired?"required":"not required"}`);for(let r of n.targets)t.push(` target: ${r.field} (${r.targetKind})`,` operations: ${r.operations.map(i=>`${i.kind}=${i.count===null?"unknown":i.count}`).join(" | ")}`,` changed count: ${r.changedCount===null?"unknown":r.changedCount}`)}return t.push("records API: 0","mutation API: 0"),t}function xb(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...Et(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Fb(e,t){let n=`APP${e.appId}$${e.subtableCode}`,r=e.all?"\u5168\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61":"WHERE \u6761\u4EF6\u306B\u4E00\u81F4\u3059\u308B\u89AA\u30EC\u30B3\u30FC\u30C9\u5BFE\u8C61",i=e.by.map(my).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Rt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json\uFF08\u884C ID \u53D6\u5F97\uFF09\u2192 PUT /k/v1/records.json\uFF08id \u914D\u5217\u306E\u307F\u9001\u4FE1\uFF09"];return!e.all&&e.where&&o.splice(5,0,` where: ${oo(e.where)}`),o}function my(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function oo(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return z(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function Kb(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&_s(n,t),n.type==="STRING_FUNC"&&_s(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&zi(n,t);return[...t]}function _s(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached CHECK field collection.`);if(e.type==="FIELD_REF"){t.add(e.field);return}if(e.type==="ARITH"&&(_s(e.left,t),_s(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&zi(n,t)}async function yy(e,t,n,r,i){let o=Sp(e),a=await Ke(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(d=>[d,i?.get(s)?.columnMeta?.get(d)?.fieldType??(i?.get(s)?.columnMeta?.get(d)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ke(t.appId,n,r),c=new Set,p=new Set;for(let d of o){if(d.tableAlias!==null){if(d.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(d.field!=="$id"&&!a.has(d.field))throw _e(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(d.field)}else if(d.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(d.field!=="$id"&&!l.has(d.field))throw _e(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(d.field)}else throw _e(`CHECK \u306E\u4FEE\u98FE\u5B50 ${d.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=d.field==="$id"||a.has(d.field),E=d.field==="$id"||l.has(d.field);if(!f)throw _e(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${d.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw _e(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u66D6\u6627\u3067\u3059`);c.add(d.field)}let u=new Map;for(let[d,f]of a)u.set(d,f),u.set(`APP${e.appId}.${d}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[d,f]of l)u.set(`${t.alias}.${d}`,f);return{targetFields:[...c],sourceFields:[...p],evaluationTypes:u}}function Gb(e,t,n){if(!e)return{};let r=Bt(e.target,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${n}.${i}`,o])])}function zi(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&zi(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(zi(e.left,t),zi(e.right,t))}function $b(e){let t=e.value;return t.type==="STRING"?`${e.field} = '${t.value}'`:t.type==="NUMBER"?`${e.field} = ${t.value}`:t.type==="ARITH"?`${e.field} = ${gy(t)}`:t.type==="CASE_VALUE"?`${e.field} = CASE WHEN ...`:t.type==="STRING_FUNC"?`${e.field} = ${t.func}(...)`:t.type==="SCALAR_SUBQUERY"?`${e.field} = (SELECT ...)`:t.type==="SOURCE_FIELD"?`${e.field} = ${t.alias}.${t.field}`:`${e.field} = (${t.type})`}function gy(e){return`${XR(e.left)} ${e.op} ${XR(e.right)}`}function XR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic formatting.`);return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?q(e):e.type==="ARITH"?`(${gy(e)})`:"..."}var me=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var De=class extends Error{constructor(t,n,r){super(n),this.name="KsqlEngineError",this.code=t,r!==void 0&&(this.cause=r),Object.setPrototypeOf(this,new.target.prototype)}};function Up(e,t,n){return Object.defineProperties(e,{statementIndex:{value:t,enumerable:!0,configurable:!1,writable:!1},statementType:{value:n,enumerable:!0,configurable:!1,writable:!1}}),e}function it(e){return new De("READ_ONLY_VIOLATION",e)}function Lr(e,t){return new De("PARSE_ERROR",e,t)}function hy(){let e=new Fn;return new De("SEARCH_ABORTED",e.message,e)}function Ro(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function Bb(e){if(e===null||typeof e!="object")return!1;let t=e;return typeof t.status=="number"||typeof t.response?.status=="number"||typeof t.code=="string"&&t.code.trim()!==""}function Wn(e){return e instanceof De?e:e instanceof ke||e instanceof T?new De("PARSE_ERROR",Ro(e),e):e instanceof Fn||e?.name==="SearchAbortedError"?new De("SEARCH_ABORTED",Ro(e),e):e instanceof We||e?.name==="FetchAllLimitError"?new De("FETCH_LIMIT_EXCEEDED",Ro(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new De("CLIENT_ERROR",e.message,e.cause):Bb(e)?new De("CLIENT_ERROR",Ro(e),e):new De("EXECUTION_ERROR",Ro(e),e)}function Bs(e,t){let n=Wn(e);if(e instanceof ie){let r=t[e.statementIndex];if(r!==void 0)return Up(n,e.statementIndex,r.type)}return n}var Vb=2,Vs=5,Wb=3e4,Hb=10*6e4+3e4,Ws=class{constructor(t,n={}){this.host=t;this.active=0;this.peak=0;this.quarantined=0;this.waiters=[];this.createTail=Promise.resolve();let r=n.maxActive??Vb;if(!Number.isSafeInteger(r)||r<1||r>Vs)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Vs}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??Wb,this.quarantineMs=n.quarantineMs??Hb}acquire(){return this.active<this.maxActive?(this.active+=1,this.peak=Math.max(this.peak,this.active),Promise.resolve(this.makeLease())):new Promise((t,n)=>{let r={};r.resolve=t,r.reject=n,r.timer=setTimeout(()=>{let i=this.waiters.indexOf(r);i>=0&&this.waiters.splice(i,1),n(new za(this.host,this.maxActive,this.waitTimeoutMs))},this.waitTimeoutMs),r.timer.unref?.(),this.waiters.push(r)})}setMaxActive(t){this.validateMaxActive(t),this.maxActive!==t&&(this.maxActive=t,this.dispatchWaiters())}async runCreate(t){let n=this.createTail,r;this.createTail=new Promise(i=>{r=i}),await n;try{return await t()}finally{r()}}snapshot(){return{active:this.active,peak:this.peak,quarantined:this.quarantined,waiting:this.waiters.length,limit:this.maxActive}}makeLease(){let t=!1;return{release:()=>{t||(t=!0,this.returnPermit())},quarantine:(n=this.quarantineMs)=>{if(t)return;t=!0,this.quarantined+=1,setTimeout(()=>{this.quarantined-=1,this.returnPermit()},n).unref?.()}}}returnPermit(){this.active-=1,this.dispatchWaiters()}dispatchWaiters(){for(;this.active<this.maxActive;){let t=this.waiters.shift();if(!t)return;clearTimeout(t.timer),this.active+=1,this.peak=Math.max(this.peak,this.active),t.resolve(this.makeLease())}}validateMaxActive(t){if(!Number.isSafeInteger(t)||t<1||t>Vs)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Vs}.`)}};function Yb(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function jb(e,t=r=>new Promise(i=>setTimeout(i,r)),n=Yb){try{await e();return}catch(r){if(n(r))return}await t(250);try{await e()}catch(r){if(n(r))return;throw r}}async function zb(e,t){let n,r=new Promise((i,o)=>{n=setTimeout(()=>o(new Error(`CursorCleanupTimeoutError: cleanup exceeded ${t}ms.`)),t),n.unref?.()});try{return await Promise.race([e,r])}finally{n&&clearTimeout(n)}}function Ay(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let c=await t.get();return c.next||(n=!0,t.onReleased?.()),c});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await zb(jb(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Sy(e){return Ty(e,Jb(e))}function Ty(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=Xb(o.options),s=Qb(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Hs(o.minValue),maxValue:Hs(o.maxValue),minLength:Hs(o.minLength),maxLength:Hs(o.maxLength),defaultValue:o.defaultValue,hasLookup:Object.prototype.hasOwnProperty.call(o,"lookup"),isLookupCopyTarget:t.has(o.code),isUnique:o.unique===!0,isCalculated:o.type==="CALC"||typeof o.expression=="string"&&o.expression.length>0,inSubtable:n,...r?{subtableCode:r}:{},writable:!t.has(o.code)&&!qb.has(o.type)};l.semantics=te(l),i.push(l),o.fields&&i.push(...Ty(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var qb=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function Jb(e){let t=new Set,n=r=>{for(let i of Object.values(r)){for(let o of i.lookup?.fieldMappings??[])o.field&&t.add(o.field);i.fields&&n(i.fields)}};return n(e),t}function Hs(e){return e==null||e===""?void 0:e}function Xb(e){if(!e||typeof e!="object")return;let t={},n=!1;for(let[r,i]of Object.entries(e)){let o=Number(i?.index);Number.isFinite(o)&&(t[r]=o,n=!0)}return n?t:void 0}function Qb(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Iy(e){return e===null?null:Object.values(e).map(t=>{let n=Number(t.index);if(!Number.isSafeInteger(n)||n<0)throw new Error(`ArgumentError: invalid process status index: ${String(t.index)}`);return{name:t.name,index:n}})}var Zb="Filter aborted because of too many search results";function wy(e){return e?.includes(Zb)===!0}var by="/k/v1/records.json",Ys="/k/v1/records/cursor.json",eN=4096,tN=2,Mp=e=>kintone.api.url(e,!0);function nN(e){let t={app:e.app,query:e.query,...e.fields.length>0?{fields:e.fields}:{},...e.totalCount===!0?{totalCount:!0}:{}},r=kintone.api.urlForGet(by,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=eN?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Mp(by),init:{method:"POST",credentials:"include",headers:{...i,"X-HTTP-Method-Override":"GET","Content-Type":"application/json","X-Cybozu-Request-Token":kintone.getRequestToken()},body:JSON.stringify(t)}}}function mo(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
18
+ `));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function rN(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return mo({code:r.code,message:r.message,errors:r.errors,status:e.status})}let n=new Error(`kintone API error: HTTP ${e.status}`);return Object.assign(n,{status:e.status,cause:t}),mo(n)}catch(t){let n=new Error(`kintone API error: HTTP ${e.status} \u306E\u5FDC\u7B54\u3092 JSON \u3068\u3057\u3066\u89E3\u6790\u3067\u304D\u307E\u305B\u3093`);return Object.assign(n,{status:e.status,cause:t}),mo(n)}}function iN(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Hn(e,t,n){try{return await kintone.api(Mp(e),t,n)}catch(r){throw mo(r)}}function oN(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function Ny(e={}){let t=e.cursorMaxActive??tN;oN(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=nN(a),l=await fetch(s.url,s.init);if(!l.ok)throw await rN(l);let c=await l.json();return wy(l.headers.get("X-Cybozu-Warning"))?{...c,searchAborted:!0}:c}catch(s){throw mo(s)}},async openCursor(a){let s=Mp(Ys),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(r!==null&&r!==l)throw new Error(`CursorRouteError: factory route changed from ${r} to ${l}.`);if(r=l,n??=new Ws(l,{maxActive:t}),n.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let c=await n.acquire(),p;try{p=await n.runCreate(()=>Hn(Ys,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(c.release(),R):(c.quarantine(),new qa(R))}let u=p.id,d=Ay(Number(p.totalCount),{get:()=>Hn(Ys,"GET",{id:u}),delete:()=>Hn(Ys,"DELETE",{id:u}),isAlreadyReleasedError:iN,onReleased:()=>c.release(),onReleaseUnknown:()=>c.quarantine()}),f=null,E={totalCount:d.totalCount,async nextPage(){let R=await d.nextPage();return R.next||i.delete(E),R},close(){return f||(f=d.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let c=await Hn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of c.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(c.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Hn("/k/v1/app/form/fields.json","GET",{app:a});return Sy(s.properties)},async getNumberPrecision(a){let s=await Hn("/k/v1/app/settings.json","GET",{app:a});return rE(s)},async getProcessStatuses(a){let s=await Hn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Iy(s.states)}}}}var Cy=new Set(["postRecords","putRecords","upsertRecords","deleteRecords"]),yo=class extends Error{constructor(t){let n=t instanceof Error?t.message:String(t);super(n),this.name="ClientOperationError",this.cause=t,Object.setPrototypeOf(this,new.target.prototype)}};async function Rn(e){try{return await e()}catch(t){throw new yo(t)}}function aN(e){return()=>{throw it(`${String(e)} is blocked by the readonly client`)}}function _r(e){let t=e.getRecords.bind(e),n=e.openCursor.bind(e),r=e.getApps.bind(e),i=e.getFields.bind(e),o=e.getNumberPrecision.bind(e),a=e.getProcessStatuses.bind(e),s=Object.assign(Object.create(null),{getRecords:async l=>{let c=await Rn(()=>t(l));if(c.searchAborted===!0)throw hy();return c},openCursor:async l=>{let c=await Rn(()=>n(l)),p=c.nextPage.bind(c),u=c.close.bind(c);return{totalCount:c.totalCount,nextPage:()=>Rn(()=>p()),close:()=>Rn(()=>u())}},getApps:()=>Rn(()=>r()),getFields:l=>Rn(()=>i(l)),getNumberPrecision:l=>Rn(()=>o(l)),getProcessStatuses:l=>Rn(()=>a(l))});return new Proxy(s,{get(l,c,p){return Cy.has(c)?aN(c):Reflect.get(l,c,p)},has(l,c){return Cy.has(c)?!1:Reflect.has(l,c)}})}function sN(e){let t=new Set,n=null;return{client:{getRecords:e.getRecords.bind(e),async openCursor(i){let o=await e.openCursor.call(e,i),a=null,s={totalCount:o.totalCount,nextPage:o.nextPage.bind(o),close(){return a||(a=Promise.resolve().then(()=>o.close()).finally(()=>{t.delete(s)}),a)}};return t.add(s),s},getApps:e.getApps.bind(e),getFields:e.getFields.bind(e),getNumberPrecision:e.getNumberPrecision.bind(e),getProcessStatuses:e.getProcessStatuses.bind(e)},close(){return n||(n=(async()=>{let o=(await Promise.allSettled([...t].map(a=>a.close()))).find(a=>a.status==="rejected");if(o)throw new yo(o.reason)})(),n)}}}async function vr(e,t){let n=sN(e),r=!1;try{return await t(n.client)}catch(i){throw r=!0,i}finally{try{await n.close()}catch(i){if(!r)throw i}}}var lN="A-Za-z",uN="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",xp=`${lN}${uN}`,Oy=`${xp}0-9_`,cN=new RegExp(`^[${xp}]$`,"u"),pN=new RegExp(`^[${Oy}]$`,"u"),dN=new RegExp(`^[${xp}][${Oy}]{0,63}$`,"u");function fN(e){return cN.test(e)}function EN(e){return pN.test(e)}function Fp(e){let t=e.normalize("NFC").toUpperCase();if(!dN.test(t))throw new Error(`ArgumentError: logical app name "${e}" is invalid; expected 1-64 UTF-16 units starting with an ASCII letter or supported Japanese character.`);return t}function kp(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||t===95||t===36||t>=12352&&t<=12543||t>=13312&&t<=40959||t>=63744&&t<=64255||t>=65281&&t<=65376}function RN(e){if(!e)return!1;let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t>=48&&t<=57||e==="_"||e==="-"||e==="."||e==="$"}function mN(e,t){let n=t>0?e[t-1]:"";if(kp(n))return null;let r,i,o,a,s,l;if(e.slice(t,t+5).toUpperCase()==="LAPP_"){if(r="logical",l=t+5,a=l,!fN(e[l]??""))return null;for(l++;l<e.length&&EN(e[l]);)l++;s=l;try{o=Fp(e.slice(a,s))}catch{return null}}else if(e.slice(t,t+3).toUpperCase()==="APP"){for(r="physical",l=t+3,a=l;l<e.length&&/[0-9]/.test(e[l]);)l++;if(s=l,s===a)return null;i=Number(e.slice(a,s))}else return null;if(e[l]==="$"){l++;let f=l;for(;l<e.length&&kp(e[l]);)l++;if(l===f)return null}let c=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&RN(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let u=l<e.length?e[l]:"";if(kp(u))return null;let d={profile:p,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:c,fullEnd:l};return r==="physical"?{...d,source:r,appId:i}:{...d,source:r,logicalName:o}}function Kp(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){for(n++;n<e.length;){if(e[n]==="'"){if(n++,n<e.length&&e[n]==="'"){n++;continue}break}n++}continue}if(r==="`"){for(n++;n<e.length&&e[n]!=="`";)n++;n<e.length&&n++;continue}if(r==="-"&&e[n+1]==="-"){for(n+=2;n<e.length&&e[n]!==`
19
+ `;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=mN(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function Py(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function Ly(e,t="dev",n){let r=Kp(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let y=a(m.profile),g=o.get(m.appId);g||(g=new Set,o.set(m.appId,g)),g.add(y.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let y=a(m.profile).toLowerCase(),g=`logical:${m.logicalName}@${y}`;if(l.has(g))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${y} requires logicalApps configuration.`);let S=n.resolveLogicalApp(m.logicalName,y);l.set(g,S),s.add(S)}let c=new Map,p=new Map;for(let[m,y]of o.entries()){let g=[...y].sort();if(!(g.length<=1))for(let S of g){let A=Py(s);c.set(`physical:${m}@${S}`,A),p.set(A,{source:"physical",mappedAppId:A,appId:m,profile:S})}}let u=[],d=[],f=0,E=0,R=(m,y,g,S)=>{if(!m&&y===g)return;let A=f;u.push(m),f+=m.length,d.push({normalizedStart:A,normalizedEnd:f,sourceStart:y,sourceEnd:g,...S===void 0?{}:{bindingMappedAppId:S}})};for(let m of r){let y=a(m.profile).toLowerCase(),g;if(m.source==="physical")g={source:"physical",mappedAppId:c.get(`physical:${m.appId}@${y}`)??m.appId,appId:m.appId,profile:y};else{let I=`logical:${m.logicalName}@${y}`,N=c.get(I);N===void 0&&(N=Py(s),c.set(I,N)),g={source:"logical",logicalName:m.logicalName,mappedAppId:N,appId:l.get(I),profile:y}}p.set(g.mappedAppId,g),R(e.slice(E,m.start),E,m.start);let S=e.slice(m.referenceValueEnd,m.appEnd),A=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${g.mappedAppId}${S}`:`APP${g.mappedAppId}${S}`;R(A,m.start,m.fullEnd,g.mappedAppId),E=m.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:d}}var _y=new Set(["client","logicalApps","maxRecords","recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions","fetchParallel","cursorMaxActive"]),vy=new Set([..._y,"onLimitReached"]),yN=new Set([...vy,"variables","tempTableMaxRows"]);function Dy(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Dr(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Uy(e){if(e===null||typeof e!="object")throw new TypeError("client is required");let t=e;for(let n of["getRecords","openCursor","getApps","getFields","getNumberPrecision","getProcessStatuses"])if(typeof t[n]!="function")throw new TypeError(`client.${n} must be a function`)}function gN(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("variables must be an object");for(let[t,n]of Object.entries(e))if(typeof n!="string")throw new TypeError(`variables.${t} must be a string`)}function My(e){if(e===void 0)return;if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("logicalApps must be an object");let t={};for(let[n,r]of Object.entries(e)){let i;try{i=Fp(n)}catch{throw new TypeError(`logicalApps key "${n}" is invalid`)}if(Object.prototype.hasOwnProperty.call(t,i))throw new TypeError(`logicalApps key "${n}" duplicates "${i}" after canonical normalization`);Dr(r,`logicalApps.${n}`),t[i]=r}return t}function ky(e,t,n){for(let r of Reflect.ownKeys(e))if(typeof r!="string"||!t.has(r))throw new TypeError(`Unknown ${n} option: ${String(r)}`);e.maxRecords!==void 0&&Dr(e.maxRecords,"maxRecords");for(let r of["recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions"])e[r]!==void 0&&Dr(e[r],r);if(e.fetchParallel!==void 0&&Dr(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Dr(e.cursorMaxActive,"cursorMaxActive"),e.cursorMaxActive>5))throw new RangeError("cursorMaxActive must be between 1 and 5");if(e.onLimitReached!==void 0&&e.onLimitReached!=="error"&&e.onLimitReached!=="truncate")throw new TypeError('onLimitReached must be "error" or "truncate"');return{...e.maxRecords!==void 0?{maxRecords:e.maxRecords}:{},...e.recursiveCteMaxDepth!==void 0?{recursiveCteMaxDepth:e.recursiveCteMaxDepth}:{},...e.recursiveCteMaxRows!==void 0?{recursiveCteMaxRows:e.recursiveCteMaxRows}:{},...e.recursiveCteMaxExpansions!==void 0?{recursiveCteMaxExpansions:e.recursiveCteMaxExpansions}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function Gp(e,t){Dy(e);let n=t==="run"?vy:_y;Uy(e.client);let r=ky(e,n,t==="run"?"runQuery":"explainQuery"),i=My(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function xy(e){Dy(e),Uy(e.client),e.variables!==void 0&&gN(e.variables),e.tempTableMaxRows!==void 0&&Dr(e.tempTableMaxRows,"tempTableMaxRows");let t=ky(e,yN,"runBatch"),n=My(e.logicalApps);return{client:e.client,...n===void 0?{}:{logicalApps:n},executeOptions:{...t,...e.variables!==void 0?{variables:e.variables}:{},...e.tempTableMaxRows!==void 0?{tempTableMaxRows:e.tempTableMaxRows}:{}}}}function js(e,t,n={}){let r=n.logicalAppDisplay??"profile";if(typeof e=="string"){let i=e.match(/^(\s*target:\s*)APP(\d+) \((\d+)\)\s*$/);if(i&&i[2]===i[3]){let s=t.get(Number(i[2]));if(s){let l=s.source==="logical"?r==="physical"?`LAPP_${s.logicalName} -> APP${s.appId}`:`LAPP_${s.logicalName} -> APP${s.appId}@${s.profile}`:r==="physical"?`APP${s.appId}`:`APP${s.appId}@${s.profile}`;return`${i[1]}${l}`}}if(t.size===0)return e;let o=[...t.keys()].sort((s,l)=>String(l).length-String(s).length),a=new RegExp(`APP(${o.join("|")})(?!\\d)(\\s+AS\\s+[^\\s()]+)?(?:\\s+\\(\\1\\))?`,"g");return e.replace(a,(s,l,c)=>{let p=t.get(Number(l));return`${p.source==="logical"?r==="physical"?`LAPP_${p.logicalName} -> APP${p.appId}`:`LAPP_${p.logicalName}@${p.profile}`:r==="physical"?`APP${p.appId}`:`APP${p.appId}@${p.profile}`}${c??""}`})}return Array.isArray(e)?e.map(i=>js(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,js(o,t,n)])):e}function hN(e,t,n){return e.slice(t,n)}function go(e,t,n){let r=Kp(e),i=r.find(c=>c.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${hN(e,i.start,i.fullEnd)}).`);if(!r.some(c=>c.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=Ly(e,"browser",{resolveLogicalApp(c){let p=n?.[c];if(p===void 0)throw new Error(`ArgumentError: logical app LAPP_${c} is not defined.`);return p}}),a=[...o.appBindingByMappedApp.values()].filter(c=>c.source==="logical"),s=c=>o.appBindingByMappedApp.get(c)?.appId??c,l={getRecords:c=>t.getRecords({...c,app:s(c.app)}),openCursor:c=>t.openCursor({...c,app:s(c.app)}),getApps:()=>t.getApps(),getFields:c=>t.getFields(s(c)),getNumberPrecision:c=>t.getNumberPrecision(s(c)),getProcessStatuses:c=>t.getProcessStatuses(s(c))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function ho(e,t){if(t.length===0)return e;let n=t.map(r=>`LAPP_${r.logicalName} -> APP${r.appId}`).filter((r,i,o)=>o.indexOf(r)===i);return e.message=`${e.message} [logical apps: ${n.join(", ")}]`,e}function Ao(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return js(e,n,{logicalAppDisplay:"physical"})}function zs(e){return{recordGetCalls:e?.getCalls??0,fetchedRows:e?.fetchedRows??0,elapsedMs:e?.elapsedMs??0,cursorRecordsScanned:e?.cursorRecordsScanned??0,limitReached:e?.limitReached??!1,limitReachedApps:e?[...e.limitReachedApps].sort((t,n)=>t-n):[]}}function AN(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function SN(e,t){let n=t?.get(e),r=n?.fieldType??n?.semantics?.fieldType,i=n?.semantics?.compareMode,o=n?.sortKind??(i==="number"||i==="string"?i:void 0),a=n?.publicSourceApp;return{name:e,displayName:n?.displayName??e,valueType:"string",...r!==void 0?{fieldType:r}:{},...o!==void 0?{sortKind:o}:{},...a!==void 0?{sourceApp:a}:{}}}function qs(e,t=e.metrics){let n=QR(e);return{type:"query",rows:e.rows.map(AN),columns:e.columns.map(r=>SN(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:zs(t)}}function $p(e){let t=e.type==="EXPLAIN"?e.query:e;if(t.type!=="UPDATE"&&t.type!=="INSERT"&&t.type!=="UPSERT")return!1;let n=t;return["applyBlocks","onInsertApplyBlocks","onUpdateApplyBlocks"].some(r=>Array.isArray(n[r])&&n[r].length>0)}function Fy(e){if(e instanceof ge)return Lr(e.message,e);let t=Wn(e);return t.code==="PARSE_ERROR"?t:Lr("SQL statement could not be parsed",e)}function TN(e){if(e.trim()==="")throw Lr("SQL statement is empty");try{return QE(e,{import:!0})}catch(t){let n=Fy(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Lr("This API accepts one statement; use runBatch for multiple statements",t):n}}function Ky(e){if(Po(e)==="UNKNOWN")throw it("Unclassifiable statement is not allowed");return e}function Gy(e){if(e.trim()==="")throw Lr("SQL statement is empty");try{return zu(e,{import:!0})}catch(t){throw Fy(t)}}function IN(e){let t=Ky(e),n=t.type;if(n==="IMPORT")throw it("IMPORT is disabled by default in engine library queries");if(!zn(t))throw it(`${n} statements are not read-only`);if($p(t))throw it("APPLY statements are not allowed in engine library queries");if(!ed(t))throw it(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function $y(e){let t=Ky(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw it("IMPORT is disabled by default in engine library batches");if(!zn(n))throw it(`${n.type} statements are not read-only`);if($p(n))throw it("APPLY statements are not allowed in engine library batches");if(Xt(n.type))throw it("DML VALIDATE ONLY statements are not supported by runBatch")}function By(e){let t=TN(e);return IN(t),t}function Vy(e){let t=Gy(e);return t.forEach($y),t}function Wy(e){let t=e.trim(),n=Gy(t);n.forEach($y);let r=n[0],i=r.type==="EXPLAIN"?r.query:r;return n.length===1&&(i.type==="SELECT"||i.type==="WITH"||i.type==="UNION")?{statements:n,legacySql:r.type==="EXPLAIN"?t:`EXPLAIN ${t}`}:{statements:n}}function wN(e){let t=e.error,n=t?.cause!==void 0?Wn(t.cause):new De("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Up(n,e.index,e.type)}async function Hy(e,t){let n=[],r=[];try{let i=xy(t),o=go(e,i.client,i.logicalApps);r=o.logicalBindings,n=Vy(o.sql);let a=await vr(o.client,p=>um(o.sql,_r(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw wN(s);let l=[],c=a.statements.map(p=>{let u={index:p.index,type:p.type,status:p.status};if(p.tempTable!==void 0&&(u.tempTable=p.tempTable),p.rowCount!==void 0&&(u.rowCount=p.rowCount),p.error!==void 0&&(u.error={code:p.error.code,message:p.error.message}),p.skippedReason!==void 0&&(u.skippedReason=p.skippedReason),p.status==="success"&&p.result?.type==="SELECT"){u.resultIndex=l.length;let d=qs(p.result,a.metrics);l.push(n[p.index]?.type==="EXPLAIN"?Ao(d,r):d)}return u});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:c,results:l,warnings:[]}}catch(i){throw ho(Bs(i,n),r)}}function Yy(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function jy(e,t){let n=[];try{let r=Gp(t,"run"),i=go(e,r.client,r.logicalApps);n=i.logicalBindings;let a=By(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await vr(i.client,l=>Qc(i.sql,_r(l),{...a,captureColumnMeta:!0}));return Yy(s),qs(s)}catch(r){throw ho(Wn(r),n)}}async function zy(e,t){let n=[],r=[];try{let i=Gp(t,"explain"),o=go(e,i.client,i.logicalApps);r=o.logicalBindings;let a=Wy(o.sql);if(n=a.statements,a.legacySql!==void 0){let p=await vr(o.client,f=>Qc(a.legacySql,_r(f),i.executeOptions));Yy(p);let u=Ao(p.rows.map(f=>String(f.plan??"")),r),d=_p(p)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
20
+ `),plan:d,metrics:zs(p.metrics)}}let s=await vr(o.client,p=>dy(o.sql,_r(p),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive,!1,100,void 0,!0,i.executeOptions.recursiveCteMaxDepth,i.executeOptions.recursiveCteMaxRows,i.executeOptions.recursiveCteMaxExpansions,void 0,void 0,{surface:"DOCUMENT_ONLY"})),l=Ao(s.statements.flatMap(p=>[...s.statementCount>1?[`[${p.index+1}] ${p.type}`]:[],...p.plan]),r),c=_p(s)??{statements:s.statements.map(p=>({index:p.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
21
+ `),plan:c,metrics:zs()}}catch(i){throw ho(Bs(i,n),r)}}var bN="3.80.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runBatch,runQuery,version});