@rex0220/kintone-sql-tools 3.61.0 → 3.63.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.
- package/dist-cli/ksql.js +5497 -5123
- package/dist-engine/index.cjs +13 -13
- package/dist-engine/index.mjs +13 -13
- package/dist-engine/ksql-engine.umd.js +13 -13
- package/dist-engine/meta/bundle-baseline.json +10 -10
- package/dist-engine/meta/cjs.json +138 -90
- package/dist-engine/meta/esm.json +138 -90
- package/dist-engine/meta/umd.json +138 -90
- package/dist-mcp/ksql-mcp.js +5476 -5143
- package/dist-mcpb/ksql-mcp.mcpb +0 -0
- package/package.json +1 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
"use strict";(()=>{async function De(e,t,n,r,i={}){let o=i.pageSize??hg,a=Math.max(1,i.parallel??Sg),s=i.maxRecords??Tg,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,R=`\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`,E=0,g=0,y=$c(n,E),m=await Bc(e,t,y,u,o,g);if(Kc(m,i),d.push(...m.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 ke(R)}if(m.records.length<o)return d;for(g+=o,g>=ds&&(E=Vc(m.records),g=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 ke(R)}let A=p-d.length,h=Math.ceil(A/o),b=Math.max(1,Math.min(a,h)),w=[];for(let P=0;P<b;P++){let D=g+P*o;if(D>=ds)break;w.push(D)}let C=$c(n,E),I=await Promise.all(w.map(P=>Bc(e,t,C,u,o,P)));for(let P of I)Kc(P,i);let L=!1;for(let P of I){if(d.push(...P.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 ke(R)}if(P.records.length<o){L=!0;break}}if(L)break;if(g+=o*w.length,g>=ds){let P=I[I.length-1];E=Vc(P.records),g=0}}return d}function Kc(e,t){e.searchAborted&&t.onSearchAborted?.()}function Wc(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 hg=500,Sg=1,Tg=1e4,ds=1e4;async function Bc(e,t,n,r,i,o){let a=Ig(n,i,o);return e({app:t,query:a,fields:r})}function $c(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 Ig(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function Vc(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 ke=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var wg=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function bg(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 Se(e){let t=wg.exec(e.trim());if(t===null)return null;let n=bg(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 fs(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 Hc(e){let t=Se(e);return t===null?null:fs(t)}function Ng(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 zi(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Ng(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Ji(e,t){let n=Se(e),r=Se(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return zi(n,r)}var Qe="__NO_FROM__";function Es(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function Xi(e){return e.windowKind==="AGGREGATE"}function Rs(e){return e.windowKind==="VALUE"}function ge(e){return{type:"NUMBER",value:Number(e),raw:e}}function H(e){let t=e.raw??String(e.value);return Hc(t)??t}function Yc(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 Z(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 jc(e){return Z(e).type!=="NONE"}function qc(e,t){let n=Z(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 eo(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function kt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function Cg(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"}function gs(e){return kt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function _n(e){return!gs(e)&&(Cg(e.type)||kt(e.type))}function zc(e){return _n(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var Jc=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Oe(e,t){for(let n of t)e.add(n)}function Qi(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"&&Jc.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=>Qi(i,t)):Qi(r,t))}function Zi(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"&&!Jc.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=>Zi(i,t)):Zi(r,t))}function Ut(e){let t=new Set;if(kt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Oe(t,Ln(e));break;case"UNION":Oe(t,Qc(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Oe(t,Ut(n.query));Oe(t,Ut(e.query));break;case"CREATE_TEMP_TABLE":Oe(t,Ut(e.query));break;default:break}return Qi(e)&&t.add("STATISTICAL_AGGREGATE"),Zi(e)&&t.add("AGGREGATE"),t}function Xc(e){return Ut(e).size>0}function Qc(e){let t=e.left.type==="SELECT"?Ln(e.left):Qc(e.left);return Oe(t,Ln(e.right)),e.all||t.add("DISTINCT"),t}function Ln(e){let t=new Set,n=Z(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"&&Oe(t,Ln(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Oe(t,On(i.condition));return Oe(t,On(e.where)),Oe(t,On(e.having)),Qi(e)&&t.add("STATISTICAL_AGGREGATE"),Zi(e)&&t.add("AGGREGATE"),t}function On(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")&&Oe(t,Ln(e.right.query));break;case"LOGICAL":Oe(t,On(e.left)),Oe(t,On(e.right));break;case"NOT":case"GROUP":Oe(t,On(e.expr));break;case"EXISTS":Oe(t,Ln(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Zc(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function ep(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 to=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),en=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Rr=new Set([...en,...to]),tn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",At="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function te(e){return to.has(e)}function Dn(e){return en.has(e)}function Ze(e){return Rr.has(e)}var Og=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})}),As=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})}),gr="v1";function j(e){throw new Error(`UnsupportedError: APPLY ${gr} scope does not support ${e}`)}function Lg(e,t){let n=gr;gr=e;try{return t()}finally{gr=n}}function _g(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 kn(e,t){return Lg(e,()=>Dg(t,Og[e]))}function Dg(e,t){let n=_g(e);if(n===null)return;if(n.type==="UPSERT"){Ug(n,t);return}let r=n.applyBlocks;if(ys(r),!t.multipleBlocks&&r.length!==1&&j("multiple APPLY blocks in this phase"),n.type==="INSERT"){kg(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"),Mg(i.where,t.multipleParents),np(r,t)}function np(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||j(`${r.kind} in this phase`);rp(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)no(i,"APPEND targets");Un(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&j("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&tp(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")}Un(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&tp(r.selector.where,t.idxSelectors)}}}}function rp(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 vg=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ip(e,t){if(rp(e),e.targetKind==="MULTI_VALUE"){if(!vg.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 ys(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${gr} scope allows only one block for table ${n.field}`);t.add(n.field)}}function Ug(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??[];ys(n),ys(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&j("multiple APPLY blocks in this phase"),op(n,"UPSERT ON INSERT"),np(r,{...t,idxSelectors:!1,expectRows:!1})}function op(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)no(i,"APPEND targets");Un(r.values,"APPEND values")}}function kg(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"),op(t,"INSERT")}function ht(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 ro(e,t){let n=As[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&hs(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${vn(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 ${vn(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 ${vn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!ht(t.where))throw new Error(`UnsupportedError: APPLY ${vn(e)} execution does not support multiple-parent APPLY`)}function hs(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 ap(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||ht(t.where))&&!As[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${vn(e)} public multiple-parent write is not connected`)}function Mn(e){if(!As[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${vn(e)} internal prepared write is not available`)}function vn(e){return`Phase ${e.slice(5)}`}function Mg(e,t){ht(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"),ms(e,t))}function ms(e,t){if(Array.isArray(e)){for(let o of e)ms(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"&&te(n.name))&&j("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))ms(o,t)}function tp(e,t){Un(e,"child row selectors",t)}function Un(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Un(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"&&te(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}`),no(l,t,n)}if(i==="FIELD_REF"&&no(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Un(s,t,n)}function no(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 yr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Fg(e.op);if(t===null)throw new oe(`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:yr(e.left),right:yr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:yr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Fg(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 sp(e){return e.includes("%")||e.includes("_")}function mr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Ft(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Mt(e){if(e===null)return!1;if(mr(e))return!0;switch(e.type){case"LOGICAL":return Mt(e.left)||Mt(e.right);case"NOT":case"GROUP":return Mt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Te(e){if(e===null)return!1;if(Ft(e))return!0;switch(e.type){case"LOGICAL":return Te(e.left)||Te(e.right);case"NOT":case"GROUP":return Te(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Y(e){switch(e.type){case"BINARY":return xg(e);case"NULL_CHECK":return Kg(e);case"LOGICAL":return Bg(e);case"NOT":return $g(e);case"GROUP":return Vg(e);case"EXISTS":throw new oe("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new oe("internal error: BOOLEAN predicate reached kintone query conversion")}}function xg(e){if(mr(e))throw new oe("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=up(e.left),n=Gg(e.op),r=Wg(e.right,e.op);return`${t} ${n} ${r}`}function Gg(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 Kg(e){let t=up(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Bg(e){let t=Y(e.left),n=Y(e.right),r=e.op==="AND"?"and":"or",i=lp(e.left)?`(${t})`:t,o=lp(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function $g(e){return Y(yr(e.expr))}function Vg(e){return`(${Y(e.expr)})`}function up(e){if(e.type==="FUNC_FIELD")throw new oe(`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 oe("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 oe("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 oe("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 oe("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return Qg(e.field)}function Wg(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 cp(e);case"NUMBER":return H(e);case"KINTONE_FUNC":return pp(e);case"IN_LIST":return Jg(e,t);case"ARITH_VALUE":throw new oe("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 oe("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 oe("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new oe("\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 oe("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function cp(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function pp(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Hg(e)}function Hg(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Ar():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!qg(e.args.offset,e.args.offsetText)||!Yg.has(e.args.unit)?Ar():`${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&&!jg.has(e.args.weekday)?Ar():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"||!zg(e.args.day)?Ar():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Ar()}var Yg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),jg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function qg(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function zg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Ar(){throw new oe("internal error: invalid relative date function AST reached kintone query conversion")}function Jg(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new oe("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Xg(e.values),`(${e.values.map(r=>r.type==="STRING"?cp(r):r.type==="NUMBER"?H(r):pp(r)).join(",")})`}function Xg(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new oe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function Qg(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function lp(e){return e.type==="LOGICAL"}var oe=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function io(e){return`'${e.replace(/'/g,"''")}'`}function Fn(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 H(e);if(e.type==="STRING_FUNC")return Ts(e);let n=`${Fn(e.left)}${e.op}${Fn(e.right)}`;return t?n:`(${n})`}function dp(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Ts(e.expr);if(e.type==="AGG_FIELD")return lt(e.expr);if(e.type==="ARITH_FIELD")return Fn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Ss(e.expr)}function Ep(e){switch(e.type){case"STRING":return io(e.value);case"NUMBER":return H(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=>io(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Ep).join(",")})`;case"ARITH_VALUE":return Fn(e.expr);case"CASE_VALUE":return Ss(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function hr(e){switch(e.type){case"BINARY":return`${dp(e.left)} ${e.op.replace("_"," ")} ${Ep(e.right)}`;case"NULL_CHECK":return`${dp(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${hr(e.left)} ${e.op} ${hr(e.right)})`;case"NOT":return`NOT (${hr(e.expr)})`;case"GROUP":return`(${hr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function fp(e){return e.type==="ARRAY"?`[${e.elements.map(t=>io(t.value)).join(",")}]`:e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?lt(e):e.type==="FIELD_REF"||e.type==="ARITH"?Fn(e):nn(e)}function Ss(e){let t=e.branches.map(r=>`WHEN ${hr(r.condition)} THEN ${fp(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${fp(e.elseResult)}`;return`CASE ${t}${n} END`}function Zg(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"?lt(e):nn(e)}function Ts(e){return`${e.func}(${e.args.map(Zg).join(",")})`}function nn(e){switch(e.type){case"STRING":return io(e.value);case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Ts(e);case"CASE_WHEN":return Ss(e);case"SCALAR_ARITH":return`(${nn(e.left)}${e.op}${nn(e.right)})`;case"CONCAT_OP":return`(${nn(e.left)}||${nn(e.right)})`}}function ey(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Fn(e,!0):nn(e)}function fe(e,t,n){let r=ey(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function lt(e){return e.type==="NUMBER"?H(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}`:`${lt(e.left)}${e.op}${lt(e.right)}`}var Rp=Symbol("ksql.groupingRowMeta"),gp=new WeakMap;function Is(e,t){return Object.defineProperty(e,Rp,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function ws(e){return e[Rp]}function ty(e){return ws(e)?.includedCanonicalIds}function yp(e,t){gp.set(e,t)}function xn(e,t){let n=ty(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=gp.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var oo=["$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 bs(e){return e.startsWith("_")||e.startsWith("$")}var ny=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Ps(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ps);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"?ny.test(t.field):Object.values(t).some(Ps)}function ry(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 Ke(e)||Ps(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var iy=["_pid","_rid","_idx"];function Ns(e){return[...new Set(e)]}function oy(e){switch(e.kind){case"APP":return Ns([...e.fieldCodes,...oo]);case"SUBTABLE":return Ns([...e.childFieldCodes,...iy,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Ns(e.columns)}}function mp(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:oy(t(r,i))}))}function Ap(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 hp(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Sp(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?Ap(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:hp(a,r.fieldCode)}}function ay(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function sy(e,t,n){let r=Ap(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:hp(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,c)=>ay(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=ry(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 Tp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?sy(r.name,t,n):{kind:"EXPRESSION"})}}var ly="B65_NON_GROUPED_DEPENDENCY",Os=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 ao(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 Ls(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return ao(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?ao(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function _s(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function wp(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function bp(e){return e.type==="WINDOW_COL"}function uy(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function xt(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=>xt(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"||_s(n))return null;if(r==="GROUP"&&n.expr!==void 0)return xt(n.expr,t);let i=typeof r=="string"?Os.get(r):void 0;if(i!==void 0)return xt(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:${uy(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Ls(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=xt(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 cy(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function py(e){let t=new Map;for(let n of e){let r=cy(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function Ds(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var dy=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function so(e){if(e&&typeof e=="object"){let t=e,n=Ls(t);if(n!==null)return Ds(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"?Os.get(t.type):void 0;if(i!==void 0){let a=so(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Ip(e,t,n,r){let i=n==="WILDCARD"?"wildcard":Ds(n),o=so(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=${ly})`)}function rn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)rn(a,t);return}let n=e;if(_s(n)||wp(n)||bp(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 Ip(t.clause,t.expression,"WILDCARD",t.policy);let r=Ls(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&dy.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=t.aliases.get(r.field)??[];if(l.length===1&&!t.resolvingAliases.has(r.field)){let c=new Set(t.resolvingAliases);c.add(r.field),rn(l[0],{...t,resolvingAliases:c});return}}let a=xt(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 Ip(t.clause,t.expression,r,t.policy);return}let i=xt(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?Os.get(n.type):void 0;if(o!==void 0){rn(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||rn(n[a],t)}function Sr(e,t){let n=py(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&rn(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&rn(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"?ao(r.key.name):r.key;rn(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function Cs(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Cs);let t=e;return _s(t)||bp(t)?!1:wp(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Cs)}function lo(e){return Z(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Cs(t))}function fy(e){return e.type==="FIELD_NAME"?ao(e.name):e.expr}function Np(e,t,n){let r=Z(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let R=Sp(f,n);if(R.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${R.name} is ambiguous across multiple sources.`);return R.kind==="UNKNOWN"?`unknown:${R.name}`:`source:${R.sourceIndex}:${R.fieldCode}`},a=new Set;t.items.forEach((f,R)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let E=xt(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=xt(fy(i[R]),o);E!==null&&a.add(E)}});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:so(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,R)=>f.type==="FIELD_NAME"&&t.items[R]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:c,groupingLabel:p,migrationSourceSql:u,migrationGroupingFields:d}}function uo(e){if(Z(e).type!=="NONE"||!lo(e))return;let t={identities:new Set,resolveField:n=>`ast:${Ds(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};Sr(e,t)}function Pp(e){return`FIELD:${e}`}var Cp=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 vs(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Be(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Be(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=>Be(r,t))}}function fo(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>fo(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){Be(n.arg,t);return}Object.values(n).forEach(r=>fo(r,t))}}function Ke(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ke);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(Ke)}function Ey(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?Ke(e):!1}function Ry(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${vs(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${vs(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);yp(e,r.canonicalId)}function Us(e){let t=Z(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Be(i,n);Be(e.having,n),Be(e.orderBy,n);let r=[];Be(e.where,r),Be(e.joins,r),fo(e.columns,r),fo(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&Be(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.");uo(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 Op(e,t,n=()=>{}){Us(e);let r=Z(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&Be(c,i);if(Be(e.having,i),Be(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=qc(e,t),a=new Set,s=[];for(let c of o.allItems){let p=c;if(!p.physical)throw new Error(`ArgumentError: grouping item ${vs(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)Ry(c,t,a);Sr(e,{identities:new Set([...a].map(Pp)),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(!Ey(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 gy(e){return e.some(t=>t.type==="WINDOW_COL")}function $e(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||Z(e).type!=="NONE"||e.distinct||gy(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Ke(t.expr)||t.type==="STRFUNC_COL"&&Up(t.expr)||t.type==="SCALAR_VALUE_COL"&&Ir(t.expr))||St(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function St(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Lp(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||mr(e);case"NULL_CHECK":return Lp(e.field);case"LOGICAL":return St(e.left)||St(e.right);case"NOT":case"GROUP":return St(e.expr);case"EXISTS":return!0}}function Lp(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Ro(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(Y(e.where)),e.orderBy.length>0){let i=e.orderBy.map(yy).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:my(e.columns),totalCount:!1}}function vp(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!St(e.where)&&n.push(Y(e.where)),{app:t,query:n.join(" "),fields:[]}}function on(e,t,n){let i=Mp(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 yy(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 my(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(go(r.field)):r.type==="ARITH_COL"?Tr(r.expr,n):r.type==="STRFUNC_COL"?ks(r.expr,n):r.type==="SCALAR_VALUE_COL"&&Gn(r.expr,n);return[...new Set(n)]}function Ay(e,t){Tr(e.left,t),Tr(e.right,t)}function Tr(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(go(e.field)):e.type==="ARITH"?Ay(e,t):e.type==="STRING_FUNC"&&ks(e,t)}function go(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function ks(e,t){for(let n of e.args)hy(n,t)}function hy(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Eo(e,t);return}Gn(e,t)}function Gn(e,t){if(e.type==="FIELD"){t.push(go(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){ks(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Gn(e.left,t),Gn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)_p(n.result,t);e.elseResult&&_p(e.elseResult,t)}}function _p(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Eo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Tr(e,t);return}Gn(e,t)}}function Eo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Sy(e.arg,t);return}e.type==="AGG_ARITH"&&(Eo(e.left,t),Eo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(go(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function Sy(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Tr(e,t):Gn(e,t)}function Up(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Ir(t))}function Ir(e){return e.type==="STRING_FUNC"?Up(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Ir(e.left)||Ir(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Dp(t.result))||e.elseResult!==null&&Dp(e.elseResult):!1}function Dp(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Ir(e)}function kp(e,t){let n=new Set,r=Mp(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Mp(e,t,n){let r=[e.from,...e.joins.map(S=>S.table)],i=[e.from,...e.joins.map(S=>S.table)].filter(S=>S.cteName===null),o=n?r:i,a=new Map;for(let S of o)a.set(S,{table:S,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(S=>!!S.subtableCode)??null,c=new Map;for(let S of o)S.alias&&c.set(S.alias,S),S.cteName!==null?c.set(S.cteName,S):S.subtableCode||(c.set(`APP${S.appId}`,S),c.set(`app${S.appId}`,S));let p=Ty(e.columns),u=S=>{let N=a.get(S);N&&(N.allFields=!0,N.fields.clear())},d=()=>{for(let S of o)u(S)},f=()=>{for(let S of o)S.subtableCode&&u(S)},R=(S,N)=>{let F=a.get(S);if(!(!F||F.allFields)){if(S.subtableCode){if(N.startsWith("_p.")){let O=N.slice(3);O&&O!=="*"&&F.fields.add(O);return}return void 0}N&&F.fields.add(N)}},E=(S,N="select",F)=>{if(!S||S==="*")return;if(S==="_p.*"){f();return}if(S.endsWith(".*")){let v=S.slice(0,-2);if(!v){d();return}if(v==="_p"){f();return}let $=c.get(v);if($){u($);return}return}if(N==="groupBy"&&F!==void 0){if(F.kind==="PHYSICAL"){let v=r[F.sourceIndex];v&&(n||v.cteName===null)&&R(v,F.fieldCode)}return}if((N==="orderBy"||N==="having"||N==="groupBy")&&p.has(S)||(N==="orderBy"||N==="having"||N==="groupBy")&&Iy(S))return;let O=S.indexOf(".");if(O>0){let v=S.slice(0,O),$=S.slice(O+1);if(v==="_p"){l&&R(l,`_p.${$}`);return}let M=c.get(v);if(M){R(M,$);return}if(n)return}n?n.unqualified.add(S):s&&R(s,S)},g=(S,N,F="select")=>{if(N){if(N==="_p"){l&&R(l,`_p.${S}`);return}let O=c.get(N);if(O){R(O,S);return}if(n)return}E(S,F)},y=(S,N="select")=>{if(S.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${S.name} reached source-aware field collection.`);if(S.type==="FIELD_REF"){E(S.field,N);return}if(S.type==="ARITH"){y(S.left,N),y(S.right,N);return}if(S.type==="STRING_FUNC"){h(S,N);return}},m=(S,N="select")=>{if(S.type==="AGG_REF"){S.arg.type!=="WILDCARD"&&w(S.arg,N);return}S.type==="AGG_ARITH"&&(m(S.left,N),m(S.right,N)),S.type==="AGG_GROUP_KEY"&&g(S.field,S.tableAlias??null,N)},A=(S,N="select")=>{if(S.type==="AGG_REF"||S.type==="AGG_ARITH"||S.type==="AGG_GROUP_KEY"||S.type==="VARIABLE"){m(S,N);return}b(S,N)},h=(S,N="select")=>{for(let F of S.args)A(F,N)},b=(S,N="select")=>{if(S.type==="FIELD"){g(S.field,S.tableAlias,N);return}if(S.type==="STRING_FUNC"){h(S,N);return}if(S.type==="SCALAR_ARITH"||S.type==="CONCAT_OP"){b(S.left,N),b(S.right,N);return}S.type==="CASE_WHEN"&&I(S,N)},w=(S,N="select")=>{if(S.type==="FIELD_REF"||S.type==="ARITH"){y(S,N);return}b(S,N)},C=(S,N="select")=>{if(S.type!=="ARRAY"){if(S.type==="AGG_REF"||S.type==="AGG_ARITH"){m(S,N);return}if(S.type==="FIELD_REF"||S.type==="ARITH"){y(S,N);return}b(S,N)}},I=(S,N="select")=>{for(let F of S.branches)D(F.condition,N),C(F.result,N);S.elseResult&&C(S.elseResult,N)},L=(S,N="select")=>{if(S.type==="FIELD"){if(S.aggregateRef){m(S.aggregateRef,N);return}g(S.field,S.tableAlias,N);return}if(S.type==="FUNC_FIELD"){h(S.expr,N);return}if(S.type==="AGG_FIELD"){m(S.expr,N);return}if(S.type==="ARITH_FIELD"){y(S.expr,N);return}S.type!=="GROUPING_FIELD"&&I(S.expr,N)},P=(S,N="select")=>{if(S.type==="ARITH_VALUE"){y(S.expr,N);return}if(S.type==="CASE_VALUE"){I(S.expr,N);return}},D=(S,N="where")=>{if(S)switch(S.type){case"BINARY":L(S.left,N),P(S.right,N);return;case"NULL_CHECK":L(S.field,N);return;case"LOGICAL":D(S.left,N),D(S.right,N);return;case"NOT":case"GROUP":D(S.expr,N);return;case"EXISTS":case"BOOLEAN":return}},x=(S,N)=>{if(S.type==="FIELD_NAME"){E(S.name,"groupBy",N);return}if(S.type==="ARITH_KEY"){y(S.expr,"groupBy");return}h(S.expr,"groupBy")},_=(S,N="orderBy")=>{if(S.type==="FIELD_NAME"){E(S.name,N);return}if(S.type==="ARITH_KEY"){y(S.expr,N);return}S.type!=="GROUPING_KEY"&&h(S.expr,N)};for(let S of e.columns)switch(S.type){case"WILDCARD":d();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(S.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${S.name}`);case"AGGREGATE":S.arg.type!=="WILDCARD"&&w(S.arg,"select");break;case"ARITH_AGG_COL":m(S.expr,"select");break;case"ARITH_COL":y(S.expr,"select");break;case"CASE_COL":I(S.expr,"select");break;case"STRFUNC_COL":h(S.expr,"select");break;case"SCALAR_VALUE_COL":b(S.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(S.windowKind==="AGGREGATE"||S.windowKind==="VALUE")&&S.arg.type!=="WILDCARD"&&w(S.arg,"select");for(let N of S.partitionBy)g(N.field,N.tableAlias,"select");for(let N of S.orderBy)_(N.key,"select");break}for(let S of e.joins)g(S.on.left.field,S.on.left.tableAlias,"where"),g(S.on.right.field,S.on.right.tableAlias,"where");D(e.where,"where");let k=Z(e);if(k.type==="PLAIN")k.allItems.forEach((S,N)=>x(S,t?.items[N]));else if(k.type==="GROUPING_SETS")for(let S of k.allItems)g(S.field,S.tableAlias,"select");D(e.having,"having");for(let S of e.orderBy)_(S.key);return a}function Ty(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 Iy(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function Gt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||$e(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||jc(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function Kt(e){let t=e.ctes[0].query,n=e.query,r=yo(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 yo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Fp(e.left,t)};case"NULL_CHECK":return{...e,field:Fp(e.field,t)};case"LOGICAL":return{...e,left:yo(e.left,t),right:yo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:yo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Fp(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}function Kn(e,t={}){return wr(e,n=>wy(n,t))}function Bn(e,t={}){return wr(e,n=>xp(n,t)||Gp(n,t))}function wr(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=wr(e.left,t),r=wr(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return wr(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function wy(e,t){return by(e,t)||Cy(e,t)?!0:xp(e,t)?t.fieldTypes?.get(e.left.field)==="NUMBER":Py(e,t)}function by(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Ms(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}var Ny=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function Py(e,t){if(!Gp(e,t)||e.left.type!=="FIELD"||e.right.type!=="IN_LIST")return!1;let n=t.fieldTypes?.get(e.left.field);if(n===void 0||!Ny.has(n))return!1;let r=t.fieldOptions?.get(e.left.field);return r===void 0?!1:e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))}function Cy(e,t){return!Oy(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function Oy(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 xp(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Ms(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="?!0:(e.op==="<"||e.op===">")&&/^[+-]?\d+$/.test(H(e.right))&&Number.isSafeInteger(e.right.value)}function Gp(e,t){return e.left.type!=="FIELD"||e.left.field==="$id"||!Ms(e.left,t)||e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0?!1:e.right.values.every(n=>n.type==="STRING"&&n.value!=="")}function Ms(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function br(e,t={}){let n=e!==null&&t.extractCondition!==!1?Kn(e,t):null,r=new Set;$n(n,r);let i=new Set;return $n(e,i),{condition:n,appliedKlikes:r,allKlikes:[...i]}}function Vn(e,t={}){let r={allowKlike:e.joins.every(p=>p.type==="INNER"),allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=br(e.where,{...r,extractCondition:i&&o,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;if(e.where!==null)for(let p of e.joins){if(!p.table.alias||p.table.subtableCode||p.table.cteName!==null)continue;let u=Kn(e.where,{...r,tableAlias:p.table.alias,fieldTypes:t.fieldTypesByApp?.get(p.table.appId),fieldOptions:t.fieldOptionsByApp?.get(p.table.appId)});u!==null&&l.set(p.table.alias,u)}let c=new Set(a.appliedKlikes);for(let p of l.values())$n(p,c);return{mainCondition:s,joinConditions:l,appliedKlikes:c,allKlikes:a.allKlikes}}function Fs(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function $n(e,t){if(e!==null){if(Ft(e)){t.add(e);return}switch(e.type){case"LOGICAL":$n(e.left,t),$n(e.right,t);return;case"NOT":case"GROUP":$n(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function mo(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=ye(t.where);if(l.length===0||!Dy(l,a)||o===null||!Kp(o,l))return null;let c={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:_y(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 Ly(p,e,l),p}function Ly(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(!Kp(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function ye(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"&&Ze(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function _y(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Ze(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Ze(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 Dy(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Kp(e,t){let n=new Map;for(let r of t){if(!Ze(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 le=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function Bp(e){$p(e)}function Gs(e){if(Fs(e).length>0)throw new le("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 $p(e){switch(e.type){case"SELECT":Wn(e);return;case"UNION":Bs(e);return;case"WITH":Vp(e);return;case"EXPLAIN":$p(e.query);return;case"CREATE_TEMP_TABLE":Ks(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":an(e);return;case"UPDATE":if(e.applyBlocks?.length&&!ht(e.where)&&Te(e.where)){xs(e.where),an(e);return}if(Bt(e)&&e.subtableCode)throw new le("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&&Te(e.where)&&!ky(e,e.where)){xs(e.where),an(e);return}if(Bt(e))throw new le("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(Bt(e)&&e.subtableCode)throw new le("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&&Te(e.where)){xs(e.where),an(e);return}if(Bt(e))throw new le("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(Bt(e))throw new le("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Bt(e))throw new le("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Bt(e))throw new le("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(Bt(e))throw new le("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 xs(e){ho(e,t=>{if(!Ft(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new le("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 le("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 Ks(e){e.type==="SELECT"?Wn(e):e.type==="UNION"?Bs(e):Vp(e)}function Bs(e){Ks(e.left),Wn(e.right)}function Vp(e){if(Gt(e)){Wn(Kt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?Wn(t.query):t.query.type==="UNION"&&Bs(t.query);Ks(e.query)}function Wn(e){if(Uy(e),Te(e.where)&&!($e(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Vn(e,{allowUnresolvedVariables:!0});if(Fs(n).length===0){an(e);return}if(vy(e)){an(e);return}throw new le("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")}an(e)}function vy(e){return e.where!==null&&ye(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function Uy(e){ho(e,t=>{if(!Ft(t))return;if(!Ao(e.where,t))throw new le("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 le("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 le("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 an(e){So(e,t=>{t.type==="SELECT"&&Wn(t)},!0)}function Bt(e){let t=!1;return So(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function ky(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 Ao(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Ao(e.left,t)||Ao(e.right,t);case"NOT":case"GROUP":return Ao(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function ho(e,t){if(Array.isArray(e)){for(let r of e)ho(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&&My(r)||ho(r,t)}function So(e,t,n=!1){if(Array.isArray(e)){for(let i of e)So(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))So(i,t)}function My(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Nr=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 Wp(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(Fy(t))throw new Nr;return;default:return}}function Fy(e){let t=!1;return To(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||xy(n.where)&&(t=!0)}),t}function xy(e){let t=!1;return To(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function To(e,t){if(Array.isArray(e)){for(let r of e)To(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))To(r,t)}function $t(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 Io(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 $t(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return $t(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 $t(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return $t(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return $t(e,t,3,3);case"REGEXP_REPLACE":return $t(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return $t(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return $t(e,t,0,0)}}var Wt=1e4,ee=e=>new Error(`ArgumentError: ${e}`),Gy=e=>e.type==="VARIABLE",Vt=e=>e?.type==="STRING"&&e.fromVariable===!0;function Ky(e){return e.type==="NUMBER"?Number(H(e)):e.value}function wo(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 $s(e){let t=wo(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 By(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw ee("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 Yp(e){let t=e.trim(),n=/^([+-]?\d+)\s+(day|days)$/i.exec(t);if(!n)throw/^[+-]?\d+\s+\S+$/i.test(t)?ee("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day \u307E\u305F\u306F days \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):ee("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 \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let r=Number(n[1]);if(!Number.isSafeInteger(r))throw ee("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 ee("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306B 0 day \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return r}function Pr(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 Cr(e){let t=Se(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 jp(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Hp(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 qp(e){if(e.args.length<2||e.args.length>3)throw ee("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(m=>Ky(m));["start","stop","step"].forEach((m,A)=>{if(t[A]==="")throw ee(`GENERATE_SERIES \u306E ${m} \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"?wo(n):null,c=typeof r=="string"?wo(r):null,p=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(jp))throw ee("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"&&!(Vt(o)&&Vt(a)&&Pr(n)!==null&&Pr(r)!==null)){if(!l||!c)throw ee(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 ee("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 \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let m=i===void 0?1:Yp(i),A=n,h=r;return{kind:"DATE",start:A,stop:h,step:m,rowCount:Hp($s(A),$s(h),m)}}let d=o.type==="NUMBER"?Cr(o):Vt(o)?Pr(n):null,f=a.type==="NUMBER"?Cr(a):Vt(a)?Pr(r):null;if(d===null||f===null)throw(o.type==="NUMBER"||Vt(o))&&(a.type==="NUMBER"||Vt(a))?ee("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):ee("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 R=i===void 0?1:s?.type==="NUMBER"?Cr(s):Vt(s)?Pr(i):null;if(R===null)throw s?.type==="NUMBER"||Vt(s)?ee("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):ee("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 \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=d,g=f,y=R;if(y===0)throw ee("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:g,step:y,rowCount:Hp(E,g,y)}}function $y(e){if(e.args.length<2||e.args.length>3)throw ee("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(Gy)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw ee(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&Cr(o)===null)throw ee("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(jp(o.value))throw ee("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)&&wo(o.value)===null)throw ee("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=Cr(n);if(r===null)throw ee("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 ee("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else n?.type==="STRING"&&Yp(n.value);return null}let t=qp(e);if(t.rowCount>Wt)throw ee(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Wt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function zp(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=$y(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>Wt)throw ee(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${Wt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Vs(e){let t=qp(e);if(t.rowCount>Wt)throw ee(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Wt} \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 ee("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=$s(t.start);for(let i=0;i<t.rowCount;i++)n.push(By(r+i*t.step))}return{...t,values:n}}function et(e){Vy(e),Wp(e),Bp(e),zp(e)}function Vy(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;Io(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var bo=16,Jp=64,ne=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function Or(e,t,n){if(Array.isArray(e)){for(let r of e)Or(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))Or(a,t,n)}}var Wy=new Set(["=","!=","<>",">","<",">=","<="]);function Ws(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Ws(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"){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&&Wy.has(String(r.op));Ws(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?c:o?n:!1)}}}function Hy(e){let t=e.type==="EXPLAIN"?e.query:e;return kt(t.type)||t.type==="VALIDATE"}function Hs(e){if(Array.isArray(e)){for(let t of e)Hs(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Us(e);for(let n of Object.values(t))Hs(n)}}function Ys(e){if(e.length===0)throw new ne("ArgumentError: SQL is empty.",0);if(e.forEach((u,d)=>{try{Hs(u)}catch(f){throw f instanceof Error?new ne(f.message,d):f}try{kn("phase15b",u),et(u)}catch(f){throw f instanceof le||f instanceof Nr?new ne(f.message,d):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new ne(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 ne(`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 ne(`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 C=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 ne(C,d)}let R=eo(u),E=[],g=[],y=new Set,m=new Set,A=new Set,h=[];Ws(u,h);let b=new Set;for(let C of h){let I=o.get(C.name);if(I===void 0)throw new ne(`ParseError: variable @${C.name} is not defined before statement ${d+1}.`,d);if(I.kind==="scalar"&&C.kind==="array-in-list")throw new ne(`ParseError: scalar variable @${C.name} cannot be used as IN @${C.name}; use IN (@${C.name}) instead.`,d);if(I.kind==="array"&&C.kind!=="array-in-list")throw new ne(`ParseError: array variable @${C.name} can only be used as IN @${C.name}.`,d);if(I.relativeDate&&Hy(u))throw new ne(`ArgumentError: RELATIVE_DATE variable @${C.name} cannot be used in DML or VALIDATE statements.`,d);if(I.relativeDate&&!C.relativeDateAllowed)throw new ne(`ArgumentError: RELATIVE_DATE variable @${C.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,d);b.has(C.name)||(I.referencedBy.push(d),b.add(C.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new ne(`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>Jp)throw new ne(`ParseError: batch exceeds ${Jp} variables.`,d)}u.type==="CREATE_TEMP_TABLE"?Or(u.query,y,m):u.type==="DROP_TEMP_TABLE"||Or(u,y,m);let w=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let C=new Set,I=new Set;Or(u.select,C,I),w=C.size>0&&I.size===0}for(let C of y){let I=t.get(C);if(I===void 0)throw new ne(`ParseError: temp table ${C} is not defined in this batch.`,d);A.add(I)}if(f){let C=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(P=>P.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(P=>P.kind==="FIELD"?[P.field]:P.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(P=>P.field)]:"fields"in u?u.fields:[],I=JSON.stringify(C),L=t.get(f);if(L===void 0){if(t.set(f,d),n.set(f,I),r.push(f),E.push(f),t.size>bo)throw new ne(`ParseError: batch exceeds ${bo} temp tables.`,d)}else{if(n.get(f)!==I)throw new ne(`ParseError: validation error table ${f} has a different payload schema.`,d);A.add(L)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new ne(`ParseError: temp table ${u.name} is already defined.`,d);if(t.set(u.name,d),r.push(u.name),E.push(u.name),t.size>bo)throw new ne(`ParseError: batch exceeds ${bo} temp tables.`,d)}if(u.type==="DROP_TEMP_TABLE"){let C=t.get(u.name);if(C===void 0)throw new ne(`ParseError: temp table ${u.name} is not defined in this batch.`,d);A.add(C),g.push(u.name),t.delete(u.name)}i.push({index:d,statementType:R,isDml:gs(u),isReadOnly:_n(u),hasWhere:Zc(u),insertValuesCount:ep(u),appIds:[...m].sort((C,I)=>C-I),tempTablesCreated:E,tempTablesReferenced:[...y],tempTablesDropped:g,dependsOn:[...A].sort((C,I)=>C-I),tempOnlySource:w,targetAppId:kt(R)&&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:Xc(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 No=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"],["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 Le=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"}},Ht=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(Hn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(js(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Le(`\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 Le("\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 Le("\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&&Hn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Hn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Hn(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||!Hn(this.input[this.pos]))throw new Le("\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&&Hn(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&&Xp(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=No.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(!js(n))throw new Le("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Xp(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Le(`@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 Le("\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 Le("\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";(()=>{async function De(e,t,n,r,i={}){let o=i.pageSize??kg,a=Math.max(1,i.parallel??Mg),s=i.maxRecords??xg,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,R=`\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`,E=0,g=0,y=ep(n,E),m=await Zc(e,t,y,u,o,g);if(Qc(m,i),d.push(...m.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 Ue(R)}if(m.records.length<o)return d;for(g+=o,g>=hs&&(E=tp(m.records),g=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 Ue(R)}let S=p-d.length,A=Math.ceil(S/o),I=Math.max(1,Math.min(a,A)),w=[];for(let _=0;_<I;_++){let C=g+_*o;if(C>=hs)break;w.push(C)}let D=ep(n,E),P=await Promise.all(w.map(_=>Zc(e,t,D,u,o,_)));for(let _ of P)Qc(_,i);let M=!1;for(let _ of P){if(d.push(..._.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 Ue(R)}if(_.records.length<o){M=!0;break}}if(M)break;if(g+=o*w.length,g>=hs){let _=P[P.length-1];E=tp(_.records),g=0}}return d}function Qc(e,t){e.searchAborted&&t.onSearchAborted?.()}function np(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 kg=500,Mg=1,xg=1e4,hs=1e4;async function Zc(e,t,n,r,i,o){let a=Fg(n,i,o);return e({app:t,query:a,fields:r})}function ep(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 Fg(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function tp(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 Ue=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var Gg=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Kg(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 Te(e){let t=Gg.exec(e.trim());if(t===null)return null;let n=Kg(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 Ss(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 rp(e){let t=Te(e);return t===null?null:Ss(t)}function Bg(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 Qi(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Bg(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Zi(e,t){let n=Te(e),r=Te(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Qi(n,r)}var ke="__NO_FROM__";function Ts(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function eo(e){return e.windowKind==="AGGREGATE"}function Is(e){return e.windowKind==="VALUE"}function Ae(e){return{type:"NUMBER",value:Number(e),raw:e}}function j(e){let t=e.raw??String(e.value);return rp(t)??t}function ip(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 $g(e){return`${e.tableAlias??""}\0${e.field}`}function Z(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=$g(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 op(e){return Z(e).type!=="NONE"}function ap(e,t){let n=Z(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 ro(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 Vg(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"}function ws(e){return xt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function kn(e){return!ws(e)&&(Vg(e.type)||xt(e.type))}function sp(e){return kn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var lp=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Ce(e,t){for(let n of t)e.add(n)}function to(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"&&lp.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=>to(i,t)):to(r,t))}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"&&!lp.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=>no(i,t)):no(r,t))}function Mt(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":Ce(t,Un(e));break;case"UNION":Ce(t,cp(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Ce(t,Mt(n.query));Ce(t,Mt(e.query));break;case"CREATE_TEMP_TABLE":Ce(t,Mt(e.query));break;default:break}return to(e)&&t.add("STATISTICAL_AGGREGATE"),no(e)&&t.add("AGGREGATE"),t}function up(e){return Mt(e).size>0}function cp(e){let t=e.left.type==="SELECT"?Un(e.left):cp(e.left);return Ce(t,Un(e.right)),e.all||t.add("DISTINCT"),t}function Un(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=Z(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"&&Ce(t,Un(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Ce(t,vn(i.condition));return Ce(t,vn(e.where)),Ce(t,vn(e.having)),to(e)&&t.add("STATISTICAL_AGGREGATE"),no(e)&&t.add("AGGREGATE"),t}function vn(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")&&Ce(t,Un(e.right.query));break;case"LOGICAL":Ce(t,vn(e.left)),Ce(t,vn(e.right));break;case"NOT":case"GROUP":Ce(t,vn(e.expr));break;case"EXISTS":Ce(t,Un(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function pp(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function dp(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 io=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),rn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),yr=new Set([...rn,...io]),on="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",St="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function ne(e){return io.has(e)}function Mn(e){return rn.has(e)}function Qe(e){return yr.has(e)}var Wg=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})}),Ps=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 q(e){throw new Error(`UnsupportedError: APPLY ${mr} scope does not support ${e}`)}function Hg(e,t){let n=mr;mr=e;try{return t()}finally{mr=n}}function Yg(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 Gn(e,t){return Hg(e,()=>jg(t,Wg[e]))}function jg(e,t){let n=Yg(e);if(n===null)return;if(n.type==="UPSERT"){zg(n,t);return}let r=n.applyBlocks;if(bs(r),!t.multipleBlocks&&r.length!==1&&q("multiple APPLY blocks in this phase"),n.type==="INSERT"){Jg(n,r,t);return}let i=n;i.subtableCode&&q("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&q("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&q("REJECT LIMIT in this phase"),Xg(i.where,t.multipleParents),Ep(r,t)}function Ep(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||q(`${r.kind} in this phase`);Rp(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)oo(i,"APPEND targets");Fn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&fp(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.assignments.length===0&&q("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(".")&&q("parent or qualified PATCH targets in this phase")}Fn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&fp(r.selector.where,t.idxSelectors)}}}}function Rp(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 qg=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function gp(e,t){if(Rp(e),e.targetKind==="MULTI_VALUE"){if(!qg.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 bs(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 zg(e,t){t.upsert||q("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];bs(n),bs(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&q("multiple APPLY blocks in this phase"),yp(n,"UPSERT ON INSERT"),Ep(r,{...t,idxSelectors:!1,expectRows:!1})}function yp(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&q(`${r.kind} for ${t} in this phase`);for(let i of r.fields)oo(i,"APPEND targets");Fn(r.values,"APPEND values")}}function Jg(e,t,n){n.insert||q("INSERT in this phase"),e.subtableCode&&q("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&q("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase"),yp(t,"INSERT")}function Tt(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 ao(e,t){let n=Ps[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Cs(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${xn(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 ${xn(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 ${xn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Tt(t.where))throw new Error(`UnsupportedError: APPLY ${xn(e)} execution does not support multiple-parent APPLY`)}function Cs(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 mp(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Tt(t.where))&&!Ps[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${xn(e)} public multiple-parent write is not connected`)}function Kn(e){if(!Ps[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${xn(e)} internal prepared write is not available`)}function xn(e){return`Phase ${e.slice(5)}`}function Xg(e,t){Tt(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&q("a parent $id that is not a positive safe integer in this phase"),t||q("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),Ns(e,t))}function Ns(e,t){if(Array.isArray(e)){for(let o of e)Ns(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")&&q("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&q("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&q("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)&&q("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&ne(n.name))&&q("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))Ns(o,t)}function fp(e,t){Fn(e,"child row selectors",t)}function Fn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Fn(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")&&q(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&q(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&q(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&ne(r.name))&&q(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&q(`qualified or parent field references in ${t}`),oo(l,t,n)}if(i==="FIELD_REF"&&oo(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Fn(s,t,n)}function oo(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&q(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&q(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&q(`aggregate expressions in ${t}`)}function Ar(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Qg(e.op);if(t===null)throw new se(`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:Ar(e.left),right:Ar(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Ar(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Qg(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 Ap(e){return e.includes("%")||e.includes("_")}function hr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function Gt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function Ft(e){if(e===null)return!1;if(hr(e))return!0;switch(e.type){case"LOGICAL":return Ft(e.left)||Ft(e.right);case"NOT":case"GROUP":return Ft(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Ie(e){if(e===null)return!1;if(Gt(e))return!0;switch(e.type){case"LOGICAL":return Ie(e.left)||Ie(e.right);case"NOT":case"GROUP":return Ie(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Y(e){switch(e.type){case"BINARY":return Zg(e);case"NULL_CHECK":return ty(e);case"LOGICAL":return ny(e);case"NOT":return ry(e);case"GROUP":return iy(e);case"EXISTS":throw new se("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new se("internal error: BOOLEAN predicate reached kintone query conversion")}}function Zg(e){if(hr(e))throw new se("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=Sp(e.left),n=ey(e.op),r=oy(e.right,e.op);return`${t} ${n} ${r}`}function ey(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 ty(e){let t=Sp(e.field);return e.not?`${t} != ""`:`${t} = ""`}function ny(e){let t=Y(e.left),n=Y(e.right),r=e.op==="AND"?"and":"or",i=hp(e.left)?`(${t})`:t,o=hp(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function ry(e){return Y(Ar(e.expr))}function iy(e){return`(${Y(e.expr)})`}function Sp(e){if(e.type==="FUNC_FIELD")throw new se(`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 se("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 se("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 se("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 se("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return fy(e.field)}function oy(e,t){switch(e.type){case"VARIABLE":throw new se(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new se(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Tp(e);case"NUMBER":return j(e);case"KINTONE_FUNC":return Ip(e);case"IN_LIST":return py(e,t);case"ARITH_VALUE":throw new se("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 se("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 se("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new se("\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 se("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Tp(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Ip(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return ay(e)}function ay(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Sr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!uy(e.args.offset,e.args.offsetText)||!sy.has(e.args.unit)?Sr():`${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&&!ly.has(e.args.weekday)?Sr():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"||!cy(e.args.day)?Sr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Sr()}var sy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),ly=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function uy(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function cy(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Sr(){throw new se("internal error: invalid relative date function AST reached kintone query conversion")}function py(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new se("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return dy(e.values),`(${e.values.map(r=>r.type==="STRING"?Tp(r):r.type==="NUMBER"?j(r):Ip(r)).join(",")})`}function dy(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new se(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function fy(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function hp(e){return e.type==="LOGICAL"}var se=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function so(e){return`'${e.replace(/'/g,"''")}'`}function Bn(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 j(e);if(e.type==="STRING_FUNC")return Ls(e);let n=`${Bn(e.left)}${e.op}${Bn(e.right)}`;return t?n:`(${n})`}function wp(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Ls(e.expr);if(e.type==="AGG_FIELD")return ut(e.expr);if(e.type==="ARITH_FIELD")return Bn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Os(e.expr)}function Np(e){switch(e.type){case"STRING":return so(e.value);case"NUMBER":return j(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=>so(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Np).join(",")})`;case"ARITH_VALUE":return Bn(e.expr);case"CASE_VALUE":return Os(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Tr(e){switch(e.type){case"BINARY":return`${wp(e.left)} ${e.op.replace("_"," ")} ${Np(e.right)}`;case"NULL_CHECK":return`${wp(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Tr(e.left)} ${e.op} ${Tr(e.right)})`;case"NOT":return`NOT (${Tr(e.expr)})`;case"GROUP":return`(${Tr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function bp(e){return e.type==="ARRAY"?`[${e.elements.map(t=>so(t.value)).join(",")}]`:e.type==="AGG_REF"?Ee(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?ut(e):e.type==="FIELD_REF"||e.type==="ARITH"?Bn(e):an(e)}function Os(e){let t=e.branches.map(r=>`WHEN ${Tr(r.condition)} THEN ${bp(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${bp(e.elseResult)}`;return`CASE ${t}${n} END`}function Ey(e){return e.type==="AGG_REF"?Ee(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?ut(e):an(e)}function Ls(e){return`${e.func}(${e.args.map(Ey).join(",")})`}function an(e){switch(e.type){case"STRING":return so(e.value);case"NUMBER":return j(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Ls(e);case"CASE_WHEN":return Os(e);case"SCALAR_ARITH":return`(${an(e.left)}${e.op}${an(e.right)})`;case"CONCAT_OP":return`(${an(e.left)}||${an(e.right)})`}}function Ry(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Bn(e,!0):an(e)}function Ee(e,t,n){let r=Ry(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function ut(e){return e.type==="NUMBER"?j(e):e.type==="AGG_REF"?Ee(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${ut(e.left)}${e.op}${ut(e.right)}`}var Pp=Symbol("ksql.groupingRowMeta"),Cp=new WeakMap;function _s(e,t){return Object.defineProperty(e,Pp,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Ds(e){return e[Pp]}function gy(e){return Ds(e)?.includedCanonicalIds}function Op(e,t){Cp.set(e,t)}function $n(e,t){let n=gy(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Cp.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var lo=["$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 vs(e){return e.startsWith("_")||e.startsWith("$")}var yy=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function ks(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ks);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"?yy.test(t.field):Object.values(t).some(ks)}function my(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 Be(e)||ks(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Ay=["_pid","_rid","_idx"];function Us(e){return[...new Set(e)]}function hy(e){switch(e.kind){case"APP":return Us([...e.fieldCodes,...lo]);case"SUBTABLE":return Us([...e.childFieldCodes,...Ay,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Us(e.columns)}}function Lp(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:hy(t(r,i))}))}function _p(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 Dp(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function vp(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?_p(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:Dp(a,r.fieldCode)}}function Sy(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Ty(e,t,n){let r=_p(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:Dp(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,c)=>Sy(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=my(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&&Ee(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Up(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Ty(r.name,t,n):{kind:"EXPRESSION"})}}var Iy="B65_NON_GROUPED_DEPENDENCY",xs=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 uo(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 Fs(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return uo(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?uo(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function Gs(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function Mp(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function xp(e){return e.type==="WINDOW_COL"}function wy(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function Kt(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=>Kt(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"||Gs(n))return null;if(r==="GROUP"&&n.expr!==void 0)return Kt(n.expr,t);let i=typeof r=="string"?xs.get(r):void 0;if(i!==void 0)return Kt(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:${wy(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Fs(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=Kt(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 by(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Ny(e){let t=new Map;for(let n of e){let r=by(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function Ks(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var Py=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function co(e){if(e&&typeof e=="object"){let t=e,n=Fs(t);if(n!==null)return Ks(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"?xs.get(t.type):void 0;if(i!==void 0){let a=co(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function kp(e,t,n,r){let i=n==="WILDCARD"?"wildcard":Ks(n),o=co(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=${Iy})`)}function sn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)sn(a,t);return}let n=e;if(Gs(n)||Mp(n)||xp(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 kp(t.clause,t.expression,"WILDCARD",t.policy);let r=Fs(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&Py.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=t.aliases.get(r.field)??[];if(l.length===1&&!t.resolvingAliases.has(r.field)){let c=new Set(t.resolvingAliases);c.add(r.field),sn(l[0],{...t,resolvingAliases:c});return}}let a=Kt(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 kp(t.clause,t.expression,r,t.policy);return}let i=Kt(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?xs.get(n.type):void 0;if(o!==void 0){sn(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||sn(n[a],t)}function Ir(e,t){let n=Ny(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&sn(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&sn(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"?uo(r.key.name):r.key;sn(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function Ms(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ms);let t=e;return Gs(t)||xp(t)?!1:Mp(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Ms)}function Vn(e){return Z(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Ms(t))}function Cy(e){return e.type==="FIELD_NAME"?uo(e.name):e.expr}function Fp(e,t,n){let r=Z(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let R=vp(f,n);if(R.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${R.name} is ambiguous across multiple sources.`);return R.kind==="UNKNOWN"?`unknown:${R.name}`:`source:${R.sourceIndex}:${R.fieldCode}`},a=new Set;t.items.forEach((f,R)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let E=Kt(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=Kt(Cy(i[R]),o);E!==null&&a.add(E)}});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:co(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,R)=>f.type==="FIELD_NAME"&&t.items[R]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:c,groupingLabel:p,migrationSourceSql:u,migrationGroupingFields:d}}function po(e){if(Z(e).type!=="NONE"||!Vn(e))return;let t={identities:new Set,resolveField:n=>`ast:${Ks(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};Ir(e,t)}function Gp(e){return`FIELD:${e}`}var Kp=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 Bs(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function $e(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>$e(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=>$e(r,t))}}function Ro(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Ro(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){$e(n.arg,t);return}Object.values(n).forEach(r=>Ro(r,t))}}function Be(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Be);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(Be)}function Oy(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?Be(e):!1}function Ly(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${Bs(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${Bs(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Op(e,r.canonicalId)}function $s(e){let t=Z(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&$e(i,n);$e(e.having,n),$e(e.orderBy,n);let r=[];$e(e.where,r),$e(e.joins,r),Ro(e.columns,r),Ro(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&$e(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.");po(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 Bp(e,t,n=()=>{}){$s(e);let r=Z(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&$e(c,i);if($e(e.having,i),$e(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=ap(e,t),a=new Set,s=[];for(let c of o.allItems){let p=c;if(!p.physical)throw new Error(`ArgumentError: grouping item ${Bs(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)Ly(c,t,a);Ir(e,{identities:new Set([...a].map(Gp)),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(!Oy(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 _y(e){return e.some(t=>t.type==="WINDOW_COL")}function Ve(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||Z(e).type!=="NONE"||e.distinct||_y(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Be(t.expr)||t.type==="STRFUNC_COL"&&Yp(t.expr)||t.type==="SCALAR_VALUE_COL"&&br(t.expr))||It(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function It(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return $p(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||hr(e);case"NULL_CHECK":return $p(e.field);case"LOGICAL":return It(e.left)||It(e.right);case"NOT":case"GROUP":return It(e.expr);case"EXISTS":return!0}}function $p(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function yo(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(Y(e.where)),e.orderBy.length>0){let i=e.orderBy.map(Dy).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:vy(e.columns),totalCount:!1}}function Hp(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!It(e.where)&&n.push(Y(e.where)),{app:t,query:n.join(" "),fields:[]}}function ln(e,t,n){let i=qp(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 Dy(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 vy(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(mo(r.field)):r.type==="ARITH_COL"?wr(r.expr,n):r.type==="STRFUNC_COL"?Vs(r.expr,n):r.type==="SCALAR_VALUE_COL"&&Wn(r.expr,n);return[...new Set(n)]}function Uy(e,t){wr(e.left,t),wr(e.right,t)}function wr(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(mo(e.field)):e.type==="ARITH"?Uy(e,t):e.type==="STRING_FUNC"&&Vs(e,t)}function mo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Vs(e,t){for(let n of e.args)ky(n,t)}function ky(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){go(e,t);return}Wn(e,t)}function Wn(e,t){if(e.type==="FIELD"){t.push(mo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Vs(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Wn(e.left,t),Wn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Vp(n.result,t);e.elseResult&&Vp(e.elseResult,t)}}function Vp(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){go(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){wr(e,t);return}Wn(e,t)}}function go(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&My(e.arg,t);return}e.type==="AGG_ARITH"&&(go(e.left,t),go(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(mo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function My(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?wr(e,t):Wn(e,t)}function Yp(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"?Yp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?br(e.left)||br(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Wp(t.result))||e.elseResult!==null&&Wp(e.elseResult):!1}function Wp(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 jp(e,t){let n=new Set,r=qp(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function qp(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=xy(e.columns),u=h=>{let N=a.get(h);N&&(N.allFields=!0,N.fields.clear())},d=()=>{for(let h of o)u(h)},f=()=>{for(let h of o)h.subtableCode&&u(h)},R=(h,N)=>{let U=a.get(h);if(!(!U||U.allFields)){if(h.subtableCode){if(N.startsWith("_p.")){let O=N.slice(3);O&&O!=="*"&&U.fields.add(O);return}return void 0}N&&U.fields.add(N)}},E=(h,N="select",U)=>{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 H=c.get(F);if(H){u(H);return}return}if(N==="groupBy"&&U!==void 0){if(U.kind==="PHYSICAL"){let F=r[U.sourceIndex];F&&(n||F.cteName===null)&&R(F,U.fieldCode)}return}if((N==="orderBy"||N==="having"||N==="groupBy")&&p.has(h)||(N==="orderBy"||N==="having"||N==="groupBy")&&Fy(h))return;let O=h.indexOf(".");if(O>0){let F=h.slice(0,O),H=h.slice(O+1);if(F==="_p"){l&&R(l,`_p.${H}`);return}let z=c.get(F);if(z){R(z,H);return}if(n)return}n?n.unqualified.add(h):s&&R(s,h)},g=(h,N,U="select")=>{if(N){if(N==="_p"){l&&R(l,`_p.${h}`);return}let O=c.get(N);if(O){R(O,h);return}if(n)return}E(h,U)},y=(h,N="select")=>{if(h.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${h.name} reached source-aware field collection.`);if(h.type==="FIELD_REF"){E(h.field,N);return}if(h.type==="ARITH"){y(h.left,N),y(h.right,N);return}if(h.type==="STRING_FUNC"){A(h,N);return}},m=(h,N="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&w(h.arg,N);return}h.type==="AGG_ARITH"&&(m(h.left,N),m(h.right,N)),h.type==="AGG_GROUP_KEY"&&g(h.field,h.tableAlias??null,N)},S=(h,N="select")=>{if(h.type==="AGG_REF"||h.type==="AGG_ARITH"||h.type==="AGG_GROUP_KEY"||h.type==="VARIABLE"){m(h,N);return}I(h,N)},A=(h,N="select")=>{for(let U of h.args)S(U,N)},I=(h,N="select")=>{if(h.type==="FIELD"){g(h.field,h.tableAlias,N);return}if(h.type==="STRING_FUNC"){A(h,N);return}if(h.type==="SCALAR_ARITH"||h.type==="CONCAT_OP"){I(h.left,N),I(h.right,N);return}h.type==="CASE_WHEN"&&P(h,N)},w=(h,N="select")=>{if(h.type==="FIELD_REF"||h.type==="ARITH"){y(h,N);return}I(h,N)},D=(h,N="select")=>{if(h.type!=="ARRAY"){if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){m(h,N);return}if(h.type==="FIELD_REF"||h.type==="ARITH"){y(h,N);return}I(h,N)}},P=(h,N="select")=>{for(let U of h.branches)C(U.condition,N),D(U.result,N);h.elseResult&&D(h.elseResult,N)},M=(h,N="select")=>{if(h.type==="FIELD"){if(h.aggregateRef){m(h.aggregateRef,N);return}g(h.field,h.tableAlias,N);return}if(h.type==="FUNC_FIELD"){A(h.expr,N);return}if(h.type==="AGG_FIELD"){m(h.expr,N);return}if(h.type==="ARITH_FIELD"){y(h.expr,N);return}h.type!=="GROUPING_FIELD"&&P(h.expr,N)},_=(h,N="select")=>{if(h.type==="ARITH_VALUE"){y(h.expr,N);return}if(h.type==="CASE_VALUE"){P(h.expr,N);return}},C=(h,N="where")=>{if(h)switch(h.type){case"BINARY":M(h.left,N),_(h.right,N);return;case"NULL_CHECK":M(h.field,N);return;case"LOGICAL":C(h.left,N),C(h.right,N);return;case"NOT":case"GROUP":C(h.expr,N);return;case"EXISTS":case"BOOLEAN":return}},k=(h,N)=>{if(h.type==="FIELD_NAME"){E(h.name,"groupBy",N);return}if(h.type==="ARITH_KEY"){y(h.expr,"groupBy");return}A(h.expr,"groupBy")},b=(h,N="orderBy")=>{if(h.type==="FIELD_NAME"){E(h.name,N);return}if(h.type==="ARITH_KEY"){y(h.expr,N);return}h.type!=="GROUPING_KEY"&&A(h.expr,N)};for(let h of e.columns)switch(h.type){case"WILDCARD":d();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(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"&&w(h.arg,"select");break;case"ARITH_AGG_COL":m(h.expr,"select");break;case"ARITH_COL":y(h.expr,"select");break;case"CASE_COL":P(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"&&w(h.arg,"select");for(let N of h.partitionBy)g(N.field,N.tableAlias,"select");for(let N of h.orderBy)b(N.key,"select");break}for(let h of e.joins)h.type!=="CROSS"&&(g(h.on.left.field,h.on.left.tableAlias,"where"),g(h.on.right.field,h.on.right.tableAlias,"where"));C(e.where,"where");let v=Z(e);if(v.type==="PLAIN")v.allItems.forEach((h,N)=>k(h,t?.items[N]));else if(v.type==="GROUPING_SETS")for(let h of v.allItems)g(h.field,h.tableAlias,"select");C(e.having,"having");for(let h of e.orderBy)b(h.key);return a}function xy(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(Ee(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 Fy(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function Bt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||Ve(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||op(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function $t(e){let t=e.ctes[0].query,n=e.query,r=Ao(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 Ao(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:zp(e.left,t)};case"NULL_CHECK":return{...e,field:zp(e.field,t)};case"LOGICAL":return{...e,left:Ao(e.left,t),right:Ao(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Ao(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function zp(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var Gy=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Ky=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ee(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":Ky.has(e.fieldType)?t="option":Gy.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 G(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function Hn(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 We=["=","!=",">","<",">=","<="],By=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),$y=new Set(We),Vy=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"])]]),Wy=new Map([["TODAY",new Set(We)],["NOW",new Set(We)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Hy=["=","!=","in","not in"],Yy=new Map([["RECORD_NUMBER",new Set([...We,"in","not in"])],["__ID__",new Set([...We,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(We)],["UPDATED_TIME",new Set(We)],["DATE",new Set(We)],["TIME",new Set(We)],["DATETIME",new Set(We)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...We,"in","not in"])],["CALC",new Set([...We,"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(Hy)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),jy=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"])]]),Hs=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"]),Qp=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function To(e){return Yy.get(e)??new Set}function Zp(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"&&Hs.has(o.fieldType)&&To(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 ye(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Pr(e,t)}function Pr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return qy(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ws():Xy(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Ws();case"GROUP":return Pr(e.expr,t);case"NOT":{let n=Pr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:td(n.reasons)?Or({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Pr(e.left,t),r=Pr(e.right,t);return Zy(e.op,n,r)}}}function qy(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ne(n.name))return zy(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Jp(n))return Xp(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?Xp(e,t,p[0],r):So("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Cr(e))}if(t.type!=="FIELD")return Ws();let i=r(t);if(!i)return Yn("WHERE_FIELD_UNRESOLVED",t.field,void 0,Cr(e));let o=Cr(e);if(!ed(i.fieldType,o))return Yn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Qy(i.fieldType,e))return Yn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=To(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Jp(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 Jp(e){return e.type==="KINTONE_FUNC"&&rn.has(e.name)}function Xp(e,t,n,r){let i=Cr(e),o=n.name;if(!rn.has(o)||t.type!=="FIELD")return So("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Vy.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?So("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):Wy.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:So("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function zy(e,t,n,r){let i=Cr(e),o=n.name;if(t.type!=="FIELD")return Nr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Jy(n)?$y.has(i)?!By.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Nr("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}]}:Nr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Nr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Nr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Jy(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 Xy(e,t,n){let r=n(e);return r?ed(r.fieldType,t)?!Hs.has(r.fieldType)&&!Qp.has(r.fieldType)?Yn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:Yn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):Yn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function ed(e,t){let n=jy.get(e);return n===void 0||n.has(t)}function Qy(e,t){return Hs.has(e)?!0:Qp.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Cr(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 Zy(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Or({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")?Or({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Or({capability:"LOCAL_ONLY",reasons:r})}function Ws(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Yn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function So(e,t,n,r,i){return Or({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Nr(e,t,n,r,i){return nd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function td(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ne(t.functionName))}function em(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&rn.has(t.functionName))}function nd(e){if(e.capability==="EXACT_PUSHDOWN"||!td(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 tm(e){if(e.capability==="EXACT_PUSHDOWN"||!em(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&&rn.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 Or(e){return tm(nd(e))}function Lr(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 Io(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function wo(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Lr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function bo(e){let t=e.raw??String(e.value),n=Te(t);if(n===null)return!1;if(n.sign===0)return j(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=Ss(n);return j(e)===o}var nm=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),rm=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),im=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),om=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function No(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"?im.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?sm(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?am(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"&&bo(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&bo(e.right)?"exact":"unsafe":rm.has(r)?Ys(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?Ys(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||om.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Lr(e.right.value)?"exact":"unsafe":r==="TIME"?Io(e.right.value)?"exact":"unsafe":wo(e.right.value)?"exact":"unsafe":nm.has(r)?!Ys(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 rd(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 Ys(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 am(e){let t=n=>n.type==="NUMBER"&&bo(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 sm(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function js(e,t={}){return Lo(e,t).condition}function Lo(e,t={}){return Po(e,n=>lm(n,t))}function _r(e,t={}){return Co(e,n=>rd(n,r=>Oo(r,t)))}function Po(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=Po(e.left,t),r=Po(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 Po(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function Co(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Co(e.left,t),r=Co(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return Co(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function lm(e,t){if(um(e,t)||cm(e,t))return"exact";if(e.left.type!=="FIELD"||!Oo(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||ye(e,i=>{if(!Oo(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ee({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":No(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function um(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Oo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function cm(e,t){return!pm(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function pm(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 Oo(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function Dr(e,t={}){let n=e!==null&&t.extractCondition!==!1?Lo(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;jn(r,o);let a=new Set;return jn(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function un(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=Dr(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=Lo(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())jn(u,p);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:c,appliedKlikes:p,allKlikes:a.allKlikes}}function qs(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function jn(e,t){if(e!==null){if(Gt(e)){t.add(e);return}switch(e.type){case"LOGICAL":jn(e.left,t),jn(e.right,t);return;case"NOT":case"GROUP":jn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function _o(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=he(t.where);if(l.length===0||!Em(l,a)||o===null||!id(o,l))return null;let c={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:fm(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 dm(p,e,l),p}function dm(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(!id(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function he(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"&&Qe(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function fm(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&Qe(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&Qe(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 Em(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function id(e,t){let n=new Map;for(let r of t){if(!Qe(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 ue=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function od(e){ad(e)}function Js(e){if(qs(e).length>0)throw new ue("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 ad(e){switch(e.type){case"SELECT":qn(e);return;case"UNION":Qs(e);return;case"WITH":sd(e);return;case"EXPLAIN":ad(e.query);return;case"CREATE_TEMP_TABLE":Xs(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":cn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Tt(e.where)&&Ie(e.where)){zs(e.where),cn(e);return}if(Vt(e)&&e.subtableCode)throw new ue("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&&Ie(e.where)&&!ym(e,e.where)){zs(e.where),cn(e);return}if(Vt(e))throw new ue("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(Vt(e)&&e.subtableCode)throw new ue("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&&Ie(e.where)){zs(e.where),cn(e);return}if(Vt(e))throw new ue("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(Vt(e))throw new ue("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Vt(e))throw new ue("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Vt(e))throw new ue("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(Vt(e))throw new ue("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 zs(e){vo(e,t=>{if(!Gt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new ue("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 ue("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 Xs(e){e.type==="SELECT"?qn(e):e.type==="UNION"?Qs(e):sd(e)}function Qs(e){Xs(e.left),qn(e.right)}function sd(e){if(Bt(e)){qn($t(e));return}for(let t of e.ctes)t.query.type==="SELECT"?qn(t.query):t.query.type==="UNION"&&Qs(t.query);Xs(e.query)}function qn(e){if(gm(e),Ie(e.where)&&!(Ve(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=un(e,{allowUnresolvedVariables:!0});if(qs(n).length===0){cn(e);return}if(Rm(e)){cn(e);return}throw new ue("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")}cn(e)}function Rm(e){return e.where!==null&&he(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 gm(e){vo(e,t=>{if(!Gt(t))return;if(!Do(e.where,t))throw new ue("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 ue("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 ue("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 cn(e){Uo(e,t=>{t.type==="SELECT"&&qn(t)},!0)}function Vt(e){let t=!1;return Uo(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function ym(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 Do(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Do(e.left,t)||Do(e.right,t);case"NOT":case"GROUP":return Do(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function vo(e,t){if(Array.isArray(e)){for(let r of e)vo(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&&mm(r)||vo(r,t)}function Uo(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Uo(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Uo(i,t)}function mm(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var vr=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 ld(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(Am(t))throw new vr;return;default:return}}function Am(e){let t=!1;return ko(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||hm(n.where)&&(t=!0)}),t}function hm(e){let t=!1;return ko(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function ko(e,t){if(Array.isArray(e)){for(let r of e)ko(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))ko(r,t)}function Wt(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 Mo(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 Wt(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return Wt(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 Wt(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return Wt(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return Wt(e,t,3,3);case"REGEXP_REPLACE":return Wt(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return Wt(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return Wt(e,t,0,0)}}var tl=1e4,Yt=tl,X=e=>new Error(`ArgumentError: ${e}`),Sm=e=>e.type==="VARIABLE",Ht=e=>e?.type==="STRING"&&e.fromVariable===!0;function Tm(e){return e.type==="NUMBER"?Number(j(e)):e.value}function zn(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 Zs(e){let t=zn(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 Im(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw X("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 ud(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)?X("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)?X("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):X("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 X("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 X(`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 Ur(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 kr(e){let t=Te(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 cd(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function xo(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 el(e){return e.year*12+e.month-1}function pd(e,t){if(t==="MONTH"&&e.day!==1)throw X("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 X("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 wm(e,t,n){let r=Zs(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=Zs(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return xo(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=el(t)+(n.coefficient<0&&t.day!==1?1:0);return xo(el(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return xo(e.year,a,n.coefficient)}function dd(e,t,n){if(e<1||e>9999)throw X("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 bm(e){let t=Math.floor(e/12),n=e-t*12+1;return dd(t,n,1)}function fd(e){if(e.args.length<2||e.args.length>3)throw X("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(m=>Tm(m));["start","stop","step"].forEach((m,S)=>{if(t[S]==="")throw X(`GENERATE_SERIES \u306E ${m} \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"?zn(n):null,c=typeof r=="string"?zn(r):null,p=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(cd))throw X("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"&&!(Ht(o)&&Ht(a)&&Ur(n)!==null&&Ur(r)!==null)){if(!l||!c)throw X(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 X("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 m=i===void 0?{coefficient:1,unit:"DAY"}:ud(i);return pd(l,m.unit),{kind:"DATE",start:n,stop:r,step:m.coefficient,dateUnit:m.unit,rowCount:wm(l,c,m)}}let d=o.type==="NUMBER"?kr(o):Ht(o)?Ur(n):null,f=a.type==="NUMBER"?kr(a):Ht(a)?Ur(r):null;if(d===null||f===null)throw(o.type==="NUMBER"||Ht(o))&&(a.type==="NUMBER"||Ht(a))?X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):X("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 R=i===void 0?1:s?.type==="NUMBER"?kr(s):Ht(s)?Ur(i):null;if(R===null)throw s?.type==="NUMBER"||Ht(s)?X("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):X("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 E=d,g=f,y=R;if(y===0)throw X("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:g,step:y,rowCount:xo(E,g,y)}}function Nm(e){if(e.args.length<2||e.args.length>3)throw X("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(Sm)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw X(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&kr(o)===null)throw X("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(cd(o.value))throw X("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)&&zn(o.value)===null)throw X("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=kr(n);if(r===null)throw X("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 X("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=ud(n.value),i=e.args[0];if(i?.type==="STRING"){let o=zn(i.value);o&&pd(o,r.unit)}}return null}let t=fd(e);if(t.rowCount>Yt)throw X(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Yt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function Ed(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=Nm(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>Yt)throw X(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${Yt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Fo(e){let t=fd(e);if(t.rowCount>Yt)throw X(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Yt} \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 X("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=zn(t.start);if(t.dateUnit==="MONTH"){let i=el(r);for(let o=0;o<t.rowCount;o++)n.push(bm(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(dd(r.year+i*t.step,1,1));else{let i=Zs(t.start);for(let o=0;o<t.rowCount;o++)n.push(Im(i+o*t.step))}}return{...t,values:n}}function Ze(e){Pm(e),ld(e),od(e),Ed(e)}function Pm(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;Mo(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var Go=16,Rd=64,re=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function Mr(e,t,n){if(Array.isArray(e)){for(let r of e)Mr(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))Mr(a,t,n)}}var Cm=new Set(["=","!=","<>",">","<",">=","<="]);function nl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)nl(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"){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&&Cm.has(String(r.op));nl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?c:o?n:!1)}}}function Om(e){let t=e.type==="EXPLAIN"?e.query:e;return xt(t.type)||t.type==="VALIDATE"}function rl(e){if(Array.isArray(e)){for(let t of e)rl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&$s(e);for(let n of Object.values(t))rl(n)}}function il(e){if(e.length===0)throw new re("ArgumentError: SQL is empty.",0);if(e.forEach((u,d)=>{try{rl(u)}catch(f){throw f instanceof Error?new re(f.message,d):f}try{Gn("phase15b",u),Ze(u)}catch(f){throw f instanceof ue||f instanceof vr?new re(f.message,d):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new re(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 re(`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 re(`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 D=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 re(D,d)}let R=ro(u),E=[],g=[],y=new Set,m=new Set,S=new Set,A=[];nl(u,A);let I=new Set;for(let D of A){let P=o.get(D.name);if(P===void 0)throw new re(`ParseError: variable @${D.name} is not defined before statement ${d+1}.`,d);if(P.kind==="scalar"&&D.kind==="array-in-list")throw new re(`ParseError: scalar variable @${D.name} cannot be used as IN @${D.name}; use IN (@${D.name}) instead.`,d);if(P.kind==="array"&&D.kind!=="array-in-list")throw new re(`ParseError: array variable @${D.name} can only be used as IN @${D.name}.`,d);if(P.relativeDate&&Om(u))throw new re(`ArgumentError: RELATIVE_DATE variable @${D.name} cannot be used in DML or VALIDATE statements.`,d);if(P.relativeDate&&!D.relativeDateAllowed)throw new re(`ArgumentError: RELATIVE_DATE variable @${D.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,d);I.has(D.name)||(P.referencedBy.push(d),I.add(D.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new re(`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>Rd)throw new re(`ParseError: batch exceeds ${Rd} variables.`,d)}u.type==="CREATE_TEMP_TABLE"?Mr(u.query,y,m):u.type==="DROP_TEMP_TABLE"||Mr(u,y,m);let w=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let D=new Set,P=new Set;Mr(u.select,D,P),w=D.size>0&&P.size===0}for(let D of y){let P=t.get(D);if(P===void 0)throw new re(`ParseError: temp table ${D} is not defined in this batch.`,d);S.add(P)}if(f){let D=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(_=>_.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(_=>_.kind==="FIELD"?[_.field]:_.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(_=>_.field)]:"fields"in u?u.fields:[],P=JSON.stringify(D),M=t.get(f);if(M===void 0){if(t.set(f,d),n.set(f,P),r.push(f),E.push(f),t.size>Go)throw new re(`ParseError: batch exceeds ${Go} temp tables.`,d)}else{if(n.get(f)!==P)throw new re(`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 re(`ParseError: temp table ${u.name} is already defined.`,d);if(t.set(u.name,d),r.push(u.name),E.push(u.name),t.size>Go)throw new re(`ParseError: batch exceeds ${Go} temp tables.`,d)}if(u.type==="DROP_TEMP_TABLE"){let D=t.get(u.name);if(D===void 0)throw new re(`ParseError: temp table ${u.name} is not defined in this batch.`,d);S.add(D),g.push(u.name),t.delete(u.name)}i.push({index:d,statementType:R,isDml:ws(u),isReadOnly:kn(u),hasWhere:pp(u),insertValuesCount:dp(u),appIds:[...m].sort((D,P)=>D-P),tempTablesCreated:E,tempTablesReferenced:[...y],tempTablesDropped:g,dependsOn:[...S].sort((D,P)=>D-P),tempOnlySource:w,targetAppId:xt(R)&&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:up(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 Ko=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 Oe=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"}},jt=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(Jn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(ol(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Oe(`\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 Oe("\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 Oe("\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&&Jn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Jn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Jn(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||!Jn(this.input[this.pos]))throw new Oe("\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&&Jn(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&&gd(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Ko.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(!ol(n))throw new Oe("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&gd(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Oe(`@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 Oe("\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 Oe("\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
|
|
4
|
-
`),Yt=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.tempTableRefs=[];this.aggregateGroupKeyTokens=new WeakMap;this.allowSelectArithVariable=!1}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(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>Zp)throw new T(`batch exceeds ${Zp} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",r)}return this.expect("EOF"),t}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==="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 \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=_r[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&te(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")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=_r[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.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek(),r;if(n.kind==="WITH")r=this.parseWith();else if(n.kind==="SELECT")r=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",n);return{type:"CREATE_TEMP_TABLE",name:t,query:r}}parseDropTempTable(){return 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"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}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;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)}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}=Tt(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}=Tt(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 w=this.parseIdentifier();if(s.has(w))throw new T(`IMPORT target ${w} is declared more than once.`,this.prev());if(s.add(w),this.peek().kind==="("){this.advance();let C=this.parseIdentList();if(this.expect(")"),new Set(C).size!==C.length)throw new T(`IMPORT subtable ${w} contains duplicate child declarations.`,this.prev());let I;if(this.isSoftKeyword("ROW")){this.advance();for(let L of["ID","SOURCE"]){if(!this.isSoftKeyword(L))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}I=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:w,children:C,...I?{rowIdSourceHeader:I}:{}})}else a.push(w),o.push({kind:"FIELD",field:w});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 w=this.parseIdentifier().toUpperCase();if(w!=="UTF8"&&w!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());p=w==="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!==Qe||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(w=>w.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 R="POSITION",E=!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(R="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(),E=!0}}let g,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let w of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(w))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"&&(g=this.parseOnDuplicate());let m;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("("),m=this.parseIdentList(),this.expect(")"),new Set(m).size!==m.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let A=o.filter(w=>w.kind==="SUBTABLE");if(A.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(A.some(w=>w.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(m)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(R!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!m)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let w=new Set(m);for(let C of A){if(!C.rowIdSourceHeader)throw new T(`CSV subtable ${C.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!w.has(C.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${C.subtableCode}.`,this.prev())}for(let C of w)if(!A.some(I=>I.subtableCode===C))throw new T(`REPLACE SUBTABLES target ${C} is not declared in INTO.`,this.prev())}}else if(m)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(R!=="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(g)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 h=this.parseCheckGroups(),b=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:R,ignoreUnknownColumns:E,...d?{columns:d}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...m?{replaceSubtables:m}:{},...g?{keyFields:g}:{},...h,...b}}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}=Tt(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.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(),{type:"ASSERT",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(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};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&&rm(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:Qe},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,R=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(y=>y.type==="WINDOW_COL"),g=r.some(y=>this.selectColumnHasAggregate(y));if(E&&(l.length>0||c!==void 0||g))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:R}}parseWith(){this.expect("WITH");let t=[];do{let r=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():o==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES"?i=this.parseGenerateSeries():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:r,query:i}),this.cteNames.add(r)}while(this.consume(","));let n=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:n}}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({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});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(ge(`${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(qs,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.advance();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());let s=this.parseAliasName();return this.withAliasDisplay({type:"VARIABLE_COL",name:a.value.slice(1).toLowerCase(),alias:s.alias},s)}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 nd[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(Lr[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(qs,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(qs,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"?ge(`-${H(n)}`):{type:"AGG_ARITH",left:ge("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return ge(n.value)}if(this.peek().kind==="VARIABLE")return{type:"VARIABLE",name:this.advance().value.slice(1).toLowerCase()};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),Lr[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 ge(`${n.kind==="-"?"-":"+"}${H(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:ge("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),ge(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};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 ge(`+${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"?ge(`-${H(n)}`):{type:"ARITH",left:ge("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),ge(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};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=zs[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=zs[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(td.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=im(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 Lr[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(!zy(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(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};let{appId:r,subtableCode:i}=Tt(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"?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){return this.consume("INNER")?(this.expect("JOIN"),"INNER"):this.consume("LEFT")?(this.expect("JOIN"),"LEFT"):this.consume("RIGHT")?(this.expect("JOIN"),"RIGHT"):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(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};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 ge(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&te(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(!Zy(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(!em(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(!tm(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(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(ed(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:_r[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}return{type:"VARIABLE_IN_LIST",name: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").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(ge(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(ge(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});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=Yc(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}=Tt(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);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}=Tt(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(),R=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,...R}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),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.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}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){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=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");n.push(ge(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(ge(r.value));else 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",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=Tt(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)),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(ed(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}=Tt(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}=Tt(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}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;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}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"||No.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 im(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 Tt(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}}var om=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),am=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function Q(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":am.has(e.fieldType)?t="option":om.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 B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function Yn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Po(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}function jt(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 sm(e,t){return e<t?-1:e>t?1:0}function rd(e){if(e==="")return{band:0};let t=Se(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 lm(e,t){let n=rd(e),r=rd(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?zi(n.value,r.value):n.band===5&&r.band===5?jt(n.value,r.value):0}function id(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 um(e,t,n){let r=id(e,n),i=id(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=jt(r.normalizedId,i.normalizedId);return o!==0?o:jt(r.display,i.display)}function cm(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 od(e,t){let n=t.optionOrder??new Map,i=[...new Set(cm(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(ad),i}function ad(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:jt(e.label,t.label)}function pm(e,t,n){let r=od(e,n),i=od(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=ad(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function tt(e,t,n){switch(n.compareMode){case"string":return jt(e,t);case"number":return lm(e,t);case"recordNumber":return um(e,t,n.fieldType==="RECORD_NUMBER");case"option":return pm(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function sn(e,t,n,r=B("string")){let i=tt(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 sd(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=Se(o),l=Se(a),c=s!==null&&l!==null?zi(s,l):sm(Number(o),Number(a));if(c!==0)return c}return jt(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ue(e,t){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(Me(t,e.field));if(e.type==="STRING_FUNC")return Number(ce(e,t));let n=ue(e.left,t),r=ue(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 Ie(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Me(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 ce(e,t,n,r);case"CASE_WHEN":return Fe(e,t,n,r);case"CONCAT_OP":return ce({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(Ie(e.left,t,n,r)),o=Number(Ie(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 It(e,t,n,r){switch(e.type){case"CASE_WHEN":return pd(e,t,n,r);case"SCALAR_ARITH":{let i=It(e.left,t,n,r),o=It(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=It(e.left,t,n,r),o=It(e.right,t,n,r);return`${i??""}${o??""}`}default:return Ie(e,t,n,r)}}function Co(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 dm(e){return e>=55296&&e<=56319}function fm(e){return e>=56320&&e<=57343}function Lo(e,t){return t>0&&t<e.length&&dm(e.charCodeAt(t-1))&&fm(e.charCodeAt(t))}function ld(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 Xs(e,t){let n=Math.min(Math.max(0,t),e.length);return Lo(e,n)&&(n-=1),e.slice(0,n)}function Em(e,t){let n=Math.max(0,e.length-t);return Lo(e,n)&&(n+=1),e.slice(n)}function Rm(e,t,n){let r=ld(t,e.length),i=ld(n,e.length);return i<=r?"":(Lo(e,r)&&(r+=1),Lo(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function gm(e,t){let n=e.repeat(Math.ceil(t/e.length));return Xs(n,t)}var ym=200,Dr=new Map;function mm(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 Js(e,t,n=!1){let r=mm(t)+(n?"g":""),i=`${e}\0${r}`,o=Dr.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(Dr.size>=ym){let s=Dr.keys().next().value;s!==void 0&&Dr.delete(s)}return Dr.set(i,a),a}function Am(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function hm(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 Sm(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 Tm(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 Sm(n,o,p,l?s:void 0)})}function ce(e,t,n,r){Io(e.func,e.args);let i=e.args.map(o=>Lm(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return Rm(o,a,s!==void 0?a+s:o.length)}case"LEFT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Xs(o,a)}case"RIGHT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Em(o,a)}case"INSTR":return String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return Xs(o,a);let s=i[2]??" ";if(s==="")return o;let l=gm(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return sd(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return Js(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{Am(i[2]);let o=hm(i[4]),a=Js(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):Tm(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return Js(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{let o=[...i[1]],a=[...i[2]];if(o.length!==a.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=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,c)=>{s.has(l)||s.set(l,a[c])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return Co("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Co("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Co("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return Co("trunc",Number(i[0]),Number(i[1]??"0"));case"CAST":{let o=i[0]??"";if((i[1]??"TEXT")==="NUMBER"){let s=Number(o);return isNaN(s)?o:String(s)}return o}case"FORMAT":{let o=Number(i[0]??"0"),a=i[1]??"0";return Cm(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return Oo(i[0])?String(Qs(i[0])+1):"";case"QUARTER":return Oo(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return Oo(i[0])?String(cd(i[0])):"";case"DATE_FORMAT":return wm(i[0]??"",i[1]??"");case"DATEDIFF":return bm(i[0]??"",i[1]??"");case"DATE_ADD":return Nm(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return Pm(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function vr(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 _o(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 Oo(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=_o(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 Qs(e){return _o(e).getUTCDay()}function ud(e){let t=_o(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function Im(e){return ud(e).getUTCFullYear()}function cd(e){let t=ud(e),n=t.getUTCFullYear(),r=_o(`${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 wm(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=vr(e),l=Oo(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(Qs(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Qs(e)]:"";case"%v":return l?String(cd(e)).padStart(2,"0"):"";case"%G":return l?String(Im(e)).padStart(4,"0"):"";default:return c}})}function bm(e,t){if(e.length<10||t.length<10)return"0";let n=vr(e),r=vr(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 Nm(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}=vr(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 Pm(e){if(!e||e.length<10)return e;let{y:t,mo:n}=vr(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 Cm(e,t){if(/^-?\d+$/.test(t.trim()))return Om(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,R=d?`${f}.${d}`:f;return n?R+"%":R}function Om(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 Lm(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(Ur(e,t)):e.type==="NUMBER"?H(e):String(Ie(e,t,n,r))}function Ur(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(Me(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(Ur(e.left,t)),r=Number(Ur(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 Me(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""}function ie(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return _m(e,t,n,r,i);case"NULL_CHECK":return Fm(e,t);case"LOGICAL":return xm(e,t,n,r,i);case"NOT":return!ie(e.expr,t,n,r,i);case"GROUP":return ie(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function _m(e,t,n,r,i){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 o=Ad(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=vm(e.left,a,i);return Dm(e.op,o,e.right,t,a,n,s,i)}function Dm(e,t,n,r,i,o,a=B("string"),s){if(e==="IN"||e==="NOT_IN"){let c=null;if(n.type==="IN_LIST"&&(Mm(n.values),c=new Set(n.values.map(u=>u.type==="NUMBER"?i==="NUMBER"?H(u):String(u.value):u.value))),n.type==="SUBQUERY_IN_LIST"&&(c=n.resolved),c===null)return e==="NOT_IN";let p=km(t,c,i);return e==="IN"?p:!p}if(e==="LIKE"){let c=Zs(n,r,o);return md(t,c)}if(e==="NOT_LIKE"){let c=Zs(n,r,o);return!md(t,c)}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 l=Zs(n,r,o,s);return sn(e,t,l,a)}var dd=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function vm(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?Q({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(dd.has(e.expr.func)?"number":"string");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 B("number");if(o.type==="STRING_FUNC")return B(dd.has(o.func)?"number":"string");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)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var fd=new Set(["CHECK_BOX","MULTI_SELECT"]),Ed=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Um=new Set(["CREATOR","MODIFIER"]);function km(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>sn("=",e,a,o))}let i;if(fd.has(n)||Ed.has(n)||Um.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return fd.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Ed.has(n)?!Array.isArray(i)||!i.every(Rd)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Rd(i)?t.has(i.code):r()}function Rd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function Mm(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}: ${At}`)}function Fm(e,t){let n=Ad(e.field,t);return e.not?n!=="":n===""}function xm(e,t,n,r,i){return e.op==="AND"?ie(e.left,t,n,r,i)&&ie(e.right,t,n,r,i):ie(e.left,t,n,r,i)||ie(e.right,t,n,r,i)}function Ad(e,t,n,r){if(e.type==="FUNC_FIELD")return ce(e.expr,t);if(e.type==="AGG_FIELD")return String(Ur(e.expr,t));if(e.type==="ARITH_FIELD")return String(ue(e.expr,t));if(e.type==="CASE_FIELD")return Fe(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return xn(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Me(t,i)}function Zs(e,t,n,r){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 H(e);case"KINTONE_FUNC":return Gm(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"?Me(t,e.expr.field):e.expr.type==="STRING_FUNC"?ce(e.expr,t):String(ue(e.expr,t));case"CASE_VALUE":return Fe(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function Fe(e,t,n,r){for(let i of e.branches)if(ie(i.condition,t,n,void 0,r))return yd(i.result,t,n,r);return e.elseResult!==null?yd(e.elseResult,t,n,r):""}function pd(e,t,n,r){for(let i of e.branches)if(ie(i.condition,t,n,void 0,r))return gd(i.result,t,n,r);return e.elseResult===null?null:gd(e.elseResult,t,n,r)}function gd(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[fe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[lt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ue(e,t):It(e,t,n,r)}function yd(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[fe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[lt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ue(e,t)):String(Ie(e,t,n,r))}function hd(e){let t=new Date;switch(e){case"TODAY":{let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${n}-${r}-${i}`}case"NOW":return t.toISOString();case"LOGINUSER":case"PRIMARY_ORGANIZATION":return""}}function Gm(e){throw te(e)?new Error(`${e}: ${tn}`):Dn(e)?new Error(`${e}: ${At}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Do=new Map,Km=200;function md(e,t){if(!sp(t))return e.includes(t);let n=Do.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"),Do.size>=Km&&Do.clear(),Do.set(t,n)}return n.test(e)}function jn(e){return Td(e)}function Sd(e){return Td(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Td(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 we("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 we("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 we(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function vo(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ie(a.condition,t,n))continue;let s=Ie(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function el(e){if(Mt(e))throw new re("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 Bm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),$m=new Set(["CHECK_BOX","MULTI_SELECT"]);function Mo(e,t=new Map){let n=e.values.map(r=>Vm(e.fields,r,t));return xr(n,100).map(r=>({app:e.appId,records:r}))}function Vm(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:qt(a.expr,{},n.get(i))}:r[i]={value:wt(a,n.get(i))}}),r}function Mr(e){el(e.where);let t=kd(e);return{app:e.appId,query:Y(e.where),fields:["$id",...t],totalCount:!1}}function Fr(e,t,n=new Map){let r=Wm(e.assignments,n);return xr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function Wm(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:wt(i,t.get(r))});return n}function Nd(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 Fo(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 tl(e){el(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Pd(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?qn(n,t):n.type==="STRING_FUNC"?nl(n,t):n.type==="CASE_VALUE"&&Cd(n.expr,t);return kd(e).forEach(n=>t.add(n)),{app:e.appId,query:Y(e.where),fields:["$id",...t],totalCount:!1}}function Pd(e,t){kr(e.left,t),kr(e.right,t)}function kr(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"?Pd(e,t):e.type==="STRING_FUNC"&&nl(e,t)}function nl(e,t){for(let n of e.args)Hm(n,t)}function Hm(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){ko(e,t);return}qn(e,t)}function qn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){nl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){qn(e.left,t),qn(e.right,t);return}e.type==="CASE_WHEN"&&Cd(e,t)}function ko(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Ym(e.arg,t);return}e.type==="AGG_ARITH"&&(ko(e.left,t),ko(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function Ym(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?kr(e,t):qn(e,t)}function Id(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ko(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){kr(e,t);return}qn(e,t)}}function Cd(e,t){for(let n of e.branches)Uo(n.condition,t),Id(n.result,t);e.elseResult!==null&&Id(e.elseResult,t)}function Uo(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&kr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":Uo(e.left,t),Uo(e.right,t);break;case"NOT":case"GROUP":Uo(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function rl(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=Od(i),s={};for(let{field:l,value:c}of e.assignments)s[l]={value:il(c,a,n.get(l),i)};return{id:o,record:s}});return xr(r,100).map(i=>({app:e.appId,records:i}))}function il(e,t,n,r){if(e.type==="ARITH")return String(r?al(e,r):ue(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Ie(e,t));if(e.type==="STRING_FUNC")return ce(e,t);if(e.type==="CASE_VALUE")return qt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new re("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return wt(e,n)}function xo(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return H(e);if(e.type==="ARITH")return String(ue(e,t));if(e.type==="CASE_VALUE")return Fe(e.expr,t,n);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 jm=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function ol(e,t,n=new Map){let r=t.map(({target:i,source:o})=>{let a=Number(i.$id?.value);if(!Number.isSafeInteger(a)||a<=0)throw new re("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=Od(i),l={};for(let{field:c,value:p}of e.assignments){let u=n.get(c);if(p.type==="SOURCE_FIELD"){if(jm.has(u??""))throw new re(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${u} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${c}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,p.field))throw new re(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${p.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let d=o[p.field];if(typeof d!="string")throw new re(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${p.field}\uFF09`);if((u==="NUMBER"||u==="CALC")&&d!==""&&!Number.isFinite(Number(d)))throw new re(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${d}`);l[c]={value:wt({type:"STRING",value:d},u)}}else{if(p.type==="STRING_FUNC")throw new re("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");p.type==="ARITH"?l[c]={value:String(al(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[c]={value:String(Ie(p,s))}:p.type==="CASE_VALUE"?l[c]={value:qt(p.expr,s,u)}:l[c]={value:wt(p,u)}}}return{id:a,record:l}});return xr(r,100).map(i=>({app:e.appId,records:i}))}function Od(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function al(e,t){let n=wd(e.left,t),r=wd(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new re("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new re("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function wd(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 al(e,t);if(e.type==="STRING_FUNC")throw new re("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 re(`\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 Ld(e){return el(e.where),{app:e.appId,query:Y(e.where),fields:["$id"],totalCount:!1}}function _d(e,t){return xr(t,100).map(n=>({app:e,ids:n}))}function Dd(e){return Bm.has(e??"")}function qm(e){return $m.has(e??"")}function zm(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 Jm(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function vd(e,t){return Dd(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):qm(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?zm(e):t==="DATE"?Jm(e):e}function Ud(e,t){return Dd(t)?e.map(n=>({code:n})):e}function bd(e,t,n){if(e.type==="ARRAY")return Ud(e.elements.map(r=>r.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"?vd(e.value,n):e.type==="STRING_FUNC"?ce(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ue(e,t)):String(Ie(e,t))}function kd(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(jn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function qt(e,t,n){for(let r of e.branches)if(ie(r.condition,t))return bd(r.result,t,n);return e.elseResult!==null?bd(e.elseResult,t,n):""}function wt(e,t){let n=sl(e,t);if(!n.ok)throw new re(n.message);return n.value}function sl(e,t){try{return{ok:!0,value:Xm(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function Xm(e,t){switch(e.type){case"VARIABLE":throw new re(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new re(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return vd(e.value,t);case"NUMBER":return H(e);case"ARRAY":return Ud(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new re(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new re("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new re("\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 re("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 re("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new re("\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 xr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var re=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var ll=new Set(["CHECK_BOX","MULTI_SELECT"]),Qm=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Gr(e){throw new Error(`ArgumentError: ${e}`)}function Md(e,t,n){let r=Zm(n.fieldType,e.field),i=eA(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let m=y.value;m!==""&&(y.kind==="ADD"?(s.has(m)||a.push(m),s.add(m)):l.add(m))}for(let y of s)l.has(y)&&Gr(`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,R=new Set,E=e.operations.map(y=>{let m=y.kind==="ADD"?f:R,A=!m.has(y.value);return m.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&A&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),g=ll.has(r)?u:u.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:E,postImageValue:g,addedValues:p.length,removedValues:d,changedValues:p.length+d}}function Zm(e,t){return ll.has(e)||Qm.has(e)?e:Gr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function eA(e,t,n){if(!Array.isArray(e))return Gr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>ll.has(t)?typeof i!="string"?Gr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Gr(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function q(e){throw new Error(`ArgumentError: ${e}`)}function pl(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?q("APPLY parent selector must be a single positive $id."):t.right.value}function bt(e,t){let n=e.applyBlocks;if(!n?.length)return q("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)ul(s.field,null,r),tA(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&q(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(u=>u.field===s.field)&&q(`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"?q(`APPLY target ${s.field} is not a SUBTABLE.`):q(`APPLY target ${s.field} does not exist as a top-level field.`);if(ip(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&q(`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)ul(d.field,s.field,r,p),cl(d.value,s.field,r,p);u.selector.kind==="WHERE"&&cl(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)&&q(`APPLY APPEND specifies child ${f} more than once.`),d.add(f),ul(f,s.field,r,p)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&cl(u.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function tA(e,t){Kr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&q(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&q(`APPLY parent FILE reference ${n} is not supported.`)})}function ul(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&q(`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&&q(`APPLY child ${e} does not belong to subtable ${t}.`),q(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&q(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function cl(e,t,n,r){Kr(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&q(`APPLY child reference ${i} does not belong to subtable ${t}.`),q(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Go(e,t){let n=bt(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)Kr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Ko(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=$d(i?.value);return n}function xd(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??bt(t,r),o=El(n.$id?.value,"APPLY snapshot $id"),a=pl(t);return o!==a&&q(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),Kd(t,n,i,o)}function Gd(e,t,n,r=bt(e,n)){let i=new Set;return t.map(o=>{let a=El(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&q(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),Kd(e,o,r,a)})}function Kd(e,t,n,r){let i=El(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let p of e.applyBlocks){if(p.targetKind==="MULTI_VALUE"){let P=n.targetMultiValueFields.get(p.field);P||q(`APPLY multi-value metadata for ${p.field} is missing.`),a.push(Md(p,t[p.field]?.value,P));continue}let u=n.childrenByTable.get(p.field),d=sA(t,p.field),f=new Set;for(let P of d)P.id||q(`APPLY snapshot for ${p.field} contains a row without _rid.`),f.has(P.id)&&q(`APPLY snapshot for ${p.field} contains duplicate _rid ${P.id}.`),f.add(P.id);let R=P=>P.field==="_rid"?"SINGLE_LINE_TEXT":P.field==="_idx"?"NUMBER":u.get(P.field)?.fieldType,E=[],g=[],y=[],m=new Set,A=new Set,h=new Set,b=p.operations.some(P=>P.kind==="REMOVE");for(let[P,D]of p.operations.entries()){if(D.kind==="APPEND"){let _=dl(D,u,p.field);y.push({kind:"APPEND",addedRows:_.length}),g.push(..._);continue}if(D.kind==="REMOVE"){let _=iA(D,d,R,p.field);D.expectRows&&Fd(D.expectRows,_.length,r,p.field,P,D.kind),y.push({kind:"REMOVE",removedRows:_.length});for(let k of _){let S=d[k].id;A.has(k)&&q(`APPLY row ${S} is selected by both PATCH and REMOVE.`),h.has(k)&&q(`APPLY removes row ${S} more than once.`),h.add(k)}continue}if(D.kind!=="PATCH")continue;let x=rA(D,d,R,p.field);D.expectRows&&Fd(D.expectRows,x.length,r,p.field,P,D.kind),y.push({kind:"PATCH",matchedRows:x.length,changedRows:x.length});for(let _ of x){let k=d[_];h.has(_)&&q(`APPLY row ${k.id} is selected by both PATCH and REMOVE.`),A.add(_);let S=Ko(k,_);for(let N of D.assignments){let F=`${k.id}\0${N.field}`;m.has(F)&&q(`APPLY patches cell ${k.id}.${N.field} more than once.`),m.add(F),E.push({rowIndex:_,field:N.field,value:xo(N.value,S,R)})}}}let w=new Map;for(let P of E){let D=w.get(P.rowIndex)??{};D[P.field]={value:P.value},w.set(P.rowIndex,D)}let I=[...d.flatMap((P,D)=>h.has(D)?[]:[{id:P.id,value:{...P.value,...w.get(D)??{}}}]),...g],L={table:p.field,operations:y,changedSubtableRows:w.size+h.size+g.length,deletedRows:h.size,snapshotRowIds:d.map(P=>P.id),postImageRows:I};b?o.push({...L,payloadShape:"FULL_SURVIVORS",removedRowIds:d.flatMap((P,D)=>h.has(D)?[P.id]:[]),payloadRows:I.map(P=>({...P.id===void 0?{}:{id:P.id},value:P.value}))}):o.push({...L,payloadShape:"PATCH_ONLY",payloadRows:[...d.map((P,D)=>{let x=w.get(D);return x?{id:P.id,value:x}:{id:P.id}}),...g.map(P=>({value:P.value}))]})}let s=lA(t),l={};for(let p of e.assignments){let u=n.fieldsByCode.get(p.field)?.fieldType;l[p.field]={value:il(p.value,s,u,t)}}let c={...t};Object.assign(c,l);for(let p of o)c[p.table]={value:p.postImageRows};for(let p of a)c[p.field]={value:p.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((p,u)=>p+u.changedSubtableRows,0),parentValues:l,postImage:c,tables:o,multiValues:a}}function Fd(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}`;q(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Bo(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return q(`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]]))}:q(`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}:q(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function dl(e,t,n){return e.values.map(r=>({value:nA(e,r,t,n)}))}function nA(e,t,n,r){if(t.length!==e.fields.length)return q(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let i=new Map(e.fields.map((a,s)=>[a,t[s]])),o={};for(let a of n.values()){if(a.fieldType==="FILE"||a.writable===!1)continue;let s=i.get(a.code);o[a.code]={value:s===void 0?fl(a):s.type==="CASE_VALUE"?qt(s.expr,{},a.fieldType):wt(s,a.fieldType)}}return o}function fl(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 rA(e,t,n,r){return Bd(e.selector,t,n,r)}function iA(e,t,n,r){return Bd(e.selector,t,n,r)}function Bd(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,c)=>c);let i=e.where,o=t.flatMap((l,c)=>ie(i,Ko(l,c),n)?[c]:[]),a=oA(i);a!==null&&o.length===0&&q(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=aA(i);return s!==null&&o.length===0&&q(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function oA(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 aA(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 sA(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:{}}}):q(`APPLY snapshot field ${t} is not a subtable value.`)}function El(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&q(`${t} must be a positive integer.`),n}function lA(e){let t={};for(let[n,r]of Object.entries(e))t[n]=$d(r?.value);return t}function $d(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 Kr(e,t){if(Array.isArray(e)){e.forEach(r=>Kr(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))Kr(r,t)}function ae(e){throw new Error(`ArgumentError: ${e}`)}function Vo(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?ae("APPLY snapshot $revision must be a positive integer."):t}function Br(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return ae("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return ae("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)&&ae(`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)&&ae(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&ae(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),uA(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Vd(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 ae("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 uA(e){let t=Rl(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&&ae(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Rl(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(d=>d.kind==="REMOVE")&&ae(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(d=>d.id??"");$o(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)&&ae(`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??"");$o(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)&&ae(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||ae(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Rl(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&ae(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&ae(`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)&&ae(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));$o(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??"");$o(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))&&ae(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&ae(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,u)=>!gl(p.value,e.postImageRows[u]?.value))&&ae(`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)))&&ae(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Rl(e,t){let n=[...e],r=new Set;for(let i of n)i||ae(`APPLY ${t} contains an empty row id.`),r.has(i)&&ae(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function $o(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&ae(n)}function gl(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)=>gl(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)&&gl(n[a],r[a]))}function Wd(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 Hd(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Wd(t.digits,"digits",1,30),r=Wd(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 Yd(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 cA=new Set(["CHECK_BOX","MULTI_SELECT"]),pA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function xe(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=dA(e);if(i!==""&&!fA(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=$r(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:EA(t.fieldType),message:o}}if(t.required&&Wo(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Wo(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Se(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&&Ji(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&&Ji(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}=Yd(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(!Wo(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!ln(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!Wo(r)&&pA.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 dA(e){return e==null?"":Ho(e)&&e.type==="NUMBER"?H(e):Ho(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function fA(e,t){if(t==="DATE")return ln(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return ln(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)?ln(n.slice(0,10),"DATE")&&ln(n.slice(11),"TIME"):ln(n,"DATETIME")}function $r(e,t){if(Ho(e)){let r=sl(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(cA.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 Ho(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function un(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Ho(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Wo(e){return e===""||Array.isArray(e)&&e.length===0}function EA(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function ln(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)&&ln(l,"TIME")}var zn=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function yl(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(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=$r(a,s)}catch{}i.record[o]={value:l?a:c}}}}function ml(e,t,n,r,i,o,a,s=[],l=!0,c=!0,p={}){let u=new Map(i.map(g=>[g.code,g])),d=[],f=new Set,R=[];p.validateUpdateBuiltIns===!1&&yl(e,r,i);let E;for(let g of e){g.record??(g.record={});let y=c?[...g.preErrors]:[],m=[],A=[],h=g.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let I of r){if(!g.payload.has(I))continue;let L=g.payload.get(I),P=u.get(I).fieldType,D=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(P)&&Array.isArray(L)&&L.every(_=>typeof _=="object"&&_!==null&&"code"in _);if(!h)continue;let x=xe(L,u.get(I),a);x.ok?g.record[I]={value:D?L:x.value}:m.push({field:I,code:x.code,message:x.message})}if(l&&g.mode==="create")for(let I of i){if(I.inSubtable||g.payload.has(I.code))continue;if(un(I.defaultValue)){let P=xe("",I,a);P.ok?I.required&&m.push({field:I.code,code:"ERR_REQUIRED",message:`${I.code} \u306F\u5FC5\u9808\u3067\u3059`}):m.push({field:I.code,code:P.code,message:P.message})}else{let P=xe(I.defaultValue,I,a);P.ok||m.push({field:I.code,code:P.code,message:`\u65E2\u5B9A\u5024: ${P.message}`})}}if(s.length>0){let I=g.evaluationRow??Object.fromEntries([...g.payload].map(([D,x])=>[D,ut(x)])),L=g.evaluationFieldTypes,P=D=>{let x=D.tableAlias?`${D.tableAlias}.${D.field}`:D.field;return L?.get(x)??L?.get(D.field)};try{for(let D of vo(s,I,P))A.push({field:"",code:"ERR_CHECK",message:D.message})}catch(D){E??(E=D)}}let b=I=>I.map(L=>{let P={};for(let D of n)P[D]=ut(g.payload.get(D));return P.$err_statement=String(o),P.$err_operation=t,P.$err_row=String(g.rowNumber),P.$err_field=L.field,P.$err_code=L.code,P.$err_message=L.message,P.$err_value="",P.$err_subtable="",P.$err_subrow="",P.$err_subrow_id="",P}),w={rowNumber:g.rowNumber,preErrors:b(y),builtInErrors:b(m),checkErrors:b(A)};R.push(w);let C=[...w.preErrors,...w.builtInErrors,...w.checkErrors];C.length>0&&f.add(g.rowNumber),d.push(...C)}if(E!==void 0)throw E;return{errors:d,invalidRows:f.size,invalidRowNumbers:f,candidateResults:R}}function ut(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 Al=["required","length","range","choice"];function hl(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 Sl(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 RA(e){return hl(e).length>0}function gA(e){return e.fieldType==="NUMBER"||RA(e)}function Yo(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Tl(e,t){let{topByCode:n,childrenByTable:r}=Sl(t),i=gA;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(R=>R.code===d);if(!f){let R=[...r.entries()].some(([E,g])=>E!==l.subtableCode&&g.some(y=>y.code===d));throw new Error(R?`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 Vr(e,t){return un(e)?"":ut($r(e,t))}var yA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Wr=zn;function ct(e,t=["$id"]){let n=Sl(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!yA.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 cn(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 pn(e,t,n,r,i=1,o="UPDATE"){let a=mA(e),s=[],l=new Set,c=[...t.payloadFields,...Wr],p=ut(e.$id?.value),u=(d,f,R,E)=>{l.add(i);let g={};for(let y of t.payloadFields)g[y]=y==="$id"?p:ut(e[y]?.value);g.$err_statement=String(r),g.$err_operation=o,g.$err_row=String(i),g.$err_field=d.code,g.$err_code=R.code,g.$err_message=R.message,g.$err_value=Vr(f,d.fieldType),g.$err_subtable=E?.subtable??"",g.$err_subrow=E?String(E.subrow):"",g.$err_subrow_id=E?.subrowId??"",s.push(g)};for(let d of t.topLevel){let f=e[d.code]?.value,R=xe(f,d,n);R.ok?a[d.code]={value:jd(f,d.fieldType,R.value)}:u(d,f,R)}for(let[d,f]of t.subtables){let R=e[d]?.value;if(!Array.isArray(R))continue;let E=a[d]?.value;for(let g=0;g<R.length;g++){let y=R[g],m=E[g];for(let A of f){let h=y.value?.[A.code]?.value,b=xe(h,A,n);b.ok?(m.value??(m.value={}),m.value[A.code]={value:jd(h,A.fieldType,b.value)}):u(A,h,b,Yo(d,g,y))}}}return{normalizedRecord:a,errors:s,columns:c,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function jd(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 mA(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 jo(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;qd(o,"dmlMaxRows"),qd(a,"dmlMaxSubtableRows");for(let A of n)Vo(A);let l=Gd(t,n,r,i),c=ct(r,t.assignments.map(A=>A.field)),p=l.some(A=>cn(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=l.map((A,h)=>pn(A.postImage,c,u,s,e.parentRowNumbers?.[h]??h+1));if(!t.validateOnly){let A=d.flatMap(h=>h.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:A})}`)}let f=l.length,R=l.reduce((A,h)=>A+h.changedSubtableRows,0),E=f>o||R>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&R>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${a}).`);let g=l.map((A,h)=>Bo(A,d[h].normalizedRecord)),y=g.flatMap(A=>Br(A).records),m=d.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return zd({plans:g,records:y,validations:m,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:R,dmlMaxSubtableRows:a,wouldExceed:E}})}function qd(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function zd(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))zd(n,t);return Object.freeze(e)}var Il=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function qo(e,t){if(new Set(e.fields).size!==e.fields.length)return pt("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Jd(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return pt(`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 pt(`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 pt(`APPLY INSERT supports APPEND only (${l.kind}).`);let c=new Set;for(let p of l.fields){if(c.has(p))return pt(`APPLY APPEND specifies child ${p} more than once.`);c.add(p),Jd(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return pt(`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 AA(e,t,n=qo(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Mo(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=>dl(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||Il.has(u.fieldType)||(c[u.code]=s[u.code]??{value:fl(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 Hr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;Xd(r,"dmlMaxRows"),Xd(i,"dmlMaxSubtableRows");let a=e.metadata??qo(t,n),s=AA(t,n,a,e.parentRowNumbers),l=n.filter(h=>h.fieldType==="SUBTABLE"||h.fieldType!=="FILE"&&h.writable!==!1&&!Il.has(h.fieldType)),c=ct(l,t.fields),p=s.some(h=>cn(h.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(h=>pn(h.postImage,c,u,o,h.parentRowNumber,"INSERT"));if(!t.validateOnly){let h=d.flatMap(b=>b.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:h})}`)}let f=s.length,R=s.reduce((h,b)=>h+b.tables.reduce((w,C)=>w+C.addedRows,0),0),E=f>r||R>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&R>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${i}).`);let g=s.map((h,b)=>{let w=d[b].normalizedRecord,C={};for(let I of t.fields)C[I]=w[I];for(let I of h.tables){let L=w[I.table]?.value;C[I.table]={value:I.rows.map((P,D)=>({value:Object.fromEntries(Object.keys(P.value).map(x=>[x,L[D]?.value?.[x]??P.value[x]]))}))}}return{...h,postImage:w,record:C}}),y=g.map(h=>h.record),m=[];for(let h=0;h<y.length;h+=100)m.push({app:t.appId,records:y.slice(h,h+100)});let A=d.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return Qd({applyBlocks:t.applyBlocks??[],candidates:g,records:y,batches:m,validations:A,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:R,dmlMaxSubtableRows:i,wouldExceed:E}})}function Jd(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return pt(`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?pt(`APPLY child ${e} does not belong to subtable ${t}.`):pt(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Il.has(i.fieldType))return pt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Xd(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function pt(e){throw new Error(`ArgumentError: ${e}`)}function Qd(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))Qd(n,t);return Object.freeze(e)}async function ef(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Zd(i,"dmlMaxRows"),Zd(o,"dmlMaxSubtableRows"),wA(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),c=hA(t,s.map(y=>y.sourceRowIndex)),p=await Hr({statement:c,fieldInfos:r,metadata:qo(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 m=y.targetId;d.has(m)&&wl(`UPSERT APPLY resolves more than one source row to parent $id ${m}.`),d.add(m),y.snapshot||wl(`UPSERT APPLY snapshot for parent $id ${m} is missing.`);let A=Number(y.snapshot.$id?.value);A!==m&&wl(`UPSERT APPLY snapshot $id ${A} does not match target $id ${m}.`);let h=SA(t,y.sourceRowIndex,m),b=h.applyBlocks?.length?bt(h,r):TA(r);u.push(await jo({statement:h,snapshots:[y.snapshot],fieldInfos:r,metadata:b,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=IA(u,i,o),R=p.guards.parentRows+f.guards.parentRows,E=p.guards.subtableRows+f.guards.subtableRows,g=R>i||E>o;if(!t.validateOnly){let y=[...p.validations.flatMap(m=>m.errors),...f.validations.flatMap(m=>m.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&&R>i)throw new Error(`ArgumentError: APPLY parent rows (${R}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&E>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${o}).`);return bl({create:p,update:f,createBatches:p.batches,updateBatches:bA(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:R,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:g,create:p.guards,update:f.guards}})}function hA(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function SA(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 TA(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function IA(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 bl({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 wA(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 bA(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 Zd(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function wl(e){throw new Error(`ArgumentError: ${e}`)}function bl(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))bl(n,t);return Object.freeze(e)}function jr(e){return Jn("UPDATE",[rf(e)])}function Nl(e){return Jn("INSERT",[nf(e)])}function Pl(e){return Jn("UPSERT",[nf(e.create),rf(e.update)])}function Ve(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 Jo(e,t,n){return e.type==="UPDATE"?Jn("UPDATE",[zo("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?Jn("INSERT",[zo("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):Jn("UPSERT",[zo("insert",e.onInsertApplyBlocks??[],null,!1,t,n),zo("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function Jn(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function nf(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 rf(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:tf(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||(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:tf(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 tf(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:Yr(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Yr(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Yr(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Yr(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Yr(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Yr(e,t){return e==null||t===null?null:e+t}function zo(e,t,n,r,i,o){let a=t.map(p=>{let u=p.operations.map(f=>NA(f,n)),d=u.every(f=>f.count!==null)?u.reduce((f,R)=>f+R.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 NA(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 dt=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 of(e,t,n){Mn("phase10c");let r=Vd(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 dt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ve(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 af(e,t,n){Mn("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 dt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ve(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 sf(e,t,n){Mn("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 dt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ve(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 dt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ve(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 PA=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function CA(e){if(!PA.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 OA(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=CA(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 Cl(e,t){let n=OA(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 LA(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 Ol(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 LA(i)?!0:Object.values(i).some(n)};return n(e)}function lf(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 qr(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 Xo(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||!qr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}var We=["=","!=",">","<",">=","<="],_A=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),DA=new Set(We),vA=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"])]]),UA=new Map([["TODAY",new Set(We)],["NOW",new Set(We)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),kA=["=","!=","in","not in"],MA=new Map([["RECORD_NUMBER",new Set([...We,"in","not in"])],["__ID__",new Set([...We,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(We)],["UPDATED_TIME",new Set(We)],["DATE",new Set(We)],["TIME",new Set(We)],["DATETIME",new Set(We)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...We,"in","not in"])],["CALC",new Set([...We,"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(kA)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),FA=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"])]]),_l=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"]),pf=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function ea(e){return MA.get(e)??new Set}function df(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"&&_l.has(o.fieldType)&&ea(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 me(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:Jr(e,t)}function Jr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return xA(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ll():BA(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Ll();case"GROUP":return Jr(e.expr,t);case"NOT":{let n=Jr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Ef(n.reasons)?Qr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Jr(e.left,t),r=Jr(e.right,t);return VA(e.op,n,r)}}}function xA(e,t,n,r){if(n.type==="KINTONE_FUNC"&&te(n.name))return GA(e,t,n,r);if(n.type==="KINTONE_FUNC"&&uf(n))return cf(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?cf(e,t,p[0],r):Zo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Xr(e))}if(t.type!=="FIELD")return Ll();let i=r(t);if(!i)return Xn("WHERE_FIELD_UNRESOLVED",t.field,void 0,Xr(e));let o=Xr(e);if(!ff(i.fieldType,o))return Xn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!$A(i.fieldType,e))return Xn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=ea(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||uf(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 uf(e){return e.type==="KINTONE_FUNC"&&en.has(e.name)}function cf(e,t,n,r){let i=Xr(e),o=n.name;if(!en.has(o)||t.type!=="FIELD")return Zo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=vA.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Zo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):UA.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Zo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function GA(e,t,n,r){let i=Xr(e),o=n.name;if(t.type!=="FIELD")return zr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?KA(n)?DA.has(i)?!_A.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?zr("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}]}:zr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):zr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):zr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function KA(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 BA(e,t,n){let r=n(e);return r?ff(r.fieldType,t)?!_l.has(r.fieldType)&&!pf.has(r.fieldType)?Xn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:Xn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):Xn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function ff(e,t){let n=FA.get(e);return n===void 0||n.has(t)}function $A(e,t){return _l.has(e)?!0:pf.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Xr(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 VA(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Qr({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")?Qr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Qr({capability:"LOCAL_ONLY",reasons:r})}function Ll(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Xn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Zo(e,t,n,r,i){return Qr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function zr(e,t,n,r,i){return Rf({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Ef(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&te(t.functionName))}function WA(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&en.has(t.functionName))}function Rf(e){if(e.capability==="EXACT_PUSHDOWN"||!Ef(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&&te(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 HA(e){if(e.capability==="EXACT_PUSHDOWN"||!WA(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&&en.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 Qr(e){return HA(Rf(e))}var ta=50;function vl(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+=ta){let o=e.values.slice(i,i+ta);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Dl=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),YA=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function jA(e,t){return e==="DATE"?qr(t):e==="TIME"?Xo(t):Dl.has(e)?Qo(t):!1}function qA(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Dl.has(e)?Dl.has(t.fieldType):!1}function Ul(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=ea(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!YA.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(!qA(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=>!jA(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];tt(s,i,n)<0&&(i=s),tt(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}function gf(e,t){let n=Z(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 ft(e){if(e===null)return!1;switch(e.type){case"BINARY":return na(e.left);case"NULL_CHECK":return na(e.field);case"LOGICAL":return ft(e.left)||ft(e.right);case"NOT":case"GROUP":return ft(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function na(e){if(Array.isArray(e))return e.some(na);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(na)}async function nt(e,t,n,r,i){let o=await De(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 ra(e,t,n,r){let{records:i,metrics:o}=await nt(e,t,n,["$id"],r);return{ids:Wc(i),metrics:o}}function ia(e){let t=e.raw??String(e.value),n=Se(t);if(n===null)return!1;if(n.sign===0)return H(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=fs(n);return H(e)===o}var zA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),JA=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),XA=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),QA=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Zn(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)?Af(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"}):Af(n[0],e.field)}function Fl(e,t){if(e.left.type!=="FIELD")return Zr();let n=Zn(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Zr();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||me(e,a=>{let s=Zn(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:Q({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Zr();let o=rh(e,n,r);return o==="unsafe"?Zr():Object.freeze({relation:o,owner:n})}function hf(e,t){let n=ye(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Zn(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):me(e,o=>{let a=Zn(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:Q({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function Sf(e,t){let n=new Set;dn(e,n);let i=(e===null?[]:wf(Qn(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=ZA(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)dn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(nh(e,t)),fetchQueriesByAlias:new Map,...o})}function Tf(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!fn(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,er(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=er({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!fn(ca(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 tr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!fn(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&&!fn(ca(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))||If(th(e))!==e.allKlikes.length))}function ZA(e,t){if(e===null)return yf(null);let n=Object.freeze([...ye(e)]);if(n.length===0)return yf(e);let r=eh(e,t,n);if(r!==null)return r;let i=sa(e),o=[],a=new Set;for(let u of i){let d=hf(u,t);if(d.relation!=="function-leaf-exact")continue;let f={targetAlias:d.owner.alias,appId:d.owner.appId,predicate:u,relation:"exact"},R;try{R=er(f,t)}catch{continue}let E=ca(R);fn(E,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:R,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=la(e,a),l=Object.freeze(s===null?[]:[...ye(s)]),c=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),p=fn(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 eh(e,t,n){let r=oa(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=er(i,t)}catch{return null}if(!fn(ca(o),n))return null;let a=new Set;if(dn(e,a),If(o)!==a.size)return null;let s=Object.freeze(aa(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 oa(e,t){switch(e.type){case"BINARY":{if(ye(e).length>0){let i=hf(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Fl(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=oa(e.left,t),r=oa(e.right,t);return n!==null&&r!==null&&pa(n,r)?n:null}case"GROUP":case"NOT":return oa(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function aa(e){switch(e.type){case"BINARY":return ye(e).length>0?[e]:[];case"LOGICAL":return[...aa(e.left),...aa(e.right)];case"GROUP":case"NOT":return aa(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function yf(e){let t=e===null?[]:ye(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function sa(e){switch(e.type){case"BINARY":return ye(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...sa(e.left),...sa(e.right)]:[];case"GROUP":return sa(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function la(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=la(e.left,t),r=la(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=la(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function ca(e){let t=[];for(let n of Rr){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 fn(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 If(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function th(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function nh(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=Zn(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(ua(i.right)){n.add("CROSS_TABLE_BINARY");return}Fl(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(Nf(i)){n.add("KLIKE_OR");return}let o=Qn(i.left,t),a=Qn(i.right,t);if(o.length!==1||a.length!==1||!pa(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 er(e,t){return ei(e.predicate,e,t),Y(e.predicate)}function ei(e,t,n){switch(e.type){case"LOGICAL":ei(e.left,t,n),ei(e.right,t,n);return;case"GROUP":ei(e.expr,t,n);return;case"NOT":ei(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||ua(e.right))throw Ml(t,"predicate contains a non-target or RHS field reference");let r=Zn(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw Ml(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Ml(t,"predicate shape is outside the Phase A serializer contract")}}function Ml(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Qn(e,t){switch(e.type){case"BINARY":{let n=Fl(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=Qn(e.left,t),r=Qn(e.right,t);if(e.op==="AND")return wf([...n,...r]);if(Nf(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return pa(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:bf(i.relation,o.relation)}]:[]}case"GROUP":return Qn(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function wf(e){let t=[];for(let n of e){let r=t.findIndex(o=>pa(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:bf(i.relation,n.relation)}}return t}function rh(e,t,n){if(e.op==="LIKE"||e.op==="NOT_LIKE")return"unsafe";if(e.op==="KLIKE"||e.op==="NOT_KLIKE")return XA.has(n)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="__ID__"||t.fieldCode==="$id")return ih(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe";if(n==="RECORD_NUMBER")return mf(e);if(n==="NUMBER")return(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(r=>r.type==="NUMBER"&&ia(r))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&ia(e.right)?"exact":"unsafe";if(n==="CALC")return mf(e);if(JA.has(n))return e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0?"unsafe":e.right.values.every(r=>r.type==="STRING"&&r.value!=="")?"exact":"unsafe";if(n==="SINGLE_LINE_TEXT"||n==="LINK")return(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(r=>r.type==="STRING"&&r.value!=="")||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe";if(n==="DATE"||n==="TIME"||QA.has(n))return e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":n==="DATE"?qr(e.right.value)?"exact":"unsafe":n==="TIME"?Xo(e.right.value)?"exact":"unsafe":Qo(e.right.value)?"exact":"unsafe";if(zA.has(n)){if(e.op!=="IN"&&e.op!=="NOT_IN"||e.right.type!=="IN_LIST"||e.right.values.length===0)return"unsafe";let r=t.source.fieldOptions?.get(t.fieldCode);return r===void 0?"unsafe":e.right.values.every(i=>i.type==="STRING"&&i.value!==""&&r.has(i.value))?"exact":"unsafe"}return"unsafe"}function mf(e){let t=n=>n.type==="NUMBER"&&ia(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 Af(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Zr(){return Object.freeze({relation:"unsafe"})}function pa(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function bf(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function ih(e){return e.type==="NUMBER"&&oh(e)&&e.value>0}function oh(e){return/^-?\d+$/.test(H(e))&&Number.isSafeInteger(e.value)}function dn(e,t){if(e!==null){if(Ft(e)){t.add(e);return}switch(e.type){case"LOGICAL":dn(e.left,t),dn(e.right,t);return;case"NOT":case"GROUP":dn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Nf(e){let t=new Set;return dn(e,t),t.size>0}function ua(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ua);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(ua)}function xl(e,t){let n=br(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))}}function ah(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function sh(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function ti(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=ah(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"&&!sh(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>500)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>1e4)&&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 lh=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 uh(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function ni(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(uh(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}lh.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 da=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"}},fa=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}},Ea=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 Pf(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 Ea(a).message}}return{records:n,cleanupWarning:o}}function Gl(e){let t=[];e.where&&t.push(Y(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 ch={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 Cf(e,t){let n=ch[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 Of(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=>Cf(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Cf(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var nr=new WeakMap,Bl=new WeakMap;function Wl(e){if(Bl.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):be(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&be(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=be(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),Bl.set(t,e),t}function rt(e){return Bl.get(e)??e}function xf(e){let t=nr.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},nr.set(e,t)),t}function Et(e,t,n,r=[]){let i=xf(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function He(e,t){return nr.get(e)?.byColumn.get(t)}function be(e,t){return nr.get(e)?.byLookupKey.get(t)}function Nt(e,t){return nr.has(e)?void 0:e[t]}function ph(e){let t=nr.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=ws(e);return r&&Is(n,r.includedCanonicalIds),n}function Pt(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 dh(e,t,n,r={}){let{on:i,type:o}=n,a=i.left.tableAlias?`${i.left.tableAlias}.${i.left.field}`:i.left.field,s=i.right.tableAlias?`${i.right.tableAlias}.${i.right.field}`:i.right.field;if(Lf(e,a,r.leftColumns),Lf(t,s,r.rightColumns),o==="RIGHT"){let u=new Map;for(let R of e){let E=R[a]??"",g=u.get(E);g?g.push(R):u.set(E,[R])}let d={};for(let R of r.leftColumns??Object.keys(e[0]??{}))d[R]="";let f=[];for(let R of t){let E=R[s]??"",g=u.get(E)??[];if(g.length>0)for(let y of g)f.push({...y,...R});else f.push({...d,...R})}return f}let l=new Map;for(let u of t){let d=u[s]??"",f=l.get(d);f?f.push(u):l.set(d,[u])}let c=[],p={};for(let u of r.rightColumns??Object.keys(t[0]??{}))p[u]="";for(let u of e){let d=u[a]??"",f=l.get(d)??[];if(f.length>0)for(let R of f)c.push({...u,...R});else o==="LEFT"&&c.push({...u,...p})}return c}function Lf(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 fh(e,t,n,r,i){return t===null?e:e.filter(o=>ie(t,o,n,r,i))}function Gf(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&Ke(t.expr)||t.type==="STRFUNC_COL"&&li(t.expr)||t.type==="SCALAR_VALUE_COL"&&zt(t.expr))}function Eh(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,d)=>gh(u,l,i?.items[d],n,o)).join("\0"),p=a.get(c);p?p.push(l):a.set(c,[l])}a.size===0&&t.length===0&&Gf(n)&&a.set("",[]);let s=[];for(let l of a.values()){let c=Wl({...l[0]});for(let p of t)p.type==="ARITH_KEY"?c[ql(p.expr)]=String(ue(p.expr,l[0])):p.type==="FUNC_KEY"&&(c[Jt(p.expr)]=ce(p.expr,l[0]));Kf(c,l,n,r),s.push(c)}return s}function Rh(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},p=[];for(let d of e){let f=c;for(let R of l.items){let E=_f(R,d),g=f.children.get(E);g||(g={children:new Map},f.children.set(E,g)),f=g}f.rows||(s(),f.rows=[],p.push(f.rows)),f.rows.push(d)}e.length===0&&l.items.length===0&&(s(),c.rows=[],p.push(c.rows));let u=new Set(l.items.map(d=>d.canonicalId));for(let d of p){let f=Wl({...d[0]}),R=new Map;for(let E of l.items)R.has(E.canonicalId)||R.set(E.canonicalId,_f(E,d[0]));for(let E of t.allItems){let g=R.get(E.canonicalId)??"";f[E.directKey]=g,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=g)}Kf(f,d,n,r),Is(f,u),o.push(f)}}return o}function _f(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Kf(e,t,n,r){for(let[i,o]of n.entries())if(o.type==="AGGREGATE"){let a=fe(o.func,o.distinct,o.arg),s=String(oi(o.func,o.distinct,o.arg,o.separator,t,r));Et(e,i,s,o.alias?[o.alias,a]:[a])}else if(o.type==="ARITH_AGG_COL"){Ra(e,t,o.expr,r);let a=o.alias??ai(o.expr);Et(e,i,String(ri(o.expr,t,r)),[a])}else if(o.type==="STRFUNC_COL"&&li(o.expr)){Ra(e,t,o.expr,r);let a=o.alias??Jt(o.expr),s=zl(o.expr,t,r);Et(e,i,ce(s,e),[a])}else if(o.type==="SCALAR_VALUE_COL"&&zt(o.expr)){Ra(e,t,o.expr,r);let a=o.alias??Rt(o.expr),s=ii(o.expr,t,r);Et(e,i,String(Ie(s,e)),[a])}else if(o.type==="CASE_COL"&&Ke(o.expr)){Ra(e,t,o.expr,r);let a=Yf(o.expr,t,r),l=Fe(a,e,void 0,c=>c.aggregateRef?$f(c.aggregateRef,r):void 0);Et(e,i,l,[$l(o.alias,i)])}}function $l(e,t){return e??`__ksql_case_column_${t}`}function Vl(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Vl(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=>Vl(r,t))}function Ra(e,t,n,r){let i=[];Vl(n,i);for(let o of i){let a=fe(o.func,o.distinct,o.arg);if(be(e,a)!==void 0)continue;let s=String(oi(o.func,o.distinct,o.arg,o.separator,t,r));xf(e).byLookupKey.set(a,s)}}function gh(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=ga(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"?ce(e.expr,t):String(ue(e.expr,t))}function oi(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=Bf(e,n,i).filter(f=>f!==null),s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let R=Number(f);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: ${f}`);return R}):null,c=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return c.length;if(e==="GROUP_CONCAT")return c.join(r??",");let p=e==="MIN"||e==="MAX"||e==="MODE"?si(n,o):void 0,u=typeof p=="string"?B(p):p??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let g of a)f.set(g,(f.get(g)??0)+1);let R="",E=0;for(let[g,y]of f){if(y>E){R=g,E=y;continue}if(y!==E)continue;let m=tt(g,R,u);(m<0||m===0&&jt(g,R)<0)&&(R=g)}return R}if(e==="MIN"||e==="MAX"){let f=c;if(f.length===0)return"";let R=f[0];for(let E of f.slice(1)){let g=tt(E,R,u);(e==="MAX"&&g>0||e==="MIN"&&g<0)&&(R=E)}return R}let d=s?c:c.map(Number);switch(e){case"SUM":return d.reduce((f,R)=>f+R,0);case"AVG":return d.length===0?0:d.reduce((f,R)=>f+R,0)/d.length;case"MEDIAN":{if(d.length===0)return"";let f=[...d].sort((E,g)=>E-g),R=Math.floor(f.length/2);return f.length%2===1?f[R]:(f[R-1]+f[R])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(d.length===0||f&&d.length<2)return"";let R=d[0],E=0,g=0,y=0;for(let A of d){let h=A-R;E++;let b=h-g;g+=b/E,y+=b*(h-g)}let m=Math.max(0,y/(f?E-1:E));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(m):m}}}function Bf(e,t,n){return n.map(r=>{let i=rt(r),o;if(t.type==="FIELD_REF"){let a=i[t.field];if(a===void 0||a===""&&e!=="MIN"&&e!=="MAX")return null;o=a}else if(t.type==="ARITH"||t.type==="NUMBER"){let a=ue(t,i);if(isNaN(a))return null;o=String(a)}else{let a=It(t,i);if(a===null||a===""&&e!=="MIN"&&e!=="MAX"||typeof a=="number"&&Number.isNaN(a))return null;o=String(a)}return o})}function yh(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 ri(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(oi(e.func,e.distinct,e.arg,e.separator,t,n));if(e.type==="AGG_GROUP_KEY"){let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Me(t[0]??{},o))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let r=ri(e.left,t,n),i=ri(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 ai(e){return lt(e)}function si(e,t){if(e.type==="FIELD_REF")return t?.(yh(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"){let o=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);return e.func==="CAST"?e.args[1]?.type==="STRING"&&e.args[1].value==="NUMBER"?"number":"string":o.has(e.func)?"number":"string"}let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>si(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 $f(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 B("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return B("string");let n=e.arg.type==="WILDCARD"?"string":si(e.arg,t)??"string";return typeof n=="string"?B(n):n}function mh(e,t,n,r){return t===null?e:e.filter(i=>ie(t,ph(i),n,void 0,r))}function Ah(e,t,n,r,i){if(e.length===0)return e;let o=hh(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i}),a=new Set;return e.filter(s=>{let l=o(s);return a.has(l)?!1:(a.add(l),!0)})}function hh(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(Ch(t,a,o))}function Hl(e,t,n,r,i,o){return t.length===0?e:Vf(e,t,n,r,i,o).rows.map(a=>a.row)}function Vf(e,t,n,r,i,o){let a=t.map(({key:c})=>{if(c.type==="ARITH_KEY")return{semantics:B("number")};if(c.type==="FUNC_KEY")return{semantics:B(Wf.has(c.expr.func)?"number":"string")};if(c.type==="GROUPING_KEY")return{semantics:B("number")};let p=i?.get(c.name);if(p)return{semantics:p};let u=n?.get(c.name);return u?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:u}}:{semantics:B(r?.get(c.name)??"string")}}),s=e.map(c=>({row:c,keys:t.map(({key:p},u)=>({s:Ih(p,c,o)}))})),l=(c,p)=>Sh(c,p,t,a);return s.sort(l),{rows:s,compare:l}}function Sh(e,t,n,r){for(let i=0;i<n.length;i++){let o=Th(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function Th(e,t,n){return tt(e.s,t.s,n.semantics)}var Wf=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Ih(e,t,n){let r=rt(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??be(t,e.name)??r[e.name]??"";case"ARITH_KEY":return String(ue(e.expr,r));case"FUNC_KEY":return ce(e.expr,r);case"GROUPING_KEY":return xn(e.ref,t)}}function Yl(e,t,n,r){let i=new Map;for(let[o,a]of e.entries()){if(!("alias"in a)||a.alias===null)continue;let s=a.alias;switch(a.type){case"FIELD":i.set(s,l=>Me(rt(l),a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{i.set(s,l=>He(l,o)??"0");break}case"ARITH_AGG_COL":{i.set(s,l=>He(l,o)??"0");break}case"WINDOW_COL":i.set(s,l=>He(l,o)??"");break;case"ARITH_COL":i.set(s,l=>String(ue(a.expr,rt(l))));break;case"STRFUNC_COL":{let l=Jt(a.expr);i.set(s,c=>li(a.expr)?He(c,o)??be(c,l)??ce(a.expr,rt(c),n,r):ce(a.expr,rt(c),n,r));break}case"CASE_COL":i.set(s,l=>Ke(a.expr)?He(l,o)??"":Fe(a.expr,rt(l),n,r));break;case"SCALAR_VALUE_COL":{let l=Rt(a.expr);i.set(s,c=>zt(a.expr)?He(c,o)??be(c,l)??"":String(Ie(a.expr,rt(c),n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>xn(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function jl(e,t,n,r,i,o){let a=t.map((s,l)=>({column:s,columnIndex:l})).filter(s=>s.column.type==="WINDOW_COL");if(e.length===0||a.length===0)return e;for(let s=0;s<e.length;s++)e[s]=Wl(e[s]);for(let{column:s,columnIndex:l}of a){let c=new Map;for(let p of e){let u=JSON.stringify(s.partitionBy.map(f=>Ph(p,f))),d=c.get(u);d?d.push(p):c.set(u,[p])}for(let p of c.values()){let u=Vf(p,s.orderBy,n,r,i),d=u.rows;if(Xi(s)){Nh(s,l,u,o);continue}if(Rs(s)){bh(s,l,d);continue}if(!Es(s))throw new Error(`InternalError: unknown window kind ${s.windowKind??"undefined"}`);let f=1,R=1;for(let E=0;E<d.length;E++){E>0&&u.compare(d[E-1],d[E])!==0&&(f=E+1,R++);let g=s.func==="ROW_NUMBER"?E+1:s.func==="RANK"?f:R;Et(d[E].row,l,String(g),[s.alias])}}}return e}function wh(e,t){let n=It(e,rt(t));return n==null||typeof n=="number"&&!Number.isFinite(n)?"":String(n)}function bh(e,t,n){let r=n.map(o=>wh(e.arg,o.row)),i=e.valueFunc==="LAG"?-1:1;for(let o=0;o<n.length;o++){let a=o+i*e.offset;Et(n[o].row,t,a>=0&&a<r.length?r[a]:"",[e.alias])}}function Nh(e,t,n,r){let i=n.rows,o=e.arg.type==="WILDCARD"?null:Bf(e.aggFunc,e.arg,i.map(d=>d.row)),a=e.arg.type==="WILDCARD"?void 0:si(e.arg,r),s=typeof a=="string"?B(a):a??B("string"),l=[],c=0,p=0,u;for(let d=0;d<i.length;d++){let f=o?.[d]??null;if(e.arg.type==="WILDCARD")c++;else if(f!==null)if(e.aggFunc==="COUNT")c++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")p+=Number(f),c++;else if(u===void 0)u=f;else{let E=tt(f,u,s);(e.aggFunc==="MAX"&&E>0||e.aggFunc==="MIN"&&E<0)&&(u=f)}let R=e.aggFunc==="COUNT"?c:e.aggFunc==="SUM"?p:e.aggFunc==="AVG"?c===0?0:p/c:u??0;l.push(String(R))}if(e.frame===null){let d=l[l.length-1];for(let f of i)Et(f.row,t,d,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let d=0;d<i.length;){let f=d;for(;f+1<i.length&&n.compare(i[f],i[f+1])===0;)f++;for(let R=d;R<=f;R++)Et(i[R].row,t,l[f],[e.alias]);d=f+1}return}for(let d=0;d<i.length;d++)Et(i[d].row,t,l[d],[e.alias])}function Ph(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Me(rt(e),n)}function ya(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function ga(e,t,n,r={}){let i=rt(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 Me(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=fe(e.func,e.distinct,e.arg);return He(t,n)??be(t,e.alias??o)??be(t,o)??Nt(t,e.alias??o)??Nt(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??ai(e.expr);return He(t,n)??be(t,o)??Nt(t,o)??"0"}case"ARITH_COL":return String(ue(e.expr,i));case"CASE_COL":return Ke(e.expr)?He(t,n)??be(t,$l(e.alias,n))??Nt(t,$l(e.alias,n))??"":Fe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return xn(e.ref,t);case"STRFUNC_COL":{let o=Jt(e.expr);return li(e.expr)?He(t,n)??be(t,e.alias??o)??be(t,o)??Nt(t,e.alias??o)??Nt(t,o)??ce(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics):ce(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let o=Rt(e.expr);return zt(e.expr)?He(t,n)??be(t,e.alias??o)??be(t,o)??Nt(t,e.alias??o)??Nt(t,o)??"":String(Ie(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return He(t,n)??be(t,e.alias)??Nt(t,e.alias)??""}}function Ch(e,t,n={}){return e.map((r,i)=>{let o=ga(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function rr(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let f=e.map(E=>{let g=Mf(vf(E),a),y=ga(t[0],E,0,{wildcardKeys:Object.keys(g)}),m={};if(typeof y!="string")for(let[A,h]of y.entries)h!==null&&(m[A]=h);return m}),R=f.length>0?Object.keys(f[0]):[...i??[]];return{rows:f,columns:R}}let s=Dh(t),l=_h(t),c=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),p=c?null:Oh(t,s,l),u=p??[];return c&&e.length===0?{rows:[],columns:Lh(t,s,l)}:{rows:e.map((f,R)=>{let E={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(Mf(vf(f),a)),parentWildcardKeys:Object.keys(f).filter(y=>y.startsWith("_p.")).sort()};for(let[y,m]of t.entries()){let A=ga(m,f,y,g);switch(m.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof A!="string")for(let[h,b]of A.entries)b!==null&&(E[h]=b);break;case"PARENT_WILDCARD":{if(typeof A!="string")for(let[h,b]of A.entries)b!==null&&(E[h]=b),R===0&&u.push(h);break}case"FIELD":{let h=p?.[y]??m.alias??s.get(y)??m.field;E[h]=A,p===null&&R===0&&u.push(h);break}case"LITERAL_COL":{let h=p?.[y]??m.alias??`'${m.value}'`;E[h]=A,p===null&&R===0&&u.push(h);break}case"AGGREGATE":{let h=fe(m.func,m.distinct,m.arg),b=p?.[y]??m.alias??h;E[b]=A,p===null&&R===0&&u.push(b);break}case"ARITH_AGG_COL":{let h=p?.[y]??m.alias??ai(m.expr);E[h]=A,p===null&&R===0&&u.push(h);break}case"ARITH_COL":{let h=p?.[y]??m.alias??ql(m.expr);E[h]=A,p===null&&R===0&&u.push(h);break}case"CASE_COL":{let h=p?.[y]??m.alias??l.get(y)??"case";E[h]=A,p===null&&R===0&&u.push(h);break}case"GROUPING_COL":{let h=p?.[y]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;E[h]=A,p===null&&R===0&&u.push(h);break}case"STRFUNC_COL":{let h=p?.[y]??m.alias??Jt(m.expr);E[h]=A,p===null&&R===0&&u.push(h);break}case"SCALAR_VALUE_COL":{let h=p?.[y]??m.alias??Rt(m.expr);E[h]=A,p===null&&R===0&&u.push(h);break}case"SCALAR_SUBQUERY_COL":{let h=p?.[y]??m.alias??"(subquery)";E[h]=A,p===null&&R===0&&u.push(h);break}case"WINDOW_COL":{let h=p?.[y]??m.alias;E[h]=A,p===null&&R===0&&u.push(h);break}}}return E}),columns:u}}function Oh(e,t,n){return e.map((r,i)=>Hf(r,i,t,n))}function Lh(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=Hf(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function Hf(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??ai(e.expr);case"ARITH_COL":return e.alias??ql(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??Jt(e.expr);case"SCALAR_VALUE_COL":return e.alias??Rt(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 _h(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 Dh(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Df(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=Df(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 Df(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function vf(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function ql(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"?H(n):n.type==="STRING_FUNC"?Jt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Jt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?ai(n):n.type==="VARIABLE"?`@${n.name}`:Rt(n));return`${e.func}(${t.join(",")})`}function Rt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return H(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Jt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${Rt(e.left)}${e.op}${Rt(e.right)}`;case"CONCAT_OP":return`${Rt(e.left)}||${Rt(e.right)}`}}function vh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:zt(e)}function zt(e){return e.type==="STRING_FUNC"?li(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?zt(e.left)||zt(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Uf(t.result))||e.elseResult!==null&&Uf(e.elseResult):!1}function Uf(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:zt(e)}function li(e){return e.args.some(t=>vh(t))}function Uh(e,t,n){if(e.type==="AGG_REF"){let r=oi(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=ri(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(Me(t[0]??{},r)),raw:Me(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?zl(e,t,n):ii(e,t,n)}function ii(e,t,n){return e.type==="STRING_FUNC"?zl(e,t,n):e.type==="CASE_WHEN"?Yf(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:ii(e.left,t,n),right:ii(e.right,t,n)}:e}function kf(e,t,n){if(e.type==="AGG_REF"){let r=oi(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=ri(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:ii(e,t,n)}function Yf(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:kf(r.result,t,n)})),elseResult:e.elseResult===null?null:kf(e.elseResult,t,n)}}function zl(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>Uh(r,t,n))}}function Mf(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 Ff(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Kl(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function kh(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,B("number"));else if(r.type==="WINDOW_COL"){if(Es(r)||Xi(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,B("number"));else if((Xi(r)||Rs(r))&&r.arg.type!=="WILDCARD"){let i=si(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?B(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,B("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,B("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,B("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,B(Wf.has(r.expr.func)?"number":"string"));return n}function Jl(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:R,hiddenQualifiedAliases:E,resolvedGroupingSpec:g,plainGroupByPlan:y}=e,m=kh(t.columns,u);for(let[P,D]of a??[])m.set(P,D);let A=[],h=t.from.alias;A=(n.get(h)??n.get(null)??[]).map(P=>Pt(P,h));let w=Kl(Ff(R?.get(h),h),void 0,A);for(let P of t.joins){let D=P.table.alias,_=(n.get(D)??[]).map(S=>Pt(S,D)),k=Kl(Ff(R?.get(D),D),void 0,_);A=dh(A,_,P,{leftColumns:w,rightColumns:k}),w=Kl(w,k,A)}let C=e.residualWhere!==void 0?e.residualWhere:t.where;A=fh(A,C,s,d,l);let I=Z(t);if(I.type==="GROUPING_SETS"){if(!g)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");A=Rh(A,g,t.columns,u,{maxGeneratedRows:5e4})}else(I.type==="PLAIN"||Gf(t.columns))&&(A=Eh(A,I.type==="PLAIN"?I.allItems:[],t.columns,u,I.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));let L=P=>P.aggregateRef?$f(P.aggregateRef,u):p?.(P);return A=mh(A,t.having,c,L),A=jl(A,t.columns,i,o,m,u),t.distinct&&(A=Ah(A,t.columns,r,s,l)),A=Hl(A,t.orderBy,i,o,m,Yl(t.columns,r,s,l)),A=ya(A,t.limit,t.offset),rr(A,t.columns,r,s,f,l,E)}function jf(e,t){let n=[];for(let r of e){let i=Xl(r.$id?.value),o=Mh(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=Xl(p?.value);l[`_p.${c}`]={value:u}}for(let[c,p]of Object.entries(s.value??{}))l[c]={value:Xl(p?.value)};n.push(l)}}return n}function Mh(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Xl(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 qf(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function zf(e,t){let n=ui(e);for(let[r,i]of Object.entries(t))n[r]=ui(i);return n}function Jf(e){let t=[...e.preErrors.map(i=>Ql(i)),...e.postImageErrors.map(i=>Ql(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Ql(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]=ui(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Ql(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 ui(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(ui(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=ui(a,t);return i}function Qf(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"&&Ze(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 eu(e){return Qf(e,!0)}function ma(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 it(e,t,n,r,i=!0,o=!0,a=r){let s=eu(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:ye(e.where)}),ma(e,e).forEach((l,c)=>it(l,`${t}.select-source[${c}]`,n,a,a?!1:i,a?!1:o,a))}function ci(e,t,n,r,i=!0){e.left.type==="UNION"?ci(e.left,`${t}.left`,n,r,i):it(e.left,`${t}.left`,n,r,!0,i),it(e.right,`${t}.right`,n,r,!0,i)}function Xf(e,t,n,r){if(!r&&Gt(e)){it(Kt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?it(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&ci(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?it(e.query,`${t}.main`,n,r,!1,!r,!0):ci(e.query,`${t}.main`,n,!0,!1)}function Zf(e,t,n,r=!1){switch(e.type){case"SELECT":it(e,t,n,r);return;case"UNION":ci(e,t,n,r);return;case"WITH":Xf(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Xf(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?ci(e.query,`${t}.query`,n,!0,!1):it(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":Zf(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=eu(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:ye(e.where)}),ma(e,e).forEach((o,a)=>it(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=eu(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:ye(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=Qf(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}ma(e,e).forEach((o,a)=>it(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:ma(e,e).forEach((i,o)=>it(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Aa(e,t){let n=new Map;for(let r of t){if(!Ze(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 tu(e,t){return t.eligible===!0&&$e(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function Fh(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&tr(t)}function xh(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function Gh(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 Dn(e)?(n.some(r=>r!==At)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(At)||n.push(At)):n.includes(tn)||n.push(tn),[...new Set(n)]}function Zl(e,t){let n=e.functionNames[0],r=Dn(n)?At:tn,i=Gh(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function eE(e,t){let n=[];Zf(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=xh(i);return r.push(p),{hasRelativeDate:i.functionNames.some(te),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Zl(i)}}if(i.kind==="SELECT"){let p=i.source,u=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,d=$e(p),f=await t.select(p),R="";try{R=i.where===null?"":Y(i.where)}catch{R=""}let E=u&&d==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Aa(R,i.relativeFunctionOccurrences),g,y;if(!E&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let b=await t.prefilterDecomposition(p);b?.eligible===!0&&tu(p,b)&&(g=b.plan,y=!0,E=!0)}let m;!E&&f.capability==="EXACT_PUSHDOWN"&&(m=mo({select:p,selectMode:d,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:R||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,m&&(g=m.prefilterPlan,E=!0));let A;if(!E&&t.joinServerFunctionPlan){let b=await t.joinServerFunctionPlan(p);b!==null&&Fh(p,b)&&(A=b,E=!0)}let h={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:d,capability:f,restQuery:R,...g?{prefilterPlan:g,phase2PrefilterEligible:y}:{},...m?{fullScanExactPlan:m,allowForm:m.allowForm}:{},...A?{joinServerFunctionPlan:A,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:A.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!E,allowed:E};if(r.push(h),!E)return{hasRelativeDate:n.some(b=>b.functionNames.some(te)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Zl(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":Y(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Aa(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(te)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Zl(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(te)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function nu(e){if(!e.allowed&&e.rejection){let t=Dn(e.rejection.functionName)?At:tn,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 ru(e,t,n={}){let r=me(e.where,t),i=(A,h="INELIGIBLE")=>({eligible:!1,disposition:h,reasonCodes:A,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=di(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=Kh(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!Bh(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=Vh(e.where,t),l=br(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),c=n.serialize??Y,p=n.containsFunctions??Aa,u=[];for(let A of a.leaves){let h=Ia(A);if(h===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let b;try{b=c(A)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!p(b,[h]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(A)}let d=$h(l.condition),f=new Set(u),R=Sa(e.where,f,d);if(R===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let E;try{E=c(R)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let g=u.map(A=>Ia(A));if(!p(E,[...new Set(g)])||!Wh(E,g))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):Ta(e.where,f);if(y!==null&&di(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let m=new Set;for(let A of g)m.add(A);return{eligible:!0,plan:{prefilterWhere:R,residualWhere:y,exactRelativeLeaves:u,relativeFunctionNames:m,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function Kh(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}di(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":di(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Ia(o)===null)return;if(me(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":di(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 Ia(e){return e.right.type==="KINTONE_FUNC"&&Ze(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Ze(e.right.values[0].name)?e.right.values[0].name:null}function di(e){let t=[],n=r=>{if(r.type==="BINARY"&&Ia(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 Bh(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 $h(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 Sa(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=Sa(e.left,t,n),i=Sa(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=Sa(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var pi={type:"BOOLEAN",value:!0};function Ta(e,t){if(e.type==="BINARY"&&t.has(e))return pi;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Ta(e.left,t)??pi,r=Ta(e.right,t)??pi;return ha(n)?ha(r)?null:r:ha(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Ta(e.expr,t)??pi;return ha(n)?pi:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function ha(e){return e.type==="BOOLEAN"&&e.value}function Vh(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 Wh(e,t){let n=new Map;for(let r of t){if(!Rr.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 V=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function tE(e,t){if(!t)throw new V("IMPORT source capability is not available.");let n=t(e);if(!n)throw new V(`source "${e}" is not supplied.`);return n}async function wa(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new V("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new V("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function Hh(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new V(`invalid ${t.toUpperCase()} byte sequence.`)}}function Yh(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!==`
|
|
5
|
-
`)throw new
|
|
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 Oe("\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}}};function ol(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Lm(t)}function gd(e){let t=e.codePointAt(0);return ol(e)||t>=48&&t<=57}function Jn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Lm(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var md=20,sl=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"}),hd=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),xr=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"}),EN=Object.freeze(Object.values(xr).filter(e=>e!==void 0)),_m=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Dm=new Set(_m);function vm(e){return Dm.has(e)}var Sd=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Fr=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function Ad(e){return Fr[e]!==void 0}var Um=Object.freeze([...io]),km=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Mm=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function xm(e){return km.has(e)}function Fm(e){return Mm.has(e)}function Gm(e){return Number.isInteger(e)&&e>=1&&e<=31}var RN=Object.freeze(Array.from(new Set([...Object.keys(sl),...hd,...Object.keys(xr),...Object.keys(Sd),...Object.keys(Fr),...Um,"IF"]))),Km=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 Bm(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Km.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"}},al=["\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
|
+
`),qt=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.tempTableRefs=[];this.aggregateGroupKeyTokens=new WeakMap;this.allowSelectArithVariable=!1}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(){let t=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let n=this.peek();if(t.push(this.parseStatement()),t.length>md)throw new T(`batch exceeds ${md} statements.`,n);let r=this.peek();if(r.kind!==";"&&r.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",r)}return this.expect("EOF"),t}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==="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 \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=Fr[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")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=Fr[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.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek(),r;if(n.kind==="WITH")r=this.parseWith();else if(n.kind==="SELECT")r=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",n);return{type:"CREATE_TEMP_TABLE",name:t,query:r}}parseDropTempTable(){return 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"),{type:"DROP_TEMP_TABLE",name:this.parseTempTableName()}}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;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)}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}=wt(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}=wt(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 w=this.parseIdentifier();if(s.has(w))throw new T(`IMPORT target ${w} is declared more than once.`,this.prev());if(s.add(w),this.peek().kind==="("){this.advance();let D=this.parseIdentList();if(this.expect(")"),new Set(D).size!==D.length)throw new T(`IMPORT subtable ${w} contains duplicate child declarations.`,this.prev());let P;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()}P=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:w,children:D,...P?{rowIdSourceHeader:P}:{}})}else a.push(w),o.push({kind:"FIELD",field:w});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 w=this.parseIdentifier().toUpperCase();if(w!=="UTF8"&&w!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());p=w==="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!==ke||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(w=>w.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 R="POSITION",E=!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(R="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(),E=!0}}let g,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let w of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(w))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"&&(g=this.parseOnDuplicate());let m;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("("),m=this.parseIdentList(),this.expect(")"),new Set(m).size!==m.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let S=o.filter(w=>w.kind==="SUBTABLE");if(S.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(S.some(w=>w.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(m)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(R!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!m)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let w=new Set(m);for(let D of S){if(!D.rowIdSourceHeader)throw new T(`CSV subtable ${D.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!w.has(D.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${D.subtableCode}.`,this.prev())}for(let D of w)if(!S.some(P=>P.subtableCode===D))throw new T(`REPLACE SUBTABLES target ${D} is not declared in INTO.`,this.prev())}}else if(m)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(R!=="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(g)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:R,ignoreUnknownColumns:E,...d?{columns:d}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...m?{replaceSubtables:m}:{},...g?{keyFields:g}:{},...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}=wt(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.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(),{type:"ASSERT",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(),{type:"ASSERT",left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};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&&Bm(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:ke},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,R=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(y=>y.type==="WINDOW_COL"),g=r.some(y=>this.selectColumnHasAggregate(y));if(E&&(l.length>0||c!==void 0||g))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:R}}parseWith(){this.expect("WITH");let t=[];do{let r=this.parseIdentifier();this.expect("AS"),this.expect("(");let i,o=this.peek().kind;o==="SHOW"?i=this.parseShow():o==="DESCRIBE"||o==="DESC"?i=this.parseDescribe():o==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES"?i=this.parseGenerateSeries():i=this.tryParseUnionChain(this.parseSelect()),this.expect(")"),t.push({name:r,query:i}),this.cteNames.add(r)}while(this.consume(","));let n=this.tryParseUnionChain(this.parseSelect());return this.cteNames.clear(),{type:"WITH",ctes:t,query:n}}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({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});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(Ae(`${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(al,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.advance();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());let s=this.parseAliasName();return this.withAliasDisplay({type:"VARIABLE_COL",name:a.value.slice(1).toLowerCase(),alias:s.alias},s)}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 Sd[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(xr[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(al,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(al,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"?Ae(`-${j(n)}`):{type:"AGG_ARITH",left:Ae("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ae(n.value)}if(this.peek().kind==="VARIABLE")return{type:"VARIABLE",name:this.advance().value.slice(1).toLowerCase()};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),xr[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 Ae(`${n.kind==="-"?"-":"+"}${j(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:Ae("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ae(n.value);if(n.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:n.value.slice(1).toLowerCase()};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 Ae(`+${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"?Ae(`-${j(n)}`):{type:"ARITH",left:Ae("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ae(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};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=sl[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=sl[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(hd.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=$m(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 xr[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(!vm(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(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};let{appId:r,subtableCode:i}=wt(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"?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(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};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:Ee(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 Ae(`+${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(!xm(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(!Fm(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(!Gm(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(),{type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(Ad(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Fr[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}return{type:"VARIABLE_IN_LIST",name: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").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(Ae(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(Ae(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push({type:"VARIABLE",name:i.value.slice(1).toLowerCase()});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=ip(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}=wt(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);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}=wt(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(),R=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,...R}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length)),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.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}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){let n=[];do if(this.peek().kind==="[")n.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let r=this.parseCaseWhenExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="IF"){let r=this.parseIfExpr();n.push({type:"CASE_VALUE",expr:r})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let r=this.advance(),i=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");n.push(Ae(`${r.kind==="-"?"-":"+"}${i.value}`))}else{let r=this.advance();if(r.kind==="STRING")n.push({type:"STRING",value:r.value});else if(r.kind==="NUMBER")n.push(Ae(r.value));else 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",r)}while(this.consume(","));if(n.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${n.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return n}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=wt(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)),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(Ad(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}=wt(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}=wt(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"||Ko.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 $m(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 wt(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 zt(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 Vm(e,t){return e<t?-1:e>t?1:0}function Td(e){if(e==="")return{band:0};let t=Te(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 Wm(e,t){let n=Td(e),r=Td(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Qi(n.value,r.value):n.band===5&&r.band===5?zt(n.value,r.value):0}function Id(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 Hm(e,t,n){let r=Id(e,n),i=Id(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=zt(r.normalizedId,i.normalizedId);return o!==0?o:zt(r.display,i.display)}function Ym(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 wd(e,t){let n=t.optionOrder??new Map,i=[...new Set(Ym(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(bd),i}function bd(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:zt(e.label,t.label)}function jm(e,t,n){let r=wd(e,n),i=wd(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=bd(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function et(e,t,n){switch(n.compareMode){case"string":return zt(e,t);case"number":return Wm(e,t);case"recordNumber":return Hm(e,t,n.fieldType==="RECORD_NUMBER");case"option":return jm(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function pn(e,t,n,r=G("string")){let i=et(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 Nd(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=Te(o),l=Te(a),c=s!==null&&l!==null?Qi(s,l):Vm(Number(o),Number(a));if(c!==0)return c}return zt(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ce(e,t){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(Me(t,e.field));if(e.type==="STRING_FUNC")return Number(pe(e,t));let n=ce(e.left,t),r=ce(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 we(e,t,n,r){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Me(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 pe(e,t,n,r);case"CASE_WHEN":return xe(e,t,n,r);case"CONCAT_OP":return pe({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r);case"SCALAR_ARITH":{let i=Number(we(e.left,t,n,r)),o=Number(we(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 bt(e,t,n,r){switch(e.type){case"CASE_WHEN":return Ld(e,t,n,r);case"SCALAR_ARITH":{let i=bt(e.left,t,n,r),o=bt(e.right,t,n,r);if(i===null||o===null)return null;let a=Number(i),s=Number(o);switch(e.op){case"+":return a+s;case"-":return a-s;case"*":return a*s;case"/":return s!==0?a/s:NaN;case"%":return s!==0?a%s:NaN}}case"CONCAT_OP":{let i=bt(e.left,t,n,r),o=bt(e.right,t,n,r);return`${i??""}${o??""}`}default:return we(e,t,n,r)}}function Bo(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 qm(e){return e>=55296&&e<=56319}function zm(e){return e>=56320&&e<=57343}function Vo(e,t){return t>0&&t<e.length&&qm(e.charCodeAt(t-1))&&zm(e.charCodeAt(t))}function Pd(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 ul(e,t){let n=Math.min(Math.max(0,t),e.length);return Vo(e,n)&&(n-=1),e.slice(0,n)}function Jm(e,t){let n=Math.max(0,e.length-t);return Vo(e,n)&&(n+=1),e.slice(n)}function Xm(e,t,n){let r=Pd(t,e.length),i=Pd(n,e.length);return i<=r?"":(Vo(e,r)&&(r+=1),Vo(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function Qm(e,t){let n=e.repeat(Math.ceil(t/e.length));return ul(n,t)}var Zm=200,Gr=new Map;function eA(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 ll(e,t,n=!1){let r=eA(t)+(n?"g":""),i=`${e}\0${r}`,o=Gr.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(Gr.size>=Zm){let s=Gr.keys().next().value;s!==void 0&&Gr.delete(s)}return Gr.set(i,a),a}function tA(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function nA(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 rA(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 iA(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 rA(n,o,p,l?s:void 0)})}function pe(e,t,n,r){Mo(e.func,e.args);let i=e.args.map(o=>dA(o,t,n,r));switch(e.func){case"UPPER":return(i[0]??"").toUpperCase();case"LOWER":return(i[0]??"").toLowerCase();case"TRIM":return(i[0]??"").trim();case"LTRIM":return(i[0]??"").trimStart();case"RTRIM":return(i[0]??"").trimEnd();case"LENGTH":return String((i[0]??"").length);case"LENGTH_CHAR":return String([...i[0]??""].length);case"SUBSTRING":{let o=i[0]??"",a=Math.max(0,Number(i[1]??"1")-1),s=i[2]!==void 0?Number(i[2]):void 0;return Xm(o,a,s!==void 0?a+s:o.length)}case"LEFT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":ul(o,a)}case"RIGHT":{let o=i[0],a=Math.trunc(Number(i[1]));return Number.isNaN(a)||a<=0?"":Jm(o,a)}case"INSTR":return String(i[0].indexOf(i[1])+1);case"LPAD":case"RPAD":{let o=i[0],a=Math.trunc(Number(i[1]));if(Number.isNaN(a)||a<=0)return"";if(o.length>=a)return ul(o,a);let s=i[2]??" ";if(s==="")return o;let l=Qm(s,a-o.length);return e.func==="LPAD"?l+o:o+l}case"GREATEST":case"LEAST":return Nd(i,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return i.join("");case"REPLACE":{let o=i[0]??"",a=i[1]??"",s=i[2]??"";return a===""?o:o.split(a).join(s)}case"REGEXP_LIKE":return ll(i[1],i[2]??"").test(i[0])?"1":"0";case"REGEXP_REPLACE":{tA(i[2]);let o=nA(i[4]),a=ll(i[1],i[3]??"",!0);return o===0?i[0].replace(a,i[2]):iA(i[0],a,i[2],o)}case"REGEXP_SUBSTR":return ll(i[1],i[2]??"").exec(i[0])?.[0]??"";case"TRANSLATE":{let o=[...i[1]],a=[...i[2]];if(o.length!==a.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=${o.length}, to=${a.length}\uFF09`);let s=new Map;return o.forEach((l,c)=>{s.has(l)||s.set(l,a[c])}),[...i[0]].map(l=>s.get(l)??l).join("")}case"COALESCE":return i.find(o=>o!=="")??"";case"NULLIF":return(i[0]??"")===(i[1]??"")?"":i[0]??"";case"ISNULL":return(i[0]??"")!==""?i[0]??"":i[1]??"";case"ROUND":return Bo("round",Number(i[0]??"0"),Number(i[1]??"0"));case"FLOOR":return Bo("floor",Number(i[0]??"0"),Number(i[1]??"0"));case"CEIL":return Bo("ceil",Number(i[0]??"0"),Number(i[1]??"0"));case"TRUNCATE":return Bo("trunc",Number(i[0]),Number(i[1]??"0"));case"CAST":{let o=i[0]??"";if((i[1]??"TEXT")==="NUMBER"){let s=Number(o);return isNaN(s)?o:String(s)}return o}case"FORMAT":{let o=Number(i[0]??"0"),a=i[1]??"0";return cA(o,a)}case"YEAR":{let o=i[0]??"";return o.length>=4?String(parseInt(o.slice(0,4),10)):""}case"MONTH":{let o=i[0]??"";return o.length>=7?String(parseInt(o.slice(5,7),10)):""}case"DAY":{let o=i[0]??"";return o.length>=10?String(parseInt(o.slice(8,10),10)):""}case"DAYOFWEEK":return $o(i[0])?String(cl(i[0])+1):"";case"QUARTER":return $o(i[0])?String(Math.ceil(Number(i[0].slice(5,7))/3)):"";case"WEEK":return $o(i[0])?String(Od(i[0])):"";case"DATE_FORMAT":return aA(i[0]??"",i[1]??"");case"DATEDIFF":return sA(i[0]??"",i[1]??"");case"DATE_ADD":return lA(i[0]??"",Number(i[1]??"0"),(i[2]??"DAY").toUpperCase());case"LAST_DAY":return uA(i[0]);case"ABS":return String(Math.abs(Number(i[0]??"0")));case"MOD":{let o=Number(i[0]??"0"),a=Number(i[1]??"0");return String(a!==0?o%a:NaN)}case"POWER":return String(Math.pow(Number(i[0]??"0"),Number(i[1]??"0")));case"SQRT":return String(Math.sqrt(Number(i[0]??"0")));case"CURRENT_DATE":{let o=new Date,a=o.getFullYear(),s=String(o.getMonth()+1).padStart(2,"0"),l=String(o.getDate()).padStart(2,"0");return`${a}-${s}-${l}`}case"CURRENT_TIMESTAMP":return new Date().toISOString()}}function Kr(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 Wo(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 $o(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Wo(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 cl(e){return Wo(e).getUTCDay()}function Cd(e){let t=Wo(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function oA(e){return Cd(e).getUTCFullYear()}function Od(e){let t=Cd(e),n=t.getUTCFullYear(),r=Wo(`${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 aA(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=Kr(e),l=$o(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(cl(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][cl(e)]:"";case"%v":return l?String(Od(e)).padStart(2,"0"):"";case"%G":return l?String(oA(e)).padStart(4,"0"):"";default:return c}})}function sA(e,t){if(e.length<10||t.length<10)return"0";let n=Kr(e),r=Kr(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 lA(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}=Kr(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 uA(e){if(!e||e.length<10)return e;let{y:t,mo:n}=Kr(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 cA(e,t){if(/^-?\d+$/.test(t.trim()))return pA(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,R=d?`${f}.${d}`:f;return n?R+"%":R}function pA(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 dA(e,t,n,r){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(Br(e,t)):e.type==="NUMBER"?j(e):String(we(e,t,n,r))}function Br(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[Ee(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Me(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(Br(e.left,t)),r=Number(Br(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 Me(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""}function ae(e,t,n,r,i){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return fA(e,t,n,r,i);case"NULL_CHECK":return AA(e,t);case"LOGICAL":return hA(e,t,n,r,i);case"NOT":return!ae(e.expr,t,n,r,i);case"GROUP":return ae(e.expr,t,n,r,i);case"EXISTS":{let o=e.resolved;return e.not?!o:o}}}function fA(e,t,n,r,i){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 o=Fd(e.left,t,n,i),a=e.left.type==="FIELD"?n?.(e.left):void 0,s=RA(e.left,a,i);return EA(e.op,o,e.right,t,a,n,s,i)}function EA(e,t,n,r,i,o,a=G("string"),s){if(e==="IN"||e==="NOT_IN"){let c=null;if(n.type==="IN_LIST"&&(mA(n.values),c=new Set(n.values.map(u=>u.type==="NUMBER"?i==="NUMBER"?j(u):String(u.value):u.value))),n.type==="SUBQUERY_IN_LIST"&&(c=n.resolved),c===null)return e==="NOT_IN";let p=yA(t,c,i);return e==="IN"?p:!p}if(e==="LIKE"){let c=pl(n,r,o);return xd(t,c)}if(e==="NOT_LIKE"){let c=pl(n,r,o);return!xd(t,c)}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 l=pl(n,r,o,s);return pn(e,t,l,a)}var _d=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function RA(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?ee({fieldType:t}):G("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return G("number");if(e.type==="FUNC_FIELD")return G(_d.has(e.expr.func)?"number":"string");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 G("number");if(o.type==="STRING_FUNC")return G(_d.has(o.func)?"number":"string");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)??G("string")}return G("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?G("number"):G("string")}var Dd=new Set(["CHECK_BOX","MULTI_SELECT"]),vd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),gA=new Set(["CREATOR","MODIFIER"]);function yA(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=G("number");return[...t].some(a=>pn("=",e,a,o))}let i;if(Dd.has(n)||vd.has(n)||gA.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Dd.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):vd.has(n)?!Array.isArray(i)||!i.every(Ud)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Ud(i)?t.has(i.code):r()}function Ud(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function mA(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}: ${St}`)}function AA(e,t){let n=Fd(e.field,t);return e.not?n!=="":n===""}function hA(e,t,n,r,i){return e.op==="AND"?ae(e.left,t,n,r,i)&&ae(e.right,t,n,r,i):ae(e.left,t,n,r,i)||ae(e.right,t,n,r,i)}function Fd(e,t,n,r){if(e.type==="FUNC_FIELD")return pe(e.expr,t);if(e.type==="AGG_FIELD")return String(Br(e.expr,t));if(e.type==="ARITH_FIELD")return String(ce(e.expr,t));if(e.type==="CASE_FIELD")return xe(e.expr,t,n,r);if(e.type==="GROUPING_FIELD")return $n(e.ref,t);let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Me(t,i)}function pl(e,t,n,r){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 j(e);case"KINTONE_FUNC":return SA(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"?Me(t,e.expr.field):e.expr.type==="STRING_FUNC"?pe(e.expr,t):String(ce(e.expr,t));case"CASE_VALUE":return xe(e.expr,t,n,r);case"ARRAY":return e.elements.map(i=>i.value).join(",")}}function xe(e,t,n,r){for(let i of e.branches)if(ae(i.condition,t,n,void 0,r))return Md(i.result,t,n,r);return e.elseResult!==null?Md(e.elseResult,t,n,r):""}function Ld(e,t,n,r){for(let i of e.branches)if(ae(i.condition,t,n,void 0,r))return kd(i.result,t,n,r);return e.elseResult===null?null:kd(e.elseResult,t,n,r)}function kd(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[Ee(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[ut(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ce(e,t):bt(e,t,n,r)}function Md(e,t,n,r){return e.type==="ARRAY"?e.elements.map(i=>i.value).join(","):e.type==="AGG_REF"?t[Ee(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[ut(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ce(e,t)):String(we(e,t,n,r))}function Gd(e){let t=new Date;switch(e){case"TODAY":{let n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),i=String(t.getDate()).padStart(2,"0");return`${n}-${r}-${i}`}case"NOW":return t.toISOString();case"LOGINUSER":case"PRIMARY_ORGANIZATION":return""}}function SA(e){throw ne(e)?new Error(`${e}: ${on}`):Mn(e)?new Error(`${e}: ${St}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Ho=new Map,TA=200;function xd(e,t){if(!Ap(t))return e.includes(t);let n=Ho.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"),Ho.size>=TA&&Ho.clear(),Ho.set(t,n)}return n.test(e)}function Xn(e){return Bd(e)}function Kd(e){return Bd(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Bd(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 be("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 be("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 be(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Yo(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ae(a.condition,t,n))continue;let s=we(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function dl(e){if(Ft(e))throw new ie("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 IA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),wA=new Set(["CHECK_BOX","MULTI_SELECT"]);function zo(e,t=new Map){let n=e.values.map(r=>bA(e.fields,r,t));return Hr(n,100).map(r=>({app:e.appId,records:r}))}function bA(e,t,n){let r={};return e.forEach((i,o)=>{let a=t[o];a.type==="CASE_VALUE"?r[i]={value:Jt(a.expr,{},n.get(i))}:r[i]={value:Nt(a,n.get(i))}}),r}function Vr(e){dl(e.where);let t=ef(e);return{app:e.appId,query:Y(e.where),fields:["$id",...t],totalCount:!1}}function Wr(e,t,n=new Map){let r=NA(e.assignments,n);return Hr(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function NA(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:Nt(i,t.get(r))});return n}function Hd(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 Jo(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 fl(e){dl(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Yd(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Qn(n,t):n.type==="STRING_FUNC"?El(n,t):n.type==="CASE_VALUE"&&jd(n.expr,t);return ef(e).forEach(n=>t.add(n)),{app:e.appId,query:Y(e.where),fields:["$id",...t],totalCount:!1}}function Yd(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 DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Yd(e,t):e.type==="STRING_FUNC"&&El(e,t)}function El(e,t){for(let n of e.args)PA(n,t)}function PA(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){qo(e,t);return}Qn(e,t)}function Qn(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){El(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Qn(e.left,t),Qn(e.right,t);return}e.type==="CASE_WHEN"&&jd(e,t)}function qo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&CA(e.arg,t);return}e.type==="AGG_ARITH"&&(qo(e.left,t),qo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function CA(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?$r(e,t):Qn(e,t)}function $d(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){qo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){$r(e,t);return}Qn(e,t)}}function jd(e,t){for(let n of e.branches)jo(n.condition,t),$d(n.result,t);e.elseResult!==null&&$d(e.elseResult,t)}function jo(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&$r(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":jo(e.left,t),jo(e.right,t);break;case"NOT":case"GROUP":jo(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Rl(e,t,n=new Map){let r=t.map(i=>{let o=Number(i.$id.value),a=qd(i),s={};for(let{field:l,value:c}of e.assignments)s[l]={value:gl(c,a,n.get(l),i)};return{id:o,record:s}});return Hr(r,100).map(i=>({app:e.appId,records:i}))}function gl(e,t,n,r){if(e.type==="ARITH")return String(r?ml(e,r):ce(e,t));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(we(e,t));if(e.type==="STRING_FUNC")return pe(e,t);if(e.type==="CASE_VALUE")return Jt(e.expr,t,n);if(e.type==="SOURCE_FIELD")throw new ie("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Nt(e,n)}function Xo(e,t,n){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return j(e);if(e.type==="ARITH")return String(ce(e,t));if(e.type==="CASE_VALUE")return xe(e.expr,t,n);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 OA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function yl(e,t,n=new Map){let r=t.map(({target:i,source:o})=>{let a=Number(i.$id?.value);if(!Number.isSafeInteger(a)||a<=0)throw new ie("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let s=qd(i),l={};for(let{field:c,value:p}of e.assignments){let u=n.get(c);if(p.type==="SOURCE_FIELD"){if(OA.has(u??""))throw new ie(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${u} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${c}\uFF09`);if(!Object.prototype.hasOwnProperty.call(o,p.field))throw new ie(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${p.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let d=o[p.field];if(typeof d!="string")throw new ie(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${p.field}\uFF09`);if((u==="NUMBER"||u==="CALC")&&d!==""&&!Number.isFinite(Number(d)))throw new ie(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${d}`);l[c]={value:Nt({type:"STRING",value:d},u)}}else{if(p.type==="STRING_FUNC")throw new ie("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");p.type==="ARITH"?l[c]={value:String(ml(p,i))}:p.type==="SCALAR_ARITH"||p.type==="CONCAT_OP"?l[c]={value:String(we(p,s))}:p.type==="CASE_VALUE"?l[c]={value:Jt(p.expr,s,u)}:l[c]={value:Nt(p,u)}}}return{id:a,record:l}});return Hr(r,100).map(i=>({app:e.appId,records:i}))}function qd(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function ml(e,t){let n=Vd(e.left,t),r=Vd(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new ie("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new ie("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Vd(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 ml(e,t);if(e.type==="STRING_FUNC")throw new ie("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 ie(`\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 zd(e){return dl(e.where),{app:e.appId,query:Y(e.where),fields:["$id"],totalCount:!1}}function Jd(e,t){return Hr(t,100).map(n=>({app:e,ids:n}))}function Xd(e){return IA.has(e??"")}function LA(e){return wA.has(e??"")}function _A(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 DA(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Qd(e,t){return Xd(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):LA(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?_A(e):t==="DATE"?DA(e):e}function Zd(e,t){return Xd(t)?e.map(n=>({code:n})):e}function Wd(e,t,n){if(e.type==="ARRAY")return Zd(e.elements.map(r=>r.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"?Qd(e.value,n):e.type==="STRING_FUNC"?pe(e,t):e.type==="FIELD_REF"||e.type==="ARITH"?String(ce(e,t)):String(we(e,t))}function ef(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Xn(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Jt(e,t,n){for(let r of e.branches)if(ae(r.condition,t))return Wd(r.result,t,n);return e.elseResult!==null?Wd(e.elseResult,t,n):""}function Nt(e,t){let n=Al(e,t);if(!n.ok)throw new ie(n.message);return n.value}function Al(e,t){try{return{ok:!0,value:vA(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function vA(e,t){switch(e.type){case"VARIABLE":throw new ie(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ie(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Qd(e.value,t);case"NUMBER":return j(e);case"ARRAY":return Zd(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new ie(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new ie("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new ie("\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 ie("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 ie("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ie("\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 Hr(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ie=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var hl=new Set(["CHECK_BOX","MULTI_SELECT"]),UA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Yr(e){throw new Error(`ArgumentError: ${e}`)}function tf(e,t,n){let r=kA(n.fieldType,e.field),i=MA(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let m=y.value;m!==""&&(y.kind==="ADD"?(s.has(m)||a.push(m),s.add(m)):l.add(m))}for(let y of s)l.has(y)&&Yr(`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,R=new Set,E=e.operations.map(y=>{let m=y.kind==="ADD"?f:R,S=!m.has(y.value);return m.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&S&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),g=hl.has(r)?u:u.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:E,postImageValue:g,addedValues:p.length,removedValues:d,changedValues:p.length+d}}function kA(e,t){return hl.has(e)||UA.has(e)?e:Yr(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function MA(e,t,n){if(!Array.isArray(e))return Yr(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>hl.has(t)?typeof i!="string"?Yr(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?Yr(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function J(e){throw new Error(`ArgumentError: ${e}`)}function Il(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?J("APPLY parent selector must be a single positive $id."):t.right.value}function Pt(e,t){let n=e.applyBlocks;if(!n?.length)return J("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)Sl(s.field,null,r),xA(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&J(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(u=>u.field===s.field)&&J(`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"?J(`APPLY target ${s.field} is not a SUBTABLE.`):J(`APPLY target ${s.field} does not exist as a top-level field.`);if(gp(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&J(`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)Sl(d.field,s.field,r,p),Tl(d.value,s.field,r,p);u.selector.kind==="WHERE"&&Tl(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)&&J(`APPLY APPEND specifies child ${f} more than once.`),d.add(f),Sl(f,s.field,r,p)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&Tl(u.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function xA(e,t){jr(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&J(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&J(`APPLY parent FILE reference ${n} is not supported.`)})}function Sl(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&J(`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&&J(`APPLY child ${e} does not belong to subtable ${t}.`),J(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&J(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Tl(e,t,n,r){jr(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&J(`APPLY child reference ${i} does not belong to subtable ${t}.`),J(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Qo(e,t){let n=Pt(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)jr(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function Zo(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=lf(i?.value);return n}function rf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Pt(t,r),o=Nl(n.$id?.value,"APPLY snapshot $id"),a=Il(t);return o!==a&&J(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),af(t,n,i,o)}function of(e,t,n,r=Pt(e,n)){let i=new Set;return t.map(o=>{let a=Nl(o.$id?.value,"APPLY snapshot $id");return i.has(a)&&J(`APPLY snapshots contain duplicate parentId ${a}.`),i.add(a),af(e,o,r,a)})}function af(e,t,n,r){let i=Nl(t.$revision?.value,"APPLY snapshot $revision"),o=[],a=[];for(let p of e.applyBlocks){if(p.targetKind==="MULTI_VALUE"){let _=n.targetMultiValueFields.get(p.field);_||J(`APPLY multi-value metadata for ${p.field} is missing.`),a.push(tf(p,t[p.field]?.value,_));continue}let u=n.childrenByTable.get(p.field),d=VA(t,p.field),f=new Set;for(let _ of d)_.id||J(`APPLY snapshot for ${p.field} contains a row without _rid.`),f.has(_.id)&&J(`APPLY snapshot for ${p.field} contains duplicate _rid ${_.id}.`),f.add(_.id);let R=_=>_.field==="_rid"?"SINGLE_LINE_TEXT":_.field==="_idx"?"NUMBER":u.get(_.field)?.fieldType,E=[],g=[],y=[],m=new Set,S=new Set,A=new Set,I=p.operations.some(_=>_.kind==="REMOVE");for(let[_,C]of p.operations.entries()){if(C.kind==="APPEND"){let b=wl(C,u,p.field);y.push({kind:"APPEND",addedRows:b.length}),g.push(...b);continue}if(C.kind==="REMOVE"){let b=KA(C,d,R,p.field);C.expectRows&&nf(C.expectRows,b.length,r,p.field,_,C.kind),y.push({kind:"REMOVE",removedRows:b.length});for(let v of b){let h=d[v].id;S.has(v)&&J(`APPLY row ${h} is selected by both PATCH and REMOVE.`),A.has(v)&&J(`APPLY removes row ${h} more than once.`),A.add(v)}continue}if(C.kind!=="PATCH")continue;let k=GA(C,d,R,p.field);C.expectRows&&nf(C.expectRows,k.length,r,p.field,_,C.kind),y.push({kind:"PATCH",matchedRows:k.length,changedRows:k.length});for(let b of k){let v=d[b];A.has(b)&&J(`APPLY row ${v.id} is selected by both PATCH and REMOVE.`),S.add(b);let h=Zo(v,b);for(let N of C.assignments){let U=`${v.id}\0${N.field}`;m.has(U)&&J(`APPLY patches cell ${v.id}.${N.field} more than once.`),m.add(U),E.push({rowIndex:b,field:N.field,value:Xo(N.value,h,R)})}}}let w=new Map;for(let _ of E){let C=w.get(_.rowIndex)??{};C[_.field]={value:_.value},w.set(_.rowIndex,C)}let P=[...d.flatMap((_,C)=>A.has(C)?[]:[{id:_.id,value:{..._.value,...w.get(C)??{}}}]),...g],M={table:p.field,operations:y,changedSubtableRows:w.size+A.size+g.length,deletedRows:A.size,snapshotRowIds:d.map(_=>_.id),postImageRows:P};I?o.push({...M,payloadShape:"FULL_SURVIVORS",removedRowIds:d.flatMap((_,C)=>A.has(C)?[_.id]:[]),payloadRows:P.map(_=>({..._.id===void 0?{}:{id:_.id},value:_.value}))}):o.push({...M,payloadShape:"PATCH_ONLY",payloadRows:[...d.map((_,C)=>{let k=w.get(C);return k?{id:_.id,value:k}:{id:_.id}}),...g.map(_=>({value:_.value}))]})}let s=WA(t),l={};for(let p of e.assignments){let u=n.fieldsByCode.get(p.field)?.fieldType;l[p.field]={value:gl(p.value,s,u,t)}}let c={...t};Object.assign(c,l);for(let p of o)c[p.table]={value:p.postImageRows};for(let p of a)c[p.field]={value:p.postImageValue};return{app:e.appId,parentId:r,revision:i,parentRows:1,changedSubtableRows:o.reduce((p,u)=>p+u.changedSubtableRows,0),parentValues:l,postImage:c,tables:o,multiValues:a}}function nf(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}`;J(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function ea(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return J(`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]]))}:J(`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}:J(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function wl(e,t,n){return e.values.map(r=>({value:FA(e,r,t,n)}))}function FA(e,t,n,r){if(t.length!==e.fields.length)return J(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let i=new Map(e.fields.map((a,s)=>[a,t[s]])),o={};for(let a of n.values()){if(a.fieldType==="FILE"||a.writable===!1)continue;let s=i.get(a.code);o[a.code]={value:s===void 0?bl(a):s.type==="CASE_VALUE"?Jt(s.expr,{},a.fieldType):Nt(s,a.fieldType)}}return o}function bl(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 GA(e,t,n,r){return sf(e.selector,t,n,r)}function KA(e,t,n,r){return sf(e.selector,t,n,r)}function sf(e,t,n,r){if(e.kind==="ALL_ROWS")return t.map((l,c)=>c);let i=e.where,o=t.flatMap((l,c)=>ae(i,Zo(l,c),n)?[c]:[]),a=BA(i);a!==null&&o.length===0&&J(`APPLY _rid ${a} does not exist in snapshot table ${r}.`);let s=$A(i);return s!==null&&o.length===0&&J(`APPLY _idx ${s} does not exist in snapshot table ${r}.`),o}function BA(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 $A(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 VA(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:{}}}):J(`APPLY snapshot field ${t} is not a subtable value.`)}function Nl(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&J(`${t} must be a positive integer.`),n}function WA(e){let t={};for(let[n,r]of Object.entries(e))t[n]=lf(r?.value);return t}function lf(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 jr(e,t){if(Array.isArray(e)){e.forEach(r=>jr(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))jr(r,t)}function le(e){throw new Error(`ArgumentError: ${e}`)}function na(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?le("APPLY snapshot $revision must be a positive integer."):t}function qr(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return le("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return le("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)&&le(`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)&&le(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&le(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),HA(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function uf(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 le("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 HA(e){let t=Pl(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&&le(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Pl(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(d=>d.kind==="REMOVE")&&le(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(d=>d.id??"");ta(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)&&le(`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??"");ta(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)&&le(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||le(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Pl(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&le(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&le(`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)&&le(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));ta(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??"");ta(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))&&le(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&le(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,u)=>!Cl(p.value,e.postImageRows[u]?.value))&&le(`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)))&&le(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Pl(e,t){let n=[...e],r=new Set;for(let i of n)i||le(`APPLY ${t} contains an empty row id.`),r.has(i)&&le(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function ta(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&le(n)}function Cl(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)=>Cl(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)&&Cl(n[a],r[a]))}function cf(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 pf(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=cf(t.digits,"digits",1,30),r=cf(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 df(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 YA=new Set(["CHECK_BOX","MULTI_SELECT"]),jA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Fe(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=qA(e);if(i!==""&&!zA(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=zr(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:JA(t.fieldType),message:o}}if(t.required&&ra(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!ra(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Te(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&&Zi(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&&Zi(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}=df(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(!ra(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!dn(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!ra(r)&&jA.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 qA(e){return e==null?"":ia(e)&&e.type==="NUMBER"?j(e):ia(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function zA(e,t){if(t==="DATE")return dn(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return dn(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)?dn(n.slice(0,10),"DATE")&&dn(n.slice(11),"TIME"):dn(n,"DATETIME")}function zr(e,t){if(ia(e)){let r=Al(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(YA.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 ia(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function fn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(ia(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function ra(e){return e===""||Array.isArray(e)&&e.length===0}function JA(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function dn(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)&&dn(l,"TIME")}var Zn=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Ol(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(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=zr(a,s)}catch{}i.record[o]={value:l?a:c}}}}function Ll(e,t,n,r,i,o,a,s=[],l=!0,c=!0,p={}){let u=new Map(i.map(g=>[g.code,g])),d=[],f=new Set,R=[];p.validateUpdateBuiltIns===!1&&Ol(e,r,i);let E;for(let g of e){g.record??(g.record={});let y=c?[...g.preErrors]:[],m=[],S=[],A=g.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let P of r){if(!g.payload.has(P))continue;let M=g.payload.get(P),_=u.get(P).fieldType,C=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(_)&&Array.isArray(M)&&M.every(b=>typeof b=="object"&&b!==null&&"code"in b);if(!A)continue;let k=Fe(M,u.get(P),a);k.ok?g.record[P]={value:C?M:k.value}:m.push({field:P,code:k.code,message:k.message})}if(l&&g.mode==="create")for(let P of i){if(P.inSubtable||g.payload.has(P.code))continue;if(fn(P.defaultValue)){let _=Fe("",P,a);_.ok?P.required&&m.push({field:P.code,code:"ERR_REQUIRED",message:`${P.code} \u306F\u5FC5\u9808\u3067\u3059`}):m.push({field:P.code,code:_.code,message:_.message})}else{let _=Fe(P.defaultValue,P,a);_.ok||m.push({field:P.code,code:_.code,message:`\u65E2\u5B9A\u5024: ${_.message}`})}}if(s.length>0){let P=g.evaluationRow??Object.fromEntries([...g.payload].map(([C,k])=>[C,ct(k)])),M=g.evaluationFieldTypes,_=C=>{let k=C.tableAlias?`${C.tableAlias}.${C.field}`:C.field;return M?.get(k)??M?.get(C.field)};try{for(let C of Yo(s,P,_))S.push({field:"",code:"ERR_CHECK",message:C.message})}catch(C){E??(E=C)}}let I=P=>P.map(M=>{let _={};for(let C of n)_[C]=ct(g.payload.get(C));return _.$err_statement=String(o),_.$err_operation=t,_.$err_row=String(g.rowNumber),_.$err_field=M.field,_.$err_code=M.code,_.$err_message=M.message,_.$err_value="",_.$err_subtable="",_.$err_subrow="",_.$err_subrow_id="",_}),w={rowNumber:g.rowNumber,preErrors:I(y),builtInErrors:I(m),checkErrors:I(S)};R.push(w);let D=[...w.preErrors,...w.builtInErrors,...w.checkErrors];D.length>0&&f.add(g.rowNumber),d.push(...D)}if(E!==void 0)throw E;return{errors:d,invalidRows:f.size,invalidRowNumbers:f,candidateResults:R}}function ct(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 _l=["required","length","range","choice"];function Dl(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 vl(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 XA(e){return Dl(e).length>0}function QA(e){return e.fieldType==="NUMBER"||XA(e)}function oa(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Ul(e,t){let{topByCode:n,childrenByTable:r}=vl(t),i=QA;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(R=>R.code===d);if(!f){let R=[...r.entries()].some(([E,g])=>E!==l.subtableCode&&g.some(y=>y.code===d));throw new Error(R?`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 Jr(e,t){return fn(e)?"":ct(zr(e,t))}var ZA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Xr=Zn;function pt(e,t=["$id"]){let n=vl(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!ZA.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 En(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 Rn(e,t,n,r,i=1,o="UPDATE"){let a=eh(e),s=[],l=new Set,c=[...t.payloadFields,...Xr],p=ct(e.$id?.value),u=(d,f,R,E)=>{l.add(i);let g={};for(let y of t.payloadFields)g[y]=y==="$id"?p:ct(e[y]?.value);g.$err_statement=String(r),g.$err_operation=o,g.$err_row=String(i),g.$err_field=d.code,g.$err_code=R.code,g.$err_message=R.message,g.$err_value=Jr(f,d.fieldType),g.$err_subtable=E?.subtable??"",g.$err_subrow=E?String(E.subrow):"",g.$err_subrow_id=E?.subrowId??"",s.push(g)};for(let d of t.topLevel){let f=e[d.code]?.value,R=Fe(f,d,n);R.ok?a[d.code]={value:ff(f,d.fieldType,R.value)}:u(d,f,R)}for(let[d,f]of t.subtables){let R=e[d]?.value;if(!Array.isArray(R))continue;let E=a[d]?.value;for(let g=0;g<R.length;g++){let y=R[g],m=E[g];for(let S of f){let A=y.value?.[S.code]?.value,I=Fe(A,S,n);I.ok?(m.value??(m.value={}),m.value[S.code]={value:ff(A,S.fieldType,I.value)}):u(S,A,I,oa(d,g,y))}}}return{normalizedRecord:a,errors:s,columns:c,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function ff(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 eh(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 aa(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;Ef(o,"dmlMaxRows"),Ef(a,"dmlMaxSubtableRows");for(let S of n)na(S);let l=of(t,n,r,i),c=pt(r,t.assignments.map(S=>S.field)),p=l.some(S=>En(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)=>Rn(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,R=l.reduce((S,A)=>S+A.changedSubtableRows,0),E=f>o||R>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&R>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${a}).`);let g=l.map((S,A)=>ea(S,d[A].normalizedRecord)),y=g.flatMap(S=>qr(S).records),m=d.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return Rf({plans:g,records:y,validations:m,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:R,dmlMaxSubtableRows:a,wouldExceed:E}})}function Ef(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Rf(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))Rf(n,t);return Object.freeze(e)}var kl=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function sa(e,t){if(new Set(e.fields).size!==e.fields.length)return dt("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)gf(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return dt(`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 dt(`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 dt(`APPLY INSERT supports APPEND only (${l.kind}).`);let c=new Set;for(let p of l.fields){if(c.has(p))return dt(`APPLY APPEND specifies child ${p} more than once.`);c.add(p),gf(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return dt(`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 th(e,t,n=sa(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=zo(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=>wl(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||kl.has(u.fieldType)||(c[u.code]=s[u.code]??{value:bl(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 Qr(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;yf(r,"dmlMaxRows"),yf(i,"dmlMaxSubtableRows");let a=e.metadata??sa(t,n),s=th(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!kl.has(A.fieldType)),c=pt(l,t.fields),p=s.some(A=>En(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=>Rn(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,R=s.reduce((A,I)=>A+I.tables.reduce((w,D)=>w+D.addedRows,0),0),E=f>r||R>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&R>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${i}).`);let g=s.map((A,I)=>{let w=d[I].normalizedRecord,D={};for(let P of t.fields)D[P]=w[P];for(let P of A.tables){let M=w[P.table]?.value;D[P.table]={value:P.rows.map((_,C)=>({value:Object.fromEntries(Object.keys(_.value).map(k=>[k,M[C]?.value?.[k]??_.value[k]]))}))}}return{...A,postImage:w,record:D}}),y=g.map(A=>A.record),m=[];for(let A=0;A<y.length;A+=100)m.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 mf({applyBlocks:t.applyBlocks??[],candidates:g,records:y,batches:m,validations:S,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:R,dmlMaxSubtableRows:i,wouldExceed:E}})}function gf(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return dt(`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?dt(`APPLY child ${e} does not belong to subtable ${t}.`):dt(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||kl.has(i.fieldType))return dt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function yf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function dt(e){throw new Error(`ArgumentError: ${e}`)}function mf(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))mf(n,t);return Object.freeze(e)}async function hf(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Af(i,"dmlMaxRows"),Af(o,"dmlMaxSubtableRows"),ah(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),c=nh(t,s.map(y=>y.sourceRowIndex)),p=await Qr({statement:c,fieldInfos:r,metadata:sa(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 m=y.targetId;d.has(m)&&Ml(`UPSERT APPLY resolves more than one source row to parent $id ${m}.`),d.add(m),y.snapshot||Ml(`UPSERT APPLY snapshot for parent $id ${m} is missing.`);let S=Number(y.snapshot.$id?.value);S!==m&&Ml(`UPSERT APPLY snapshot $id ${S} does not match target $id ${m}.`);let A=rh(t,y.sourceRowIndex,m),I=A.applyBlocks?.length?Pt(A,r):ih(r);u.push(await aa({statement:A,snapshots:[y.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=oh(u,i,o),R=p.guards.parentRows+f.guards.parentRows,E=p.guards.subtableRows+f.guards.subtableRows,g=R>i||E>o;if(!t.validateOnly){let y=[...p.validations.flatMap(m=>m.errors),...f.validations.flatMap(m=>m.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&&R>i)throw new Error(`ArgumentError: APPLY parent rows (${R}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&E>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${o}).`);return xl({create:p,update:f,createBatches:p.batches,updateBatches:sh(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:R,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:g,create:p.guards,update:f.guards}})}function nh(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function rh(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 ih(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function oh(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 xl({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 ah(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 sh(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 Af(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Ml(e){throw new Error(`ArgumentError: ${e}`)}function xl(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))xl(n,t);return Object.freeze(e)}function ei(e){return er("UPDATE",[If(e)])}function Fl(e){return er("INSERT",[Tf(e)])}function Gl(e){return er("UPSERT",[Tf(e.create),If(e.update)])}function He(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 ua(e,t,n){return e.type==="UPDATE"?er("UPDATE",[la("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?er("INSERT",[la("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):er("UPSERT",[la("insert",e.onInsertApplyBlocks??[],null,!1,t,n),la("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function er(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Tf(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 If(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:Sf(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||(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:Sf(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 Sf(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:Zr(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Zr(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Zr(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Zr(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Zr(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Zr(e,t){return e==null||t===null?null:e+t}function la(e,t,n,r,i,o){let a=t.map(p=>{let u=p.operations.map(f=>lh(f,n)),d=u.every(f=>f.count!==null)?u.reduce((f,R)=>f+R.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 lh(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 ft=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 wf(e,t,n){Kn("phase10c");let r=uf(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 ft({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(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 bf(e,t,n){Kn("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 ft({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(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 Nf(e,t,n){Kn("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 ft({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(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 ft({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:He(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 uh=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function ch(e){if(!uh.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 ph(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=ch(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 Kl(e,t){let n=ph(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 dh(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 Bl(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 dh(i)?!0:Object.values(i).some(n)};return n(e)}function Pf(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}var ca=50;function Vl(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+=ca){let o=e.values.slice(i,i+ca);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var $l=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),fh=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function Eh(e,t){return e==="DATE"?Lr(t):e==="TIME"?Io(t):$l.has(e)?wo(t):!1}function Rh(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":$l.has(e)?$l.has(t.fieldType):!1}function Wl(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=To(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!fh.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(!Rh(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=>!Eh(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];et(s,i,n)<0&&(i=s),et(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Hl=tl;function ti(e,t,n=Hl){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function Cf(e,t){let n=Z(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 Et(e){if(e===null)return!1;switch(e.type){case"BINARY":return pa(e.left);case"NULL_CHECK":return pa(e.field);case"LOGICAL":return Et(e.left)||Et(e.right);case"NOT":case"GROUP":return Et(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function pa(e){if(Array.isArray(e))return e.some(pa);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(pa)}async function tt(e,t,n,r,i){let o=await De(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 da(e,t,n,r){let{records:i,metrics:o}=await tt(e,t,n,["$id"],r);return{ids:np(i),metrics:o}}function nr(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)?Lf(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"}):Lf(n[0],e.field)}function ql(e,t){if(e.left.type!=="FIELD")return ni();let n=nr(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return ni();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||ye(e,a=>{let s=nr(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:ee({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return ni();let o=No(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?ni():Object.freeze({relation:o,owner:n})}function _f(e,t){let n=he(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=nr(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):ye(e,o=>{let a=nr(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:ee({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function Df(e,t){let n=new Set;gn(e,n);let i=(e===null?[]:kf(tr(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=gh(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)gn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(Ah(e,t)),fetchQueriesByAlias:new Map,...o})}function vf(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!yn(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||!yn(ma(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 ir(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!yn(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&&!yn(ma(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))||Uf(mh(e))!==e.allKlikes.length))}function gh(e,t){if(e===null)return Of(null);let n=Object.freeze([...he(e)]);if(n.length===0)return Of(e);let r=yh(e,t,n);if(r!==null)return r;let i=Ra(e),o=[],a=new Set;for(let u of i){let d=_f(u,t);if(d.relation!=="function-leaf-exact")continue;let f={targetAlias:d.owner.alias,appId:d.owner.appId,predicate:u,relation:"exact"},R;try{R=rr(f,t)}catch{continue}let E=ma(R);yn(E,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:R,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=ga(e,a),l=Object.freeze(s===null?[]:[...he(s)]),c=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),p=yn(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 yh(e,t,n){let r=fa(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(!yn(ma(o),n))return null;let a=new Set;if(gn(e,a),Uf(o)!==a.size)return null;let s=Object.freeze(Ea(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 fa(e,t){switch(e.type){case"BINARY":{if(he(e).length>0){let i=_f(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=ql(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=fa(e.left,t),r=fa(e.right,t);return n!==null&&r!==null&&Aa(n,r)?n:null}case"GROUP":case"NOT":return fa(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Ea(e){switch(e.type){case"BINARY":return he(e).length>0?[e]:[];case"LOGICAL":return[...Ea(e.left),...Ea(e.right)];case"GROUP":case"NOT":return Ea(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Of(e){let t=e===null?[]:he(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Ra(e){switch(e.type){case"BINARY":return he(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Ra(e.left),...Ra(e.right)]:[];case"GROUP":return Ra(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function ga(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=ga(e.left,t),r=ga(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=ga(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function ma(e){let t=[];for(let n of yr){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 yn(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 Uf(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function mh(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function Ah(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=nr(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(ya(i.right)){n.add("CROSS_TABLE_BINARY");return}ql(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(xf(i)){n.add("KLIKE_OR");return}let o=tr(i.left,t),a=tr(i.right,t);if(o.length!==1||a.length!==1||!Aa(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 ri(e.predicate,e,t),Y(e.predicate)}function ri(e,t,n){switch(e.type){case"LOGICAL":ri(e.left,t,n),ri(e.right,t,n);return;case"GROUP":ri(e.expr,t,n);return;case"NOT":ri(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||ya(e.right))throw jl(t,"predicate contains a non-target or RHS field reference");let r=nr(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw jl(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw jl(t,"predicate shape is outside the Phase A serializer contract")}}function jl(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function tr(e,t){switch(e.type){case"BINARY":{let n=ql(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=tr(e.left,t),r=tr(e.right,t);if(e.op==="AND")return kf([...n,...r]);if(xf(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return Aa(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:Mf(i.relation,o.relation)}]:[]}case"GROUP":return tr(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function kf(e){let t=[];for(let n of e){let r=t.findIndex(o=>Aa(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:Mf(i.relation,n.relation)}}return t}function Lf(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function ni(){return Object.freeze({relation:"unsafe"})}function Aa(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function Mf(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function gn(e,t){if(e!==null){if(Gt(e)){t.add(e);return}switch(e.type){case"LOGICAL":gn(e.left,t),gn(e.right,t);return;case"NOT":case"GROUP":gn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function xf(e){let t=new Set;return gn(e,t),t.size>0}function ya(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ya);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(ya)}function zl(e,t){let n=Dr(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))}}function hh(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function Sh(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}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=hh(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"&&!Sh(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>500)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>1e4)&&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 Th=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 Ih(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function oi(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(Ih(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}Th.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 ha=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"}},Sa=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}},Ta=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 Ff(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 Ta(a).message}}return{records:n,cleanupWarning:o}}function Jl(e){let t=[];e.where&&t.push(Y(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 wh={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 Gf(e,t){let n=wh[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 Kf(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=>Gf(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=Gf(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var or=new WeakMap,Ql=new WeakMap;function tu(e){if(Ql.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):Ne(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&Ne(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=Ne(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),Ql.set(t,e),t}function nt(e){return Ql.get(e)??e}function zf(e){let t=or.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},or.set(e,t)),t}function Rt(e,t,n,r=[]){let i=zf(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function Ye(e,t){return or.get(e)?.byColumn.get(t)}function Ne(e,t){return or.get(e)?.byLookupKey.get(t)}function Ct(e,t){return or.has(e)?void 0:e[t]}function bh(e){let t=or.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=Ds(e);return r&&_s(n,r.includedCanonicalIds),n}function Ot(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 Nh(e,t,n,r={}){if(n.type==="CROSS"){let u=ti(e.length,t.length);if(!u.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${u.outputRows} \u884C\uFF08\u5DE6 ${u.leftRows} \u884C \xD7 \u53F3 ${u.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${u.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let d=[];for(let f of e)for(let R of t)d.push({...f,...R});return d}let{on:i,type:o}=n,a=i.left.tableAlias?`${i.left.tableAlias}.${i.left.field}`:i.left.field,s=i.right.tableAlias?`${i.right.tableAlias}.${i.right.field}`:i.right.field;if(Bf(e,a,r.leftColumns),Bf(t,s,r.rightColumns),o==="RIGHT"){let u=new Map;for(let R of e){let E=R[a]??"",g=u.get(E);g?g.push(R):u.set(E,[R])}let d={};for(let R of r.leftColumns??Object.keys(e[0]??{}))d[R]="";let f=[];for(let R of t){let E=R[s]??"",g=u.get(E)??[];if(g.length>0)for(let y of g)f.push({...y,...R});else f.push({...d,...R})}return f}let l=new Map;for(let u of t){let d=u[s]??"",f=l.get(d);f?f.push(u):l.set(d,[u])}let c=[],p={};for(let u of r.rightColumns??Object.keys(t[0]??{}))p[u]="";for(let u of e){let d=u[a]??"",f=l.get(d)??[];if(f.length>0)for(let R of f)c.push({...u,...R});else o==="LEFT"&&c.push({...u,...p})}return c}function Bf(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 Ph(e,t,n,r,i){return t===null?e:e.filter(o=>ae(t,o,n,r,i))}function Jf(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&Be(t.expr)||t.type==="STRFUNC_COL"&&pi(t.expr)||t.type==="SCALAR_VALUE_COL"&&Xt(t.expr))}function Ch(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,d)=>Lh(u,l,i?.items[d],n,o)).join("\0"),p=a.get(c);p?p.push(l):a.set(c,[l])}a.size===0&&t.length===0&&Jf(n)&&a.set("",[]);let s=[];for(let l of a.values()){let c=tu({...l[0]});for(let p of t)p.type==="ARITH_KEY"?c[ou(p.expr)]=String(ce(p.expr,l[0])):p.type==="FUNC_KEY"&&(c[Qt(p.expr)]=pe(p.expr,l[0]));Xf(c,l,n,r),s.push(c)}return s}function Oh(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},p=[];for(let d of e){let f=c;for(let R of l.items){let E=$f(R,d),g=f.children.get(E);g||(g={children:new Map},f.children.set(E,g)),f=g}f.rows||(s(),f.rows=[],p.push(f.rows)),f.rows.push(d)}e.length===0&&l.items.length===0&&(s(),c.rows=[],p.push(c.rows));let u=new Set(l.items.map(d=>d.canonicalId));for(let d of p){let f=tu({...d[0]}),R=new Map;for(let E of l.items)R.has(E.canonicalId)||R.set(E.canonicalId,$f(E,d[0]));for(let E of t.allItems){let g=R.get(E.canonicalId)??"";f[E.directKey]=g,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=g)}Xf(f,d,n,r),_s(f,u),o.push(f)}}return o}function $f(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function Xf(e,t,n,r){for(let[i,o]of n.entries())if(o.type==="AGGREGATE"){let a=Ee(o.func,o.distinct,o.arg),s=String(li(o.func,o.distinct,o.arg,o.separator,t,r));Rt(e,i,s,o.alias?[o.alias,a]:[a])}else if(o.type==="ARITH_AGG_COL"){Ia(e,t,o.expr,r);let a=o.alias??ui(o.expr);Rt(e,i,String(ai(o.expr,t,r)),[a])}else if(o.type==="STRFUNC_COL"&&pi(o.expr)){Ia(e,t,o.expr,r);let a=o.alias??Qt(o.expr),s=au(o.expr,t,r);Rt(e,i,pe(s,e),[a])}else if(o.type==="SCALAR_VALUE_COL"&&Xt(o.expr)){Ia(e,t,o.expr,r);let a=o.alias??gt(o.expr),s=si(o.expr,t,r);Rt(e,i,String(we(s,e)),[a])}else if(o.type==="CASE_COL"&&Be(o.expr)){Ia(e,t,o.expr,r);let a=rE(o.expr,t,r),l=xe(a,e,void 0,c=>c.aggregateRef?Zf(c.aggregateRef,r):void 0);Rt(e,i,l,[Zl(o.alias,i)])}}function Zl(e,t){return e??`__ksql_case_column_${t}`}function eu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>eu(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=>eu(r,t))}function Ia(e,t,n,r){let i=[];eu(n,i);for(let o of i){let a=Ee(o.func,o.distinct,o.arg);if(Ne(e,a)!==void 0)continue;let s=String(li(o.func,o.distinct,o.arg,o.separator,t,r));zf(e).byLookupKey.set(a,s)}}function Lh(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=wa(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"?pe(e.expr,t):String(ce(e.expr,t))}function li(e,t,n,r,i,o){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let a=Qf(e,n,i).filter(f=>f!==null),s=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",l=s?a.map(f=>{let R=Number(f);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: ${f}`);return R}):null,c=t?s?[...new Set(l)]:[...new Set(a)]:s?l:a;if(e==="COUNT")return c.length;if(e==="GROUP_CONCAT")return c.join(r??",");let p=e==="MIN"||e==="MAX"||e==="MODE"?ci(n,o):void 0,u=typeof p=="string"?G(p):p??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?G("string"):G("number"));if(e==="MODE"){if(a.length===0)return"";let f=new Map;for(let g of a)f.set(g,(f.get(g)??0)+1);let R="",E=0;for(let[g,y]of f){if(y>E){R=g,E=y;continue}if(y!==E)continue;let m=et(g,R,u);(m<0||m===0&&zt(g,R)<0)&&(R=g)}return R}if(e==="MIN"||e==="MAX"){let f=c;if(f.length===0)return"";let R=f[0];for(let E of f.slice(1)){let g=et(E,R,u);(e==="MAX"&&g>0||e==="MIN"&&g<0)&&(R=E)}return R}let d=s?c:c.map(Number);switch(e){case"SUM":return d.reduce((f,R)=>f+R,0);case"AVG":return d.length===0?0:d.reduce((f,R)=>f+R,0)/d.length;case"MEDIAN":{if(d.length===0)return"";let f=[...d].sort((E,g)=>E-g),R=Math.floor(f.length/2);return f.length%2===1?f[R]:(f[R-1]+f[R])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let f=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(d.length===0||f&&d.length<2)return"";let R=d[0],E=0,g=0,y=0;for(let S of d){let A=S-R;E++;let I=A-g;g+=I/E,y+=I*(A-g)}let m=Math.max(0,y/(f?E-1:E));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(m):m}}}function Qf(e,t,n){return n.map(r=>{let i=nt(r),o;if(t.type==="FIELD_REF"){let a=i[t.field];if(a===void 0||a===""&&e!=="MIN"&&e!=="MAX")return null;o=a}else if(t.type==="ARITH"||t.type==="NUMBER"){let a=ce(t,i);if(isNaN(a))return null;o=String(a)}else{let a=bt(t,i);if(a===null||a===""&&e!=="MIN"&&e!=="MAX"||typeof a=="number"&&Number.isNaN(a))return null;o=String(a)}return o})}function _h(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 ai(e,t,n){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(li(e.func,e.distinct,e.arg,e.separator,t,n));if(e.type==="AGG_GROUP_KEY"){let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Me(t[0]??{},o))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let r=ai(e.left,t,n),i=ai(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 ui(e){return ut(e)}function ci(e,t){if(e.type==="FIELD_REF")return t?.(_h(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"){let o=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);return e.func==="CAST"?e.args[1]?.type==="STRING"&&e.args[1].value==="NUMBER"?"number":"string":o.has(e.func)?"number":"string"}let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>ci(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 Zf(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 G("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return G("string");let n=e.arg.type==="WILDCARD"?"string":ci(e.arg,t)??"string";return typeof n=="string"?G(n):n}function Dh(e,t,n,r){return t===null?e:e.filter(i=>ae(t,bh(i),n,void 0,r))}function vh(e,t,n,r,i){if(e.length===0)return e;let o=Uh(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i}),a=new Set;return e.filter(s=>{let l=o(s);return a.has(l)?!1:(a.add(l),!0)})}function Uh(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($h(t,a,o))}function nu(e,t,n,r,i,o){return t.length===0?e:eE(e,t,n,r,i,o).rows.map(a=>a.row)}function eE(e,t,n,r,i,o){let a=t.map(({key:c})=>{if(c.type==="ARITH_KEY")return{semantics:G("number")};if(c.type==="FUNC_KEY")return{semantics:G(tE.has(c.expr.func)?"number":"string")};if(c.type==="GROUPING_KEY")return{semantics:G("number")};let p=i?.get(c.name);if(p)return{semantics:p};let u=n?.get(c.name);return u?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:u}}:{semantics:G(r?.get(c.name)??"string")}}),s=e.map(c=>({row:c,keys:t.map(({key:p},u)=>({s:xh(p,c,o)}))})),l=(c,p)=>kh(c,p,t,a);return s.sort(l),{rows:s,compare:l}}function kh(e,t,n,r){for(let i=0;i<n.length;i++){let o=Mh(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function Mh(e,t,n){return et(e.s,t.s,n.semantics)}var tE=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function xh(e,t,n){let r=nt(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??Ne(t,e.name)??r[e.name]??"";case"ARITH_KEY":return String(ce(e.expr,r));case"FUNC_KEY":return pe(e.expr,r);case"GROUPING_KEY":return $n(e.ref,t)}}function ru(e,t,n,r){let i=new Map;for(let[o,a]of e.entries()){if(!("alias"in a)||a.alias===null)continue;let s=a.alias;switch(a.type){case"FIELD":i.set(s,l=>Me(nt(l),a.field));break;case"LITERAL_COL":i.set(s,()=>a.value);break;case"AGGREGATE":{i.set(s,l=>Ye(l,o)??"0");break}case"ARITH_AGG_COL":{i.set(s,l=>Ye(l,o)??"0");break}case"WINDOW_COL":i.set(s,l=>Ye(l,o)??"");break;case"ARITH_COL":i.set(s,l=>String(ce(a.expr,nt(l))));break;case"STRFUNC_COL":{let l=Qt(a.expr);i.set(s,c=>pi(a.expr)?Ye(c,o)??Ne(c,l)??pe(a.expr,nt(c),n,r):pe(a.expr,nt(c),n,r));break}case"CASE_COL":i.set(s,l=>Be(a.expr)?Ye(l,o)??"":xe(a.expr,nt(l),n,r));break;case"SCALAR_VALUE_COL":{let l=gt(a.expr);i.set(s,c=>Xt(a.expr)?Ye(c,o)??Ne(c,l)??"":String(we(a.expr,nt(c),n,r)));break}case"SCALAR_SUBQUERY_COL":i.set(s,()=>t?.get(o)??"");break;case"GROUPING_COL":i.set(s,l=>$n(a.ref,l));break;case"VARIABLE_COL":break}}return(o,a)=>i.get(o)?.(a)}function iu(e,t,n,r,i,o){let a=t.map((s,l)=>({column:s,columnIndex:l})).filter(s=>s.column.type==="WINDOW_COL");if(e.length===0||a.length===0)return e;for(let s=0;s<e.length;s++)e[s]=tu(e[s]);for(let{column:s,columnIndex:l}of a){let c=new Map;for(let p of e){let u=JSON.stringify(s.partitionBy.map(f=>Bh(p,f))),d=c.get(u);d?d.push(p):c.set(u,[p])}for(let p of c.values()){let u=eE(p,s.orderBy,n,r,i),d=u.rows;if(eo(s)){Kh(s,l,u,o);continue}if(Is(s)){Gh(s,l,d);continue}if(!Ts(s))throw new Error(`InternalError: unknown window kind ${s.windowKind??"undefined"}`);let f=1,R=1;for(let E=0;E<d.length;E++){E>0&&u.compare(d[E-1],d[E])!==0&&(f=E+1,R++);let g=s.func==="ROW_NUMBER"?E+1:s.func==="RANK"?f:R;Rt(d[E].row,l,String(g),[s.alias])}}}return e}function Fh(e,t){let n=bt(e,nt(t));return n==null||typeof n=="number"&&!Number.isFinite(n)?"":String(n)}function Gh(e,t,n){let r=n.map(o=>Fh(e.arg,o.row)),i=e.valueFunc==="LAG"?-1:1;for(let o=0;o<n.length;o++){let a=o+i*e.offset;Rt(n[o].row,t,a>=0&&a<r.length?r[a]:"",[e.alias])}}function Kh(e,t,n,r){let i=n.rows,o=e.arg.type==="WILDCARD"?null:Qf(e.aggFunc,e.arg,i.map(d=>d.row)),a=e.arg.type==="WILDCARD"?void 0:ci(e.arg,r),s=typeof a=="string"?G(a):a??G("string"),l=[],c=0,p=0,u;for(let d=0;d<i.length;d++){let f=o?.[d]??null;if(e.arg.type==="WILDCARD")c++;else if(f!==null)if(e.aggFunc==="COUNT")c++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")p+=Number(f),c++;else if(u===void 0)u=f;else{let E=et(f,u,s);(e.aggFunc==="MAX"&&E>0||e.aggFunc==="MIN"&&E<0)&&(u=f)}let R=e.aggFunc==="COUNT"?c:e.aggFunc==="SUM"?p:e.aggFunc==="AVG"?c===0?0:p/c:u??0;l.push(String(R))}if(e.frame===null){let d=l[l.length-1];for(let f of i)Rt(f.row,t,d,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let d=0;d<i.length;){let f=d;for(;f+1<i.length&&n.compare(i[f],i[f+1])===0;)f++;for(let R=d;R<=f;R++)Rt(i[R].row,t,l[f],[e.alias]);d=f+1}return}for(let d=0;d<i.length;d++)Rt(i[d].row,t,l[d],[e.alias])}function Bh(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Me(nt(e),n)}function ba(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function wa(e,t,n,r={}){let i=nt(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 Me(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=Ee(e.func,e.distinct,e.arg);return Ye(t,n)??Ne(t,e.alias??o)??Ne(t,o)??Ct(t,e.alias??o)??Ct(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??ui(e.expr);return Ye(t,n)??Ne(t,o)??Ct(t,o)??"0"}case"ARITH_COL":return String(ce(e.expr,i));case"CASE_COL":return Be(e.expr)?Ye(t,n)??Ne(t,Zl(e.alias,n))??Ct(t,Zl(e.alias,n))??"":xe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics);case"GROUPING_COL":return $n(e.ref,t);case"STRFUNC_COL":{let o=Qt(e.expr);return pi(e.expr)?Ye(t,n)??Ne(t,e.alias??o)??Ne(t,o)??Ct(t,e.alias??o)??Ct(t,o)??pe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics):pe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics)}case"SCALAR_VALUE_COL":{let o=gt(e.expr);return Xt(e.expr)?Ye(t,n)??Ne(t,e.alias??o)??Ne(t,o)??Ct(t,e.alias??o)??Ct(t,o)??"":String(we(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return Ye(t,n)??Ne(t,e.alias)??Ct(t,e.alias)??""}}function $h(e,t,n={}){return e.map((r,i)=>{let o=wa(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function ar(e,t,n,r,i,o,a){if(t.length===1&&t[0].type==="WILDCARD"){let f=e.map(E=>{let g=jf(Wf(E),a),y=wa(t[0],E,0,{wildcardKeys:Object.keys(g)}),m={};if(typeof y!="string")for(let[S,A]of y.entries)A!==null&&(m[S]=A);return m}),R=f.length>0?Object.keys(f[0]):[...i??[]];return{rows:f,columns:R}}let s=Yh(t),l=Hh(t),c=t.some(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD"),p=c?null:Vh(t,s,l),u=p??[];return c&&e.length===0?{rows:[],columns:Wh(t,s,l)}:{rows:e.map((f,R)=>{let E={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,wildcardKeys:Object.keys(jf(Wf(f),a)),parentWildcardKeys:Object.keys(f).filter(y=>y.startsWith("_p.")).sort()};for(let[y,m]of t.entries()){let S=wa(m,f,y,g);switch(m.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof S!="string")for(let[A,I]of S.entries)I!==null&&(E[A]=I);break;case"PARENT_WILDCARD":{if(typeof S!="string")for(let[A,I]of S.entries)I!==null&&(E[A]=I),R===0&&u.push(A);break}case"FIELD":{let A=p?.[y]??m.alias??s.get(y)??m.field;E[A]=S,p===null&&R===0&&u.push(A);break}case"LITERAL_COL":{let A=p?.[y]??m.alias??`'${m.value}'`;E[A]=S,p===null&&R===0&&u.push(A);break}case"AGGREGATE":{let A=Ee(m.func,m.distinct,m.arg),I=p?.[y]??m.alias??A;E[I]=S,p===null&&R===0&&u.push(I);break}case"ARITH_AGG_COL":{let A=p?.[y]??m.alias??ui(m.expr);E[A]=S,p===null&&R===0&&u.push(A);break}case"ARITH_COL":{let A=p?.[y]??m.alias??ou(m.expr);E[A]=S,p===null&&R===0&&u.push(A);break}case"CASE_COL":{let A=p?.[y]??m.alias??l.get(y)??"case";E[A]=S,p===null&&R===0&&u.push(A);break}case"GROUPING_COL":{let A=p?.[y]??m.alias??`GROUPING(${m.ref.field.tableAlias?`${m.ref.field.tableAlias}.`:""}${m.ref.field.field})`;E[A]=S,p===null&&R===0&&u.push(A);break}case"STRFUNC_COL":{let A=p?.[y]??m.alias??Qt(m.expr);E[A]=S,p===null&&R===0&&u.push(A);break}case"SCALAR_VALUE_COL":{let A=p?.[y]??m.alias??gt(m.expr);E[A]=S,p===null&&R===0&&u.push(A);break}case"SCALAR_SUBQUERY_COL":{let A=p?.[y]??m.alias??"(subquery)";E[A]=S,p===null&&R===0&&u.push(A);break}case"WINDOW_COL":{let A=p?.[y]??m.alias;E[A]=S,p===null&&R===0&&u.push(A);break}}}return E}),columns:u}}function Vh(e,t,n){return e.map((r,i)=>nE(r,i,t,n))}function Wh(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=nE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function nE(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??Ee(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??ui(e.expr);case"ARITH_COL":return e.alias??ou(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??Qt(e.expr);case"SCALAR_VALUE_COL":return e.alias??gt(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 Hh(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 Yh(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=Vf(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=Vf(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 Vf(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Wf(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function ou(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"?j(n):n.type==="STRING_FUNC"?Qt(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Qt(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?ui(n):n.type==="VARIABLE"?`@${n.name}`:gt(n));return`${e.func}(${t.join(",")})`}function gt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return j(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Qt(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${gt(e.left)}${e.op}${gt(e.right)}`;case"CONCAT_OP":return`${gt(e.left)}||${gt(e.right)}`}}function jh(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:Xt(e)}function Xt(e){return e.type==="STRING_FUNC"?pi(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Xt(e.left)||Xt(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Hf(t.result))||e.elseResult!==null&&Hf(e.elseResult):!1}function Hf(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Xt(e)}function pi(e){return e.args.some(t=>jh(t))}function qh(e,t,n){if(e.type==="AGG_REF"){let r=li(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=ai(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(Me(t[0]??{},r)),raw:Me(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?au(e,t,n):si(e,t,n)}function si(e,t,n){return e.type==="STRING_FUNC"?au(e,t,n):e.type==="CASE_WHEN"?rE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:si(e.left,t,n),right:si(e.right,t,n)}:e}function Yf(e,t,n){if(e.type==="AGG_REF"){let r=li(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=ai(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:si(e,t,n)}function rE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:Yf(r.result,t,n)})),elseResult:e.elseResult===null?null:Yf(e.elseResult,t,n)}}function au(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>qh(r,t,n))}}function jf(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 qf(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Xl(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function zh(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,G("number"));else if(r.type==="WINDOW_COL"){if(Ts(r)||eo(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,G("number"));else if((eo(r)||Is(r))&&r.arg.type!=="WILDCARD"){let i=ci(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?G(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,G("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,G("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,G("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,G(tE.has(r.expr.func)?"number":"string"));return n}function su(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:R,hiddenQualifiedAliases:E,resolvedGroupingSpec:g,plainGroupByPlan:y}=e,m=zh(t.columns,u);for(let[_,C]of a??[])m.set(_,C);let S=[],A=t.from.alias;S=(n.get(A)??n.get(null)??[]).map(_=>Ot(_,A));let w=Xl(qf(R?.get(A),A),void 0,S);for(let _ of t.joins){let C=_.table.alias,b=(n.get(C)??[]).map(h=>Ot(h,C)),v=Xl(qf(R?.get(C),C),void 0,b);S=Nh(S,b,_,{leftColumns:w,rightColumns:v}),w=Xl(w,v,S)}let D=e.residualWhere!==void 0?e.residualWhere:t.where;S=Ph(S,D,s,d,l);let P=Z(t);if(P.type==="GROUPING_SETS"){if(!g)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");S=Oh(S,g,t.columns,u,{maxGeneratedRows:5e4})}else(P.type==="PLAIN"||Jf(t.columns))&&(S=Ch(S,P.type==="PLAIN"?P.allItems:[],t.columns,u,P.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l}));let M=_=>_.aggregateRef?Zf(_.aggregateRef,u):p?.(_);return S=Dh(S,t.having,c,M),S=iu(S,t.columns,i,o,m,u),t.distinct&&(S=vh(S,t.columns,r,s,l)),S=nu(S,t.orderBy,i,o,m,ru(t.columns,r,s,l)),S=ba(S,t.limit,t.offset),ar(S,t.columns,r,s,f,l,E)}function iE(e,t){let n=[];for(let r of e){let i=lu(r.$id?.value),o=Jh(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=lu(p?.value);l[`_p.${c}`]={value:u}}for(let[c,p]of Object.entries(s.value??{}))l[c]={value:lu(p?.value)};n.push(l)}}return n}function Jh(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function lu(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 oE(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function aE(e,t){let n=di(e);for(let[r,i]of Object.entries(t))n[r]=di(i);return n}function sE(e){let t=[...e.preErrors.map(i=>uu(i)),...e.postImageErrors.map(i=>uu(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>uu(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 uu(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 uE(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"&&Qe(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 pu(e){return uE(e,!0)}function Na(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 rt(e,t,n,r,i=!0,o=!0,a=r){let s=pu(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:he(e.where)}),Na(e,e).forEach((l,c)=>rt(l,`${t}.select-source[${c}]`,n,a,a?!1:i,a?!1:o,a))}function fi(e,t,n,r,i=!0){e.left.type==="UNION"?fi(e.left,`${t}.left`,n,r,i):rt(e.left,`${t}.left`,n,r,!0,i),rt(e.right,`${t}.right`,n,r,!0,i)}function lE(e,t,n,r){if(!r&&Bt(e)){rt($t(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?rt(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&fi(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?rt(e.query,`${t}.main`,n,r,!1,!r,!0):fi(e.query,`${t}.main`,n,!0,!1)}function cE(e,t,n,r=!1){switch(e.type){case"SELECT":rt(e,t,n,r);return;case"UNION":fi(e,t,n,r);return;case"WITH":lE(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?lE(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?fi(e.query,`${t}.query`,n,!0,!1):rt(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":cE(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=pu(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:he(e.where)}),Na(e,e).forEach((o,a)=>rt(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=pu(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:he(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=uE(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}Na(e,e).forEach((o,a)=>rt(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:Na(e,e).forEach((i,o)=>rt(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Pa(e,t){let n=new Map;for(let r of t){if(!Qe(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 du(e,t){return t.eligible===!0&&Ve(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function Xh(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)&&ir(t)}function Qh(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function Zh(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 Mn(e)?(n.some(r=>r!==St)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(St)||n.push(St)):n.includes(on)||n.push(on),[...new Set(n)]}function cu(e,t){let n=e.functionNames[0],r=Mn(n)?St:on,i=Zh(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function pE(e,t){let n=[];cE(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let p=Qh(i);return r.push(p),{hasRelativeDate:i.functionNames.some(ne),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:cu(i)}}if(i.kind==="SELECT"){let p=i.source,u=p.from.cteName===null&&!p.from.subtableCode&&p.joins.length===0,d=Ve(p),f=await t.select(p),R="";try{R=i.where===null?"":Y(i.where)}catch{R=""}let E=u&&d==="SIMPLE"&&(p.orderBy.length===0||p.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Pa(R,i.relativeFunctionOccurrences),g,y;if(!E&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(p);I?.eligible===!0&&du(p,I)&&(g=I.plan,y=!0,E=!0)}let m;!E&&f.capability==="EXACT_PUSHDOWN"&&(m=_o({select:p,selectMode:d,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:R||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,m&&(g=m.prefilterPlan,E=!0));let S;if(!E&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(p);I!==null&&Xh(p,I)&&(S=I,E=!0)}let A={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:d,capability:f,restQuery:R,...g?{prefilterPlan:g,phase2PrefilterEligible:y}:{},...m?{fullScanExactPlan:m,allowForm:m.allowForm}:{},...S?{joinServerFunctionPlan:S,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:S.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!E,allowed:E};if(r.push(A),!E)return{hasRelativeDate:n.some(I=>I.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:cu(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":Y(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Pa(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:cu(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ne)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function fu(e){if(!e.allowed&&e.rejection){let t=Mn(e.rejection.functionName)?St:on,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 Eu(e,t,n={}){let r=ye(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=Ri(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=eS(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!tS(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=rS(e.where,t),l=Dr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),c=n.serialize??Y,p=n.containsFunctions??Pa,u=[];for(let S of a.leaves){let A=_a(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=nS(l.condition),f=new Set(u),R=Oa(e.where,f,d);if(R===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let E;try{E=c(R)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let g=u.map(S=>_a(S));if(!p(E,[...new Set(g)])||!iS(E,g))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):La(e.where,f);if(y!==null&&Ri(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let m=new Set;for(let S of g)m.add(S);return{eligible:!0,plan:{prefilterWhere:R,residualWhere:y,exactRelativeLeaves:u,relativeFunctionNames:m,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function eS(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}Ri(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Ri(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(_a(o)===null)return;if(ye(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Ri(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 _a(e){return e.right.type==="KINTONE_FUNC"&&Qe(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&Qe(e.right.values[0].name)?e.right.values[0].name:null}function Ri(e){let t=[],n=r=>{if(r.type==="BINARY"&&_a(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 tS(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 nS(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 Oa(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=Oa(e.left,t,n),i=Oa(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=Oa(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Ei={type:"BOOLEAN",value:!0};function La(e,t){if(e.type==="BINARY"&&t.has(e))return Ei;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=La(e.left,t)??Ei,r=La(e.right,t)??Ei;return Ca(n)?Ca(r)?null:r:Ca(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=La(e.expr,t)??Ei;return Ca(n)?Ei:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Ca(e){return e.type==="BOOLEAN"&&e.value}function rS(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 iS(e,t){let n=new Map;for(let r of t){if(!yr.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 B=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function dE(e,t){if(!t)throw new B("IMPORT source capability is not available.");let n=t(e);if(!n)throw new B(`source "${e}" is not supplied.`);return n}async function Da(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new B("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new B("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function oS(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new B(`invalid ${t.toUpperCase()} byte sequence.`)}}function aS(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!==`
|
|
5
|
+
`)throw new B(`unexpected character after closing quote at offset ${a}.`);if(c==='"'){if(r.length!==0)throw new B(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(c===","){s(),a++;continue}if(c==="\r"||c===`
|
|
6
6
|
`){c==="\r"&&e[a+1]===`
|
|
7
|
-
`&&a++,l(),a++;continue}r+=c,a++}if(i)throw new
|
|
7
|
+
`&&a++,l(),a++;continue}r+=c,a++}if(i)throw new B("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function sS(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new B(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new B(`CSV column name "${n}" is duplicated.`);t.add(n)})}function va(e,t){let n=aS(oS(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}`)),sS(r),i.length===0)throw new B("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new B(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var lS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),uS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),gi=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 fE(e,t,n){if(!lS.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new gi;return uS.has(t??"")?r.map(i=>({code:i})):r}function Lt(e,t,n,r){throw new B(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function EE(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new B("JSON source is not valid UTF-8.")}}function RE(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
|
|
8
8
|
`?(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===`
|
|
9
|
-
`){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 R=o();if(R==='"'){f=!0;break}if(R.charCodeAt(0)<32&&
|
|
10
|
-
`,r:"\r",t:" "};if(E in g){d+=g[E];continue}E!=="u"&&Ct(`has invalid escape \\${E}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||Ct("has invalid unicode escape",n,r,i);for(let A=0;A<4;A++)o();let m=Number.parseInt(y,16);if(m>=55296&&m<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Ct("has an unpaired high surrogate",n,r,i),o(),o();let A=e.slice(n,n+4);for(let b=0;b<4;b++)o();let h=Number.parseInt(A,16);(h<56320||h>57343)&&Ct("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),d+=String.fromCodePoint(65536+(m-55296<<10)+h-56320)}else m>=56320&&m<=57343?Ct("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):d+=String.fromCharCode(m)}f||Ct("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}Ct(`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 Na(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Pa(e){if(e.byteLength===0)throw new V("JSON source is empty.");let t=iE(rE(e)),n=0,r=(c,p=t[n])=>{throw new V(`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 ${Na(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 ${Na(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 ${Na(c)}`,c)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Na(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 V("JSON source contains no records.");return l.forEach((c,p)=>{if(!(c instanceof Map))throw new V(`JSON record ${p+1} must be an object.`)}),l}var Jh=new Set(["CHECK_BOX","MULTI_SELECT"]),oE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function gt(e,t,n){throw new V(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function Xh(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function Qh(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&>(n,t.code,"boolean is not accepted."),Xh(e)){t.fieldType==="NUMBER"&>(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&>(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)||gt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&>(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||gt(n,t.code,"unsupported value type."),!Jh.has(t.fieldType)&&!oE.has(t.fieldType)&>(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&>(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&>(n,t.code,"array elements must not contain duplicates."),oE.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function iu(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new V("JSON source is UTF-8 only.");let i=Pa(t.bytes);if(i.length>r)throw new V(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new V("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,c)=>{for(let d of l.keys())o.has(d)||gt(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]=Qh(l.get(d.code),d,c+1));a.push(p),s.push(u)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function ou(e,t,n,r,i,o){let a=ba(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new V(`source rows (${a.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 V("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,m)=>[y,m]));for(let y of r)if(!l.has(y))throw new V(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let c=new Map(i.map(y=>[y.code,y])),p=new Set(r);if(o&&p.has(o))throw new V("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new V(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],d=[],f=y=>a.rows.filter(m=>m[y]!=="").length,R=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,m]of a.columns.entries()){if(p.has(m)||m===o)continue;let A=c.get(m);if(A)u.push({column:m,reason:R(A),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)d.push({column:m,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new V(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${m}".`)}for(let y of r){let m=c.get(y);if(!m)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(m.inSubtable||m.writable===!1||m.fieldType==="FILE"||m.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${m.fieldType}).`)}let E=[];return{rows:a.rows.map(y=>{let m=[],A={};for(let h of r){let b=y[l.get(h)];try{A[h]=nE(b,c.get(h)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof fi))throw w;A[h]=b,m.push({field:h,code:w.code,message:w.message})}}return E.push(m),A}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:c.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:E,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:u,ignoredUnknownColumns:d}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((c,p)=>[c,l[p]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Ei=(e,t,n)=>{throw new V(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function aE(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new V("JSON source is UTF-8 only.");let o=Pa(t.bytes);if(o.length>r)throw new V(`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 V("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,c)=>{let p=c+1;for(let R of l.keys())a.has(R)||Ei(p,R,"unknown key (not declared in INTO).");let u=new Map,d=new Map,f=new Set;for(let R of n){let E=R.kind==="FIELD"?R.field:R.subtableCode;if(!l.has(E))continue;let g=l.get(E);if(R.kind==="FIELD"){g instanceof Map&&Ei(p,E,"object is not accepted for a top-level field."),u.set(E,g);continue}Array.isArray(g)||Ei(p,E,"subtable value must be an array."),f.add(E);let y=new Set(R.children),m=g.map((A,h)=>{A instanceof Map||Ei(p,E,`childRow=${h+1} must be an object.`);let b=A;for(let w of b.keys())y.has(w)||Ei(p,w,`unknown child key in subtable ${E} at childRow=${h+1}.`);if(s++,s>i)throw new V(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:h+1,values:b}});d.set(E,m)}return{rowNumber:p,top:u,subtables:d,replacementTables:f}})}}function sE(e,t,n,r,i,o){let a=ba(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new V('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((d,f)=>[d,f]));if(o&&!s.has(o))throw new V(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(d=>d.kind==="FIELD"),c=n.filter(d=>d.kind==="SUBTABLE");for(let d of l)if(!s.has(d.field))throw new V(`ERR_IMPORT_MISSING_COLUMN: required header "${d.field}" is missing.`);for(let d of c){if(!d.rowIdSourceHeader||!s.has(d.rowIdSourceHeader))throw new V(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${d.subtableCode} is missing.`);for(let f of d.children)if(!s.has(f))throw new V(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let p=[],u;if(a.rows.forEach((d,f)=>{let R=f+2,E=d[0];if(E!==""&&E!=="*")throw new V(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(E)} at source row ${R}.`);if(E==="*"){if(p.length>=i)throw new V(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:p.length+1,markerRowNumber:R,top:new Map(l.map(g=>[g.field,d[s.get(g.field)]])),subtables:new Map(c.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:d[s.get(o)]}:{}},p.push(u)}else if(u){for(let g of l){let y=d[s.get(g.field)];if(y!==""&&y!==u.top.get(g.field))throw new V(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${R}.`)}if(o){let g=d[s.get(o)];if(g!==""&&g!==u.recordNumberSourceValue)throw new V(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new V(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let g of c){let y=d[s.get(g.rowIdSourceHeader)],m=new Map(g.children.map(h=>[h,d[s.get(h)]]));if(y===""&&[...m.values()].every(h=>h===""))continue;let A=u.subtables.get(g.subtableCode);A.push({childRowNumber:A.length+1,sourceRowNumber:R,...y?{rowId:y}:{},values:m})}}),p.length===0)throw new V("CSV has no parent rows.");return{records:p}}var Zh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),eS=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function lu(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function pE(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)lE(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 R=a.get(d.subtableCode)??new Map;for(let E of d.children)lE(E,R.get(E),d.subtableCode)}let c=new Map(l.map(d=>[d.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(d=>tS(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 tS(e,t,n,r,i,o,a,s){let l=[],c={};for(let d of t)e.top.has(d.field)&&su(e.top.get(d.field),r.get(d.field),o,c,d.field,l,au(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)||uE(d,o,p,l,au(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 R=[];for(let E of e.subtables.get(d.subtableCode)){f.childRows++;let g=l.length,y={},m=i.get(d.subtableCode);for(let A of d.children){let h=m.get(A),b=au(e,a,A,d.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(A)?su(E.values.get(A),h,o,y,A,l,b):uE(h,o,y,l,b)}l.length===g?(f.validChildRows++,R.push(y)):f.invalidChildRows++}u.set(d.subtableCode,R)}return{parentRow:e.rowNumber,valid:l.length===0,top:c,subtables:u,replacementTables:e.replacementTables,errors:l}}function lE(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&&eS.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function uE(e,t,n,r,i){let o=un(e.defaultValue)?"":e.defaultValue;su(o,e,t,n,e.code,r,i,!un(e.defaultValue))}function su(e,t,n,r,i,o,a,s=!1){let l=nS(e),c=xe(l,t,n);c.ok?r[i]={value:rS(l,t)?l:c.value}:o.push({...a,code:c.code,message:s?`\u65E2\u5B9A\u5024: ${c.message}`:c.message})}function nS(e){return cE(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:cE(t)?t.lexeme:t):e}function cE(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function rS(e,t){return Zh.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function au(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 uu=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function cu(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":iS(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 iS(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 pu(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 dE(e,t){return pu(e,t,"DROP")}function fE(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 EE(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 oS(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function RE(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 gE(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 R=oS(c.record,f),E=new Set(R.map(w=>w.id).filter(w=>!!w)),g=s.subtables.get(f)??[],y=o.subtables.get(f)??[],m=0,A=0,h=0,b=g.map((w,C)=>{let I=y[C]??{};return w.rowId&&E.has(w.rowId)?(m++,{rowId:w.rowId,record:I}):(w.rowId&&((i.get(w.rowId)??[]).some(P=>P.parentId!==l||P.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:w.rowId,subtable:f,subrow:w.childRowNumber,sourceRow:w.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${w.rowId}`,sourceValues:w.values}),h++),A++,{record:I})});u.set(f,b),d.push({table:f,existingRows:R.length,inputRows:g.length,updateRows:m,addRows:A,deleteRows:R.length-m,rowIdNotFound:h})}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 du="#__import_source";function yE(e){return{...e,from:{appId:0,alias:null,cteName:du}}}function aS(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function fu(e,t){let n=e.map(aS),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 sS="\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",hn=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"}},Ee=new WeakMap;function kE(e){return Ee.get(e)}var Nn=new WeakMap,ja=new WeakMap,mE=new WeakMap,lS=1,uS=1;function ME(e,t){if(t)return t;let n=mE.get(e);return n||(n=`client:${lS++}`,mE.set(e,n)),n}function Vu(e){return`${e}\0inv:${uS++}`}async function Wu(e,t,n={}){let r=Date.now(),i=Vu(ME(t,n.cacheContext));try{let o=QT(e,n.enableImport===!0),a=FE(),s=GE(t,a),l={aborted:!1},c=Yu(s,l,!pS(o)||Ol(o)),p=await Au(o,c,n,i);a.elapsedMs=Date.now()-r;let u={...KE(p,l),metrics:a};if(p.type==="SELECT"){let d=Ee.get(p);d&&Ee.set(u,d)}return u}finally{cc(i)}}function FE(){return{getCalls:0,postCalls:0,putCalls: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 xE=Symbol("limitMetricsSink");function Hu(e,t){let n=e[xE];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function GE(e,t){return{[xE]:t,getRecords:async n=>{t.getCalls+=1;let r=await e.getRecords(n);return t.fetchedRows+=r.records.length,r},openCursor:async n=>{t.cursorCreateCalls+=1;let r;try{r=await e.openCursor(n)}catch(a){throw a instanceof Error&&a.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),a}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let i=!1,o=()=>{i||(i=!0,t.cursorActiveCurrent-=1)};return{totalCount:r.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let a=await r.nextPage();return t.cursorRecordsScanned+=a.records.length,a.next||o(),a},close:async()=>{i||(t.cursorDeleteCalls+=1);try{await r.close(),o()}catch(a){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,a}}}},postRecords:n=>(t.postCalls+=1,e.postRecords(n)),putRecords:n=>(t.putCalls+=1,e.putRecords(n)),deleteRecords:n=>(t.deleteCalls+=1,e.deleteRecords(n)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:n=>(t.fieldCalls+=1,e.getFields(n)),getNumberPrecision:n=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(n)),getProcessStatuses:n=>(t.processStatusCalls+=1,e.getProcessStatuses(n))}}var AE=Symbol("searchAbortFailClosed");function Yu(e,t,n){return n&&e[AE]?e:{...e,...n?{[AE]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new hn;return i}}}function cS(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 pS(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function KE(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(sS),{...e,warnings:[...n]}}async function hE(e,t,n){let r=await Di(e,t,n);return nu(r),r}async function Di(e,t,n){return eE(e,{select:async r=>{let{resolver:i}=await yn(r,t,n);return me(r.where,i)},dml:r=>XE(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await yn(r,t,n);return ru(r,i)},joinServerFunctionPlan:async r=>{await yn(r,t,n);let i=await za(r,t,n),o=qa(r,i);return o===null?null:(tr(o.joinPlan)&&tc.set(r,o),o.joinPlan)}})}async function Au(e,t,n,r){let i=await Di(e,t,r);e.type!=="EXPLAIN"&&nu(i);let o=Su(e);if(o!==null&&!LT(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(kn("phase15b",e),ro("phase15b",e),et(e),e.type!=="EXPLAIN"&&await bS(e,t,r),e.type==="IMPORT")return AR(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 Fu(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 dc(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 dS(e,t,n,r);case"SELECT":return Xt(Nu(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return cR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return sc(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return wT(e,t,n,r);case"INSERT_SELECT":return gc(e,t,n,r);case"UPSERT":return VT(e,t,n,r);case"UPSERT_SELECT":return Ac(e,t,n,r);case"UPDATE":return Fu(e,t,n,r);case"DELETE":return $T(e,t,n,r);case"REORDER":return zT(e,t,n,r);case"SHOW_APPS":return NR(t);case"DESCRIBE":return PR(e,t,r);case"EXPLAIN":return nI(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Je(n.dmlMaxRows,"dmlMaxRows",vt):vt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe):Pe,i);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 HE(e,t,n,r)}}var ju=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],qu=["$id","$err_subtable","$err_field","$err_code","$err_count"];function zu(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 BE(e=!1){let t=e?qu:ju;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:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function dS(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return $E(e,t,n,r)}async function $E(e,t,n,r){let i=await X(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=Tl(e,i),l=new Set(s.flatMap(O=>hl(O.field))),c={present:Al.filter(O=>l.has(O)),absent:Al.filter(O=>!l.has(O))},p=e.checkGroups??[],u=jn(p);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw we(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let d=new Map([...o].map(([O,v])=>[O,v.fieldType]));d.set("$id","RECORD_NUMBER"),bn(e,d);let f=zu(e.where),R=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let E=s.some(O=>O.field.fieldType==="NUMBER")?await mt(e.appId,t,r):void 0,g=O=>O.field==="$id"?Q({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?Q(o.get(O.field)):void 0),y=me(e.where,g);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${mn(y)}).`);let m=new Map([...o].map(([O,v])=>[O,v.fieldType])),A=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),h=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:Kn(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,fieldOptions:A,allowKlike:!1}),b=h===null?"":Y(h),C=(await De(t.getRecords,e.appId,b,R,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:Pt(O,null)})).filter(O=>e.where===null||ie(e.where,O.flat,v=>d.get(v.field))),I=[],L=new Map,P=new Map,D=new Set,x=0,_=O=>{if(D.add(O.id),x+=1,e.summary){let M=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),U=P.get(M);U?U.$err_count=String(Number(U.$err_count)+1):P.set(M,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let v=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),$=L.get(v);$?($.$err_count=String(Number($.$err_count)+1),O.subrow!==void 0&&($.$err_subrow=`${$.$err_subrow},${O.subrow}`,$.$err_subrow_id=`${$.$err_subrow_id},${O.subrowId??""}`)):L.set(v,{$id:O.id,$err_field:O.field,$err_code:O.code,$err_message:O.message,$err_value:O.value,$err_subtable:O.subtable??"",$err_subrow:O.subrow===void 0?"":String(O.subrow),$err_subrow_id:O.subrowId??"",$err_count:"1"})},k=s.filter(O=>!O.subtableCode),S=new Map;for(let O of s){if(!O.subtableCode)continue;let v=S.get(O.subtableCode)??[];v.push(O),S.set(O.subtableCode,v)}for(let O of C){for(let v of k){let $=O.record[v.field.code]?.value,M=xe($,v.field,E);M.ok||_({id:O.id,field:v.field.code,code:M.code,message:M.message,value:Vr($,v.field.fieldType)})}for(let[v,$]of S){let M=O.record[v]?.value;if(Array.isArray(M))for(let U=0;U<M.length;U++){let K=M[U];for(let z of $){let W=K.value?.[z.field.code]?.value,G=xe(W,z.field,E);if(!G.ok){let se=Yo(v,U,K);_({id:O.id,field:z.field.code,code:G.code,message:G.message,value:Vr(W,z.field.fieldType),...se})}}}}for(let v of vo(p,O.flat,$=>d.get($.field)))_({id:O.id,field:"",code:"ERR_CHECK",message:v.message,value:""})}if(e.summary)I.push(...P.values());else for(let O of L.values()){let v=Number(O.$err_count);O.$err_subtable!==""&&v>=2&&(O.$err_message=`${O.$err_message}\uFF08${v}\u884C: ${O.$err_subrow}\uFF09`),I.push(O)}let F={type:"SELECT",columns:[...e.summary?qu:ju],rows:I,rowCount:I.length,validateStats:{errorRecords:D.size,errorCount:x,constraintMetadata:c}};return Ee.set(F,BE(e.summary===!0)),F}var ze=1e4;function yt(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])||!fS(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 fS(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||!Po(i.semantics,r.semantics))return!1}return!0}var ir=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function VE(e,t,n={}){let r=Ju(e,n.enableImport===!0),i=Ys(r);if(r.forEach(f=>ro("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>hs(f)||f.type==="UPSERT"&&ES(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=Cl(r,n.variables),a=WE(r,o),s={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let f of i.statements){if(!f.isDml||f.tempTablesReferenced.length===0||f.statementType==="INSERT_SELECT"||f.statementType==="UPSERT_SELECT")continue;let R=r[f.index];if(!(R?.type==="UPDATE"&&R.from?.cteName!=null))throw new ne(`ArgumentError: temp table references in ${f.statementType} are not supported yet.`,f.index)}let l=FE(),c=GE(t,l),p=Date.now(),u=n.timeoutMs!=null?p+n.timeoutMs:null,d=Vu(ME(t,n.cacheContext));try{let f=new Map,R=new Map,E=[],g=new Set,y=null;for(let m=0;m<r.length;m++){let A=i.statements[m],h={index:m,type:A.statementType};if(y){E.push({...h,status:"skipped",skippedReason:y}),g.add(m);continue}let b=A.dependsOn.find(w=>g.has(w));if(b!==void 0){let w=i.statements[b].tempTablesCreated[0]??`statement ${b}`;E.push({...h,status:"skipped",skippedReason:`dependency: ${w}`}),g.add(m);continue}if(u!==null&&Date.now()>=u){E.push({...h,status:"skipped",skippedReason:"timeout"}),g.add(m),y="timeout";continue}try{let w=u!==null?u-Date.now():null,C=s.confirm,I=C?{...s,confirm:(_,k,S)=>C(_,k,{statementIndex:m,statementCount:r.length,statementType:A.statementType,targetAppId:A.targetAppId,...S?.importDetail?{importDetail:S.importDetail}:{},...S?.applyDetail?{applyDetail:S.applyDetail}:{},...S?.applyDiagnostic?{applyDiagnostic:S.applyDiagnostic}:{}})}:s,L={aborted:!1},P=Yu(c,L,A.statementType!=="SELECT"&&A.statementType!=="UNION"&&A.statementType!=="WITH"||Ol(r[m])),D=cS(P),x=await yS(RS(r[m],A,D.client,I,d,f,R,a),w,D.closeActive);x.result&&(x.result=KE(x.result,L)),E.push({...h,status:"success",...x})}catch(w){E.push({...h,status:"error",error:mS(w),...w instanceof Pi?{result:w.diagnostic}:{}}),g.add(m),w instanceof ir?y="timeout":w instanceof ar?y="assertion":A.statementType==="SET_VARIABLE"||A.statementType==="DECLARE_VARIABLE"?y="fail-fast":n.continueOnError||(y="fail-fast")}}return l.elapsedMs=Date.now()-p,{ok:E.every(m=>m.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:l}}finally{cc(d)}}function ES(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 RS(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let c=Ga(e,a);if(et(c),await hE(c,n,i),c.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:c.expr.elements.map(p=>({type:"string",value:p.value}))});else if(c.expr.type==="SCALAR_SUBQUERY")try{let p=await YE(c.expr.query,n,r,i,o),u=c.expr.query.columns[0],d=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"&&(u.windowKind===void 0||u.windowKind==="RANKING"||u.windowKind==="AGGREGATE"&&(u.aggFunc==="COUNT"||u.aggFunc==="SUM"||u.aggFunc==="AVG"))||u?.type==="AGGREGATE"&&(u.func==="COUNT"||u.func==="SUM"||u.func==="AVG"||u.func==="STDDEV_POP"||u.func==="STDDEV_SAMP"||u.func==="VAR_POP"||u.func==="VAR_SAMP"||u.func==="MEDIAN");if(u?.type==="AGGREGATE"&&u.func==="MODE"||u?.type==="WINDOW_COL"&&u.windowKind==="VALUE"||u?.type==="WINDOW_COL"&&u.windowKind==="AGGREGATE"&&(u.aggFunc==="MIN"||u.aggFunc==="MAX")){let R=(await Va(c.expr.query,["__scalar__"],n,i,o)).get("__scalar__");d=R?.semantics?.compareMode==="number"||R?.sortKind==="number"}let f=d?Number(p):Number.NaN;a.set(e.name,d&&Number.isFinite(f)?{type:"number",value:f,raw:p}:{type:"string",value:p})}catch(p){throw p instanceof gn?new Error(`ArgumentError: ${p.message}`):p}else a.set(e.name,SE(c.expr));return{}}if(e.type==="DECLARE_VARIABLE"){if(e.annotation==="RELATIVE_DATE")return a.set(e.name,{type:"relative-date",value:s.get(e.name)}),{};let c=r.variables??{};if(Object.prototype.hasOwnProperty.call(c,e.name))a.set(e.name,{type:"string",value:c[e.name]});else{let p=SE(e.default);a.set(e.name,{type:"string",value:p.type==="number"?p.raw??String(p.value):p.value})}return{}}let l=Ga(e,a);if(kn("phase15b",l),ro("phase15b",l),et(l),await hE(l,n,i),l.type==="VALIDATE"){let c=await $E(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&yt(o,l.errorTable,c.columns,c.rows,r.tempTableMaxRows??ze,Ee.get(c)??BE(l.summary===!0)),{result:c}}if(l.type==="IMPORT")return{result:await AR(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let c=await dc(l,n,{...r,onLimitReached:"error"},i,o,t.index+1);return l.validationErrorTable&&yt(o,l.validationErrorTable,c.columns,c.errors,r.tempTableMaxRows??ze,Nn.get(c)??new Map),{result:c}}if("onErrorSkip"in l&&l.onErrorSkip===!0)return{result:await ku(l,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(l.type==="CREATE_TEMP_TABLE"){let c={...r,maxRecords:r.tempTableMaxRows??ze,onLimitReached:"error"},p=await gS(l.query,n,c,i,o);return o.set(l.name,{rows:p.rows,columns:p.columns,columnMeta:Ee.get(p)}),{tempTable:l.name,rowCount:p.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN"){let c=l;$u.set(c,o);try{return{result:await Au(c,n,r,i)}}finally{$u.delete(c)}}if(l.type==="ASSERT")return await HE(l,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(l.type==="SELECT"||l.type==="UNION")return{result:await _t(l,n,r,o,i,r.captureColumnMeta===!0)};if(l.type==="WITH")return{result:await sc(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await gc(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await Ac(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await Fu(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await Au(l,n,r,i)}}async function gS(e,t,n,r,i){return e.type==="WITH"?sc(e,t,n,r,i,!0):_t(e,t,n,i,r,!0)}async function yS(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new ir;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 ir)})()},t)})])}catch(a){throw a instanceof ir&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function mS(e){let t;if(e instanceof dt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Eu(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:AS(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Eu(r),message:r}}else{let n=String(e);t={code:Eu(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Eu(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function AS(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function Ju(e,t=!1){let n=new Ht(e).tokenize();return new Yt(n,{import:t}).parseStatements()}function hS(e,t){try{let n=Ju(`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 WE(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)?hS(r.name,t[r.name]):r.default);return n}function SE(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:H(e)};case"KINTONE_FUNC":return{type:"string",value:hd(e.name)};case"STRING_FUNC":return{type:"string",value:ce(e,{})};case"ARITH":{let t=ue(e,{});if(!Number.isFinite(t))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:t,raw:String(t)}}}}function Ga(e,t){return hu(e,t,!1)}function hu(e,t,n){if(Array.isArray(e))return e.map(r=>hu(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(`ParseError: variable @${r.name} is not defined 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"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined 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,hu(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(`ParseError: variable @${a.name} is not defined 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=SS(i);if(o.type==="SELECT"&&Ye(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Ye(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 Ye(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function SS(e){if(e.type==="NOT"&&Ye(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Ye(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Ye(t,!1)||Ye(n,!1))return{type:"BOOLEAN",value:!1};if(Ye(t,!0))return n;if(Ye(n,!0))return t}else if(e.op==="OR"){if(Ye(t,!0)||Ye(n,!0))return{type:"BOOLEAN",value:!0};if(Ye(t,!1))return n;if(Ye(n,!1))return t}}return e}function Su(e){if(Array.isArray(e)){for(let t of e){let n=Su(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=Su(n);if(r!==null)return r}}return null}var ar=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},gn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function HE(e,t,n,r,i){let o=await Ca(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Ca(e.low,t,n,r,i),c=await Ca(e.high,t,n,r,i);if(!sn(">=",o,l,a)||!sn("<=",o,c,a))throw new ar(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let s=await Ca(e.right,t,n,r,i);if(!sn(e.op,o,s,a))throw new ar(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Ca(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return H(e);case"STRING":return e.value;case"ARITH":return String(Tu(e));case"SCALAR_SUBQUERY":try{return await YE(e.query,t,n,r,i)}catch(o){throw o instanceof gn?new ar(o.message):o}}}async function YE(e,t,n,r,i){let{query:o,probed:a}=TS(e),s=await hi(o,t,n,r,i);if(s.columns.length!==1)throw new gn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new gn("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 gn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function TS(e){return Z(e).type!=="NONE"||e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function Tu(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=Tu(e.left),n=Tu(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 vi(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=i||ft(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 X(d,t,n);return[d,new Map(f.map(R=>[R.code,R]))]}))),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 R=String(f.op),E=f.right,g=["=","!=","<>"].includes(R)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(R)||g)){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(g=>f.get(g)?.fieldType==="STATUS"))return;let E=await pc(d,t,n);E&&p.set(d,E)}));let u=(d,f,R)=>{if(f==="$id")return Yn(Q({fieldType:"__ID__"}),d.appId,"$id");if(R&&d.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let E=s.get(d.appId)?.get(pe(d,f));if(!E)return;let g=E.semantics??Q(E),y=E.fieldType==="STATUS"&&p.has(d.appId)?{...g,optionOrder:p.get(d.appId)}:g;return Yn(y,d.appId,E.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 R=o.find(E=>Ne(E)===d.tableAlias);return R?R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics??B("string"):u(R,d.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(d.field)?.semantics??B("string"):u(e.from,d.field,!0);let f=o.flatMap(R=>{let E=R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics:u(R,d.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(R=>va(R,d.field)!==void 0))return f.length>1?B("string"):void 0}}var jE=new WeakMap;async function yn(e,t,n,r,i=!1){let o=await vi(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=df(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&jE.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function IS(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function qE(e){return IS(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function TE(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=Ge(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===Ne(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=Ge(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function IE(e,t){return e!=="DIRECT"?"\u305D\u306E\u8868\u306E\u4E2D\u3067\u4E00\u610F\u306B\u306A\u308B\u5217\uFF08\u5143\u306E\u96C6\u7D04\u306E\u30AD\u30FC\u306A\u3069\uFF09\u3092 ORDER BY \u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u96C6\u7D04\u7D50\u679C\u306E\u5217\u306F\u4E00\u610F\u3067\u3082\u8A3C\u660E\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u3059\u3067\u306B\u4E00\u610F\u306A\u5834\u5408\u3082\u3053\u306E\u8B66\u544A\u304C\u51FA\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u306E\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3081\u3066\u3044\u308B\u306A\u3089\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3057\u3066\u69CB\u3044\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 zE(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"||TE(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`+IE(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||TE(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`+IE(n,"VALUE"));return i}function Xu(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=Ee.get(e);return r&&Ee.set(n,r),n}function Qu(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=>ft(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function JE(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(Ge(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=B("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=B("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Tn(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=Tn(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"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=Sn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}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 Ka(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function XE(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=ft(e.where)?await X(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?me(null,()=>{}):me(e.where,o=>{if(o.field==="$id")return Q({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?Q(a):void 0)})}async function or(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await XE(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new re(`WHERE predicate cannot be represented by kintone REST (${mn(r)})`)}async function Xt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l;if(await wi(e,t,r,i),CS(e))return l=_S(e),o&&Ee.set(l,await Va(e,l.columns,t,r,i,a)),l;let{resolver:c}=await yn(e,t,r,i,qE(e)),p=zE(e,c,s),u=await Ti(e,t,r,i);await CR(e,t,n,r,i);let d=YS(e,me(e.where,c));if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${mn(d)}).`);let f=$e(e),R,E;if(d.capability==="SUPERSET_PREFILTER"){let C=await vi(e,t,r,i),I=ru(e,C);I.eligible&&tu(e,I)&&(R=I.plan)}if(R===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let C=null;try{C=Y(e.where)}catch{C=null}E=mo({select:e,selectMode:f,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:C,relativeFunctionNames:ye(e.where)})??void 0,E&&(R=E.prefilterPlan)}let g=d.capability==="EXACT_PUSHDOWN"?f:"FULL_SCAN",y=await Ni(e,t,r,i),m=Ka(e)?(e.orderMode==="KINTONE_NATIVE"?ni:ti)({stmt:e,staticMode:g,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Te(e.where)}):null,A=await vS(e,m?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),h=Zu(e,n,m),w=E!==void 0&&(f==="FULL_SCAN"||m?.kind==="CANONICAL_LOCAL")?Yu(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await DS(e,w,h.effectiveOptions,r,m,y):l=await zS(e,w,h.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&R===void 0,y,R,u)}catch(C){ZE(h,C)}return o&&Ee.set(l,await Va(e,l.columns,t,r,i,a)),Xu(l,[...p,...A])}function Iu(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 QE(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 Ti(e,t,n,r){let i=Z(e);if(!lo(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 E=r?.get(u.cteName);if(!E)throw new Error(`InternalError: materialized schema ${u.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let d=await X(u.appId,t,n);if(!u.subtableCode){for(let E of d){if(E.inSubtable!==!0||!E.subtableCode)continue;let g=s.get(E.code)??[];g.push({appId:u.appId,owner:E.subtableCode}),s.set(E.code,QE(g))}return{kind:"APP",fieldCodes:d.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=d.filter(E=>E.inSubtable&&E.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:d.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:d.filter(E=>!E.inSubtable).map(E=>E.code)}})),c=mp(e,(u,d)=>l[d]),p=Tp(o,e.columns,c);return wS(e,o,p,s),Sr(e,Np(e,p,c)),p}function wS(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,R=r.get(s.name)??r.get(f)??[];throw R.length>0?new Error(Iu(s.name,R)):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 Ii=new WeakMap;async function bS(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 wi(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function NS(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 X(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=pe(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?f.columns.includes(d):!0},p=(u,d,f,R)=>{let E=i.filter(m=>m.cteName===null&&l(m,f.field)!==null).length,g=i.some(m=>c(m,f.field)),y=Ne(u);return{canonicalId:`source:${d}:APP${u.appId}:${R}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!g?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let g=i.findIndex(A=>Ne(A)===u.tableAlias);if(g<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[g];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 m=l(y,u.field);if(m===null){let A=s(y,pe(y,u.field));throw A!==null&&A!==""?new Error(Iu(u.field,[{appId:y.appId,owner:A}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${y.appId}.`)}return p(y,g,u,m)}let d=i.flatMap((g,y)=>{if(g.cteName!==null)return[];let m=l(g,u.field);return m===null?[]:[{table:g,tableIndex:y,code:m}]}),f=i.filter(g=>c(g,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 g=d[0];return p(g.table,g.tableIndex,u,g.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 R=i.flatMap(g=>{if(g.cteName!==null)return[];let y=s(g,pe(g,u.field));return y===null||y===""?[]:[{appId:g.appId,owner:y}]}),E=QE(R);throw E.length>0?new Error(Iu(u.field,E)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function wi(e,t,n,r){Ii.delete(e);let i=Z(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await NS(e,t,n,r),c=Op(e,l,Cp);c&&Ii.set(e,c);return}if(!lo(e))return;if(i.type==="NONE"){uo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await Ti(e,t,n,r)}function PS(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.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 Zu(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Ut({...e,orderBy:[]}):Ut(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function ZE(e,t){throw e.reasons.size>0&&t instanceof ke&&!t.completeInputWrapped?new ke(PS(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function wu(e,t){try{return await t()}catch(n){ZE(e,n)}}function Lt(e){return e?.type==="BOOLEAN"&&e.value===!1}function CS(e){return e.from.appId===0&&e.from.cteName===Qe}function Ba(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"?Ba(e.left)||Ba(e.right):e.type==="STRING_FUNC"?ec(e):!1}function OS(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:gi(e)}function gi(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?ec(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?gi(e.left)||gi(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"?Ba(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:gi(n))):!1}function ec(e){return e.args.some(t=>OS(t))}function LS(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(Ba(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(ec(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(gi(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 _S(e){if(e.joins.length>0||e.where||Z(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.");LS(e);let t=jl([{}],e.columns),{rows:n,columns:r}=rr(t,e.columns),i=ya(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function DS(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?rR(e):e,s=Ro(a),l=i?.kind==="CANONICAL_LOCAL"?on(e,e.from):s.fields,c=await rc(e,t,r),p=oc(e,c),u=e.columns.some(I=>I.type==="CASE_COL")?await vi(e,t,r,void 0,Qu(e)):void 0,d=n.maxRecords??1e4,f=new Set,R=n.onLimitReached??"error",E=n.fetchParallel??1,g=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,m=e.orderBy.length===0&&y!==null&&y<=d&&!Te(e.where)?y:void 0,A;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)A=[];else if(i?.kind==="KORDER_CURSOR"){let I=await Pf({client:t,app:s.app,fields:s.fields,query:Gl(e),offset:e.offset??0,limit:e.limit});A=I.records,I.cleanupWarning&&f.add(I.cleanupWarning)}else if(g)A=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let I=e.where?Y(e.where):"";A=await De(t.getRecords,s.app,I,l,{parallel:E,maxRecords:d,stopAfter:m,onLimit:R,onTruncate:L=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${L} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${L} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Hu(t,e.from.appId)}})}let h=A.map(I=>Pt(I,null));g||(h=Hl(h,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Yl(e.columns,void 0,p.row,u)),h=ya(h,e.limit,e.offset));let{rows:b,columns:w}=rr(h,e.columns,void 0,p.row,void 0,u),C=await lc(e,b,w,t,r);return{type:"SELECT",rows:b,columns:C,rowCount:b.length,warnings:[...f]}}async function vS(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=Ro(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=on(e,p);a(p.appId,u),p.subtableCode||l(p.appId,u)}}for(let[c,p]of o.entries()){let u=[...p].filter(g=>!bs(g));if(u.length===0)continue;let d=await X(c,n,r);if(d.length===0)continue;let f=new Set(d.map(g=>g.code)),R=u.filter(g=>!f.has(g));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (APP${c})`);let E=s.get(c);if(E){let g=d.filter(y=>y.inSubtable===!0&&E.has(y.code));for(let y of g){let m=y.subtableCode??"",A=m?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${m}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${A}\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`+(m?`APP${c}$${m} \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 wE(e){return e.cteName??`APP${e.appId}`}function US(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function kS(e,t){return bs(t)||e.validCodes.has(t)}function Ru(e,t){return e.table.cteName!==null?e.validCodes.has(t):kS(e,t)}function MS(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 FS(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=new Map,a=new Set;for(let p of i){let u=Ne(p);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let p of i){if(p.cteName===null||p.cteName===Qe)continue;let u=n.get(p.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);o.set(p,u)}let s=new Map;await Promise.all(i.map(async p=>{let u=o.get(p);if(u){s.set(p,{table:p,label:wE(p),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(p.cteName===Qe)return;let d=await X(p.appId,t,r);s.set(p,{table:p,label:wE(p),validCodes:new Set(d.map(f=>f.code)),authoritative:d.length>0,schemaUnavailable:!1})}));let l=new Map;for(let p of s.values())for(let u of US(p.table))l.set(u,p);for(let p of e.joins)for(let u of[p.on.left,p.on.right]){if(!u.tableAlias)continue;let d=l.get(u.tableAlias);if(d&&d.table.cteName!==null&&!d.schemaUnavailable&&!Ru(d,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let c=kp(e);for(let[p,u]of c.bySource){let d=s.get(p);if(!d||d.schemaUnavailable||!d.authoritative)continue;let f=[...u].filter(R=>!Ru(d,R));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${d.label})`)}for(let p of c.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>Ru(f,p))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let d=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${d})`)}}async function Da(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Da(e.left,t,n,r,i),await Da(e.right,t,n,r,i);return}await FS(e,t,n,r);for(let o of MS(e))await Da(o,t,n,r,i)}}function eR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Bn(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Bn(e.where,{tableAlias:e.from.alias}):null}var tc=new WeakMap;function qa(e,t){if(e.joins.length===0||e.where===null||e.joins.some(u=>u.type!=="INNER"))return null;let n=[e.from,...e.joins.map(u=>u.table)];if(n.some(u=>u.alias===null||u.cteName!==null||!!u.subtableCode))return null;let r=n.map(u=>({alias:u.alias,appId:u.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(u.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(u.appId)})),i=Sf(e.where,r),o=Tf(i,r),a=new Map,s=new Map;for(let[u,d]of o.fetchQueriesByAlias)s.set(u,d);for(let u of o.items)s.has(u.targetAlias)||s.set(u.targetAlias,er(u,r)),a.set(u.targetAlias,u.predicate);let l=e.from.alias,c=a.get(l)??null,p=new Map(a);return p.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:c,joinConditions:p,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function za(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,eR(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER")&&[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=Bn(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([_e(s,t,n),eT(s,t,n)]),u=xS(l).filter(d=>c.get(d)==="STATUS");if(u.length>0){let d=await Xa(s,t,n);if(d.enable&&d.states&&d.states.length>0){let f=new Set(d.states.map(R=>R.name));for(let R of u)p.set(R,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 xS(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 Ot(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"&&$a(e.left.expr,t),e.right.type==="CASE_VALUE"&&$a(e.right.expr,t);return;case"LOGICAL":Ot(e.left,t),Ot(e.right,t);return;case"NOT":case"GROUP":Ot(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function $a(e,t){for(let n of e.branches)Ot(n.condition,t)}function GS(e){let t=[];Ot(e.where,t),Ot(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&$a(n.expr,t);return t}function Ne(e){return e.alias??e.cteName}function tR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>Ne(n)===t)}function nc(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function rc(e,t,n){let r=GS(e);if(r.length===0)return new Map;let i=new Set,o=nc(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=tR(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 _e(s,t,n)]));return new Map(a)}function Ge(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 ic(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||En(t,n)}function En(e,t){if(e.type==="FIELD_REF"){t.push(Ge(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){En(e.left,t),En(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){En(e.left,t),En(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"&&En(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"?sr(n,t):n.type!=="ARRAY"&&En(n,t)}function sr(e,t){if(e.type==="AGG_REF"){ic(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(sr(e.left,t),sr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function bu(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")sr(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;yi(n,t)}}function yi(e,t){if(e.type==="STRING_FUNC"){bu(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){yi(e.left,t),yi(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"?bu(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?sr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&yi(r,t)}}function KS(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;ic(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function BS(e){let t=[];for(let n of e)n.type==="AGGREGATE"?ic(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?sr(n.expr,t):n.type==="STRFUNC_COL"?bu(n.expr,t):n.type==="SCALAR_VALUE_COL"?yi(n.expr,t):n.type==="CASE_COL"&&KS(n.expr,t);return t}var $S=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function VS(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":$S.has(e.fieldType)?"string":void 0}async function nR(e,t,n,r){let i=BS(e.columns);if(i.length===0)return;let o=new Set,a=nc(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 R=tR(e,f.tableAlias);R&&R.cteName===null&&o.add(R.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let R of a)o.add(R.appId);let s=new Map(await Promise.all([...o].map(async f=>{let R=await X(f,t,n);return[f,new Map(R.map(E=>[E.code,E]))]}))),l=new Map,c=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,R])=>{if(![...c].some(g=>R.get(g)?.fieldType==="STATUS"))return;let E=await pc(f,t,n);E&&l.set(f,E)}));let p=[e.from,...e.joins.map(f=>f.table)],u=(f,R)=>{let E=f.semantics??Q(f);return f.fieldType==="STATUS"&&l.has(R)?{...E,optionOrder:l.get(R)}:E};return f=>{let R;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)R=s.get(e.from.appId)?.get(f.field);else{let g=p.find(y=>Ne(y)===f.tableAlias);if(!g)return;if(g.cteName!==null)return r?.get(g.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");R=s.get(g.appId)?.get(pe(g,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");R=s.get(e.from.appId)?.get(pe(e.from,f.field))}else{let g=p.flatMap(y=>{if(y.cteName!==null){let A=r?.get(y.cteName);return A?.columns.includes(f.field)?[A.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let m=s.get(y.appId)?.get(pe(y,f.field));return m?[u(m,y.appId)]:[]});return g.length!==1?void 0:g[0]}if(!R)return;let E=f.tableAlias!==null?p.find(g=>Ne(g)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(R,E?.appId??e.from.appId)}}function pe(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function va(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function ve(e,t){let n=e.semantics??Q(e);return{sortKind:VS(e),fieldType:e.fieldType,semantics:t===void 0?n:Yn(n,t,e.code)}}function rR(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 J(e){return{sortKind:e,semantics:B(e)}}function je(){return{semantics:B("string","KSQL_UNKNOWN")}}function iR(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function qe(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:Q({fieldType:"__ID__"})};if(e==="_rid")return J("string");if(e==="_pid"||e==="_idx"||e==="$revision")return J("number")}var WS=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Sn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?J("number"):J("string")}return WS.has(e.func)?J("number"):J("string")}function lr(e,t){return e.type==="STRING"?J("string"):e.type==="ARRAY"?iR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?je():Tn(e.arg,t):e.func==="GROUP_CONCAT"?J("string"):J("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?J("number"):e.type==="STRING_FUNC"?Sn(e):e.type==="FIELD_REF"?t(Ge(e.field))??je():e.type==="FIELD"?t(e)??je():je()}function Ja(e){if(e.length===0)return je();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&&Po(n(r.semantics),n(t.semantics)))?e.every(i=>Po(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?iR("KSQL_MIXED_UNSUPPORTED"):je()}function Tn(e,t){if(e.type==="FIELD_REF")return t(Ge(e.field))??je();if(e.type==="FIELD")return t(e)??je();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return J("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return J("string");if(e.type==="STRING_FUNC")return Sn(e);let n=e.branches.map(r=>lr(r.result,t));return e.elseResult&&n.push(lr(e.elseResult,t)),Ja(n)}function oR(e,t){return e.windowKind==="VALUE"?Tn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?J("number"):e.arg.type==="WILDCARD"?je():Tn(e.arg,t):J("number")}function Ua(e,t){return{...e??{},displayName:t}}function HS(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 Va(e,t,n,r,i,o=!1){let a=new Map;HS(e)&&await Promise.all(nc(e).map(async E=>{if(a.has(E.appId))return;let g=await X(E.appId,n,r);a.set(E.appId,new Map(g.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(E=>E.table)],l=o&&i===void 0&&s.every(E=>E.cteName===null),c=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let A=a.get(e.from.appId)?.get(E.field);return A?ve(A,e.from.appId):void 0}let y=s.find(A=>Ne(A)===E.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(E.field);let m=a.get(y.appId)?.get(pe(y,E.field));return m?ve(m,y.appId):qe(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(E.field);let y=a.get(e.from.appId)?.get(pe(e.from,E.field));return y?ve(y,e.from.appId):qe(E.field)}let g=s.flatMap(y=>{if(y.cteName!==null){let h=i?.get(y.cteName);return h?.columns.includes(E.field)?[h.columnMeta?.get(E.field)]:[]}let m=a.get(y.appId)?.get(pe(y,E.field)),A=m?ve(m,y.appId):qe(E.field);return A?[A]:[]});return g.length===1?g[0]:void 0},p=E=>{if(!l)return;let g=s.filter(y=>{if(E.tableAlias!==null&&Ne(y)!==E.tableAlias)return!1;let m=pe(y,E.field);return a.get(y.appId)?.has(m)===!0||qe(E.field)!==void 0});return g.length===1?g[0].appId:void 0},u=(E,g)=>{let y=p(g);return E&&y!==void 0?{...E,publicSourceApp:y}:E},d=new Map,f=e.columns.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let E of t){let g=Ge(E),y=u(c(g),g);d.set(E,Ua(y,y?.displayName??E))}return d}if(f)for(let E of t){let g=Ge(E),y=u(c(g),g);d.set(E,Ua(y,y?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,g)=>{let y=f?"alias"in E&&E.alias?E.alias:void 0:t[g];if(!y)return;let m;if(E.type==="FIELD"){let A=Ge(E.field);m=u(c(A),A)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?m=J("string"):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"?m=J("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(m=Tn(E.arg,c));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")m=J("number");else if(E.type==="GROUPING_COL")m=J("number");else if(E.type==="LITERAL_COL")m=J("string");else if(E.type==="SCALAR_VALUE_COL"){let A=E.expr;A.type==="STRING_FUNC"?m=Sn(A):A.type==="NUMBER"||A.type==="SCALAR_ARITH"?m=J("number"):A.type==="FIELD"?m=c(A):m=J("string")}else if(E.type==="STRFUNC_COL")m=Sn(E.expr);else if(E.type==="WINDOW_COL")m=oR(E,c);else if(E.type==="CASE_COL"){let A=E.expr.branches.map(h=>lr(h.result,c));E.expr.elseResult&&A.push(lr(E.expr.elseResult,c)),m=Ja(A)}else E.type==="SCALAR_SUBQUERY_COL"&&(m=je());d.set(y,Ua(m,E.aliasDisplay??y))}),d}function aR(e,t){let n=Ee.get(e),r=Ee.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=Ja([s,c]),d=s.publicSourceApp===c.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...R}=u;p=d===void 0?R:{...R,publicSourceApp:d}}else p=je();i.set(o,Ua(p,s?.displayName??o))}),i}function oc(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=>Ne(p)===s.tableAlias);return!c||c.cteName!==null?void 0:va(c,s.field)??t.get(c.appId)?.get(pe(c,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:va(e.from,s.field)??t.get(e.from.appId)?.get(pe(e.from,s.field));if(n.some(c=>c.cteName!==null))return;let l=r.flatMap(c=>{let p=va(c,s.field)??t.get(c.appId)?.get(pe(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 sR=new WeakSet,ac=new WeakMap;function Nu(e){return sR.add(e),e}function YS(e,t){return ac.set(e,t),t}function lR(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&&Z(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function jS(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function qS(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":Y(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new hn;if(!jS(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=rr([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function zS(e,t,n,r,i,o=!0,a,s,l){let c=ac.get(e);if(sR.has(e)&&c!==void 0&&lR(e,c)){let G=await qS(e,t);if(G!==null)return G}let p=n.maxRecords??1e4,u=new Set,d=n.fetchParallel??1;await Promise.all([Li(e.where,t,n,r,i),Li(e.having,t,n,r,i)]);let[f,R,E]=await Promise.all([za(e,t,r),rc(e,t,r),nR(e,t,r,i)]),g=oc(e,R),y=await vi(e,t,r,i,ft(e.having)||Qu(e)),m=JE(e,y),A=tc.get(e);if(A&&!tr(A.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let h=A??qa(e,f)??Vn(e,f);Gs(h);let b="joinPlan"in h?h:null,w=b&&tr(b.joinPlan)?b:null,C=t,I=h.mainCondition,L=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let P=s?s.prefilterWhere:w?null:I,D=w?.queriesByAlias.get(e.from.alias)??"",x=await LR(e.columns,t,n,r,i),_=Lt(e.where),k=_?Promise.resolve([]):mi(e,e.from,C,p,d,!0,n.onLimitReached??"error",u,P,w?!1:o,l,D),S=[],N=[];for(let G of e.joins){if(_){S.push({join:G,promise:Promise.resolve([])});continue}let se=G.table.alias?w?.queriesByAlias.get(G.table.alias)??"":"",Ce=w?null:G.table.alias?L.get(G.table.alias)??null:null;Ce!==null||se!==""?S.push({join:G,promise:mi(e,G.table,C,p,d,!1,n.onLimitReached??"error",u,Ce,!0,l,se)}):N.push(G)}let F=a?Promise.resolve(a):Ni(e,t,r,i);F.catch(()=>{});let O=await k,v=new Map;v.set(e.from.alias,O);for(let{join:G,promise:se}of S)v.set(G.table.alias,await se);await Promise.all(N.map(async G=>{let Ce=await ER(e,G,v,C,p,d,n.onLimitReached??"error",u,r,i,null,l,"")??await mi(e,G.table,C,p,d,!1,n.onLimitReached??"error",u,null,!0,l,"");v.set(G.table.alias,Ce)}));let{optionOrders:$,sortKinds:M,semantics:U}=await F,{rows:K,columns:z}=Jl({tables:v,stmt:e,scalarCache:x,optionOrders:$,sortKinds:M,orderSemantics:U,fieldTypeResolver:g.row,fieldSemanticsResolver:y,havingFieldTypeResolver:g.having,havingFieldSemanticsResolver:m,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:w?{residualWhere:w.joinPlan.residualWhere}:{},resolvedGroupingSpec:Ii.get(e),plainGroupByPlan:l}),W=await lc(e,K,z,t,r);return{type:"SELECT",rows:K,columns:W,rowCount:K.length,warnings:[...u]}}function uR(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
|
|
11
|
-
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`)}async function cR(e,t,n,r,i=!1,o=!1){let a=Zu(e,n,null);return wu(a,async()=>{let s=a.effectiveOptions,[l,c]=await Promise.all([e.left.type==="UNION"?cR(e.left,t,s,r,i,o):Xt(Nu(e.left),t,s,r,void 0,i,o,"DERIVED"),Xt(Nu(e.right),t,s,r,void 0,i,o,"DERIVED")]),p=l.columns,u=c.columns;uR(p,u);let d=c.rows.map(y=>{let m={};return p.forEach((A,h)=>{m[A]=y[u[h]??A]??""}),m}),f=[...l.rows,...d],R=e.all?f:pR(f,p),E=[...new Set([...l.warnings??[],...c.warnings??[]])],g={type:"SELECT",rows:R,columns:p,rowCount:R.length,warnings:E};return i&&Ee.set(g,aR(l,c)),g})}function pR(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)})}async function sc(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&Gt(e))return Xt(Kt(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.query.type==="SHOW_APPS"?p=await NR(t):c.query.type==="DESCRIBE"?p=await PR(c.query,t,r):c.query.type==="GENERATE_SERIES"?p=dR(c.query):p=await _t(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:Ee.get(p),...c.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:c.query.columnAlias}:{}})}let l=await _t(e.query,t,n,a,r,o);return Xu(l,[...s])}function dR(e){let t=Vs(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:Q({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:Q({fieldType:"DATE"})};return Ee.set(n,new Map([[e.columnAlias,r]])),n}async function _t(e,t,n,r,i,o=!1,a=!1){if(a||await Da(e,t,r,i),e.type==="UNION"){let[c,p]=await Promise.all([_t(e.left,t,n,r,i,o,!0),_t(e.right,t,n,r,i,o,!0)]),u=c.columns,d=p.columns;uR(u,d);let f=p.rows.map(m=>{let A={};return u.forEach((h,b)=>{A[h]=m[d[b]??h]??""}),A}),R=[...c.rows,...f],E=e.all?R:pR(R,u),g=[...new Set([...c.warnings??[],...p.warnings??[]])],y={type:"SELECT",rows:E,columns:u,rowCount:E.length,warnings:g};return o&&Ee.set(y,aR(c,p)),y}if(!(e.from.cteName!=null&&e.from.cteName!==Qe||e.joins.some(c=>c.table.cteName!=null)))return Xt(e,t,n,i,r,o,!1,"DERIVED");let l=await JS(e,t,n,r,i);return o&&Ee.set(l,await Va(e,l.columns,t,i,r)),l}async function JS(e,t,n,r,i){await wi(e,t,i,r);let o=Ii.get(e),a=await Ti(e,t,i,r),s=new Set,l=W=>{if(W.alias!==null||W.cteName===null)return W;let G=Ne(W);return s.add(G),{...W,alias:G}};e={...e,from:l(e.from),joins:e.joins.map(W=>({...W,table:l(W.table)}))};let c=new Set;for(let W of[e.from,...e.joins.map(G=>G.table)]){let G=Ne(W);if(G!==null){if(c.has(G))throw new Error(`ArgumentError: effective alias ${G} is used by multiple tables.`);c.add(G)}}let p=W=>{let G=r.get(W);if(!G)throw new Error(`ArgumentError: materialized source ${W} is not available.`);return G};for(let W of[e.from,...e.joins.map(G=>G.table)])W.cteName!==null&&p(W.cteName);let{resolver:u}=await yn(e,t,i,r,qE(e)),d=zE(e,u,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,R=new Set,E=n.fetchParallel??1;await Promise.all([Li(e.where,t,n,i,r),Li(e.having,t,n,i,r),CR(e,t,n,i,r)]);let g=me(e.where,u);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${mn(g)}).`);let y=await Ni(e,t,i,r),m=Ka(e)?(e.orderMode==="KINTONE_NATIVE"?ni:ti)({stmt:e,staticMode:"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:Te(e.where)}):null,A=Zu(e,n,m),h=A.effectiveOptions,[b,w,C]=await Promise.all([za(e,t,i),rc(e,t,i),nR(e,t,i,r)]),I=oc(e,w),L=await vi(e,t,i,r,ft(e.having)||Qu(e)),P=JE(e,L),D=qa(e,b)??Vn(e,b);Gs(D);let x=t,_=await LR(e.columns,t,h,i,r),k=Promise.resolve(y);k.catch(()=>{});let S=new Map,N=new Map;if(e.from.cteName!=null){let W=p(e.from.cteName);S.set(e.from.alias,W.rows.map(bE)),N.set(e.from.alias,W.columns)}else{let W=await wu(A,()=>mi(e,e.from,x,f,E,!0,h.onLimitReached??"error",R,D.mainCondition,g.capability==="EXACT_PUSHDOWN",a));S.set(e.from.alias,W)}let F=e.joins.map(W=>wu(A,async()=>{if(W.table.cteName!=null){let G=p(W.table.cteName);S.set(W.table.alias,G.rows.map(bE)),N.set(W.table.alias,G.columns)}else{let G=W.table.alias?D.joinConditions.get(W.table.alias)??null:null,Ce=await ER(e,W,S,x,f,E,h.onLimitReached??"error",R,i,r,G,a)??await mi(e,W.table,x,f,E,!1,h.onLimitReached??"error",R,G,!0,a);S.set(W.table.alias,Ce)}}));await Promise.all(F);let{optionOrders:O,sortKinds:v,semantics:$}=await k,M=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:U,columns:K}=Jl({tables:S,stmt:e,scalarCache:_,optionOrders:O,sortKinds:v,orderSemantics:$,fieldTypeResolver:I.row,fieldSemanticsResolver:L,havingFieldTypeResolver:I.having,havingFieldSemanticsResolver:P,aggregateSortKindResolver:C,appliedKlikes:D.appliedKlikes,sourceColumns:M,tableColumns:N,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),z=await lc(e,U,K,t,i);return Xu({type:"SELECT",rows:U,columns:z,rowCount:U.length,warnings:[...R]},d)}async function lc(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 X(e.from.appId,r,i);return Of(o,e.from.subtableCode,()=>Xa(e.from.appId,r,i))}function bE(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function mi(e,t,n,r,i,o,a,s,l=null,c=!0,p,u=""){let d=on(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`),Hu(n,t.appId),lf(e,t,o))throw new ke(`\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?vp(e,t.appId).query:"",m=[l!==null?Y(l):"",u].filter(w=>w!==""),A=m.length>1?m.map(w=>`(${w})`).join(" and "):m[0]??"",h=y&&A?`(${y}) and (${A})`:y||A;return(await nt(n.getRecords,t.appId,h,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let R=o&&c&&e.joins.length===0&&e.where!==null&&ac.get(e)?.capability==="EXACT_PUSHDOWN"&&!St(e.where)?Y(e.where):"",g=(await nt(n.getRecords,t.appId,R,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return jf(g,t.subtableCode)}var fR=50;function XS(e){let t=Se(e);return t!==null?JSON.stringify(t):e}function Pu(e){return JSON.stringify(e)}function In(e,t){return JSON.stringify(e.map((n,r)=>t[r]?XS(n):n))}function Ui(e,t){let n=e.raw.get(Pu(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(In(t,e.numericKey))}async function ki(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(g=>o.get(g)==="NUMBER"),c={raw:new Map,normalized:new Map,numericKey:l},p=(g,y,m)=>{let A=g.get(y);(A===void 0||m>A)&&g.set(y,m)},u=(g,y)=>{p(c.raw,Pu(g),y),l.some(Boolean)&&p(c.normalized,In(g,l),y)},d=new Set,f=[],R=new Set;for(let g of n){let y=Pu(g);R.has(y)||(R.add(y),g.some(m=>m==="")?f.push(g):d.add(g[0]))}let E=["$id",...t];for(let g of Mi([...d],fR)){let y=`${t[0]} in (${g.map(bi).join(",")})`,m=await De(r.getRecords,e,y,E,{maxRecords:a,parallel:s});for(let A of m){let h=Number(A.$id?.value);Number.isFinite(h)&&u(t.map(b=>uc(A[b]?.value)),h)}}for(let g of f){let y=t.map((A,h)=>`${A} = ${bi(g[h])}`).join(" and "),m=await De(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});m.length!==0&&u(g,QS(m))}return c}function QS(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 uc(e){return typeof e=="string"?e:e==null?"":String(e)}function bi(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Mi(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ZS=6,ka=ta*ZS;async function ER(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,R=t.on.right.tableAlias;if(!f||!R)return null;let E,g,y;if(f===t.table.alias&&R!==t.table.alias)E=R,g=t.on.right.field,y=t.on.left.field;else if(R===t.table.alias&&f!==t.table.alias)E=f,g=t.on.left.field,y=t.on.right.field;else return null;let m=n.get(E);if(!m)return null;let A=[e.from,...e.joins.map(S=>S.table)].find(S=>Ne(S)===E),h=(await X(t.table.appId,r,l)).find(S=>S.code===pe(t.table,y)),b=h?ve(h,t.table.appId):qe(y),w;if(A?.cteName!==null&&A?.cteName!==void 0)w=c?.get(A.cteName)?.columnMeta?.get(g);else if(A){let S=(await X(A.appId,r,l)).find(N=>N.code===pe(A,g));w=S?ve(S,A.appId):qe(g)}let C=[],I=!1;for(let S of m){let N=S[g]?.value,F=uc(N);(N==null||F.length===0)&&(I=!0),C.push(F)}let L=Ul({fieldType:b?.fieldType,sourceSemantics:w?.semantics,sourceRowCount:m.length,values:C,hasEmptyValue:I,maxInKeys:ka});if(L.kind==="EMPTY_SOURCE")return[];if(L.kind==="FALLBACK"){if(L.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let S=new Set(C).size;s.add(`JOIN\u30AD\u30FC\u304C ${S} \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 ${ka} \u4EF6\uFF09\u3002`)}return null}if(L.kind==="RANGE_CANDIDATE")return null;let P=vl(L,y,bi);if(P.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 ${ka} \u4EF6\uFF09\u3002`),null;let D=on(e,t.table,u),x=S=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${S} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${S} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Hu(r,t.table.appId)},_=[],k=new Set;for(let S of P){let F=[p!==null?Y(p):"",d].filter(v=>v!=="").reduce((v,$)=>`(${v}) and (${$})`,S),O=await nt(r.getRecords,t.table.appId,F,D,{parallel:o,maxRecords:i,onLimit:a,onTruncate:x});for(let v of O.records){let $=`${v.$id?.value??""}:${JSON.stringify(v)}`;k.has($)||(k.add($),_.push(v))}}return _}var Cu=new Map,Ou=new Map,Lu=new Map,_u=new Map,Du=new Map,vu=new Map;function cc(e){Cu.delete(e),Ou.delete(e),Lu.delete(e),_u.delete(e),Du.delete(e),vu.delete(e)}function ur(e,t,n){return e.get(t)?.get(n)}function cr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function X(e,t,n){let r=ur(_u,n,e);if(r)return r;let i=t.getFields(e);return cr(_u,n,e,i),i}async function mt(e,t,n){let r=ur(vu,n,e);if(r)return r;let i=t.getNumberPrecision(e);return cr(vu,n,e,i),i}async function Xa(e,t,n){let r=ur(Du,n,e);if(r)return r;let i=t.getProcessStatuses(e);return cr(Du,n,e,i),i}async function pc(e,t,n){let r=await Xa(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function _e(e,t,n){let r=ur(Cu,n,e);if(r)return r;let i=await X(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return cr(Cu,n,e,o),o}async function Uu(e,t,n){let r=ur(Ou,n,e);if(r)return r;let i=await X(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 cr(Ou,n,e,o),o}async function eT(e,t,n){let r=await Uu(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function NE(e,t,n){let r=ur(Lu,n,e);if(r)return r;let i=await X(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return cr(Lu,n,e,o),o}function tT(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 nT(e,t,n,r){let i=tT(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 X(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 E=s.get(e.from.appId)?.get(u.field);return E?ve(E,e.from.appId):void 0}let f=o.find(E=>Ne(E)===u.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(u.field);let R=s.get(f.appId)?.get(pe(f,u.field));return R?ve(R,f.appId):qe(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(u.field);let f=s.get(e.from.appId)?.get(pe(e.from,u.field));return f?ve(f,e.from.appId):qe(u.field)}let d=o.flatMap(f=>{if(f.cteName!==null){let g=r?.get(f.cteName),y=g?.columns.includes(u.field)?g.columnMeta?.get(u.field):void 0;return y?[y]:[]}let R=s.get(f.appId)?.get(pe(f,u.field)),E=R?ve(R,f.appId):qe(u.field);return E?[E]:[]});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(Ge(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")d=J("number");else if(u.type==="WINDOW_COL")d=oR(u,l);else if(u.type==="GROUPING_COL")d=J("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")d=J("string");else if(u.type==="STRFUNC_COL")d=Sn(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")d=je();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(R=>lr(R.result,l));u.expr.elseResult&&f.push(lr(u.expr.elseResult,l)),d=Ja(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(d=Tn(u.arg,l)):d=u.func==="GROUP_CONCAT"?J("string"):J("number"));d?.semantics&&c.set(u.alias,d.semantics)}let p=new Map;for(let u of i){let d=c.get(u)??l(Ge(u))?.semantics;if(!d){let R=Ge(u);R.tableAlias===null&&a.has(R.field)&&p.set(u,Q({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=d;if(d.fieldType==="STATUS"&&d.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await Xa(d.source.appId,t,n);R.enable&&R.states!==null&&(f={...d,optionOrder:new Map(R.states.map(E=>[E.name,E.index]))})}p.set(u,f)}return p}async function Ni(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([rT(e,t,n),iT(e,t,n),nT(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function rT(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 Uu(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 Uu(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}async function iT(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 NE(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 NE(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}function RR(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 oT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function aT(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||oT.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function st(e,t,n,r){let i=await X(e,n,r);return aT(e,t,i),i}async function Dt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?mt(e,r,i):void 0}function wn(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=xe(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 sT(e,t,n,r,i){let o=await st(e.appId,e.fields,t,r),a=await Hr({statement:e,fieldInfos:o,dmlMaxRows:Je(n.dmlMaxRows,"dmlMaxRows",vt),dmlMaxSubtableRows:Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),statementNumber:i,loadNumberPrecision:()=>mt(e.appId,t,r)});return FT(e,a,o)}async function lT(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await gR(e,t,n,r,i);return GT(e,a,o)}async function gR(e,t,n,r,i){let o=await st(e.appId,e.fields,t,r),a=new Map(o.map(g=>[g.code,g.fieldType])),s=TR(e),l=new Set;for(let g of s){let y=In(g,e.keyFields.map(m=>a.get(m)==="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 ki(e.appId,e.keyFields,s,t,n,a),p=s.map(g=>Ui(c,g)),u=new Map,d=[...new Set(p.filter(g=>g!==void 0))],f=["$id","$revision",...o.filter(g=>!g.inSubtable&&g.fieldType!=="FILE").map(g=>g.code)];for(let g of Mi(d,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${g.join(",")}) limit 500`,fields:[...new Set(f)]});for(let m of y.records){let A=Number(m.$id?.value);Number.isSafeInteger(A)&&A>0&&u.set(A,m)}}let R=p.map((g,y)=>({sourceRowIndex:y,...g===void 0?{}:{targetId:g,snapshot:u.get(g)}})),E=await ef({statement:e,matches:R,fieldInfos:o,dmlMaxRows:Je(n.dmlMaxRows,"dmlMaxRows",vt),dmlMaxSubtableRows:Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),statementNumber:i,loadNumberPrecision:()=>mt(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function uT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await st(e.appId,e.fields,t,r),o=await Hr({statement:e,fieldInfos:i,dmlMaxRows:Je(n.dmlMaxRows,"dmlMaxRows",vt),dmlMaxSubtableRows:Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),loadNumberPrecision:()=>mt(e.appId,t,r)}),a=Nl(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Qa(a),applyDiagnostic:a}))throw new de("INSERT",o.guards.parentRows);let s=await af(o,t,a);return{...s,diagnostic:Ve(a,s)}}async function cT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await gR(e,t,n,r,1),o=Pl(i);if(n.confirm){let s=Qa(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new de("UPDATE",i.guards.parentRows)}let a=await sf(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:Ve(o,a)}}function pT(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 Qa(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=pT(n?Oa(n):[],r?Oa(r):[]),a=dT(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=Oa(n),f=Oa(r);return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:d.reduce((R,E)=>R+E.appendRows,0),tables:d},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),addedSubtableRows:f.reduce((R,E)=>R+E.appendRows,0),tables:f,deletedRows:f.reduce((R,E)=>R+E.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return u}function Oa(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=An(t,"APPEND"),r=An(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function An(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function dT(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:An(n,"ADD"),removedValues:An(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 dc(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return sT(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return lT(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await SR(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await fc(e,t,n,r,i,o)).result}var Pi=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function fc(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(k=>k.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(k=>k.field):e.fields,u=await st(e.appId,p,t,r);e.type==="UPDATE"&&await or(e,t,r);let d=new Map(u.map(k=>[k.code,k])),f=await Dt(e.appId,p,u,t,r),R=ct(u,c),E=qf(R),g=(await fT(e,l,t,n,r,i,d,e.type==="UPDATE"?E:void 0)).sort((k,S)=>k.rowNumber-S.rowNumber),y=g.filter(k=>k.mode==="update"),m=e.type==="UPDATE"?gT:e.type.startsWith("UPSERT")?k=>yT(k,t,n.maxRecords??1e4):void 0,A=n.loadUpdateModeSnapshots??m,h=y.length>0&&A!==void 0,b=new Map;if(h){yl(y,p,u);let k=await A({appId:e.appId,candidates:y,fields:E}),S=new Map;for(let N of y){if(N.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${N.rowNumber}).`);let F=k.get(N.targetId);if(!F)throw new Error(`InternalError: update-mode snapshot is missing for record ${N.targetId}.`);let O=zf(F,N.record??{});S.set(N.rowNumber,O)}f===void 0&&[...S.values()].some(N=>cn(N,R))&&(f=await mt(e.appId,t,r));for(let N of y){let F=S.get(N.rowNumber);if(!F)throw new Error(`InternalError: validation post-image is missing for row ${N.rowNumber}.`);b.set(N.rowNumber,pn(F,R,f,o,N.rowNumber,l))}}let w=ml(g,l,c,p,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!h}),{errors:C,invalidRows:I,invalidRowNumbers:L}=w;if(h){let k=new Map(w.candidateResults.map(S=>[S.rowNumber,S]));C=[],L=new Set;for(let S of g){let N=k.get(S.rowNumber);if(!N)throw new Error(`InternalError: validation detail is missing for row ${S.rowNumber}.`);if(S.mode==="create"){let v=[...N.preErrors,...N.builtInErrors,...N.checkErrors];C.push(...v),v.length>0&&L.add(S.rowNumber);continue}let F=b.get(S.rowNumber);if(!F)throw new Error(`InternalError: prepared post-image validation is missing for row ${S.rowNumber}.`);let O=Jf({rowNumber:S.rowNumber,setFields:p,normalizedPostImage:F.normalizedRecord,preErrors:N.preErrors,postImageErrors:F.errors,checkErrors:N.checkErrors});S.record=O.writeRecord,C.push(...O.errors);for(let v of O.invalidRowNumbers)L.add(v)}I=L.size}let P=[...c,...zn],D={type:"VALIDATION",operation:l,validatedRows:g.length,validRows:g.length-I,invalidRows:I,errorCount:C.length,columns:P,errors:C,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},x=new Map;for(let k of c){if(k==="$id"){x.set(k,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:Q({fieldType:"RECORD_NUMBER"})});continue}let S=d.get(k);S&&x.set(k,ve(S,e.appId))}let _=new Set(["$err_statement","$err_row"]);for(let k of zn)x.set(k,J(_.has(k)?"number":"string"));return Nn.set(D,x),{result:D,candidates:g,invalidRowNumbers:L,columnMeta:x}}async function ku(e,t,n,r,i,o){let a=await fc(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");yt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??ze,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Pi(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let c=a.candidates.filter(R=>!a.invalidRowNumbers.has(R.rowNumber));if(n.confirm){let R=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(c.length,R))throw new de(R,c.length)}let p={affectedRows:c.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let R=[];for(let E=0;E<c.length;E+=100){let g=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(y=>y.record)});R.push(g.ids)}return{type:"INSERT",createdIds:R,insertedCount:R.flat().length,...p}}if(e.type==="UPDATE"){let R=c.map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:E.targetId,record:E.record}});for(let E=0;E<R.length;E+=100)await t.putRecords({app:e.appId,records:R.slice(E,E+100)});return{type:"UPDATE",updatedCount:R.length,...p}}let u=c.filter(R=>R.mode==="create"),d=c.filter(R=>R.mode==="update").map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:R.targetId,record:R.record}}),f=0;for(let R=0;R<u.length;R+=100){let E=await t.postRecords({app:e.appId,records:u.slice(R,R+100).map(g=>g.record)});f+=E.ids.length}for(let R=0;R<d.length;R+=100)await t.putRecords({app:e.appId,records:d.slice(R,R+100)});return{type:"UPSERT",insertedCount:f,updatedCount:d.length,...p}}async function fT(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return RT(e,n,r,i,o,s);let l,c,p,u,d;if(e.type==="INSERT"||e.type==="UPSERT")PE(e,e.fields),d=new Map(e.fields.map(h=>[h,a.get(h)?.fieldType??""])),bn(e,d),l=e.values.map(h=>h.map((b,w)=>b.type==="CASE_VALUE"?qt(b.expr,{},a.get(e.fields[w])?.fieldType):b));else{let h=await Rc.materialize(e,n,r,i,o,[...a.values()]),b=(e.checkGroups?.length??0)>0;if(h.columns.length<e.fields.length||!b&&h.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${h.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(b&&new Set(h.columns).size!==h.columns.length)throw we("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");PE(e,h.columns),c=h.rows,p=h.importPresence,u=h.importRowErrors;let w=h.columnMeta;d=new Map(h.columns.map(C=>{let I=w?.get(C),L=I?.fieldType??(I?.semantics?.compareMode==="number"||I?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[C,L]})),bn(e,d),l=h.rows.map(C=>h.columns.map(I=>C[I]??""))}let f=l.map((h,b)=>({rowNumber:b+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((w,C)=>p&&!p[b]?.has(w)?[]:[[w,h[C]]])),preErrors:[...u?.[b]??[]],record:{},evaluationRow:c?.[b]??Object.fromEntries(e.fields.map((w,C)=>[w,ut(h[C])])),evaluationFieldTypes:d}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let h of e.keyFields)if(!e.fields.includes(h))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${h}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let R=new Map([...a].map(([h,b])=>[h,b.fieldType])),E=f.map(h=>e.keyFields.map(b=>ut(h.payload.get(b)))),g=e.keyFields.map(h=>R.get(h)==="NUMBER"),y=new Map;for(let h of E){let b=In(h,g);y.set(b,(y.get(b)??0)+1)}let m=ja.has(e);if(m&&[...y.values()].some(h=>h>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 A=await ki(e.appId,e.keyFields,E,n,r,R);return f.forEach((h,b)=>{let w=E[b],C=Ui(A,w);h.mode=C===void 0?"create":"update",C!==void 0&&(h.targetId=C),e.keyFields.forEach((I,L)=>{w[L]===""&&h.preErrors.push({field:I,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${I} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!m&&(y.get(In(w,g))??0)>1&&h.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 Ec(e){return e.checkGroups?jn(e.checkGroups):[]}function PE(e,t){let n=new Set(t);for(let r of Ec(e)){if(r.tableAlias!==null)throw we(`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 we(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var ET=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function bn(e,t){if(e.checkGroups)for(let n of Sd(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(ET.has(i??""))throw we(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function RT(e,t,n,r,i,o){if(e.from)return AT(e,e.from,t,n,r,i,o);await OR(e.assignments,t,n,r);let a=await _e(e.appId,t,r),s=yR(e,a);bn(e,Mu(a,e.appId));let l,c=new Map,p=new Map;if(Fo(e)){let u=tl(e),d=[...new Set([...u.fields,...s,...o??[]])],f=await nt(t.getRecords,u.app,u.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ma(f.records),c=p,l=rl(e,f.records,a).flatMap(R=>R.records)}else{let u=Mr(e);if(s.length>0){let d=[...new Set(["$id",...s,...o??[]])],f=await nt(t.getRecords,u.app,u.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ma(f.records),c=p,l=Fr(e,[...c.keys()],a).flatMap(R=>R.records)}else if(o){let d=await nt(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ma(d.records),l=Fr(e,[...p.keys()],a).flatMap(f=>f.records)}else{let d=await ra(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Fr(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:mT(c.get(u.id),e.appId),evaluationFieldTypes:Mu(a,e.appId)}))}function Ma(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 gT(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 yT(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 ke(`\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 Mi(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 yR(e,t){if(e.from)return[];let n=new Set;for(let r of Ec(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw we(`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 we(`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 mT(e,t){if(!e)return{};let n=Pt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Mu(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function AT(e,t,n,r,i,o,a){let s=await BR(e,t,n,i,o);bn(e,s.evaluationTypes);let l=await mR(e,t,n,r,i,o,a),c=await _e(e.appId,n,i),p=ol(e,l,c).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),d=a?Ma(l.map(f=>f.target)):new Map;return p.sort((f,R)=>f.id-R.id).map((f,R)=>({rowNumber:R+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(E=>[E.field,f.record[E.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:d.get(f.id),evaluationRow:hI(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var hT=fR,ST=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function mR(e,t,n,r,i,o,a){let s=await TT(e,t,n,i),l=await BR(e,t,n,i,o),c=[...new Set(e.assignments.filter(b=>b.value.type==="SOURCE_FIELD").map(b=>b.value.type==="SOURCE_FIELD"?b.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...c])],u=await IT(t,p,c,n,r,i,o),d=new Map,f=new Map;for(let b of u){if(!Object.prototype.hasOwnProperty.call(b,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let w=CE(b[t.joinKeyField],s,"source");if(d.has(w))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${w}.`);d.set(w,b),f.set(w,String(b[t.joinKeyField]).trim())}if(d.size===0)return[];let R=r.maxRecords??1e4,E=[...new Set([...BT(e),...l.targetFields,...a??[]])],g=t.targetFilter===null?"":Mr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],m=new Set,A=0;for(let b of Mi([...f.values()],hT)){let w=`${t.targetJoinField} in (${b.map(bi).join(",")})`,C=g?`(${w}) and (${g})`:w,I=await nt(n.getRecords,e.appId,C,E,{maxRecords:R,parallel:r.fetchParallel??1,onLimit:"error"});if(A+=I.records.length,A>R)throw new ke(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${R} \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 L of I.records){let P=L.$id?.value;if(typeof P!="string"||P==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");m.has(P)||(m.add(P),y.push(L))}}let h=[];for(let b of y){let w=b[t.targetJoinField]?.value,C=CE(w,s,"target");if(C===null)continue;let I=d.get(C);I!==void 0&&h.push({target:b,source:I})}return h}async function TT(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await X(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 IT(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(!p.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return p.rows}let s=await _e(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(ST.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${p}).`)}return(await nt(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>Pt(p,null))}function CE(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=Se(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function Fi(e,t,n,r,i){let o=await fc(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 de(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(R=>R.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 wT(e,t,n,r){if(e.applyBlocks?.length)return uT(e,t,n,r);if(e.checkGroups?.length)return Fi(e,t,n,r);if(e.subtableCode)return WT(e,t,n,r);let i=await st(e.appId,e.fields,t,r),o=await Dt(e.appId,e.fields,i,t,r),a=await _e(e.appId,t,r),s=Mo(e,a);wn(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 bT(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Qe},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function AR(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=tE(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 U=new Set(e.targets.filter(K=>K.kind==="SUBTABLE").map(K=>K.subtableCode));if(e.replaceSubtables.some(K=>!U.has(K)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let K of e.targets.filter(z=>z.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 X(e.appId,t,r),f=u.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children),R=d.some(U=>f.includes(U.code)&&U.fieldType==="NUMBER")?await mt(e.appId,t,r):void 0,E=await wa(o,new Map),g=e.source.kind==="JSON"?aE(e.source,E,u,n.maxRecords??1e4):sE(e.source,E,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",m=pE(g,u,d,R,y);if(e.source.kind==="CSV")return NT(e,g,m,d,t,n,i);lu(m,e.rejectLimit);let A=[...new Set(u.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children))],h=cu(m.errors,A),b=[...A,...uu],w=m.invalidParentRows.size,C={preflight:"ACTUAL_DATA",parents:{total:m.parents.length,valid:m.parents.length-w,invalid:w,mutationCandidates:m.parents.filter(U=>U.valid).length},tables:Object.fromEntries(m.tableCounts),writesKintone:!1},I={type:"VALIDATION",operation:y,validatedRows:m.parents.length,validRows:m.parents.length-w,invalidRows:w,errorCount:h.length,columns:b,errors:h,importDetail:C,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&yt(i,e.validationErrorTable,b,h,n.tempTableMaxRows??ze,new Map),e.validateOnly)return I;if(fE(g),m.errors.length>0&&!e.onErrorSkip){let U=m.errors[0];throw new Error(`DmlValidationError: ${U.code} ${U.message} (row=${U.parentRow}, field=${U.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");yt(i,e.errorTable,b,h,n.tempTableMaxRows??ze,new Map)}let L=m.parents.filter(U=>U.valid),P=new Map(d.map(U=>[U.code,U.fieldType])),D=L.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 U=e.keyFields.map(G=>P.get(G)==="NUMBER"),K=new Set,z=L.map(G=>e.keyFields.map(se=>String(G.top[se]?.value??"")));for(let G of z){let se=In(G,U);if(K.has(se))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(se)}let W=await ki(e.appId,e.keyFields,z,t,n,P);z.forEach((G,se)=>{D[se]=Ui(W,G)})}let x=u.filter(U=>U.kind==="SUBTABLE").map(U=>U.subtableCode),_=new Map,k=D.filter(U=>U!==void 0);for(let U of Mi([...new Set(k)],100)){let K=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...x]});for(let z of K.records){let W=Number(z.$id?.value),G=Number(z.$revision?.value);Number.isFinite(W)&&_.set(W,{id:W,...Number.isFinite(G)?{revision:G}:{},record:z})}}let S=EE(L,D,_),N={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:S.length,insertedParents:S.filter(U=>U.mode==="INSERT").length,updatedParents:S.filter(U=>U.mode==="UPDATE").length,hasDeletes:S.some(U=>U.tables.some(K=>K.deleteRows>0)),parents:S.map(U=>({parentRow:U.parentRow,mode:U.mode,...U.targetId===void 0?{}:{targetId:U.targetId},tables:U.tables}))};if(S.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(S.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:N}))throw new de(e.keyFields?"UPDATE":"INSERT",S.length)}let F=U=>new Map(Object.entries(U).map(([K,z])=>[K,z.value])),O=U=>dE(F(U.top),new Map([...U.subtables].map(([K,z])=>[K,z.map(W=>({values:F(W)}))]))),v=S.filter(U=>U.mode==="INSERT"),$=S.filter(U=>U.mode==="UPDATE"),M=[];for(let U=0;U<v.length;U+=100){let K=await t.postRecords({app:e.appId,records:v.slice(U,U+100).map(O)});M.push(K.ids)}for(let U=0;U<$.length;U+=100)await t.putRecords({app:e.appId,records:$.slice(U,U+100).map(K=>({id:K.targetId,...K.revision===void 0?{}:{revision:K.revision},record:O(K)}))});return e.keyFields?{type:"UPSERT",insertedCount:M.flat().length,updatedCount:$.length,affectedRows:S.length,skippedRows:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:N}:{type:"INSERT",createdIds:M,insertedCount:M.flat().length,affectedRows:S.length,skippedRows:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:N}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return PT(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:bT(),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};ja.set(s,l);let c=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await dc(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&yt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??ze,Nn.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",ku(s,t,n,r,i,1));return c(u)}let p=await(s.type==="UPSERT_SELECT"?Ac(s,t,n,r,i):gc(s,t,n,r,i));return c(p)}async function NT(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");RE(t.records);let s=t.records.map(_=>_.recordNumberSourceValue??""),l=fu(s,e.recordNumberSourceHeader),c=[...e.replaceSubtables],p=[...new Set(r.filter(_=>!_.inSubtable&&_.fieldType==="SUBTABLE").map(_=>_.code))],u=await De(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 _ of u){let k=Number(_.$id?.value),S=Number(_.$revision?.value);if(Number.isFinite(k)){d.set(k,{id:k,...Number.isFinite(S)?{revision:S}:{},record:_});for(let N of p){let F=_[N]?.value;if(Array.isArray(F)){for(let O of F)if(O.id){let v=f.get(O.id)??[];v.push({parentId:k,table:N}),f.set(O.id,v)}}}}}let R=l.normalized.map(_=>_===null?void 0:Number(_)),E=n.parents.map((_,k)=>{let S=[..._.errors];for(let F of l.errors[k])S.push({operation:"UPDATE",parentRow:_.parentRow,field:F.field,code:F.code,message:F.message,sourceValues:t.records[k].top});let N=R[k];return N!==void 0&&!d.has(N)&&S.push({operation:"UPDATE",parentRow:_.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${N} does not exist in APP${e.appId}`,sourceValues:t.records[k].top}),{..._,valid:S.length===0,errors:S}}),g=gE(t.records,E,R,d,f),y=g.flatMap(_=>[..._.errors]),m=new Set(g.filter(_=>!_.valid).map(_=>_.parentRow)),A={...n,parents:E,errors:y,invalidParentRows:m};lu(A,e.rejectLimit);let h=g.filter(_=>_.valid),b=g.flatMap(_=>_.tables),w=(_,k)=>b.filter(S=>S.table===_).reduce((S,N)=>S+Number(N[k]),0),C=Object.fromEntries(c.map(_=>[_,{existingRows:w(_,"existingRows"),inputRows:w(_,"inputRows"),updateRows:w(_,"updateRows"),addRows:w(_,"addRows"),deleteRows:w(_,"deleteRows"),rowIdNotFound:w(_,"rowIdNotFound")}])),I={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:h.length,insertedParents:0,updatedParents:h.length,hasDeletes:h.some(_=>_.tables.some(k=>k.deleteRows>0)),totalDeleteRows:h.flatMap(_=>_.tables).reduce((_,k)=>_+k.deleteRows,0),rowIdNotFound:h.flatMap(_=>_.tables).reduce((_,k)=>_+k.rowIdNotFound,0),invalidParents:m.size,parents:h.map(_=>({parentRow:_.parentRow,mode:"UPDATE",targetId:_.targetId,tables:_.tables}))},L=[...new Set(e.targets.flatMap(_=>_.kind==="FIELD"?[_.field]:_.children))],P=cu(y,L),D=[...L,...uu];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&yt(a,e.validationErrorTable,D,P,o.tempTableMaxRows??ze,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-m.size,invalidRows:m.size,errorCount:P.length,columns:D,errors:P,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:h.length,invalid:m.size,mutationCandidates:h.length},tables:C,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:I.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let _=y[0];throw new Error(`DmlValidationError: ${_.code} ${_.message} (row=${_.parentRow}, field=${_.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");yt(a,e.errorTable,D,P,o.tempTableMaxRows??ze,new Map)}if(h.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(h.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:I}))throw new de("UPDATE",h.length)}let x=_=>new Map(Object.entries(_).map(([k,S])=>[k,S.value]));for(let _ of h){let k=pu(x(_.top),new Map([..._.subtables].map(([S,N])=>[S,N.map(F=>({...F.rowId?{rowId:F.rowId}:{},values:x(F.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:_.targetId,..._.revision===void 0?{}:{revision:_.revision},record:k}]})}return{type:"UPDATE",updatedCount:h.length,affectedRows:h.length,skippedRows:m.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:I}}async function PT(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 st(e.appId,e.fields,n,i),s=await Dt(e.appId,e.fields,a,n,i),l=await wa(t,new Map),c=ou(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),p=c.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let u=fu(p,e.recordNumberSourceHeader),d=new Set,f=[...new Set(u.normalized.filter(I=>I!==null))];for(let I=0;I<f.length;I+=100){let L=f.slice(I,I+100),P=await n.getRecords({app:e.appId,query:`$id in (${L.join(",")}) limit 500`,fields:["$id"]});for(let D of P.records){let x=D.$id?.value;typeof x=="string"&&x!==""&&d.add(x.replace(/^0+(?=\d)/,""))}}let R=new Map(a.map(I=>[I.code,I])),E=new Map(e.fields.map(I=>[I,R.get(I)?.fieldType??"SINGLE_LINE_TEXT"])),g=c.rows.map((I,L)=>{let P=u.normalized[L],D=[...c.importRowErrors?.[L]??[],...u.errors[L]];return P!==null&&!d.has(P)&&D.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${P} does not exist in APP${e.appId}`}),{rowNumber:L+1,operation:"UPDATE",mode:"update",...P!==null&&d.has(P)?{targetId:Number(P)}:{},payload:new Map([[e.recordNumberSourceHeader,p[L]],...e.fields.map(x=>[x,I[x]??""])]),preErrors:D,record:{},evaluationRow:I,evaluationFieldTypes:E}}),y=[e.recordNumberSourceHeader,...e.fields],m=ml(g,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),A=[...y,...zn],h={type:"VALIDATION",operation:"UPDATE",validatedRows:g.length,validRows:g.length-m.invalidRows,invalidRows:m.invalidRows,errorCount:m.errors.length,columns:A,errors:m.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(h,{importAudit:c.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&yt(o,e.validationErrorTable,A,m.errors,r.tempTableMaxRows??ze,new Map),h}if(!e.onErrorSkip&&m.invalidRows>0){let I=m.errors[0];throw new Error(`DmlValidationError: ${I.$err_code} ${I.$err_message} (row=${I.$err_row}, field=${I.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(yt(o,e.errorTable,A,m.errors,r.tempTableMaxRows??ze,new Map),e.rejectLimit!=null&&m.invalidRows>e.rejectLimit)throw new Pi(`rejected rows (${m.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,h)}let b=g.filter(I=>!m.invalidRowNumbers.has(I.rowNumber));if(r.confirm&&!await r.confirm(b.length,"UPDATE"))throw new de("UPDATE",b.length);let w=b.map(I=>({id:I.targetId,record:I.record}));for(let I=0;I<w.length;I+=100)await n.putRecords({app:e.appId,records:w.slice(I,I+100)});let C={type:"UPDATE",updatedCount:w.length,...e.onErrorSkip?{affectedRows:w.length,skippedRows:m.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(C,{insertedCount:0,importAudit:c.importAudit}),C}async function CT(e,t,n,r,i,o){let a=ja.get(e);if(!a){let E=i&&i.size>0?await _t(e.select,t,n,i,r,!0):await Xt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:Ee.get(E)}}let s=await wa(a.handle,a.cache),l=n.maxRecords??1e4,c=new Map((o??[]).map(E=>[E.code,E])),p=e.fields.map(E=>({code:E,fieldType:c.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?iu(a.source,s,p,l):ou(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let d=yE(a.source.projection),f=new Map(i??[]);f.set(du,u);let R=await _t(d,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:R.rows,columns:R.columns,columnMeta:Ee.get(R)}}var Rc={materialize:CT};function hR(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 gc(e,t,n,r,i){if(e.checkGroups?.length)return Fi(e,t,n,r,i);let o=await st(e.appId,e.fields,t,r),a=await Dt(e.appId,e.fields,o,t,r),s=await Rc.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(hR(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 de("INSERT",l.length);let p=await _e(e.appId,t,r),u=l.map((f,R)=>{let E={};return e.fields.forEach((g,y)=>{if(s.importPresence&&!s.importPresence[R]?.has(g))return;let m=f[c[y]]??"";E[g]={value:RR(m,p.get(g))}}),E});u.forEach(f=>wn([f],e.fields.filter(R=>R in f),o,a));let d=[];for(let f=0;f<u.length;f+=100){let R=u.slice(f,f+100),E=await t.postRecords({app:e.appId,records:R});d.push(E.ids)}return{type:"INSERT",createdIds:d,insertedCount:d.flat().length}}async function Fu(e,t,n,r,i){if(e.applyBlocks?.length)return SR(e,t,n,r);if(e.checkGroups?.length&&Lt(e.where)){let R=await st(e.appId,e.assignments.map(g=>g.field),t,r);await Dt(e.appId,e.assignments.map(g=>g.field),R,t,r);let E=await _e(e.appId,t,r);return yR(e,E),bn(e,Mu(E,e.appId)),await or(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Fi(e,t,n,r,i);if(e.subtableCode)return await or(e,t,r),HT(e,t,n,r);let o=await st(e.appId,e.assignments.map(R=>R.field),t,r),a=e.assignments.map(R=>R.field),s=await Dt(e.appId,a,o,t,r);if(await or(e,t,r),Lt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return KT(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await OR(e.assignments,t,n,r);let c=await _e(e.appId,t,r);if(Fo(e)){let R=tl(e),g=(await nt(t.getRecords,R.app,R.query,[...R.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=rl(e,g,c);if(wn(y.flatMap(m=>m.records.map(A=>A.record)),a,o,s),n.confirm&&!await n.confirm(g.length,"UPDATE"))throw new de("UPDATE",g.length);for(let m of y)await t.putRecords(m);return{type:"UPDATE",updatedCount:g.length}}let p=Mr(e),d=(await ra(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Fr(e,d,c);if(wn(f.flatMap(R=>R.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new de("UPDATE",d.length);for(let R of f)await t.putRecords(R);return{type:"UPDATE",updatedCount:d.length}}async function SR(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!ht(e.where))return OT(e,t,n,r,i);let o=await X(e.appId,t,r),a=bt(e,o),s=Go(e,o),l=pl(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}.`);Vo(c.records[0]);let u=xd({statement:e,snapshot:c.records[0],fieldInfos:o,metadata:a}),d=ct(o,e.assignments.map(b=>b.field)),f=cn(u.postImage,d)?await mt(e.appId,t,r):void 0,R=pn(u.postImage,d,f,i);if(!e.validateOnly&&R.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:R.columns,errors:R.errors})}`);let E=Je(n.dmlMaxRows,"dmlMaxRows",vt),g=Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),y=u.parentRows>E||u.changedSubtableRows>g;if(e.validateOnly){let b=jr({plans:[u],records:Br(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}}),w={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:R.invalidRows===0?1:0,invalidRows:R.invalidRows===0?0:1,errorCount:R.errorCount,columns:[...R.columns],errors:R.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Ci(b.branches[0]),guards:Oi(b.branches[0]),deletedRows:{total:u.tables.reduce((C,I)=>C+I.deletedRows,0),parentRows:u.tables.some(C=>C.deletedRows>0)?1:0},diagnostic:b};return Nn.set(w,Za(R.columns,o,e.appId)),w}if(u.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${E}).`);if(u.changedSubtableRows>g)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${g}).`);let m=Bo(u,R.normalizedRecord),A=Br(m),h=jr({plans:[m],records:A.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}});if(n.confirm){let b=Qa(h,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:b,applyDiagnostic:h}))throw new de("UPDATE",u.parentRows)}return await t.putRecords(A),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:Ve(h,{successfulChunks:1,successfulParents:u.parentRows})}}async function OT(e,t,n,r,i){let o=Je(n.dmlMaxRows,"dmlMaxRows",vt),a=Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),s=await X(e.appId,t,r),l=bt(e,s),c;if(Wa(e))c=await vT(e,t,n,s,r);else{let f=Go(e,s),R=Mr(e).query,E=o+1;c=await De(t.getRecords,e.appId,R,[...f],{pageSize:Math.min(500,E),parallel:n.fetchParallel??1,maxRecords:E,stopAfter:E,onLimit:"error"})}if(!e.validateOnly&&c.length>o)throw new Error(`ArgumentError: APPLY parent rows (${c.length}) exceed dmlMaxRows (${o}).`);let p=await jo({statement:e,snapshots:c,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>mt(e.appId,t,r)});if(e.validateOnly)return xT(e,p,s);ap("phase15b",e);let u=jr(p);if(n.confirm){let f=Qa(u);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new de("UPDATE",p.guards.parentRows)}let d=await of(p,t,u);return{...d,diagnostic:Ve(u,d)}}function Wa(e){return(e.applyBlocks?.length??0)>0&&!ht(e.where)&&(Mt(e.where)||Te(e.where))}function LT(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Wa(t)&&Te(t.where)}var _T=`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
|
|
9
|
+
`){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 R=o();if(R==='"'){f=!0;break}if(R.charCodeAt(0)<32&&Lt("string contains an unescaped control character",l.offset,l.line,l.column),R!=="\\"){d+=R;continue}n>=e.length&&Lt("string has an unterminated escape",l.offset,l.line,l.column);let E=o(),g={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
10
|
+
`,r:"\r",t:" "};if(E in g){d+=g[E];continue}E!=="u"&&Lt(`has invalid escape \\${E}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||Lt("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let m=Number.parseInt(y,16);if(m>=55296&&m<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Lt("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)&&Lt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),d+=String.fromCodePoint(65536+(m-55296<<10)+A-56320)}else m>=56320&&m<=57343?Lt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):d+=String.fromCharCode(m)}f||Lt("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}Lt(`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 Ua(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function ka(e){if(e.byteLength===0)throw new B("JSON source is empty.");let t=RE(EE(e)),n=0,r=(c,p=t[n])=>{throw new B(`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 ${Ua(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 ${Ua(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 ${Ua(c)}`,c)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Ua(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 B("JSON source contains no records.");return l.forEach((c,p)=>{if(!(c instanceof Map))throw new B(`JSON record ${p+1} must be an object.`)}),l}var cS=new Set(["CHECK_BOX","MULTI_SELECT"]),gE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function yt(e,t,n){throw new B(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function pS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function dS(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&yt(n,t.code,"boolean is not accepted."),pS(e)){t.fieldType==="NUMBER"&&yt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&yt(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)||yt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&yt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||yt(n,t.code,"unsupported value type."),!cS.has(t.fieldType)&&!gE.has(t.fieldType)&&yt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&yt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&yt(n,t.code,"array elements must not contain duplicates."),gE.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Ru(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new B("JSON source is UTF-8 only.");let i=ka(t.bytes);if(i.length>r)throw new B(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new B("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,c)=>{for(let d of l.keys())o.has(d)||yt(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]=dS(l.get(d.code),d,c+1));a.push(p),s.push(u)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function gu(e,t,n,r,i,o){let a=va(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new B(`source rows (${a.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 B("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,m)=>[y,m]));for(let y of r)if(!l.has(y))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let c=new Map(i.map(y=>[y.code,y])),p=new Set(r);if(o&&p.has(o))throw new B("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],d=[],f=y=>a.rows.filter(m=>m[y]!=="").length,R=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,m]of a.columns.entries()){if(p.has(m)||m===o)continue;let S=c.get(m);if(S)u.push({column:m,reason:R(S),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)d.push({column:m,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new B(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${m}".`)}for(let y of r){let m=c.get(y);if(!m)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(m.inSubtable||m.writable===!1||m.fieldType==="FILE"||m.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${m.fieldType}).`)}let E=[];return{rows:a.rows.map(y=>{let m=[],S={};for(let A of r){let I=y[l.get(A)];try{S[A]=fE(I,c.get(A)?.fieldType,{cliKintone:!0})}catch(w){if(!(w instanceof gi))throw w;S[A]=I,m.push({field:A,code:w.code,message:w.message})}}return E.push(m),S}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:c.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:E,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:u,ignoredUnknownColumns:d}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((c,p)=>[c,l[p]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var yi=(e,t,n)=>{throw new B(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function yE(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new B("JSON source is UTF-8 only.");let o=ka(t.bytes);if(o.length>r)throw new B(`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 B("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,c)=>{let p=c+1;for(let R of l.keys())a.has(R)||yi(p,R,"unknown key (not declared in INTO).");let u=new Map,d=new Map,f=new Set;for(let R of n){let E=R.kind==="FIELD"?R.field:R.subtableCode;if(!l.has(E))continue;let g=l.get(E);if(R.kind==="FIELD"){g instanceof Map&&yi(p,E,"object is not accepted for a top-level field."),u.set(E,g);continue}Array.isArray(g)||yi(p,E,"subtable value must be an array."),f.add(E);let y=new Set(R.children),m=g.map((S,A)=>{S instanceof Map||yi(p,E,`childRow=${A+1} must be an object.`);let I=S;for(let w of I.keys())y.has(w)||yi(p,w,`unknown child key in subtable ${E} at childRow=${A+1}.`);if(s++,s>i)throw new B(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:A+1,values:I}});d.set(E,m)}return{rowNumber:p,top:u,subtables:d,replacementTables:f}})}}function mE(e,t,n,r,i,o){let a=va(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new B('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((d,f)=>[d,f]));if(o&&!s.has(o))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(d=>d.kind==="FIELD"),c=n.filter(d=>d.kind==="SUBTABLE");for(let d of l)if(!s.has(d.field))throw new B(`ERR_IMPORT_MISSING_COLUMN: required header "${d.field}" is missing.`);for(let d of c){if(!d.rowIdSourceHeader||!s.has(d.rowIdSourceHeader))throw new B(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${d.subtableCode} is missing.`);for(let f of d.children)if(!s.has(f))throw new B(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let p=[],u;if(a.rows.forEach((d,f)=>{let R=f+2,E=d[0];if(E!==""&&E!=="*")throw new B(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(E)} at source row ${R}.`);if(E==="*"){if(p.length>=i)throw new B(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:p.length+1,markerRowNumber:R,top:new Map(l.map(g=>[g.field,d[s.get(g.field)]])),subtables:new Map(c.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:d[s.get(o)]}:{}},p.push(u)}else if(u){for(let g of l){let y=d[s.get(g.field)];if(y!==""&&y!==u.top.get(g.field))throw new B(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${R}.`)}if(o){let g=d[s.get(o)];if(g!==""&&g!==u.recordNumberSourceValue)throw new B(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new B(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let g of c){let y=d[s.get(g.rowIdSourceHeader)],m=new Map(g.children.map(A=>[A,d[s.get(A)]]));if(y===""&&[...m.values()].every(A=>A===""))continue;let S=u.subtables.get(g.subtableCode);S.push({childRowNumber:S.length+1,sourceRowNumber:R,...y?{rowId:y}:{},values:m})}}),p.length===0)throw new B("CSV has no parent rows.");return{records:p}}var fS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),ES=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Au(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function TE(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)AE(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 R=a.get(d.subtableCode)??new Map;for(let E of d.children)AE(E,R.get(E),d.subtableCode)}let c=new Map(l.map(d=>[d.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(d=>RS(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 RS(e,t,n,r,i,o,a,s){let l=[],c={};for(let d of t)e.top.has(d.field)&&mu(e.top.get(d.field),r.get(d.field),o,c,d.field,l,yu(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)||hE(d,o,p,l,yu(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 R=[];for(let E of e.subtables.get(d.subtableCode)){f.childRows++;let g=l.length,y={},m=i.get(d.subtableCode);for(let S of d.children){let A=m.get(S),I=yu(e,a,S,d.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(S)?mu(E.values.get(S),A,o,y,S,l,I):hE(A,o,y,l,I)}l.length===g?(f.validChildRows++,R.push(y)):f.invalidChildRows++}u.set(d.subtableCode,R)}return{parentRow:e.rowNumber,valid:l.length===0,top:c,subtables:u,replacementTables:e.replacementTables,errors:l}}function AE(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&&ES.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function hE(e,t,n,r,i){let o=fn(e.defaultValue)?"":e.defaultValue;mu(o,e,t,n,e.code,r,i,!fn(e.defaultValue))}function mu(e,t,n,r,i,o,a,s=!1){let l=gS(e),c=Fe(l,t,n);c.ok?r[i]={value:yS(l,t)?l:c.value}:o.push({...a,code:c.code,message:s?`\u65E2\u5B9A\u5024: ${c.message}`:c.message})}function gS(e){return SE(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:SE(t)?t.lexeme:t):e}function SE(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function yS(e,t){return fS.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function yu(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 hu=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Su(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":mS(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 mS(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 Tu(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 IE(e,t){return Tu(e,t,"DROP")}function wE(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 bE(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 AS(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function NE(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 PE(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 R=AS(c.record,f),E=new Set(R.map(w=>w.id).filter(w=>!!w)),g=s.subtables.get(f)??[],y=o.subtables.get(f)??[],m=0,S=0,A=0,I=g.map((w,D)=>{let P=y[D]??{};return w.rowId&&E.has(w.rowId)?(m++,{rowId:w.rowId,record:P}):(w.rowId&&((i.get(w.rowId)??[]).some(_=>_.parentId!==l||_.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:w.rowId,subtable:f,subrow:w.childRowNumber,sourceRow:w.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${w.rowId}`,sourceValues:w.values}),A++),S++,{record:P})});u.set(f,I),d.push({table:f,existingRows:R.length,inputRows:g.length,updateRows:m,addRows:S,deleteRows:R.length-m,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 Iu="#__import_source";function CE(e){return{...e,from:{appId:0,alias:null,cteName:Iu}}}function hS(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function wu(e,t){let n=e.map(hS),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 SS="\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",wn=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"}},Re=new WeakMap;function YE(e){return Re.get(e)}var Ln=new WeakMap,ts=new WeakMap,OE=new WeakMap,TS=1,IS=1;function jE(e,t){if(t)return t;let n=OE.get(e);return n||(n=`client:${TS++}`,OE.set(e,n)),n}function ec(e){return`${e}\0inv:${IS++}`}async function tc(e,t,n={}){let r=Date.now(),i=ec(jE(t,n.cacheContext));try{let o=dI(e,n.enableImport===!0),a=qE(),s=JE(t,a),l={aborted:!1},c=rc(s,l,!bS(o)||Bl(o)),p=await Lu(o,c,n,i);a.elapsedMs=Date.now()-r;let u={...XE(p,l),metrics:a};if(p.type==="SELECT"){let d=Re.get(p);d&&Re.set(u,d)}return u}finally{Sc(i)}}function qE(){return{getCalls:0,postCalls:0,putCalls: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 zE=Symbol("limitMetricsSink");function nc(e,t){let n=e[zE];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function JE(e,t){return{[zE]:t,getRecords:async n=>{t.getCalls+=1;let r=await e.getRecords(n);return t.fetchedRows+=r.records.length,r},openCursor:async n=>{t.cursorCreateCalls+=1;let r;try{r=await e.openCursor(n)}catch(a){throw a instanceof Error&&a.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),a}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let i=!1,o=()=>{i||(i=!0,t.cursorActiveCurrent-=1)};return{totalCount:r.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let a=await r.nextPage();return t.cursorRecordsScanned+=a.records.length,a.next||o(),a},close:async()=>{i||(t.cursorDeleteCalls+=1);try{await r.close(),o()}catch(a){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,a}}}},postRecords:n=>(t.postCalls+=1,e.postRecords(n)),putRecords:n=>(t.putCalls+=1,e.putRecords(n)),deleteRecords:n=>(t.deleteCalls+=1,e.deleteRecords(n)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:n=>(t.fieldCalls+=1,e.getFields(n)),getNumberPrecision:n=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(n)),getProcessStatuses:n=>(t.processStatusCalls+=1,e.getProcessStatuses(n))}}var LE=Symbol("searchAbortFailClosed");function rc(e,t,n){return n&&e[LE]?e:{...e,...n?{[LE]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new wn;return i}}}function wS(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 bS(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function XE(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(SS),{...e,warnings:[...n]}}async function _E(e,t,n){let r=await Mi(e,t,n);return fu(r),r}async function Mi(e,t,n){return pE(e,{select:async r=>{let{resolver:i}=await Sn(r,t,n);return ye(r.where,i)},dml:r=>lR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Sn(r,t,n);return Eu(r,i)},joinServerFunctionPlan:async r=>{await Sn(r,t,n);let i=await rs(r,t,n),o=ns(r,i);return o===null?null:(ir(o.joinPlan)&&dc.set(r,o),o.joinPlan)}})}async function Lu(e,t,n,r){let i=await Mi(e,t,r);e.type!=="EXPLAIN"&&fu(i);let o=Du(e);if(o!==null&&!WT(e))throw new Error(`ParseError: variable @${o} is not defined in a batch.`);if(Gn("phase15b",e),ao("phase15b",e),Ze(e),e.type!=="EXPLAIN"&&await GS(e,t,r),e.type==="IMPORT")return LR(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 qu(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 Ic(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 NS(e,t,n,r);case"SELECT":return Zt(xu(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return SR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return mc(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return FT(e,t,n,r);case"INSERT_SELECT":return Pc(e,t,n,r);case"UPSERT":return rI(e,t,n,r);case"UPSERT_SELECT":return Lc(e,t,n,r);case"UPDATE":return qu(e,t,n,r);case"DELETE":return nI(e,t,n,r);case"REORDER":return uI(e,t,n,r);case"SHOW_APPS":return xR(t);case"DESCRIBE":return FR(e,t,r);case"EXPLAIN":return gI(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Je(n.dmlMaxRows,"dmlMaxRows",Ut):Ut,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe):Pe,i);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 nR(e,t,n,r)}}var ic=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],oc=["$id","$err_subtable","$err_field","$err_code","$err_count"];function ac(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 QE(e=!1){let t=e?oc:ic;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:G(n==="$id"||n==="$err_count"?"number":"string")}]))}async function NS(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return ZE(e,t,n,r)}async function ZE(e,t,n,r){let i=await te(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=Ul(e,i),l=new Set(s.flatMap(O=>Dl(O.field))),c={present:_l.filter(O=>l.has(O)),absent:_l.filter(O=>!l.has(O))},p=e.checkGroups??[],u=Xn(p);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw be(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let d=new Map([...o].map(([O,F])=>[O,F.fieldType]));d.set("$id","RECORD_NUMBER"),On(e,d);let f=ac(e.where),R=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let E=s.some(O=>O.field.fieldType==="NUMBER")?await At(e.appId,t,r):void 0,g=O=>O.field==="$id"?ee({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?ee(o.get(O.field)):void 0),y=ye(e.where,g);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(y)}).`);let m=new Map([...o].map(([O,F])=>[O,F.fieldType])),S=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),A=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:js(e.where,{allowUnqualifiedFields:!0,fieldTypes:m,fieldOptions:S,allowKlike:!1}),I=A===null?"":Y(A),D=(await De(t.getRecords,e.appId,I,R,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:Ot(O,null)})).filter(O=>e.where===null||ae(e.where,O.flat,F=>d.get(F.field))),P=[],M=new Map,_=new Map,C=new Set,k=0,b=O=>{if(C.add(O.id),k+=1,e.summary){let z=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),x=_.get(z);x?x.$err_count=String(Number(x.$err_count)+1):_.set(z,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let F=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),H=M.get(F);H?(H.$err_count=String(Number(H.$err_count)+1),O.subrow!==void 0&&(H.$err_subrow=`${H.$err_subrow},${O.subrow}`,H.$err_subrow_id=`${H.$err_subrow_id},${O.subrowId??""}`)):M.set(F,{$id:O.id,$err_field:O.field,$err_code:O.code,$err_message:O.message,$err_value:O.value,$err_subtable:O.subtable??"",$err_subrow:O.subrow===void 0?"":String(O.subrow),$err_subrow_id:O.subrowId??"",$err_count:"1"})},v=s.filter(O=>!O.subtableCode),h=new Map;for(let O of s){if(!O.subtableCode)continue;let F=h.get(O.subtableCode)??[];F.push(O),h.set(O.subtableCode,F)}for(let O of D){for(let F of v){let H=O.record[F.field.code]?.value,z=Fe(H,F.field,E);z.ok||b({id:O.id,field:F.field.code,code:z.code,message:z.message,value:Jr(H,F.field.fieldType)})}for(let[F,H]of h){let z=O.record[F]?.value;if(Array.isArray(z))for(let x=0;x<z.length;x++){let V=z[x];for(let $ of H){let K=V.value?.[$.field.code]?.value,L=Fe(K,$.field,E);if(!L.ok){let W=oa(F,x,V);b({id:O.id,field:$.field.code,code:L.code,message:L.message,value:Jr(K,$.field.fieldType),...W})}}}}for(let F of Yo(p,O.flat,H=>d.get(H.field)))b({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)P.push(..._.values());else for(let O of M.values()){let F=Number(O.$err_count);O.$err_subtable!==""&&F>=2&&(O.$err_message=`${O.$err_message}\uFF08${F}\u884C: ${O.$err_subrow}\uFF09`),P.push(O)}let U={type:"SELECT",columns:[...e.summary?oc:ic],rows:P,rowCount:P.length,validateStats:{errorRecords:C.size,errorCount:k,constraintMetadata:c}};return Re.set(U,QE(e.summary===!0)),U}var ze=1e4;function mt(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])||!PS(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 PS(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 eR(e,t,n={}){let r=sc(e,n.enableImport===!0),i=il(r);if(r.forEach(f=>ao("phase15b",f)),n.allowApplyMutation!==!0&&r.some(f=>Cs(f)||f.type==="UPSERT"&&CS(f)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let o=Kl(r,n.variables),a=tR(r,o),s={...n,variables:o};if(n.continueOnError&&i.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let f of i.statements){if(!f.isDml||f.tempTablesReferenced.length===0||f.statementType==="INSERT_SELECT"||f.statementType==="UPSERT_SELECT")continue;let R=r[f.index];if(!(R?.type==="UPDATE"&&R.from?.cteName!=null))throw new re(`ArgumentError: temp table references in ${f.statementType} are not supported yet.`,f.index)}let l=qE(),c=JE(t,l),p=Date.now(),u=n.timeoutMs!=null?p+n.timeoutMs:null,d=ec(jE(t,n.cacheContext));try{let f=new Map,R=new Map,E=[],g=new Set,y=null;for(let m=0;m<r.length;m++){let S=i.statements[m],A={index:m,type:S.statementType};if(y){E.push({...A,status:"skipped",skippedReason:y}),g.add(m);continue}let I=S.dependsOn.find(w=>g.has(w));if(I!==void 0){let w=i.statements[I].tempTablesCreated[0]??`statement ${I}`;E.push({...A,status:"skipped",skippedReason:`dependency: ${w}`}),g.add(m);continue}if(u!==null&&Date.now()>=u){E.push({...A,status:"skipped",skippedReason:"timeout"}),g.add(m),y="timeout";continue}try{let w=u!==null?u-Date.now():null,D=s.confirm,P=D?{...s,confirm:(b,v,h)=>D(b,v,{statementIndex:m,statementCount:r.length,statementType:S.statementType,targetAppId:S.targetAppId,...h?.importDetail?{importDetail:h.importDetail}:{},...h?.applyDetail?{applyDetail:h.applyDetail}:{},...h?.applyDiagnostic?{applyDiagnostic:h.applyDiagnostic}:{}})}:s,M={aborted:!1},_=rc(c,M,S.statementType!=="SELECT"&&S.statementType!=="UNION"&&S.statementType!=="WITH"||Bl(r[m])),C=wS(_),k=await _S(OS(r[m],S,C.client,P,d,f,R,a),w,C.closeActive);k.result&&(k.result=XE(k.result,M)),E.push({...A,status:"success",...k})}catch(w){E.push({...A,status:"error",error:DS(w),...w instanceof _i?{result:w.diagnostic}:{}}),g.add(m),w instanceof sr?y="timeout":w instanceof ur?y="assertion":S.statementType==="SET_VARIABLE"||S.statementType==="DECLARE_VARIABLE"?y="fail-fast":n.continueOnError||(y="fail-fast")}}return l.elapsedMs=Date.now()-p,{ok:E.every(m=>m.status==="success"),statementCount:r.length,statements:E,analysis:i,metrics:l}}finally{Sc(d)}}function CS(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 OS(e,t,n,r,i,o,a,s){if(e.type==="SET_VARIABLE"){let c=ja(e,a);if(Ze(c),await _E(c,n,i),c.expr.type==="ARRAY")a.set(e.name,{type:"array",elements:c.expr.elements.map(p=>({type:"string",value:p.value}))});else if(c.expr.type==="SCALAR_SUBQUERY")try{let p=await rR(c.expr.query,n,r,i,o),u=c.expr.query.columns[0],d=u?.type==="ARITH_COL"||u?.type==="ARITH_AGG_COL"||u?.type==="WINDOW_COL"&&(u.windowKind===void 0||u.windowKind==="RANKING"||u.windowKind==="AGGREGATE"&&(u.aggFunc==="COUNT"||u.aggFunc==="SUM"||u.aggFunc==="AVG"))||u?.type==="AGGREGATE"&&(u.func==="COUNT"||u.func==="SUM"||u.func==="AVG"||u.func==="STDDEV_POP"||u.func==="STDDEV_SAMP"||u.func==="VAR_POP"||u.func==="VAR_SAMP"||u.func==="MEDIAN");if(u?.type==="AGGREGATE"&&u.func==="MODE"||u?.type==="WINDOW_COL"&&u.windowKind==="VALUE"||u?.type==="WINDOW_COL"&&u.windowKind==="AGGREGATE"&&(u.aggFunc==="MIN"||u.aggFunc==="MAX")){let R=(await Xa(c.expr.query,["__scalar__"],n,i,o)).get("__scalar__");d=R?.semantics?.compareMode==="number"||R?.sortKind==="number"}let f=d?Number(p):Number.NaN;a.set(e.name,d&&Number.isFinite(f)?{type:"number",value:f,raw:p}:{type:"string",value:p})}catch(p){throw p instanceof hn?new Error(`ArgumentError: ${p.message}`):p}else a.set(e.name,DE(c.expr));return{}}if(e.type==="DECLARE_VARIABLE"){if(e.annotation==="RELATIVE_DATE")return a.set(e.name,{type:"relative-date",value:s.get(e.name)}),{};let c=r.variables??{};if(Object.prototype.hasOwnProperty.call(c,e.name))a.set(e.name,{type:"string",value:c[e.name]});else{let p=DE(e.default);a.set(e.name,{type:"string",value:p.type==="number"?p.raw??String(p.value):p.value})}return{}}let l=ja(e,a);if(Gn("phase15b",l),ao("phase15b",l),Ze(l),await _E(l,n,i),l.type==="VALIDATE"){let c=await ZE(l,n,{...r,onLimitReached:"error"},i);return l.errorTable&&mt(o,l.errorTable,c.columns,c.rows,r.tempTableMaxRows??ze,Re.get(c)??QE(l.summary===!0)),{result:c}}if(l.type==="IMPORT")return{result:await LR(l,n,r,i,o)};if("validateOnly"in l&&l.validateOnly===!0){let c=await Ic(l,n,{...r,onLimitReached:"error"},i,o,t.index+1);return l.validationErrorTable&&mt(o,l.validationErrorTable,c.columns,c.errors,r.tempTableMaxRows??ze,Ln.get(c)??new Map),{result:c}}if("onErrorSkip"in l&&l.onErrorSkip===!0)return{result:await Yu(l,n,{...r,onLimitReached:"error"},i,o,t.index+1)};if(l.type==="CREATE_TEMP_TABLE"){let c={...r,maxRecords:r.tempTableMaxRows??ze,onLimitReached:"error"},p=await LS(l.query,n,c,i,o);return o.set(l.name,{rows:p.rows,columns:p.columns,columnMeta:Re.get(p)}),{tempTable:l.name,rowCount:p.rows.length}}if(e.type==="DROP_TEMP_TABLE")return o.delete(e.name),{tempTable:e.name};if(e.type==="EXPLAIN"){let c=l;Zu.set(c,o);try{return{result:await Lu(c,n,r,i)}}finally{Zu.delete(c)}}if(l.type==="ASSERT")return await nR(l,n,r,i,o),{};if(t.tempTablesReferenced.length>0){if(l.type==="SELECT"||l.type==="UNION")return{result:await Dt(l,n,r,o,i,r.captureColumnMeta===!0)};if(l.type==="WITH")return{result:await mc(l,n,r,i,o)};if(l.type==="INSERT_SELECT")return{result:await Pc(l,n,r,i,o)};if(l.type==="UPSERT_SELECT")return{result:await Lc(l,n,r,i,o)};if(l.type==="UPDATE"&&l.from?.cteName!=null)return{result:await qu(l,n,r,i,o)};throw new Error(`ArgumentError: temp table references in ${e.type} are not supported yet.`)}return{result:await Lu(l,n,r,i)}}async function LS(e,t,n,r,i){return e.type==="WITH"?mc(e,t,n,r,i,!0):Dt(e,t,n,i,r,!0)}async function _S(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 DS(e){let t;if(e instanceof ft)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??bu(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:vS(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:bu(r),message:r}}else{let n=String(e);t={code:bu(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function bu(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function vS(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function sc(e,t=!1){let n=new jt(e).tokenize();return new qt(n,{import:t}).parseStatements()}function US(e,t){try{let n=sc(`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 tR(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)?US(r.name,t[r.name]):r.default);return n}function DE(e){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:j(e)};case"KINTONE_FUNC":return{type:"string",value:Gd(e.name)};case"STRING_FUNC":return{type:"string",value:pe(e,{})};case"ARITH":{let t=ce(e,{});if(!Number.isFinite(t))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:t,raw:String(t)}}}}function ja(e,t){return _u(e,t,!1)}function _u(e,t,n){if(Array.isArray(e))return e.map(r=>_u(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(`ParseError: variable @${r.name} is not defined 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"){let a=t.get(r.name);if(a===void 0)throw new Error(`ParseError: variable @${r.name} is not defined 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,_u(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(`ParseError: variable @${a.name} is not defined 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=kS(i);if(o.type==="SELECT"&&je(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&je(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 je(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function kS(e){if(e.type==="NOT"&&je(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&je(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(je(t,!1)||je(n,!1))return{type:"BOOLEAN",value:!1};if(je(t,!0))return n;if(je(n,!0))return t}else if(e.op==="OR"){if(je(t,!0)||je(n,!0))return{type:"BOOLEAN",value:!0};if(je(t,!1))return n;if(je(n,!1))return t}}return e}function Du(e){if(Array.isArray(e)){for(let t of e){let n=Du(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=Du(n);if(r!==null)return r}}return null}var ur=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},hn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function nR(e,t,n,r,i){let o=await Ma(e.left,t,n,r,i),a=e.left.type==="NUMBER"||e.left.type==="ARITH"?G("number"):G("string");if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Ma(e.low,t,n,r,i),c=await Ma(e.high,t,n,r,i);if(!pn(">=",o,l,a)||!pn("<=",o,c,a))throw new ur(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let s=await Ma(e.right,t,n,r,i);if(!pn(e.op,o,s,a))throw new ur(`assertion failed: ${e.text} (actual: ${o}).`);return{type:"ASSERT",condition:e.text}}async function Ma(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return j(e);case"STRING":return e.value;case"ARITH":return String(vu(e));case"SCALAR_SUBQUERY":try{return await rR(e.query,t,n,r,i)}catch(o){throw o instanceof hn?new ur(o.message):o}}}async function rR(e,t,n,r,i){let{query:o,probed:a}=MS(e),s=await wi(o,t,n,r,i);if(s.columns.length!==1)throw new hn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new hn("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 hn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function MS(e){return Z(e).type!=="NONE"||e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function vu(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=vu(e.left),n=vu(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 xi(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=i||Et(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 te(d,t,n);return[d,new Map(f.map(R=>[R.code,R]))]}))),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 R=String(f.op),E=f.right,g=["=","!=","<>"].includes(R)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(R)||g)){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(g=>f.get(g)?.fieldType==="STATUS"))return;let E=await Tc(d,t,n);E&&p.set(d,E)}));let u=(d,f,R)=>{if(f==="$id")return Hn(ee({fieldType:"__ID__"}),d.appId,"$id");if(R&&d.subtableCode){if(f==="_rid")return G("string");if(f==="_idx"||f==="_pid")return G("number")}let E=s.get(d.appId)?.get(de(d,f));if(!E)return;let g=E.semantics??ee(E),y=E.fieldType==="STATUS"&&p.has(d.appId)?{...g,optionOrder:p.get(d.appId)}:g;return Hn(y,d.appId,E.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 R=o.find(E=>me(E)===d.tableAlias);return R?R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics??G("string"):u(R,d.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(d.field)?.semantics??G("string"):u(e.from,d.field,!0);let f=o.flatMap(R=>{let E=R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(d.field)?.semantics:u(R,d.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(R=>Ba(R,d.field)!==void 0))return f.length>1?G("string"):void 0}}var iR=new WeakMap;async function Sn(e,t,n,r,i=!1){let o=await xi(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Zp(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&iR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function xS(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function oR(e){return xS(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function vE(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=Ge(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===me(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=Ge(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function UE(e,t){return e!=="DIRECT"?"\u305D\u306E\u8868\u306E\u4E2D\u3067\u4E00\u610F\u306B\u306A\u308B\u5217\uFF08\u5143\u306E\u96C6\u7D04\u306E\u30AD\u30FC\u306A\u3069\uFF09\u3092 ORDER BY \u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002\u96C6\u7D04\u7D50\u679C\u306E\u5217\u306F\u4E00\u610F\u3067\u3082\u8A3C\u660E\u3067\u304D\u306A\u3044\u305F\u3081\u3001\u3059\u3067\u306B\u4E00\u610F\u306A\u5834\u5408\u3082\u3053\u306E\u8B66\u544A\u304C\u51FA\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u306E\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3081\u3066\u3044\u308B\u306A\u3089\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3057\u3066\u69CB\u3044\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 aR(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"||vE(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`+UE(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||vE(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`+UE(n,"VALUE"));return i}function lc(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=Re.get(e);return r&&Re.set(n,r),n}function uc(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=>Et(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function sR(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(Ge(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=G("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=G("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Nn(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=Nn(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"?G("string"):G("number"):r.type==="STRFUNC_COL"?i=bn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=G("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function Tn(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 qa(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function lR(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Et(e.where)?await te(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?ye(null,()=>{}):ye(e.where,o=>{if(o.field==="$id")return ee({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?ee(a):void 0)})}async function lr(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await lR(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ie(`WHERE predicate cannot be represented by kintone REST (${Tn(r)})`)}async function Zt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l;if(await Ci(e,t,r,i),$S(e))return l=HS(e),o&&Re.set(l,await Xa(e,l.columns,t,r,i,a)),l;let{resolver:c}=await Sn(e,t,r,i,oR(e)),p=aR(e,c,s),u=await Ni(e,t,r,i);await GR(e,t,n,r,i);let d=aT(e,ye(e.where,c));if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(d)}).`);let f=Ve(e),R,E;if(d.capability==="SUPERSET_PREFILTER"){let D=await xi(e,t,r,i),P=Eu(e,D);P.eligible&&du(e,P)&&(R=P.plan)}if(R===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let D=null;try{D=Y(e.where)}catch{D=null}E=_o({select:e,selectMode:f,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:D,relativeFunctionNames:he(e.where)})??void 0,E&&(R=E.prefilterPlan)}let g=d.capability==="EXACT_PUSHDOWN"?f:"FULL_SCAN",y=await Li(e,t,r,i),m=qa(e)?(e.orderMode==="KINTONE_NATIVE"?oi:ii)({stmt:e,staticMode:g,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Ie(e.where)}):null,S=await jS(e,m?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),A=cc(e,n,m),w=E!==void 0&&(f==="FULL_SCAN"||m?.kind==="CANONICAL_LOCAL")?rc(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await YS(e,w,A.effectiveOptions,r,m,y):l=await uT(e,w,A.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&R===void 0,y,R,u)}catch(D){cR(A,D)}return o&&Re.set(l,await Xa(e,l.columns,t,r,i,a)),lc(l,[...p,...S])}function Uu(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 uR(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 Ni(e,t,n,r){let i=Z(e);if(!Vn(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 E=r?.get(u.cteName);if(!E)throw new Error(`InternalError: materialized schema ${u.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let d=await te(u.appId,t,n);if(!u.subtableCode){for(let E of d){if(E.inSubtable!==!0||!E.subtableCode)continue;let g=s.get(E.code)??[];g.push({appId:u.appId,owner:E.subtableCode}),s.set(E.code,uR(g))}return{kind:"APP",fieldCodes:d.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=d.filter(E=>E.inSubtable&&E.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:d.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:d.filter(E=>!E.inSubtable).map(E=>E.code)}})),c=Lp(e,(u,d)=>l[d]),p=Up(o,e.columns,c);return FS(e,o,p,s),Ir(e,Fp(e,p,c)),p}function FS(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,R=r.get(s.name)??r.get(f)??[];throw R.length>0?new Error(Uu(s.name,R)):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 Pi=new WeakMap;async function GS(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 Ci(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function KS(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 te(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=de(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?f.columns.includes(d):!0},p=(u,d,f,R)=>{let E=i.filter(m=>m.cteName===null&&l(m,f.field)!==null).length,g=i.some(m=>c(m,f.field)),y=me(u);return{canonicalId:`source:${d}:APP${u.appId}:${R}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!g?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let g=i.findIndex(S=>me(S)===u.tableAlias);if(g<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[g];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 m=l(y,u.field);if(m===null){let S=s(y,de(y,u.field));throw S!==null&&S!==""?new Error(Uu(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,g,u,m)}let d=i.flatMap((g,y)=>{if(g.cteName!==null)return[];let m=l(g,u.field);return m===null?[]:[{table:g,tableIndex:y,code:m}]}),f=i.filter(g=>c(g,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 g=d[0];return p(g.table,g.tableIndex,u,g.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 R=i.flatMap(g=>{if(g.cteName!==null)return[];let y=s(g,de(g,u.field));return y===null||y===""?[]:[{appId:g.appId,owner:y}]}),E=uR(R);throw E.length>0?new Error(Uu(u.field,E)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function Ci(e,t,n,r){Pi.delete(e);let i=Z(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await KS(e,t,n,r),c=Bp(e,l,Kp);c&&Pi.set(e,c);return}if(!Vn(e))return;if(i.type==="NONE"){po(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await Ni(e,t,n,r)}function BS(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 cc(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Mt({...e,orderBy:[]}):Mt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function cR(e,t){throw e.reasons.size>0&&t instanceof Ue&&!t.completeInputWrapped?new Ue(BS(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function ku(e,t){try{return await t()}catch(n){cR(e,n)}}function st(e){return e?.type==="BOOLEAN"&&e.value===!1}function $S(e){return e.from.appId===0&&e.from.cteName===ke}function za(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"?za(e.left)||za(e.right):e.type==="STRING_FUNC"?pc(e):!1}function VS(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Ai(e)}function Ai(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?pc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Ai(e.left)||Ai(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"?za(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Ai(n))):!1}function pc(e){return e.args.some(t=>VS(t))}function WS(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(za(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(pc(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Ai(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 HS(e){if(e.joins.length>0||e.where||Z(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.");WS(e);let t=iu([{}],e.columns),{rows:n,columns:r}=ar(t,e.columns),i=ba(n,e.limit,e.offset);return{type:"SELECT",rows:i,columns:r,rowCount:i.length,warnings:[]}}async function YS(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?ER(e):e,s=yo(a),l=i?.kind==="CANONICAL_LOCAL"?ln(e,e.from):s.fields,c=await Ec(e,t,r),p=gc(e,c),u=e.columns.some(P=>P.type==="CASE_COL")?await xi(e,t,r,void 0,uc(e)):void 0,d=n.maxRecords??1e4,f=new Set,R=n.onLimitReached??"error",E=n.fetchParallel??1,g=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,m=e.orderBy.length===0&&y!==null&&y<=d&&!Ie(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 P=await Ff({client:t,app:s.app,fields:s.fields,query:Jl(e),offset:e.offset??0,limit:e.limit});S=P.records,P.cleanupWarning&&f.add(P.cleanupWarning)}else if(g)S=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let P=e.where?Y(e.where):"";S=await De(t.getRecords,s.app,P,l,{parallel:E,maxRecords:d,stopAfter:m,onLimit:R,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`),nc(t,e.from.appId)}})}let A=S.map(P=>Ot(P,null));g||(A=nu(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,ru(e.columns,void 0,p.row,u)),A=ba(A,e.limit,e.offset));let{rows:I,columns:w}=ar(A,e.columns,void 0,p.row,void 0,u),D=await Ac(e,I,w,t,r);return{type:"SELECT",rows:I,columns:D,rowCount:I.length,warnings:[...f]}}async function jS(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=yo(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=ln(e,p);a(p.appId,u),p.subtableCode||l(p.appId,u)}}for(let[c,p]of o.entries()){let u=[...p].filter(g=>!vs(g));if(u.length===0)continue;let d=await te(c,n,r);if(d.length===0)continue;let f=new Set(d.map(g=>g.code)),R=u.filter(g=>!f.has(g));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (APP${c})`);let E=s.get(c);if(E){let g=d.filter(y=>y.inSubtable===!0&&E.has(y.code));for(let y of g){let m=y.subtableCode??"",S=m?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${m}\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`+(m?`APP${c}$${m} \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 kE(e){return e.cteName??`APP${e.appId}`}function qS(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function zS(e,t){return vs(t)||e.validCodes.has(t)}function Nu(e,t){return e.table.cteName!==null?e.validCodes.has(t):zS(e,t)}function JS(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 XS(e,t,n,r){let i=[e.from,...e.joins.map(p=>p.table)],o=new Map,a=new Set;for(let p of i){let u=me(p);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let p of i){if(p.cteName===null||p.cteName===ke)continue;let u=n.get(p.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);o.set(p,u)}let s=new Map;await Promise.all(i.map(async p=>{let u=o.get(p);if(u){s.set(p,{table:p,label:kE(p),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(p.cteName===ke)return;let d=await te(p.appId,t,r);s.set(p,{table:p,label:kE(p),validCodes:new Set(d.map(f=>f.code)),authoritative:d.length>0,schemaUnavailable:!1})}));let l=new Map;for(let p of s.values())for(let u of qS(p.table))l.set(u,p);for(let p of e.joins)if(p.type!=="CROSS")for(let u of[p.on.left,p.on.right]){if(!u.tableAlias)continue;let d=l.get(u.tableAlias);if(d&&d.table.cteName!==null&&!d.schemaUnavailable&&!Nu(d,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let c=jp(e);for(let[p,u]of c.bySource){let d=s.get(p);if(!d||d.schemaUnavailable||!d.authoritative)continue;let f=[...u].filter(R=>!Nu(d,R));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${d.label})`)}for(let p of c.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>Nu(f,p))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let d=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${d})`)}}async function Ka(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Ka(e.left,t,n,r,i),await Ka(e.right,t,n,r,i);return}await XS(e,t,n,r);for(let o of JS(e))await Ka(o,t,n,r,i)}}function pR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?_r(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?_r(e.where,{tableAlias:e.from.alias}):null}function hi(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"?hi(e.left)||hi(e.right):e.type==="GROUP"||e.type==="NOT"?hi(e.expr):!1}var dc=new WeakMap;function ns(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=Df(e.where,r),o=vf(i,r),a=new Map,s=new Map;for(let[f,R]of o.fetchQueriesByAlias)s.set(f,R);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,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 rs(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,pR(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=_r(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([Le(s,t,n),ET(s,t,n)]),u=QS(l).filter(d=>c.get(d)==="STATUS");if(u.length>0){let d=await os(s,t,n);if(d.enable&&d.states&&d.states.length>0){let f=new Set(d.states.map(R=>R.name));for(let R of u)p.set(R,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 QS(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 _t(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"&&Ja(e.left.expr,t),e.right.type==="CASE_VALUE"&&Ja(e.right.expr,t);return;case"LOGICAL":_t(e.left,t),_t(e.right,t);return;case"NOT":case"GROUP":_t(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Ja(e,t){for(let n of e.branches)_t(n.condition,t)}function ZS(e){let t=[];_t(e.where,t),_t(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Ja(n.expr,t);return t}function me(e){return e.alias??e.cteName}function dR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>me(n)===t)}function fc(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Ec(e,t,n){let r=ZS(e);if(r.length===0)return new Map;let i=new Set,o=fc(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=dR(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 Le(s,t,n)]));return new Map(a)}function Ge(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 Rc(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||mn(t,n)}function mn(e,t){if(e.type==="FIELD_REF"){t.push(Ge(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){mn(e.left,t),mn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){mn(e.left,t),mn(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"&&mn(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"?cr(n,t):n.type!=="ARRAY"&&mn(n,t)}function cr(e,t){if(e.type==="AGG_REF"){Rc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(cr(e.left,t),cr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Mu(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")cr(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;Si(n,t)}}function Si(e,t){if(e.type==="STRING_FUNC"){Mu(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Si(e.left,t),Si(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"?Mu(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?cr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Si(r,t)}}function eT(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;Rc(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function tT(e){let t=[];for(let n of e)n.type==="AGGREGATE"?Rc(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?cr(n.expr,t):n.type==="STRFUNC_COL"?Mu(n.expr,t):n.type==="SCALAR_VALUE_COL"?Si(n.expr,t):n.type==="CASE_COL"&&eT(n.expr,t);return t}var nT=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function rT(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":nT.has(e.fieldType)?"string":void 0}async function fR(e,t,n,r){let i=tT(e.columns);if(i.length===0)return;let o=new Set,a=fc(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 R=dR(e,f.tableAlias);R&&R.cteName===null&&o.add(R.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let R of a)o.add(R.appId);let s=new Map(await Promise.all([...o].map(async f=>{let R=await te(f,t,n);return[f,new Map(R.map(E=>[E.code,E]))]}))),l=new Map,c=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,R])=>{if(![...c].some(g=>R.get(g)?.fieldType==="STATUS"))return;let E=await Tc(f,t,n);E&&l.set(f,E)}));let p=[e.from,...e.joins.map(f=>f.table)],u=(f,R)=>{let E=f.semantics??ee(f);return f.fieldType==="STATUS"&&l.has(R)?{...E,optionOrder:l.get(R)}:E};return f=>{let R;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)R=s.get(e.from.appId)?.get(f.field);else{let g=p.find(y=>me(y)===f.tableAlias);if(!g)return;if(g.cteName!==null)return r?.get(g.cteName)?.columnMeta?.get(f.field)?.semantics??G("string");R=s.get(g.appId)?.get(de(g,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??G("string");R=s.get(e.from.appId)?.get(de(e.from,f.field))}else{let g=p.flatMap(y=>{if(y.cteName!==null){let S=r?.get(y.cteName);return S?.columns.includes(f.field)?[S.columnMeta?.get(f.field)?.semantics??G("string")]:[]}let m=s.get(y.appId)?.get(de(y,f.field));return m?[u(m,y.appId)]:[]});return g.length!==1?void 0:g[0]}if(!R)return;let E=f.tableAlias!==null?p.find(g=>me(g)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(R,E?.appId??e.from.appId)}}function de(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Ba(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function ve(e,t){let n=e.semantics??ee(e);return{sortKind:rT(e),fieldType:e.fieldType,semantics:t===void 0?n:Hn(n,t,e.code)}}function ER(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 Q(e){return{sortKind:e,semantics:G(e)}}function qe(){return{semantics:G("string","KSQL_UNKNOWN")}}function RR(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function ot(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:ee({fieldType:"__ID__"})};if(e==="_rid")return Q("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Q("number")}var iT=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function bn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Q("number"):Q("string")}return iT.has(e.func)?Q("number"):Q("string")}function pr(e,t){return e.type==="STRING"?Q("string"):e.type==="ARRAY"?RR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?qe():Nn(e.arg,t):e.func==="GROUP_CONCAT"?Q("string"):Q("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Q("number"):e.type==="STRING_FUNC"?bn(e):e.type==="FIELD_REF"?t(Ge(e.field))??qe():e.type==="FIELD"?t(e)??qe():qe()}function is(e){if(e.length===0)return qe();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")?RR("KSQL_MIXED_UNSUPPORTED"):qe()}function Nn(e,t){if(e.type==="FIELD_REF")return t(Ge(e.field))??qe();if(e.type==="FIELD")return t(e)??qe();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return Q("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return Q("string");if(e.type==="STRING_FUNC")return bn(e);let n=e.branches.map(r=>pr(r.result,t));return e.elseResult&&n.push(pr(e.elseResult,t)),is(n)}function gR(e,t){return e.windowKind==="VALUE"?Nn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?Q("number"):e.arg.type==="WILDCARD"?qe():Nn(e.arg,t):Q("number")}function $a(e,t){return{...e??{},displayName:t}}function oT(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 Xa(e,t,n,r,i,o=!1){let a=new Map;oT(e)&&await Promise.all(fc(e).map(async E=>{if(a.has(E.appId))return;let g=await te(E.appId,n,r);a.set(E.appId,new Map(g.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(E=>E.table)],l=o&&i===void 0&&s.every(E=>E.cteName===null),c=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let S=a.get(e.from.appId)?.get(E.field);return S?ve(S,e.from.appId):void 0}let y=s.find(S=>me(S)===E.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(E.field);let m=a.get(y.appId)?.get(de(y,E.field));return m?ve(m,y.appId):ot(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(E.field);let y=a.get(e.from.appId)?.get(de(e.from,E.field));return y?ve(y,e.from.appId):ot(E.field)}let g=s.flatMap(y=>{if(y.cteName!==null){let A=i?.get(y.cteName);return A?.columns.includes(E.field)?[A.columnMeta?.get(E.field)]:[]}let m=a.get(y.appId)?.get(de(y,E.field)),S=m?ve(m,y.appId):ot(E.field);return S?[S]:[]});return g.length===1?g[0]:void 0},p=E=>{if(!l)return;let g=s.filter(y=>{if(E.tableAlias!==null&&me(y)!==E.tableAlias)return!1;let m=de(y,E.field);return a.get(y.appId)?.has(m)===!0||ot(E.field)!==void 0});return g.length===1?g[0].appId:void 0},u=(E,g)=>{let y=p(g);return E&&y!==void 0?{...E,publicSourceApp:y}:E},d=new Map,f=e.columns.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let E of t){let g=Ge(E),y=u(c(g),g);d.set(E,$a(y,y?.displayName??E))}return d}if(f)for(let E of t){let g=Ge(E),y=u(c(g),g);d.set(E,$a(y,y?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,g)=>{let y=f?"alias"in E&&E.alias?E.alias:void 0:t[g];if(!y)return;let m;if(E.type==="FIELD"){let S=Ge(E.field);m=u(c(S),S)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?m=Q("string"):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"?m=Q("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(m=Nn(E.arg,c));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")m=Q("number");else if(E.type==="GROUPING_COL")m=Q("number");else if(E.type==="LITERAL_COL")m=Q("string");else if(E.type==="SCALAR_VALUE_COL"){let S=E.expr;S.type==="STRING_FUNC"?m=bn(S):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?m=Q("number"):S.type==="FIELD"?m=c(S):m=Q("string")}else if(E.type==="STRFUNC_COL")m=bn(E.expr);else if(E.type==="WINDOW_COL")m=gR(E,c);else if(E.type==="CASE_COL"){let S=E.expr.branches.map(A=>pr(A.result,c));E.expr.elseResult&&S.push(pr(E.expr.elseResult,c)),m=is(S)}else E.type==="SCALAR_SUBQUERY_COL"&&(m=qe());d.set(y,$a(m,E.aliasDisplay??y))}),d}function yR(e,t){let n=Re.get(e),r=Re.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=is([s,c]),d=s.publicSourceApp===c.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...R}=u;p=d===void 0?R:{...R,publicSourceApp:d}}else p=qe();i.set(o,$a(p,s?.displayName??o))}),i}function gc(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=>me(p)===s.tableAlias);return!c||c.cteName!==null?void 0:Ba(c,s.field)??t.get(c.appId)?.get(de(c,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Ba(e.from,s.field)??t.get(e.from.appId)?.get(de(e.from,s.field));if(n.some(c=>c.cteName!==null))return;let l=r.flatMap(c=>{let p=Ba(c,s.field)??t.get(c.appId)?.get(de(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 mR=new WeakSet,yc=new WeakMap;function xu(e){return mR.add(e),e}function aT(e,t){return yc.set(e,t),t}function AR(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&&Z(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function sT(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function lT(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":Y(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new wn;if(!sT(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=ar([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function uT(e,t,n,r,i,o=!0,a,s,l){let c=yc.get(e);if(mR.has(e)&&c!==void 0&&AR(e,c)){let L=await lT(e,t);if(L!==null)return L}let p=n.maxRecords??1e4,u=new Set,d=n.fetchParallel??1;await Promise.all([Ui(e.where,t,n,r,i),Ui(e.having,t,n,r,i)]);let[f,R,E]=await Promise.all([rs(e,t,r),Ec(e,t,r),fR(e,t,r,i)]),g=gc(e,R),y=await xi(e,t,r,i,Et(e.having)||uc(e)),m=sR(e,y),S=dc.get(e);if(S&&!ir(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let A=S??ns(e,f)??un(e,f);Js(A);let I="joinPlan"in A?A:null,w=I&&ir(I.joinPlan)?I:null,D=t,P=A.mainCondition,M=A.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let _=s?s.prefilterWhere:w?null:P,C=w?.queriesByAlias.get(e.from.alias)??"",k=await BR(e.columns,t,n,r,i),b=st(e.where),v=b?Promise.resolve([]):Ti(e,e.from,D,p,d,!0,n.onLimitReached??"error",u,_,w?!1:o,l,C),h=[],N=[];for(let L of e.joins){if(b){h.push({join:L,promise:Promise.resolve([])});continue}let W=L.table.alias?w?.queriesByAlias.get(L.table.alias)??"":"",ge=w?null:L.table.alias?M.get(L.table.alias)??null:null;ge!==null||W!==""?h.push({join:L,promise:Ti(e,L.table,D,p,d,!1,n.onLimitReached??"error",u,ge,!0,l,W)}):N.push(L)}let U=a?Promise.resolve(a):Li(e,t,r,i);U.catch(()=>{});let O=await v,F=new Map;F.set(e.from.alias,O);for(let{join:L,promise:W}of h)F.set(L.table.alias,await W);await Promise.all(N.map(async L=>{let ge=await bR(e,L,F,D,p,d,n.onLimitReached??"error",u,r,i,null,l,"")??await Ti(e,L.table,D,p,d,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(L.table.alias,ge)}));let{optionOrders:H,sortKinds:z,semantics:x}=await U,{rows:V,columns:$}=su({tables:F,stmt:e,scalarCache:k,optionOrders:H,sortKinds:z,orderSemantics:x,fieldTypeResolver:g.row,fieldSemanticsResolver:y,havingFieldTypeResolver:g.having,havingFieldSemanticsResolver:m,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??A.appliedKlikes,...s?{residualWhere:s.residualWhere}:w?{residualWhere:w.joinPlan.residualWhere}:{},resolvedGroupingSpec:Pi.get(e),plainGroupByPlan:l}),K=await Ac(e,V,$,t,r);return{type:"SELECT",rows:V,columns:K,rowCount:V.length,warnings:[...u]}}function hR(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
|
|
11
|
+
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`)}async function SR(e,t,n,r,i=!1,o=!1){let a=cc(e,n,null);return ku(a,async()=>{let s=a.effectiveOptions,[l,c]=await Promise.all([e.left.type==="UNION"?SR(e.left,t,s,r,i,o):Zt(xu(e.left),t,s,r,void 0,i,o,"DERIVED"),Zt(xu(e.right),t,s,r,void 0,i,o,"DERIVED")]),p=l.columns,u=c.columns;hR(p,u);let d=c.rows.map(y=>{let m={};return p.forEach((S,A)=>{m[S]=y[u[A]??S]??""}),m}),f=[...l.rows,...d],R=e.all?f:TR(f,p),E=[...new Set([...l.warnings??[],...c.warnings??[]])],g={type:"SELECT",rows:R,columns:p,rowCount:R.length,warnings:E};return i&&Re.set(g,yR(l,c)),g})}function TR(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)})}async function mc(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&Bt(e))return Zt($t(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.query.type==="SHOW_APPS"?p=await xR(t):c.query.type==="DESCRIBE"?p=await FR(c.query,t,r):c.query.type==="GENERATE_SERIES"?p=IR(c.query):p=await Dt(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:Re.get(p),...c.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:c.query.columnAlias}:{}})}let l=await Dt(e.query,t,n,a,r,o);return lc(l,[...s])}function IR(e){let t=Fo(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:ee({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:ee({fieldType:"DATE"})};return Re.set(n,new Map([[e.columnAlias,r]])),n}async function Dt(e,t,n,r,i,o=!1,a=!1){if(a||await Ka(e,t,r,i),e.type==="UNION"){let[c,p]=await Promise.all([Dt(e.left,t,n,r,i,o,!0),Dt(e.right,t,n,r,i,o,!0)]),u=c.columns,d=p.columns;hR(u,d);let f=p.rows.map(m=>{let S={};return u.forEach((A,I)=>{S[A]=m[d[I]??A]??""}),S}),R=[...c.rows,...f],E=e.all?R:TR(R,u),g=[...new Set([...c.warnings??[],...p.warnings??[]])],y={type:"SELECT",rows:E,columns:u,rowCount:E.length,warnings:g};return o&&Re.set(y,yR(c,p)),y}if(!(e.from.cteName!=null&&e.from.cteName!==ke||e.joins.some(c=>c.table.cteName!=null)))return Zt(e,t,n,i,r,o,!1,"DERIVED");let l=await cT(e,t,n,r,i);return o&&Re.set(l,await Xa(e,l.columns,t,i,r)),l}async function cT(e,t,n,r,i){await Ci(e,t,i,r);let o=Pi.get(e),a=await Ni(e,t,i,r),s=new Set,l=K=>{if(K.alias!==null||K.cteName===null)return K;let L=me(K);return s.add(L),{...K,alias:L}};e={...e,from:l(e.from),joins:e.joins.map(K=>({...K,table:l(K.table)}))};let c=new Set;for(let K of[e.from,...e.joins.map(L=>L.table)]){let L=me(K);if(L!==null){if(c.has(L))throw new Error(`ArgumentError: effective alias ${L} is used by multiple tables.`);c.add(L)}}let p=K=>{let L=r.get(K);if(!L)throw new Error(`ArgumentError: materialized source ${K} is not available.`);return L};for(let K of[e.from,...e.joins.map(L=>L.table)])K.cteName!==null&&p(K.cteName);let{resolver:u}=await Sn(e,t,i,r,oR(e)),d=aR(e,u,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,R=new Set,E=n.fetchParallel??1;await Promise.all([Ui(e.where,t,n,i,r),Ui(e.having,t,n,i,r),GR(e,t,n,i,r)]);let g=ye(e.where,u);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(g)}).`);let y=await Li(e,t,i,r),m=qa(e)?(e.orderMode==="KINTONE_NATIVE"?oi:ii)({stmt:e,staticMode:"FULL_SCAN",whereCapability:g.capability,whereReasons:g.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:Ie(e.where)}):null,S=cc(e,n,m),A=S.effectiveOptions,[I,w,D]=await Promise.all([rs(e,t,i),Ec(e,t,i),fR(e,t,i,r)]),P=gc(e,w),M=await xi(e,t,i,r,Et(e.having)||uc(e)),_=sR(e,M),C=ns(e,I)??un(e,I);Js(C);let k=t,b=await BR(e.columns,t,A,i,r),v=Promise.resolve(y);v.catch(()=>{});let h=new Map,N=new Map;if(e.from.cteName!=null){let K=p(e.from.cteName);h.set(e.from.alias,K.rows.map(ME)),N.set(e.from.alias,K.columns)}else{let K=await ku(S,()=>Ti(e,e.from,k,f,E,!0,A.onLimitReached??"error",R,C.mainCondition,g.capability==="EXACT_PUSHDOWN",a));h.set(e.from.alias,K)}let U=e.joins.map(K=>ku(S,async()=>{if(K.table.cteName!=null){let L=p(K.table.cteName);h.set(K.table.alias,L.rows.map(ME)),N.set(K.table.alias,L.columns)}else{let L=K.table.alias?C.joinConditions.get(K.table.alias)??null:null,ge=await bR(e,K,h,k,f,E,A.onLimitReached??"error",R,i,r,L,a)??await Ti(e,K.table,k,f,E,!1,A.onLimitReached??"error",R,L,!0,a);h.set(K.table.alias,ge)}}));await Promise.all(U);let{optionOrders:O,sortKinds:F,semantics:H}=await v,z=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:x,columns:V}=su({tables:h,stmt:e,scalarCache:b,optionOrders:O,sortKinds:F,orderSemantics:H,fieldTypeResolver:P.row,fieldSemanticsResolver:M,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:_,aggregateSortKindResolver:D,appliedKlikes:C.appliedKlikes,sourceColumns:z,tableColumns:N,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a}),$=await Ac(e,x,V,t,i);return lc({type:"SELECT",rows:x,columns:$,rowCount:x.length,warnings:[...R]},d)}async function Ac(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 te(e.from.appId,r,i);return Kf(o,e.from.subtableCode,()=>os(e.from.appId,r,i))}function ME(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Ti(e,t,n,r,i,o,a,s,l=null,c=!0,p,u=""){let d=ln(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`),nc(n,t.appId),Pf(e,t,o))throw new Ue(`\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?Hp(e,t.appId).query:"",m=[l!==null?Y(l):"",u].filter(w=>w!==""),S=m.length>1?m.map(w=>`(${w})`).join(" and "):m[0]??"",A=y&&S?`(${y}) and (${S})`:y||S;return(await tt(n.getRecords,t.appId,A,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let R=o&&c&&e.joins.length===0&&e.where!==null&&yc.get(e)?.capability==="EXACT_PUSHDOWN"&&!It(e.where)?Y(e.where):"",g=(await tt(n.getRecords,t.appId,R,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return iE(g,t.subtableCode)}var wR=50;function pT(e){let t=Te(e);return t!==null?JSON.stringify(t):e}function Fu(e){return JSON.stringify(e)}function Pn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?pT(n):n))}function Fi(e,t){let n=e.raw.get(Fu(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(Pn(t,e.numericKey))}async function Gi(e,t,n,r,i,o){let a=i.maxRecords??1e4,s=i.fetchParallel??1,l=t.map(g=>o.get(g)==="NUMBER"),c={raw:new Map,normalized:new Map,numericKey:l},p=(g,y,m)=>{let S=g.get(y);(S===void 0||m>S)&&g.set(y,m)},u=(g,y)=>{p(c.raw,Fu(g),y),l.some(Boolean)&&p(c.normalized,Pn(g,l),y)},d=new Set,f=[],R=new Set;for(let g of n){let y=Fu(g);R.has(y)||(R.add(y),g.some(m=>m==="")?f.push(g):d.add(g[0]))}let E=["$id",...t];for(let g of Ki([...d],wR)){let y=`${t[0]} in (${g.map(Oi).join(",")})`,m=await De(r.getRecords,e,y,E,{maxRecords:a,parallel:s});for(let S of m){let A=Number(S.$id?.value);Number.isFinite(A)&&u(t.map(I=>hc(S[I]?.value)),A)}}for(let g of f){let y=t.map((S,A)=>`${S} = ${Oi(g[A])}`).join(" and "),m=await De(r.getRecords,e,y,["$id"],{maxRecords:a,parallel:s});m.length!==0&&u(g,dT(m))}return c}function dT(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 hc(e){return typeof e=="string"?e:e==null?"":String(e)}function Oi(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Ki(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var fT=6,Va=ca*fT;async function bR(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,R=t.on.right.tableAlias;if(!f||!R)return null;let E,g,y;if(f===t.table.alias&&R!==t.table.alias)E=R,g=t.on.right.field,y=t.on.left.field;else if(R===t.table.alias&&f!==t.table.alias)E=f,g=t.on.left.field,y=t.on.right.field;else return null;let m=n.get(E);if(!m)return null;let S=[e.from,...e.joins.map(h=>h.table)].find(h=>me(h)===E),A=(await te(t.table.appId,r,l)).find(h=>h.code===de(t.table,y)),I=A?ve(A,t.table.appId):ot(y),w;if(S?.cteName!==null&&S?.cteName!==void 0)w=c?.get(S.cteName)?.columnMeta?.get(g);else if(S){let h=(await te(S.appId,r,l)).find(N=>N.code===de(S,g));w=h?ve(h,S.appId):ot(g)}let D=[],P=!1;for(let h of m){let N=h[g]?.value,U=hc(N);(N==null||U.length===0)&&(P=!0),D.push(U)}let M=Wl({fieldType:I?.fieldType,sourceSemantics:w?.semantics,sourceRowCount:m.length,values:D,hasEmptyValue:P,maxInKeys:Va});if(M.kind==="EMPTY_SOURCE")return[];if(M.kind==="FALLBACK"){if(M.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let h=new Set(D).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 ${Va} \u4EF6\uFF09\u3002`)}return null}if(M.kind==="RANGE_CANDIDATE")return null;let _=Vl(M,y,Oi);if(_.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 ${Va} \u4EF6\uFF09\u3002`),null;let C=ln(e,t.table,u),k=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`),nc(r,t.table.appId)},b=[],v=new Set;for(let h of _){let U=[p!==null?Y(p):"",d].filter(F=>F!=="").reduce((F,H)=>`(${F}) and (${H})`,h),O=await tt(r.getRecords,t.table.appId,U,C,{parallel:o,maxRecords:i,onLimit:a,onTruncate:k});for(let F of O.records){let H=`${F.$id?.value??""}:${JSON.stringify(F)}`;v.has(H)||(v.add(H),b.push(F))}}return b}var Gu=new Map,Ku=new Map,Bu=new Map,$u=new Map,Vu=new Map,Wu=new Map;function Sc(e){Gu.delete(e),Ku.delete(e),Bu.delete(e),$u.delete(e),Vu.delete(e),Wu.delete(e)}function dr(e,t,n){return e.get(t)?.get(n)}function fr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function te(e,t,n){let r=dr($u,n,e);if(r)return r;let i=t.getFields(e);return fr($u,n,e,i),i}async function At(e,t,n){let r=dr(Wu,n,e);if(r)return r;let i=t.getNumberPrecision(e);return fr(Wu,n,e,i),i}async function os(e,t,n){let r=dr(Vu,n,e);if(r)return r;let i=t.getProcessStatuses(e);return fr(Vu,n,e,i),i}async function Tc(e,t,n){let r=await os(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Le(e,t,n){let r=dr(Gu,n,e);if(r)return r;let i=await te(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return fr(Gu,n,e,o),o}async function Hu(e,t,n){let r=dr(Ku,n,e);if(r)return r;let i=await te(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 fr(Ku,n,e,o),o}async function ET(e,t,n){let r=await Hu(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function xE(e,t,n){let r=dr(Bu,n,e);if(r)return r;let i=await te(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return fr(Bu,n,e,o),o}function RT(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 gT(e,t,n,r){let i=RT(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 te(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 E=s.get(e.from.appId)?.get(u.field);return E?ve(E,e.from.appId):void 0}let f=o.find(E=>me(E)===u.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(u.field);let R=s.get(f.appId)?.get(de(f,u.field));return R?ve(R,f.appId):ot(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(u.field);let f=s.get(e.from.appId)?.get(de(e.from,u.field));return f?ve(f,e.from.appId):ot(u.field)}let d=o.flatMap(f=>{if(f.cteName!==null){let g=r?.get(f.cteName),y=g?.columns.includes(u.field)?g.columnMeta?.get(u.field):void 0;return y?[y]:[]}let R=s.get(f.appId)?.get(de(f,u.field)),E=R?ve(R,f.appId):ot(u.field);return E?[E]:[]});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(Ge(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")d=Q("number");else if(u.type==="WINDOW_COL")d=gR(u,l);else if(u.type==="GROUPING_COL")d=Q("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")d=Q("string");else if(u.type==="STRFUNC_COL")d=bn(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")d=qe();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(R=>pr(R.result,l));u.expr.elseResult&&f.push(pr(u.expr.elseResult,l)),d=is(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(d=Nn(u.arg,l)):d=u.func==="GROUP_CONCAT"?Q("string"):Q("number"));d?.semantics&&c.set(u.alias,d.semantics)}let p=new Map;for(let u of i){let d=c.get(u)??l(Ge(u))?.semantics;if(!d){let R=Ge(u);R.tableAlias===null&&a.has(R.field)&&p.set(u,ee({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=d;if(d.fieldType==="STATUS"&&d.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await os(d.source.appId,t,n);R.enable&&R.states!==null&&(f={...d,optionOrder:new Map(R.states.map(E=>[E.name,E.index]))})}p.set(u,f)}return p}async function Li(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([yT(e,t,n),mT(e,t,n),gT(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function yT(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 Hu(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 Hu(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}async function mT(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 xE(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 xE(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}function NR(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 AT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function hT(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||AT.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function lt(e,t,n,r){let i=await te(e,n,r);return hT(e,t,i),i}async function vt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?At(e,r,i):void 0}function Cn(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=Fe(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 ST(e,t,n,r,i){let o=await lt(e.appId,e.fields,t,r),a=await Qr({statement:e,fieldInfos:o,dmlMaxRows:Je(n.dmlMaxRows,"dmlMaxRows",Ut),dmlMaxSubtableRows:Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),statementNumber:i,loadNumberPrecision:()=>At(e.appId,t,r)});return XT(e,a,o)}async function TT(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await PR(e,t,n,r,i);return ZT(e,a,o)}async function PR(e,t,n,r,i){let o=await lt(e.appId,e.fields,t,r),a=new Map(o.map(g=>[g.code,g.fieldType])),s=vR(e),l=new Set;for(let g of s){let y=Pn(g,e.keyFields.map(m=>a.get(m)==="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 Gi(e.appId,e.keyFields,s,t,n,a),p=s.map(g=>Fi(c,g)),u=new Map,d=[...new Set(p.filter(g=>g!==void 0))],f=["$id","$revision",...o.filter(g=>!g.inSubtable&&g.fieldType!=="FILE").map(g=>g.code)];for(let g of Ki(d,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${g.join(",")}) limit 500`,fields:[...new Set(f)]});for(let m of y.records){let S=Number(m.$id?.value);Number.isSafeInteger(S)&&S>0&&u.set(S,m)}}let R=p.map((g,y)=>({sourceRowIndex:y,...g===void 0?{}:{targetId:g,snapshot:u.get(g)}})),E=await hf({statement:e,matches:R,fieldInfos:o,dmlMaxRows:Je(n.dmlMaxRows,"dmlMaxRows",Ut),dmlMaxSubtableRows:Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),statementNumber:i,loadNumberPrecision:()=>At(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function IT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await lt(e.appId,e.fields,t,r),o=await Qr({statement:e,fieldInfos:i,dmlMaxRows:Je(n.dmlMaxRows,"dmlMaxRows",Ut),dmlMaxSubtableRows:Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),loadNumberPrecision:()=>At(e.appId,t,r)}),a=Fl(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:as(a),applyDiagnostic:a}))throw new fe("INSERT",o.guards.parentRows);let s=await bf(o,t,a);return{...s,diagnostic:He(a,s)}}async function wT(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await PR(e,t,n,r,1),o=Gl(i);if(n.confirm){let s=as(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new fe("UPDATE",i.guards.parentRows)}let a=await Nf(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:He(o,a)}}function bT(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 as(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=bT(n?xa(n):[],r?xa(r):[]),a=NT(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=xa(n),f=xa(r);return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:d.reduce((R,E)=>R+E.appendRows,0),tables:d},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),addedSubtableRows:f.reduce((R,E)=>R+E.appendRows,0),tables:f,deletedRows:f.reduce((R,E)=>R+E.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return u}function xa(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=In(t,"APPEND"),r=In(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function In(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function NT(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:In(n,"ADD"),removedValues:In(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 Ic(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return ST(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return TT(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await DR(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await wc(e,t,n,r,i,o)).result}var _i=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function wc(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(v=>v.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(v=>v.field):e.fields,u=await lt(e.appId,p,t,r);e.type==="UPDATE"&&await lr(e,t,r);let d=new Map(u.map(v=>[v.code,v])),f=await vt(e.appId,p,u,t,r),R=pt(u,c),E=oE(R),g=(await PT(e,l,t,n,r,i,d,e.type==="UPDATE"?E:void 0)).sort((v,h)=>v.rowNumber-h.rowNumber),y=g.filter(v=>v.mode==="update"),m=e.type==="UPDATE"?LT:e.type.startsWith("UPSERT")?v=>_T(v,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??m,A=y.length>0&&S!==void 0,I=new Map;if(A){Ol(y,p,u);let v=await S({appId:e.appId,candidates:y,fields:E}),h=new Map;for(let N of y){if(N.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${N.rowNumber}).`);let U=v.get(N.targetId);if(!U)throw new Error(`InternalError: update-mode snapshot is missing for record ${N.targetId}.`);let O=aE(U,N.record??{});h.set(N.rowNumber,O)}f===void 0&&[...h.values()].some(N=>En(N,R))&&(f=await At(e.appId,t,r));for(let N of y){let U=h.get(N.rowNumber);if(!U)throw new Error(`InternalError: validation post-image is missing for row ${N.rowNumber}.`);I.set(N.rowNumber,Rn(U,R,f,o,N.rowNumber,l))}}let w=Ll(g,l,c,p,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!A}),{errors:D,invalidRows:P,invalidRowNumbers:M}=w;if(A){let v=new Map(w.candidateResults.map(h=>[h.rowNumber,h]));D=[],M=new Set;for(let h of g){let N=v.get(h.rowNumber);if(!N)throw new Error(`InternalError: validation detail is missing for row ${h.rowNumber}.`);if(h.mode==="create"){let F=[...N.preErrors,...N.builtInErrors,...N.checkErrors];D.push(...F),F.length>0&&M.add(h.rowNumber);continue}let U=I.get(h.rowNumber);if(!U)throw new Error(`InternalError: prepared post-image validation is missing for row ${h.rowNumber}.`);let O=sE({rowNumber:h.rowNumber,setFields:p,normalizedPostImage:U.normalizedRecord,preErrors:N.preErrors,postImageErrors:U.errors,checkErrors:N.checkErrors});h.record=O.writeRecord,D.push(...O.errors);for(let F of O.invalidRowNumbers)M.add(F)}P=M.size}let _=[...c,...Zn],C={type:"VALIDATION",operation:l,validatedRows:g.length,validRows:g.length-P,invalidRows:P,errorCount:D.length,columns:_,errors:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},k=new Map;for(let v of c){if(v==="$id"){k.set(v,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ee({fieldType:"RECORD_NUMBER"})});continue}let h=d.get(v);h&&k.set(v,ve(h,e.appId))}let b=new Set(["$err_statement","$err_row"]);for(let v of Zn)k.set(v,Q(b.has(v)?"number":"string"));return Ln.set(C,k),{result:C,candidates:g,invalidRowNumbers:M,columnMeta:k}}async function Yu(e,t,n,r,i,o){let a=await wc(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");mt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??ze,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new _i(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let c=a.candidates.filter(R=>!a.invalidRowNumbers.has(R.rowNumber));if(n.confirm){let R=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(c.length,R))throw new fe(R,c.length)}let p={affectedRows:c.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let R=[];for(let E=0;E<c.length;E+=100){let g=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(y=>y.record)});R.push(g.ids)}return{type:"INSERT",createdIds:R,insertedCount:R.flat().length,...p}}if(e.type==="UPDATE"){let R=c.map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:E.targetId,record:E.record}});for(let E=0;E<R.length;E+=100)await t.putRecords({app:e.appId,records:R.slice(E,E+100)});return{type:"UPDATE",updatedCount:R.length,...p}}let u=c.filter(R=>R.mode==="create"),d=c.filter(R=>R.mode==="update").map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:R.targetId,record:R.record}}),f=0;for(let R=0;R<u.length;R+=100){let E=await t.postRecords({app:e.appId,records:u.slice(R,R+100).map(g=>g.record)});f+=E.ids.length}for(let R=0;R<d.length;R+=100)await t.putRecords({app:e.appId,records:d.slice(R,R+100)});return{type:"UPSERT",insertedCount:f,updatedCount:d.length,...p}}async function PT(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return OT(e,n,r,i,o,s);let l,c,p,u,d;if(e.type==="INSERT"||e.type==="UPSERT")FE(e,e.fields),d=new Map(e.fields.map(A=>[A,a.get(A)?.fieldType??""])),On(e,d),l=e.values.map(A=>A.map((I,w)=>I.type==="CASE_VALUE"?Jt(I.expr,{},a.get(e.fields[w])?.fieldType):I));else{let A=await Nc.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 be("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");FE(e,A.columns),c=A.rows,p=A.importPresence,u=A.importRowErrors;let w=A.columnMeta;d=new Map(A.columns.map(D=>{let P=w?.get(D),M=P?.fieldType??(P?.semantics?.compareMode==="number"||P?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[D,M]})),On(e,d),l=A.rows.map(D=>A.columns.map(P=>D[P]??""))}let f=l.map((A,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((w,D)=>p&&!p[I]?.has(w)?[]:[[w,A[D]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:c?.[I]??Object.fromEntries(e.fields.map((w,D)=>[w,ct(A[D])])),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 R=new Map([...a].map(([A,I])=>[A,I.fieldType])),E=f.map(A=>e.keyFields.map(I=>ct(A.payload.get(I)))),g=e.keyFields.map(A=>R.get(A)==="NUMBER"),y=new Map;for(let A of E){let I=Pn(A,g);y.set(I,(y.get(I)??0)+1)}let m=ts.has(e);if(m&&[...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 Gi(e.appId,e.keyFields,E,n,r,R);return f.forEach((A,I)=>{let w=E[I],D=Fi(S,w);A.mode=D===void 0?"create":"update",D!==void 0&&(A.targetId=D),e.keyFields.forEach((P,M)=>{w[M]===""&&A.preErrors.push({field:P,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${P} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!m&&(y.get(Pn(w,g))??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 bc(e){return e.checkGroups?Xn(e.checkGroups):[]}function FE(e,t){let n=new Set(t);for(let r of bc(e)){if(r.tableAlias!==null)throw be(`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 be(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var CT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function On(e,t){if(e.checkGroups)for(let n of Kd(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(CT.has(i??""))throw be(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function OT(e,t,n,r,i,o){if(e.from)return vT(e,e.from,t,n,r,i,o);await KR(e.assignments,t,n,r);let a=await Le(e.appId,t,r),s=CR(e,a);On(e,ju(a,e.appId));let l,c=new Map,p=new Map;if(Jo(e)){let u=fl(e),d=[...new Set([...u.fields,...s,...o??[]])],f=await tt(t.getRecords,u.app,u.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Wa(f.records),c=p,l=Rl(e,f.records,a).flatMap(R=>R.records)}else{let u=Vr(e);if(s.length>0){let d=[...new Set(["$id",...s,...o??[]])],f=await tt(t.getRecords,u.app,u.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Wa(f.records),c=p,l=Wr(e,[...c.keys()],a).flatMap(R=>R.records)}else if(o){let d=await tt(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Wa(d.records),l=Wr(e,[...p.keys()],a).flatMap(f=>f.records)}else{let d=await da(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Wr(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:DT(c.get(u.id),e.appId),evaluationFieldTypes:ju(a,e.appId)}))}function Wa(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 LT(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 _T(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 Ue(`\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 Ki(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 CR(e,t){if(e.from)return[];let n=new Set;for(let r of bc(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw be(`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 be(`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 DT(e,t){if(!e)return{};let n=Ot(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function ju(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function vT(e,t,n,r,i,o,a){let s=await ZR(e,t,n,i,o);On(e,s.evaluationTypes);let l=await OR(e,t,n,r,i,o,a),c=await Le(e.appId,n,i),p=yl(e,l,c).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),d=a?Wa(l.map(f=>f.target)):new Map;return p.sort((f,R)=>f.id-R.id).map((f,R)=>({rowNumber:R+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(E=>[E.field,f.record[E.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:d.get(f.id),evaluationRow:kI(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var UT=wR,kT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function OR(e,t,n,r,i,o,a){let s=await MT(e,t,n,i),l=await ZR(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 xT(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 w=GE(I[t.joinKeyField],s,"source");if(d.has(w))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${w}.`);d.set(w,I),f.set(w,String(I[t.joinKeyField]).trim())}if(d.size===0)return[];let R=r.maxRecords??1e4,E=[...new Set([...tI(e),...l.targetFields,...a??[]])],g=t.targetFilter===null?"":Vr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],m=new Set,S=0;for(let I of Ki([...f.values()],UT)){let w=`${t.targetJoinField} in (${I.map(Oi).join(",")})`,D=g?`(${w}) and (${g})`:w,P=await tt(n.getRecords,e.appId,D,E,{maxRecords:R,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=P.records.length,S>R)throw new Ue(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${R} \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 P.records){let _=M.$id?.value;if(typeof _!="string"||_==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");m.has(_)||(m.add(_),y.push(M))}}let A=[];for(let I of y){let w=I[t.targetJoinField]?.value,D=GE(w,s,"target");if(D===null)continue;let P=d.get(D);P!==void 0&&A.push({target:I,source:P})}return A}async function MT(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await te(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 xT(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(!p.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return p.rows}let s=await Le(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(kT.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${p}).`)}return(await tt(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>Ot(p,null))}function GE(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=Te(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function Bi(e,t,n,r,i){let o=await wc(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 fe(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(R=>R.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 FT(e,t,n,r){if(e.applyBlocks?.length)return IT(e,t,n,r);if(e.checkGroups?.length)return Bi(e,t,n,r);if(e.subtableCode)return iI(e,t,n,r);let i=await lt(e.appId,e.fields,t,r),o=await vt(e.appId,e.fields,i,t,r),a=await Le(e.appId,t,r),s=zo(e,a);Cn(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 GT(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:ke},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function LR(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=dE(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(V=>V.kind==="SUBTABLE").map(V=>V.subtableCode));if(e.replaceSubtables.some(V=>!x.has(V)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let V of e.targets.filter($=>$.kind==="SUBTABLE"))if(!V.rowIdSourceHeader||!e.replaceSubtables.includes(V.subtableCode))throw new Error(`ArgumentError: CSV subtable ${V.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 te(e.appId,t,r),f=u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children),R=d.some(x=>f.includes(x.code)&&x.fieldType==="NUMBER")?await At(e.appId,t,r):void 0,E=await Da(o,new Map),g=e.source.kind==="JSON"?yE(e.source,E,u,n.maxRecords??1e4):mE(e.source,E,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",m=TE(g,u,d,R,y);if(e.source.kind==="CSV")return KT(e,g,m,d,t,n,i);Au(m,e.rejectLimit);let S=[...new Set(u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children))],A=Su(m.errors,S),I=[...S,...hu],w=m.invalidParentRows.size,D={preflight:"ACTUAL_DATA",parents:{total:m.parents.length,valid:m.parents.length-w,invalid:w,mutationCandidates:m.parents.filter(x=>x.valid).length},tables:Object.fromEntries(m.tableCounts),writesKintone:!1},P={type:"VALIDATION",operation:y,validatedRows:m.parents.length,validRows:m.parents.length-w,invalidRows:w,errorCount:A.length,columns:I,errors:A,importDetail:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&mt(i,e.validationErrorTable,I,A,n.tempTableMaxRows??ze,new Map),e.validateOnly)return P;if(wE(g),m.errors.length>0&&!e.onErrorSkip){let x=m.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.");mt(i,e.errorTable,I,A,n.tempTableMaxRows??ze,new Map)}let M=m.parents.filter(x=>x.valid),_=new Map(d.map(x=>[x.code,x.fieldType])),C=M.map(()=>{});if(e.keyFields){for(let L of e.keyFields)if(!e.fields.includes(L))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${L}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let x=e.keyFields.map(L=>_.get(L)==="NUMBER"),V=new Set,$=M.map(L=>e.keyFields.map(W=>String(L.top[W]?.value??"")));for(let L of $){let W=Pn(L,x);if(V.has(W))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");V.add(W)}let K=await Gi(e.appId,e.keyFields,$,t,n,_);$.forEach((L,W)=>{C[W]=Fi(K,L)})}let k=u.filter(x=>x.kind==="SUBTABLE").map(x=>x.subtableCode),b=new Map,v=C.filter(x=>x!==void 0);for(let x of Ki([...new Set(v)],100)){let V=await t.getRecords({app:e.appId,query:`$id in (${x.join(",")}) limit 500`,fields:["$id","$revision",...k]});for(let $ of V.records){let K=Number($.$id?.value),L=Number($.$revision?.value);Number.isFinite(K)&&b.set(K,{id:K,...Number.isFinite(L)?{revision:L}:{},record:$})}}let h=bE(M,C,b),N={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(V=>V.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:N}))throw new fe(e.keyFields?"UPDATE":"INSERT",h.length)}let U=x=>new Map(Object.entries(x).map(([V,$])=>[V,$.value])),O=x=>IE(U(x.top),new Map([...x.subtables].map(([V,$])=>[V,$.map(K=>({values:U(K)}))]))),F=h.filter(x=>x.mode==="INSERT"),H=h.filter(x=>x.mode==="UPDATE"),z=[];for(let x=0;x<F.length;x+=100){let V=await t.postRecords({app:e.appId,records:F.slice(x,x+100).map(O)});z.push(V.ids)}for(let x=0;x<H.length;x+=100)await t.putRecords({app:e.appId,records:H.slice(x,x+100).map(V=>({id:V.targetId,...V.revision===void 0?{}:{revision:V.revision},record:O(V)}))});return e.keyFields?{type:"UPSERT",insertedCount:z.flat().length,updatedCount:H.length,affectedRows:h.length,skippedRows:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:N}:{type:"INSERT",createdIds:z,insertedCount:z.flat().length,affectedRows:h.length,skippedRows:m.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:N}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return BT(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:GT(),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};ts.set(s,l);let c=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await Ic(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&mt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??ze,Ln.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",Yu(s,t,n,r,i,1));return c(u)}let p=await(s.type==="UPSERT_SELECT"?Lc(s,t,n,r,i):Pc(s,t,n,r,i));return c(p)}async function KT(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");NE(t.records);let s=t.records.map(b=>b.recordNumberSourceValue??""),l=wu(s,e.recordNumberSourceHeader),c=[...e.replaceSubtables],p=[...new Set(r.filter(b=>!b.inSubtable&&b.fieldType==="SUBTABLE").map(b=>b.code))],u=await De(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 b of u){let v=Number(b.$id?.value),h=Number(b.$revision?.value);if(Number.isFinite(v)){d.set(v,{id:v,...Number.isFinite(h)?{revision:h}:{},record:b});for(let N of p){let U=b[N]?.value;if(Array.isArray(U)){for(let O of U)if(O.id){let F=f.get(O.id)??[];F.push({parentId:v,table:N}),f.set(O.id,F)}}}}}let R=l.normalized.map(b=>b===null?void 0:Number(b)),E=n.parents.map((b,v)=>{let h=[...b.errors];for(let U of l.errors[v])h.push({operation:"UPDATE",parentRow:b.parentRow,field:U.field,code:U.code,message:U.message,sourceValues:t.records[v].top});let N=R[v];return N!==void 0&&!d.has(N)&&h.push({operation:"UPDATE",parentRow:b.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${N} does not exist in APP${e.appId}`,sourceValues:t.records[v].top}),{...b,valid:h.length===0,errors:h}}),g=PE(t.records,E,R,d,f),y=g.flatMap(b=>[...b.errors]),m=new Set(g.filter(b=>!b.valid).map(b=>b.parentRow)),S={...n,parents:E,errors:y,invalidParentRows:m};Au(S,e.rejectLimit);let A=g.filter(b=>b.valid),I=g.flatMap(b=>b.tables),w=(b,v)=>I.filter(h=>h.table===b).reduce((h,N)=>h+Number(N[v]),0),D=Object.fromEntries(c.map(b=>[b,{existingRows:w(b,"existingRows"),inputRows:w(b,"inputRows"),updateRows:w(b,"updateRows"),addRows:w(b,"addRows"),deleteRows:w(b,"deleteRows"),rowIdNotFound:w(b,"rowIdNotFound")}])),P={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:A.length,insertedParents:0,updatedParents:A.length,hasDeletes:A.some(b=>b.tables.some(v=>v.deleteRows>0)),totalDeleteRows:A.flatMap(b=>b.tables).reduce((b,v)=>b+v.deleteRows,0),rowIdNotFound:A.flatMap(b=>b.tables).reduce((b,v)=>b+v.rowIdNotFound,0),invalidParents:m.size,parents:A.map(b=>({parentRow:b.parentRow,mode:"UPDATE",targetId:b.targetId,tables:b.tables}))},M=[...new Set(e.targets.flatMap(b=>b.kind==="FIELD"?[b.field]:b.children))],_=Su(y,M),C=[...M,...hu];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&mt(a,e.validationErrorTable,C,_,o.tempTableMaxRows??ze,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-m.size,invalidRows:m.size,errorCount:_.length,columns:C,errors:_,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:A.length,invalid:m.size,mutationCandidates:A.length},tables:D,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:P.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let b=y[0];throw new Error(`DmlValidationError: ${b.code} ${b.message} (row=${b.parentRow}, field=${b.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");mt(a,e.errorTable,C,_,o.tempTableMaxRows??ze,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:P}))throw new fe("UPDATE",A.length)}let k=b=>new Map(Object.entries(b).map(([v,h])=>[v,h.value]));for(let b of A){let v=Tu(k(b.top),new Map([...b.subtables].map(([h,N])=>[h,N.map(U=>({...U.rowId?{rowId:U.rowId}:{},values:k(U.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:b.targetId,...b.revision===void 0?{}:{revision:b.revision},record:v}]})}return{type:"UPDATE",updatedCount:A.length,affectedRows:A.length,skippedRows:m.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}async function BT(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 lt(e.appId,e.fields,n,i),s=await vt(e.appId,e.fields,a,n,i),l=await Da(t,new Map),c=gu(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),p=c.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let u=wu(p,e.recordNumberSourceHeader),d=new Set,f=[...new Set(u.normalized.filter(P=>P!==null))];for(let P=0;P<f.length;P+=100){let M=f.slice(P,P+100),_=await n.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id"]});for(let C of _.records){let k=C.$id?.value;typeof k=="string"&&k!==""&&d.add(k.replace(/^0+(?=\d)/,""))}}let R=new Map(a.map(P=>[P.code,P])),E=new Map(e.fields.map(P=>[P,R.get(P)?.fieldType??"SINGLE_LINE_TEXT"])),g=c.rows.map((P,M)=>{let _=u.normalized[M],C=[...c.importRowErrors?.[M]??[],...u.errors[M]];return _!==null&&!d.has(_)&&C.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${_} does not exist in APP${e.appId}`}),{rowNumber:M+1,operation:"UPDATE",mode:"update",..._!==null&&d.has(_)?{targetId:Number(_)}:{},payload:new Map([[e.recordNumberSourceHeader,p[M]],...e.fields.map(k=>[k,P[k]??""])]),preErrors:C,record:{},evaluationRow:P,evaluationFieldTypes:E}}),y=[e.recordNumberSourceHeader,...e.fields],m=Ll(g,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),S=[...y,...Zn],A={type:"VALIDATION",operation:"UPDATE",validatedRows:g.length,validRows:g.length-m.invalidRows,invalidRows:m.invalidRows,errorCount:m.errors.length,columns:S,errors:m.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&&mt(o,e.validationErrorTable,S,m.errors,r.tempTableMaxRows??ze,new Map),A}if(!e.onErrorSkip&&m.invalidRows>0){let P=m.errors[0];throw new Error(`DmlValidationError: ${P.$err_code} ${P.$err_message} (row=${P.$err_row}, field=${P.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(mt(o,e.errorTable,S,m.errors,r.tempTableMaxRows??ze,new Map),e.rejectLimit!=null&&m.invalidRows>e.rejectLimit)throw new _i(`rejected rows (${m.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let I=g.filter(P=>!m.invalidRowNumbers.has(P.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new fe("UPDATE",I.length);let w=I.map(P=>({id:P.targetId,record:P.record}));for(let P=0;P<w.length;P+=100)await n.putRecords({app:e.appId,records:w.slice(P,P+100)});let D={type:"UPDATE",updatedCount:w.length,...e.onErrorSkip?{affectedRows:w.length,skippedRows:m.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(D,{insertedCount:0,importAudit:c.importAudit}),D}async function $T(e,t,n,r,i,o){let a=ts.get(e);if(!a){let E=i&&i.size>0?await Dt(e.select,t,n,i,r,!0):await Zt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:Re.get(E)}}let s=await Da(a.handle,a.cache),l=n.maxRecords??1e4,c=new Map((o??[]).map(E=>[E.code,E])),p=e.fields.map(E=>({code:E,fieldType:c.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?Ru(a.source,s,p,l):gu(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let d=CE(a.source.projection),f=new Map(i??[]);f.set(Iu,u);let R=await Dt(d,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:R.rows,columns:R.columns,columnMeta:Re.get(R)}}var Nc={materialize:$T};function _R(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 Pc(e,t,n,r,i){if(e.checkGroups?.length)return Bi(e,t,n,r,i);let o=await lt(e.appId,e.fields,t,r),a=await vt(e.appId,e.fields,o,t,r),s=await Nc.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(_R(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 fe("INSERT",l.length);let p=await Le(e.appId,t,r),u=l.map((f,R)=>{let E={};return e.fields.forEach((g,y)=>{if(s.importPresence&&!s.importPresence[R]?.has(g))return;let m=f[c[y]]??"";E[g]={value:NR(m,p.get(g))}}),E});u.forEach(f=>Cn([f],e.fields.filter(R=>R in f),o,a));let d=[];for(let f=0;f<u.length;f+=100){let R=u.slice(f,f+100),E=await t.postRecords({app:e.appId,records:R});d.push(E.ids)}return{type:"INSERT",createdIds:d,insertedCount:d.flat().length}}async function qu(e,t,n,r,i){if(e.applyBlocks?.length)return DR(e,t,n,r);if(e.checkGroups?.length&&st(e.where)){let R=await lt(e.appId,e.assignments.map(g=>g.field),t,r);await vt(e.appId,e.assignments.map(g=>g.field),R,t,r);let E=await Le(e.appId,t,r);return CR(e,E),On(e,ju(E,e.appId)),await lr(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Bi(e,t,n,r,i);if(e.subtableCode)return await lr(e,t,r),oI(e,t,n,r);let o=await lt(e.appId,e.assignments.map(R=>R.field),t,r),a=e.assignments.map(R=>R.field),s=await vt(e.appId,a,o,t,r);if(await lr(e,t,r),st(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return eI(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await KR(e.assignments,t,n,r);let c=await Le(e.appId,t,r);if(Jo(e)){let R=fl(e),g=(await tt(t.getRecords,R.app,R.query,[...R.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=Rl(e,g,c);if(Cn(y.flatMap(m=>m.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(g.length,"UPDATE"))throw new fe("UPDATE",g.length);for(let m of y)await t.putRecords(m);return{type:"UPDATE",updatedCount:g.length}}let p=Vr(e),d=(await da(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Wr(e,d,c);if(Cn(f.flatMap(R=>R.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new fe("UPDATE",d.length);for(let R of f)await t.putRecords(R);return{type:"UPDATE",updatedCount:d.length}}async function DR(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Tt(e.where))return VT(e,t,n,r,i);let o=await te(e.appId,t,r),a=Pt(e,o),s=Qo(e,o),l=Il(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}.`);na(c.records[0]);let u=rf({statement:e,snapshot:c.records[0],fieldInfos:o,metadata:a}),d=pt(o,e.assignments.map(I=>I.field)),f=En(u.postImage,d)?await At(e.appId,t,r):void 0,R=Rn(u.postImage,d,f,i);if(!e.validateOnly&&R.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:R.columns,errors:R.errors})}`);let E=Je(n.dmlMaxRows,"dmlMaxRows",Ut),g=Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),y=u.parentRows>E||u.changedSubtableRows>g;if(e.validateOnly){let I=ei({plans:[u],records:qr(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}}),w={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:R.invalidRows===0?1:0,invalidRows:R.invalidRows===0?0:1,errorCount:R.errorCount,columns:[...R.columns],errors:R.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:Di(I.branches[0]),guards:vi(I.branches[0]),deletedRows:{total:u.tables.reduce((D,P)=>D+P.deletedRows,0),parentRows:u.tables.some(D=>D.deletedRows>0)?1:0},diagnostic:I};return Ln.set(w,ss(R.columns,o,e.appId)),w}if(u.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${E}).`);if(u.changedSubtableRows>g)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${g}).`);let m=ea(u,R.normalizedRecord),S=qr(m),A=ei({plans:[m],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:g,wouldExceed:y}});if(n.confirm){let I=as(A,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:A}))throw new fe("UPDATE",u.parentRows)}return await t.putRecords(S),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:He(A,{successfulChunks:1,successfulParents:u.parentRows})}}async function VT(e,t,n,r,i){let o=Je(n.dmlMaxRows,"dmlMaxRows",Ut),a=Je(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),s=await te(e.appId,t,r),l=Pt(e,s),c;if(Qa(e))c=await jT(e,t,n,s,r);else{let f=Qo(e,s),R=Vr(e).query,E=o+1;c=await De(t.getRecords,e.appId,R,[...f],{pageSize:Math.min(500,E),parallel:n.fetchParallel??1,maxRecords:E,stopAfter:E,onLimit:"error"})}if(!e.validateOnly&&c.length>o)throw new Error(`ArgumentError: APPLY parent rows (${c.length}) exceed dmlMaxRows (${o}).`);let p=await aa({statement:e,snapshots:c,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>At(e.appId,t,r)});if(e.validateOnly)return QT(e,p,s);mp("phase15b",e);let u=ei(p);if(n.confirm){let f=as(u);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new fe("UPDATE",p.guards.parentRows)}let d=await wf(p,t,u);return{...d,diagnostic:He(u,d)}}function Qa(e){return(e.applyBlocks?.length??0)>0&&!Tt(e.where)&&(Ft(e.where)||Ie(e.where))}function WT(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Qa(t)&&Ie(t.where)}var HT=`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
|
|
12
12
|
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
|
|
13
|
-
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 DT(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${_T}`)}async function vT(e,t,n,r,i){let o=r.filter(R=>!R.inSubtable),a=new Map(o.map(R=>[R.code,R])),s=new Map(o.map(R=>[R.code,R.fieldType])),l=new Map(o.flatMap(R=>R.optionOrder?[[R.code,new Set(Object.keys(R.optionOrder))]]:[])),c=xl(e.where,{fieldTypes:s,fieldOptions:l});DT(c);let p=c.prefilter===null?"":Y(c.prefilter),u=new Set(Go(e,r));for(let R of UT(e.where))u.add(R);let d=await kT(e.appId,e.where,a,t,i);return(await De(t.getRecords,e.appId,p,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(R=>({snapshot:R,row:Pt(R,null)})).filter(({row:R})=>ie(e.where,R,d.fieldTypeResolver,c.appliedKlikes,d.fieldSemanticsResolver)).map(({snapshot:R})=>R)}function UT(e){return zu(e)}async function kT(e,t,n,r,i){let s=[...MT(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await pc(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return Yn(Q({fieldType:"__ID__"}),e,"$id");let u=n.get(p.field);if(!u)return;let d=u.semantics??Q(u),f=u.fieldType==="STATUS"&&s?{...d,optionOrder:s}:d;return Yn(f,e,u.code)}}}function MT(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 FT(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]:[...ct(n,e.fields).payloadFields,...Wr],a=t.guards.parentRows,s=Nl(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:Ci(l),guards:Oi(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return Nn.set(c,Za(o,n,e.appId)),c}function xT(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]:[...ct(n,e.assignments.map(c=>c.field)).payloadFields,...Wr],s=jr(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:Ci(s.branches[0]),guards:Oi(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 Nn.set(l,Za(a,n,e.appId)),l}function GT(e,t,n){let r=t.create.validations.flatMap(R=>R.errors),i=t.update.validations.flatMap(R=>R.errors),o=[...r,...i].map(R=>({...R,$err_operation:"UPSERT"})),a=new Set(o.map(R=>R.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...ct(n,e.fields).payloadFields,...Wr],l=Pl(t),c=l.branches.find(R=>R.branch==="insert"),p=l.branches.find(R=>R.branch==="update"),u=Ci(c),d=Ci(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:Oi(c)},update:{apply:d,guards:Oi(p)}},deletedRows:{total:t.update.plans.reduce((R,E)=>R+E.tables.reduce((g,y)=>g+y.deletedRows,0),0),parentRows:t.update.plans.filter(R=>R.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return Nn.set(f,Za([...s],n,e.appId)),f}function Ci(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:An(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:An(t,"ADD"),removedValues:An(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Oi(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 vt=100,Pe=500;function Je(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 Za(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:Q({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ve(s,n));continue}o.set(a,J(i.has(a)?"number":"string"))}return o}async function KT(e,t,n,r,i,o){let a=await mR(e,t,n,r,i,o),s=await _e(e.appId,n,i),l=ol(e,a,s),c=e.assignments.map(d=>d.field),p=await X(e.appId,n,i),u=await Dt(e.appId,c,p,n,i);if(wn(l.flatMap(d=>d.records.map(f=>f.record)),c,p,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new de("UPDATE",a.length);for(let d of l)await n.putRecords(d);return{type:"UPDATE",updatedCount:a.length}}function BT(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 $T(e,t,n,r){if(await or(e,t,r),Lt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return YT(e,t,n,r);let i=Ld(e),a=(await ra(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 de("DELETE",a.length);let s=_d(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function VT(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return cT(e,t,n,r);if(e.checkGroups?.length)return Fi(e,t,n,r);let i=await st(e.appId,e.fields,t,r),o=await Dt(e.appId,e.fields,i,t,r),a=[],s=[],l=await _e(e.appId,t,r),c=TR(e),p=await ki(e.appId,e.keyFields,c,t,n,l);if(e.values.forEach((d,f)=>{let R={};e.fields.forEach((g,y)=>{let m=d[y];m.type==="CASE_VALUE"?R[g]={value:qt(m.expr,{},l.get(g))}:R[g]={value:wt(m,l.get(g))}});let E=Ui(p,c[f]);E!==void 0?s.push({id:E,record:R}):a.push(R)}),wn([...a,...s.map(d=>d.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let d=a.length+s.length;if(!await n.confirm(d,"UPDATE"))throw new de("UPDATE",d)}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)});u.push(f.ids)}for(let d=0;d<s.length;d+=100)await t.putRecords({app:e.appId,records:s.slice(d,d+100)});return{type:"UPSERT",insertedCount:u.flat().length,updatedCount:s.length}}function TR(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"?H(i):i.type==="CASE_VALUE"?Fe(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function yc(e,t,n,r){if(t.length===0)return;let i=await _e(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 WT(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 De(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=es(a),l=new Map;for(let p of e.values){let u=OE(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((E,g)=>{if(E!=="_pid"){if(E.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[E]={value:OE(p[g])}}});let R=l.get(u);R?R.push(f):l.set(u,[f])}let c=[];for(let[p,u]of l.entries()){let d=s.get(p),R=[...xi(d,i),...u];c.push(IR(e.appId,p,Gi(d),i,R))}for(let p of c)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function HT(e,t,n,r){let i=e.subtableCode;if(!Ai(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Ot(e.where,o);for(let d of e.assignments)d.value.type==="CASE_VALUE"&&$a(d.value.expr,o);let a=await yc(e.appId,o,t,r),s=await De(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=mc(s,i).filter(d=>ie(e.where,d.flat,a));if(n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new de("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 R={};for(let E of e.assignments){if(E.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);R[E.field]={value:xo(E.value,d.flat,a)}}f.set(d.rowId,R)}let u=es(s);for(let[d,f]of p.entries()){let R=u.get(d);if(!R)continue;let g=xi(R,i).map(y=>{let m=y.id??"";if(!m)return y;let A=f.get(m);return A?{id:m,value:A}:{id:m}});await t.putRecords(jT(e.appId,d,Gi(R),i,g))}return{type:"UPDATE",updatedCount:c.length}}async function YT(e,t,n,r){let i=e.subtableCode;if(!Ai(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Ot(e.where,o);let a=await yc(e.appId,o,t,r),s=await De(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=mc(s,i).filter(d=>ie(e.where,d.flat,a));if(n.confirm&&!await n.confirm(c.length,"DELETE"))throw new de("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=es(s);for(let[d,f]of p.entries()){let R=u.get(d);if(!R)continue;let E=xi(R,i),g=new Set(f),y=E.filter((m,A)=>!g.has(A));await t.putRecords(IR(e.appId,d,Gi(R),i,y))}return{type:"DELETE",deletedCount:c.length}}function es(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function mc(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=Gi(r),a=xi(r,t);for(let s=0;s<a.length;s++){let l=a[s],c={...Ko(l,s),_pid:i};for(let[p,u]of Object.entries(r))p!==t&&(c[`_p.${p}`]=xu(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:c})}}return n}function xi(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Gi(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function IR(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function jT(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function qT(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 OE(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?H(e):e.type==="CASE_VALUE"?Fe(e.expr,{}):e.elements.map(t=>t.value).join(",")}function xu(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 Ai(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Ai(e.left)||Ai(e.right);case"NOT":case"GROUP":return Ai(e.expr);default:return!1}}async function zT(e,t,n,r){let i=[];Ot(e.where,i);let o=await yc(e.appId,i,t,r),a=await X(e.appId,t,r);if(Lt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??Q(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let R=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(R)??B("string")},c=await De(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=mc(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&&ie(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new de("UPDATE",u.size);let d=es(c);for(let f of u){let R=d.get(f);if(!R)continue;let g=xi(R,e.subtableCode).map((m,A)=>({row:m,i:A,flat:JT(R,e.subtableCode,m,A)}));g.sort((m,A)=>XT(m.flat,A.flat,e.by,l));let y=g.map(m=>m.row.id??"");await t.putRecords(qT(e.appId,f,Gi(R),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function JT(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}`]=xu(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=xu(a?.value);return i}function XT(e,t,n,r){for(let i of n){let o=LE(i.key,e),a=LE(i.key,t),s=i.key.type==="FIELD_NAME"?r(Ge(i.key.name)):i.key.type==="ARITH_KEY"?B("number"):i.key.type==="FUNC_KEY"?Sn(i.key.expr).semantics??B("string"):B("number"),l=tt(o,a,s??B("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function LE(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ue(e.expr,t));case"FUNC_KEY":return ce(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Ac(e,t,n,r,i){if(e.checkGroups?.length)return Fi(e,t,n,r,i);let o=await st(e.appId,e.fields,t,r),a=await Dt(e.appId,e.fields,o,t,r),s=await Rc.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(hR(s),c.length!==e.fields.length){let y=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${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],u=[],d=await _e(e.appId,t,r),f=l.map((y,m)=>{let A={};return e.fields.forEach((h,b)=>{if(s.importPresence&&!s.importPresence[m]?.has(h))return;let w=y[c[b]]??"";A[h]={value:RR(w,d.get(h))}}),A});f.forEach(y=>wn([y],e.fields.filter(m=>m in y),o,a));let R=f.map(y=>e.keyFields.map(m=>String(y[m]?.value??"")));if(ja.has(e)){let y=e.keyFields.map(A=>d.get(A)==="NUMBER"),m=new Set;for(let A of R){let h=In(A,y);if(m.has(h))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");m.add(h)}}let E=await ki(e.appId,e.keyFields,R,t,n,d);if(f.forEach((y,m)=>{let A=Ui(E,R[m]);A!==void 0?u.push({id:A,record:y}):p.push(y)}),n.confirm&&p.length+u.length>0){let y=p.length+u.length;if(!await n.confirm(y,"UPDATE"))throw new de("UPDATE",y)}let g=[];for(let y=0;y<p.length;y+=100){let m=await t.postRecords({app:e.appId,records:p.slice(y,y+100)});g.push(m.ids)}for(let y=0;y<u.length;y+=100)await t.putRecords({app:e.appId,records:u.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}var wR=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),bR=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 NR(e){let t=await e.getApps(),n=[...wR],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 PR(e,t,n){let r=await X(e.appId,t,n),i=[...bR],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 QT(e,t=!1){try{let n=new Ht(e).tokenize(),r=new Yt(n,{import:t}).parse();return kn("phase15b",r),et(r),r}catch(n){throw n instanceof Le||n instanceof T,n}}async function Li(e,t,n,r,i){let o=[];Fa(e,t,n,r,o,i),await Promise.all(o)}async function CR(e,t,n,r,i){let o=[];for(let a of e.columns)if(a.type==="CASE_COL")for(let s of a.expr.branches)o.push(Li(s.condition,t,n,r,i));await Promise.all(o)}function hi(e,t,n,r,i){return i!==void 0&&i.size>0?_t(e,t,n,i,r):Xt(e,t,n,r)}function Fa(e,t,n,r,i,o){if(e!==null)switch(e.type){case"BINARY":{let a=e.right;a.type==="SUBQUERY_IN_LIST"&&i.push(hi(a.query,t,n,r,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(c=>c[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(hi(a.query,t,n,r,o).then(s=>{if(s.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(s.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 l=s.columns[0]??"";a.resolved=s.rows[0]?.[l]??""}));break}case"LOGICAL":Fa(e.left,t,n,r,i,o),Fa(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":Fa(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(hi(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function OR(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Xt(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 LR(e,t,n,r,i){let o=new Map,a=[];for(let c=0;c<e.length;c++){let p=e[c];if(p.type!=="SCALAR_SUBQUERY_COL")continue;let u=JSON.stringify(p.query),d=o.get(u);d||(d=hi(p.query,t,n,r,i).then(f=>{if(f.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(f.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=f.columns[0]??"";return f.rows[0]?.[R]??""}),o.set(u,d)),a.push([c,d])}let s=await Promise.all(a.map(([,c])=>c)),l=new Map;return a.forEach(([c],p)=>l.set(c,s[p])),l}var _R=new WeakMap,DR=new WeakMap,Gu=new WeakMap,vR=new WeakMap,UR=new WeakMap;async function kR(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,c={...t,getFields:async w=>(a.add(w),t.getFields(w)),getProcessStatuses:async w=>(s.add(w),t.getProcessStatuses(w)),getNumberPrecision:async w=>(l.add(w),t.getNumberPrecision(w))},p=new Map,u=new Map,d=new Map,f=new Set,R=i??await Di(e,c,n),E=w=>R.nodes.find(C=>C.source===w||JSON.stringify(C.source)===JSON.stringify(w)),g=new Map(o??[]),y=new Set(o?.keys()??[]),m=async w=>{let C=[w.from,...w.joins.map(L=>L.table)];if(C.length>1&&w.columns.some(L=>L.type==="WILDCARD"||L.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let I=[];for(let L of C){if(L.cteName!==null){if(L.cteName===Qe)continue;let D=g.get(L.cteName);if(!D)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${L.cteName}.`);I.push(...D.columns);continue}let P=await X(L.appId,c,n);L.subtableCode?(I.push(...P.filter(D=>D.inSubtable&&(D.subtableCode===L.subtableCode||D.subtableCode===void 0)).map(D=>D.code)),I.push("_pid","_rid","_idx"),I.push(...P.filter(D=>!D.inSubtable).map(D=>`_p.${D.code}`))):(I.push(...P.filter(D=>!D.inSubtable).map(D=>D.code)),I.push(...oo))}return[...new Set(I)]},A=async w=>{if(w===null||typeof w!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let C=w;if(C.type==="SELECT"){let I=w,L=await m(I);if(I.columns.length===1&&I.columns[0].type==="WILDCARD")return L;let P=[];for(let D of I.columns)D.type==="WILDCARD"?P.push(...L):D.type==="PARENT_WILDCARD"?P.push(...L.filter(x=>x.startsWith("_p."))):P.push(...rr([],[D]).columns);return P}if(C.type==="UNION")return A(C.left);if(C.type==="SHOW_APPS")return[...wR];if(C.type==="DESCRIBE")return[...bR];if(C.type==="GENERATE_SERIES")return[w.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},h=async w=>{if(w===null||typeof w!="object")return;if(Array.isArray(w)){for(let I of w)await h(I);return}let C=w;if(C.type==="WITH"){let I=w;for(let L of I.ctes){if(await h(L.query),L.query.type==="GENERATE_SERIES"){let D=dR(L.query);g.set(L.name,{rows:D.rows,columns:D.columns,columnMeta:Ee.get(D),uniqueGeneratedColumn:L.query.columnAlias}),y.add(L.name);continue}let P=await A(L.query);g.set(L.name,{rows:[],columns:P})}await h(I.query);return}if(C.type==="UNION"){await h(C.left),await h(C.right);return}if(C.type==="SELECT"){let I=w;for(let P of I.columns)P.type==="SCALAR_SUBQUERY_COL"&&await h(P.query);await h(I.where),await h(I.having),await wi(I,c,n,g);let L=await Ti(I,c,n,g);L&&d.set(I,L);return}for(let I of Object.values(C))await h(I)};await h(e);let b=async w=>{if(w===null||typeof w!="object"||f.has(w))return;if(f.add(w),Array.isArray(w)){await Promise.all(w.map(b));return}let C=w;if(C.type==="SELECT"){let I=w;await wi(I,c,n);let L=[I.from,...I.joins.map(v=>v.table)].some(v=>v.cteName!==null);if(Z(I).type==="PLAIN"&&!L){let v=await Ti(I,c,n);v&&d.set(I,v)}let P=[I.from,...I.joins.map(v=>v.table)].filter(v=>v.cteName===null).map(v=>v.appId);(ft(I.where)||I.orderBy.length>0||I.columns.some(v=>v.type==="WINDOW_COL"&&v.orderBy.length>0))&&P.forEach(v=>a.add(v));let{resolver:x,rewrites:_}=await yn(I,c,n);_.length>0&&Gu.set(I,_);let k=me(I.where,x),S=E(I);if(k.capability==="UNSUPPORTED"&&!S)throw new Error(`ArgumentError: WHERE predicate is unsupported (${mn(k)}).`);p.set(I,k);let F=tc.get(I)??qa(I,await za(I,c,n));F&&_R.set(I,F);let O=new Map;for(let v of I.joins){let $=v.table.alias;if(v.type!=="INNER"||!$||v.table.subtableCode)continue;let M=v.on.left.tableAlias,U=v.on.right.tableAlias;if(!M||!U)continue;let K=M===$&&U!==$?U:U===$&&M!==$?M:void 0,z=M===$?v.on.right.field:v.on.left.field,W=M===$?v.on.left.field:v.on.right.field;if(!K)continue;let G=[I.from,...I.joins.map(he=>he.table)].find(he=>Ne(he)===K),se=await X(v.table.appId,c,n),Ce=se.find(he=>he.code===pe(v.table,W)),ji=Ce?ve(Ce,v.table.appId):qe(W),Re,Zt,Mc,Fc;if(G?.cteName!==null&&G?.cteName!==void 0){let he=g.get(G.cteName);Re=he?.columnMeta?.get(z),y.has(G.cteName)&&he&&(Mc=he.rows.length,Zt=he.rows.map(Ue=>uc(Ue[z])),Fc=Zt.some(Ue=>Ue.length===0))}else if(G){let he=(await X(G.appId,c,n)).find(Ue=>Ue.code===pe(G,z));Re=he?ve(he,G.appId):qe(z)}let qi=Ul({fieldType:ji?.fieldType,sourceSemantics:Re?.semantics,sourceRowCount:Mc,values:Zt,hasEmptyValue:Fc,maxInKeys:ka});if(qi.kind==="FALLBACK"&&qi.reason==="JOIN_KEY_VALUES_RUNTIME"&&(F?.joinPlan.items.some(Ue=>Ue.targetAlias===$)||F?.joinPlan.serverFunctionConsumptions.some(Ue=>Ue.targetAlias===$)))continue;let Ag=vl(qi,W,bi),cs=I.where?Bn(I.where,{tableAlias:$}):null,xc,Gc;if(cs){let he=new Map(se.map(Er=>[Er.code,Er])),Ue=me(cs,Er=>{let ps=he.get(Er.field);return ps?.semantics??(ps?Q(ps):qe(Er.field)?.semantics)});(Ue.capability==="EXACT_PUSHDOWN"||Ue.capability==="SUPERSET_PREFILTER")&&(xc=Y(cs),Gc=Ue.capability==="EXACT_PUSHDOWN"?"exact":"superset")}O.set($,{plan:qi,queries:Ag,additionalQuery:xc,additionalRelation:Gc})}if(O.size>0&&DR.set(I,O),I.orderBy.length>0||I.columns.some(v=>v.type==="WINDOW_COL"&&v.orderBy.length>0)){let v=await Ni(I,c,n);if(I.orderMode!=="KINTONE_NATIVE")for(let $ of v.semantics.values())$.fieldType==="STATUS"&&$.source&&s.add($.source.appId);if(Ka(I)&&!L&&S?.allowed!==!1){let $=k.capability==="EXACT_PUSHDOWN"?$e(I):"FULL_SCAN";u.set(I,(I.orderMode==="KINTONE_NATIVE"?ni:ti)({stmt:I,staticMode:$,whereCapability:k.capability,whereReasons:k.reasons,orderSemantics:v.semantics,maxRecords:r,hasKlike:Te(I.where)}))}}}else if(C.type==="VALIDATE"){let I=w;a.add(I.appId);let L=await X(I.appId,c,n),P=new Map(L.filter(M=>!M.inSubtable).map(M=>[M.code,M])),D=new Set(L.filter(M=>M.inSubtable).map(M=>M.code)),x=Tl(I,L),_=jn(I.checkGroups??[]),k=zu(I.where);for(let M of _){if(M.field!=="$id"&&!P.has(M.field)&&!D.has(M.field))throw we(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${M.field} \u306F APP${I.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(M.field!=="$id"&&!P.has(M.field)&&D.has(M.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${M.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let M of k){if(M!=="$id"&&!P.has(M)&&!D.has(M))throw new Error(`ArgumentError: WHERE field ${M} does not exist in APP${I.appId}.`);if(M!=="$id"&&!P.has(M)&&D.has(M))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${M} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let S=new Map([...P].map(([M,U])=>[M,U.fieldType]));S.set("$id","RECORD_NUMBER"),bn(I,S);let N=me(I.where,M=>M.field==="$id"?Q({fieldType:"__ID__"}):P.get(M.field)?.semantics??(P.has(M.field)?Q(P.get(M.field)):void 0));if(N.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${mn(N)}).`);let F=new Map([...P].map(([M,U])=>[M,U.fieldType])),O=new Map([...P.values()].flatMap(M=>M.optionOrder?[[M.code,new Set(Object.keys(M.optionOrder))]]:[])),v=I.where===null?null:N.capability==="EXACT_PUSHDOWN"?I.where:Kn(I.where,{allowUnqualifiedFields:!0,fieldTypes:F,fieldOptions:O,allowKlike:!1}),$=x.some(M=>M.field.fieldType==="NUMBER");$&&(l.add(I.appId),await mt(I.appId,c,n)),vR.set(I,{targetFields:x.map(M=>M.subtableCode?`${M.subtableCode}(${M.field.code})`:M.field.code),fetchFields:[...new Set(["$id",...x.map(M=>M.subtableCode??M.field.code),...k,..._.map(M=>M.field)])],subtables:new Map([...new Set(x.flatMap(M=>M.subtableCode?[M.subtableCode]:[]))].map(M=>[M,x.filter(U=>U.subtableCode===M).length])),capability:N,prefilter:v,numberPrecision:$})}else if(C.type==="UPDATE"||C.type==="DELETE"){if(a.add(w.appId),C.type==="UPDATE"&&w.applyBlocks?.length){let L=w,P=await X(L.appId,c,n);if(bt(L,P),Wa(L)){let D=P.filter(_=>!_.inSubtable),x=xl(L.where,{fieldTypes:new Map(D.map(_=>[_.code,_.fieldType])),fieldOptions:new Map(D.flatMap(_=>_.optionOrder?[[_.code,new Set(Object.keys(_.optionOrder))]]:[]))});UR.set(L,x)}}let I=w;(I.type!=="UPDATE"||!Wa(I))&&E(I)?.allowed!==!1&&await or(I,c,n)}await Promise.all(Object.values(C).map(b))};if(await b(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Gt(e)){let w=Kt(e),{resolver:C,rewrites:I}=await yn(w,c,n);I.length>0&&Gu.set(w,I);let L=me(w.where,C),P=E(w);if(L.capability==="UNSUPPORTED"&&!P)throw new Error(`ArgumentError: WHERE predicate is unsupported (${mn(L)}).`);if(p.set(w,L),Ka(w)&&P?.allowed!==!1){let D=await Ni(w,c,n);u.set(w,(w.orderMode==="KINTONE_NATIVE"?ni:ti)({stmt:w,staticMode:L.capability==="EXACT_PUSHDOWN"?$e(w):"FULL_SCAN",whereCapability:L.capability,whereReasons:L.reasons,orderSemantics:D.semantics,maxRecords:r,hasKlike:Te(w.where)}))}}return{capabilities:p,orderPlans:u,plainGroupByPlans:d,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function Ku(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 ZT(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 _E(e){return e==="<>"?"!=":e}function ot(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(ot).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return ot(t.expr);case"GROUPING_FIELD":return`GROUPING(${ot(t.ref)})`;case"GROUPING_REF":return ot(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${ot(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${ot(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(ot).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(ot).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Rn(e){try{let t=e;switch(t.type){case"BINARY":return`${ot(t.left)} ${ZT(t.op)} ${ot(t.right)}`;case"NULL_CHECK":return`${ot(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Rn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Rn(t.right)})`;case"NOT":return`NOT (${Rn(t.expr)})`;case"GROUP":return`(${Rn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Bu(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=te(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?eI(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=yu(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${gu(c)}: ${c}`,` ${mu(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)":Rn(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(te)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!te(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=yu(s),c=s.left.type==="FIELD"?s.left.field:void 0,p=_E(s.op),u=n.capability?.reasons.find(d=>d.functionName===l&&(c===void 0||d.field===c)&&d.operator===p);t.push(` ${gu(l)}: ${l}`,` ${mu(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)",` ${DE(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=yu(s),c=s.left.type==="FIELD"?s.left.field:void 0,p=_E(s.op),u=n.capability?.reasons.find(d=>d.functionName===l&&(c===void 0||d.field===c)&&d.operator===p);t.push(` ${gu(l)}: ${l}`,` ${mu(l)}: kintone server exact prefilter`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??p}`)}let a=Y(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Rn(o.residualWhere)}`,` ${DE(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!te(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 eI(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 gu(e){return te(e)?"relative date function":"kintone function"}function yu(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 mu(e){return te(e)?"relative date evaluation":"kintone function evaluation"}function DE(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&te(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var MR=Symbol("ksql.explainFetchPlan");function hc(e){return e[MR]}function FR(e,t){e[MR]=t}async function xR(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Pe){let c=Vu(r);try{let p=Ju(e,a),u=Ys(p),d=Cl(p,n),f=WE(p,d),R=new Map,E=[],g=[];for(let m=0;m<p.length;m++){let A=p[m],h=A.type==="SET_VARIABLE"?A.expr.type==="SCALAR_SUBQUERY"?{...A,expr:Ga(A.expr,R)}:A:Ga(A,R);et(h);let b=await Di(h,t,c),w=await kR(h,t,c,i,b),C={sources:[]},I=b.hasServerOnlyWhereFunction&&!b.allowed?Bu(b):[...Bu(b),...GR(tI(h,u.statements[m],w.capabilities,w.orderPlans,s,l,C),o)],L=Ku(w);E.push({index:m,type:u.statements[m].statementType,plan:I.length===0?L:[I[0],...L,...I.slice(1)]}),g.push({index:m,fetch:Sc(C.sources),sources:C.sources}),(A.type==="SET_VARIABLE"||A.type==="DECLARE_VARIABLE")&&R.set(A.name,A.type==="DECLARE_VARIABLE"&&A.annotation==="RELATIVE_DATE"?{type:"relative-date",value:f.get(A.name)}:A.type==="SET_VARIABLE"&&A.expr.type==="ARRAY"?{type:"array",elements:A.expr.elements.map(P=>({type:"string",value:P.value}))}:{type:"string",value:`@${A.name}`,placeholder:!0})}let y={statementCount:p.length,statements:E};return FR(y,{statements:g}),y}finally{cc(c)}}function tI(e,t,n,r,i=100,o=Pe,a={sources:[]}){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",` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${ze} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Ri(e.query,t,n,r,a,"main").map(s=>` ${s}`)];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 s=Ha(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:",...Ri(e.expr.query,s,n,r,a).map(l=>` ${l}`)]}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 Ri(e.query,t,n,r,a);if(e.type==="ASSERT"){let s=[`ASSERT ${e.text}`," 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"],l=[e.left,e.right,e.low,e.high].filter(c=>c!==null&&c.type==="SCALAR_SUBQUERY");return l.forEach((c,p)=>{s.push(l.length>1?` subquery[${p+1}]:`:" subquery:");let u=Ha(c.query)?t:{...t,tempTablesReferenced:[]};s.push(...Ri(c.query,u,n,r,a).map(d=>` ${d}`))}),s}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?ts(e,void 0,n,r,i,o):Ri(e,t,n,r,a)}function Ha(e){if(Array.isArray(e))return e.some(Ha);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Ha)}return!1}function Ri(e,t,n,r,i={sources:[]},o="main"){if(t.tempTablesReferenced.length===0)return ts(e,void 0,n,r,100,Pe,1e4,void 0,!0,i,o);let a=[];e.type==="INSERT_SELECT"?a.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"&&a.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`),a.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),a.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 s=t.appIds.filter(l=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||l!==e.appId);return s.length>0&&a.push(` app: ${s.map(l=>`APP${l}`).join(", ")}`),a.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),a}var $u=new WeakMap;async function nI(e,t,n,r,i,o=100,a=Pe,s){let l=s??await Di(e.query,t,n),c=await kR(e.query,t,n,r,l,$u.get(e)),p={sources:[]},u=Bu(l),d=l.hasServerOnlyWhereFunction&&!l.allowed?[...Ku(c),...u]:[...Ku(c),...u,...GR(ts(e.query,void 0,c.capabilities,c.orderPlans,o,a,r,c.plainGroupByPlans,!0,p),i)],f=xa(d,p.sources),R={type:"SELECT",columns:["plan"],rows:f.map(E=>({plan:E})),rowCount:f.length};return FR(R,{statements:[{index:0,fetch:Sc(p.sources),sources:p.sources}]}),R}function GR(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 ts(e,t,n,r,i=100,o=Pe,a=1e4,s,l=!0,c,p="main"){let u=c??{sources:[]};if(e.type==="UNION"){let f=sI(e,n,r,s,u);return l?xa(f,u.sources):f}if(e.type==="WITH"){let f=lI(e,n,r,s,u);return l?xa(f,u.sources):f}if(e.type==="INSERT")return pI(e,t,i,o);if(e.type==="INSERT_SELECT")return dI(e,t,n,r,s);if(e.type==="UPSERT")return gI(e,t,i,o);if(e.type==="UPSERT_SELECT")return yI(e,t,n,r,s);if(e.type==="UPDATE")return fI(e,t,n,r,i,o,a);if(e.type==="DELETE")return RI(e,t);if(e.type==="REORDER")return mI(e,t);if(e.type==="VALIDATE")return oI(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let E=e.targets?.filter(g=>g.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",...E.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 f=e.keyFields?"UPSERT":"INSERT",R=e.targets?.some(E=>E.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${f} 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 d=at(e,t,n,r,s,!0,!0,u,p);return l?xa(d,u.sources):d}var vE={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Sc(e){return e.reduce((t,n)=>vE[t]>=vE[n.fetch]?t:n.fetch,"none")}function xa(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${Sc(t).toUpperCase()}`,...n]}function rI(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function La(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:rI(o)};return e.sources.push(s),s}function iI(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function _a(e){return` fetch: ${iI(e)}`}function oI(e,t){let n=vR.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)":Y(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?qu:ju).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 aI(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 at(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let c=n?.get(e)??(n?[...n].find(([b])=>JSON.stringify(b)===JSON.stringify(e))?.[1]:void 0),p=r?.get(e)??(r?[...r].find(([b])=>JSON.stringify(b)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([b])=>JSON.stringify(b)===JSON.stringify(e))?.[1]:void 0),d=o&&c!==void 0&&lR(e,c),f=d?"COUNT_TOTAL_COUNT":p?.kind==="CANONICAL_LOCAL"||c&&c.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":$e(e),R=uI(e);c&&c.capability!=="EXACT_PUSHDOWN"&&R.push(...c.reasons.map(b=>b.code));let E=[],g=gf(e,Ii.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let b of Gu.get(e)??jE.get(e)??[])E.push(aI(b));g&&(E.push(` grouping source: ${g.source}`),E.push(` grouping sets: ${g.expandedSetCount} (limit: ${g.setLimit})`),E.push(` grouping items: ${g.groupingItemCount} (limit: ${g.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${g.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let y=Z(e);if(y.type==="PLAIN"){let b=y.allItems;if(u)u.items.forEach((w,C)=>{let I=b[C];I?.type==="FIELD_NAME"&&(w.kind==="PHYSICAL"?E.push(` group key ${I.name}: PHYSICAL (source=${w.sourceIndex}, field=${w.fieldCode})`):w.kind==="ALIAS_SAFE"?E.push(` group key ${I.name}: ALIAS_SAFE (column=${w.columnIndex})`):w.kind==="EXPRESSION"&&E.push(` group key ${I.name}: EXPRESSION`))});else if([e.from,...e.joins.map(w=>w.table)].some(w=>w.cteName!==null))for(let w of b)w.type==="FIELD_NAME"&&E.push(` group key ${w.name}: DEFERRED (materialized schema unavailable)`)}for(let b of e.columns){if(b.type!=="WINDOW_COL"||b.windowKind===void 0||b.windowKind==="RANKING")continue;let w=[];b.partitionBy.length>0&&w.push(`PARTITION BY ${b.partitionBy.map(C=>C.tableAlias?`${C.tableAlias}.${C.field}`:C.field).join(", ")}`),b.orderBy.length>0&&w.push(`ORDER BY ${b.orderBy.map(KR).join(", ")}`),b.windowKind==="VALUE"?E.push(` window ${b.alias}: ${b.valueFunc}(offset=${b.offset}) OVER (${w.join(" ")})`):b.windowKind==="AGGREGATE"&&(E.push(` window ${b.alias}: ${b.aggFunc} OVER (${w.join(" ")})`),E.push(b.frame===null?" frame: PARTITION ENTIRE":` frame: ${b.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${b.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(d){let b=e.where===null?"":Y(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${b}${b?" ":""}limit 1`),a){let w=La(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${b}${b?" ":""}limit 1`);E.push(_a(w))}return E.push(" fields: $id"),E.push(" fetch API: GET records.json (totalCount=true)"),E.push(" REST execution: single GET"),E.push(" record limit: maxRecords/onLimitReached not applied"),E.push(" fallback: full record scan when totalCount is missing or invalid"),E.push(" search abort: fail-closed (SearchAbortedError)"),E}p?(E.push(` order plan: ${p.kind}`),p.reasonCodes.length>0&&E.push(` order reason: ${p.reasonCodes.join(", ")}`),p.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):p.kind==="KORDER_CURSOR"&&(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" fetch API: POST/GET/DELETE records/cursor.json"),E.push(" cursor page size: 500"),E.push(` scan rows: ${p.scanRows}`))):g&&E.push(" order plan: CANONICAL_LOCAL");let m=p&&!p.requiresCompleteInput?{...e,orderBy:[]}:e,A=Ut(m);p?.requiresCompleteInput&&A.add("LOCAL_ORDER");let h=Lt(e.where);if(A.size>0&&(!h||g!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...A].join(", ")}`),E.push(" onLimit=truncate: disabled")),h)return E.push(" predicate: constant false"),E.push(" records API access: none"),E.push(` app: APP${e.from.appId} (${e.from.appId})`),E;if(f==="FULL_SCAN"&&R.length>0&&E.push(` reason: ${R.join(", ")}`),f==="SIMPLE"){let b=Ro(p?.kind==="CANONICAL_REST_TOP_N"?rR(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let w=p?.kind==="KORDER_CURSOR"?Gl(e):b.query;if(E.push(` kintone query: ${w||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let C=w?"EXACT":"ALL";E.push(_a(La(s,e.from.appId,e.from.alias,l,C,w)))}E.push(` fields: ${b.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":b.fields.join(", ")}`)}else{let b=_R.get(e),w=b??Vn(e);if(e.joins.length>0)if(b){if(E.push(" join pushdown plan: applied (runtime metadata resolved)"),E.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),E.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),b.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${b.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${b.joinPlan.residualWhere===null?"(none)":Rn(b.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${b.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${b.joinPlan.allKlikes.length-b.joinPlan.appliedKlikes.size}`),b.joinPlan.residualWhere!==null)for(let N of b.joinPlan.rejections)E.push(` join pushdown not applied: ${N.reason}`)}else{let N=e.joins.some(F=>F.type!=="INNER")?"OUTER_JOIN":[e.from,...e.joins.map(F=>F.table)].some(F=>F.cteName!==null||!!F.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";E.push(" join pushdown plan: not applied"),E.push(` join pushdown not applied: ${N}`)}let C=on(e,e.from,u),I=e.from.alias?` AS ${e.from.alias}`:"",L=w.mainCondition,P=eR(e),D=e.joins.length===0&&c?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!St(e.where)?Y(e.where):"",x=e.from.alias?b?.queriesByAlias.get(e.from.alias):void 0,_=x||(L!==null?Y(L):D||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${I} (${e.from.appId})`),E.push(` kintone query: ${_}`);let k=b?.joinPlan.items.find(N=>N.targetAlias===e.from.alias),S=b?.joinPlan.serverFunctionConsumptions.find(N=>N.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let N=!b&&P!==null,F=_==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":N?"PREFILTERED":k?.relation==="exact"||S||D!==""?"EXACT":"PREFILTERED";E.push(_a(La(s,e.from.appId,e.from.alias,l,F,_,N)))}k||S?(E.push(` pushdown applied: ${x}`),E.push(` relation: ${k?.relation??"exact"}`)):!b&&P!==null&&E.push(` pushdown candidate: ${Y(P)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),E.push(` fields: ${C.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":C.join(", ")}`);for(let N of e.joins){let F=on(e,N.table,u),O=N.table.alias?` AS ${N.table.alias}`:"",v=N.type==="INNER"?"JOIN":`${N.type} JOIN`,$=N.table.alias?w.joinConditions.get(N.table.alias)??null:null,M=N.table.alias&&!N.table.subtableCode&&N.table.cteName===null&&e.where?Bn(e.where,{tableAlias:N.table.alias}):null,U=N.table.alias?b?.queriesByAlias.get(N.table.alias):void 0,K=N.table.alias?DR.get(e)?.get(N.table.alias):void 0,z=U||($!==null?Y($):K?.additionalQuery?K.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),W=K?.plan.kind==="RANGE_CANDIDATE"||K?.plan.kind==="FALLBACK"&&K.plan.reason==="JOIN_KEY_VALUES_RUNTIME",G=K&&K.queries.length>0?K.queries.map(Re=>z!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${Re}) and (${z})`:Re):[W?"(runtime source keys)":z],se=G.join(" | ");E.push(` ${v}: APP${N.table.appId}${O} (${N.table.appId})`);for(let Re of G)E.push(` kintone query: ${Re}`);let Ce=b?.joinPlan.items.find(Re=>Re.targetAlias===N.table.alias),ji=b?.joinPlan.serverFunctionConsumptions.find(Re=>Re.targetAlias===N.table.alias);if(a&&N.table.cteName===null){let Re=W||!K&&!b&&M!==null,Zt=se==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":Re?"PREFILTERED":K?.plan.kind==="IN"&&Ce?.relation!=="superset"&&K.additionalRelation!=="superset"||Ce?.relation==="exact"||ji?"EXACT":"PREFILTERED";E.push(_a(La(s,N.table.appId,N.table.alias,"join",Zt,se,Re)))}if(K)if(K.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let Re of G)E.push(` pushdown applied: ${Re}`);E.push(" relation: superset")}else if(K.plan.kind==="IN"){let Re=Ce?.relation==="superset"||K.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let Zt of G)E.push(` pushdown applied: ${Zt}`);E.push(` relation: ${Re}`)}else K.plan.kind==="RANGE_CANDIDATE"?(E.push(" join key prefilter: range candidate"),E.push(" relation: superset"),E.push(` join key prefilter reason: ${K.plan.reason}`)):K.plan.kind==="FALLBACK"&&(E.push(K.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),E.push(` join key prefilter reason: ${K.plan.reason}`));else Ce||ji?(E.push(` pushdown applied: ${U}`),E.push(` relation: ${Ce?.relation??"exact"}`)):!b&&M!==null&&E.push(` pushdown candidate: ${Y(M)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${F.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":F.join(", ")}`)}}return E.push(...cI(e,n,r,i,s)),E}function sI(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(...at(l,`[union:${c+1}]`,t,n,r,!0,!0,i,"union"))}),s}function lI(e,t,n,r,i={sources:[]}){let o=[];for(let a of e.ctes)if(a.query.type==="SELECT")o.push(...at(a.query,`[cte: ${a.name}]`,t,n,r,!1,!0,i,"cte")),o.push("");else if(a.query.type==="GENERATE_SERIES"){let s=Vs(a.query),l=s.kind==="DATE"?`${s.step} ${Math.abs(s.step)===1?"day":"days"}`:String(s.step);o.push(`[cte: ${a.name}]`," source: GENERATE_SERIES",` column: ${a.query.columnAlias}`,` series type: ${s.kind}`,` start: ${s.start}`,` stop: ${s.stop}`,` step: ${l}`,` rows: ${s.rowCount}`,` row guard: ${s.rowCount} / ${Wt}`," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&o.push(...ts(e.query,"[main]",t,n,100,Pe,1e4,r,!1,i)),Gt(e)){o.push("");let a=Kt(e);o.push(...at(a,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return o}function uI(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.length>0&&t.push("JOIN \u3042\u308A");let n=Z(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"),e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")&&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"),St(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Mt(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 cI(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(...at(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...at(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...at(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(...at(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function pI(e,t,n=vt,r=Pe){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,...Tc(Jo(e,n,r))]:a}function dI(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(...at(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function fI(e,t,n,r,i=100,o=Pe,a=1e4){if(e.applyBlocks?.length)return EI(e,t,i,o,a);let s=Nd(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),c=Fo(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?_i(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${_i(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(Lt(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=AI(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(` ${SI(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...at(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function EI(e,t,n,r,i){let o=Jo(e,n,r),a=o.branches[0],c=e.applyBlocks.flatMap(R=>[...R.operations]).map(R=>{if(R.kind==="APPEND")return"APPEND";if(R.kind==="ADD"||R.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(R.selector.kind==="ALL_ROWS")return"ALL_ROWS";let E=R.selector.where;return E.type==="BINARY"&&E.op==="="&&E.left.type==="FIELD"&&E.left.tableAlias===null&&E.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),p=[...new Set(a.targets.flatMap(R=>R.operations.map(E=>E.kind)))],u=p.includes("REMOVE"),d=UR.get(e),f=d?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${d.prefilter===null?"(none; empty query)":Y(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: ${_i(e.where)}`,`parent cardinality: ${ht(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(R=>`${R.field} (${R.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",...Tc(o)]}function RI(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${_i(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(Lt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function gI(e,t,n=vt,r=Pe){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,...Tc(Jo(e,n,r))]:a}function Tc(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 yI(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(...at(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function mI(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(KR).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Lt(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: ${_i(e.where)}`),o}function KR(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function _i(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return Y(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function AI(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Ya(n,t),n.type==="STRING_FUNC"&&Ya(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Si(n,t);return[...t]}function Ya(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"&&(Ya(e.left,t),Ya(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"&&Si(n,t)}async function BR(e,t,n,r,i){let o=Ec(e),a=await _e(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 _e(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 we(`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 we(`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 we(`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),R=d.field==="$id"||l.has(d.field);if(!f)throw we(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${d.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(R)throw we(`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 hI(e,t,n){if(!e)return{};let r=Pt(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 Si(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"&&Si(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Si(e.left,t),Si(e.right,t))}function SI(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} = ${$R(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 $R(e){return`${UE(e.left)} ${e.op} ${UE(e.right)}`}function UE(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"?H(e):e.type==="ARITH"?`(${$R(e)})`:"..."}var de=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 Ae=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 Ic(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 Xe(e){return new Ae("READ_ONLY_VIOLATION",e)}function pr(e,t){return new Ae("PARSE_ERROR",e,t)}function VR(){let e=new hn;return new Ae("SEARCH_ABORTED",e.message,e)}function Ki(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function TI(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 Pn(e){return e instanceof Ae?e:e instanceof Le||e instanceof T?new Ae("PARSE_ERROR",Ki(e),e):e instanceof hn||e?.name==="SearchAbortedError"?new Ae("SEARCH_ABORTED",Ki(e),e):e instanceof ke||e?.name==="FetchAllLimitError"?new Ae("FETCH_LIMIT_EXCEEDED",Ki(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Ae("CLIENT_ERROR",e.message,e.cause):TI(e)?new Ae("CLIENT_ERROR",Ki(e),e):new Ae("EXECUTION_ERROR",Ki(e),e)}function ns(e,t){let n=Pn(e);if(e instanceof ne){let r=t[e.statementIndex];if(r!==void 0)return Ic(n,e.statementIndex,r.type)}return n}var II=2,rs=5,wI=3e4,bI=10*6e4+3e4,is=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??II;if(!Number.isSafeInteger(r)||r<1||r>rs)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${rs}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??wI,this.quarantineMs=n.quarantineMs??bI}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 da(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>rs)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${rs}.`)}};function NI(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function PI(e,t=r=>new Promise(i=>setTimeout(i,r)),n=NI){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 CI(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 WR(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 CI(PI(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function HR(e){return YR(e,LI(e))}function YR(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=_I(o.options),s=DI(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:os(o.minValue),maxValue:os(o.maxValue),minLength:os(o.minLength),maxLength:os(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)&&!OI.has(o.type)};l.semantics=Q(l),i.push(l),o.fields&&i.push(...YR(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var OI=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function LI(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 os(e){return e==null||e===""?void 0:e}function _I(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 DI(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function jR(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 vI="Filter aborted because of too many search results";function qR(e){return e?.includes(vI)===!0}var zR="/k/v1/records.json",as="/k/v1/records/cursor.json",UI=4096,kI=2,wc=e=>kintone.api.url(e,!0);function MI(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(zR,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=UI?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:wc(zR),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 Bi(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(`
|
|
14
|
-
`));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
|
|
15
|
-
`;)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=JI(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function XR(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function ZR(e,t="dev",n){let r=Oc(e),i=r.some(g=>g.profile!==null),o=new Map,a=g=>g??t;for(let g of r){if(g.source!=="physical")continue;let y=a(g.profile),m=o.get(g.appId);m||(m=new Set,o.set(g.appId,m)),m.add(y.toLowerCase())}let s=new Set(r.filter(g=>g.source==="physical").map(g=>g.appId)),l=new Map;for(let g of r){if(g.source!=="logical")continue;let y=a(g.profile).toLowerCase(),m=`logical:${g.logicalName}@${y}`;if(l.has(m))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${g.logicalName}@${y} requires logicalApps configuration.`);let A=n.resolveLogicalApp(g.logicalName,y);l.set(m,A),s.add(A)}let c=new Map,p=new Map;for(let[g,y]of o.entries()){let m=[...y].sort();if(!(m.length<=1))for(let A of m){let h=XR(s);c.set(`physical:${g}@${A}`,h),p.set(h,{source:"physical",mappedAppId:h,appId:g,profile:A})}}let u=[],d=[],f=0,R=0,E=(g,y,m,A)=>{if(!g&&y===m)return;let h=f;u.push(g),f+=g.length,d.push({normalizedStart:h,normalizedEnd:f,sourceStart:y,sourceEnd:m,...A===void 0?{}:{bindingMappedAppId:A}})};for(let g of r){let y=a(g.profile).toLowerCase(),m;if(g.source==="physical")m={source:"physical",mappedAppId:c.get(`physical:${g.appId}@${y}`)??g.appId,appId:g.appId,profile:y};else{let b=`logical:${g.logicalName}@${y}`,w=c.get(b);w===void 0&&(w=XR(s),c.set(b,w)),m={source:"logical",logicalName:g.logicalName,mappedAppId:w,appId:l.get(b),profile:y}}p.set(m.mappedAppId,m),E(e.slice(R,g.start),R,g.start);let A=e.slice(g.referenceValueEnd,g.appEnd),h=g.source==="physical"?`${e.slice(g.start,g.referenceValueStart)}${m.mappedAppId}${A}`:`APP${m.mappedAppId}${A}`;E(h,g.start,g.fullEnd,m.mappedAppId),R=g.fullEnd}return E(e.slice(R),R,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:d}}var eg=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),tg=new Set([...eg,"onLimitReached"]),XI=new Set([...tg,"variables","tempTableMaxRows"]);function ng(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Vi(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function rg(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 QI(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 ig(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=Cc(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`);Vi(r,`logicalApps.${n}`),t[i]=r}return t}function og(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)}`);if(e.maxRecords!==void 0&&Vi(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&Vi(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Vi(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.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function Lc(e,t){ng(e);let n=t==="run"?tg:eg;rg(e.client);let r=og(e,n,t==="run"?"runQuery":"explainQuery"),i=ig(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function ag(e){ng(e),rg(e.client),e.variables!==void 0&&QI(e.variables),e.tempTableMaxRows!==void 0&&Vi(e.tempTableMaxRows,"tempTableMaxRows");let t=og(e,XI,"runBatch"),n=ig(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 ss(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=>ss(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,ss(o,t,n)])):e}function ZI(e,t,n){return e.slice(t,n)}function Wi(e,t,n){let r=Oc(e),i=r.find(c=>c.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${ZI(e,i.start,i.fullEnd)}).`);if(!r.some(c=>c.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=ZR(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 Hi(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 Yi(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return ss(e,n,{logicalAppDisplay:"physical"})}function ls(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 ew(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function tw(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 us(e,t=e.metrics){let n=kE(e);return{type:"query",rows:e.rows.map(ew),columns:e.columns.map(r=>tw(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:ls(t)}}function sg(e,t={}){let n=new Ht(e).tokenize(),r=new Yt(n,t).parse();return et(r),r}function lg(e,t={}){let n=new Ht(e).tokenize(),r=new Yt(n,t).parseStatements();return r.forEach(et),r}function _c(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 ug(e){if(e instanceof le)return pr(e.message,e);let t=Pn(e);return t.code==="PARSE_ERROR"?t:pr("SQL statement could not be parsed",e)}function nw(e){if(e.trim()==="")throw pr("SQL statement is empty");try{return sg(e,{import:!0})}catch(t){let n=ug(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?pr("This API accepts one statement; use runBatch for multiple statements",t):n}}function cg(e){if(eo(e)==="UNKNOWN")throw Xe("Unclassifiable statement is not allowed");return e}function pg(e){if(e.trim()==="")throw pr("SQL statement is empty");try{return lg(e,{import:!0})}catch(t){throw ug(t)}}function rw(e){let t=cg(e),n=t.type;if(n==="IMPORT")throw Xe("IMPORT is disabled by default in engine library queries");if(!_n(t))throw Xe(`${n} statements are not read-only`);if(_c(t))throw Xe("APPLY statements are not allowed in engine library queries");if(!zc(t))throw Xe(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function dg(e){let t=cg(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Xe("IMPORT is disabled by default in engine library batches");if(!_n(n))throw Xe(`${n.type} statements are not read-only`);if(_c(n))throw Xe("APPLY statements are not allowed in engine library batches");if(kt(n.type))throw Xe("DML VALIDATE ONLY statements are not supported by runBatch")}function fg(e){let t=nw(e);return rw(t),t}function Eg(e){let t=pg(e);return t.forEach(dg),t}function Rg(e){let t=e.trim(),n=pg(t);n.forEach(dg);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 iw(e){let t=e.error,n=t?.cause!==void 0?Pn(t.cause):new Ae("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Ic(n,e.index,e.type)}async function Dc(e,t){let n=[],r=[];try{let i=ag(t),o=Wi(e,i.client,i.logicalApps);r=o.logicalBindings,n=Eg(o.sql);let a=await fr(o.client,p=>VE(o.sql,dr(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw iw(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=us(p.result,a.metrics);l.push(n[p.index]?.type==="EXPLAIN"?Yi(d,r):d)}return u});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:c,results:l,warnings:[]}}catch(i){throw Hi(ns(i,n),r)}}function gg(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function vc(e,t){let n=[];try{let r=Lc(t,"run"),i=Wi(e,r.client,r.logicalApps);n=i.logicalBindings;let a=fg(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await fr(i.client,l=>Wu(i.sql,dr(l),{...a,captureColumnMeta:!0}));return gg(s),us(s)}catch(r){throw Hi(Pn(r),n)}}async function Uc(e,t){let n=[],r=[];try{let i=Lc(t,"explain"),o=Wi(e,i.client,i.logicalApps);r=o.logicalBindings;let a=Rg(o.sql);if(n=a.statements,a.legacySql!==void 0){let p=await fr(o.client,f=>Wu(a.legacySql,dr(f),i.executeOptions));gg(p);let u=Yi(p.rows.map(f=>String(f.plan??"")),r),d=hc(p)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
|
|
16
|
-
`),plan:d,metrics:
|
|
17
|
-
`),plan:c,metrics:
|
|
13
|
+
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 YT(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${HT}`)}async function jT(e,t,n,r,i){let o=r.filter(R=>!R.inSubtable),a=new Map(o.map(R=>[R.code,R])),s=new Map(o.map(R=>[R.code,R.fieldType])),l=new Map(o.flatMap(R=>R.optionOrder?[[R.code,new Set(Object.keys(R.optionOrder))]]:[])),c=zl(e.where,{fieldTypes:s,fieldOptions:l});YT(c);let p=c.prefilter===null?"":Y(c.prefilter),u=new Set(Qo(e,r));for(let R of qT(e.where))u.add(R);let d=await zT(e.appId,e.where,a,t,i);return(await De(t.getRecords,e.appId,p,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(R=>({snapshot:R,row:Ot(R,null)})).filter(({row:R})=>ae(e.where,R,d.fieldTypeResolver,c.appliedKlikes,d.fieldSemanticsResolver)).map(({snapshot:R})=>R)}function qT(e){return ac(e)}async function zT(e,t,n,r,i){let s=[...JT(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await Tc(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return Hn(ee({fieldType:"__ID__"}),e,"$id");let u=n.get(p.field);if(!u)return;let d=u.semantics??ee(u),f=u.fieldType==="STATUS"&&s?{...d,optionOrder:s}:d;return Hn(f,e,u.code)}}}function JT(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 XT(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]:[...pt(n,e.fields).payloadFields,...Xr],a=t.guards.parentRows,s=Fl(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:Di(l),guards:vi(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return Ln.set(c,ss(o,n,e.appId)),c}function QT(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]:[...pt(n,e.assignments.map(c=>c.field)).payloadFields,...Xr],s=ei(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:Di(s.branches[0]),guards:vi(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 Ln.set(l,ss(a,n,e.appId)),l}function ZT(e,t,n){let r=t.create.validations.flatMap(R=>R.errors),i=t.update.validations.flatMap(R=>R.errors),o=[...r,...i].map(R=>({...R,$err_operation:"UPSERT"})),a=new Set(o.map(R=>R.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...pt(n,e.fields).payloadFields,...Xr],l=Gl(t),c=l.branches.find(R=>R.branch==="insert"),p=l.branches.find(R=>R.branch==="update"),u=Di(c),d=Di(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:vi(c)},update:{apply:d,guards:vi(p)}},deletedRows:{total:t.update.plans.reduce((R,E)=>R+E.tables.reduce((g,y)=>g+y.deletedRows,0),0),parentRows:t.update.plans.filter(R=>R.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return Ln.set(f,ss([...s],n,e.appId)),f}function Di(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:In(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:In(t,"ADD"),removedValues:In(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function vi(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 Ut=100,Pe=500;function Je(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 ss(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:ee({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ve(s,n));continue}o.set(a,Q(i.has(a)?"number":"string"))}return o}async function eI(e,t,n,r,i,o){let a=await OR(e,t,n,r,i,o),s=await Le(e.appId,n,i),l=yl(e,a,s),c=e.assignments.map(d=>d.field),p=await te(e.appId,n,i),u=await vt(e.appId,c,p,n,i);if(Cn(l.flatMap(d=>d.records.map(f=>f.record)),c,p,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new fe("UPDATE",a.length);for(let d of l)await n.putRecords(d);return{type:"UPDATE",updatedCount:a.length}}function tI(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 nI(e,t,n,r){if(await lr(e,t,r),st(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return aI(e,t,n,r);let i=zd(e),a=(await da(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 fe("DELETE",a.length);let s=Jd(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function rI(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return wT(e,t,n,r);if(e.checkGroups?.length)return Bi(e,t,n,r);let i=await lt(e.appId,e.fields,t,r),o=await vt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Le(e.appId,t,r),c=vR(e),p=await Gi(e.appId,e.keyFields,c,t,n,l);if(e.values.forEach((d,f)=>{let R={};e.fields.forEach((g,y)=>{let m=d[y];m.type==="CASE_VALUE"?R[g]={value:Jt(m.expr,{},l.get(g))}:R[g]={value:Nt(m,l.get(g))}});let E=Fi(p,c[f]);E!==void 0?s.push({id:E,record:R}):a.push(R)}),Cn([...a,...s.map(d=>d.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let d=a.length+s.length;if(!await n.confirm(d,"UPDATE"))throw new fe("UPDATE",d)}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)});u.push(f.ids)}for(let d=0;d<s.length;d+=100)await t.putRecords({app:e.appId,records:s.slice(d,d+100)});return{type:"UPSERT",insertedCount:u.flat().length,updatedCount:s.length}}function vR(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"?j(i):i.type==="CASE_VALUE"?xe(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Cc(e,t,n,r){if(t.length===0)return;let i=await Le(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 iI(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 De(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=ls(a),l=new Map;for(let p of e.values){let u=KE(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((E,g)=>{if(E!=="_pid"){if(E.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[E]={value:KE(p[g])}}});let R=l.get(u);R?R.push(f):l.set(u,[f])}let c=[];for(let[p,u]of l.entries()){let d=s.get(p),R=[...$i(d,i),...u];c.push(UR(e.appId,p,Vi(d),i,R))}for(let p of c)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function oI(e,t,n,r){let i=e.subtableCode;if(!Ii(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];_t(e.where,o);for(let d of e.assignments)d.value.type==="CASE_VALUE"&&Ja(d.value.expr,o);let a=await Cc(e.appId,o,t,r),s=await De(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Oc(s,i).filter(d=>ae(e.where,d.flat,a));if(n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new fe("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 R={};for(let E of e.assignments){if(E.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);R[E.field]={value:Xo(E.value,d.flat,a)}}f.set(d.rowId,R)}let u=ls(s);for(let[d,f]of p.entries()){let R=u.get(d);if(!R)continue;let g=$i(R,i).map(y=>{let m=y.id??"";if(!m)return y;let S=f.get(m);return S?{id:m,value:S}:{id:m}});await t.putRecords(sI(e.appId,d,Vi(R),i,g))}return{type:"UPDATE",updatedCount:c.length}}async function aI(e,t,n,r){let i=e.subtableCode;if(!Ii(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];_t(e.where,o);let a=await Cc(e.appId,o,t,r),s=await De(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Oc(s,i).filter(d=>ae(e.where,d.flat,a));if(n.confirm&&!await n.confirm(c.length,"DELETE"))throw new fe("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=ls(s);for(let[d,f]of p.entries()){let R=u.get(d);if(!R)continue;let E=$i(R,i),g=new Set(f),y=E.filter((m,S)=>!g.has(S));await t.putRecords(UR(e.appId,d,Vi(R),i,y))}return{type:"DELETE",deletedCount:c.length}}function ls(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Oc(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=Vi(r),a=$i(r,t);for(let s=0;s<a.length;s++){let l=a[s],c={...Zo(l,s),_pid:i};for(let[p,u]of Object.entries(r))p!==t&&(c[`_p.${p}`]=zu(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:c})}}return n}function $i(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Vi(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function UR(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function sI(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function lI(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 KE(e){return e.type==="STRING"?e.value:e.type==="NUMBER"?j(e):e.type==="CASE_VALUE"?xe(e.expr,{}):e.elements.map(t=>t.value).join(",")}function zu(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 Ii(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Ii(e.left)||Ii(e.right);case"NOT":case"GROUP":return Ii(e.expr);default:return!1}}async function uI(e,t,n,r){let i=[];_t(e.where,i);let o=await Cc(e.appId,i,t,r),a=await te(e.appId,t,r);if(st(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??ee(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return G("number");let R=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(R)??G("string")},c=await De(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=Oc(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&&ae(e.where,f.flat,o,void 0,l)).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new fe("UPDATE",u.size);let d=ls(c);for(let f of u){let R=d.get(f);if(!R)continue;let g=$i(R,e.subtableCode).map((m,S)=>({row:m,i:S,flat:cI(R,e.subtableCode,m,S)}));g.sort((m,S)=>pI(m.flat,S.flat,e.by,l));let y=g.map(m=>m.row.id??"");await t.putRecords(lI(e.appId,f,Vi(R),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function cI(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}`]=zu(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=zu(a?.value);return i}function pI(e,t,n,r){for(let i of n){let o=BE(i.key,e),a=BE(i.key,t),s=i.key.type==="FIELD_NAME"?r(Ge(i.key.name)):i.key.type==="ARITH_KEY"?G("number"):i.key.type==="FUNC_KEY"?bn(i.key.expr).semantics??G("string"):G("number"),l=et(o,a,s??G("string"));if(l!==0)return i.direction==="ASC"?l:-l}return 0}function BE(e,t){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ce(e.expr,t));case"FUNC_KEY":return pe(e.expr,t);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Lc(e,t,n,r,i){if(e.checkGroups?.length)return Bi(e,t,n,r,i);let o=await lt(e.appId,e.fields,t,r),a=await vt(e.appId,e.fields,o,t,r),s=await Nc.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(_R(s),c.length!==e.fields.length){let y=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${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],u=[],d=await Le(e.appId,t,r),f=l.map((y,m)=>{let S={};return e.fields.forEach((A,I)=>{if(s.importPresence&&!s.importPresence[m]?.has(A))return;let w=y[c[I]]??"";S[A]={value:NR(w,d.get(A))}}),S});f.forEach(y=>Cn([y],e.fields.filter(m=>m in y),o,a));let R=f.map(y=>e.keyFields.map(m=>String(y[m]?.value??"")));if(ts.has(e)){let y=e.keyFields.map(S=>d.get(S)==="NUMBER"),m=new Set;for(let S of R){let A=Pn(S,y);if(m.has(A))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");m.add(A)}}let E=await Gi(e.appId,e.keyFields,R,t,n,d);if(f.forEach((y,m)=>{let S=Fi(E,R[m]);S!==void 0?u.push({id:S,record:y}):p.push(y)}),n.confirm&&p.length+u.length>0){let y=p.length+u.length;if(!await n.confirm(y,"UPDATE"))throw new fe("UPDATE",y)}let g=[];for(let y=0;y<p.length;y+=100){let m=await t.postRecords({app:e.appId,records:p.slice(y,y+100)});g.push(m.ids)}for(let y=0;y<u.length;y+=100)await t.putRecords({app:e.appId,records:u.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:u.length}}var kR=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),MR=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 xR(e){let t=await e.getApps(),n=[...kR],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 FR(e,t,n){let r=await te(e.appId,t,n),i=[...MR],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 dI(e,t=!1){try{let n=new jt(e).tokenize(),r=new qt(n,{import:t}).parse();return Gn("phase15b",r),Ze(r),r}catch(n){throw n instanceof Oe||n instanceof T,n}}async function Ui(e,t,n,r,i){let o=[];Ha(e,t,n,r,o,i),await Promise.all(o)}async function GR(e,t,n,r,i){let o=[];for(let a of e.columns)if(a.type==="CASE_COL")for(let s of a.expr.branches)o.push(Ui(s.condition,t,n,r,i));await Promise.all(o)}function wi(e,t,n,r,i){return i!==void 0&&i.size>0?Dt(e,t,n,i,r):Zt(e,t,n,r)}function Ha(e,t,n,r,i,o){if(e!==null)switch(e.type){case"BINARY":{let a=e.right;a.type==="SUBQUERY_IN_LIST"&&i.push(wi(a.query,t,n,r,o).then(s=>{let l=a.column??s.columns[0]??"";a.resolved=new Set(s.rows.map(c=>c[l]??""))})),a.type==="SCALAR_SUBQUERY"&&i.push(wi(a.query,t,n,r,o).then(s=>{if(s.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(s.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 l=s.columns[0]??"";a.resolved=s.rows[0]?.[l]??""}));break}case"LOGICAL":Ha(e.left,t,n,r,i,o),Ha(e.right,t,n,r,i,o);break;case"NOT":case"GROUP":Ha(e.expr,t,n,r,i,o);break;case"EXISTS":{let a=e;i.push(wi(a.query,t,n,r,o).then(s=>{a.resolved=s.rowCount>0}));break}case"BOOLEAN":break}}async function KR(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Zt(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 BR(e,t,n,r,i){let o=new Map,a=[];for(let c=0;c<e.length;c++){let p=e[c];if(p.type!=="SCALAR_SUBQUERY_COL")continue;let u=JSON.stringify(p.query),d=o.get(u);d||(d=wi(p.query,t,n,r,i).then(f=>{if(f.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(f.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=f.columns[0]??"";return f.rows[0]?.[R]??""}),o.set(u,d)),a.push([c,d])}let s=await Promise.all(a.map(([,c])=>c)),l=new Map;return a.forEach(([c],p)=>l.set(c,s[p])),l}var $R=new WeakMap,VR=new WeakMap,WR=new WeakMap,Ju=new WeakMap,_c=new WeakMap,HR=new WeakMap,YR=new WeakMap;async function jR(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,c={...t,getFields:async C=>(a.add(C),t.getFields(C)),getProcessStatuses:async C=>(s.add(C),t.getProcessStatuses(C)),getNumberPrecision:async C=>(l.add(C),t.getNumberPrecision(C))},p=new Map,u=new Map,d=new Map,f=new Set,R=i??await Mi(e,c,n),E=C=>R.nodes.find(k=>k.source===C||JSON.stringify(k.source)===JSON.stringify(C)),g=new Map(o??[]),y=new Set(o?.keys()??[]),m=new Map([...o??new Map].map(([C,k])=>[C,k.rows.length])),S=new WeakMap,A=C=>me(C)??(C.appId>0?`APP${C.appId}`:"source"),I=C=>C.cteName===ke?1:C.cteName!==null?m.get(C.cteName)??null:null,w=C=>{let k=I(C.from),b=A(C.from),v=[];for(let N of C.joins){let U=I(N.table),O=A(N.table);if(N.type==="CROSS"){let F=k!==null&&U!==null?ti(k,U):null;v.push({leftLabel:b,rightLabel:O,leftRows:k,rightRows:U,plan:F,rightRuntimeLabel:N.table.cteName===null?`APP${N.table.appId} fetched rows`:`${O} materialized rows`}),k=F?.outputRows??null,b=`${b} \xD7 ${O}`}else k=null,b=`${b} ${N.type} JOIN ${O}`}if(v.length>0&&_c.set(C,v),st(C.where)?k=0:C.where!==null&&(k=null),(Z(C).type!=="NONE"||C.distinct||C.having!==null||Vn(C)||C.columns.some(N=>N.type==="WINDOW_COL"))&&(k=null),k!==null){let N=C.offset??0;k=Math.max(0,k-N),C.limit!==null&&(k=Math.min(k,C.limit)),S.set(C,k)}},D=async C=>{let k=[C.from,...C.joins.map(v=>v.table)];if(k.length>1&&C.columns.some(v=>v.type==="WILDCARD"||v.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let b=[];for(let v of k){if(v.cteName!==null){if(v.cteName===ke)continue;let N=g.get(v.cteName);if(!N)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${v.cteName}.`);b.push(...N.columns);continue}let h=await te(v.appId,c,n);v.subtableCode?(b.push(...h.filter(N=>N.inSubtable&&(N.subtableCode===v.subtableCode||N.subtableCode===void 0)).map(N=>N.code)),b.push("_pid","_rid","_idx"),b.push(...h.filter(N=>!N.inSubtable).map(N=>`_p.${N.code}`))):(b.push(...h.filter(N=>!N.inSubtable).map(N=>N.code)),b.push(...lo))}return[...new Set(b)]},P=async C=>{if(C===null||typeof C!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let k=C;if(k.type==="SELECT"){let b=C,v=await D(b);if(b.columns.length===1&&b.columns[0].type==="WILDCARD")return v;let h=[];for(let N of b.columns)N.type==="WILDCARD"?h.push(...v):N.type==="PARENT_WILDCARD"?h.push(...v.filter(U=>U.startsWith("_p."))):h.push(...ar([],[N]).columns);return h}if(k.type==="UNION")return P(k.left);if(k.type==="SHOW_APPS")return[...kR];if(k.type==="DESCRIBE")return[...MR];if(k.type==="GENERATE_SERIES")return[C.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},M=async C=>{if(C===null||typeof C!="object")return;if(Array.isArray(C)){for(let b of C)await M(b);return}let k=C;if(k.type==="WITH"){let b=C;for(let v of b.ctes){if(await M(v.query),v.query.type==="GENERATE_SERIES"){let N=IR(v.query);g.set(v.name,{rows:N.rows,columns:N.columns,columnMeta:Re.get(N),uniqueGeneratedColumn:v.query.columnAlias}),y.add(v.name),m.set(v.name,N.rows.length);continue}let h=await P(v.query);if(g.set(v.name,{rows:[],columns:h}),v.query.type==="SELECT"){let N=S.get(v.query);N!==void 0&&m.set(v.name,N)}}await M(b.query);return}if(k.type==="UNION"){await M(k.left),await M(k.right);return}if(k.type==="SELECT"){let b=C;w(b);for(let h of b.columns)h.type==="SCALAR_SUBQUERY_COL"&&await M(h.query);await M(b.where),await M(b.having),await Ci(b,c,n,g);let v=await Ni(b,c,n,g);v&&d.set(b,v);return}for(let b of Object.values(k))await M(b)};await M(e);let _=async C=>{if(C===null||typeof C!="object"||f.has(C))return;if(f.add(C),Array.isArray(C)){await Promise.all(C.map(_));return}let k=C;if(k.type==="SELECT"){let b=C;await Ci(b,c,n);let v=[b.from,...b.joins.map(L=>L.table)].some(L=>L.cteName!==null);if(Z(b).type==="PLAIN"&&!v){let L=await Ni(b,c,n);L&&d.set(b,L)}let h=[b.from,...b.joins.map(L=>L.table)].filter(L=>L.cteName===null).map(L=>L.appId);(Et(b.where)||b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0))&&h.forEach(L=>a.add(L));let{resolver:U,rewrites:O}=await Sn(b,c,n);O.length>0&&Ju.set(b,O);let F=ye(b.where,U),H=E(b);if(F.capability==="UNSUPPORTED"&&!H)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(F)}).`);p.set(b,F);let z=await rs(b,c,n),V=dc.get(b)??ns(b,z);V&&$R.set(b,V);let $=V??un(b,z);VR.set(b,$);let K=new Map;for(let L of b.joins){let W=L.table.alias;if(L.type!=="INNER"||!W||L.table.subtableCode)continue;let ge=L.on.left.tableAlias,tn=L.on.right.tableAlias;if(!ge||!tn)continue;let kt=ge===W&&tn!==W?tn:tn===W&&ge!==W?ge:void 0,nn=ge===W?L.on.right.field:L.on.left.field,oe=ge===W?L.on.left.field:L.on.right.field;if(!kt)continue;let Ke=[b.from,...b.joins.map(_e=>_e.table)].find(_e=>me(_e)===kt),qc=(await te(L.table.appId,c,n)).find(_e=>_e.code===de(L.table,oe)),_g=qc?ve(qc,L.table.appId):ot(oe),ms,As,zc,Jc;if(Ke?.cteName!==null&&Ke?.cteName!==void 0){let _e=g.get(Ke.cteName);ms=_e?.columnMeta?.get(nn),y.has(Ke.cteName)&&_e&&(zc=_e.rows.length,As=_e.rows.map(ht=>hc(ht[nn])),Jc=As.some(ht=>ht.length===0))}else if(Ke){let _e=(await te(Ke.appId,c,n)).find(ht=>ht.code===de(Ke,nn));ms=_e?ve(_e,Ke.appId):ot(nn)}let Xi=Wl({fieldType:_g?.fieldType,sourceSemantics:ms?.semantics,sourceRowCount:zc,values:As,hasEmptyValue:Jc,maxInKeys:Va});if(Xi.kind==="FALLBACK"&&Xi.reason==="JOIN_KEY_VALUES_RUNTIME"&&(V?.joinPlan.items.some(ht=>ht.targetAlias===W)||V?.joinPlan.serverFunctionConsumptions.some(ht=>ht.targetAlias===W)))continue;let Dg=Vl(Xi,oe,Oi),Xc=$.joinConditions.get(W),vg=Xc?Y(Xc):void 0,Ug=$.joinRelations.get(W);K.set(W,{plan:Xi,queries:Dg,additionalQuery:vg,additionalRelation:Ug})}if(K.size>0&&WR.set(b,K),b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0)){let L=await Li(b,c,n);if(b.orderMode!=="KINTONE_NATIVE")for(let W of L.semantics.values())W.fieldType==="STATUS"&&W.source&&s.add(W.source.appId);if(qa(b)&&!v&&H?.allowed!==!1){let W=F.capability==="EXACT_PUSHDOWN"?Ve(b):"FULL_SCAN";u.set(b,(b.orderMode==="KINTONE_NATIVE"?oi:ii)({stmt:b,staticMode:W,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:L.semantics,maxRecords:r,hasKlike:Ie(b.where)}))}}}else if(k.type==="VALIDATE"){let b=C;a.add(b.appId);let v=await te(b.appId,c,n),h=new Map(v.filter(L=>!L.inSubtable).map(L=>[L.code,L])),N=new Set(v.filter(L=>L.inSubtable).map(L=>L.code)),U=Ul(b,v),O=Xn(b.checkGroups??[]),F=ac(b.where);for(let L of O){if(L.field!=="$id"&&!h.has(L.field)&&!N.has(L.field))throw be(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${b.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!h.has(L.field)&&N.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`)}for(let L of F){if(L!=="$id"&&!h.has(L)&&!N.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${b.appId}.`);if(L!=="$id"&&!h.has(L)&&N.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 H=new Map([...h].map(([L,W])=>[L,W.fieldType]));H.set("$id","RECORD_NUMBER"),On(b,H);let z=ye(b.where,L=>L.field==="$id"?ee({fieldType:"__ID__"}):h.get(L.field)?.semantics??(h.has(L.field)?ee(h.get(L.field)):void 0));if(z.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(z)}).`);let x=new Map([...h].map(([L,W])=>[L,W.fieldType])),V=new Map([...h.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),$=b.where===null?null:z.capability==="EXACT_PUSHDOWN"?b.where:js(b.where,{allowUnqualifiedFields:!0,fieldTypes:x,fieldOptions:V,allowKlike:!1}),K=U.some(L=>L.field.fieldType==="NUMBER");K&&(l.add(b.appId),await At(b.appId,c,n)),HR.set(b,{targetFields:U.map(L=>L.subtableCode?`${L.subtableCode}(${L.field.code})`:L.field.code),fetchFields:[...new Set(["$id",...U.map(L=>L.subtableCode??L.field.code),...F,...O.map(L=>L.field)])],subtables:new Map([...new Set(U.flatMap(L=>L.subtableCode?[L.subtableCode]:[]))].map(L=>[L,U.filter(W=>W.subtableCode===L).length])),capability:z,prefilter:$,numberPrecision:K})}else if(k.type==="UPDATE"||k.type==="DELETE"){if(a.add(C.appId),k.type==="UPDATE"&&C.applyBlocks?.length){let v=C,h=await te(v.appId,c,n);if(Pt(v,h),Qa(v)){let N=h.filter(O=>!O.inSubtable),U=zl(v.where,{fieldTypes:new Map(N.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(N.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});YR.set(v,U)}}let b=C;(b.type!=="UPDATE"||!Qa(b))&&E(b)?.allowed!==!1&&await lr(b,c,n)}await Promise.all(Object.values(k).map(_))};if(await _(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Bt(e)){let C=$t(e),{resolver:k,rewrites:b}=await Sn(C,c,n);b.length>0&&Ju.set(C,b);let v=ye(C.where,k),h=E(C);if(v.capability==="UNSUPPORTED"&&!h)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Tn(v)}).`);if(p.set(C,v),qa(C)&&h?.allowed!==!1){let N=await Li(C,c,n);u.set(C,(C.orderMode==="KINTONE_NATIVE"?oi:ii)({stmt:C,staticMode:v.capability==="EXACT_PUSHDOWN"?Ve(C):"FULL_SCAN",whereCapability:v.capability,whereReasons:v.reasons,orderSemantics:N.semantics,maxRecords:r,hasKlike:Ie(C.where)}))}}return{capabilities:p,orderPlans:u,plainGroupByPlans:d,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function Xu(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 fI(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 $E(e){return e==="<>"?"!=":e}function it(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(it).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return it(t.expr);case"GROUPING_FIELD":return`GROUPING(${it(t.ref)})`;case"GROUPING_REF":return it(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${it(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${it(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(it).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(it).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function An(e){try{let t=e;switch(t.type){case"BINARY":return`${it(t.left)} ${fI(t.op)} ${it(t.right)}`;case"NULL_CHECK":return`${it(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${An(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${An(t.right)})`;case"NOT":return`NOT (${An(t.expr)})`;case"GROUP":return`(${An(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Qu(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?EI(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=Cu(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Pu(c)}: ${c}`,` ${Ou(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)":An(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=Cu(s),c=s.left.type==="FIELD"?s.left.field:void 0,p=$E(s.op),u=n.capability?.reasons.find(d=>d.functionName===l&&(c===void 0||d.field===c)&&d.operator===p);t.push(` ${Pu(l)}: ${l}`,` ${Ou(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)",` ${VE(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=Cu(s),c=s.left.type==="FIELD"?s.left.field:void 0,p=$E(s.op),u=n.capability?.reasons.find(d=>d.functionName===l&&(c===void 0||d.field===c)&&d.operator===p);t.push(` ${Pu(l)}: ${l}`,` ${Ou(l)}: kintone server exact prefilter`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??p}`)}let a=Y(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${An(o.residualWhere)}`,` ${VE(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 EI(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 Pu(e){return ne(e)?"relative date function":"kintone function"}function Cu(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 Ou(e){return ne(e)?"relative date evaluation":"kintone function evaluation"}function VE(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ne(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var qR=Symbol("ksql.explainFetchPlan");function Dc(e){return e[qR]}function zR(e,t){e[qR]=t}async function JR(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Pe,c=!0){let p=ec(r);try{let u=sc(e,a),d=il(u),f=Kl(u,n),R=tR(u,f),E=new Map,g=[],y=[];for(let S=0;S<u.length;S++){let A=u[S],I=A.type==="SET_VARIABLE"?A.expr.type==="SCALAR_SUBQUERY"?{...A,expr:ja(A.expr,E)}:A:ja(A,E);Ze(I);let w=await Mi(I,t,p),D=c?await jR(I,t,p,i,w):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:w},P={sources:[]},M=w.hasServerOnlyWhereFunction&&!w.allowed?Qu(w):[...Qu(w),...XR(RI(I,d.statements[S],D.capabilities,D.orderPlans,s,l,P),o)],_=Xu(D);g.push({index:S,type:d.statements[S].statementType,plan:M.length===0?_:[M[0],..._,...M.slice(1)]}),y.push({index:S,fetch:vc(P.sources),sources:P.sources}),(A.type==="SET_VARIABLE"||A.type==="DECLARE_VARIABLE")&&E.set(A.name,A.type==="DECLARE_VARIABLE"&&A.annotation==="RELATIVE_DATE"?{type:"relative-date",value:R.get(A.name)}:A.type==="SET_VARIABLE"&&A.expr.type==="ARRAY"?{type:"array",elements:A.expr.elements.map(C=>({type:"string",value:C.value}))}:{type:"string",value:`@${A.name}`,placeholder:!0})}let m={statementCount:u.length,statements:g};return zR(m,{statements:y}),m}finally{Sc(p)}}function RI(e,t,n,r,i=100,o=Pe,a={sources:[]}){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",` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${ze} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...mi(e.query,t,n,r,a,"main").map(s=>` ${s}`)];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 s=Za(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:",...mi(e.expr.query,s,n,r,a).map(l=>` ${l}`)]}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 mi(e.query,t,n,r,a);if(e.type==="ASSERT"){let s=[`ASSERT ${e.text}`," 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"],l=[e.left,e.right,e.low,e.high].filter(c=>c!==null&&c.type==="SCALAR_SUBQUERY");return l.forEach((c,p)=>{s.push(l.length>1?` subquery[${p+1}]:`:" subquery:");let u=Za(c.query)?t:{...t,tempTablesReferenced:[]};s.push(...mi(c.query,u,n,r,a).map(d=>` ${d}`))}),s}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?us(e,void 0,n,r,i,o):mi(e,t,n,r,a)}function Za(e){if(Array.isArray(e))return e.some(Za);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Za)}return!1}function mi(e,t,n,r,i={sources:[]},o="main"){if(t.tempTablesReferenced.length===0)return us(e,void 0,n,r,100,Pe,1e4,void 0,!0,i,o);let a=[];e.type==="INSERT_SELECT"?a.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"&&a.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`),a.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),a.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 s=t.appIds.filter(l=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||l!==e.appId);return s.length>0&&a.push(` app: ${s.map(l=>`APP${l}`).join(", ")}`),a.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),a}var Zu=new WeakMap;async function gI(e,t,n,r,i,o=100,a=Pe,s){let l=s??await Mi(e.query,t,n),c=await jR(e.query,t,n,r,l,Zu.get(e)),p={sources:[]},u=Qu(l),d=l.hasServerOnlyWhereFunction&&!l.allowed?[...Xu(c),...u]:[...Xu(c),...u,...XR(us(e.query,void 0,c.capabilities,c.orderPlans,o,a,r,c.plainGroupByPlans,!0,p),i)],f=Ya(d,p.sources),R={type:"SELECT",columns:["plan"],rows:f.map(E=>({plan:E})),rowCount:f.length};return zR(R,{statements:[{index:0,fetch:vc(p.sources),sources:p.sources}]}),R}function XR(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 us(e,t,n,r,i=100,o=Pe,a=1e4,s,l=!0,c,p="main"){let u=c??{sources:[]};if(e.type==="UNION"){let f=SI(e,n,r,s,u);return l?Ya(f,u.sources):f}if(e.type==="WITH"){let f=II(e,n,r,s,u);return l?Ya(f,u.sources):f}if(e.type==="INSERT")return NI(e,t,i,o);if(e.type==="INSERT_SELECT")return PI(e,t,n,r,s);if(e.type==="UPSERT")return _I(e,t,i,o);if(e.type==="UPSERT_SELECT")return DI(e,t,n,r,s);if(e.type==="UPDATE")return CI(e,t,n,r,i,o,a);if(e.type==="DELETE")return LI(e,t);if(e.type==="REORDER")return vI(e,t);if(e.type==="VALIDATE")return AI(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let E=e.targets?.filter(g=>g.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",...E.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 f=e.keyFields?"UPSERT":"INSERT",R=e.targets?.some(E=>E.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${f} 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 d=at(e,t,n,r,s,!0,!0,u,p);return l?Ya(d,u.sources):d}var WE={none:0,count_only:1,exact:2,prefiltered:3,all:4};function vc(e){return e.reduce((t,n)=>WE[t]>=WE[n.fetch]?t:n.fetch,"none")}function Ya(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${vc(t).toUpperCase()}`,...n]}function yI(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function Fa(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:yI(o)};return e.sources.push(s),s}function mI(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Ga(e){return` fetch: ${mI(e)}`}function AI(e,t){let n=HR.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)":Y(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?oc:ic).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 hI(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 at(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let c=n?.get(e)??(n?[...n].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),p=r?.get(e)??(r?[...r].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([I])=>JSON.stringify(I)===JSON.stringify(e))?.[1]:void 0),d=o&&c!==void 0&&AR(e,c),f=d?"COUNT_TOTAL_COUNT":p?.kind==="CANONICAL_LOCAL"||c&&c.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Ve(e),R=wI(e);c&&c.capability!=="EXACT_PUSHDOWN"&&R.push(...c.reasons.map(I=>I.code));let E=[],g=Cf(e,Pi.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let I of _c.get(e)??[]){if(E.push(` cross join: ${I.leftLabel} \xD7 ${I.rightLabel}`),E.push(` left rows: ${I.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${I.rightRows??`runtime (${I.rightRuntimeLabel})`}`),I.plan)E.push(` rows: ${I.plan.outputRows}`),E.push(` row guard: ${I.plan.outputRows} / ${I.plan.limit}`),E.push(" guard timing: before row materialization");else{let w=I.leftRows===null?"left rows":String(I.leftRows),D=I.rightRows===null?"right rows":String(I.rightRows);E.push(` rows: runtime (${w} \xD7 ${D})`),E.push(` row guard: runtime checked / ${Hl}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let I of Ju.get(e)??iR.get(e)??[])E.push(hI(I));g&&(E.push(` grouping source: ${g.source}`),E.push(` grouping sets: ${g.expandedSetCount} (limit: ${g.setLimit})`),E.push(` grouping items: ${g.groupingItemCount} (limit: ${g.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${g.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`));let y=Z(e);if(y.type==="PLAIN"){let I=y.allItems;if(u)u.items.forEach((w,D)=>{let P=I[D];P?.type==="FIELD_NAME"&&(w.kind==="PHYSICAL"?E.push(` group key ${P.name}: PHYSICAL (source=${w.sourceIndex}, field=${w.fieldCode})`):w.kind==="ALIAS_SAFE"?E.push(` group key ${P.name}: ALIAS_SAFE (column=${w.columnIndex})`):w.kind==="EXPRESSION"&&E.push(` group key ${P.name}: EXPRESSION`))});else if([e.from,...e.joins.map(w=>w.table)].some(w=>w.cteName!==null))for(let w of I)w.type==="FIELD_NAME"&&E.push(` group key ${w.name}: DEFERRED (materialized schema unavailable)`)}for(let I of e.columns){if(I.type!=="WINDOW_COL"||I.windowKind===void 0||I.windowKind==="RANKING")continue;let w=[];I.partitionBy.length>0&&w.push(`PARTITION BY ${I.partitionBy.map(D=>D.tableAlias?`${D.tableAlias}.${D.field}`:D.field).join(", ")}`),I.orderBy.length>0&&w.push(`ORDER BY ${I.orderBy.map(QR).join(", ")}`),I.windowKind==="VALUE"?E.push(` window ${I.alias}: ${I.valueFunc}(offset=${I.offset}) OVER (${w.join(" ")})`):I.windowKind==="AGGREGATE"&&(E.push(` window ${I.alias}: ${I.aggFunc} OVER (${w.join(" ")})`),E.push(I.frame===null?" frame: PARTITION ENTIRE":` frame: ${I.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${I.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(d){let I=e.where===null?"":Y(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${I}${I?" ":""}limit 1`),a){let w=Fa(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${I}${I?" ":""}limit 1`);E.push(Ga(w))}return E.push(" fields: $id"),E.push(" fetch API: GET records.json (totalCount=true)"),E.push(" REST execution: single GET"),E.push(" record limit: maxRecords/onLimitReached not applied"),E.push(" fallback: full record scan when totalCount is missing or invalid"),E.push(" search abort: fail-closed (SearchAbortedError)"),E}p?(E.push(` order plan: ${p.kind}`),p.reasonCodes.length>0&&E.push(` order reason: ${p.reasonCodes.join(", ")}`),p.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):p.kind==="KORDER_CURSOR"&&(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" fetch API: POST/GET/DELETE records/cursor.json"),E.push(" cursor page size: 500"),E.push(` scan rows: ${p.scanRows}`))):g&&E.push(" order plan: CANONICAL_LOCAL");let m=p&&!p.requiresCompleteInput?{...e,orderBy:[]}:e,S=Mt(m);p?.requiresCompleteInput&&S.add("LOCAL_ORDER");let A=st(e.where);if(S.size>0&&(!A||g!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...S].join(", ")}`),E.push(" onLimit=truncate: disabled")),A)return E.push(" predicate: constant false"),E.push(" records API access: none"),E.push(` app: APP${e.from.appId} (${e.from.appId})`),E;if(f==="FULL_SCAN"&&R.length>0&&E.push(` reason: ${R.join(", ")}`),f==="SIMPLE"){let I=yo(p?.kind==="CANONICAL_REST_TOP_N"?ER(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let w=p?.kind==="KORDER_CURSOR"?Jl(e):I.query;if(E.push(` kintone query: ${w||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let D=w?"EXACT":"ALL";E.push(Ga(Fa(s,e.from.appId,e.from.alias,l,D,w)))}E.push(` fields: ${I.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":I.fields.join(", ")}`)}else{let I=$R.get(e),w=VR.get(e),D=w??un(e);if(e.joins.length>0)if(I){if(E.push(" join pushdown plan: applied (runtime metadata resolved)"),E.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),E.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),I.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${I.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${I.joinPlan.residualWhere===null?"(none)":An(I.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${I.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${I.joinPlan.allKlikes.length-I.joinPlan.appliedKlikes.size}`),I.joinPlan.residualWhere!==null)for(let U of I.joinPlan.rejections)E.push(` join pushdown not applied: ${U.reason}`)}else{let U=e.joins.some(O=>O.type!=="INNER"&&O.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(O=>O.table)].some(O=>O.cteName!==null||!!O.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";E.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),E.push(` join pushdown not applied: ${U}`)}let P=ln(e,e.from,u),M=e.from.alias?` AS ${e.from.alias}`:"",_=D.mainCondition,C=pR(e),k=e.joins.length===0&&c?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!It(e.where)?Y(e.where):"",b=e.from.alias?I?.queriesByAlias.get(e.from.alias):void 0,v=b||(_!==null?Y(_):k||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${M} (${e.from.appId})`),E.push(` kintone query: ${v}`);let h=I?.joinPlan.items.find(U=>U.targetAlias===e.from.alias),N=I?.joinPlan.serverFunctionConsumptions.find(U=>U.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let U=!w&&C!==null,O=v==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":U?"PREFILTERED":h?.relation==="exact"||N||k!==""?"EXACT":"PREFILTERED";E.push(Ga(Fa(s,e.from.appId,e.from.alias,l,O,v,U)))}h||N?(E.push(` pushdown applied: ${b}`),E.push(` relation: ${h?.relation??"exact"}`)):w&&_!==null?(E.push(` pushdown applied: ${v}`),E.push(` relation: ${D.mainRelation??"exact"}`)):C!==null&&(!w||hi(C))&&E.push(` pushdown candidate: ${Y(C)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),E.push(` fields: ${P.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":P.join(", ")}`);for(let U of e.joins){let O=ln(e,U.table,u),F=U.table.alias?` AS ${U.table.alias}`:"",H=U.type==="INNER"?"JOIN":`${U.type} JOIN`,z=U.table.alias?D.joinConditions.get(U.table.alias)??null:null,x=U.table.alias&&!U.table.subtableCode&&U.table.cteName===null&&e.where?_r(e.where,{tableAlias:U.table.alias}):null,V=U.table.alias?I?.queriesByAlias.get(U.table.alias):void 0,$=U.table.alias?WR.get(e)?.get(U.table.alias):void 0,K=!w&&U.type==="INNER"&&U.table.cteName===null&&!U.table.subtableCode&&[e.from,...e.joins.map(oe=>oe.table)].some(oe=>oe.cteName!==null),L=V||(z!==null?Y(z):$?.additionalQuery?$.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),W=K||$?.plan.kind==="RANGE_CANDIDATE"||$?.plan.kind==="FALLBACK"&&$.plan.reason==="JOIN_KEY_VALUES_RUNTIME",ge=$&&$.queries.length>0?$.queries.map(oe=>L!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${oe}) and (${L})`:oe):[W?"(runtime source keys)":L],tn=ge.join(" | ");E.push(` ${H}: APP${U.table.appId}${F} (${U.table.appId})`);for(let oe of ge)E.push(` kintone query: ${oe}`);let kt=I?.joinPlan.items.find(oe=>oe.targetAlias===U.table.alias),nn=I?.joinPlan.serverFunctionConsumptions.find(oe=>oe.targetAlias===U.table.alias);if(a&&U.table.cteName===null){let oe=W||!$&&!w&&x!==null,Ke=tn==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":oe?"PREFILTERED":$?.plan.kind==="IN"&&kt?.relation!=="superset"&&$.additionalRelation!=="superset"||kt?.relation==="exact"||nn?"EXACT":"PREFILTERED";E.push(Ga(Fa(s,U.table.appId,U.table.alias,"join",Ke,tn,oe)))}if($)if($.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let oe of ge)E.push(` pushdown applied: ${oe}`);E.push(" relation: superset")}else if($.plan.kind==="IN"){let oe=kt?.relation==="superset"||$.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let Ke of ge)E.push(` pushdown applied: ${Ke}`);E.push(` relation: ${oe}`)}else $.plan.kind==="RANGE_CANDIDATE"?(E.push(" join key prefilter: range candidate"),E.push(" relation: superset"),E.push(` join key prefilter reason: ${$.plan.reason}`)):$.plan.kind==="FALLBACK"&&(E.push($.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),E.push(` join key prefilter reason: ${$.plan.reason}`));else K?(E.push(" join key prefilter: runtime candidate"),E.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),x!==null&&E.push(` pushdown candidate: ${Y(x)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):kt||nn?(E.push(` pushdown applied: ${V}`),E.push(` relation: ${kt?.relation??"exact"}`)):w&&z!==null?(E.push(` pushdown applied: ${L}`),E.push(` relation: ${D.joinRelations.get(U.table.alias)??"exact"}`)):x!==null&&(!w||hi(x))&&E.push(` pushdown candidate: ${Y(x)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${O.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":O.join(", ")}`)}}return E.push(...bI(e,n,r,i,s)),E}function SI(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(...at(l,`[union:${c+1}]`,t,n,r,!0,!0,i,"union"))}),s}function TI(e){let t=new Map,n=a=>me(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===ke?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?ti(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&&_c.set(a,c),st(a.where)?s=0:a.where!==null&&(s=null),Z(a).type!=="NONE"||a.distinct||a.having!==null||Vn(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")t.set(a.name,Fo(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 II(e,t,n,r,i={sources:[]}){TI(e);let o=[];for(let a of e.ctes)if(a.query.type==="SELECT")o.push(...at(a.query,`[cte: ${a.name}]`,t,n,r,!1,!0,i,"cte")),o.push("");else if(a.query.type==="GENERATE_SERIES"){let s=Fo(a.query),l=s.kind==="DATE"?`${s.step} ${String(s.dateUnit??"DAY").toLowerCase()}${Math.abs(s.step)===1?"":"s"}`:String(s.step);o.push(`[cte: ${a.name}]`," source: GENERATE_SERIES",` column: ${a.query.columnAlias}`,` series type: ${s.kind}`,` start: ${s.start}`,` stop: ${s.stop}`,` step: ${l}`,` rows: ${s.rowCount}`,` row guard: ${s.rowCount} / ${Yt}`," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&o.push(...us(e.query,"[main]",t,n,100,Pe,1e4,r,!1,i)),Bt(e)){o.push("");let a=$t(e);o.push(...at(a,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return o}function wI(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=Z(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"),e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")&&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"),It(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),Ft(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 bI(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(...at(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...at(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...at(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(...at(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function NI(e,t,n=Ut,r=Pe){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,...Uc(ua(e,n,r))]:a}function PI(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(...at(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function CI(e,t,n,r,i=100,o=Pe,a=1e4){if(e.applyBlocks?.length)return OI(e,t,i,o,a);let s=Hd(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),c=Jo(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?ki(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${ki(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(st(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=UI(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(` ${MI(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...at(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function OI(e,t,n,r,i){let o=ua(e,n,r),a=o.branches[0],c=e.applyBlocks.flatMap(R=>[...R.operations]).map(R=>{if(R.kind==="APPEND")return"APPEND";if(R.kind==="ADD"||R.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(R.selector.kind==="ALL_ROWS")return"ALL_ROWS";let E=R.selector.where;return E.type==="BINARY"&&E.op==="="&&E.left.type==="FIELD"&&E.left.tableAlias===null&&E.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),p=[...new Set(a.targets.flatMap(R=>R.operations.map(E=>E.kind)))],u=p.includes("REMOVE"),d=YR.get(e),f=d?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${d.prefilter===null?"(none; empty query)":Y(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: ${ki(e.where)}`,`parent cardinality: ${Tt(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(R=>`${R.field} (${R.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",...Uc(o)]}function LI(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${ki(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(st(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function _I(e,t,n=Ut,r=Pe){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,...Uc(ua(e,n,r))]:a}function Uc(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 DI(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(...at(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function vI(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(QR).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,st(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: ${ki(e.where)}`),o}function QR(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function ki(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return Y(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function UI(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&es(n,t),n.type==="STRING_FUNC"&&es(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&bi(n,t);return[...t]}function es(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"&&(es(e.left,t),es(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"&&bi(n,t)}async function ZR(e,t,n,r,i){let o=bc(e),a=await Le(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 Le(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 be(`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 be(`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 be(`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),R=d.field==="$id"||l.has(d.field);if(!f)throw be(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${d.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(R)throw be(`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 kI(e,t,n){if(!e)return{};let r=Ot(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 bi(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"&&bi(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(bi(e.left,t),bi(e.right,t))}function MI(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} = ${eg(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 eg(e){return`${HE(e.left)} ${e.op} ${HE(e.right)}`}function HE(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"?j(e):e.type==="ARITH"?`(${eg(e)})`:"..."}var fe=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 Se=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 kc(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 Xe(e){return new Se("READ_ONLY_VIOLATION",e)}function Er(e,t){return new Se("PARSE_ERROR",e,t)}function tg(){let e=new wn;return new Se("SEARCH_ABORTED",e.message,e)}function Wi(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function xI(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 _n(e){return e instanceof Se?e:e instanceof Oe||e instanceof T?new Se("PARSE_ERROR",Wi(e),e):e instanceof wn||e?.name==="SearchAbortedError"?new Se("SEARCH_ABORTED",Wi(e),e):e instanceof Ue||e?.name==="FetchAllLimitError"?new Se("FETCH_LIMIT_EXCEEDED",Wi(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new Se("CLIENT_ERROR",e.message,e.cause):xI(e)?new Se("CLIENT_ERROR",Wi(e),e):new Se("EXECUTION_ERROR",Wi(e),e)}function cs(e,t){let n=_n(e);if(e instanceof re){let r=t[e.statementIndex];if(r!==void 0)return kc(n,e.statementIndex,r.type)}return n}var FI=2,ps=5,GI=3e4,KI=10*6e4+3e4,ds=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??FI;if(!Number.isSafeInteger(r)||r<1||r>ps)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ps}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??GI,this.quarantineMs=n.quarantineMs??KI}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 ha(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>ps)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${ps}.`)}};function BI(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function $I(e,t=r=>new Promise(i=>setTimeout(i,r)),n=BI){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 VI(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 ng(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 VI($I(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function rg(e){return ig(e,HI(e))}function ig(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=YI(o.options),s=jI(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:fs(o.minValue),maxValue:fs(o.maxValue),minLength:fs(o.minLength),maxLength:fs(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)&&!WI.has(o.type)};l.semantics=ee(l),i.push(l),o.fields&&i.push(...ig(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var WI=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function HI(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 fs(e){return e==null||e===""?void 0:e}function YI(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 jI(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function og(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 qI="Filter aborted because of too many search results";function ag(e){return e?.includes(qI)===!0}var sg="/k/v1/records.json",Es="/k/v1/records/cursor.json",zI=4096,JI=2,Mc=e=>kintone.api.url(e,!0);function XI(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(sg,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=zI?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:Mc(sg),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 Hi(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(`
|
|
14
|
+
`));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 QI(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return Hi({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}),Hi(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}),Hi(n)}}function ZI(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Dn(e,t,n){try{return await kintone.api(Mc(e),t,n)}catch(r){throw Hi(r)}}function ew(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function xc(e={}){let t=e.cursorMaxActive??JI;ew(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=XI(a),l=await fetch(s.url,s.init);if(!l.ok)throw await QI(l);let c=await l.json();return ag(l.headers.get("X-Cybozu-Warning"))?{...c,searchAborted:!0}:c}catch(s){throw Hi(s)}},async openCursor(a){let s=Mc(Es),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??(n=new ds(l,{maxActive:t})),n.snapshot().active>=t){let E=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw E.name="CursorCapacityError",E}let c=await n.acquire(),p;try{p=await n.runCreate(()=>Dn(Es,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(E){throw typeof E?.code=="string"?(c.release(),E):(c.quarantine(),new Sa(E))}let u=p.id,d=ng(Number(p.totalCount),{get:()=>Dn(Es,"GET",{id:u}),delete:()=>Dn(Es,"DELETE",{id:u}),isAlreadyReleasedError:ZI,onReleased:()=>c.release(),onReleaseUnknown:()=>c.quarantine()}),f=null,R={totalCount:d.totalCount,async nextPage(){let E=await d.nextPage();return E.next||i.delete(R),E},close(){return f||(f=d.close().finally(()=>{i.delete(R)}),f)}};return i.add(R),R},async getApps(){let s=[],l=0;for(;;){let c=await Dn("/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 Dn("/k/v1/app/form/fields.json","GET",{app:a});return rg(s.properties)},async getNumberPrecision(a){let s=await Dn("/k/v1/app/settings.json","GET",{app:a});return pf(s)},async getProcessStatuses(a){let s=await Dn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:og(s.states)}}}}var lg=new Set(["postRecords","putRecords","deleteRecords"]),Yi=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 en(e){try{return await e()}catch(t){throw new Yi(t)}}function tw(e){return()=>{throw Xe(`${String(e)} is blocked by the readonly client`)}}function Rr(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 en(()=>t(l));if(c.searchAborted===!0)throw tg();return c},openCursor:async l=>{let c=await en(()=>n(l)),p=c.nextPage.bind(c),u=c.close.bind(c);return{totalCount:c.totalCount,nextPage:()=>en(()=>p()),close:()=>en(()=>u())}},getApps:()=>en(()=>r()),getFields:l=>en(()=>i(l)),getNumberPrecision:l=>en(()=>o(l)),getProcessStatuses:l=>en(()=>a(l))});return new Proxy(s,{get(l,c,p){return lg.has(c)?tw(c):Reflect.get(l,c,p)},has(l,c){return lg.has(c)?!1:Reflect.has(l,c)}})}function nw(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 Yi(o.reason)})(),n)}}}async function gr(e,t){let n=nw(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 rw="A-Za-z",iw="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Gc=`${rw}${iw}`,cg=`${Gc}0-9_`,ow=new RegExp(`^[${Gc}]$`,"u"),aw=new RegExp(`^[${cg}]$`,"u"),sw=new RegExp(`^[${Gc}][${cg}]{0,63}$`,"u");function lw(e){return ow.test(e)}function uw(e){return aw.test(e)}function Kc(e){let t=e.normalize("NFC").toUpperCase();if(!sw.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 Fc(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 cw(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 pw(e,t){let n=t>0?e[t-1]:"";if(Fc(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,!lw(e[l]??""))return null;for(l++;l<e.length&&uw(e[l]);)l++;s=l;try{o=Kc(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&&Fc(e[l]);)l++;if(l===f)return null}let c=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&cw(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let u=l<e.length?e[l]:"";if(Fc(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 Bc(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]!==`
|
|
15
|
+
`;)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=pw(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function ug(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function pg(e,t="dev",n){let r=Bc(e),i=r.some(g=>g.profile!==null),o=new Map,a=g=>g??t;for(let g of r){if(g.source!=="physical")continue;let y=a(g.profile),m=o.get(g.appId);m||(m=new Set,o.set(g.appId,m)),m.add(y.toLowerCase())}let s=new Set(r.filter(g=>g.source==="physical").map(g=>g.appId)),l=new Map;for(let g of r){if(g.source!=="logical")continue;let y=a(g.profile).toLowerCase(),m=`logical:${g.logicalName}@${y}`;if(l.has(m))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${g.logicalName}@${y} requires logicalApps configuration.`);let S=n.resolveLogicalApp(g.logicalName,y);l.set(m,S),s.add(S)}let c=new Map,p=new Map;for(let[g,y]of o.entries()){let m=[...y].sort();if(!(m.length<=1))for(let S of m){let A=ug(s);c.set(`physical:${g}@${S}`,A),p.set(A,{source:"physical",mappedAppId:A,appId:g,profile:S})}}let u=[],d=[],f=0,R=0,E=(g,y,m,S)=>{if(!g&&y===m)return;let A=f;u.push(g),f+=g.length,d.push({normalizedStart:A,normalizedEnd:f,sourceStart:y,sourceEnd:m,...S===void 0?{}:{bindingMappedAppId:S}})};for(let g of r){let y=a(g.profile).toLowerCase(),m;if(g.source==="physical")m={source:"physical",mappedAppId:c.get(`physical:${g.appId}@${y}`)??g.appId,appId:g.appId,profile:y};else{let I=`logical:${g.logicalName}@${y}`,w=c.get(I);w===void 0&&(w=ug(s),c.set(I,w)),m={source:"logical",logicalName:g.logicalName,mappedAppId:w,appId:l.get(I),profile:y}}p.set(m.mappedAppId,m),E(e.slice(R,g.start),R,g.start);let S=e.slice(g.referenceValueEnd,g.appEnd),A=g.source==="physical"?`${e.slice(g.start,g.referenceValueStart)}${m.mappedAppId}${S}`:`APP${m.mappedAppId}${S}`;E(A,g.start,g.fullEnd,m.mappedAppId),R=g.fullEnd}return E(e.slice(R),R,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:d}}var dg=new Set(["client","logicalApps","maxRecords","fetchParallel","cursorMaxActive"]),fg=new Set([...dg,"onLimitReached"]),dw=new Set([...fg,"variables","tempTableMaxRows"]);function Eg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function ji(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Rg(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 fw(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 gg(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=Kc(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`);ji(r,`logicalApps.${n}`),t[i]=r}return t}function yg(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)}`);if(e.maxRecords!==void 0&&ji(e.maxRecords,"maxRecords"),e.fetchParallel!==void 0&&ji(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(ji(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.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function $c(e,t){Eg(e);let n=t==="run"?fg:dg;Rg(e.client);let r=yg(e,n,t==="run"?"runQuery":"explainQuery"),i=gg(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function mg(e){Eg(e),Rg(e.client),e.variables!==void 0&&fw(e.variables),e.tempTableMaxRows!==void 0&&ji(e.tempTableMaxRows,"tempTableMaxRows");let t=yg(e,dw,"runBatch"),n=gg(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 Rs(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=>Rs(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,Rs(o,t,n)])):e}function Ew(e,t,n){return e.slice(t,n)}function qi(e,t,n){let r=Bc(e),i=r.find(c=>c.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${Ew(e,i.start,i.fullEnd)}).`);if(!r.some(c=>c.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=pg(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 zi(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 Ji(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return Rs(e,n,{logicalAppDisplay:"physical"})}function gs(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 Rw(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function gw(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 ys(e,t=e.metrics){let n=YE(e);return{type:"query",rows:e.rows.map(Rw),columns:e.columns.map(r=>gw(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:gs(t)}}function Ag(e,t={}){let n=new jt(e).tokenize(),r=new qt(n,t).parse();return Ze(r),r}function hg(e,t={}){let n=new jt(e).tokenize(),r=new qt(n,t).parseStatements();return r.forEach(Ze),r}function Vc(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 Sg(e){if(e instanceof ue)return Er(e.message,e);let t=_n(e);return t.code==="PARSE_ERROR"?t:Er("SQL statement could not be parsed",e)}function yw(e){if(e.trim()==="")throw Er("SQL statement is empty");try{return Ag(e,{import:!0})}catch(t){let n=Sg(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Er("This API accepts one statement; use runBatch for multiple statements",t):n}}function Tg(e){if(ro(e)==="UNKNOWN")throw Xe("Unclassifiable statement is not allowed");return e}function Ig(e){if(e.trim()==="")throw Er("SQL statement is empty");try{return hg(e,{import:!0})}catch(t){throw Sg(t)}}function mw(e){let t=Tg(e),n=t.type;if(n==="IMPORT")throw Xe("IMPORT is disabled by default in engine library queries");if(!kn(t))throw Xe(`${n} statements are not read-only`);if(Vc(t))throw Xe("APPLY statements are not allowed in engine library queries");if(!sp(t))throw Xe(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function wg(e){let t=Tg(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw Xe("IMPORT is disabled by default in engine library batches");if(!kn(n))throw Xe(`${n.type} statements are not read-only`);if(Vc(n))throw Xe("APPLY statements are not allowed in engine library batches");if(xt(n.type))throw Xe("DML VALIDATE ONLY statements are not supported by runBatch")}function bg(e){let t=yw(e);return mw(t),t}function Ng(e){let t=Ig(e);return t.forEach(wg),t}function Pg(e){let t=e.trim(),n=Ig(t);n.forEach(wg);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 Aw(e){let t=e.error,n=t?.cause!==void 0?_n(t.cause):new Se("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return kc(n,e.index,e.type)}async function Wc(e,t){let n=[],r=[];try{let i=mg(t),o=qi(e,i.client,i.logicalApps);r=o.logicalBindings,n=Ng(o.sql);let a=await gr(o.client,p=>eR(o.sql,Rr(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw Aw(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=ys(p.result,a.metrics);l.push(n[p.index]?.type==="EXPLAIN"?Ji(d,r):d)}return u});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:c,results:l,warnings:[]}}catch(i){throw zi(cs(i,n),r)}}function Cg(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Hc(e,t){let n=[];try{let r=$c(t,"run"),i=qi(e,r.client,r.logicalApps);n=i.logicalBindings;let a=bg(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await gr(i.client,l=>tc(i.sql,Rr(l),{...a,captureColumnMeta:!0}));return Cg(s),ys(s)}catch(r){throw zi(_n(r),n)}}async function Yc(e,t){let n=[],r=[];try{let i=$c(t,"explain"),o=qi(e,i.client,i.logicalApps);r=o.logicalBindings;let a=Pg(o.sql);if(n=a.statements,a.legacySql!==void 0){let p=await gr(o.client,f=>tc(a.legacySql,Rr(f),i.executeOptions));Cg(p);let u=Ji(p.rows.map(f=>String(f.plan??"")),r),d=Dc(p)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
|
|
16
|
+
`),plan:d,metrics:gs(p.metrics)}}let s=await gr(o.client,p=>JR(o.sql,Rr(p),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive)),l=Ji(s.statements.flatMap(p=>[...s.statementCount>1?[`[${p.index+1}] ${p.type}`]:[],...p.plan]),r),c=Dc(s)??{statements:s.statements.map(p=>({index:p.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
|
|
17
|
+
`),plan:c,metrics:gs()}}catch(i){throw zi(cs(i,n),r)}}var jc="3.63.0";var Og=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);function hw(){let e=Object.create(null);return Object.freeze({versions:e,get(t){return Og(e,t)?e[t]:void 0}})}function Sw(e){if(e===null||typeof e!="object")return!1;let t=e;return t.versions!==null&&typeof t.versions=="object"&&!Array.isArray(t.versions)&&typeof t.get=="function"}function Lg(e,t,n,r=console){let i;if(e.ksql===void 0){i=hw();try{e.ksql=i}catch(a){r.error(`[kSQL engine ${t}] window.ksql registry could not be initialized; loading was aborted.`,a);return}}else if(Sw(e.ksql))i=e.ksql;else{r.error(`[kSQL engine ${t}] window.ksql already exists but is not a compatible { versions, get } registry; loading was aborted.`);return}if(Og(i.versions,t))return r.warn(`[kSQL engine ${t}] this version is already registered; the first entry was kept.`),i;let o=Object.freeze(n);try{i.versions[t]=o}catch(a){r.error(`[kSQL engine ${t}] the compatible window.ksql registry rejected registration; loading was aborted.`,a);return}return i}var Tw={version:jc,createReadonlyKintoneClient:xc,explainQuery:Yc,KsqlEngineError:Se,runBatch:Wc,runQuery:Hc};Lg(window,jc,Tw);})();
|