@rex0220/kintone-sql-tools 3.73.0 → 3.74.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 +21 -6
- package/dist-engine/index.cjs +5 -5
- package/dist-engine/index.mjs +5 -5
- package/dist-engine/ksql-engine.umd.js +5 -5
- package/dist-engine/meta/bundle-baseline.json +7 -7
- package/dist-engine/meta/cjs.json +4 -4
- package/dist-engine/meta/esm.json +4 -4
- package/dist-engine/meta/umd.json +4 -4
- package/dist-flow/index.cjs +5 -5
- package/dist-flow/index.mjs +5 -5
- package/dist-flow/meta/cjs.json +4 -4
- package/dist-flow/meta/esm.json +4 -4
- package/dist-mcp/ksql-mcp.js +33 -5
- package/dist-mcpb/ksql-mcp.mcpb +0 -0
- package/package.json +1 -1
package/dist-engine/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
async function xe(e,t,n,r,i={}){let o=i.pageSize??Py,a=Math.max(1,i.parallel??Oy),s=i.maxRecords??Ly,l=i.onLimit??"error",c=i.stopAfter;if(c!==void 0&&(!Number.isSafeInteger(c)||c<=0||c>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let d=c??s,u=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],f=!1,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,m=0,y=_p(n,E),g=await Lp(e,t,y,u,o,m);if(Op(g,i),p.push(...g.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Ke(R)}if(g.records.length<o)return p;for(m+=o,m>=$s&&(E=Dp(g.records),m=0);;){if(c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Ke(R)}let T=d-p.length,h=Math.ceil(T/o),I=Math.max(1,Math.min(a,h)),N=[];for(let U=0;U<I;U++){let C=m+U*o;if(C>=$s)break;N.push(C)}let D=_p(n,E),P=await Promise.all(N.map(U=>Lp(e,t,D,u,o,U)));for(let U of P)Op(U,i);let M=!1;for(let U of P){if(p.push(...U.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Ke(R)}if(U.records.length<o){M=!0;break}}if(M)break;if(m+=o*N.length,m>=$s){let U=P[P.length-1];E=Dp(U.records),m=0}}return p}function Op(e,t){e.searchAborted&&t.onSearchAborted?.()}function vp(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 Py=500,Oy=1,Ly=1e4,$s=1e4;async function Lp(e,t,n,r,i,o){let a=_y(n,i,o);return e({app:t,query:a,fields:r})}function _p(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 _y(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function Dp(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 Dy=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function vy(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=Dy.exec(e.trim());if(t===null)return null;let n=vy(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 Bs(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 Up(e){let t=Te(e);return t===null?null:Bs(t)}function Uy(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 Eo(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Uy(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Ro(e,t){let n=Te(e),r=Te(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Eo(n,r)}var Le="__NO_FROM__";function Vs(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function mo(e){return e.windowKind==="AGGREGATE"}function Ws(e){return e.windowKind==="VALUE"}function Ie(e){return{type:"NUMBER",value:Number(e),raw:e}}function z(e){let t=e.raw??String(e.value);return Up(t)??t}function Mp(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 My(e){return`${e.tableAlias??""}\0${e.field}`}function te(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=My(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 kp(e){return te(e).type!=="NONE"}function xp(e,t){let n=te(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),c=r.get(l.canonicalId);if(c)return c;let d={...l,field:s};return r.set(d.canonicalId,d),d},o=n.allItems.map(i).filter((s,l,c)=>c.findIndex(d=>d.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function ho(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Yt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function ky(e){return e==="SELECT"||e==="VALIDATE"||e==="UNION"||e==="WITH"||e==="EXPLAIN"||e==="SHOW_APPS"||e==="DESCRIBE"||e==="CREATE_TEMP_TABLE"||e==="DROP_TEMP_TABLE"||e==="SET_VARIABLE"||e==="DECLARE_VARIABLE"||e==="ASSERT"||e==="EXIT"}function Hs(e){return Yt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Bn(e){return!Hs(e)&&(ky(e.type)||Yt(e.type))}function Fp(e){return Bn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var Kp=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function _e(e,t){for(let n of t)e.add(n)}function yo(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"&&Kp.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=>yo(i,t)):yo(r,t))}function go(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"&&!Kp.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=>go(i,t)):go(r,t))}function Ht(e){let t=new Set;if(Yt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":_e(t,$n(e));break;case"UNION":_e(t,$p(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&_e(t,Ht(n.query));_e(t,Ht(e.query));break;case"CREATE_TEMP_TABLE":_e(t,Ht(e.query));break;default:break}return yo(e)&&t.add("STATISTICAL_AGGREGATE"),go(e)&&t.add("AGGREGATE"),t}function Gp(e){return Ht(e).size>0}function $p(e){let t=e.left.type==="SELECT"?$n(e.left):$p(e.left);return _e(t,$n(e.right)),e.all||t.add("DISTINCT"),t}function $n(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=te(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"&&_e(t,$n(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)_e(t,Gn(i.condition));return _e(t,Gn(e.where)),_e(t,Gn(e.having)),yo(e)&&t.add("STATISTICAL_AGGREGATE"),go(e)&&t.add("AGGREGATE"),t}function Gn(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")&&_e(t,$n(e.right.query));break;case"LOGICAL":_e(t,Gn(e.left)),_e(t,Gn(e.right));break;case"NOT":case"GROUP":_e(t,Gn(e.expr));break;case"EXISTS":_e(t,$n(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Bp(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Vp(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 Ao=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),pn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Cr=new Set([...pn,...Ao]),dn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",Pt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function re(e){return Ao.has(e)}function Vn(e){return pn.has(e)}function rt(e){return Cr.has(e)}var xy=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})}),zs=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})}),Pr="v1";function q(e){throw new Error(`UnsupportedError: APPLY ${Pr} scope does not support ${e}`)}function Fy(e,t){let n=Pr;Pr=e;try{return t()}finally{Pr=n}}function Ky(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 Yn(e,t){return Fy(e,()=>Gy(t,xy[e]))}function Gy(e,t){let n=Ky(e);if(n===null)return;if(n.type==="UPSERT"){By(n,t);return}let r=n.applyBlocks;if(Ys(r),!t.multipleBlocks&&r.length!==1&&q("multiple APPLY blocks in this phase"),n.type==="INSERT"){Vy(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"),Wy(i.where,t.multipleParents),Hp(r,t)}function Hp(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||q(`${r.kind} in this phase`);Yp(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)So(i,"APPEND targets");Hn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Wp(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")}Hn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Wp(r.selector.where,t.idxSelectors)}}}}function Yp(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 $y=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function jp(e,t){if(Yp(e),e.targetKind==="MULTI_VALUE"){if(!$y.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 ${Pr} scope allows only one block for table ${n.field}`);t.add(n.field)}}function By(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??[];Ys(n),Ys(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&q("multiple APPLY blocks in this phase"),zp(n,"UPSERT ON INSERT"),Hp(r,{...t,idxSelectors:!1,expectRows:!1})}function zp(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)So(i,"APPEND targets");Hn(r.values,"APPEND values")}}function Vy(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"),zp(t,"INSERT")}function Ot(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 To(e,t){let n=zs[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&qs(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Wn(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 ${Wn(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 ${Wn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Ot(t.where))throw new Error(`UnsupportedError: APPLY ${Wn(e)} execution does not support multiple-parent APPLY`)}function qs(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 qp(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Ot(t.where))&&!zs[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Wn(e)} public multiple-parent write is not connected`)}function jn(e){if(!zs[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Wn(e)} internal prepared write is not available`)}function Wn(e){return`Phase ${e.slice(5)}`}function Wy(e,t){Ot(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"),js(e,t))}function js(e,t){if(Array.isArray(e)){for(let o of e)js(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"&&re(n.name))&&q("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))js(o,t)}function Wp(e,t){Hn(e,"child row selectors",t)}function Hn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Hn(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"&&re(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}`),So(l,t,n)}if(i==="FIELD_REF"&&So(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Hn(s,t,n)}function So(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 Or(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Hy(e.op);if(t===null)throw new pe(`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:Or(e.left),right:Or(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Or(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Hy(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 Jp(e){return e.includes("%")||e.includes("_")}function Lr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function zt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function jt(e){if(e===null)return!1;if(Lr(e))return!0;switch(e.type){case"LOGICAL":return jt(e.left)||jt(e.right);case"NOT":case"GROUP":return jt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function be(e){if(e===null)return!1;if(zt(e))return!0;switch(e.type){case"LOGICAL":return be(e.left)||be(e.right);case"NOT":case"GROUP":return be(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function j(e){switch(e.type){case"BINARY":return Yy(e);case"NULL_CHECK":return zy(e);case"LOGICAL":return qy(e);case"NOT":return Jy(e);case"GROUP":return Xy(e);case"EXISTS":throw new pe("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new pe("internal error: BOOLEAN predicate reached kintone query conversion")}}function Yy(e){if(Lr(e))throw new pe("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=Qp(e.left),n=jy(e.op),r=Qy(e.right,e.op);return`${t} ${n} ${r}`}function jy(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 zy(e){let t=Qp(e.field);return e.not?`${t} != ""`:`${t} = ""`}function qy(e){let t=j(e.left),n=j(e.right),r=e.op==="AND"?"and":"or",i=Xp(e.left)?`(${t})`:t,o=Xp(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function Jy(e){return j(Or(e.expr))}function Xy(e){return`(${j(e.expr)})`}function Qp(e){if(e.type==="FUNC_FIELD")throw new pe(`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 pe("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 pe("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 pe("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 pe("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return ag(e.field)}function Qy(e,t){switch(e.type){case"VARIABLE":throw new pe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new pe(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Zp(e);case"NUMBER":return z(e);case"KINTONE_FUNC":return ed(e);case"IN_LIST":return ig(e,t);case"ARITH_VALUE":throw new pe("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 pe("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 pe("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new pe("\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 pe("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Zp(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function ed(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Zy(e)}function Zy(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?_r():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!ng(e.args.offset,e.args.offsetText)||!eg.has(e.args.unit)?_r():`${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&&!tg.has(e.args.weekday)?_r():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"||!rg(e.args.day)?_r():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return _r()}var eg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),tg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function ng(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function rg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function _r(){throw new pe("internal error: invalid relative date function AST reached kintone query conversion")}function ig(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new pe("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return og(e.values),`(${e.values.map(r=>r.type==="STRING"?Zp(r):r.type==="NUMBER"?z(r):ed(r)).join(",")})`}function og(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new pe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function ag(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Xp(e){return e.type==="LOGICAL"}var pe=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Io(e){return`'${e.replace(/'/g,"''")}'`}function zn(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return z(e);if(e.type==="STRING_FUNC")return Xs(e);let n=`${zn(e.left)}${e.op}${zn(e.right)}`;return t?n:`(${n})`}function td(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Xs(e.expr);if(e.type==="AGG_FIELD")return Et(e.expr);if(e.type==="ARITH_FIELD")return zn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Js(e.expr)}function rd(e){switch(e.type){case"STRING":return Io(e.value);case"NUMBER":return z(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(rd).join(",")})`;case"ARITH_VALUE":return zn(e.expr);case"CASE_VALUE":return Js(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Dr(e){switch(e.type){case"BINARY":return`${td(e.left)} ${e.op.replace("_"," ")} ${rd(e.right)}`;case"NULL_CHECK":return`${td(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Dr(e.left)} ${e.op} ${Dr(e.right)})`;case"NOT":return`NOT (${Dr(e.expr)})`;case"GROUP":return`(${Dr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function nd(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Io(t.value)).join(",")}]`:e.type==="AGG_REF"?de(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?Et(e):e.type==="FIELD_REF"||e.type==="ARITH"?zn(e):fn(e)}function Js(e){let t=e.branches.map(r=>`WHEN ${Dr(r.condition)} THEN ${nd(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${nd(e.elseResult)}`;return`CASE ${t}${n} END`}function sg(e){return e.type==="AGG_REF"?de(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?Et(e):fn(e)}function Xs(e){return`${e.func}(${e.args.map(sg).join(",")})`}function fn(e){switch(e.type){case"STRING":return Io(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Xs(e);case"CASE_WHEN":return Js(e);case"SCALAR_ARITH":return`(${fn(e.left)}${e.op}${fn(e.right)})`;case"CONCAT_OP":return`(${fn(e.left)}||${fn(e.right)})`}}function lg(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?zn(e,!0):fn(e)}function de(e,t,n){let r=lg(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function Et(e){return e.type==="NUMBER"?z(e):e.type==="AGG_REF"?de(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${Et(e.left)}${e.op}${Et(e.right)}`}var id=Symbol("ksql.groupingRowMeta"),od=new WeakMap;function Qs(e,t){return Object.defineProperty(e,id,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Zs(e){return e[id]}function ug(e){return Zs(e)?.includedCanonicalIds}function ad(e,t){od.set(e,t)}function qn(e,t){let n=ug(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=od.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var wo=["$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 el(e){return e.startsWith("_")||e.startsWith("$")}var cg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function nl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(nl);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"?cg.test(t.field):Object.values(t).some(nl)}function pg(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)||nl(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var dg=["_pid","_rid","_idx"];function tl(e){return[...new Set(e)]}function fg(e){switch(e.kind){case"APP":return tl([...e.fieldCodes,...wo]);case"SUBTABLE":return tl([...e.childFieldCodes,...dg,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return tl(e.columns)}}function sd(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:fg(t(r,i))}))}function ld(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 ud(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function cd(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?ld(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:ud(a,r.fieldCode)}}function Eg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Rg(e,t,n){let r=ld(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:ud(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,c)=>Eg(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=pg(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&&de(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function pd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Rg(r.name,t,n):{kind:"EXPRESSION"})}}var mg="B65_NON_GROUPED_DEPENDENCY",il=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 bo(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 ol(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return bo(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?bo(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function al(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function fd(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Ed(e){return e.type==="WINDOW_COL"}function yg(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function qt(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number")return String(e);if(Array.isArray(e)){let c=e.map(d=>qt(d,t));return c.some(d=>d===null)?null:`[${c.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||al(n))return null;if(r==="GROUP"&&n.expr!==void 0)return qt(n.expr,t);let i=typeof r=="string"?il.get(r):void 0;if(i!==void 0)return qt(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:${yg(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=ol(n);if(o!==null)try{return`FIELD:${t(o)}`}catch{return null}if(r==="FIELD"&&n.aggregateRef!==void 0)return null;let a=new Set(["alias","aliasDisplay","raw","separator","distinct","source"]),s=[];for(let c of Object.keys(n)){if(c==="type"||a.has(c))continue;let d=qt(n[c],t);if(d===null)return null;s.push(`${c}=${d}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function gg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function hg(e){let t=new Map;for(let n of e){let r=gg(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function sl(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var Ag=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function No(e){if(e&&typeof e=="object"){let t=e,n=ol(t);if(n!==null)return sl(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"?il.get(t.type):void 0;if(i!==void 0){let a=No(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function dd(e,t,n,r){let i=n==="WILDCARD"?"wildcard":sl(n),o=No(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=${mg})`)}function En(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)En(a,t);return}let n=e;if(al(n)||fd(n)||Ed(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 dd(t.clause,t.expression,"WILDCARD",t.policy);let r=ol(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&Ag.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),En(l[0],{...t,resolvingAliases:c});return}}let a=qt(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 dd(t.clause,t.expression,r,t.policy);return}let i=qt(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?il.get(n.type):void 0;if(o!==void 0){En(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||En(n[a],t)}function vr(e,t){let n=hg(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&En(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&En(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"?bo(r.key.name):r.key;En(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function rl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(rl);let t=e;return al(t)||Ed(t)?!1:fd(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(rl)}function Jn(e){return te(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&rl(t))}function Sg(e){return e.type==="FIELD_NAME"?bo(e.name):e.expr}function Rd(e,t,n){let r=te(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let R=cd(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=qt(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=qt(Sg(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(" / "),d=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:No(f)).join(", ")}`,u=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,p=i.every((f,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:d,migrationSourceSql:u,migrationGroupingFields:p}}function Co(e){if(te(e).type!=="NONE"||!Jn(e))return;let t={identities:new Set,resolveField:n=>`ast:${sl(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};vr(e,t)}function md(e){return`FIELD:${e}`}var yd=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 ll(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Ve(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Ve(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=>Ve(r,t))}}function Lo(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Lo(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){Ve(n.arg,t);return}Object.values(n).forEach(r=>Lo(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 Tg(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 Ig(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${ll(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${ll(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);ad(e,r.canonicalId)}function ul(e){let t=te(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Ve(i,n);Ve(e.having,n),Ve(e.orderBy,n);let r=[];Ve(e.where,r),Ve(e.joins,r),Lo(e.columns,r),Lo(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&Ve(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.");Co(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 gd(e,t,n=()=>{}){ul(e);let r=te(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&Ve(c,i);if(Ve(e.having,i),Ve(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=xp(e,t),a=new Set,s=[];for(let c of o.allItems){let d=c;if(!d.physical)throw new Error(`ArgumentError: grouping item ${ll(c.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let c of i)Ig(c,t,a);vr(e,{identities:new Set([...a].map(md)),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(!Tg(c))continue;let d="alias"in c?c.alias:null;if(d!==null&&l.has(d))throw new Error(`ArgumentError: aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function wg(e){return e.some(t=>t.type==="WINDOW_COL")}function We(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||te(e).type!=="NONE"||e.distinct||wg(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"&&Id(t.expr)||t.type==="SCALAR_VALUE_COL"&&Mr(t.expr))||Lt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Lt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return hd(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Lr(e);case"NULL_CHECK":return hd(e.field);case"LOGICAL":return Lt(e.left)||Lt(e.right);case"NOT":case"GROUP":return Lt(e.expr);case"EXISTS":return!0}}function hd(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Do(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(j(e.where)),e.orderBy.length>0){let i=e.orderBy.map(bg).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:Ng(e.columns),totalCount:!1}}function Td(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Lt(e.where)&&n.push(j(e.where)),{app:t,query:n.join(" "),fields:[]}}function Rn(e,t,n){let i=bd(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 bg(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 Ng(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(vo(r.field)):r.type==="ARITH_COL"?Ur(r.expr,n):r.type==="STRFUNC_COL"?cl(r.expr,n):r.type==="SCALAR_VALUE_COL"&&Xn(r.expr,n);return[...new Set(n)]}function Cg(e,t){Ur(e.left,t),Ur(e.right,t)}function Ur(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(vo(e.field)):e.type==="ARITH"?Cg(e,t):e.type==="STRING_FUNC"&&cl(e,t)}function vo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function cl(e,t){for(let n of e.args)Pg(n,t)}function Pg(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){_o(e,t);return}Xn(e,t)}function Xn(e,t){if(e.type==="FIELD"){t.push(vo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){cl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Xn(e.left,t),Xn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Ad(n.result,t);e.elseResult&&Ad(e.elseResult,t)}}function Ad(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){_o(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Ur(e,t);return}Xn(e,t)}}function _o(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Og(e.arg,t);return}e.type==="AGG_ARITH"&&(_o(e.left,t),_o(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(vo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function Og(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Ur(e,t):Xn(e,t)}function Id(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Mr(t))}function Mr(e){return e.type==="STRING_FUNC"?Id(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Mr(e.left)||Mr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Sd(t.result))||e.elseResult!==null&&Sd(e.elseResult):!1}function Sd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Mr(e)}function wd(e,t){let n=new Set,r=bd(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function bd(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,c=new Map;for(let A of o)A.alias&&c.set(A.alias,A),A.cteName!==null?c.set(A.cteName,A):A.subtableCode||(c.set(`APP${A.appId}`,A),c.set(`app${A.appId}`,A));let d=Lg(e.columns),u=A=>{let w=a.get(A);w&&(w.allFields=!0,w.fields.clear())},p=()=>{for(let A of o)u(A)},f=()=>{for(let A of o)A.subtableCode&&u(A)},R=(A,w)=>{let k=a.get(A);if(!(!k||k.allFields)){if(A.subtableCode){if(w.startsWith("_p.")){let O=w.slice(3);O&&O!=="*"&&k.fields.add(O);return}return void 0}w&&k.fields.add(w)}},E=(A,w="select",k)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){p();return}if(F==="_p"){f();return}let V=c.get(F);if(V){u(V);return}return}if(w==="groupBy"&&k!==void 0){if(k.kind==="PHYSICAL"){let F=r[k.sourceIndex];F&&(n||F.cteName===null)&&R(F,k.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&d.has(A)||(w==="orderBy"||w==="having"||w==="groupBy")&&_g(A))return;let O=A.indexOf(".");if(O>0){let F=A.slice(0,O),V=A.slice(O+1);if(F==="_p"){l&&R(l,`_p.${V}`);return}let G=c.get(F);if(G){R(G,V);return}if(n)return}n?n.unqualified.add(A):s&&R(s,A)},m=(A,w,k="select")=>{if(w){if(w==="_p"){l&&R(l,`_p.${A}`);return}let O=c.get(w);if(O){R(O,A);return}if(n)return}E(A,k)},y=(A,w="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){E(A.field,w);return}if(A.type==="ARITH"){y(A.left,w),y(A.right,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}},g=(A,w="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&N(A.arg,w);return}A.type==="AGG_ARITH"&&(g(A.left,w),g(A.right,w)),A.type==="AGG_GROUP_KEY"&&m(A.field,A.tableAlias??null,w)},T=(A,w="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"||A.type==="AGG_GROUP_KEY"||A.type==="VARIABLE"){g(A,w);return}I(A,w)},h=(A,w="select")=>{for(let k of A.args)T(k,w)},I=(A,w="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){I(A.left,w),I(A.right,w);return}A.type==="CASE_WHEN"&&P(A,w)},N=(A,w="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,w);return}I(A,w)},D=(A,w="select")=>{if(A.type!=="ARRAY"){if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){g(A,w);return}if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,w);return}I(A,w)}},P=(A,w="select")=>{for(let k of A.branches)C(k.condition,w),D(k.result,w);A.elseResult&&D(A.elseResult,w)},M=(A,w="select")=>{if(A.type==="FIELD"){if(A.aggregateRef){g(A.aggregateRef,w);return}m(A.field,A.tableAlias,w);return}if(A.type==="FUNC_FIELD"){h(A.expr,w);return}if(A.type==="AGG_FIELD"){g(A.expr,w);return}if(A.type==="ARITH_FIELD"){y(A.expr,w);return}A.type!=="GROUPING_FIELD"&&P(A.expr,w)},U=(A,w="select")=>{if(A.type==="ARITH_VALUE"){y(A.expr,w);return}if(A.type==="CASE_VALUE"){P(A.expr,w);return}},C=(A,w="where")=>{if(A)switch(A.type){case"BINARY":M(A.left,w),U(A.right,w);return;case"NULL_CHECK":M(A.field,w);return;case"LOGICAL":C(A.left,w),C(A.right,w);return;case"NOT":case"GROUP":C(A.expr,w);return;case"EXISTS":case"BOOLEAN":return}},v=(A,w)=>{if(A.type==="FIELD_NAME"){E(A.name,"groupBy",w);return}if(A.type==="ARITH_KEY"){y(A.expr,"groupBy");return}h(A.expr,"groupBy")},b=(A,w="orderBy")=>{if(A.type==="FIELD_NAME"){E(A.name,w);return}if(A.type==="ARITH_KEY"){y(A.expr,w);return}A.type!=="GROUPING_KEY"&&h(A.expr,w)};for(let A of e.columns)switch(A.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&N(A.arg,"select");break;case"ARITH_AGG_COL":g(A.expr,"select");break;case"ARITH_COL":y(A.expr,"select");break;case"CASE_COL":P(A.expr,"select");break;case"STRFUNC_COL":h(A.expr,"select");break;case"SCALAR_VALUE_COL":I(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(A.windowKind==="AGGREGATE"||A.windowKind==="VALUE")&&A.arg.type!=="WILDCARD"&&N(A.arg,"select");for(let w of A.partitionBy)m(w.field,w.tableAlias,"select");for(let w of A.orderBy)b(w.key,"select");break}for(let A of e.joins)A.type!=="CROSS"&&(m(A.on.left.field,A.on.left.tableAlias,"where"),m(A.on.right.field,A.on.right.tableAlias,"where"));C(e.where,"where");let _=te(e);if(_.type==="PLAIN")_.allItems.forEach((A,w)=>v(A,t?.items[w]));else if(_.type==="GROUPING_SETS")for(let A of _.allItems)m(A.field,A.tableAlias,"select");C(e.having,"having");for(let A of e.orderBy)b(A.key);return a}function Lg(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(de(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 _g(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function Jt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||We(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||kp(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function Xt(e){let t=e.ctes[0].query,n=e.query,r=Uo(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 Uo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Nd(e.left,t)};case"NULL_CHECK":return{...e,field:Nd(e.field,t)};case"LOGICAL":return{...e,left:Uo(e.left,t),right:Uo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Uo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Nd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var Dg=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),vg=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ne(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":vg.has(e.fieldType)?t="option":Dg.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 Qn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Mo(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 He=["=","!=",">","<",">=","<="],Ug=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Mg=new Set(He),kg=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"])]]),xg=new Map([["TODAY",new Set(He)],["NOW",new Set(He)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Fg=["=","!=","in","not in"],Kg=new Map([["RECORD_NUMBER",new Set([...He,"in","not in"])],["__ID__",new Set([...He,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(He)],["UPDATED_TIME",new Set(He)],["DATE",new Set(He)],["TIME",new Set(He)],["DATETIME",new Set(He)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...He,"in","not in"])],["CALC",new Set([...He,"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(Fg)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Gg=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"])]]),dl=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"]),Od=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function xo(e){return Kg.get(e)??new Set}function Ld(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"&&dl.has(o.fieldType)&&xo(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 Se(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:xr(e,t)}function xr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return $g(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?pl():Wg(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return pl();case"GROUP":return xr(e.expr,t);case"NOT":{let n=xr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Dd(n.reasons)?Kr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=xr(e.left,t),r=xr(e.right,t);return Yg(e.op,n,r)}}}function $g(e,t,n,r){if(n.type==="KINTONE_FUNC"&&re(n.name))return Bg(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Cd(n))return Pd(e,t,n,r);if(n.type==="IN_LIST"){let d=n.values.filter(u=>u.type==="KINTONE_FUNC");if(d.length>0)return n.values.length===1&&d.length===1?Pd(e,t,d[0],r):ko("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",d[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Fr(e))}if(t.type!=="FIELD")return pl();let i=r(t);if(!i)return Zn("WHERE_FIELD_UNRESOLVED",t.field,void 0,Fr(e));let o=Fr(e);if(!_d(i.fieldType,o))return Zn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Hg(i.fieldType,e))return Zn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=xo(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Cd(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 Cd(e){return e.type==="KINTONE_FUNC"&&pn.has(e.name)}function Pd(e,t,n,r){let i=Fr(e),o=n.name;if(!pn.has(o)||t.type!=="FIELD")return ko("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=kg.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?ko("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):xg.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:ko("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function Bg(e,t,n,r){let i=Fr(e),o=n.name;if(t.type!=="FIELD")return kr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Vg(n)?Mg.has(i)?!Ug.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?kr("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}]}:kr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):kr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):kr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Vg(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 Wg(e,t,n){let r=n(e);return r?_d(r.fieldType,t)?!dl.has(r.fieldType)&&!Od.has(r.fieldType)?Zn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:Zn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):Zn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function _d(e,t){let n=Gg.get(e);return n===void 0||n.has(t)}function Hg(e,t){return dl.has(e)?!0:Od.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Fr(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 Yg(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Kr({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")?Kr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Kr({capability:"LOCAL_ONLY",reasons:r})}function pl(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Zn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function ko(e,t,n,r,i){return Kr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function kr(e,t,n,r,i){return vd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Dd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&re(t.functionName))}function jg(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&pn.has(t.functionName))}function vd(e){if(e.capability==="EXACT_PUSHDOWN"||!Dd(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&&re(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 zg(e){if(e.capability==="EXACT_PUSHDOWN"||!jg(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&&pn.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 Kr(e){return zg(vd(e))}function Gr(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 Fo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Ko(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Gr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function Go(e){let t=e.raw??String(e.value),n=Te(t);if(n===null)return!1;if(n.sign===0)return z(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=Bs(n);return z(e)===o}var qg=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Jg=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Xg=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Qg=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function $o(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"?Xg.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?eh(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Zg(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"&&Go(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&Go(e.right)?"exact":"unsafe":Jg.has(r)?fl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?fl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Qg.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Gr(e.right.value)?"exact":"unsafe":r==="TIME"?Fo(e.right.value)?"exact":"unsafe":Ko(e.right.value)?"exact":"unsafe":qg.has(r)?!fl(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 Ud(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 fl(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 Zg(e){let t=n=>n.type==="NUMBER"&&Go(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 eh(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function El(e,t={}){return Ho(e,t).condition}function Ho(e,t={}){return Bo(e,n=>th(n,t))}function $r(e,t={}){return Vo(e,n=>Ud(n,r=>Wo(r,t)))}function Bo(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=Bo(e.left,t),r=Bo(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 Bo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function Vo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Vo(e.left,t),r=Vo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return Vo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function th(e,t){if(nh(e,t)||rh(e,t))return"exact";if(e.left.type!=="FIELD"||!Wo(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||Se(e,i=>{if(!Wo(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ne({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":$o(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function nh(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Wo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function rh(e,t){return!ih(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function ih(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 Wo(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?Ho(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;er(r,o);let a=new Set;return er(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function mn(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=Br(e.where,{...r,extractCondition:i&&o&&n,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map,c=new Map;if(e.where!==null)for(let u of e.joins){if(u.type!=="INNER"&&u.type!=="CROSS"||!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let p=Ho(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});p.condition!==null&&p.relation!==null&&(l.set(u.table.alias,p.condition),c.set(u.table.alias,p.relation))}let d=new Set(a.appliedKlikes);for(let u of l.values())er(u,d);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:c,appliedKlikes:d,allKlikes:a.allKlikes}}function Rl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function er(e,t){if(e!==null){if(zt(e)){t.add(e);return}switch(e.type){case"LOGICAL":er(e.left,t),er(e.right,t);return;case"NOT":case"GROUP":er(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Yo(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=Ae(t.where);if(l.length===0||!sh(l,a)||o===null||!Md(o,l))return null;let c={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:ah(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},d={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:c};return oh(d,e,l),d}function oh(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(!Md(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Ae(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&rt(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function ah(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&rt(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&rt(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 sh(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Md(e,t){let n=new Map;for(let r of t){if(!rt(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 me=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function kd(e){xd(e)}function yl(e){if(Rl(e).length>0)throw new me("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 xd(e){switch(e.type){case"SELECT":tr(e);return;case"UNION":hl(e);return;case"WITH":Fd(e);return;case"EXPLAIN":xd(e.query);return;case"CREATE_TEMP_TABLE":gl(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":yn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Ot(e.where)&&be(e.where)){ml(e.where),yn(e);return}if(Qt(e)&&e.subtableCode)throw new me("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&&be(e.where)&&!ch(e,e.where)){ml(e.where),yn(e);return}if(Qt(e))throw new me("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(Qt(e)&&e.subtableCode)throw new me("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&&be(e.where)){ml(e.where),yn(e);return}if(Qt(e))throw new me("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(Qt(e))throw new me("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Qt(e))throw new me("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Qt(e))throw new me("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(Qt(e))throw new me("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 ml(e){zo(e,t=>{if(!zt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new me("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 me("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 gl(e){e.type==="SELECT"?tr(e):e.type==="UNION"?hl(e):Fd(e)}function hl(e){gl(e.left),tr(e.right)}function Fd(e){if(Jt(e)){tr(Xt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?tr(t.query):t.query.type==="UNION"&&hl(t.query);gl(e.query)}function tr(e){if(uh(e),be(e.where)&&!(We(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=mn(e,{allowUnresolvedVariables:!0});if(Rl(n).length===0){yn(e);return}if(lh(e)){yn(e);return}throw new me("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")}yn(e)}function lh(e){return e.where!==null&&Ae(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER"||t.type==="CROSS")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function uh(e){zo(e,t=>{if(!zt(t))return;if(!jo(e.where,t))throw new me("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 me("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 me("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 yn(e){qo(e,t=>{t.type==="SELECT"&&tr(t)},!0)}function Qt(e){let t=!1;return qo(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function ch(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 jo(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return jo(e.left,t)||jo(e.right,t);case"NOT":case"GROUP":return jo(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function zo(e,t){if(Array.isArray(e)){for(let r of e)zo(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&&ph(r)||zo(r,t)}function qo(e,t,n=!1){if(Array.isArray(e)){for(let i of e)qo(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))qo(i,t)}function ph(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 Kd(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(dh(t))throw new Vr;return;default:return}}function dh(e){let t=!1;return Jo(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||fh(n.where)&&(t=!0)}),t}function fh(e){let t=!1;return Jo(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Jo(e,t){if(Array.isArray(e)){for(let r of e)Jo(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Jo(r,t)}function Zt(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 Xo(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 Zt(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return Zt(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 Zt(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return Zt(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return Zt(e,t,3,3);case"REGEXP_REPLACE":return Zt(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return Zt(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return Zt(e,t,0,0)}}var Tl=1e4,_t=Tl,Q=e=>new Error(`ArgumentError: ${e}`),Eh=e=>e.type==="VARIABLE",en=e=>e?.type==="STRING"&&e.fromVariable===!0;function Rh(e){return e.type==="NUMBER"?Number(z(e)):e.value}function nr(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 Al(e){let t=nr(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 mh(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw Q("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 Gd(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)?Q("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)?Q("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):Q("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 Q("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 Q(`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 Wr(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 Hr(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 $d(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Qo(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 Sl(e){return e.year*12+e.month-1}function Bd(e,t){if(t==="MONTH"&&e.day!==1)throw Q("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 Q("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 yh(e,t,n){let r=Al(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=Al(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return Qo(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=Sl(t)+(n.coefficient<0&&t.day!==1?1:0);return Qo(Sl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return Qo(e.year,a,n.coefficient)}function Vd(e,t,n){if(e<1||e>9999)throw Q("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 gh(e){let t=Math.floor(e/12),n=e-t*12+1;return Vd(t,n,1)}function Wd(e){if(e.args.length<2||e.args.length>3)throw Q("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(g=>Rh(g));["start","stop","step"].forEach((g,T)=>{if(t[T]==="")throw Q(`GENERATE_SERIES \u306E ${g} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`)});let[n,r,i]=t,[o,a,s]=e.args,l=typeof n=="string"?nr(n):null,c=typeof r=="string"?nr(r):null,d=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some($d))throw Q("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||c||d||u||typeof n=="string"&&typeof r=="string"&&!(en(o)&&en(a)&&Wr(n)!==null&&Wr(r)!==null)){if(!l||!c)throw Q(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 Q("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let g=i===void 0?{coefficient:1,unit:"DAY"}:Gd(i);return Bd(l,g.unit),{kind:"DATE",start:n,stop:r,step:g.coefficient,dateUnit:g.unit,rowCount:yh(l,c,g)}}let p=o.type==="NUMBER"?Hr(o):en(o)?Wr(n):null,f=a.type==="NUMBER"?Hr(a):en(a)?Wr(r):null;if(p===null||f===null)throw(o.type==="NUMBER"||en(o))&&(a.type==="NUMBER"||en(a))?Q("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Q("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"?Hr(s):en(s)?Wr(i):null;if(R===null)throw s?.type==="NUMBER"||en(s)?Q("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Q("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=p,m=f,y=R;if(y===0)throw Q("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:m,step:y,rowCount:Qo(E,m,y)}}function hh(e){if(e.args.length<2||e.args.length>3)throw Q("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(Eh)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw Q(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&Hr(o)===null)throw Q("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($d(o.value))throw Q("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)&&nr(o.value)===null)throw Q("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=Hr(n);if(r===null)throw Q("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 Q("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=Gd(n.value),i=e.args[0];if(i?.type==="STRING"){let o=nr(i.value);o&&Bd(o,r.unit)}}return null}let t=Wd(e);if(t.rowCount>_t)throw Q(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${_t} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function Hd(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=hh(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>_t)throw Q(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${_t} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Zo(e){let t=Wd(e);if(t.rowCount>_t)throw Q(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${_t} \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 Q("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=nr(t.start);if(t.dateUnit==="MONTH"){let i=Sl(r);for(let o=0;o<t.rowCount;o++)n.push(gh(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(Vd(r.year+i*t.step,1,1));else{let i=Al(t.start);for(let o=0;o<t.rowCount;o++)n.push(mh(i+o*t.step))}}return{...t,values:n}}function it(e){Ah(e),Kd(e),kd(e),Hd(e)}function Ah(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;Xo(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var ta=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],bl="\0as-of:";function Yr(e){return`${bl}${e}`}function rr(e){if(!e.startsWith(bl))return null;let t=e.slice(bl.length);return jr(t)?t:null}function jr(e){return ta.includes(e)}function Nl(e=new Date,t){if(!(e instanceof Date)||!Number.isFinite(e.getTime()))throw new Error("ArgumentError: asOf must be a valid Date.");let n;try{n=new Intl.DateTimeFormat("en-CA",{...t===void 0?{}:{timeZone:t},year:"numeric",month:"2-digit",day:"2-digit"}),n.format(e)}catch{throw new Error(`ArgumentError: invalid IANA timezone: ${t??""}.`)}let r=n.formatToParts(e),i=Il(r,"year"),o=Il(r,"month"),a=Il(r,"day"),s=`${wl(i)}-${ea(o)}-${ea(a)}`,l=`${wl(i)}-${ea(o)}-01`,c=o===12?i+1:i,d=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${wl(c)}-${ea(d)}-01`}}}function Il(e,t){let n=e.find(i=>i.type===t)?.value,r=Number(n);if(!Number.isInteger(r))throw new Error(`InternalError: Intl.DateTimeFormat did not return ${t}.`);return r}function ea(e){return String(e).padStart(2,"0")}function wl(e){return String(e).padStart(4,"0")}var na=16,Yd=64,oe=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function zr(e,t,n){if(Array.isArray(e)){for(let r of e)zr(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))zr(a,t,n)}}var Sh=new Set(["=","!=","<>",">","<",">=","<="]);function Cl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Cl(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){if(rr(r.name)!==null)return;t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",c=n&&i==="BINARY"&&a==="right"&&l&&Sh.has(String(r.op));Cl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?c:o?n:!1)}}}function Th(e){let t=e.type==="EXPLAIN"?e.query:e;return Yt(t.type)||t.type==="VALIDATE"}function Pl(e){if(Array.isArray(e)){for(let t of e)Pl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&ul(e);for(let n of Object.values(t))Pl(n)}}function Ol(e){if(e.length===0)throw new oe("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{Pl(u)}catch(f){throw f instanceof Error?new oe(f.message,p):f}try{Yn("phase15b",u),it(u)}catch(f){throw f instanceof me||f instanceof Vr?new oe(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new oe(f.message,p):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let p=u==="SET_VARIABLE"?"SET":"DECLARE";throw new oe(`ArgumentError: ${p} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let p=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new oe(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((u,p)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let 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 oe(D,p)}let R=ho(u),E=[],m=[],y=new Set,g=new Set,T=new Set,h=[];Cl(u,h);let I=new Set;for(let D of h){let P=o.get(D.name);if(P===void 0)throw new oe(`ParseError: variable @${D.name} is not defined before statement ${p+1}.`,p);if(P.kind==="scalar"&&D.kind==="array-in-list")throw new oe(`ParseError: scalar variable @${D.name} cannot be used as IN @${D.name}; use IN (@${D.name}) instead.`,p);if(P.kind==="array"&&D.kind!=="array-in-list")throw new oe(`ParseError: array variable @${D.name} can only be used as IN @${D.name}.`,p);if(P.relativeDate&&Th(u))throw new oe(`ArgumentError: RELATIVE_DATE variable @${D.name} cannot be used in DML or VALIDATE statements.`,p);if(P.relativeDate&&!D.relativeDateAllowed)throw new oe(`ArgumentError: RELATIVE_DATE variable @${D.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(D.name)||(P.referencedBy.push(p),I.add(D.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new oe(`ParseError: variable @${u.name} is already defined.`,p);if(o.set(u.name,{index:p,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>Yd)throw new oe(`ParseError: batch exceeds ${Yd} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?zr(u.query,y,g):u.type==="DROP_TEMP_TABLE"||zr(u,y,g);let N=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let D=new Set,P=new Set;zr(u.select,D,P),N=D.size>0&&P.size===0}for(let D of y){let P=t.get(D);if(P===void 0)throw new oe(`ParseError: temp table ${D} is not defined in this batch.`,p);T.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(U=>U.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(U=>U.field)]:"fields"in u?u.fields:[],P=JSON.stringify(D),M=t.get(f);if(M===void 0){if(t.set(f,p),n.set(f,P),r.push(f),E.push(f),t.size>na)throw new oe(`ParseError: batch exceeds ${na} temp tables.`,p)}else{if(n.get(f)!==P)throw new oe(`ParseError: validation error table ${f} has a different payload schema.`,p);T.add(M)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new oe(`ParseError: temp table ${u.name} is already defined.`,p);if(t.set(u.name,p),r.push(u.name),E.push(u.name),t.size>na)throw new oe(`ParseError: batch exceeds ${na} temp tables.`,p)}if(u.type==="DROP_TEMP_TABLE"){let D=t.get(u.name);if(D===void 0)throw new oe(`ParseError: temp table ${u.name} is not defined in this batch.`,p);T.add(D),m.push(u.name),t.delete(u.name)}i.push({index:p,statementType:R,isDml:Hs(u),isReadOnly:Bn(u),hasWhere:Bp(u),insertValuesCount:Vp(u),appIds:[...g].sort((D,P)=>D-P),tempTablesCreated:E,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...T].sort((D,P)=>D-P),tempOnlySource:N,targetAppId:Yt(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:Gp(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),c=i.some(u=>u.requiresCompleteInput),d=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:c,tempTables:r,variables:d,warnings:d.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}var ra=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 De=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"}},tn=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(ir(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(Ll(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new De(`\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 De("\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 De("\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&&ir(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&ir(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&ir(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||!ir(this.input[this.pos]))throw new De("\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&&ir(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&&jd(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=ra.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(!Ll(n))throw new De("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&jd(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new De(`@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 De("\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 De("\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
|
+
async function xe(e,t,n,r,i={}){let o=i.pageSize??Py,a=Math.max(1,i.parallel??Oy),s=i.maxRecords??Ly,l=i.onLimit??"error",c=i.stopAfter;if(c!==void 0&&(!Number.isSafeInteger(c)||c<=0||c>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let d=c??s,u=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],f=!1,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,m=0,y=_p(n,E),g=await Lp(e,t,y,u,o,m);if(Op(g,i),p.push(...g.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Ke(R)}if(g.records.length<o)return p;for(m+=o,m>=$s&&(E=Dp(g.records),m=0);;){if(c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Ke(R)}let T=d-p.length,h=Math.ceil(T/o),I=Math.max(1,Math.min(a,h)),N=[];for(let U=0;U<I;U++){let C=m+U*o;if(C>=$s)break;N.push(C)}let D=_p(n,E),P=await Promise.all(N.map(U=>Lp(e,t,D,u,o,U)));for(let U of P)Op(U,i);let M=!1;for(let U of P){if(p.push(...U.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Ke(R)}if(U.records.length<o){M=!0;break}}if(M)break;if(m+=o*N.length,m>=$s){let U=P[P.length-1];E=Dp(U.records),m=0}}return p}function Op(e,t){e.searchAborted&&t.onSearchAborted?.()}function vp(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 Py=500,Oy=1,Ly=1e4,$s=1e4;async function Lp(e,t,n,r,i,o){let a=_y(n,i,o);return e({app:t,query:a,fields:r})}function _p(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 _y(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function Dp(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 Dy=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function vy(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=Dy.exec(e.trim());if(t===null)return null;let n=vy(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 Bs(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 Up(e){let t=Te(e);return t===null?null:Bs(t)}function Uy(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 Eo(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Uy(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Ro(e,t){let n=Te(e),r=Te(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Eo(n,r)}var Le="__NO_FROM__";function Vs(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function mo(e){return e.windowKind==="AGGREGATE"}function Ws(e){return e.windowKind==="VALUE"}function Ie(e){return{type:"NUMBER",value:Number(e),raw:e}}function z(e){let t=e.raw??String(e.value);return Up(t)??t}function Mp(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 My(e){return`${e.tableAlias??""}\0${e.field}`}function te(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=My(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 kp(e){return te(e).type!=="NONE"}function xp(e,t){let n=te(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),c=r.get(l.canonicalId);if(c)return c;let d={...l,field:s};return r.set(d.canonicalId,d),d},o=n.allItems.map(i).filter((s,l,c)=>c.findIndex(d=>d.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function ho(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Yt(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function ky(e){return e==="SELECT"||e==="VALIDATE"||e==="UNION"||e==="WITH"||e==="EXPLAIN"||e==="SHOW_APPS"||e==="DESCRIBE"||e==="CREATE_TEMP_TABLE"||e==="DROP_TEMP_TABLE"||e==="SET_VARIABLE"||e==="DECLARE_VARIABLE"||e==="ASSERT"||e==="EXIT"}function Hs(e){return Yt(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Bn(e){return!Hs(e)&&(ky(e.type)||Yt(e.type))}function Fp(e){return Bn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var Kp=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function _e(e,t){for(let n of t)e.add(n)}function yo(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"&&Kp.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=>yo(i,t)):yo(r,t))}function go(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"&&!Kp.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=>go(i,t)):go(r,t))}function Ht(e){let t=new Set;if(Yt(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":_e(t,$n(e));break;case"UNION":_e(t,$p(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&_e(t,Ht(n.query));_e(t,Ht(e.query));break;case"CREATE_TEMP_TABLE":_e(t,Ht(e.query));break;default:break}return yo(e)&&t.add("STATISTICAL_AGGREGATE"),go(e)&&t.add("AGGREGATE"),t}function Gp(e){return Ht(e).size>0}function $p(e){let t=e.left.type==="SELECT"?$n(e.left):$p(e.left);return _e(t,$n(e.right)),e.all||t.add("DISTINCT"),t}function $n(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=te(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"&&_e(t,$n(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)_e(t,Gn(i.condition));return _e(t,Gn(e.where)),_e(t,Gn(e.having)),yo(e)&&t.add("STATISTICAL_AGGREGATE"),go(e)&&t.add("AGGREGATE"),t}function Gn(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")&&_e(t,$n(e.right.query));break;case"LOGICAL":_e(t,Gn(e.left)),_e(t,Gn(e.right));break;case"NOT":case"GROUP":_e(t,Gn(e.expr));break;case"EXISTS":_e(t,$n(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Bp(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Vp(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 Ao=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),pn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Cr=new Set([...pn,...Ao]),dn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",Pt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function re(e){return Ao.has(e)}function Vn(e){return pn.has(e)}function rt(e){return Cr.has(e)}var xy=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})}),zs=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})}),Pr="v1";function q(e){throw new Error(`UnsupportedError: APPLY ${Pr} scope does not support ${e}`)}function Fy(e,t){let n=Pr;Pr=e;try{return t()}finally{Pr=n}}function Ky(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 Yn(e,t){return Fy(e,()=>Gy(t,xy[e]))}function Gy(e,t){let n=Ky(e);if(n===null)return;if(n.type==="UPSERT"){By(n,t);return}let r=n.applyBlocks;if(Ys(r),!t.multipleBlocks&&r.length!==1&&q("multiple APPLY blocks in this phase"),n.type==="INSERT"){Vy(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"),Wy(i.where,t.multipleParents),Hp(r,t)}function Hp(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||q(`${r.kind} in this phase`);Yp(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)So(i,"APPEND targets");Hn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Wp(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")}Hn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Wp(r.selector.where,t.idxSelectors)}}}}function Yp(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 $y=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function jp(e,t){if(Yp(e),e.targetKind==="MULTI_VALUE"){if(!$y.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 ${Pr} scope allows only one block for table ${n.field}`);t.add(n.field)}}function By(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??[];Ys(n),Ys(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&q("multiple APPLY blocks in this phase"),zp(n,"UPSERT ON INSERT"),Hp(r,{...t,idxSelectors:!1,expectRows:!1})}function zp(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)So(i,"APPEND targets");Hn(r.values,"APPEND values")}}function Vy(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"),zp(t,"INSERT")}function Ot(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 To(e,t){let n=zs[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&qs(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Wn(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 ${Wn(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 ${Wn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Ot(t.where))throw new Error(`UnsupportedError: APPLY ${Wn(e)} execution does not support multiple-parent APPLY`)}function qs(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 qp(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Ot(t.where))&&!zs[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Wn(e)} public multiple-parent write is not connected`)}function jn(e){if(!zs[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Wn(e)} internal prepared write is not available`)}function Wn(e){return`Phase ${e.slice(5)}`}function Wy(e,t){Ot(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"),js(e,t))}function js(e,t){if(Array.isArray(e)){for(let o of e)js(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"&&re(n.name))&&q("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))js(o,t)}function Wp(e,t){Hn(e,"child row selectors",t)}function Hn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Hn(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"&&re(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}`),So(l,t,n)}if(i==="FIELD_REF"&&So(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Hn(s,t,n)}function So(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 Or(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Hy(e.op);if(t===null)throw new pe(`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:Or(e.left),right:Or(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Or(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Hy(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 Jp(e){return e.includes("%")||e.includes("_")}function Lr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function zt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function jt(e){if(e===null)return!1;if(Lr(e))return!0;switch(e.type){case"LOGICAL":return jt(e.left)||jt(e.right);case"NOT":case"GROUP":return jt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function be(e){if(e===null)return!1;if(zt(e))return!0;switch(e.type){case"LOGICAL":return be(e.left)||be(e.right);case"NOT":case"GROUP":return be(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function j(e){switch(e.type){case"BINARY":return Yy(e);case"NULL_CHECK":return zy(e);case"LOGICAL":return qy(e);case"NOT":return Jy(e);case"GROUP":return Xy(e);case"EXISTS":throw new pe("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new pe("internal error: BOOLEAN predicate reached kintone query conversion")}}function Yy(e){if(Lr(e))throw new pe("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=Qp(e.left),n=jy(e.op),r=Qy(e.right,e.op);return`${t} ${n} ${r}`}function jy(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 zy(e){let t=Qp(e.field);return e.not?`${t} != ""`:`${t} = ""`}function qy(e){let t=j(e.left),n=j(e.right),r=e.op==="AND"?"and":"or",i=Xp(e.left)?`(${t})`:t,o=Xp(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function Jy(e){return j(Or(e.expr))}function Xy(e){return`(${j(e.expr)})`}function Qp(e){if(e.type==="FUNC_FIELD")throw new pe(`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 pe("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 pe("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 pe("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 pe("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return ag(e.field)}function Qy(e,t){switch(e.type){case"VARIABLE":throw new pe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new pe(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Zp(e);case"NUMBER":return z(e);case"KINTONE_FUNC":return ed(e);case"IN_LIST":return ig(e,t);case"ARITH_VALUE":throw new pe("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 pe("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 pe("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new pe("\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 pe("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Zp(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function ed(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Zy(e)}function Zy(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?_r():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!ng(e.args.offset,e.args.offsetText)||!eg.has(e.args.unit)?_r():`${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&&!tg.has(e.args.weekday)?_r():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"||!rg(e.args.day)?_r():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return _r()}var eg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),tg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function ng(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function rg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function _r(){throw new pe("internal error: invalid relative date function AST reached kintone query conversion")}function ig(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new pe("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return og(e.values),`(${e.values.map(r=>r.type==="STRING"?Zp(r):r.type==="NUMBER"?z(r):ed(r)).join(",")})`}function og(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new pe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function ag(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Xp(e){return e.type==="LOGICAL"}var pe=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Io(e){return`'${e.replace(/'/g,"''")}'`}function zn(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return z(e);if(e.type==="STRING_FUNC")return Xs(e);let n=`${zn(e.left)}${e.op}${zn(e.right)}`;return t?n:`(${n})`}function td(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Xs(e.expr);if(e.type==="AGG_FIELD")return Et(e.expr);if(e.type==="ARITH_FIELD")return zn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Js(e.expr)}function rd(e){switch(e.type){case"STRING":return Io(e.value);case"NUMBER":return z(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(rd).join(",")})`;case"ARITH_VALUE":return zn(e.expr);case"CASE_VALUE":return Js(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Dr(e){switch(e.type){case"BINARY":return`${td(e.left)} ${e.op.replace("_"," ")} ${rd(e.right)}`;case"NULL_CHECK":return`${td(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Dr(e.left)} ${e.op} ${Dr(e.right)})`;case"NOT":return`NOT (${Dr(e.expr)})`;case"GROUP":return`(${Dr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function nd(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Io(t.value)).join(",")}]`:e.type==="AGG_REF"?de(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?Et(e):e.type==="FIELD_REF"||e.type==="ARITH"?zn(e):fn(e)}function Js(e){let t=e.branches.map(r=>`WHEN ${Dr(r.condition)} THEN ${nd(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${nd(e.elseResult)}`;return`CASE ${t}${n} END`}function sg(e){return e.type==="AGG_REF"?de(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?Et(e):fn(e)}function Xs(e){return`${e.func}(${e.args.map(sg).join(",")})`}function fn(e){switch(e.type){case"STRING":return Io(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Xs(e);case"CASE_WHEN":return Js(e);case"SCALAR_ARITH":return`(${fn(e.left)}${e.op}${fn(e.right)})`;case"CONCAT_OP":return`(${fn(e.left)}||${fn(e.right)})`}}function lg(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?zn(e,!0):fn(e)}function de(e,t,n){let r=lg(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function Et(e){return e.type==="NUMBER"?z(e):e.type==="AGG_REF"?de(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${Et(e.left)}${e.op}${Et(e.right)}`}var id=Symbol("ksql.groupingRowMeta"),od=new WeakMap;function Qs(e,t){return Object.defineProperty(e,id,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Zs(e){return e[id]}function ug(e){return Zs(e)?.includedCanonicalIds}function ad(e,t){od.set(e,t)}function qn(e,t){let n=ug(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=od.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var wo=["$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 el(e){return e.startsWith("_")||e.startsWith("$")}var cg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function nl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(nl);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"?cg.test(t.field):Object.values(t).some(nl)}function pg(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)||nl(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var dg=["_pid","_rid","_idx"];function tl(e){return[...new Set(e)]}function fg(e){switch(e.kind){case"APP":return tl([...e.fieldCodes,...wo]);case"SUBTABLE":return tl([...e.childFieldCodes,...dg,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return tl(e.columns)}}function sd(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:fg(t(r,i))}))}function ld(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 ud(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function cd(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?ld(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:ud(a,r.fieldCode)}}function Eg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Rg(e,t,n){let r=ld(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:ud(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,c)=>Eg(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=pg(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&&de(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function pd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Rg(r.name,t,n):{kind:"EXPRESSION"})}}var mg="B65_NON_GROUPED_DEPENDENCY",il=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 bo(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 ol(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return bo(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?bo(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function al(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function fd(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Ed(e){return e.type==="WINDOW_COL"}function yg(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function qt(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number")return String(e);if(Array.isArray(e)){let c=e.map(d=>qt(d,t));return c.some(d=>d===null)?null:`[${c.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||al(n))return null;if(r==="GROUP"&&n.expr!==void 0)return qt(n.expr,t);let i=typeof r=="string"?il.get(r):void 0;if(i!==void 0)return qt(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:${yg(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=ol(n);if(o!==null)try{return`FIELD:${t(o)}`}catch{return null}if(r==="FIELD"&&n.aggregateRef!==void 0)return null;let a=new Set(["alias","aliasDisplay","raw","separator","distinct","source"]),s=[];for(let c of Object.keys(n)){if(c==="type"||a.has(c))continue;let d=qt(n[c],t);if(d===null)return null;s.push(`${c}=${d}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function gg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function hg(e){let t=new Map;for(let n of e){let r=gg(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function sl(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var Ag=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function No(e){if(e&&typeof e=="object"){let t=e,n=ol(t);if(n!==null)return sl(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"?il.get(t.type):void 0;if(i!==void 0){let a=No(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function dd(e,t,n,r){let i=n==="WILDCARD"?"wildcard":sl(n),o=No(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=${mg})`)}function En(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)En(a,t);return}let n=e;if(al(n)||fd(n)||Ed(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 dd(t.clause,t.expression,"WILDCARD",t.policy);let r=ol(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&Ag.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),En(l[0],{...t,resolvingAliases:c});return}}let a=qt(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 dd(t.clause,t.expression,r,t.policy);return}let i=qt(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?il.get(n.type):void 0;if(o!==void 0){En(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||En(n[a],t)}function vr(e,t){let n=hg(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&En(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&En(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"?bo(r.key.name):r.key;En(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function rl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(rl);let t=e;return al(t)||Ed(t)?!1:fd(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(rl)}function Jn(e){return te(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&rl(t))}function Sg(e){return e.type==="FIELD_NAME"?bo(e.name):e.expr}function Rd(e,t,n){let r=te(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let R=cd(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=qt(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=qt(Sg(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(" / "),d=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:No(f)).join(", ")}`,u=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,p=i.every((f,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:d,migrationSourceSql:u,migrationGroupingFields:p}}function Co(e){if(te(e).type!=="NONE"||!Jn(e))return;let t={identities:new Set,resolveField:n=>`ast:${sl(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};vr(e,t)}function md(e){return`FIELD:${e}`}var yd=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 ll(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Ve(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Ve(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=>Ve(r,t))}}function Lo(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Lo(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){Ve(n.arg,t);return}Object.values(n).forEach(r=>Lo(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 Tg(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 Ig(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${ll(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${ll(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);ad(e,r.canonicalId)}function ul(e){let t=te(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Ve(i,n);Ve(e.having,n),Ve(e.orderBy,n);let r=[];Ve(e.where,r),Ve(e.joins,r),Lo(e.columns,r),Lo(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&Ve(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.");Co(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 gd(e,t,n=()=>{}){ul(e);let r=te(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&Ve(c,i);if(Ve(e.having,i),Ve(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=xp(e,t),a=new Set,s=[];for(let c of o.allItems){let d=c;if(!d.physical)throw new Error(`ArgumentError: grouping item ${ll(c.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let c of i)Ig(c,t,a);vr(e,{identities:new Set([...a].map(md)),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(!Tg(c))continue;let d="alias"in c?c.alias:null;if(d!==null&&l.has(d))throw new Error(`ArgumentError: aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function wg(e){return e.some(t=>t.type==="WINDOW_COL")}function We(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||te(e).type!=="NONE"||e.distinct||wg(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"&&Id(t.expr)||t.type==="SCALAR_VALUE_COL"&&Mr(t.expr))||Lt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Lt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return hd(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Lr(e);case"NULL_CHECK":return hd(e.field);case"LOGICAL":return Lt(e.left)||Lt(e.right);case"NOT":case"GROUP":return Lt(e.expr);case"EXISTS":return!0}}function hd(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Do(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(j(e.where)),e.orderBy.length>0){let i=e.orderBy.map(bg).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:Ng(e.columns),totalCount:!1}}function Td(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Lt(e.where)&&n.push(j(e.where)),{app:t,query:n.join(" "),fields:[]}}function Rn(e,t,n){let i=bd(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 bg(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 Ng(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(vo(r.field)):r.type==="ARITH_COL"?Ur(r.expr,n):r.type==="STRFUNC_COL"?cl(r.expr,n):r.type==="SCALAR_VALUE_COL"&&Xn(r.expr,n);return[...new Set(n)]}function Cg(e,t){Ur(e.left,t),Ur(e.right,t)}function Ur(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(vo(e.field)):e.type==="ARITH"?Cg(e,t):e.type==="STRING_FUNC"&&cl(e,t)}function vo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function cl(e,t){for(let n of e.args)Pg(n,t)}function Pg(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){_o(e,t);return}Xn(e,t)}function Xn(e,t){if(e.type==="FIELD"){t.push(vo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){cl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Xn(e.left,t),Xn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Ad(n.result,t);e.elseResult&&Ad(e.elseResult,t)}}function Ad(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){_o(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Ur(e,t);return}Xn(e,t)}}function _o(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Og(e.arg,t);return}e.type==="AGG_ARITH"&&(_o(e.left,t),_o(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(vo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function Og(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Ur(e,t):Xn(e,t)}function Id(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Mr(t))}function Mr(e){return e.type==="STRING_FUNC"?Id(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Mr(e.left)||Mr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Sd(t.result))||e.elseResult!==null&&Sd(e.elseResult):!1}function Sd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Mr(e)}function wd(e,t){let n=new Set,r=bd(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function bd(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,c=new Map;for(let A of o)A.alias&&c.set(A.alias,A),A.cteName!==null?c.set(A.cteName,A):A.subtableCode||(c.set(`APP${A.appId}`,A),c.set(`app${A.appId}`,A));let d=Lg(e.columns),u=A=>{let w=a.get(A);w&&(w.allFields=!0,w.fields.clear())},p=()=>{for(let A of o)u(A)},f=()=>{for(let A of o)A.subtableCode&&u(A)},R=(A,w)=>{let k=a.get(A);if(!(!k||k.allFields)){if(A.subtableCode){if(w.startsWith("_p.")){let O=w.slice(3);O&&O!=="*"&&k.fields.add(O);return}return void 0}w&&k.fields.add(w)}},E=(A,w="select",k)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){p();return}if(F==="_p"){f();return}let V=c.get(F);if(V){u(V);return}return}if(w==="groupBy"&&k!==void 0){if(k.kind==="PHYSICAL"){let F=r[k.sourceIndex];F&&(n||F.cteName===null)&&R(F,k.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&d.has(A)||(w==="orderBy"||w==="having"||w==="groupBy")&&_g(A))return;let O=A.indexOf(".");if(O>0){let F=A.slice(0,O),V=A.slice(O+1);if(F==="_p"){l&&R(l,`_p.${V}`);return}let G=c.get(F);if(G){R(G,V);return}if(n)return}n?n.unqualified.add(A):s&&R(s,A)},m=(A,w,k="select")=>{if(w){if(w==="_p"){l&&R(l,`_p.${A}`);return}let O=c.get(w);if(O){R(O,A);return}if(n)return}E(A,k)},y=(A,w="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){E(A.field,w);return}if(A.type==="ARITH"){y(A.left,w),y(A.right,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}},g=(A,w="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&N(A.arg,w);return}A.type==="AGG_ARITH"&&(g(A.left,w),g(A.right,w)),A.type==="AGG_GROUP_KEY"&&m(A.field,A.tableAlias??null,w)},T=(A,w="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"||A.type==="AGG_GROUP_KEY"||A.type==="VARIABLE"){g(A,w);return}I(A,w)},h=(A,w="select")=>{for(let k of A.args)T(k,w)},I=(A,w="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){I(A.left,w),I(A.right,w);return}A.type==="CASE_WHEN"&&P(A,w)},N=(A,w="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,w);return}I(A,w)},D=(A,w="select")=>{if(A.type!=="ARRAY"){if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){g(A,w);return}if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,w);return}I(A,w)}},P=(A,w="select")=>{for(let k of A.branches)C(k.condition,w),D(k.result,w);A.elseResult&&D(A.elseResult,w)},M=(A,w="select")=>{if(A.type==="FIELD"){if(A.aggregateRef){g(A.aggregateRef,w);return}m(A.field,A.tableAlias,w);return}if(A.type==="FUNC_FIELD"){h(A.expr,w);return}if(A.type==="AGG_FIELD"){g(A.expr,w);return}if(A.type==="ARITH_FIELD"){y(A.expr,w);return}A.type!=="GROUPING_FIELD"&&P(A.expr,w)},U=(A,w="select")=>{if(A.type==="ARITH_VALUE"){y(A.expr,w);return}if(A.type==="CASE_VALUE"){P(A.expr,w);return}},C=(A,w="where")=>{if(A)switch(A.type){case"BINARY":M(A.left,w),U(A.right,w);return;case"NULL_CHECK":M(A.field,w);return;case"LOGICAL":C(A.left,w),C(A.right,w);return;case"NOT":case"GROUP":C(A.expr,w);return;case"EXISTS":case"BOOLEAN":return}},v=(A,w)=>{if(A.type==="FIELD_NAME"){E(A.name,"groupBy",w);return}if(A.type==="ARITH_KEY"){y(A.expr,"groupBy");return}h(A.expr,"groupBy")},b=(A,w="orderBy")=>{if(A.type==="FIELD_NAME"){E(A.name,w);return}if(A.type==="ARITH_KEY"){y(A.expr,w);return}A.type!=="GROUPING_KEY"&&h(A.expr,w)};for(let A of e.columns)switch(A.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&N(A.arg,"select");break;case"ARITH_AGG_COL":g(A.expr,"select");break;case"ARITH_COL":y(A.expr,"select");break;case"CASE_COL":P(A.expr,"select");break;case"STRFUNC_COL":h(A.expr,"select");break;case"SCALAR_VALUE_COL":I(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(A.windowKind==="AGGREGATE"||A.windowKind==="VALUE")&&A.arg.type!=="WILDCARD"&&N(A.arg,"select");for(let w of A.partitionBy)m(w.field,w.tableAlias,"select");for(let w of A.orderBy)b(w.key,"select");break}for(let A of e.joins)A.type!=="CROSS"&&(m(A.on.left.field,A.on.left.tableAlias,"where"),m(A.on.right.field,A.on.right.tableAlias,"where"));C(e.where,"where");let _=te(e);if(_.type==="PLAIN")_.allItems.forEach((A,w)=>v(A,t?.items[w]));else if(_.type==="GROUPING_SETS")for(let A of _.allItems)m(A.field,A.tableAlias,"select");C(e.having,"having");for(let A of e.orderBy)b(A.key);return a}function Lg(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(de(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 _g(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function Jt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||We(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||kp(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function Xt(e){let t=e.ctes[0].query,n=e.query,r=Uo(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 Uo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Nd(e.left,t)};case"NULL_CHECK":return{...e,field:Nd(e.field,t)};case"LOGICAL":return{...e,left:Uo(e.left,t),right:Uo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Uo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Nd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var Dg=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),vg=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ne(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":vg.has(e.fieldType)?t="option":Dg.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 Qn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Mo(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 He=["=","!=",">","<",">=","<="],Ug=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Mg=new Set(He),kg=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"])]]),xg=new Map([["TODAY",new Set(He)],["NOW",new Set(He)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Fg=["=","!=","in","not in"],Kg=new Map([["RECORD_NUMBER",new Set([...He,"in","not in"])],["__ID__",new Set([...He,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(He)],["UPDATED_TIME",new Set(He)],["DATE",new Set(He)],["TIME",new Set(He)],["DATETIME",new Set(He)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...He,"in","not in"])],["CALC",new Set([...He,"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(Fg)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Gg=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"])]]),dl=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"]),Od=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function xo(e){return Kg.get(e)??new Set}function Ld(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"&&dl.has(o.fieldType)&&xo(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 Se(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:xr(e,t)}function xr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return $g(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?pl():Wg(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return pl();case"GROUP":return xr(e.expr,t);case"NOT":{let n=xr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Dd(n.reasons)?Kr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=xr(e.left,t),r=xr(e.right,t);return Yg(e.op,n,r)}}}function $g(e,t,n,r){if(n.type==="KINTONE_FUNC"&&re(n.name))return Bg(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Cd(n))return Pd(e,t,n,r);if(n.type==="IN_LIST"){let d=n.values.filter(u=>u.type==="KINTONE_FUNC");if(d.length>0)return n.values.length===1&&d.length===1?Pd(e,t,d[0],r):ko("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",d[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Fr(e))}if(t.type!=="FIELD")return pl();let i=r(t);if(!i)return Zn("WHERE_FIELD_UNRESOLVED",t.field,void 0,Fr(e));let o=Fr(e);if(!_d(i.fieldType,o))return Zn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Hg(i.fieldType,e))return Zn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=xo(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Cd(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 Cd(e){return e.type==="KINTONE_FUNC"&&pn.has(e.name)}function Pd(e,t,n,r){let i=Fr(e),o=n.name;if(!pn.has(o)||t.type!=="FIELD")return ko("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=kg.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?ko("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):xg.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:ko("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function Bg(e,t,n,r){let i=Fr(e),o=n.name;if(t.type!=="FIELD")return kr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Vg(n)?Mg.has(i)?!Ug.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?kr("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}]}:kr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):kr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):kr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Vg(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 Wg(e,t,n){let r=n(e);return r?_d(r.fieldType,t)?!dl.has(r.fieldType)&&!Od.has(r.fieldType)?Zn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:Zn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):Zn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function _d(e,t){let n=Gg.get(e);return n===void 0||n.has(t)}function Hg(e,t){return dl.has(e)?!0:Od.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Fr(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 Yg(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Kr({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")?Kr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Kr({capability:"LOCAL_ONLY",reasons:r})}function pl(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function Zn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function ko(e,t,n,r,i){return Kr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function kr(e,t,n,r,i){return vd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Dd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&re(t.functionName))}function jg(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&pn.has(t.functionName))}function vd(e){if(e.capability==="EXACT_PUSHDOWN"||!Dd(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&&re(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 zg(e){if(e.capability==="EXACT_PUSHDOWN"||!jg(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&&pn.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 Kr(e){return zg(vd(e))}function Gr(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 Fo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Ko(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Gr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function Go(e){let t=e.raw??String(e.value),n=Te(t);if(n===null)return!1;if(n.sign===0)return z(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=Bs(n);return z(e)===o}var qg=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Jg=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Xg=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Qg=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function $o(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"?Xg.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?eh(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Zg(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"&&Go(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&Go(e.right)?"exact":"unsafe":Jg.has(r)?fl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?fl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Qg.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Gr(e.right.value)?"exact":"unsafe":r==="TIME"?Fo(e.right.value)?"exact":"unsafe":Ko(e.right.value)?"exact":"unsafe":qg.has(r)?!fl(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 Ud(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 fl(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 Zg(e){let t=n=>n.type==="NUMBER"&&Go(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 eh(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function El(e,t={}){return Ho(e,t).condition}function Ho(e,t={}){return Bo(e,n=>th(n,t))}function $r(e,t={}){return Vo(e,n=>Ud(n,r=>Wo(r,t)))}function Bo(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=Bo(e.left,t),r=Bo(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 Bo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function Vo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Vo(e.left,t),r=Vo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return Vo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function th(e,t){if(nh(e,t)||rh(e,t))return"exact";if(e.left.type!=="FIELD"||!Wo(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||Se(e,i=>{if(!Wo(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ne({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":$o(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function nh(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Wo(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function rh(e,t){return!ih(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function ih(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 Wo(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?Ho(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;er(r,o);let a=new Set;return er(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function mn(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=Br(e.where,{...r,extractCondition:i&&o&&n,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map,c=new Map;if(e.where!==null)for(let u of e.joins){if(u.type!=="INNER"&&u.type!=="CROSS"||!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let p=Ho(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});p.condition!==null&&p.relation!==null&&(l.set(u.table.alias,p.condition),c.set(u.table.alias,p.relation))}let d=new Set(a.appliedKlikes);for(let u of l.values())er(u,d);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:c,appliedKlikes:d,allKlikes:a.allKlikes}}function Rl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function er(e,t){if(e!==null){if(zt(e)){t.add(e);return}switch(e.type){case"LOGICAL":er(e.left,t),er(e.right,t);return;case"NOT":case"GROUP":er(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function Yo(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=Ae(t.where);if(l.length===0||!sh(l,a)||o===null||!Md(o,l))return null;let c={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:ah(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},d={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:c};return oh(d,e,l),d}function oh(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(!Md(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Ae(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&rt(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function ah(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&rt(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&rt(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 sh(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Md(e,t){let n=new Map;for(let r of t){if(!rt(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 me=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function kd(e){xd(e)}function yl(e){if(Rl(e).length>0)throw new me("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 xd(e){switch(e.type){case"SELECT":tr(e);return;case"UNION":hl(e);return;case"WITH":Fd(e);return;case"EXPLAIN":xd(e.query);return;case"CREATE_TEMP_TABLE":gl(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":yn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Ot(e.where)&&be(e.where)){ml(e.where),yn(e);return}if(Qt(e)&&e.subtableCode)throw new me("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&&be(e.where)&&!ch(e,e.where)){ml(e.where),yn(e);return}if(Qt(e))throw new me("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(Qt(e)&&e.subtableCode)throw new me("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&&be(e.where)){ml(e.where),yn(e);return}if(Qt(e))throw new me("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(Qt(e))throw new me("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Qt(e))throw new me("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Qt(e))throw new me("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(Qt(e))throw new me("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 ml(e){zo(e,t=>{if(!zt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new me("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 me("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 gl(e){e.type==="SELECT"?tr(e):e.type==="UNION"?hl(e):Fd(e)}function hl(e){gl(e.left),tr(e.right)}function Fd(e){if(Jt(e)){tr(Xt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?tr(t.query):t.query.type==="UNION"&&hl(t.query);gl(e.query)}function tr(e){if(uh(e),be(e.where)&&!(We(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=mn(e,{allowUnresolvedVariables:!0});if(Rl(n).length===0){yn(e);return}if(lh(e)){yn(e);return}throw new me("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")}yn(e)}function lh(e){return e.where!==null&&Ae(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER"||t.type==="CROSS")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function uh(e){zo(e,t=>{if(!zt(t))return;if(!jo(e.where,t))throw new me("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 me("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 me("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 yn(e){qo(e,t=>{t.type==="SELECT"&&tr(t)},!0)}function Qt(e){let t=!1;return qo(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function ch(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 jo(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return jo(e.left,t)||jo(e.right,t);case"NOT":case"GROUP":return jo(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function zo(e,t){if(Array.isArray(e)){for(let r of e)zo(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&&ph(r)||zo(r,t)}function qo(e,t,n=!1){if(Array.isArray(e)){for(let i of e)qo(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))qo(i,t)}function ph(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 Kd(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(dh(t))throw new Vr;return;default:return}}function dh(e){let t=!1;return Jo(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||fh(n.where)&&(t=!0)}),t}function fh(e){let t=!1;return Jo(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Jo(e,t){if(Array.isArray(e)){for(let r of e)Jo(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Jo(r,t)}function Zt(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 Xo(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 Zt(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return Zt(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 Zt(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return Zt(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return Zt(e,t,3,3);case"REGEXP_REPLACE":return Zt(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return Zt(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return Zt(e,t,0,0)}}var Tl=1e4,_t=Tl,Z=e=>new Error(`ArgumentError: ${e}`),Eh=e=>e.type==="VARIABLE",en=e=>e?.type==="STRING"&&e.fromVariable===!0;function Rh(e){return e.type==="NUMBER"?Number(z(e)):e.value}function nr(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 Al(e){let t=nr(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 mh(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(n).padStart(4,"0")}-${String(t.getUTCMonth()+1).padStart(2,"0")}-${String(t.getUTCDate()).padStart(2,"0")}`}function Gd(e){let t=e.trim(),n=/^([+-]?\d+)\s+(day|days|month|months|year|years)$/i.exec(t);if(!n)throw/^\S+\s+(?:day|days|month|months|year|years)$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"):/^[+-]?\d+\s+\S+$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let r=Number(n[1]);if(!Number.isSafeInteger(r))throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let i=n[2].toLowerCase(),o=i.startsWith("month")?"MONTH":i.startsWith("year")?"YEAR":"DAY";if(r===0)throw Z(`GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306B 0 ${o.toLowerCase()} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);return{coefficient:r,unit:o}}function Wr(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 Hr(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 $d(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Qo(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 Sl(e){return e.year*12+e.month-1}function Bd(e,t){if(t==="MONTH"&&e.day!==1)throw Z("GENERATE_SERIES \u306E month step \u3067\u306F start \u306B\u6708\u521D\uFF08YYYY-MM-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(t==="YEAR"&&(e.month!==1||e.day!==1))throw Z("GENERATE_SERIES \u306E year step \u3067\u306F start \u306B\u5E74\u521D\uFF08YYYY-01-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}function yh(e,t,n){let r=Al(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=Al(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return Qo(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=Sl(t)+(n.coefficient<0&&t.day!==1?1:0);return Qo(Sl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return Qo(e.year,a,n.coefficient)}function Vd(e,t,n){if(e<1||e>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-${String(n).padStart(2,"0")}`}function gh(e){let t=Math.floor(e/12),n=e-t*12+1;return Vd(t,n,1)}function Wd(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(g=>Rh(g));["start","stop","step"].forEach((g,T)=>{if(t[T]==="")throw Z(`GENERATE_SERIES \u306E ${g} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`)});let[n,r,i]=t,[o,a,s]=e.args,l=typeof n=="string"?nr(n):null,c=typeof r=="string"?nr(r):null,d=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some($d))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||c||d||u||typeof n=="string"&&typeof r=="string"&&!(en(o)&&en(a)&&Wr(n)!==null&&Wr(r)!==null)){if(!l||!c)throw Z(l&&typeof r!="string"||c&&typeof n!="string"?"GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(i!==void 0&&typeof i!="string")throw Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let g=i===void 0?{coefficient:1,unit:"DAY"}:Gd(i);return Bd(l,g.unit),{kind:"DATE",start:n,stop:r,step:g.coefficient,dateUnit:g.unit,rowCount:yh(l,c,g)}}let p=o.type==="NUMBER"?Hr(o):en(o)?Wr(n):null,f=a.type==="NUMBER"?Hr(a):en(a)?Wr(r):null;if(p===null||f===null)throw(o.type==="NUMBER"||en(o))&&(a.type==="NUMBER"||en(a))?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let R=i===void 0?1:s?.type==="NUMBER"?Hr(s):en(s)?Wr(i):null;if(R===null)throw s?.type==="NUMBER"||en(s)?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=p,m=f,y=R;if(y===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:m,step:y,rowCount:Qo(E,m,y)}}function hh(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(e.args.some(Eh)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw Z(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&Hr(o)===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(i<2&&o?.type==="STRING"){if($d(o.value))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(/^\d{4}-/.test(o.value)&&nr(o.value)===null)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}});let n=e.args[2];if(n?.type==="NUMBER"){let r=Hr(n);if(r===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(r===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=Gd(n.value),i=e.args[0];if(i?.type==="STRING"){let o=nr(i.value);o&&Bd(o,r.unit)}}return null}let t=Wd(e);if(t.rowCount>_t)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${_t} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function Hd(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=hh(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>_t)throw Z(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${_t} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Zo(e){let t=Wd(e);if(t.rowCount>_t)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${_t} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let n=[];if(t.kind==="INTEGER"){let r=t.start;for(let i=0;i<t.rowCount;i++)if(n.push(String(r)),i+1<t.rowCount){let o=r+t.step;if(!Number.isSafeInteger(o))throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");r=o}}else{let r=nr(t.start);if(t.dateUnit==="MONTH"){let i=Sl(r);for(let o=0;o<t.rowCount;o++)n.push(gh(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(Vd(r.year+i*t.step,1,1));else{let i=Al(t.start);for(let o=0;o<t.rowCount;o++)n.push(mh(i+o*t.step))}}return{...t,values:n}}function it(e){Ah(e),Kd(e),kd(e),Hd(e)}function Ah(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;Xo(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var ta=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],bl="\0as-of:";function Yr(e){return`${bl}${e}`}function rr(e){if(!e.startsWith(bl))return null;let t=e.slice(bl.length);return jr(t)?t:null}function jr(e){return ta.includes(e)}function Nl(e=new Date,t){if(!(e instanceof Date)||!Number.isFinite(e.getTime()))throw new Error("ArgumentError: asOf must be a valid Date.");let n;try{n=new Intl.DateTimeFormat("en-CA",{...t===void 0?{}:{timeZone:t},year:"numeric",month:"2-digit",day:"2-digit"}),n.format(e)}catch{throw new Error(`ArgumentError: invalid IANA timezone: ${t??""}.`)}let r=n.formatToParts(e),i=Il(r,"year"),o=Il(r,"month"),a=Il(r,"day"),s=`${wl(i)}-${ea(o)}-${ea(a)}`,l=`${wl(i)}-${ea(o)}-01`,c=o===12?i+1:i,d=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${wl(c)}-${ea(d)}-01`}}}function Il(e,t){let n=e.find(i=>i.type===t)?.value,r=Number(n);if(!Number.isInteger(r))throw new Error(`InternalError: Intl.DateTimeFormat did not return ${t}.`);return r}function ea(e){return String(e).padStart(2,"0")}function wl(e){return String(e).padStart(4,"0")}var na=16,Yd=64,oe=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function zr(e,t,n){if(Array.isArray(e)){for(let r of e)zr(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))zr(a,t,n)}}var Sh=new Set(["=","!=","<>",">","<",">=","<="]);function Cl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Cl(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){if(rr(r.name)!==null)return;t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",c=n&&i==="BINARY"&&a==="right"&&l&&Sh.has(String(r.op));Cl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?c:o?n:!1)}}}function Th(e){let t=e.type==="EXPLAIN"?e.query:e;return Yt(t.type)||t.type==="VALIDATE"}function Pl(e){if(Array.isArray(e)){for(let t of e)Pl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&ul(e);for(let n of Object.values(t))Pl(n)}}function Ol(e){if(e.length===0)throw new oe("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{Pl(u)}catch(f){throw f instanceof Error?new oe(f.message,p):f}try{Yn("phase15b",u),it(u)}catch(f){throw f instanceof me||f instanceof Vr?new oe(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new oe(f.message,p):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let p=u==="SET_VARIABLE"?"SET":"DECLARE";throw new oe(`ArgumentError: ${p} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let p=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new oe(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((u,p)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let 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 oe(D,p)}let R=ho(u),E=[],m=[],y=new Set,g=new Set,T=new Set,h=[];Cl(u,h);let I=new Set;for(let D of h){let P=o.get(D.name);if(P===void 0)throw new oe(`ParseError: variable @${D.name} is not defined before statement ${p+1}.`,p);if(P.kind==="scalar"&&D.kind==="array-in-list")throw new oe(`ParseError: scalar variable @${D.name} cannot be used as IN @${D.name}; use IN (@${D.name}) instead.`,p);if(P.kind==="array"&&D.kind!=="array-in-list")throw new oe(`ParseError: array variable @${D.name} can only be used as IN @${D.name}.`,p);if(P.relativeDate&&Th(u))throw new oe(`ArgumentError: RELATIVE_DATE variable @${D.name} cannot be used in DML or VALIDATE statements.`,p);if(P.relativeDate&&!D.relativeDateAllowed)throw new oe(`ArgumentError: RELATIVE_DATE variable @${D.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(D.name)||(P.referencedBy.push(p),I.add(D.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new oe(`ParseError: variable @${u.name} is already defined.`,p);if(o.set(u.name,{index:p,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>Yd)throw new oe(`ParseError: batch exceeds ${Yd} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?zr(u.query,y,g):u.type==="DROP_TEMP_TABLE"||zr(u,y,g);let N=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let D=new Set,P=new Set;zr(u.select,D,P),N=D.size>0&&P.size===0}for(let D of y){let P=t.get(D);if(P===void 0)throw new oe(`ParseError: temp table ${D} is not defined in this batch.`,p);T.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(U=>U.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(U=>U.field)]:"fields"in u?u.fields:[],P=JSON.stringify(D),M=t.get(f);if(M===void 0){if(t.set(f,p),n.set(f,P),r.push(f),E.push(f),t.size>na)throw new oe(`ParseError: batch exceeds ${na} temp tables.`,p)}else{if(n.get(f)!==P)throw new oe(`ParseError: validation error table ${f} has a different payload schema.`,p);T.add(M)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new oe(`ParseError: temp table ${u.name} is already defined.`,p);if(t.set(u.name,p),r.push(u.name),E.push(u.name),t.size>na)throw new oe(`ParseError: batch exceeds ${na} temp tables.`,p)}if(u.type==="DROP_TEMP_TABLE"){let D=t.get(u.name);if(D===void 0)throw new oe(`ParseError: temp table ${u.name} is not defined in this batch.`,p);T.add(D),m.push(u.name),t.delete(u.name)}i.push({index:p,statementType:R,isDml:Hs(u),isReadOnly:Bn(u),hasWhere:Bp(u),insertValuesCount:Vp(u),appIds:[...g].sort((D,P)=>D-P),tempTablesCreated:E,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...T].sort((D,P)=>D-P),tempOnlySource:N,targetAppId:Yt(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:Gp(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),c=i.some(u=>u.requiresCompleteInput),d=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:c,tempTables:r,variables:d,warnings:d.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}var ra=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 De=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"}},tn=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(ir(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(Ll(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new De(`\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 De("\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 De("\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&&ir(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&ir(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&ir(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||!ir(this.input[this.pos]))throw new De("\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&&ir(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&&jd(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=ra.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(!Ll(n))throw new De("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&jd(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new De(`@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 De("\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 De("\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
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 De("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r,end:this.pos}}};function Ll(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Ih(t)}function jd(e){let t=e.codePointAt(0);return Ll(e)||t>=48&&t<=57}function ir(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Ih(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var qd=20,Dl=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"}),Xd=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),qr=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"}),$C=Object.freeze(Object.values(qr).filter(e=>e!==void 0)),wh=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),bh=new Set(wh);function Nh(e){return bh.has(e)}var Qd=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Jr=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function Jd(e){return Jr[e]!==void 0}var Ch=Object.freeze([...Ao]),Ph=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Oh=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Lh(e){return Ph.has(e)}function _h(e){return Oh.has(e)}function Dh(e){return Number.isInteger(e)&&e>=1&&e<=31}var BC=Object.freeze(Array.from(new Set([...Object.keys(Dl),...Xd,...Object.keys(qr),...Object.keys(Qd),...Object.keys(Jr),...Ch,"IF"]))),vh=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 Uh(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!vh.has(e.kind):!0}var S=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"}},_l=["\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
4
|
`),nn=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.bareTempTableNames=new Set;this.tempTableRefs=[];this.aggregateGroupKeyTokens=new WeakMap;this.activeCteDefinition=null;this.provisionalRecursiveCte=null;this.allowSelectArithVariable=!1;if(n.dialect1)for(let r=0;r+1<t.length;r++){let i=t[r];if(i.kind!=="VARIABLE"||t[r+1].kind!=="(")continue;let o=i.value.slice(1).toUpperCase();if(!jr(o))throw new S(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${ta.map(a=>`@${a}`).join("/")} \u3067\u3059`,i)}}parse(){let t=this.parseStatements();if(t.length===0)throw new S("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new S("\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 S(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){return this.parseStatementsWithRanges().statements}parseStatementsWithRanges(){let t=[],n=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let r=this.peek();if(t.push(this.parseStatement()),t.length>qd)throw new S(`batch exceeds ${qd} statements.`,r);let i=this.peek();if(i.kind!==";"&&i.kind!=="EOF")throw new S("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",i);let o=this.prev();n.push({start:r.pos,end:o.end??i.pos})}return this.expect("EOF"),{statements:t,statementRanges:n}}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="EXIT")return this.parseExit();if(n==="MERGE"){if(!this.capabilities.dialect1)throw new S("MERGE \u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t);return this.parseMergeAsUpsert()}if(n==="GENERATE_SERIES")throw new S("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 S("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new S("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT / EXIT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new S("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=Jr[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&re(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new S("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE"){if(this.peekAt(1).kind==="("&&this.capabilities.dialect1)return this.advance(),this.finishVariableReference(r);throw new S(`${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 S(`${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 S("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 S("\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 S("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=Jr[r.kind];if(i==="LOGINUSER")throw new S(`${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 S(`${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 S(`${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 S(`${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 S(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek(),i;if(r.kind==="WITH")i=this.parseWith();else if(r.kind==="SELECT")i=this.tryParseUnionChain(this.parseSelect());else throw new S("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",r);return t!==null&&this.bareTempTableNames.add(t),{type:"CREATE_TEMP_TABLE",name:n,query:i}}parseDropTempTable(){this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();return t!==null&&this.bareTempTableNames.delete(t),{type:"DROP_TEMP_TABLE",name:n}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new S(n,r)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;if(this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT"))return this.advance(),`#${t.value}`;throw new S("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}isDialect1BareTempTableName(){let t=this.peek();return this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT")&&!t.value.startsWith("#")?t.value:null}parseShow(){if(this.advance(),!this.consume("APPS"))throw new S("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}=Rt(t,this.prev());if(r)throw new S("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 S("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 S("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new S("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}=Rt(n,this.prev());if(i)throw new S("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let N=this.parseIdentifier();if(s.has(N))throw new S(`IMPORT target ${N} is declared more than once.`,this.prev());if(s.add(N),this.peek().kind==="("){this.advance();let D=this.parseIdentList();if(this.expect(")"),new Set(D).size!==D.length)throw new S(`IMPORT subtable ${N} 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 S("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}P=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:N,children:D,...P?{rowIdSourceHeader:P}:{}})}else a.push(N),o.push({kind:"FIELD",field:N});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new S("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let c=this.parseIdentifier(),d,u=!0,p;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new S("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let N=this.parseIdentifier().toUpperCase();if(N!=="UTF8"&&N!=="SJIS")throw new S("ENCODING must be UTF8 or SJIS.",this.prev());d=N==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("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 S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new S("COLUMNS is CSV-only.",this.peek());if(u)throw new S("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),p=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new S("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Le||f.joins.length>0)throw new S("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 S("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(N=>N.kind==="SUBTABLE"))throw new S("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new S(`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 S("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new S("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!u)throw new S("BY NAME requires HEADER.",this.prev());if(f)throw new S("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 S("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new S("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),E=!0}}let m,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let N of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(N))throw new S("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let g;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new S("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),g=this.parseIdentList(),this.expect(")"),new Set(g).size!==g.length)throw new S("REPLACE SUBTABLES contains duplicates.",this.prev())}let T=o.filter(N=>N.kind==="SUBTABLE");if(T.length){if(f)throw new S("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(T.some(N=>N.rowIdSourceHeader))throw new S("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(g)throw new S("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new S("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(R!=="BY_NAME")throw new S("CSV subtable IMPORT requires BY NAME.",this.prev());if(!g)throw new S("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let N=new Set(g);for(let D of T){if(!D.rowIdSourceHeader)throw new S(`CSV subtable ${D.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!N.has(D.subtableCode))throw new S(`IMPORT declares child columns for non-replaced subtable ${D.subtableCode}.`,this.prev())}for(let D of N)if(!T.some(P=>P.subtableCode===D))throw new S(`REPLACE SUBTABLES target ${D} is not declared in INTO.`,this.prev())}}else if(g)throw new S("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new S("IMPORT UPDATE supports CSV only.",this.prev());if(R!=="BY_NAME")throw new S("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new S("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new S("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new S("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let h=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:c}:{kind:"CSV",sourceName:c,encoding:d,hasHeader:u,mappingMode:R,ignoreUnknownColumns:E,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...g?{replaceSubtables:g}:{},...m?{keyFields:m}:{},...h,...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 S("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new S("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}=Rt(n,this.prev());if(i)throw new S(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let u=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:p})}else o.push({kind:"FIELD",field:u})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),c;if(this.consume("INTO")){let u=this.peek();if(u.kind!=="IDENT"||!u.value.startsWith("#"))throw new S("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",u);c=this.parseTableName()}let d={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...c?{errorTable:c}:{}};return this.assertValidateExpressions(d,t),d}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new S("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 S("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 S("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.peek(),n=this.isSoftKeyword("WARN");n&&(this.requireDialect1(t),this.advance());let r=this.parseAssertCondition(),i=this.parseFlowMessage();return{type:"ASSERT",...r,...n?{warn:!0}:{},...i!==void 0?{message:i}:{}}}parseExit(){let t=this.advance();if(this.requireDialect1(t),!this.isSoftKeyword("SUCCESS"))throw new S("EXIT \u306E\u5F8C\u306B\u306F SUCCESS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.peek().kind!=="IF"&&!this.isSoftKeyword("IF"))throw new S("EXIT SUCCESS \u306E\u5F8C\u306B\u306F IF \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=this.parseAssertCondition();if(!this.consume(","))throw new S("EXIT SUCCESS IF \u306B\u306F\u672B\u5C3E\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u6587\u5B57\u5217\u304C\u5FC5\u8981\u3067\u3059",this.peek());let r=this.expect("STRING","EXIT SUCCESS IF \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return{type:"EXIT",...n,message:r.value}}parseAssertCondition(){let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new S("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseFlowMessage(){if(this.consume(","))return this.requireDialect1(this.prev()),this.expect("STRING","ASSERT \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}requireDialect1(t){if(!this.capabilities.dialect1)throw new S("\u3053\u306E\u69CB\u6587\u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t)}finishVariableReference(t){let n={type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(this.peek().kind!=="("||!this.capabilities.dialect1)return n;let r=t.value.slice(1).toUpperCase();if(!jr(r))throw new S(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${ta.map(i=>`@${i}`).join("/")} \u3067\u3059`,t);return this.advance(),this.expect(")",`@${r} \u306F\u5F15\u6570\u306A\u3057\u306E () \u3067\u547C\u3073\u51FA\u3057\u3066\u304F\u3060\u3055\u3044`),{type:"VARIABLE",name:Yr(r)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S("\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 S("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 S("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 S("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 S(`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 S("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 S("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&&Uh(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:Le},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],c,d=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new S("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 S("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(d=this.parseWhereExpr("HAVING"))}let u="CANONICAL",p=[];if(this.consume("ORDER"))this.expect("BY"),p=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new S("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());u="KINTONE_NATIVE",this.expect("BY"),p=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,R=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(y=>y.type==="WINDOW_COL"),m=r.some(y=>this.selectColumnHasAggregate(y));if(E&&(l.length>0||c!==void 0||m))throw new S("\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 S("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,d,l,c),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...c?{grouping:c}:{},having:d,orderMode:u,orderBy:p,limit:f,offset:R}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,c=this.peek().kind;if(c==="SHOW")s=this.parseShow();else if(c==="DESCRIBE"||c==="DESC")s=this.parseDescribe();else if(c==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES")s=this.parseGenerateSeries();else if(t){let p=this.parseRecursiveCteCandidate(o);s=p.query,l=p.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let d=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(d&&!l)throw new S("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:d},this.validateRecursiveCte(o,a,l),r++,r>1))throw new S("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let u={name:o,query:s};a&&(u.columnAliases=a),l&&(u.recursiveSpec=l),n.push(u),this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.add(o)}while(this.consume(","));let i=this.tryParseUnionChain(this.parseSelect());return t?{type:"WITH",ctes:n,query:i,recursive:!0}:{type:"WITH",ctes:n,query:i}}finally{this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.clear()}}parseOptionalCteColumnAliases(){if(!this.consume("("))return;let t=[];if(this.peek().kind===")")throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u306F1\u500B\u4EE5\u4E0A\u306E\u5217\u540D\u304C\u5FC5\u8981\u3067\u3059",this.peek());do t.push(this.parseIdentifier());while(this.consume(","));if(this.expect(")"),new Set(t).size!==t.length)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u540C\u3058\u5217\u540D\u3092\u91CD\u8907\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());return t}parseRecursiveCteCandidate(t){let n=this.parseSelect();if(this.peek().kind!=="UNION")return{query:n};this.advance();let r=this.consume("ALL");this.activeCteDefinition={name:t,recursiveWith:!0,phase:"RECURSIVE_TERM"},this.provisionalRecursiveCte={name:t,references:0};let i=this.parseSelect(),o=this.provisionalRecursiveCte.references;this.provisionalRecursiveCte=null;let a={type:"UNION",all:r,left:n,right:i};if(a=this.tryParseUnionChain(a),this.activeCteDefinition={name:t,recursiveWith:!0,phase:"SEED"},o===0)return{query:a};if(!r||a.type!=="UNION"||a.left!==n||a.right!==i)throw new S("\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(o!==1)throw new S("\u518D\u5E30\u9805\u304B\u3089\u306E\u81EA\u5DF1\u53C2\u7167\u306F\u3061\u3087\u3046\u30691\u56DE\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());return{query:a,recursiveSpec:{seed:n,recursiveTerm:i,unionAll:!0,cycle:null}}}parseRecursiveCycleClause(){this.advance();let t=this.parseIdentifier();this.expect("SET","CYCLE \u306E\u5217\u540D\u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentifier();if(!this.isSoftKeyword("TO"))throw new S("CYCLE \u306E mark \u5217\u306E\u5F8C\u306B\u306F TO \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=this.expect("STRING","CYCLE TO \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(!this.isSoftKeyword("DEFAULT"))throw new S("CYCLE TO \u306E\u5024\u306E\u5F8C\u306B\u306F DEFAULT \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let i=this.expect("STRING","CYCLE DEFAULT \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(r.value===i.value)throw new S("CYCLE \u306E TO \u3068 DEFAULT \u306B\u306F\u7570\u306A\u308B\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);return{column:t,markColumn:n,markValue:r.value,defaultValue:i.value,exposePath:!1}}validateRecursiveCte(t,n,r){let i=this.prev(),o=r.seed,a=r.recursiveTerm,{groupBy:s}=a;if(o.columns.length!==a.columns.length)throw new S("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(n&&n.length!==o.columns.length)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u3068 SELECT \u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(o.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD")||a.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD"))throw new S("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new S("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new S("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(d=>d===t).length!==1)throw new S("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new S("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let c=n??o.columns.map(d=>this.selectColumnOutputName(d));if(r.cycle){if(c.filter(u=>u===r.cycle.column).length!==1)throw new S("CYCLE \u5217\u306F\u518D\u5E30 CTE \u306E\u51FA\u529B\u52171\u500B\u3078\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",i);if(c.includes(r.cycle.markColumn))throw new S("CYCLE \u306E mark \u5217\u306F\u518D\u5E30 CTE \u306E\u65E2\u5B58\u51FA\u529B\u5217\u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093",i)}}containsRecursiveForbiddenNode(t){if(Array.isArray(t))return t.some(r=>this.containsRecursiveForbiddenNode(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="AGGREGATE"||n.type==="AGG_REF"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"||n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SUBQUERY_IN_LIST"||n.type==="EXISTS"?!0:Object.values(n).some(r=>this.containsRecursiveForbiddenNode(r))}selectColumnOutputName(t){return"alias"in t&&typeof t.alias=="string"?t.alias:t.type==="FIELD"?t.field:null}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new S("GENERATE_SERIES \u304C\u5FC5\u8981\u3067\u3059",t);this.expect("(");let n=[];if(this.peek().kind!==")")do{let i=this.peek();if(i.kind==="STRING"){this.advance(),n.push({type:"STRING",value:i.value});continue}if(i.kind==="VARIABLE"){this.advance(),n.push(this.finishVariableReference(i));continue}let o="";(i.kind==="+"||i.kind==="-")&&(o=i.kind==="-"?"-":"+",this.advance());let a=this.peek();if(a.kind!=="NUMBER")throw new S("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(Ie(`${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 S("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 S("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 S(_l,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.finishVariableReference(this.advance()),s=rr(a.name),l=null;if(s===null){if(!this.consume("AS"))throw new S("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());l=this.parseAliasName()}else this.consume("AS")&&(l=this.parseAliasName());return this.withAliasDisplay({type:"VARIABLE_COL",name:a.name,alias:l?.alias??null},l)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s)}let r=this.tryAggregateFunc();if(r!==null){let a=this.parseAggregateRef(r);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_parent.*")throw new S("_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 Qd[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(qr[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 S(`${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 S("\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 S(`${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 S(`${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 S(_l,this.peek());if(!this.consume("AS"))throw new S("\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 S(`${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 S("\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 S("\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 S("\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 S(_l,this.peek());if(!this.consume("AS"))throw new S("\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"?Ie(`-${z(n)}`):{type:"AGG_ARITH",left:Ie("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ie(n.value)}if(this.peek().kind==="VARIABLE"){let n=this.advance();return this.finishVariableReference(n)}let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new S("\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),qr[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=d=>{if(Array.isArray(d)){d.forEach(a);return}if(d===null||typeof d!="object")return;let u=d;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(d);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new S("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 S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let c=new Set(r.filter(d=>d.type==="FIELD_NAME").map(d=>d.name));for(let d of o){let u=this.aggregateGroupKeyDisplay(d);if(!c.has(u))throw new S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(d)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new S("\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 S("\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 S("\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 Ie(`${n.kind==="-"?"-":"+"}${z(r)}`);if(n.kind==="+")throw new S("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Ie("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ie(n.value);if(n.kind==="VARIABLE")return this.advance(),this.finishVariableReference(n);if(n.kind==="CASE"){if(!t)throw new S("\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 S(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 S("\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 Ie(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new S("\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"?Ie(`-${z(n)}`):{type:"ARITH",left:Ie("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ie(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new S("\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 S("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 S("\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=Dl[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Dl[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(Xd.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 S(`\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 S))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 S(`${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 S("\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=Mh(n);if(r===null)throw new S(`\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 qr[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 S("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!Nh(t))throw new S(`${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 S("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 S){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new S("\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 S("\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 S("\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 S("\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 S("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let n=this.parseTableName();if(this.capabilities.dialect1&&this.bareTempTableNames.has(n)){let s=`#${n}`;return this.tempTableRefs.push({...this.prev(),value:s}),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:s}}if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new S(s,t)}let{appId:r,subtableCode:i}=Rt(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 S("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"||t==="IDENT"&&this.peek().value.toUpperCase()==="KEY"&&this.peekAt(1).kind==="("?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();if(n==="CROSS"){if(this.peek().kind==="ON")throw new S("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 S("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 S("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 S("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 S("\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 S("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 S("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);throw new S("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 S(`\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 S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new S("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 S("\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:de(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 Ie(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&re(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 S("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 S("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 S("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(!Lh(l))throw new S("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(!_h(o))throw new S(`${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(!Dh(o))throw new S(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new S(`${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 S(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(Jd(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Jr[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 S("\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 S("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}let t=this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");return this.peek().kind==="("&&this.capabilities.dialect1?{type:"IN_LIST",values:[this.finishVariableReference(t)]}:{type:"VARIABLE_IN_LIST",name:t.value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Ie(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new S(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Ie(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push(this.finishVariableReference(i));else if(i.kind==="LOGINUSER"){if(t.length>0)throw new S(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 S(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 S(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 S(o,this.peek())}else throw new S(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 S("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 S("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 S("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 S("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 S("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 S("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Mp(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 S("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new S("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 S("\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 S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new S("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}=Rt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let d=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new S("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new S("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:d,...u,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let d=this.parseInsertRow(i.length,!0);this.expect(")"),o.push(d)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new S("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 S("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 S("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 S("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 S("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}=Rt(t,this.prev());if(r)throw new S("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect(),p=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("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 S("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:u,keyFields:p,...f,...R}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length,!1)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new S("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 S("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...c,...d}}parseOnDuplicate(){if(this.capabilities.dialect1&&this.consumeSoftKeyword("KEY")){this.expect("(","KEY \u306E\u5F8C\u306B\u306F (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentList();if(this.expect(")"),n.length===0)throw new S("KEY \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return n}if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new S("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 S("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}parseMergeAsUpsert(){let t=this.advance();this.expect("INTO","MERGE \u306E\u5F8C\u306B\u306F INTO \u304C\u5FC5\u8981\u3067\u3059"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=Rt(n,this.prev());if(i)throw new S("MERGE \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("AS","MERGE \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseTableAliasName();this.expectSoftKeyword("USING","MERGE \u306B\u306F USING <source> AS alias \u304C\u5FC5\u8981\u3067\u3059");let a=this.pos,s=this.parseTableRef();if(!this.tokens.slice(a,this.pos).some(I=>I.kind==="AS")||s.alias===null)throw new S("MERGE \u306E USING \u30BD\u30FC\u30B9\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let c=s.alias;this.expect("ON","MERGE \u306B\u306F ON t.key = s.key \u306E\u5358\u4E00\u30AD\u30FC\u7B49\u5024\u304C\u5FC5\u8981\u3067\u3059");let d=this.parseMergeQualifiedField("MERGE \u306E ON \u5DE6\u8FBA\u306F targetAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(!this.consume("="))throw new S("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\uFF08t.key = s.key\uFF09\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u3084\u975E\u7B49\u5024\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let u=this.parseMergeQualifiedField("MERGE \u306E ON \u53F3\u8FBA\u306F sourceAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(d.alias.toLowerCase()!==o.toLowerCase()||u.alias.toLowerCase()!==c.toLowerCase())throw new S(`MERGE \u306E ON \u306F ${o}.key = ${c}.key \u306E\u5225\u540D\u4FEE\u98FE\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);if(this.peek().kind==="AND"||this.peek().kind==="OR")throw new S("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let p=null,f=null,R=null;for(;this.peek().kind==="WHEN";){let I=this.advance();if(this.consume("NOT")){if(this.expectSoftKeyword("MATCHED","WHEN NOT \u306E\u5F8C\u306B\u306F MATCHED \u304C\u5FC5\u8981\u3067\u3059"),f!==null)throw new S("WHEN NOT MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);if(this.expect("THEN","WHEN NOT MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("INSERT","WHEN NOT MATCHED THEN \u306E\u5F8C\u306B\u306F INSERT \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT \u306B\u306F\u5217\u30EA\u30B9\u30C8\u304C\u5FC5\u8981\u3067\u3059"),f=this.parseIdentList(),this.expect(")"),this.expect("VALUES","MERGE INSERT \u306E\u5217\u30EA\u30B9\u30C8\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT VALUES \u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),R=this.parseMergeValueList(),this.expect(")"),f.length!==R.length)throw new S("MERGE INSERT \u306E\u5217\u6570\u3068 VALUES \u306E\u5024\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",I)}else{if(this.expectSoftKeyword("MATCHED","WHEN \u306E\u5F8C\u306B\u306F MATCHED \u307E\u305F\u306F NOT MATCHED \u304C\u5FC5\u8981\u3067\u3059"),p!==null)throw new S("WHEN MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);this.expect("THEN","WHEN MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("UPDATE","WHEN MATCHED THEN \u306E\u5F8C\u306B\u306F UPDATE \u304C\u5FC5\u8981\u3067\u3059"),this.expect("SET","WHEN MATCHED THEN UPDATE \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059"),p=this.parseMergeAssignments(o)}}if(p===null||f===null||R===null)throw new S("WHEN MATCHED / WHEN NOT MATCHED \u306E\u4E21\u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u66F4\u65B0\u306E\u307F\u306F UPDATE ... FROM\u3001\u633F\u5165\u306E\u307F\u306F INSERT ... SELECT \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(!f.some(I=>I.toLowerCase()===d.field.toLowerCase()))throw new S(`MERGE \u306E ON \u30AD\u30FC ${d.field} \u306F INSERT \u5217\u30EA\u30B9\u30C8\u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044`,t);let E=new Map;f.forEach((I,N)=>E.set(I.toLowerCase(),R[N]));for(let I of p){let N=I.field.toLowerCase(),D=E.get(N);if(D!==void 0&&!this.mergeExpressionsEqual(D,I.value,c))throw new S(`MERGE \u306E\u5217 ${I.field} \u306F\u4E21\u53E5\u306E\u5F0F\u304C\u4E00\u81F4\u3059\u308B\u5834\u5408\u306E\u307F MERGE \u3092 UPSERT \u3078\u6B63\u898F\u5316\u3067\u304D\u307E\u3059`,t);D===void 0&&(f.push(I.field),R.push(I.value),E.set(N,I.value))}let m=R.map(I=>this.mergeValueToSelectColumn(I,c,t)),y=s.cteName!==null?{...s,alias:null}:{...s,alias:`APP${s.appId}${s.subtableCode?`$${s.subtableCode}`:""}`},g={type:"SELECT",distinct:!1,columns:m,from:y,joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null},T=this.parseCheckGroups(),h=this.parseDmlControlSuffix();return{type:"UPSERT_SELECT",appId:r,fields:f,select:g,keyFields:[d.field],...T,...h}}parseMergeQualifiedField(t){let n=this.peek(),r=this.parseFieldPath(),i=this.splitQualifiedField(r);if(i.alias===null)throw new S(t,n);return{alias:i.alias,field:i.field}}parseMergeAssignments(t){let n=[];do{let r=this.peek(),i=this.parseFieldPath(),o=this.splitQualifiedField(i);if(o.alias!==null&&o.alias.toLowerCase()!==t.toLowerCase())throw new S(`MERGE UPDATE SET \u306E\u5DE6\u8FBA\u306F target alias ${t} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);this.expect("="),n.push({field:o.field,value:this.parseAssignmentValue()})}while(this.consume(","));return n}parseMergeValueList(){let t=[];if(this.peek().kind===")")return t;do t.push(this.parseAssignmentValue());while(this.consume(","));return t}mergeExpressionsEqual(t,n,r){return this.mergeNormalizedValueEqual(this.normalizeMergeValue(t,r,!0),this.normalizeMergeValue(n,r,!0))}normalizeMergeValue(t,n,r=!1){if(Array.isArray(t))return t.map(o=>this.normalizeMergeValue(o,n,r));if(t===null||typeof t!="object")return t;let i=t;if(r&&i.type==="NUMBER")return{type:"NUMBER",value:i.value};if(i.type==="SOURCE_FIELD")return String(i.alias).toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{type:"FIELD_REF",field:i.field};if(i.type==="FIELD_REF"&&typeof i.field=="string"){let o=this.splitQualifiedField(i.field);return o.alias!==null&&o.alias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,field:o.field}}return i.type==="FIELD"&&typeof i.tableAlias=="string"?i.tableAlias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,tableAlias:null}:Object.fromEntries(Object.entries(i).map(([o,a])=>[o,this.normalizeMergeValue(a,n,r)]))}mergeNormalizedValueEqual(t,n){if(t===n)return!0;if(Array.isArray(t)||Array.isArray(n))return Array.isArray(t)&&Array.isArray(n)&&t.length===n.length&&t.every((s,l)=>this.mergeNormalizedValueEqual(s,n[l]));if(t===null||n===null||typeof t!="object"||typeof n!="object")return!1;let r=t,i=n,o=Object.keys(r),a=Object.keys(i);return o.length===a.length&&o.every(s=>Object.prototype.hasOwnProperty.call(i,s)&&this.mergeNormalizedValueEqual(r[s],i[s]))}mergeValueToSelectColumn(t,n,r){let i=this.normalizeMergeValue(t,n);if(this.mergeValueContainsInvalidSource(i))throw new S(`MERGE \u306E\u5F0F\u306F source alias ${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044`,r);let o=i;switch(o.type){case"FIELD_REF":return{type:"FIELD",field:String(o.field),alias:null};case"STRING":return{type:"LITERAL_COL",value:String(o.value),alias:null};case"NUMBER":return{type:"ARITH_COL",expr:o,alias:null};case"ARITH":return{type:"ARITH_COL",expr:o,alias:null};case"STRING_FUNC":return{type:"STRFUNC_COL",expr:o,alias:null};case"CASE_VALUE":return{type:"CASE_COL",expr:o.expr,alias:null};default:throw new S("MERGE \u306E\u4EE3\u5165\u5F0F\u306F\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9\u30FB\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u6587\u5B57\u5217\u95A2\u6570\u30FBCASE \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",r)}}mergeValueContainsInvalidSource(t){if(Array.isArray(t))return t.some(r=>this.mergeValueContainsInvalidSource(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="INVALID_SOURCE"||Object.values(n).some(r=>this.mergeValueContainsInvalidSource(r))}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new S(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new S(`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 S("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t,n){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let i=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="IF"){let i=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let i=this.advance(),o=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");r.push(Ie(`${i.kind==="-"?"-":"+"}${o.value}`))}else{let i=this.advance();if(i.kind==="STRING")r.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")r.push(Ie(i.value));else if(n&&this.isDialect1AsOfCall(i))r.push(this.finishVariableReference(i));else{let o=this.isDialect1AsOfCall(i)?" INSERT ... VALUES \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u6587\u578B\u3067\u306F INSERT ... SELECT \u3067\u6CE8\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"";throw new S(`INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059${o}`,i)}}while(this.consume(","));if(r.length!==t)throw new S(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${r.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return r}isDialect1AsOfCall(t){return this.capabilities.dialect1===!0&&t.kind==="VARIABLE"&&jr(t.value.slice(1).toUpperCase())&&this.peek().kind==="("&&this.peekAt(1).kind===")"}parseUpdate(){this.expect("UPDATE"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=Rt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(p=>p.value.type==="STRING_FUNC"))throw new S("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let p=this.parseTableRef();if(p.subtableCode)throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(p.cteName!==null&&!p.cteName.startsWith("#"))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!p.alias)throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(p.alias.toLowerCase()===`app${n}`.toLowerCase())throw new S(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:p.appId,cteName:p.cteName,alias:p.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new S("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 S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new S("\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 S("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let p=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=p.targetJoinField,o.joinKeyField=p.joinKeyField,o.targetFilter=p.targetFilter}else{if(i.some(p=>p.value.type==="SOURCE_FIELD"))throw new S("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(p=>p.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(p.value)))throw new S("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 S("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 S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new S("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&c.checkGroups)throw new S("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(d.validateOnly||d.onErrorSkip))throw new S("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...c,...d}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...c,...d}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...c,...d}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new S("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 S("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 S("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 S("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length,!1)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new S("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 S("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("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 S("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new S("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 S("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 S("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 S("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 S("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 S("\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 S("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 S(`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 S("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 S("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 S("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((d,u)=>{let p=this.matchUpdateFromJoin(d,n,r);p!==null&&a.push({index:u,...p})}),a.length!==1)throw new S("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let d=0;d<o.length;d++){if(d!==s.index&&this.nodeContainsQualifiedField(o[d],r))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(d!==s.index&&this.nodeContainsForeignQualifier(o[d],n))throw new S(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let c=o.filter((d,u)=>u!==s.index).reduce((d,u)=>d===null?u:{type:"LOGICAL",op:"AND",left:d,right:u},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:c}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new S("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(Jd(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 S("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 S("\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}=Rt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new S("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}=Rt(n,this.prev());if(!i)throw new S("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 S("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 S("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 S("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 S(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 S("\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 S("\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 S("\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 S("\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 S(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new S("\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"||ra.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new S("\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 Mh(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 Rt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new S(`\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 rn(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 kh(e,t){return e<t?-1:e>t?1:0}function Zd(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 xh(e,t){let n=Zd(e),r=Zd(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Eo(n.value,r.value):n.band===5&&r.band===5?rn(n.value,r.value):0}function ef(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 Fh(e,t,n){let r=ef(e,n),i=ef(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=rn(r.normalizedId,i.normalizedId);return o!==0?o:rn(r.display,i.display)}function Kh(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 tf(e,t){let n=t.optionOrder??new Map,i=[...new Set(Kh(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(nf),i}function nf(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:rn(e.label,t.label)}function Gh(e,t,n){let r=tf(e,n),i=tf(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=nf(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function ot(e,t,n){switch(n.compareMode){case"string":return rn(e,t);case"number":return xh(e,t);case"recordNumber":return Fh(e,t,n.fieldType==="RECORD_NUMBER");case"option":return Gh(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Dt(e,t,n,r=B("string")){let i=ot(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 rf(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?Eo(s,l):kh(Number(o),Number(a));if(c!==0)return c}return rn(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function ye(e,t,n={}){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Fe(t,e.field));if(e.type==="STRING_FUNC")return Number(ge(e,t,void 0,void 0,n));let r=ye(e.left,t,n),i=ye(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 Ne(e,t,n,r,i={}){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Fe(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 ge(e,t,n,r,i);case"CASE_WHEN":return Ge(e,t,n,r,i);case"CONCAT_OP":return ge({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r,i);case"SCALAR_ARITH":{let o=Number(Ne(e.left,t,n,r,i)),a=Number(Ne(e.right,t,n,r,i));switch(e.op){case"+":return o+a;case"-":return o-a;case"*":return o*a;case"/":return a!==0?o/a:NaN;case"%":return a!==0?o%a:NaN}}}}function vt(e,t,n,r,i={}){switch(e.type){case"CASE_WHEN":return lf(e,t,n,r,i);case"SCALAR_ARITH":{let o=vt(e.left,t,n,r,i),a=vt(e.right,t,n,r,i);if(o===null||a===null)return null;let s=Number(o),l=Number(a);switch(e.op){case"+":return s+l;case"-":return s-l;case"*":return s*l;case"/":return l!==0?s/l:NaN;case"%":return l!==0?s%l:NaN}}case"CONCAT_OP":{let o=vt(e.left,t,n,r,i),a=vt(e.right,t,n,r,i);return`${o??""}${a??""}`}default:return Ne(e,t,n,r,i)}}function ia(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 $h(e){return e>=55296&&e<=56319}function Bh(e){return e>=56320&&e<=57343}function aa(e,t){return t>0&&t<e.length&&$h(e.charCodeAt(t-1))&&Bh(e.charCodeAt(t))}function of(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 aa(e,n)&&(n-=1),e.slice(0,n)}function Vh(e,t){let n=Math.max(0,e.length-t);return aa(e,n)&&(n+=1),e.slice(n)}function Wh(e,t,n){let r=of(t,e.length),i=of(n,e.length);return i<=r?"":(aa(e,r)&&(r+=1),aa(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function Hh(e,t){let n=e.repeat(Math.ceil(t/e.length));return Ul(n,t)}var Yh=200,Xr=new Map;function jh(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 vl(e,t,n=!1){let r=jh(t)+(n?"g":""),i=`${e}\0${r}`,o=Xr.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(Xr.size>=Yh){let s=Xr.keys().next().value;s!==void 0&&Xr.delete(s)}return Xr.set(i,a),a}function zh(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function qh(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 Jh(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let d=Number(s+l);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=2;continue}}let c=Number(s);if(c>=1&&c<=n.length){i+=n[c-1]??"",o+=1;continue}}i+="$"}return i}function Xh(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,c=a.length-(l?3:2),d=a.slice(0,c);return Jh(n,o,d,l?s:void 0)})}function ge(e,t,n,r,i={}){Xo(e.func,e.args);let o=e.args.map(a=>oA(a,t,n,r,i));switch(e.func){case"UPPER":return(o[0]??"").toUpperCase();case"LOWER":return(o[0]??"").toLowerCase();case"TRIM":return(o[0]??"").trim();case"LTRIM":return(o[0]??"").trimStart();case"RTRIM":return(o[0]??"").trimEnd();case"LENGTH":return String((o[0]??"").length);case"LENGTH_CHAR":return String([...o[0]??""].length);case"SUBSTRING":{let a=o[0]??"",s=Math.max(0,Number(o[1]??"1")-1),l=o[2]!==void 0?Number(o[2]):void 0;return Wh(a,s,l!==void 0?s+l:a.length)}case"LEFT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":Ul(a,s)}case"RIGHT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":Vh(a,s)}case"INSTR":return String(o[0].indexOf(o[1])+1);case"LPAD":case"RPAD":{let a=o[0],s=Math.trunc(Number(o[1]));if(Number.isNaN(s)||s<=0)return"";if(a.length>=s)return Ul(a,s);let l=o[2]??" ";if(l==="")return a;let c=Hh(l,s-a.length);return e.func==="LPAD"?c+a:a+c}case"GREATEST":case"LEAST":return rf(o,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return o.join("");case"REPLACE":{let a=o[0]??"",s=o[1]??"",l=o[2]??"";return s===""?a:a.split(s).join(l)}case"REGEXP_LIKE":return vl(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{zh(o[2]);let a=qh(o[4]),s=vl(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):Xh(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return vl(o[1],o[2]??"").exec(o[0])?.[0]??"";case"TRANSLATE":{let a=[...o[1]],s=[...o[2]];if(a.length!==s.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${a.length}, to=${s.length}\uFF09`);let l=new Map;return a.forEach((c,d)=>{l.has(c)||l.set(c,s[d])}),[...o[0]].map(c=>l.get(c)??c).join("")}case"COALESCE":return o.find(a=>a!=="")??"";case"NULLIF":return(o[0]??"")===(o[1]??"")?"":o[0]??"";case"ISNULL":return(o[0]??"")!==""?o[0]??"":o[1]??"";case"ROUND":return ia("round",Number(o[0]??"0"),Number(o[1]??"0"));case"FLOOR":return ia("floor",Number(o[0]??"0"),Number(o[1]??"0"));case"CEIL":return ia("ceil",Number(o[0]??"0"),Number(o[1]??"0"));case"TRUNCATE":return ia("trunc",Number(o[0]),Number(o[1]??"0"));case"CAST":{let a=o[0]??"";if((o[1]??"TEXT")==="NUMBER"){let l=Number(a);return isNaN(l)?a:String(l)}return a}case"FORMAT":{let a=Number(o[0]??"0"),s=o[1]??"0";return rA(a,s)}case"YEAR":{let a=o[0]??"";return a.length>=4?String(parseInt(a.slice(0,4),10)):""}case"MONTH":{let a=o[0]??"";return a.length>=7?String(parseInt(a.slice(5,7),10)):""}case"DAY":{let a=o[0]??"";return a.length>=10?String(parseInt(a.slice(8,10),10)):""}case"DAYOFWEEK":return oa(o[0])?String(Ml(o[0])+1):"";case"QUARTER":return oa(o[0])?String(Math.ceil(Number(o[0].slice(5,7))/3)):"";case"WEEK":return oa(o[0])?String(sf(o[0])):"";case"DATE_FORMAT":return Zh(o[0]??"",o[1]??"");case"DATEDIFF":return eA(o[0]??"",o[1]??"");case"DATE_ADD":return tA(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return nA(o[0]);case"ABS":return String(Math.abs(Number(o[0]??"0")));case"MOD":{let a=Number(o[0]??"0"),s=Number(o[1]??"0");return String(s!==0?a%s:NaN)}case"POWER":return String(Math.pow(Number(o[0]??"0"),Number(o[1]??"0")));case"SQRT":return String(Math.sqrt(Number(o[0]??"0")));case"CURRENT_DATE":{let a=i.statementInstant??new Date,s=a.getFullYear(),l=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${s}-${l}-${c}`}case"CURRENT_TIMESTAMP":return(i.statementInstant??new Date).toISOString()}}function Qr(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 sa(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 oa(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=sa(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 Ml(e){return sa(e).getUTCDay()}function af(e){let t=sa(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function Qh(e){return af(e).getUTCFullYear()}function sf(e){let t=af(e),n=t.getUTCFullYear(),r=sa(`${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 Zh(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=Qr(e),l=oa(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(Ml(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Ml(e)]:"";case"%v":return l?String(sf(e)).padStart(2,"0"):"";case"%G":return l?String(Qh(e)).padStart(4,"0"):"";default:return c}})}function eA(e,t){if(e.length<10||t.length<10)return"0";let n=Qr(e),r=Qr(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 tA(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}=Qr(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let p=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(p,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),c=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${l}-${c}-${d}`}function nA(e){if(!e||e.length<10)return e;let{y:t,mo:n}=Qr(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 rA(e,t){if(/^-?\d+$/.test(t.trim()))return iA(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,c=s+l,d=i.toFixed(c),[u,p=""]=d.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,R=p?`${f}.${p}`:f;return n?R+"%":R}function iA(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 oA(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(Zr(e,t)):e.type==="NUMBER"?z(e):String(Ne(e,t,n,r,i))}function Zr(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[de(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Fe(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(Zr(e.left,t)),r=Number(Zr(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 Fe(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 le(e,t,n,r,i,o={}){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return aA(e,t,n,r,i,o);case"NULL_CHECK":return dA(e,t);case"LOGICAL":return fA(e,t,n,r,i,o);case"NOT":return!le(e.expr,t,n,r,i,o);case"GROUP":return le(e.expr,t,n,r,i,o);case"EXISTS":{let a=e.resolved;return e.not?!a:a}}}function aA(e,t,n,r,i,o={}){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let a=mf(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=lA(e.left,s,i);return sA(e.op,a,e.right,t,s,n,l,i,o)}function sA(e,t,n,r,i,o,a=B("string"),s,l={}){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(pA(n.values),d=new Set(n.values.map(p=>p.type==="NUMBER"?i==="NUMBER"?z(p):String(p.value):p.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let u=cA(t,d,i);return e==="IN"?u:!u}if(e==="LIKE"){let d=kl(n,r,o,void 0,l);return Rf(t,d)}if(e==="NOT_LIKE"){let d=kl(n,r,o,void 0,l);return!Rf(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let c=kl(n,r,o,s,l);return Dt(e,t,c,a)}var uf=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function lA(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?ne({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(uf.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(uf.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 cf=new Set(["CHECK_BOX","MULTI_SELECT"]),pf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),uA=new Set(["CREATOR","MODIFIER"]);function cA(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=>Dt("=",e,a,o))}let i;if(cf.has(n)||pf.has(n)||uA.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return cf.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):pf.has(n)?!Array.isArray(i)||!i.every(df)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):df(i)?t.has(i.code):r()}function df(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function pA(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}: ${Pt}`)}function dA(e,t){let n=mf(e.field,t);return e.not?n!=="":n===""}function fA(e,t,n,r,i,o={}){return e.op==="AND"?le(e.left,t,n,r,i,o)&&le(e.right,t,n,r,i,o):le(e.left,t,n,r,i,o)||le(e.right,t,n,r,i,o)}function mf(e,t,n,r,i={}){if(e.type==="FUNC_FIELD")return ge(e.expr,t,void 0,void 0,i);if(e.type==="AGG_FIELD")return String(Zr(e.expr,t));if(e.type==="ARITH_FIELD")return String(ye(e.expr,t,i));if(e.type==="CASE_FIELD")return Ge(e.expr,t,n,r,i);if(e.type==="GROUPING_FIELD")return qn(e.ref,t);if(e.aggregateRef){let a=e.aggregateRef;return Fe(t,de(a.func,a.distinct,a.arg))}let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Fe(t,o)}function kl(e,t,n,r,i={}){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return z(e);case"KINTONE_FUNC":return EA(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"?Fe(t,e.expr.field):e.expr.type==="STRING_FUNC"?ge(e.expr,t,void 0,void 0,i):String(ye(e.expr,t,i));case"CASE_VALUE":return Ge(e.expr,t,n,r,i);case"ARRAY":return e.elements.map(o=>o.value).join(",")}}function Ge(e,t,n,r,i={}){for(let o of e.branches)if(le(o.condition,t,n,void 0,r,i))return Ef(o.result,t,n,r,i);return e.elseResult!==null?Ef(e.elseResult,t,n,r,i):""}function lf(e,t,n,r,i={}){for(let o of e.branches)if(le(o.condition,t,n,void 0,r,i))return ff(o.result,t,n,r,i);return e.elseResult===null?null:ff(e.elseResult,t,n,r,i)}function ff(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[de(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[Et(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?ye(e,t,i):vt(e,t,n,r,i)}function Ef(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[de(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[Et(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(ye(e,t,i)):String(Ne(e,t,n,r,i))}function yf(e,t={}){let n=t.statementInstant??new Date;switch(e){case"TODAY":{let r=n.getFullYear(),i=String(n.getMonth()+1).padStart(2,"0"),o=String(n.getDate()).padStart(2,"0");return`${r}-${i}-${o}`}case"NOW":return n.toISOString();case"LOGINUSER":case"PRIMARY_ORGANIZATION":return""}}function EA(e){throw re(e)?new Error(`${e}: ${dn}`):Vn(e)?new Error(`${e}: ${Pt}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var la=new Map,RA=200;function Rf(e,t){if(!Jp(t))return e.includes(t);let n=la.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"),la.size>=RA&&la.clear(),la.set(t,n)}return n.test(e)}function or(e){return hf(e)}function gf(e){return hf(e.flatMap(t=>t.rules.map(n=>n.condition)))}function hf(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 Ce("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 Ce("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 Ce(e){return new S(e,{kind:"EOF",value:"CHECK",pos:0})}function ua(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!le(a.condition,t,n))continue;let s=Ne(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function xl(e){if(jt(e))throw new ae("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 mA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),yA=new Set(["CHECK_BOX","MULTI_SELECT"]);function da(e,t=new Map,n={}){let r=e.values.map(i=>gA(e.fields,i,t,n));return ri(r,100).map(i=>({app:e.appId,records:i}))}function gA(e,t,n,r){let i={};return e.forEach((o,a)=>{let s=t[a];s.type==="CASE_VALUE"?i[o]={value:Ut(s.expr,{},n.get(o),r)}:i[o]={value:mt(s,n.get(o))}}),i}function ti(e){xl(e.where);let t=Df(e);return{app:e.appId,query:j(e.where),fields:["$id",...t],totalCount:!1}}function ni(e,t,n=new Map){let r=hA(e.assignments,n);return ri(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function hA(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:mt(i,t.get(r))});return n}function If(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 fa(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){xl(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?wf(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?ar(n,t):n.type==="STRING_FUNC"?Kl(n,t):n.type==="CASE_VALUE"&&bf(n.expr,t);return Df(e).forEach(n=>t.add(n)),{app:e.appId,query:j(e.where),fields:["$id",...t],totalCount:!1}}function wf(e,t){ei(e.left,t),ei(e.right,t)}function ei(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"?wf(e,t):e.type==="STRING_FUNC"&&Kl(e,t)}function Kl(e,t){for(let n of e.args)AA(n,t)}function AA(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){pa(e,t);return}ar(e,t)}function ar(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Kl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){ar(e.left,t),ar(e.right,t);return}e.type==="CASE_WHEN"&&bf(e,t)}function pa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&SA(e.arg,t);return}e.type==="AGG_ARITH"&&(pa(e.left,t),pa(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function SA(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?ei(e,t):ar(e,t)}function Af(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){pa(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){ei(e,t);return}ar(e,t)}}function bf(e,t){for(let n of e.branches)ca(n.condition,t),Af(n.result,t);e.elseResult!==null&&Af(e.elseResult,t)}function ca(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&ei(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":ca(e.left,t),ca(e.right,t);break;case"NOT":case"GROUP":ca(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function Gl(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=Nf(o),l={};for(let{field:c,value:d}of e.assignments)l[c]={value:$l(d,s,n.get(c),o,r)};return{id:a,record:l}});return ri(i,100).map(o=>({app:e.appId,records:o}))}function $l(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?Vl(e,r):ye(e,t,i));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Ne(e,t,void 0,void 0,i));if(e.type==="STRING_FUNC")return ge(e,t,void 0,void 0,i);if(e.type==="CASE_VALUE")return Ut(e.expr,t,n,i);if(e.type==="SOURCE_FIELD")throw new ae("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return mt(e,n)}function Ea(e,t,n,r={}){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return z(e);if(e.type==="ARITH")return String(ye(e,t,r));if(e.type==="CASE_VALUE")return Ge(e.expr,t,n,void 0,r);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var TA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function Bl(e,t,n=new Map,r={}){let i=t.map(({target:o,source:a})=>{let s=Number(o.$id?.value);if(!Number.isSafeInteger(s)||s<=0)throw new ae("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let l=Nf(o),c={};for(let{field:d,value:u}of e.assignments){let p=n.get(d);if(u.type==="SOURCE_FIELD"){if(TA.has(p??""))throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${p} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(a,u.field))throw new ae(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let f=a[u.field];if(typeof f!="string")throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((p==="NUMBER"||p==="CALC")&&f!==""&&!Number.isFinite(Number(f)))throw new ae(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${f}`);c[d]={value:mt({type:"STRING",value:f},p)}}else{if(u.type==="STRING_FUNC")throw new ae("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");u.type==="ARITH"?c[d]={value:String(Vl(u,o))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?c[d]={value:String(Ne(u,l,void 0,void 0,r))}:u.type==="CASE_VALUE"?c[d]={value:Ut(u.expr,l,p,r)}:c[d]={value:mt(u,p)}}}return{id:s,record:c}});return ri(i,100).map(o=>({app:e.appId,records:o}))}function Nf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Vl(e,t){let n=Sf(e.left,t),r=Sf(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new ae("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new ae("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Sf(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 Vl(e,t);if(e.type==="STRING_FUNC")throw new ae("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 ae(`\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 Cf(e){return xl(e.where),{app:e.appId,query:j(e.where),fields:["$id"],totalCount:!1}}function Pf(e,t){return ri(t,100).map(n=>({app:e,ids:n}))}function Of(e){return mA.has(e??"")}function IA(e){return yA.has(e??"")}function wA(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 bA(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Lf(e,t){return Of(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):IA(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?wA(e):t==="DATE"?bA(e):e}function _f(e,t){return Of(t)?e.map(n=>({code:n})):e}function Tf(e,t,n,r){if(e.type==="ARRAY")return _f(e.elements.map(i=>i.value),n);if(e.type==="AGG_REF"||e.type==="AGG_ARITH")throw new Error("InternalError: aggregate CASE result reached DML evaluation.");return e.type==="STRING"?Lf(e.value,n):e.type==="STRING_FUNC"?ge(e,t,void 0,void 0,r):e.type==="FIELD_REF"||e.type==="ARITH"?String(ye(e,t,r)):String(Ne(e,t,void 0,void 0,r))}function Df(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(or(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Ut(e,t,n,r={}){for(let i of e.branches)if(le(i.condition,t,void 0,void 0,void 0,r))return Tf(i.result,t,n,r);return e.elseResult!==null?Tf(e.elseResult,t,n,r):""}function mt(e,t){let n=Wl(e,t);if(!n.ok)throw new ae(n.message);return n.value}function Wl(e,t){try{return{ok:!0,value:NA(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function NA(e,t){switch(e.type){case"VARIABLE":throw new ae(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new ae(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Lf(e.value,t);case"NUMBER":return z(e);case"ARRAY":return _f(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new ae(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new ae("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new ae("\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 ae("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 ae("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new ae("\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 ri(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var ae=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Hl=new Set(["CHECK_BOX","MULTI_SELECT"]),CA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ii(e){throw new Error(`ArgumentError: ${e}`)}function vf(e,t,n){let r=PA(n.fieldType,e.field),i=OA(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let g=y.value;g!==""&&(y.kind==="ADD"?(s.has(g)||a.push(g),s.add(g)):l.add(g))}for(let y of s)l.has(y)&&ii(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let c=i.filter(y=>!l.has(y)),d=a.filter(y=>!o.has(y)),u=[...c,...d],p=new Set(i.filter(y=>l.has(y))).size,f=new Set,R=new Set,E=e.operations.map(y=>{let g=y.kind==="ADD"?f:R,T=!g.has(y.value);return g.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&T&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=Hl.has(r)?u:u.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:E,postImageValue:m,addedValues:d.length,removedValues:p,changedValues:d.length+p}}function PA(e,t){return Hl.has(e)||CA.has(e)?e:ii(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function OA(e,t,n){if(!Array.isArray(e))return ii(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Hl.has(t)?typeof i!="string"?ii(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?ii(`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 zl(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 Mt(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)Yl(s.field,null,r),LA(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(jp(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,d=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,c),a.set(s.field,d);for(let u of s.operations)if(u.kind==="PATCH"){for(let p of u.assignments)Yl(p.field,s.field,r,d),jl(p.value,s.field,r,d);u.selector.kind==="WHERE"&&jl(u.selector.where,s.field,r,d)}else if(u.kind==="APPEND"){let p=new Set;for(let f of u.fields)p.has(f)&&J(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),Yl(f,s.field,r,d)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&jl(u.selector.where,s.field,r,d)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function LA(e,t){oi(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 Yl(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 jl(e,t,n,r){oi(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 Ra(e,t){let n=Mt(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)oi(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function ma(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=Kf(i?.value);return n}function Mf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Mt(t,r),o=Xl(n.$id?.value,"APPLY snapshot $id"),a=zl(t);return o!==a&&J(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),xf(t,n,i,o,e.evaluationContext)}function kf(e,t,n,r=Mt(e,n),i={}){let o=new Set;return t.map(a=>{let s=Xl(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&J(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),xf(e,a,r,s,i)})}function xf(e,t,n,r,i={}){let o=Xl(t.$revision?.value,"APPLY snapshot $revision"),a=[],s=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let C=n.targetMultiValueFields.get(u.field);C||J(`APPLY multi-value metadata for ${u.field} is missing.`),s.push(vf(u,t[u.field]?.value,C));continue}let p=n.childrenByTable.get(u.field),f=kA(t,u.field),R=new Set;for(let C of f)C.id||J(`APPLY snapshot for ${u.field} contains a row without _rid.`),R.has(C.id)&&J(`APPLY snapshot for ${u.field} contains duplicate _rid ${C.id}.`),R.add(C.id);let E=C=>C.field==="_rid"?"SINGLE_LINE_TEXT":C.field==="_idx"?"NUMBER":p.get(C.field)?.fieldType,m=[],y=[],g=[],T=new Set,h=new Set,I=new Set,N=u.operations.some(C=>C.kind==="REMOVE");for(let[C,v]of u.operations.entries()){if(v.kind==="APPEND"){let _=ql(v,p,u.field,i);g.push({kind:"APPEND",addedRows:_.length}),y.push(..._);continue}if(v.kind==="REMOVE"){let _=vA(v,f,E,u.field,i);v.expectRows&&Uf(v.expectRows,_.length,r,u.field,C,v.kind),g.push({kind:"REMOVE",removedRows:_.length});for(let A of _){let w=f[A].id;h.has(A)&&J(`APPLY row ${w} is selected by both PATCH and REMOVE.`),I.has(A)&&J(`APPLY removes row ${w} more than once.`),I.add(A)}continue}if(v.kind!=="PATCH")continue;let b=DA(v,f,E,u.field,i);v.expectRows&&Uf(v.expectRows,b.length,r,u.field,C,v.kind),g.push({kind:"PATCH",matchedRows:b.length,changedRows:b.length});for(let _ of b){let A=f[_];I.has(_)&&J(`APPLY row ${A.id} is selected by both PATCH and REMOVE.`),h.add(_);let w=ma(A,_);for(let k of v.assignments){let O=`${A.id}\0${k.field}`;T.has(O)&&J(`APPLY patches cell ${A.id}.${k.field} more than once.`),T.add(O),m.push({rowIndex:_,field:k.field,value:Ea(k.value,w,E,i)})}}}let D=new Map;for(let C of m){let v=D.get(C.rowIndex)??{};v[C.field]={value:C.value},D.set(C.rowIndex,v)}let M=[...f.flatMap((C,v)=>I.has(v)?[]:[{id:C.id,value:{...C.value,...D.get(v)??{}}}]),...y],U={table:u.field,operations:g,changedSubtableRows:D.size+I.size+y.length,deletedRows:I.size,snapshotRowIds:f.map(C=>C.id),postImageRows:M};N?a.push({...U,payloadShape:"FULL_SURVIVORS",removedRowIds:f.flatMap((C,v)=>I.has(v)?[C.id]:[]),payloadRows:M.map(C=>({...C.id===void 0?{}:{id:C.id},value:C.value}))}):a.push({...U,payloadShape:"PATCH_ONLY",payloadRows:[...f.map((C,v)=>{let b=D.get(v);return b?{id:C.id,value:b}:{id:C.id}}),...y.map(C=>({value:C.value}))]})}let l=xA(t),c={};for(let u of e.assignments){let p=n.fieldsByCode.get(u.field)?.fieldType;c[u.field]={value:$l(u.value,l,p,t,i)}}let d={...t};Object.assign(d,c);for(let u of a)d[u.table]={value:u.postImageRows};for(let u of s)d[u.field]={value:u.postImageValue};return{app:e.appId,parentId:r,revision:o,parentRows:1,changedSubtableRows:a.reduce((u,p)=>u+p.changedSubtableRows,0),parentValues:c,postImage:d,tables:a,multiValues:s}}function Uf(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 ya(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 d=a[c];return d?.value?l.id===void 0?{value:d.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,d.value[u]]))}: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 ql(e,t,n,r={}){return e.values.map(i=>({value:_A(e,i,t,n,r)}))}function _A(e,t,n,r,i){if(t.length!==e.fields.length)return J(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let o=new Map(e.fields.map((s,l)=>[s,t[l]])),a={};for(let s of n.values()){if(s.fieldType==="FILE"||s.writable===!1)continue;let l=o.get(s.code);a[s.code]={value:l===void 0?Jl(s):l.type==="CASE_VALUE"?Ut(l.expr,{},s.fieldType,i):mt(l,s.fieldType)}}return a}function Jl(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 DA(e,t,n,r,i={}){return Ff(e.selector,t,n,r,i)}function vA(e,t,n,r,i={}){return Ff(e.selector,t,n,r,i)}function Ff(e,t,n,r,i={}){if(e.kind==="ALL_ROWS")return t.map((c,d)=>d);let o=e.where,a=t.flatMap((c,d)=>le(o,ma(c,d),n,void 0,void 0,i)?[d]:[]),s=UA(o);s!==null&&a.length===0&&J(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=MA(o);return l!==null&&a.length===0&&J(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function UA(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 MA(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 kA(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 Xl(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&J(`${t} must be a positive integer.`),n}function xA(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Kf(r?.value);return t}function Kf(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 oi(e,t){if(Array.isArray(e)){e.forEach(r=>oi(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))oi(r,t)}function fe(e){throw new Error(`ArgumentError: ${e}`)}function ha(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?fe("APPLY snapshot $revision must be a positive integer."):t}function ai(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return fe("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return fe("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)&&fe(`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)&&fe(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&fe(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),FA(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Gf(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 fe("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 FA(e){let t=Ql(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(d=>d.id===void 0?[]:[d.id]);for(let d of e.payloadRows)d.id===void 0&&d.value===void 0&&fe(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Ql(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&fe(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let d=e.payloadRows.slice(0,t.length).map(p=>p.id??"");ga(t,d,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(p=>p.id!==void 0)&&fe(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(p=>p.id??"");ga(t,u,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(p=>p.id!==void 0)&&fe(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(d=>d.kind==="REMOVE")||fe(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Ql(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&fe(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&fe(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(d=>d.id===void 0?[]:[d.id]),o=new Set(r),a=new Set(i);for(let d of r)a.has(d)&&fe(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${d}.`);let s=t.filter(d=>!o.has(d));ga(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(d=>d.id??"");ga(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(d=>d.id!==void 0)||e.postImageRows.slice(i.length).some(d=>d.id!==void 0))&&fe(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(d=>d.value===void 0)&&fe(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((d,u)=>!Zl(d.value,e.postImageRows[u]?.value))&&fe(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let c=new Set([...i,...r]);(c.size!==t.length||t.some(d=>!c.has(d)))&&fe(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Ql(e,t){let n=[...e],r=new Set;for(let i of n)i||fe(`APPLY ${t} contains an empty row id.`),r.has(i)&&fe(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function ga(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&fe(n)}function Zl(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)=>Zl(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)&&Zl(n[a],r[a]))}function $f(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 Bf(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=$f(t.digits,"digits",1,30),r=$f(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 Vf(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 KA=new Set(["CHECK_BOX","MULTI_SELECT"]),GA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function $e(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=$A(e);if(i!==""&&!BA(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=si(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:VA(t.fieldType),message:o}}if(t.required&&Aa(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Aa(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&&Ro(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&&Ro(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}=Vf(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(!Aa(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!gn(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!Aa(r)&&GA.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 $A(e){return e==null?"":Sa(e)&&e.type==="NUMBER"?z(e):Sa(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function BA(e,t){if(t==="DATE")return gn(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return gn(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)?gn(n.slice(0,10),"DATE")&&gn(n.slice(11),"TIME"):gn(n,"DATETIME")}function si(e,t){if(Sa(e)){let r=Wl(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(KA.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 Sa(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function hn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Sa(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Aa(e){return e===""||Array.isArray(e)&&e.length===0}function VA(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function gn(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)&&gn(l,"TIME")}var sr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function eu(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(d=>typeof d=="object"&&d!==null&&"code"in d),c=a;try{c=si(a,s)}catch{}i.record[o]={value:l?a:c}}}}function tu(e,t,n,r,i,o,a,s=[],l=!0,c=!0,d={}){let u=new Map(i.map(m=>[m.code,m])),p=[],f=new Set,R=[];d.validateUpdateBuiltIns===!1&&eu(e,r,i);let E;for(let m of e){m.record??(m.record={});let y=c?[...m.preErrors]:[],g=[],T=[],h=m.mode==="create"||d.validateUpdateBuiltIns!==!1;for(let P of r){if(!m.payload.has(P))continue;let M=m.payload.get(P),U=u.get(P).fieldType,C=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(U)&&Array.isArray(M)&&M.every(b=>typeof b=="object"&&b!==null&&"code"in b);if(!h)continue;let v=$e(M,u.get(P),a);v.ok?m.record[P]={value:C?M:v.value}:g.push({field:P,code:v.code,message:v.message})}if(l&&m.mode==="create")for(let P of i){if(P.inSubtable||m.payload.has(P.code))continue;if(hn(P.defaultValue)){let U=$e("",P,a);U.ok?P.required&&g.push({field:P.code,code:"ERR_REQUIRED",message:`${P.code} \u306F\u5FC5\u9808\u3067\u3059`}):g.push({field:P.code,code:U.code,message:U.message})}else{let U=$e(P.defaultValue,P,a);U.ok||g.push({field:P.code,code:U.code,message:`\u65E2\u5B9A\u5024: ${U.message}`})}}if(s.length>0){let P=m.evaluationRow??Object.fromEntries([...m.payload].map(([C,v])=>[C,yt(v)])),M=m.evaluationFieldTypes,U=C=>{let v=C.tableAlias?`${C.tableAlias}.${C.field}`:C.field;return M?.get(v)??M?.get(C.field)};try{for(let C of ua(s,P,U))T.push({field:"",code:"ERR_CHECK",message:C.message})}catch(C){E??(E=C)}}let I=P=>P.map(M=>{let U={};for(let C of n)U[C]=yt(m.payload.get(C));return U.$err_statement=String(o),U.$err_operation=t,U.$err_row=String(m.rowNumber),U.$err_field=M.field,U.$err_code=M.code,U.$err_message=M.message,U.$err_value="",U.$err_subtable="",U.$err_subrow="",U.$err_subrow_id="",U}),N={rowNumber:m.rowNumber,preErrors:I(y),builtInErrors:I(g),checkErrors:I(T)};R.push(N);let D=[...N.preErrors,...N.builtInErrors,...N.checkErrors];D.length>0&&f.add(m.rowNumber),p.push(...D)}if(E!==void 0)throw E;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:R}}function yt(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 nu=["required","length","range","choice"];function ru(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 iu(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 WA(e){return ru(e).length>0}function HA(e){return e.fieldType==="NUMBER"||WA(e)}function Ta(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function ou(e,t){let{topByCode:n,childrenByTable:r}=iu(t),i=HA;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,c)=>{let d=c?`${c}\0${l.code}`:l.code;if(a.has(d))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(d),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...c?{subtableCode:c}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let u=r.get(l.subtableCode);if(!u)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let p of l.children){let f=u.find(R=>R.code===p);if(!f){let R=[...r.entries()].some(([E,m])=>E!==l.subtableCode&&m.some(y=>y.code===p));throw new Error(R?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let c=l.field;if(c==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let d=n.get(c);if(d?.fieldType==="SUBTABLE"){let u=(r.get(c)??[]).filter(i);if(u.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${c} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);u.forEach(p=>s(p,c));continue}if(d){s(d);continue}throw[...r.values()].some(u=>u.some(p=>p.code===c))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${c}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function li(e,t){return hn(e)?"":yt(si(e,t))}var YA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),ui=sr;function gt(e,t=["$id"]){let n=iu(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 An(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 Sn(e,t,n,r,i=1,o="UPDATE"){let a=jA(e),s=[],l=new Set,c=[...t.payloadFields,...ui],d=yt(e.$id?.value),u=(p,f,R,E)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?d:yt(e[y]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=p.code,m.$err_code=R.code,m.$err_message=R.message,m.$err_value=li(f,p.fieldType),m.$err_subtable=E?.subtable??"",m.$err_subrow=E?String(E.subrow):"",m.$err_subrow_id=E?.subrowId??"",s.push(m)};for(let p of t.topLevel){let f=e[p.code]?.value,R=$e(f,p,n);R.ok?a[p.code]={value:Wf(f,p.fieldType,R.value)}:u(p,f,R)}for(let[p,f]of t.subtables){let R=e[p]?.value;if(!Array.isArray(R))continue;let E=a[p]?.value;for(let m=0;m<R.length;m++){let y=R[m],g=E[m];for(let T of f){let h=y.value?.[T.code]?.value,I=$e(h,T,n);I.ok?(g.value??(g.value={}),g.value[T.code]={value:Wf(h,T.fieldType,I.value)}):u(T,h,I,Ta(p,m,y))}}}return{normalizedRecord:a,errors:s,columns:c,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function Wf(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 jA(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 Ia(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;Hf(o,"dmlMaxRows"),Hf(a,"dmlMaxSubtableRows");for(let T of n)ha(T);let l=kf(t,n,r,i),c=gt(r,t.assignments.map(T=>T.field)),d=l.some(T=>An(T.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=l.map((T,h)=>Sn(T.postImage,c,u,s,e.parentRowNumbers?.[h]??h+1));if(!t.validateOnly){let T=p.flatMap(h=>h.errors);if(T.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:T})}`)}let f=l.length,R=l.reduce((T,h)=>T+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 m=l.map((T,h)=>ya(T,p[h].normalizedRecord)),y=m.flatMap(T=>ai(T).records),g=p.map(T=>({errors:T.errors,columns:T.columns,invalidRows:T.invalidRows,errorCount:T.errorCount}));return Yf({plans:m,records:y,validations:g,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:R,dmlMaxSubtableRows:a,wouldExceed:E}})}function Hf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Yf(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))Yf(n,t);return Object.freeze(e)}var au=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function wa(e,t){if(new Set(e.fields).size!==e.fields.length)return ht("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)jf(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return ht(`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 ht(`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 ht(`APPLY INSERT supports APPEND only (${l.kind}).`);let c=new Set;for(let d of l.fields){if(c.has(d))return ht(`APPLY APPEND specifies child ${d} more than once.`);c.add(d),jf(d,o.field,n,s)}for(let d of l.values)if(d.length!==l.fields.length)return ht(`APPLY APPEND for ${o.field} has ${d.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function zA(e,t,n=wa(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=da(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),c=s.operations.flatMap(d=>ql(d,l,s.field));return{table:s.field,rows:c,addedRows:c.length}});return o.map((s,l)=>{let c={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||au.has(u.fieldType)||(c[u.code]=s[u.code]??{value:Jl(u)});let d={...s};for(let u of a){let p=u.rows.map(f=>({value:f.value}));c[u.table]={value:p},d[u.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:c,record:d}})}async function ci(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;zf(r,"dmlMaxRows"),zf(i,"dmlMaxSubtableRows");let a=e.metadata??wa(t,n),s=zA(t,n,a,e.parentRowNumbers),l=n.filter(h=>h.fieldType==="SUBTABLE"||h.fieldType!=="FILE"&&h.writable!==!1&&!au.has(h.fieldType)),c=gt(l,t.fields),d=s.some(h=>An(h.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=s.map(h=>Sn(h.postImage,c,u,o,h.parentRowNumber,"INSERT"));if(!t.validateOnly){let h=p.flatMap(I=>I.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:h})}`)}let f=s.length,R=s.reduce((h,I)=>h+I.tables.reduce((N,D)=>N+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 m=s.map((h,I)=>{let N=p[I].normalizedRecord,D={};for(let P of t.fields)D[P]=N[P];for(let P of h.tables){let M=N[P.table]?.value;D[P.table]={value:P.rows.map((U,C)=>({value:Object.fromEntries(Object.keys(U.value).map(v=>[v,M[C]?.value?.[v]??U.value[v]]))}))}}return{...h,postImage:N,record:D}}),y=m.map(h=>h.record),g=[];for(let h=0;h<y.length;h+=100)g.push({app:t.appId,records:y.slice(h,h+100)});let T=p.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return qf({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:g,validations:T,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:R,dmlMaxSubtableRows:i,wouldExceed:E}})}function jf(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return ht(`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?ht(`APPLY child ${e} does not belong to subtable ${t}.`):ht(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||au.has(i.fieldType))return ht(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function zf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function ht(e){throw new Error(`ArgumentError: ${e}`)}function qf(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))qf(n,t);return Object.freeze(e)}async function Xf(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Jf(i,"dmlMaxRows"),Jf(o,"dmlMaxSubtableRows"),ZA(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),c=qA(t,s.map(y=>y.sourceRowIndex)),d=await ci({statement:c,fieldInfos:r,metadata:wa(c,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],p=new Set;for(let y of l){let g=y.targetId;p.has(g)&&su(`UPSERT APPLY resolves more than one source row to parent $id ${g}.`),p.add(g),y.snapshot||su(`UPSERT APPLY snapshot for parent $id ${g} is missing.`);let T=Number(y.snapshot.$id?.value);T!==g&&su(`UPSERT APPLY snapshot $id ${T} does not match target $id ${g}.`);let h=JA(t,y.sourceRowIndex,g),I=h.applyBlocks?.length?Mt(h,r):XA(r);u.push(await Ia({statement:h,snapshots:[y.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=QA(u,i,o),R=d.guards.parentRows+f.guards.parentRows,E=d.guards.subtableRows+f.guards.subtableRows,m=R>i||E>o;if(!t.validateOnly){let y=[...d.validations.flatMap(g=>g.errors),...f.validations.flatMap(g=>g.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&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 lu({create:d,update:f,createBatches:d.batches,updateBatches:eS(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:R,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:m,create:d.guards,update:f.guards}})}function qA(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function JA(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 XA(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function QA(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 lu({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 ZA(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 eS(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 Jf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function su(e){throw new Error(`ArgumentError: ${e}`)}function lu(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))lu(n,t);return Object.freeze(e)}function di(e){return lr("UPDATE",[eE(e)])}function uu(e){return lr("INSERT",[Zf(e)])}function cu(e){return lr("UPSERT",[Zf(e.create),eE(e.update)])}function Ye(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 Na(e,t,n){return e.type==="UPDATE"?lr("UPDATE",[ba("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?lr("INSERT",[ba("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):lr("UPSERT",[ba("insert",e.onInsertApplyBlocks??[],null,!1,t,n),ba("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function lr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Zf(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 eE(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:Qf(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:Qf(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 Qf(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:pi(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:pi(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:pi(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:pi(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:pi(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function pi(e,t){return e==null||t===null?null:e+t}function ba(e,t,n,r,i,o){let a=t.map(d=>{let u=d.operations.map(f=>tS(f,n)),p=u.every(f=>f.count!==null)?u.reduce((f,R)=>f+R.count,0):null;return{targetKind:d.targetKind,field:d.field,operations:u,changedCount:p}}),s=a.filter(d=>d.targetKind==="SUBTABLE"),l=s.every(d=>d.changedCount!==null)?s.reduce((d,u)=>d+u.changedCount,0):null,c=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:c},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function tS(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 At=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 tE(e,t,n){jn("phase10c");let r=Gf(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 At({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ye(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 nE(e,t,n){jn("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 At({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ye(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 rE(e,t,n){jn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let c=e.createBatches[l];try{let d=await t.postRecords({app:c.app,records:[...c.records]});r.push(d.ids)}catch(d){throw new At({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ye(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},d)}i+=1,a+=c.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let c=e.updateBatches[l];try{await t.putRecords({app:c.app,records:[...c.records]})}catch(d){throw new At({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Ye(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},d)}o+=1,s+=c.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var nS=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function rS(e){if(!nS.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 iS(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=rS(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 pu(e,t){let n=iS(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 oS(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 du(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 oS(i)?!0:Object.values(i).some(n)};return n(e)}function iE(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 St(e){let t=[["recursiveCteMaxDepth",e.recursiveCteMaxDepth,100],["recursiveCteMaxRows",e.recursiveCteMaxRows,1e4],["recursiveCteMaxExpansions",e.recursiveCteMaxExpansions,1e5]];for(let[n,r]of t)if(r!==void 0&&(!Number.isSafeInteger(r)||r<=0))throw new RangeError(`${n} must be a positive safe integer`);return{depth:e.recursiveCteMaxDepth??100,rows:e.recursiveCteMaxRows??1e4,expansions:e.recursiveCteMaxExpansions??1e5}}var fi=class extends Error{constructor(t,n,r,i){let o=t==="DEPTH"?"\u6DF1\u3055":t==="ROWS"?"\u7D50\u679C\u884C\u6570":"\u4E2D\u9593\u5C55\u958B\u6570",a=t==="DEPTH"?"":" \u4EF6";super(`\u518D\u5E30 CTE\u300C${i}\u300D\u306E${o}\u304C\u4E0A\u9650 ${n}${a}\u3092\u8D85\u3048\u307E\u3057\u305F\uFF08\u691C\u51FA\u5024: ${r}${a}\uFF09\u3002`),this.name="RecursiveCteLimitError",this.kind=t,this.limit=n,this.detected=r,this.cteName=i,Object.setPrototypeOf(this,new.target.prototype)}},Ca=class{constructor(t,n=St({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new fi("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new fi("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new fi("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var Pa=50;function Eu(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+=Pa){let o=e.values.slice(i,i+Pa);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var fu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),aS=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function sS(e,t){return e==="DATE"?Gr(t):e==="TIME"?Fo(t):fu.has(e)?Ko(t):!1}function lS(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":fu.has(e)?fu.has(t.fieldType):!1}function Ru(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=xo(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!aS.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(!lS(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=>!sS(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];ot(s,i,n)<0&&(i=s),ot(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var mu=Tl;function Ei(e,t,n=mu){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function oE(e,t){let n=te(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 Tt(e){if(e===null)return!1;switch(e.type){case"BINARY":return Oa(e.left);case"NULL_CHECK":return Oa(e.field);case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Oa(e){if(Array.isArray(e))return e.some(Oa);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(Oa)}async function at(e,t,n,r,i){let o=await xe(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 La(e,t,n,r){let{records:i,metrics:o}=await at(e,t,n,["$id"],r);return{ids:vp(i),metrics:o}}function cr(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)?sE(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"}):sE(n[0],e.field)}function hu(e,t){if(e.left.type!=="FIELD")return Ri();let n=cr(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Ri();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Se(e,a=>{let s=cr(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:ne({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Ri();let o=$o(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?Ri():Object.freeze({relation:o,owner:n})}function lE(e,t){let n=Ae(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=cr(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Se(e,o=>{let a=cr(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:ne({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function uE(e,t){let n=new Set;Tn(e,n);let i=(e===null?[]:dE(ur(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=uS(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)Tn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(dS(e,t)),fetchQueriesByAlias:new Map,...o})}function cE(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!In(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,pr(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=pr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!In(ka(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 dr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!In(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&&!In(ka(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))||pE(pS(e))!==e.allKlikes.length))}function uS(e,t){if(e===null)return aE(null);let n=Object.freeze([...Ae(e)]);if(n.length===0)return aE(e);let r=cS(e,t,n);if(r!==null)return r;let i=va(e),o=[],a=new Set;for(let u of i){let p=lE(u,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,relation:"exact"},R;try{R=pr(f,t)}catch{continue}let E=ka(R);In(E,p.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),functionOccurrences:p.functionOccurrences,relation:p.relation,consumption:"leaf",serializedPredicate:R,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=Ua(e,a),l=Object.freeze(s===null?[]:[...Ae(s)]),c=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),d=In(n,c)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:d,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:c,residualWhere:s,residualServerFunctionOccurrences:l}}function cS(e,t,n){let r=_a(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=pr(i,t)}catch{return null}if(!In(ka(o),n))return null;let a=new Set;if(Tn(e,a),pE(o)!==a.size)return null;let s=Object.freeze(Da(e)),l=Object.freeze({targetAlias:r.alias,appId:r.appId,predicate:e,functionLeaves:s,functionOccurrences:Object.freeze([...n]),relation:"function-leaf-exact",consumption:"whole-where",serializedPredicate:o,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"});return{serverFunctionCandidate:Object.freeze({variant:"WHOLE_WHERE_EXACT",staticContract:"CONFIRMED",fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze([l]),allServerFunctionOccurrences:Object.freeze([...n]),adoptedServerFunctionOccurrences:Object.freeze([...n]),residualWhere:null,residualServerFunctionOccurrences:Object.freeze([])}}function _a(e,t){switch(e.type){case"BINARY":{if(Ae(e).length>0){let i=lE(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=hu(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=_a(e.left,t),r=_a(e.right,t);return n!==null&&r!==null&&xa(n,r)?n:null}case"GROUP":case"NOT":return _a(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Da(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return[...Da(e.left),...Da(e.right)];case"GROUP":case"NOT":return Da(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function aE(e){let t=e===null?[]:Ae(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function va(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...va(e.left),...va(e.right)]:[];case"GROUP":return va(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Ua(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Ua(e.left,t),r=Ua(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=Ua(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function ka(e){let t=[];for(let n of Cr){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 In(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 pE(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function pS(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function dS(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=cr(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Ma(i.right)){n.add("CROSS_TABLE_BINARY");return}hu(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(EE(i)){n.add("KLIKE_OR");return}let o=ur(i.left,t),a=ur(i.right,t);if(o.length!==1||a.length!==1||!xa(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 pr(e,t){return mi(e.predicate,e,t),j(e.predicate)}function mi(e,t,n){switch(e.type){case"LOGICAL":mi(e.left,t,n),mi(e.right,t,n);return;case"GROUP":mi(e.expr,t,n);return;case"NOT":mi(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Ma(e.right))throw gu(t,"predicate contains a non-target or RHS field reference");let r=cr(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw gu(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw gu(t,"predicate shape is outside the Phase A serializer contract")}}function gu(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function ur(e,t){switch(e.type){case"BINARY":{let n=hu(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=ur(e.left,t),r=ur(e.right,t);if(e.op==="AND")return dE([...n,...r]);if(EE(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return xa(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:fE(i.relation,o.relation)}]:[]}case"GROUP":return ur(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function dE(e){let t=[];for(let n of e){let r=t.findIndex(o=>xa(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:fE(i.relation,n.relation)}}return t}function sE(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Ri(){return Object.freeze({relation:"unsafe"})}function xa(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function fE(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Tn(e,t){if(e!==null){if(zt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Tn(e.left,t),Tn(e.right,t);return;case"NOT":case"GROUP":Tn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function EE(e){let t=new Set;return Tn(e,t),t.size>0}function Ma(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ma);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Ma)}function Au(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 fS(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function ES(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function yi(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=fS(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"&&!ES(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 RS=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 mS(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function gi(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(mS(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}RS.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 Fa=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"}},Ka=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}},Ga=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 RE(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 Ga(a).message}}return{records:n,cleanupWarning:o}}function Su(e){let t=[];e.where&&t.push(j(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 yS={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 mE(e,t){let n=yS[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 yE(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=>mE(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=mE(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var fr=new WeakMap,Iu=new WeakMap,gS="\u6BD4\u8F03\u6761\u4EF6\u3067\u53C2\u7167\u3057\u305F\u96C6\u8A08\u5024\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u30EA\u30B9\u30C8\u306B\u540C\u3058\u96C6\u8A08\u5F0F\u3092\u542B\u3081\u3066\u304F\u3060\u3055\u3044\u3002";function Cu(e){if(Iu.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):we(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&we(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=we(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),Iu.set(t,e),t}function st(e){return Iu.get(e)??e}function PE(e){let t=fr.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},fr.set(e,t)),t}function It(e,t,n,r=[]){let i=PE(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function je(e,t){return fr.get(e)?.byColumn.get(t)}function we(e,t){return fr.get(e)?.byLookupKey.get(t)}function kt(e,t){return fr.has(e)?void 0:e[t]}function gE(e,t,n){if(!n||t.length===0)return;let r=new Set,i=o=>{if(o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="FIELD"&&a.aggregateRef!==void 0){let s=a.aggregateRef;r.add(de(s.func,s.distinct,s.arg));return}a.type==="SELECT"||a.type==="SCALAR_SUBQUERY"||Object.values(a).forEach(i)};i(e),[...r].some(o=>t.some(a=>we(a,o)===void 0&&a[o]===void 0))&&n.add(gS)}function hS(e){let t=fr.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=Zs(e);return r&&Qs(n,r.includedCanonicalIds),n}function xt(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 AS(e,t,n,r={}){if(n.type==="CROSS"){let p=Ei(e.length,t.length);if(!p.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${p.outputRows} \u884C\uFF08\u5DE6 ${p.leftRows} \u884C \xD7 \u53F3 ${p.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${p.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let R of e)for(let E of t)f.push({...R,...E});return f}let{on:i,type:o}=n,a=SS(i,e,t,r.leftColumns,r.rightColumns),s=wu(a.left),l=wu(a.right);if(AE(e,s,r.leftColumns),AE(t,l,r.rightColumns),o==="RIGHT"){let p=new Map;for(let E of e){let m=E[s]??"",y=p.get(m);y?y.push(E):p.set(m,[E])}let f={};for(let E of r.leftColumns??Object.keys(e[0]??{}))f[E]="";let R=[];for(let E of t){let m=E[l]??"",y=p.get(m)??[];if(y.length>0)for(let g of y)R.push({...g,...E});else R.push({...f,...E})}return R}let c=new Map;for(let p of t){let f=p[l]??"",R=c.get(f);R?R.push(p):c.set(f,[p])}let d=[],u={};for(let p of r.rightColumns??Object.keys(t[0]??{}))u[p]="";for(let p of e){let f=p[s]??"",R=c.get(f)??[];if(R.length>0)for(let E of R)d.push({...p,...E});else o==="LEFT"&&d.push({...p,...u})}return d}function wu(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function SS(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=hE(o),l=hE(a),c=p=>{if(p.tableAlias){let m=s.has(p.tableAlias),y=l.has(p.tableAlias);if(m!==y)return m?"LEFT":"RIGHT"}let f=wu(p),R=o.includes(f),E=a.includes(f);return R!==E?R?"LEFT":"RIGHT":"UNKNOWN"},d=c(e.left),u=c(e.right);return d==="RIGHT"&&u==="LEFT"?{left:e.right,right:e.left}:e}function hE(e){let t=new Set;for(let n of e){let r=n.indexOf(".");r>0&&t.add(n.slice(0,r))}return t}function AE(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 TS(e,t,n,r,i,o={}){return t===null?e:e.filter(a=>le(t,a,n,r,i,o))}function OE(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&Be(t.expr)||t.type==="STRFUNC_COL"&&wi(t.expr)||t.type==="SCALAR_VALUE_COL"&&on(t.expr))}function IS(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let c=t.map((u,p)=>bS(u,l,i?.items[p],n,o)).join("\0"),d=a.get(c);d?d.push(l):a.set(c,[l])}a.size===0&&t.length===0&&OE(n)&&a.set("",[]);let s=[];for(let l of a.values()){let c=Cu({...l[0]});for(let d of t)d.type==="ARITH_KEY"?c[_u(d.expr)]=String(ye(d.expr,l[0],o.evaluationContext)):d.type==="FUNC_KEY"&&(c[an(d.expr)]=ge(d.expr,l[0],void 0,void 0,o.evaluationContext));LE(c,l,n,r,o.evaluationContext),s.push(c)}return s}function wS(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let c={children:new Map},d=[];for(let p of e){let f=c;for(let R of l.items){let E=SE(R,p),m=f.children.get(E);m||(m={children:new Map},f.children.set(E,m)),f=m}f.rows||(s(),f.rows=[],d.push(f.rows)),f.rows.push(p)}e.length===0&&l.items.length===0&&(s(),c.rows=[],d.push(c.rows));let u=new Set(l.items.map(p=>p.canonicalId));for(let p of d){let f=Cu({...p[0]}),R=new Map;for(let E of l.items)R.has(E.canonicalId)||R.set(E.canonicalId,SE(E,p[0]));for(let E of t.allItems){let m=R.get(E.canonicalId)??"";f[E.directKey]=m,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=m)}LE(f,p,n,r,i.evaluationContext),Qs(f,u),o.push(f)}}return o}function SE(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function LE(e,t,n,r,i={}){for(let[o,a]of n.entries())if(a.type==="AGGREGATE"){let s=de(a.func,a.distinct,a.arg),l=String(Si(a.func,a.distinct,a.arg,a.separator,t,r,i));It(e,o,l,a.alias?[a.alias,s]:[s])}else if(a.type==="ARITH_AGG_COL"){$a(e,t,a.expr,r,i);let s=a.alias??Ti(a.expr);It(e,o,String(hi(a.expr,t,r,i)),[s])}else if(a.type==="STRFUNC_COL"&&wi(a.expr)){$a(e,t,a.expr,r,i);let s=a.alias??an(a.expr),l=Du(a.expr,t,r);It(e,o,ge(l,e,void 0,void 0,i),[s])}else if(a.type==="SCALAR_VALUE_COL"&&on(a.expr)){$a(e,t,a.expr,r,i);let s=a.alias??wt(a.expr),l=Ai(a.expr,t,r);It(e,o,String(Ne(l,e,void 0,void 0,i)),[s])}else if(a.type==="CASE_COL"&&Be(a.expr)){$a(e,t,a.expr,r,i);let s=kE(a.expr,t,r),c=Ge(s,e,void 0,d=>d.aggregateRef?DE(d.aggregateRef,r):void 0,i);It(e,o,c,[bu(a.alias,o)])}}function bu(e,t){return e??`__ksql_case_column_${t}`}function Nu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Nu(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=>Nu(r,t))}function $a(e,t,n,r,i={}){let o=[];Nu(n,o);for(let a of o){let s=de(a.func,a.distinct,a.arg);if(we(e,s)!==void 0)continue;let l=String(Si(a.func,a.distinct,a.arg,a.separator,t,r,i));PE(e).byLookupKey.set(s,l)}}function bS(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=Ba(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"?ge(e.expr,t,void 0,void 0,i.evaluationContext):String(ye(e.expr,t,i.evaluationContext))}function Si(e,t,n,r,i,o,a={}){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let s=_E(e,n,i,a).filter(R=>R!==null),l=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",c=l?s.map(R=>{let E=Number(R);if(!Number.isFinite(E))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: ${R}`);return E}):null,d=t?l?[...new Set(c)]:[...new Set(s)]:l?c:s;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?Ii(n,o):void 0,p=typeof u=="string"?B(u):u??(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(s.length===0)return"";let R=new Map;for(let y of s)R.set(y,(R.get(y)??0)+1);let E="",m=0;for(let[y,g]of R){if(g>m){E=y,m=g;continue}if(g!==m)continue;let T=ot(y,E,p);(T<0||T===0&&rn(y,E)<0)&&(E=y)}return E}if(e==="MIN"||e==="MAX"){let R=d;if(R.length===0)return"";let E=R[0];for(let m of R.slice(1)){let y=ot(m,E,p);(e==="MAX"&&y>0||e==="MIN"&&y<0)&&(E=m)}return E}let f=l?d:d.map(Number);switch(e){case"SUM":return f.reduce((R,E)=>R+E,0);case"AVG":return f.length===0?0:f.reduce((R,E)=>R+E,0)/f.length;case"MEDIAN":{if(f.length===0)return"";let R=[...f].sort((m,y)=>m-y),E=Math.floor(R.length/2);return R.length%2===1?R[E]:(R[E-1]+R[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let R=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(f.length===0||R&&f.length<2)return"";let E=f[0],m=0,y=0,g=0;for(let h of f){let I=h-E;m++;let N=I-y;y+=N/m,g+=N*(I-y)}let T=Math.max(0,g/(R?m-1:m));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(T):T}}}function _E(e,t,n,r={}){return n.map(i=>{let o=st(i),a;if(t.type==="FIELD_REF"){let s=o[t.field];if(s===void 0||s===""&&e!=="MIN"&&e!=="MAX")return null;a=s}else if(t.type==="ARITH"||t.type==="NUMBER"){let s=ye(t,o,r);if(isNaN(s))return null;a=String(s)}else{let s=vt(t,o,void 0,void 0,r);if(s===null||s===""&&e!=="MIN"&&e!=="MAX"||typeof s=="number"&&Number.isNaN(s))return null;a=String(s)}return a})}function NS(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 hi(e,t,n,r={}){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Si(e.func,e.distinct,e.arg,e.separator,t,n,r));if(e.type==="AGG_GROUP_KEY"){let a=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Fe(t[0]??{},a))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let i=hi(e.left,t,n,r),o=hi(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 Ti(e){return Et(e)}function Ii(e,t){if(e.type==="FIELD_REF")return t?.(NS(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=>Ii(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 DE(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":Ii(e.arg,t)??"string";return typeof n=="string"?B(n):n}function CS(e,t,n,r,i={}){return t===null?e:e.filter(o=>le(t,hS(o),n,void 0,r,i))}function PS(e,t,n,r,i,o={}){if(e.length===0)return e;let a=OS(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i,evaluationContext:o}),s=new Set;return e.filter(l=>{let c=a(l);return s.has(c)?!1:(s.add(c),!0)})}function OS(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(xS(t,a,o))}function Pu(e,t,n,r,i,o,a={}){return t.length===0?e:vE(e,t,n,r,i,o,a).rows.map(s=>s.row)}function vE(e,t,n,r,i,o,a={}){let s=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(UE.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let u=i?.get(d.name);if(u)return{semantics:u};let p=n?.get(d.name);return p?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:p}}:{semantics:B(r?.get(d.name)??"string")}}),l=e.map(d=>({row:d,keys:t.map(({key:u},p)=>({s:DS(u,d,o,a)}))})),c=(d,u)=>LS(d,u,t,s);return l.sort(c),{rows:l,compare:c}}function LS(e,t,n,r){for(let i=0;i<n.length;i++){let o=_S(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function _S(e,t,n){return ot(e.s,t.s,n.semantics)}var UE=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function DS(e,t,n,r={}){let i=st(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??we(t,e.name)??i[e.name]??"";case"ARITH_KEY":return String(ye(e.expr,i,r));case"FUNC_KEY":return ge(e.expr,i,void 0,void 0,r);case"GROUPING_KEY":return qn(e.ref,t)}}function Ou(e,t,n,r,i={}){let o=new Map;for(let[a,s]of e.entries()){if(!("alias"in s)||s.alias===null)continue;let l=s.alias;switch(s.type){case"FIELD":o.set(l,c=>Fe(st(c),s.field));break;case"LITERAL_COL":o.set(l,()=>s.value);break;case"AGGREGATE":{o.set(l,c=>je(c,a)??"0");break}case"ARITH_AGG_COL":{o.set(l,c=>je(c,a)??"0");break}case"WINDOW_COL":o.set(l,c=>je(c,a)??"");break;case"ARITH_COL":o.set(l,c=>String(ye(s.expr,st(c),i)));break;case"STRFUNC_COL":{let c=an(s.expr);o.set(l,d=>wi(s.expr)?je(d,a)??we(d,c)??ge(s.expr,st(d),n,r,i):ge(s.expr,st(d),n,r,i));break}case"CASE_COL":o.set(l,c=>Be(s.expr)?je(c,a)??"":Ge(s.expr,st(c),n,r,i));break;case"SCALAR_VALUE_COL":{let c=wt(s.expr);o.set(l,d=>on(s.expr)?je(d,a)??we(d,c)??"":String(Ne(s.expr,st(d),n,r,i)));break}case"SCALAR_SUBQUERY_COL":o.set(l,()=>t?.get(a)??"");break;case"GROUPING_COL":o.set(l,c=>qn(s.ref,c));break;case"VARIABLE_COL":break}}return(a,s)=>o.get(a)?.(s)}function Lu(e,t,n,r,i,o,a={}){let s=t.map((l,c)=>({column:l,columnIndex:c})).filter(l=>l.column.type==="WINDOW_COL");if(e.length===0||s.length===0)return e;for(let l=0;l<e.length;l++)e[l]=Cu(e[l]);for(let{column:l,columnIndex:c}of s){let d=new Map;for(let u of e){let p=JSON.stringify(l.partitionBy.map(R=>kS(u,R))),f=d.get(p);f?f.push(u):d.set(p,[u])}for(let u of d.values()){let p=vE(u,l.orderBy,n,r,i,void 0,a),f=p.rows;if(mo(l)){MS(l,c,p,o,a);continue}if(Ws(l)){US(l,c,f,a);continue}if(!Vs(l))throw new Error(`InternalError: unknown window kind ${l.windowKind??"undefined"}`);let R=1,E=1;for(let m=0;m<f.length;m++){m>0&&p.compare(f[m-1],f[m])!==0&&(R=m+1,E++);let y=l.func==="ROW_NUMBER"?m+1:l.func==="RANK"?R:E;It(f[m].row,c,String(y),[l.alias])}}}return e}function vS(e,t,n={}){let r=vt(e,st(t),void 0,void 0,n);return r==null||typeof r=="number"&&!Number.isFinite(r)?"":String(r)}function US(e,t,n,r={}){let i=n.map(a=>vS(e.arg,a.row,r)),o=e.valueFunc==="LAG"?-1:1;for(let a=0;a<n.length;a++){let s=a+o*e.offset;It(n[a].row,t,s>=0&&s<i.length?i[s]:"",[e.alias])}}function MS(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:_E(e.aggFunc,e.arg,o.map(f=>f.row),i),s=e.arg.type==="WILDCARD"?void 0:Ii(e.arg,r),l=typeof s=="string"?B(s):s??B("string"),c=[],d=0,u=0,p;for(let f=0;f<o.length;f++){let R=a?.[f]??null;if(e.arg.type==="WILDCARD")d++;else if(R!==null)if(e.aggFunc==="COUNT")d++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")u+=Number(R),d++;else if(p===void 0)p=R;else{let m=ot(R,p,l);(e.aggFunc==="MAX"&&m>0||e.aggFunc==="MIN"&&m<0)&&(p=R)}let E=e.aggFunc==="COUNT"?d:e.aggFunc==="SUM"?u:e.aggFunc==="AVG"?d===0?0:u/d:p??0;c.push(String(E))}if(e.frame===null){let f=c[c.length-1];for(let R of o)It(R.row,t,f,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let f=0;f<o.length;){let R=f;for(;R+1<o.length&&n.compare(o[R],o[R+1])===0;)R++;for(let E=f;E<=R;E++)It(o[E].row,t,c[R],[e.alias]);f=R+1}return}for(let f=0;f<o.length;f++)It(o[f].row,t,c[f],[e.alias])}function kS(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Fe(st(e),n)}function Va(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Ba(e,t,n,r={}){let i=st(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 Fe(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=de(e.func,e.distinct,e.arg);return je(t,n)??we(t,e.alias??o)??we(t,o)??kt(t,e.alias??o)??kt(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??Ti(e.expr);return je(t,n)??we(t,o)??kt(t,o)??"0"}case"ARITH_COL":return String(ye(e.expr,i,r.evaluationContext));case"CASE_COL":return Be(e.expr)?je(t,n)??we(t,bu(e.alias,n))??kt(t,bu(e.alias,n))??"":Ge(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return qn(e.ref,t);case"STRFUNC_COL":{let o=an(e.expr);return wi(e.expr)?je(t,n)??we(t,e.alias??o)??we(t,o)??kt(t,e.alias??o)??kt(t,o)??ge(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext):ge(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext)}case"SCALAR_VALUE_COL":{let o=wt(e.expr);return on(e.expr)?je(t,n)??we(t,e.alias??o)??we(t,o)??kt(t,e.alias??o)??kt(t,o)??"":String(Ne(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return je(t,n)??we(t,e.alias)??kt(t,e.alias)??""}}function xS(e,t,n={}){return e.map((r,i)=>{let o=Ba(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function wn(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let R=e.map(m=>{let y=NE(IE(m),a),g=Ba(t[0],m,0,{wildcardKeys:Object.keys(y)}),T={};if(typeof g!="string")for(let[h,I]of g.entries)I!==null&&(T[h]=I);return T}),E=R.length>0?Object.keys(R[0]):[...i??[]];return{rows:R,columns:E}}let l=$S(t),c=GS(t),d=t.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD"),u=d?null:FS(t,l,c),p=u??[];return d&&e.length===0?{rows:[],columns:KS(t,l,c)}:{rows:e.map((R,E)=>{let m={},y={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys(NE(IE(R),a)),parentWildcardKeys:Object.keys(R).filter(g=>g.startsWith("_p.")).sort()};for(let[g,T]of t.entries()){let h=Ba(T,R,g,y);switch(T.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[I,N]of h.entries)N!==null&&(m[I]=N);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[I,N]of h.entries)N!==null&&(m[I]=N),E===0&&p.push(I);break}case"FIELD":{let I=u?.[g]??T.alias??l.get(g)??T.field;m[I]=h,u===null&&E===0&&p.push(I);break}case"LITERAL_COL":{let I=u?.[g]??T.alias??`'${T.value}'`;m[I]=h,u===null&&E===0&&p.push(I);break}case"AGGREGATE":{let I=de(T.func,T.distinct,T.arg),N=u?.[g]??T.alias??I;m[N]=h,u===null&&E===0&&p.push(N);break}case"ARITH_AGG_COL":{let I=u?.[g]??T.alias??Ti(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"ARITH_COL":{let I=u?.[g]??T.alias??_u(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"CASE_COL":{let I=u?.[g]??T.alias??c.get(g)??"case";m[I]=h,u===null&&E===0&&p.push(I);break}case"GROUPING_COL":{let I=u?.[g]??T.alias??`GROUPING(${T.ref.field.tableAlias?`${T.ref.field.tableAlias}.`:""}${T.ref.field.field})`;m[I]=h,u===null&&E===0&&p.push(I);break}case"STRFUNC_COL":{let I=u?.[g]??T.alias??an(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"SCALAR_VALUE_COL":{let I=u?.[g]??T.alias??wt(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"SCALAR_SUBQUERY_COL":{let I=u?.[g]??T.alias??"(subquery)";m[I]=h,u===null&&E===0&&p.push(I);break}case"WINDOW_COL":{let I=u?.[g]??T.alias;m[I]=h,u===null&&E===0&&p.push(I);break}}}return m}),columns:p}}function FS(e,t,n){return e.map((r,i)=>ME(r,i,t,n))}function KS(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=ME(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function ME(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??de(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Ti(e.expr);case"ARITH_COL":return e.alias??_u(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??an(e.expr);case"SCALAR_VALUE_COL":return e.alias??wt(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 GS(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 $S(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=TE(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=TE(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 TE(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function IE(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function _u(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"?z(n):n.type==="STRING_FUNC"?an(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function an(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Ti(n):n.type==="VARIABLE"?`@${n.name}`:wt(n));return`${e.func}(${t.join(",")})`}function wt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return an(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${wt(e.left)}${e.op}${wt(e.right)}`;case"CONCAT_OP":return`${wt(e.left)}||${wt(e.right)}`}}function BS(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:on(e)}function on(e){return e.type==="STRING_FUNC"?wi(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?on(e.left)||on(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>wE(t.result))||e.elseResult!==null&&wE(e.elseResult):!1}function wE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:on(e)}function wi(e){return e.args.some(t=>BS(t))}function VS(e,t,n){if(e.type==="AGG_REF"){let r=Si(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=hi(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(Fe(t[0]??{},r)),raw:Fe(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?Du(e,t,n):Ai(e,t,n)}function Ai(e,t,n){return e.type==="STRING_FUNC"?Du(e,t,n):e.type==="CASE_WHEN"?kE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Ai(e.left,t,n),right:Ai(e.right,t,n)}:e}function bE(e,t,n){if(e.type==="AGG_REF"){let r=Si(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=hi(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:Ai(e,t,n)}function kE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:bE(r.result,t,n)})),elseResult:e.elseResult===null?null:bE(e.elseResult,t,n)}}function Du(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>VS(r,t,n))}}function NE(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 CE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Tu(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function WS(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(Vs(r)||mo(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,B("number"));else if((mo(r)||Ws(r))&&r.arg.type!=="WILDCARD"){let i=Ii(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(UE.has(r.expr.func)?"number":"string"));return n}function vu(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:c,havingFieldSemanticsResolver:d,aggregateSortKindResolver:u,appliedKlikes:p,sourceColumns:f,tableColumns:R,hiddenQualifiedAliases:E,resolvedGroupingSpec:m,plainGroupByPlan:y,warnings:g,evaluationContext:T}=e,h=WS(t.columns,u);for(let[v,b]of a??[])h.set(v,b);let I=[],N=t.from.alias;I=(n.get(N)??n.get(null)??[]).map(v=>xt(v,N));let P=Tu(CE(R?.get(N),N),void 0,I);for(let v of t.joins){let b=v.table.alias,A=(n.get(b)??[]).map(k=>xt(k,b)),w=Tu(CE(R?.get(b),b),void 0,A);I=AS(I,A,v,{leftColumns:P,rightColumns:w}),P=Tu(P,w,I)}let M=e.residualWhere!==void 0?e.residualWhere:t.where;I=TS(I,M,s,p,l,T);let U=te(t);if(U.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");I=wS(I,m,t.columns,u,{maxGeneratedRows:5e4,evaluationContext:T})}else(U.type==="PLAIN"||OE(t.columns))&&(I=IS(I,U.type==="PLAIN"?U.allItems:[],t.columns,u,U.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:T}));gE(t.columns,I,g);let C=v=>v.aggregateRef?DE(v.aggregateRef,u):d?.(v);return gE(t.having,I,g),I=CS(I,t.having,c,C,T),I=Lu(I,t.columns,i,o,h,u,T),t.distinct&&(I=PS(I,t.columns,r,s,l,T)),I=Pu(I,t.orderBy,i,o,h,Ou(t.columns,r,s,l,T),T),I=Va(I,t.limit,t.offset),wn(I,t.columns,r,s,f,l,E,T)}function xE(e,t){let n=[];for(let r of e){let i=Uu(r.$id?.value),o=HS(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[c,d]of Object.entries(r)){if(c===t)continue;let u=Uu(d?.value);l[`_p.${c}`]={value:u}}for(let[c,d]of Object.entries(s.value??{}))l[c]={value:Uu(d?.value)};n.push(l)}}return n}function HS(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Uu(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}var ze={HEADER_UNKNOWN_KEY:"KSQL1001",HEADER_DUPLICATE_KEY:"KSQL1002",HEADER_INVALID_NAME:"KSQL1003",HEADER_INVALID_DEPENDS_ON:"KSQL1004",HEADER_INVALID_TIMEOUT:"KSQL1005",HEADER_INVALID_DIALECT:"KSQL1006",LOGICAL_APP_UNRESOLVED:"KSQL1101",LEX_ERROR:"KSQL1201",PARSE_ERROR:"KSQL1202",DIALECT1_REQUIRED:"KSQL1203",UPDATE_KEY_COMPOSITE:"KSQL1301",UPDATE_KEY_FIELD_TYPE:"KSQL1302",UPDATE_KEY_NOT_UNIQUE:"KSQL1303",SUBTABLE_DML_FORBIDDEN:"KSQL1304",BARE_INSERT_NOT_IDEMPOTENT:"KSQL1305",SERVER_TIME_FUNCTION_NOT_AS_OF:"KSQL1306"};function YS(e,t){let n=Math.max(0,Math.min(t,e.length)),r=1,i=1;for(let o=0;o<n;o++){let a=e[o];a==="\r"?(e[o+1]===`
|
|
@@ -11,11 +11,11 @@ async function xe(e,t,n,r,i={}){let o=i.pageSize??Py,a=Math.max(1,i.parallel??Oy
|
|
|
11
11
|
`&&a++,l(),a++;continue}r+=c,a++}if(i)throw new H("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function sT(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new H(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new H(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Xa(e,t){let n=aT(oT(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}`)),sT(r),i.length===0)throw new H("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new H(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var lT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),uT=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Oi=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 qE(e,t,n){if(!lT.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Oi;return uT.has(t??"")?r.map(i=>({code:i})):r}function Ft(e,t,n,r){throw new H(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function JE(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new H("JSON source is not valid UTF-8.")}}function XE(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
|
|
12
12
|
`?(r++,i=1):i++,s},a=()=>({offset:n,line:r,column:i});for(;n<e.length;){let s=e[n];if(s===" "||s===" "||s==="\r"||s===`
|
|
13
13
|
`){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let R=o();if(R==='"'){f=!0;break}if(R.charCodeAt(0)<32&&Ft("string contains an unescaped control character",l.offset,l.line,l.column),R!=="\\"){p+=R;continue}n>=e.length&&Ft("string has an unterminated escape",l.offset,l.line,l.column);let E=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
|
|
14
|
-
`,r:"\r",t:" "};if(E in m){p+=m[E];continue}E!=="u"&&Ft(`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)||Ft("has invalid unicode escape",n,r,i);for(let T=0;T<4;T++)o();let g=Number.parseInt(y,16);if(g>=55296&&g<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Ft("has an unpaired high surrogate",n,r,i),o(),o();let T=e.slice(n,n+4);for(let I=0;I<4;I++)o();let h=Number.parseInt(T,16);(h<56320||h>57343)&&Ft("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(g-55296<<10)+h-56320)}else g>=56320&&g<=57343?Ft("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(g)}f||Ft("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let c=e.slice(n),d=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(c)?.[0];if(d){for(let p=0;p<d.length;p++)o();t.push({kind:"number",lexeme:d,...l});continue}let u=/^(true|false|null)/.exec(c)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}Ft(`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 Qa(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Za(e){if(e.byteLength===0)throw new H("JSON source is empty.");let t=XE(JE(e)),n=0,r=(c,d=t[n])=>{throw new H(`JSON ${c} (offset=${d.offset}, line=${d.line}, column=${d.column}).`)},i=(c,d)=>c.kind==="punct"&&c.value===d,o=c=>{let d=t[n];(d.kind!=="punct"||d.value!==c)&&r(`expected ${c}; found ${Qa(d)}`,d),n++},a=()=>{let c=t[n++];if(c.kind==="string")return c.value;if(c.kind==="number")return{kind:"number",lexeme:c.lexeme};if(c.kind==="literal")return c.value;if(c.kind==="punct"&&c.value==="{"){let d=new Map;if(i(t[n],"}"))return n++,d;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${Qa(u)}`,u);let p=u.value;d.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),d.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return d}if(c.kind==="punct"&&c.value==="["){let d=[];if(i(t[n],"]"))return n++,d;for(;;){d.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return d}return r(`expected a value; found ${Qa(c)}`,c)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Qa(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 H("JSON source contains no records.");return l.forEach((c,d)=>{if(!(c instanceof Map))throw new H(`JSON record ${d+1} must be an object.`)}),l}var cT=new Set(["CHECK_BOX","MULTI_SELECT"]),QE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function bt(e,t,n){throw new H(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function pT(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function dT(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&bt(n,t.code,"boolean is not accepted."),pT(e)){t.fieldType==="NUMBER"&&bt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&bt(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)||bt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&bt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||bt(n,t.code,"unsupported value type."),!cT.has(t.fieldType)&&!QE.has(t.fieldType)&&bt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&bt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&bt(n,t.code,"array elements must not contain duplicates."),QE.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Hu(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new H("JSON source is UTF-8 only.");let i=Za(t.bytes);if(i.length>r)throw new H(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new H("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,c)=>{for(let p of l.keys())o.has(p)||bt(c+1,p,"unknown key (not declared in INTO).");let d={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),d[p.code]=dT(l.get(p.code),p,c+1));a.push(d),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 Yu(e,t,n,r,i,o){let a=Xa(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new H(`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 H("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,g)=>[y,g]));for(let y of r)if(!l.has(y))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let c=new Map(i.map(y=>[y.code,y])),d=new Set(r);if(o&&d.has(o))throw new H("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],p=[],f=y=>a.rows.filter(g=>g[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,g]of a.columns.entries()){if(d.has(g)||g===o)continue;let T=c.get(g);if(T)u.push({column:g,reason:R(T),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)p.push({column:g,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new H(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${g}".`)}for(let y of r){let g=c.get(y);if(!g)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(g.inSubtable||g.writable===!1||g.fieldType==="FILE"||g.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${g.fieldType}).`)}let E=[];return{rows:a.rows.map(y=>{let g=[],T={};for(let h of r){let I=y[l.get(h)];try{T[h]=qE(I,c.get(h)?.fieldType,{cliKintone:!0})}catch(N){if(!(N instanceof Oi))throw N;T[h]=I,g.push({field:h,code:N.code,message:N.message})}}return E.push(g),T}),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:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((c,d)=>[c,l[d]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Li=(e,t,n)=>{throw new H(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function ZE(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new H("JSON source is UTF-8 only.");let o=Za(t.bytes);if(o.length>r)throw new H(`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 H("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,c)=>{let d=c+1;for(let R of l.keys())a.has(R)||Li(d,R,"unknown key (not declared in INTO).");let u=new Map,p=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 m=l.get(E);if(R.kind==="FIELD"){m instanceof Map&&Li(d,E,"object is not accepted for a top-level field."),u.set(E,m);continue}Array.isArray(m)||Li(d,E,"subtable value must be an array."),f.add(E);let y=new Set(R.children),g=m.map((T,h)=>{T instanceof Map||Li(d,E,`childRow=${h+1} must be an object.`);let I=T;for(let N of I.keys())y.has(N)||Li(d,N,`unknown child key in subtable ${E} at childRow=${h+1}.`);if(s++,s>i)throw new H(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:h+1,values:I}});p.set(E,g)}return{rowNumber:d,top:u,subtables:p,replacementTables:f}})}}function eR(e,t,n,r,i,o){let a=Xa(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new H('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((p,f)=>[p,f]));if(o&&!s.has(o))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(p=>p.kind==="FIELD"),c=n.filter(p=>p.kind==="SUBTABLE");for(let p of l)if(!s.has(p.field))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of c){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new H(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new H(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let d=[],u;if(a.rows.forEach((p,f)=>{let R=f+2,E=p[0];if(E!==""&&E!=="*")throw new H(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(E)} at source row ${R}.`);if(E==="*"){if(d.length>=i)throw new H(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:d.length+1,markerRowNumber:R,top:new Map(l.map(m=>[m.field,p[s.get(m.field)]])),subtables:new Map(c.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},d.push(u)}else if(u){for(let m of l){let y=p[s.get(m.field)];if(y!==""&&y!==u.top.get(m.field))throw new H(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${R}.`)}if(o){let m=p[s.get(o)];if(m!==""&&m!==u.recordNumberSourceValue)throw new H(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new H(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let m of c){let y=p[s.get(m.rowIdSourceHeader)],g=new Map(m.children.map(h=>[h,p[s.get(h)]]));if(y===""&&[...g.values()].every(h=>h===""))continue;let T=u.subtables.get(m.subtableCode);T.push({childRowNumber:T.length+1,sourceRowNumber:R,...y?{rowId:y}:{},values:g})}}),d.length===0)throw new H("CSV has no parent rows.");return{records:d}}var fT=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),ET=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function qu(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function iR(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)tR(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let R=a.get(p.subtableCode)??new Map;for(let E of p.children)tR(E,R.get(E),p.subtableCode)}let c=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),d=e.records.map(p=>RT(p,s,l,o,a,r,i,c)),u=d.flatMap(p=>[...p.errors]);return{parents:d,errors:u,invalidParentRows:new Set(d.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:c}}function RT(e,t,n,r,i,o,a,s){let l=[],c={};for(let p of t)e.top.has(p.field)&&zu(e.top.get(p.field),r.get(p.field),o,c,p.field,l,ju(e,a,p.field));let d={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||nR(p,o,d,l,ju(e,a,p.code));let u=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let R=[];for(let E of e.subtables.get(p.subtableCode)){f.childRows++;let m=l.length,y={},g=i.get(p.subtableCode);for(let T of p.children){let h=g.get(T),I=ju(e,a,T,p.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(T)?zu(E.values.get(T),h,o,y,T,l,I):nR(h,o,y,l,I)}l.length===m?(f.validChildRows++,R.push(y)):f.invalidChildRows++}u.set(p.subtableCode,R)}return{parentRow:e.rowNumber,valid:l.length===0,top:c,subtables:u,replacementTables:e.replacementTables,errors:l}}function tR(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&&ET.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function nR(e,t,n,r,i){let o=hn(e.defaultValue)?"":e.defaultValue;zu(o,e,t,n,e.code,r,i,!hn(e.defaultValue))}function zu(e,t,n,r,i,o,a,s=!1){let l=mT(e),c=$e(l,t,n);c.ok?r[i]={value:yT(l,t)?l:c.value}:o.push({...a,code:c.code,message:s?`\u65E2\u5B9A\u5024: ${c.message}`:c.message})}function mT(e){return rR(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:rR(t)?t.lexeme:t):e}function rR(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function yT(e,t){return fT.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function ju(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 Ju=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Xu(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":gT(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 gT(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 Qu(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 oR(e,t){return Qu(e,t,"DROP")}function aR(e){for(let t of e.records)for(let[n,r]of t.subtables)for(let i of r)if(i.rowId!==void 0||i.values.has("_rid")||i.values.has("id"))throw new Error(`ArgumentError: JSON IMPORT subtable ${n} does not accept _rid/id; rows are always newly numbered.`)}function sR(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,c])=>{let d=a?.record[l]?.value,u=Array.isArray(d)?d.length:0;return{table:l,existingRows:u,inputRows:c.length,addRows:c.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function hT(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function lR(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 uR(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],c=l===void 0?void 0:r.get(l),d=[...o.errors];if(!c||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:d};let u=new Map,p=[];for(let f of o.replacementTables){let R=hT(c.record,f),E=new Set(R.map(N=>N.id).filter(N=>!!N)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],g=0,T=0,h=0,I=m.map((N,D)=>{let P=y[D]??{};return N.rowId&&E.has(N.rowId)?(g++,{rowId:N.rowId,record:P}):(N.rowId&&((i.get(N.rowId)??[]).some(U=>U.parentId!==l||U.table!==f)&&d.push({operation:"UPDATE",parentRow:o.parentRow,field:N.rowId,subtable:f,subrow:N.childRowNumber,sourceRow:N.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${N.rowId}`,sourceValues:N.values}),h++),T++,{record:P})});u.set(f,I),p.push({table:f,existingRows:R.length,inputRows:m.length,updateRows:g,addRows:T,deleteRows:R.length-g,rowIdNotFound:h})}return{parentRow:o.parentRow,targetId:l,...c.revision===void 0?{}:{revision:c.revision},valid:d.length===0,top:o.top,subtables:u,tables:p,errors:d}})}var Zu="#__import_source";function cR(e){return{...e,from:{appId:0,alias:null,cteName:Zu}}}function AT(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function ec(e,t){let n=e.map(AT),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 ST="\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",Dn=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"}},ue=new WeakMap;function kR(e){return ue.get(e)}var kn=new WeakMap,Sr=new WeakMap,uc=Symbol("statementEvaluationContext"),xR=Symbol("nativeUpsertExecution"),TT=Symbol("nativeUpsertExplainCapability");function FR(e){return e[xR]===!0}function IT(e){return xR in e}function wT(e){return e[TT]}function KR(e){return e[uc]?e:{...e,[uc]:{statementInstant:new Date}}}function se(e){return e[uc]??{}}var pR=new WeakMap,bT=1,NT=1;function GR(e,t){if(t)return t;let n=pR.get(e);return n||(n=`client:${bT++}`,pR.set(e,n)),n}function Mc(e){return`${e}\0inv:${NT++}`}async function kc(e,t,n={}){St(n);let r=Date.now(),i=Mc(GR(t,n.cacheContext));try{let o=Dw(e,n.enableImport===!0),a=$R(),s=VR(t,a),l={aborted:!1},c=Fc(s,l,!PT(o)||du(o)),d=await cc(o,c,n,i);a.elapsedMs=Date.now()-r;let u={...WR(d,l),metrics:a};if(d.type==="SELECT"){let p=ue.get(d);p&&ue.set(u,p)}return u}finally{tp(i)}}function $R(){return{getCalls:0,postCalls:0,putCalls:0,nativeUpsertCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,limitReached:!1,limitReachedApps:[],elapsedMs:0}}var BR=Symbol("limitMetricsSink");function xc(e,t){let n=e[BR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function VR(e,t){let n={[BR]:t,getRecords:async r=>{t.getCalls+=1;let i=await e.getRecords(r);return t.fetchedRows+=i.records.length,i},openCursor:async r=>{t.cursorCreateCalls+=1;let i;try{i=await e.openCursor(r)}catch(s){throw s instanceof Error&&s.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),s}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let o=!1,a=()=>{o||(o=!0,t.cursorActiveCurrent-=1)};return{totalCount:i.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let s=await i.nextPage();return t.cursorRecordsScanned+=s.records.length,s.next||a(),s},close:async()=>{o||(t.cursorDeleteCalls+=1);try{await i.close(),a()}catch(s){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,s}}}},postRecords:r=>(t.postCalls+=1,e.postRecords(r)),putRecords:r=>(t.putCalls+=1,e.putRecords(r)),deleteRecords:r=>(t.deleteCalls+=1,e.deleteRecords(r)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:r=>(t.fieldCalls+=1,e.getFields(r)),getNumberPrecision:r=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(r)),getProcessStatuses:r=>(t.processStatusCalls+=1,e.getProcessStatuses(r))};return Zc(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var dR=Symbol("searchAbortFailClosed");function Fc(e,t,n){return n&&e[dR]?e:{...e,...n?{[dR]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new Dn;return i}}}function CT(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 PT(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function WR(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(ST),{...e,warnings:[...n]}}async function fR(e,t,n){let r=await Qi(e,t,n);return Vu(r),r}async function Qi(e,t,n){return jE(e,{select:async r=>{let{resolver:i}=await On(r,t,n);return Se(r.where,i)},dml:r=>rm(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await On(r,t,n);return Wu(r,i)},joinServerFunctionPlan:async r=>{await On(r,t,n);let i=await Ts(r,t,n),o=Ss(r,i);return o===null?null:(dr(o.joinPlan)&&Hc.set(r,o),o.joinPlan)}})}async function cc(e,t,n,r){n=KR(n);let i=await Qi(e,t,r);e.type!=="EXPLAIN"&&Vu(i);let o=dc(e);if(o!==null&&!uw(e))throw new Error(is(o,"in a batch"));if(Yn("phase15b",e),To("phase15b",e),it(e),e.type!=="EXPLAIN"&&await WT(e,t,r),e.type==="IMPORT")return Pm(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 Pc(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 rp(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 OT(e,t,n,r);case"SELECT":return Gt(yc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Rm(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Jc(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return rw(e,t,n,r);case"INSERT_SELECT":return sp(e,t,n,r);case"UPSERT":return Iw(e,t,n,r);case"UPSERT_SELECT":return pp(e,t,n,r);case"UPDATE":return Pc(e,t,n,r);case"DELETE":return Sw(e,t,n,r);case"REORDER":return Ow(e,t,n,r);case"SHOW_APPS":return Dm(t);case"DESCRIBE":return vm(e,t,r);case"EXPLAIN":return Gw(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ze(n.dmlMaxRows,"dmlMaxRows",Bt):Bt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe):Pe,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,IT(n)?{surface:"CLI",enableNativeUpsert:FR(n),clientHasNativeUpsert:wT(n)??Zc(t)}:{surface:"DOCUMENT_ONLY"});case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return qR(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var Kc=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Gc=["$id","$err_subtable","$err_field","$err_code","$err_count"];function $c(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 HR(e=!1){let t=e?Gc:Kc;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 OT(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return YR(e,t,n,r)}async function YR(e,t,n,r){let i=await ee(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=ou(e,i),l=new Set(s.flatMap(O=>ru(O.field))),c={present:nu.filter(O=>l.has(O)),absent:nu.filter(O=>!l.has(O))},d=e.checkGroups??[],u=or(d);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw Ce(`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 p=new Map([...o].map(([O,F])=>[O,F.fieldType]));p.set("$id","RECORD_NUMBER"),Mn(e,p);let f=$c(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 Ct(e.appId,t,r):void 0,m=O=>O.field==="$id"?ne({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?ne(o.get(O.field)):void 0),y=Se(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(y)}).`);let g=new Map([...o].map(([O,F])=>[O,F.fieldType])),T=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:El(e.where,{allowUnqualifiedFields:!0,fieldTypes:g,fieldOptions:T,allowKlike:!1}),I=h===null?"":j(h),D=(await xe(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:xt(O,null)})).filter(O=>e.where===null||le(e.where,O.flat,F=>p.get(F.field),void 0,void 0,se(n))),P=[],M=new Map,U=new Map,C=new Set,v=0,b=O=>{if(C.add(O.id),v+=1,e.summary){let G=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),x=U.get(G);x?x.$err_count=String(Number(x.$err_count)+1):U.set(G,{$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]),V=M.get(F);V?(V.$err_count=String(Number(V.$err_count)+1),O.subrow!==void 0&&(V.$err_subrow=`${V.$err_subrow},${O.subrow}`,V.$err_subrow_id=`${V.$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"})},_=s.filter(O=>!O.subtableCode),A=new Map;for(let O of s){if(!O.subtableCode)continue;let F=A.get(O.subtableCode)??[];F.push(O),A.set(O.subtableCode,F)}for(let O of D){for(let F of _){let V=O.record[F.field.code]?.value,G=$e(V,F.field,E);G.ok||b({id:O.id,field:F.field.code,code:G.code,message:G.message,value:li(V,F.field.fieldType)})}for(let[F,V]of A){let G=O.record[F]?.value;if(Array.isArray(G))for(let x=0;x<G.length;x++){let K=G[x];for(let Y of V){let $=K.value?.[Y.field.code]?.value,L=$e($,Y.field,E);if(!L.ok){let W=Ta(F,x,K);b({id:O.id,field:Y.field.code,code:L.code,message:L.message,value:li($,Y.field.fieldType),...W})}}}}for(let F of ua(d,O.flat,V=>p.get(V.field)))b({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)P.push(...U.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 k={type:"SELECT",columns:[...e.summary?Gc:Kc],rows:P,rowCount:P.length,validateStats:{errorRecords:C.size,errorCount:v,constraintMetadata:c}};return ue.set(k,HR(e.summary===!0)),k}var Qe=1e4;function Nt(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])||!LT(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 LT(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||!Mo(i.semantics,r.semantics))return!1}return!0}var mr=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function jR(e,t,n={}){let r=Nl(n.asOf??new Date,n.timezone);St(n);let{statements:i,meta:o}=ku(e,{import:n.enableImport===!0}),a=o.dialect===1&&i.some(Fu)?[GE]:[],s=Ol(i);if(i.forEach(m=>To("phase15b",m)),n.allowApplyMutation!==!0&&i.some(m=>qs(m)||m.type==="UPSERT"&&_T(m)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let l=pu(i,n.variables),c=zR(i,l),d={...n,variables:l};if(n.continueOnError&&s.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let m of s.statements){if(!m.isDml||m.tempTablesReferenced.length===0||m.statementType==="INSERT_SELECT"||m.statementType==="UPSERT_SELECT")continue;let y=i[m.index];if(!(y?.type==="UPDATE"&&y.from?.cteName!=null))throw new oe(`ArgumentError: temp table references in ${m.statementType} are not supported yet.`,m.index)}let u=$R(),p=VR(t,u),f=Date.now(),R=n.timeoutMs!=null?f+n.timeoutMs:null,E=Mc(GR(t,n.cacheContext));try{let m=new Map,y=new Map;for(let[I,N]of Object.entries(r.values))y.set(Yr(I),{type:"string",value:N});let g=[],T=new Set,h=null;for(let I=0;I<i.length;I++){let N=s.statements[I],D={index:I,type:N.statementType};if(h){g.push({...D,status:"skipped",skippedReason:h}),h!=="exit"&&T.add(I);continue}let P=N.dependsOn.find(M=>T.has(M));if(P!==void 0){let M=s.statements[P].tempTablesCreated[0]??`statement ${P}`;g.push({...D,status:"skipped",skippedReason:`dependency: ${M}`}),T.add(I);continue}if(R!==null&&Date.now()>=R){g.push({...D,status:"skipped",skippedReason:"timeout"}),T.add(I),h="timeout";continue}try{let M=R!==null?R-Date.now():null,U=d.confirm,C=U?{...d,confirm:(V,G,x)=>U(V,G,{statementIndex:I,statementCount:i.length,statementType:N.statementType,targetAppId:N.targetAppId,...x?.importDetail?{importDetail:x.importDetail}:{},...x?.applyDetail?{applyDetail:x.applyDetail}:{},...x?.applyDiagnostic?{applyDiagnostic:x.applyDiagnostic}:{}})}:d,v={aborted:!1},b=Fc(p,v,N.statementType!=="SELECT"&&N.statementType!=="UNION"&&N.statementType!=="WITH"||du(i[I])),_=CT(b),A=KR(C),w={stmt:i[I],info:N,client:_.client,options:A,cacheContext:E,tempTables:m,variables:y,relativeDateVariables:c,clock:se(A),dialect:o.dialect},k=await UT(DT(w),M,_.closeActive);k.result&&(k.result=WR(k.result,v),a.length>0&&Fu(i[I])&&k.result.type==="SELECT"&&(k.result=As(k.result,a)));let{exitTriggered:O,...F}=k;g.push({...D,status:"success",...F}),O&&(h="exit")}catch(M){g.push({...D,status:"error",error:MT(M),...M instanceof ji?{result:M.diagnostic}:{}}),T.add(I),M instanceof mr?h="timeout":M instanceof $i?h="assertion":N.statementType==="SET_VARIABLE"||N.statementType==="DECLARE_VARIABLE"?h="fail-fast":n.continueOnError||(h="fail-fast")}}return u.elapsedMs=Date.now()-f,{ok:g.every(I=>I.status==="success"||I.skippedReason==="exit"),statementCount:i.length,statements:g,analysis:s,metrics:u,...a.length>0?{warnings:a}:{}}}finally{tp(E)}}function _T(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 DT(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:c,dialect:d}=e;if(t.type==="SET_VARIABLE"){let p=ds(t,s);if(it(p),await fR(p,r,o),p.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:p.expr.elements.map(f=>({type:"string",value:f.value}))});else if(p.expr.type==="SCALAR_SUBQUERY")try{let f=await QR(p.expr.query,r,i,o,a),R=await XR(p.expr.query,r,o,a),E=R?Number(f):Number.NaN;s.set(t.name,R&&Number.isFinite(E)?{type:"number",value:E,raw:f}:{type:"string",value:f})}catch(f){throw f instanceof Pn?new Error(`ArgumentError: ${f.message}`):f}else s.set(t.name,ER(p.expr,c));return{}}if(t.type==="DECLARE_VARIABLE"){if(t.annotation==="RELATIVE_DATE")return s.set(t.name,{type:"relative-date",value:l.get(t.name)}),{};let p=i.variables??{};if(Object.prototype.hasOwnProperty.call(p,t.name))s.set(t.name,{type:"string",value:p[t.name]});else{let f=ER(t.default,c);s.set(t.name,{type:"string",value:f.type==="number"?f.raw??String(f.value):f.value})}return{}}let u=ds(t,s);if(Yn("phase15b",u),To("phase15b",u),it(u),d===1&&(u.type==="INSERT"||u.type==="UPDATE"||u.type==="DELETE")&&u.subtableCode)throw new Error("ArgumentError: dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(d===1&&(u.type==="UPSERT"||u.type==="UPSERT_SELECT")){let p=xu(u)[0];if(p)throw new Error(`ArgumentError: ${p.message}`);let f=await ee(u.appId,r,o),R=xu(u,f)[0];if(R)throw new Error(`ArgumentError: ${R.message}`)}if(await fR(u,r,o),u.type==="VALIDATE"){let p=await YR(u,r,{...i,onLimitReached:"error"},o);return u.errorTable&&Nt(a,u.errorTable,p.columns,p.rows,i.tempTableMaxRows??Qe,ue.get(p)??HR(u.summary===!0)),{result:p}}if(u.type==="IMPORT")return{result:await Pm(u,r,i,o,a)};if("validateOnly"in u&&u.validateOnly===!0){let p=await rp(u,r,{...i,onLimitReached:"error"},o,a,n.index+1);return u.validationErrorTable&&Nt(a,u.validationErrorTable,p.columns,p.errors,i.tempTableMaxRows??Qe,kn.get(p)??new Map),{result:p}}if("onErrorSkip"in u&&u.onErrorSkip===!0)return{result:await Nc(u,r,{...i,onLimitReached:"error"},o,a,n.index+1)};if(u.type==="CREATE_TEMP_TABLE"){let p={...i,maxRecords:i.tempTableMaxRows??Qe,onLimitReached:"error"},f=await vT(u.query,r,p,o,a);return a.set(u.name,{rows:f.rows,columns:f.columns,columnMeta:ue.get(f)}),{tempTable:u.name,rowCount:f.rows.length}}if(t.type==="DROP_TEMP_TABLE")return a.delete(t.name),{tempTable:t.name};if(t.type==="EXPLAIN"){let p=u;Uc.set(p,a);try{return{result:await cc(p,r,i,o)}}finally{Uc.delete(p)}}if(u.type==="ASSERT"){let p=await qR(u,r,i,o,a);return p.warning!==void 0?{result:p}:{}}if(u.type==="EXIT"){let p=await GT(u,r,i,o,a);return{result:p,...p.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(u.type==="SELECT"||u.type==="UNION")return{result:await dt(u,r,i,a,o,i.captureColumnMeta===!0)};if(u.type==="WITH")return{result:await Jc(u,r,i,o,a)};if(u.type==="INSERT_SELECT")return{result:await sp(u,r,i,o,a)};if(u.type==="UPSERT_SELECT")return{result:await pp(u,r,i,o,a)};if(u.type==="UPDATE"&&u.from?.cteName!=null)return{result:await Pc(u,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}return{result:await cc(u,r,i,o)}}async function vT(e,t,n,r,i){return e.type==="WITH"?Jc(e,t,n,r,i,!0):dt(e,t,n,i,r,!0)}async function UT(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new mr;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 mr)})()},t)})])}catch(a){throw a instanceof mr&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function MT(e){let t;if(e instanceof At)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??tc(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:kT(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:tc(r),message:r}}else{let n=String(e);t={code:tc(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function tc(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function kT(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function xT(e,t=!1,n=!1){let r=new tn(e).tokenize();return new nn(r,{import:t,dialect1:n}).parseStatements()}function FT(e,t){try{let n=xT(`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 zR(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)?FT(r.name,t[r.name]):r.default);return n}function ER(e,t={}){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:z(e)};case"KINTONE_FUNC":return{type:"string",value:yf(e.name,t)};case"STRING_FUNC":return{type:"string",value:ge(e,{},void 0,void 0,t)};case"ARITH":{let n=ye(e,{},t);if(!Number.isFinite(n))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:n,raw:String(n)}}case"VARIABLE":throw new Error(`InternalError: unresolved variable @${e.name} reached scalar evaluation.`)}}function ds(e,t){return pc(e,t,!1)}function is(e,t){return rr(e)===null?`ParseError: variable @${e} is not defined ${t}.`:"ParseError: @NOW() \u306A\u3069\u306E as-of \u95A2\u6570\u306F\u57FA\u6E96\u6642\u523B\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"}function pc(e,t,n){if(Array.isArray(e))return e.map(r=>pc(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(is(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&a.placeholder===!0))throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`:a.raw??String(a.value)}:{type:"STRING",value:a.value,fromVariable:!0}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&(typeof r.alias=="string"||r.alias===null)){let a=t.get(r.name);if(a===void 0)throw new Error(is(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,pc(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(is(a.name,"in this batch"));if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=KT(i);if(o.type==="SELECT"&&qe(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&qe(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 qe(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function KT(e){if(e.type==="NOT"&&qe(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&qe(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(qe(t,!1)||qe(n,!1))return{type:"BOOLEAN",value:!1};if(qe(t,!0))return n;if(qe(n,!0))return t}else if(e.op==="OR"){if(qe(t,!0)||qe(n,!0))return{type:"BOOLEAN",value:!0};if(qe(t,!1))return n;if(qe(n,!1))return t}}return e}function dc(e){if(Array.isArray(e)){for(let t of e){let n=dc(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=dc(n);if(r!==null)return r}}return null}var $i=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Pn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function qR(e,t,n,r,i){let o=await JR(e,t,n,r,i);if(!o.passed){if(e.warn===!0)return{type:"ASSERT",condition:e.text,passed:!1,warning:e.message??`assertion failed: ${e.text} (actual: ${o.actual}).`};let a=e.message!==void 0?` ${e.message}`:"";throw new $i(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function GT(e,t,n,r,i){let o=await JR(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function JR(e,t,n,r,i){let o=await es(e.left,t,n,r,i);if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await es(e.low,t,n,r,i),c=await es(e.high,t,n,r,i);return{passed:Dt(">=",o.value,l.value,nc(o,l))&&Dt("<=",o.value,c.value,nc(o,c)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await es(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string"):nc(o,a);return{passed:Dt(e.op,o.value,a.value,s),actual:o.value}}function nc(e,t){return B(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function es(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:z(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(fc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await QR(e.query,t,n,r,i),a=await XR(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof Pn?new $i(o.message):o}}}async function XR(e,t,n,r){let i=e.columns[0],o=i?.type==="ARITH_COL"||i?.type==="ARITH_AGG_COL"||i?.type==="WINDOW_COL"&&(i.windowKind===void 0||i.windowKind==="RANKING"||i.windowKind==="AGGREGATE"&&(i.aggFunc==="COUNT"||i.aggFunc==="SUM"||i.aggFunc==="AVG"))||i?.type==="AGGREGATE"&&(i.func==="COUNT"||i.func==="SUM"||i.func==="AVG"||i.func==="STDDEV_POP"||i.func==="STDDEV_SAMP"||i.func==="VAR_POP"||i.func==="VAR_SAMP"||i.func==="MEDIAN");if(i?.type==="AGGREGATE"&&i.func==="MODE"||i?.type==="WINDOW_COL"&&i.windowKind==="VALUE"||i?.type==="WINDOW_COL"&&i.windowKind==="AGGREGATE"&&(i.aggFunc==="MIN"||i.aggFunc==="MAX")){let a=(await Wi(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function QR(e,t,n,r,i){let{query:o,probed:a}=$T(e),s=await Fi(o,t,n,r,i);if(s.columns.length!==1)throw new Pn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Pn("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 Pn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function $T(e){return te(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 fc(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=fc(e.left),n=fc(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 Zi(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||Tt(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await ee(p,t,n);return[p,new Map(f.map(R=>[R.code,R]))]}))),l=new Set,c=p=>{if(Array.isArray(p)){p.forEach(c);return}if(p===null||typeof p!="object")return;let f=p;if(f.type==="SELECT")return;let R=String(f.op),E=f.right,m=["=","!=","<>"].includes(R)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(R)||m)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(c)};c(e.where),c(e.having);for(let p of e.columns)p.type==="CASE_COL"&&c(p.expr);let d=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let E=await np(p,t,n);E&&d.set(p,E)}));let u=(p,f,R)=>{if(f==="$id")return Qn(ne({fieldType:"__ID__"}),p.appId,"$id");if(R&&p.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let E=s.get(p.appId)?.get(Ee(p,f));if(!E)return;let m=E.semantics??ne(E),y=E.fieldType==="STATUS"&&d.has(p.appId)?{...m,optionOrder:d.get(p.appId)}:m;return Qn(y,p.appId,E.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let R=o.find(E=>ce(E)===p.tableAlias);return R?R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):u(R,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):u(e.from,p.field,!0);let f=o.flatMap(R=>{let E=R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(p.field)?.semantics:u(R,p.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(R=>as(R,p.field)!==void 0))return f.length>1?B("string"):void 0}}var ZR=new WeakMap;async function On(e,t,n,r,i=!1){let o=await Zi(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Ld(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&ZR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function BT(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function em(e){return BT(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function RR(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=Ue(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===ce(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=Ue(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function mR(e,t){return e!=="DIRECT"?"\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u3001ORDER BY \u306E\u5024\u306E\u7D44\u304C\u5165\u529B\u884C\u3092\u4E00\u610F\u306B\u8B58\u5225\u3059\u308B\u3068\u30AF\u30A8\u30EA\u69CB\u9020\u307E\u305F\u306F\u4FDD\u8A3C\u6E08\u307F\u306E\u30C7\u30FC\u30BF\u5236\u7D04\u304B\u3089\u78BA\u8A8D\u3067\u304D\u308B\u5834\u5408\u306B\u9650\u308A\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3067\u304D\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3080\u5F62\u3084\u3001JOIN \u5F8C\u3082\u540C\u3058\u7CFB\u5217\u5024\u304C\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u9AD8\u30051\u884C\u3068\u4FDD\u8A3C\u3067\u304D\u308B\u5F62\u304C\u8A72\u5F53\u3057\u307E\u3059\u3002\u751F\u6210\u5217\u3001\u518D\u5E30\u306E\u6DF1\u3055\u5217\u3001\u307E\u305F\u306F $id \u306B\u7531\u6765\u3059\u308B\u5217\u3067\u3042\u308B\u3068\u3044\u3046\u7406\u7531\u3060\u3051\u3067\u306F\u7121\u8996\u3067\u304D\u307E\u305B\u3093\u3002":t==="RANGE"?"ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}function tm(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"||RR(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`+mR(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||RR(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`+mR(n,"VALUE"));return i}function As(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=ue.get(e);return r&&ue.set(n,r),n}function Bc(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=>Tt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function nm(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(Ue(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=Un(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=Un(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=vn(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 Ln(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 fs(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function rm(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Tt(e.where)?await ee(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Se(null,()=>{}):Se(e.where,o=>{if(o.field==="$id")return ne({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?ne(a):void 0)})}async function yr(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await rm(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ae(`WHERE predicate cannot be represented by kintone REST (${Ln(r)})`)}async function Gt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l,c=new Set;if(await Vi(e,t,r,i),jT(e))return l=JT(e,n),o&&ue.set(l,await Wi(e,l.columns,t,r,i,a)),l;let{resolver:d}=await On(e,t,r,i,em(e)),u=tm(e,d,s),p=await gr(e,t,r,i);await Um(e,t,n,r,c,i);let f=dI(e,Se(e.where,d));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(f)}).`);let R=We(e),E,m;if(f.capability==="SUPERSET_PREFILTER"){let P=await Zi(e,t,r,i),M=Wu(e,P);M.eligible&&Bu(e,M)&&(E=M.plan)}if(E===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let P=null;try{P=j(e.where)}catch{P=null}m=Yo({select:e,selectMode:R,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:P,relativeFunctionNames:Ae(e.where)})??void 0,m&&(E=m.prefilterPlan)}let y=f.capability==="EXACT_PUSHDOWN"?R:"FULL_SCAN",g=await Yi(e,t,r,i),T=fs(e)?(e.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:e,staticMode:y,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:g.semantics,maxRecords:n.maxRecords??1e4,hasKlike:be(e.where)}):null,h=await QT(e,T?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":y,t,r),I=Vc(e,n,T),D=m!==void 0&&(R==="FULL_SCAN"||T?.kind==="CANONICAL_LOCAL")?Fc(t,{aborted:!1},!0):t;try{y==="SIMPLE"?l=await XT(e,D,I.effectiveOptions,r,T,g):l=await RI(e,D,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&E===void 0,g,E,p)}catch(P){om(I,P)}return o&&ue.set(l,await Wi(e,l.columns,t,r,i,a)),As(l,[...c,...u,...h])}function Ec(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 im(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 gr(e,t,n,r){let i=te(e);if(!Jn(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 p=await ee(u.appId,t,n);if(!u.subtableCode){for(let E of p){if(E.inSubtable!==!0||!E.subtableCode)continue;let m=s.get(E.code)??[];m.push({appId:u.appId,owner:E.subtableCode}),s.set(E.code,im(m))}return{kind:"APP",fieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=p.filter(E=>E.inSubtable&&E.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:p.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}})),c=sd(e,(u,p)=>l[p]),d=pd(o,e.columns,c);return VT(e,o,d,s),vr(e,Rd(e,d,c)),d}function VT(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let c=t[l],d=c?.type==="FIELD_NAME"?c.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,p=s.name.indexOf("."),f=p>=0?s.name.slice(p+1):s.name,R=r.get(s.name)??r.get(f)??[];throw R.length>0?new Error(Ec(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 ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var Bi=new WeakMap;async function WT(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 Vi(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function HT(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let p=await ee(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),s=(u,p)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(p);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,p)=>{if(p==="$id")return"$id";let f=Ee(u,p);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},c=(u,p)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?f.columns.includes(p):!0},d=(u,p,f,R)=>{let E=i.filter(g=>g.cteName===null&&l(g,f.field)!==null).length,m=i.some(g=>c(g,f.field)),y=ce(u);return{canonicalId:`source:${p}:APP${u.appId}:${R}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!m?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let m=i.findIndex(T=>ce(T)===u.tableAlias);if(m<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[m];if(y.cteName!==null)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let g=l(y,u.field);if(g===null){let T=s(y,Ee(y,u.field));throw T!==null&&T!==""?new Error(Ec(u.field,[{appId:y.appId,owner:T}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${y.appId}.`)}return d(y,m,u,g)}let p=i.flatMap((m,y)=>{if(m.cteName!==null)return[];let g=l(m,u.field);return g===null?[]:[{table:m,tableIndex:y,code:g}]}),f=i.filter(m=>c(m,u.field));if(p.length+f.length>1)throw new Error(`ArgumentError: field ${u.field} is ambiguous across multiple sources.`);if(p.length===1&&f.length===0){let m=p[0];return d(m.table,m.tableIndex,u,m.code)}if(f.length===1)throw new Error(`ArgumentError: field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let R=i.flatMap(m=>{if(m.cteName!==null)return[];let y=s(m,Ee(m,u.field));return y===null||y===""?[]:[{appId:m.appId,owner:y}]}),E=im(R);throw E.length>0?new Error(Ec(u.field,E)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function Vi(e,t,n,r){Bi.delete(e);let i=te(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await HT(e,t,n,r),c=gd(e,l,yd);c&&Bi.set(e,c);return}if(!Jn(e))return;if(i.type==="NONE"){Co(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await gr(e,t,n,r)}function YT(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 Vc(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Ht({...e,orderBy:[]}):Ht(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function om(e,t){throw e.reasons.size>0&&t instanceof Ke&&!t.completeInputWrapped?new Ke(YT(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Rc(e,t){try{return await t()}catch(n){om(e,n)}}function pt(e){return e?.type==="BOOLEAN"&&e.value===!1}function jT(e){return e.from.appId===0&&e.from.cteName===Le}function Es(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"?Es(e.left)||Es(e.right):e.type==="STRING_FUNC"?Wc(e):!1}function zT(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:vi(e)}function vi(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Wc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?vi(e.left)||vi(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"?Es(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:vi(n))):!1}function Wc(e){return e.args.some(t=>zT(t))}function qT(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(Es(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Wc(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(vi(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 JT(e,t){if(e.joins.length>0||e.where||te(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.");qT(e);let n=Lu([{}],e.columns,void 0,void 0,void 0,void 0,se(t)),{rows:r,columns:i}=wn(n,e.columns,void 0,void 0,void 0,void 0,void 0,se(t)),o=Va(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function XT(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?um(e):e,s=Do(a),l=i?.kind==="CANONICAL_LOCAL"?Rn(e,e.from):s.fields,c=await Yc(e,t,r),d=zc(e,c),u=e.columns.some(P=>P.type==="CASE_COL")?await Zi(e,t,r,void 0,Bc(e)):void 0,p=n.maxRecords??1e4,f=new Set,R=n.onLimitReached??"error",E=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&y!==null&&y<=p&&!be(e.where)?y:void 0,T;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)T=[];else if(i?.kind==="KORDER_CURSOR"){let P=await RE({client:t,app:s.app,fields:s.fields,query:Su(e),offset:e.offset??0,limit:e.limit});T=P.records,P.cleanupWarning&&f.add(P.cleanupWarning)}else if(m)T=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let P=e.where?j(e.where):"";T=await xe(t.getRecords,s.app,P,l,{parallel:E,maxRecords:p,stopAfter:g,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`),xc(t,e.from.appId)}})}let h=T.map(P=>xt(P,null));m||(h=Pu(h,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Ou(e.columns,void 0,d.row,u,se(n)),se(n)),h=Va(h,e.limit,e.offset));let{rows:I,columns:N}=wn(h,e.columns,void 0,d.row,void 0,u,void 0,se(n)),D=await Xc(e,I,N,t,r);return{type:"SELECT",rows:I,columns:D,rowCount:I.length,warnings:[...f]}}async function QT(e,t,n,r){let i=[],o=new Map,a=(c,d)=>{if(d.length===0)return;let u=o.get(c);u||(u=new Set,o.set(c,u));for(let p of d)u.add(p)},s=new Map,l=(c,d)=>{let u=s.get(c);u||(u=new Set,s.set(c,u));for(let p of d)u.add(p)};if(t==="SIMPLE"){let c=Do(e);a(c.app,c.fields),e.from.subtableCode||l(c.app,c.fields)}else{let c=[e.from,...e.joins.map(d=>d.table)].filter(d=>d.cteName===null);for(let d of c){let u=Rn(e,d);a(d.appId,u),d.subtableCode||l(d.appId,u)}}for(let[c,d]of o.entries()){let u=[...d].filter(m=>!el(m));if(u.length===0)continue;let p=await ee(c,n,r);if(p.length===0)continue;let f=new Set(p.map(m=>m.code)),R=u.filter(m=>!f.has(m));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (APP${c})`);let E=s.get(c);if(E){let m=p.filter(y=>y.inSubtable===!0&&E.has(y.code));for(let y of m){let g=y.subtableCode??"",T=g?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${g}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${T}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${c} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(g?`APP${c}$${g} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function yR(e){return e.cteName??`APP${e.appId}`}function ZT(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function eI(e,t){return el(t)||e.validCodes.has(t)}function rc(e,t){return e.table.cteName!==null?e.validCodes.has(t):eI(e,t)}function tI(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 nI(e,t,n,r){let i=[e.from,...e.joins.map(d=>d.table)],o=new Map,a=new Set;for(let d of i){let u=ce(d);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let d of i){if(d.cteName===null||d.cteName===Le)continue;let u=n.get(d.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${d.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${d.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 ${d.cteName}.`);o.set(d,u)}let s=new Map;await Promise.all(i.map(async d=>{let u=o.get(d);if(u){s.set(d,{table:d,label:yR(d),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(d.cteName===Le)return;let p=await ee(d.appId,t,r);s.set(d,{table:d,label:yR(d),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let d of s.values())for(let u of ZT(d.table))l.set(u,d);for(let d of e.joins)if(d.type!=="CROSS")for(let u of[d.on.left,d.on.right]){if(!u.tableAlias)continue;let p=l.get(u.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!rc(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let c=wd(e);for(let[d,u]of c.bySource){let p=s.get(d);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...u].filter(R=>!rc(p,R));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let d of c.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>rc(f,d))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${d} (${p})`)}}async function os(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await os(e.left,t,n,r,i),await os(e.right,t,n,r,i);return}await nI(e,t,n,r);for(let o of tI(e))await os(o,t,n,r,i)}}function am(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 Ui(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"?Ui(e.left)||Ui(e.right):e.type==="GROUP"||e.type==="NOT"?Ui(e.expr):!1}var Hc=new WeakMap;function Ss(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=uE(e.where,r),o=cE(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,pr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,c=a.get(l)??null,d=new Map(a);d.delete(l);let u=new Map(o.items.map(f=>[f.targetAlias,f.relation])),p=u.get(l)??null;return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:c,mainRelation:p,joinConditions:d,joinRelations:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Ts(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,am(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,d]=await Promise.all([Me(s,t,n),vI(s,t,n)]),u=rI(l).filter(p=>c.get(p)==="STATUS");if(u.length>0){let p=await bs(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(R=>R.name));for(let R of u)d.set(R,f)}}return[s,c,d]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function rI(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 Kt(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"&&Rs(e.left.expr,t),e.right.type==="CASE_VALUE"&&Rs(e.right.expr,t);return;case"LOGICAL":Kt(e.left,t),Kt(e.right,t);return;case"NOT":case"GROUP":Kt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Rs(e,t){for(let n of e.branches)Kt(n.condition,t)}function iI(e){let t=[];Kt(e.where,t),Kt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Rs(n.expr,t);return t}function ce(e){return e.alias??e.cteName}function sm(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>ce(n)===t)}function Is(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Yc(e,t,n){let r=iI(e);if(r.length===0)return new Map;let i=new Set,o=Is(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=sm(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 Me(s,t,n)]));return new Map(a)}function Ue(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 jc(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Nn(t,n)}function Nn(e,t){if(e.type==="FIELD_REF"){t.push(Ue(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Nn(e.left,t),Nn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Nn(e.left,t),Nn(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"&&Nn(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"?hr(n,t):n.type!=="ARRAY"&&Nn(n,t)}function hr(e,t){if(e.type==="AGG_REF"){jc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(hr(e.left,t),hr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function mc(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")hr(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;Mi(n,t)}}function Mi(e,t){if(e.type==="STRING_FUNC"){mc(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Mi(e.left,t),Mi(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"?mc(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?hr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Mi(r,t)}}function oI(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;jc(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function aI(e){let t=[];for(let n of e)n.type==="AGGREGATE"?jc(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?hr(n.expr,t):n.type==="STRFUNC_COL"?mc(n.expr,t):n.type==="SCALAR_VALUE_COL"?Mi(n.expr,t):n.type==="CASE_COL"&&oI(n.expr,t);return t}var sI=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function lI(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":sI.has(e.fieldType)?"string":void 0}async function lm(e,t,n,r){let i=aI(e.columns);if(i.length===0)return;let o=new Set,a=Is(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=sm(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 ee(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(m=>R.get(m)?.fieldType==="STATUS"))return;let E=await np(f,t,n);E&&l.set(f,E)}));let d=[e.from,...e.joins.map(f=>f.table)],u=(f,R)=>{let E=f.semantics??ne(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 m=d.find(y=>ce(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");R=s.get(m.appId)?.get(Ee(m,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(Ee(e.from,f.field))}else{let m=d.flatMap(y=>{if(y.cteName!==null){let T=r?.get(y.cteName);return T?.columns.includes(f.field)?[T.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let g=s.get(y.appId)?.get(Ee(y,f.field));return g?[u(g,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!R)return;let E=f.tableAlias!==null?d.find(m=>ce(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(R,E?.appId??e.from.appId)}}function Ee(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function as(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??ne(e);return{sortKind:lI(e),fieldType:e.fieldType,semantics:t===void 0?n:Qn(n,t,e.code)}}function um(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 Z(e){return{sortKind:e,semantics:B(e)}}function Je(){return{semantics:B("string","KSQL_UNKNOWN")}}function cm(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Xe(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:ne({fieldType:"__ID__"})};if(e==="_rid")return Z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Z("number")}var uI=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function vn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Z("number"):Z("string")}return uI.has(e.func)?Z("number"):Z("string")}function Ar(e,t){return e.type==="STRING"?Z("string"):e.type==="ARRAY"?cm():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?Je():Un(e.arg,t):e.func==="GROUP_CONCAT"?Z("string"):Z("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Z("number"):e.type==="STRING_FUNC"?vn(e):e.type==="FIELD_REF"?t(Ue(e.field))??Je():e.type==="FIELD"?t(e)??Je():Je()}function ws(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&&Mo(n(r.semantics),n(t.semantics)))?e.every(i=>Mo(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?cm("KSQL_MIXED_UNSUPPORTED"):Je()}function Un(e,t){if(e.type==="FIELD_REF")return t(Ue(e.field))??Je();if(e.type==="FIELD")return t(e)??Je();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return Z("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return Z("string");if(e.type==="STRING_FUNC")return vn(e);let n=e.branches.map(r=>Ar(r.result,t));return e.elseResult&&n.push(Ar(e.elseResult,t)),ws(n)}function pm(e,t){return e.windowKind==="VALUE"?Un(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?Z("number"):e.arg.type==="WILDCARD"?Je():Un(e.arg,t):Z("number")}function ss(e,t){return{...e??{},displayName:t}}function cI(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 Wi(e,t,n,r,i,o=!1){let a=new Map;cI(e)&&await Promise.all(Is(e).map(async E=>{if(a.has(E.appId))return;let m=await ee(E.appId,n,r);a.set(E.appId,new Map(m.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 T=a.get(e.from.appId)?.get(E.field);return T?ve(T,e.from.appId):void 0}let y=s.find(T=>ce(T)===E.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(E.field);let g=a.get(y.appId)?.get(Ee(y,E.field));return g?ve(g,y.appId):Xe(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(Ee(e.from,E.field));return y?ve(y,e.from.appId):Xe(E.field)}let m=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 g=a.get(y.appId)?.get(Ee(y,E.field)),T=g?ve(g,y.appId):Xe(E.field);return T?[T]:[]});return m.length===1?m[0]:void 0},d=E=>{if(!l)return;let m=s.filter(y=>{if(E.tableAlias!==null&&ce(y)!==E.tableAlias)return!1;let g=Ee(y,E.field);return a.get(y.appId)?.has(g)===!0||Xe(E.field)!==void 0});return m.length===1?m[0].appId:void 0},u=(E,m)=>{let y=d(m);return E&&y!==void 0?{...E,publicSourceApp:y}:E},p=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 m=Ue(E),y=u(c(m),m);p.set(E,ss(y,y?.displayName??E))}return p}if(f)for(let E of t){let m=Ue(E),y=u(c(m),m);p.set(E,ss(y,y?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,m)=>{let y=f?"alias"in E&&E.alias?E.alias:void 0:t[m];if(!y)return;let g;if(E.type==="FIELD"){let T=Ue(E.field);g=u(c(T),T)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?g=Z("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"?g=Z("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(g=Un(E.arg,c));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")g=Z("number");else if(E.type==="GROUPING_COL")g=Z("number");else if(E.type==="LITERAL_COL")g=Z("string");else if(E.type==="SCALAR_VALUE_COL"){let T=E.expr;T.type==="STRING_FUNC"?g=vn(T):T.type==="NUMBER"||T.type==="SCALAR_ARITH"?g=Z("number"):T.type==="FIELD"?g=c(T):g=Z("string")}else if(E.type==="STRFUNC_COL")g=vn(E.expr);else if(E.type==="WINDOW_COL")g=pm(E,c);else if(E.type==="CASE_COL"){let T=E.expr.branches.map(h=>Ar(h.result,c));E.expr.elseResult&&T.push(Ar(E.expr.elseResult,c)),g=ws(T)}else E.type==="SCALAR_SUBQUERY_COL"&&(g=Je());p.set(y,ss(g,E.aliasDisplay??y))}),p}function pI(e,t){let n=ue.get(e),r=ue.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],c=l===void 0?void 0:r?.get(l),d;if(s&&c){let u=ws([s,c]),p=s.publicSourceApp===c.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...R}=u;d=p===void 0?R:{...R,publicSourceApp:p}}else d=Je();i.set(o,ss(d,s?.displayName??o))}),i}function zc(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let c=n.find(d=>ce(d)===s.tableAlias);return!c||c.cteName!==null?void 0:as(c,s.field)??t.get(c.appId)?.get(Ee(c,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:as(e.from,s.field)??t.get(e.from.appId)?.get(Ee(e.from,s.field));if(n.some(c=>c.cteName!==null))return;let l=r.flatMap(c=>{let d=as(c,s.field)??t.get(c.appId)?.get(Ee(c,s.field));return d?[d]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var dm=new WeakSet,qc=new WeakMap;function yc(e){return dm.add(e),e}function dI(e,t){return qc.set(e,t),t}function fm(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&&te(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function fI(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function EI(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":j(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new Dn;if(!fI(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=wn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function RI(e,t,n,r,i,o=!0,a,s,l){let c=qc.get(e);if(dm.has(e)&&c!==void 0&&fm(e,c)){let L=await EI(e,t);if(L!==null)return L}let d=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([Ji(e.where,t,n,r,u,i),Ji(e.having,t,n,r,u,i)]);let[f,R,E]=await Promise.all([Ts(e,t,r),Yc(e,t,r),lm(e,t,r,i)]),m=zc(e,R),y=await Zi(e,t,r,i,Tt(e.having)||Bc(e)),g=nm(e,y),T=Hc.get(e);if(T&&!dr(T.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let h=T??Ss(e,f)??mn(e,f);yl(h);let I="joinPlan"in h?h:null,N=I&&dr(I.joinPlan)?I:null,D=t,P=h.mainCondition,M=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let U=s?s.prefilterWhere:N?null:P,C=N?.queriesByAlias.get(e.from.alias)??"",v=await km(e.columns,t,n,r,u,i),b=pt(e.where),_=b?Promise.resolve([]):ki(e,e.from,D,d,p,!0,n.onLimitReached??"error",u,U,N?!1:o,l,C),A=[],w=[];for(let L of e.joins){if(b){A.push({join:L,promise:Promise.resolve([])});continue}let W=L.table.alias?N?.queriesByAlias.get(L.table.alias)??"":"",X=N?null:L.table.alias?M.get(L.table.alias)??null:null;X!==null||W!==""?A.push({join:L,promise:ki(e,L.table,D,d,p,!1,n.onLimitReached??"error",u,X,!0,l,W)}):w.push(L)}let k=a?Promise.resolve(a):Yi(e,t,r,i);k.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:L,promise:W}of A)F.set(L.table.alias,await W);await Promise.all(w.map(async L=>{let X=await Im(e,L,F,D,d,p,n.onLimitReached??"error",u,r,i,null,l,"")??await ki(e,L.table,D,d,p,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(L.table.alias,X)}));let{optionOrders:V,sortKinds:G,semantics:x}=await k,{rows:K,columns:Y}=vu({tables:F,stmt:e,scalarCache:v,optionOrders:V,sortKinds:G,orderSemantics:x,fieldTypeResolver:m.row,fieldSemanticsResolver:y,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:g,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:N?{residualWhere:N.joinPlan.residualWhere}:{},resolvedGroupingSpec:Bi.get(e),plainGroupByPlan:l,warnings:u,evaluationContext:se(n)}),$=await Xc(e,K,Y,t,r);return{type:"SELECT",rows:K,columns:$,rowCount:K.length,warnings:[...u]}}function mI(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
|
|
15
|
-
UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}function gc(e,t,n){mI(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,c)=>{s[l]=a[e.columns[c]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=ue.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let c=e.columns[l],d=n?.get(s)??(c===void 0?void 0:o?.get(c));d&&a.set(s,{...d,displayName:s})}),ue.set(i,a)}return i}function Em(e,t,n,r){let i=gc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:yI(o,e.columns),s=[...new Set([...e.warnings??[],...t.warnings??[]])],l={type:"SELECT",rows:a,columns:[...e.columns],rowCount:a.length,warnings:s};return r&&ue.set(l,pI(e,t)),l}async function Rm(e,t,n,r,i=!1,o=!1){let a=Vc(e,n,null);return Rc(a,async()=>{let s=a.effectiveOptions,[l,c]=await Promise.all([e.left.type==="UNION"?Rm(e.left,t,s,r,i,o):Gt(yc(e.left),t,s,r,void 0,i,o,"DERIVED"),Gt(yc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return Em(l,c,e.all,i)})}function yI(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}function mm(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function gI(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(mm);if(n.some(i=>i===null))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u5F0F\u306B\u306F AS \u5225\u540D\u304C\u5FC5\u8981\u3067\u3059`);let r=n;if(new Set(r).size!==r.length)throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u51FA\u529B\u5217\u540D\u3092\u91CD\u8907\u3055\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093`);return r}function gR(e){return e.columns.map((t,n)=>mm(t)??`__b53_column_${n}`)}function hR(e,t){let n=e.semantics,r=t.semantics;if(!n||!r||n.compareMode==="unsupported"||r.compareMode==="unsupported"||n.compareMode!==r.compareMode||e.sortKind&&t.sortKind&&e.sortKind!==t.sortKind||n.inSubtable!==r.inSubtable||n.requiresCollectionOperators!==r.requiresCollectionOperators)return!1;let i=o=>o===void 0||o.startsWith("KSQL_");return!(!i(e.fieldType)&&!i(t.fieldType)&&e.fieldType!==t.fieldType)}async function ym(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)],o=new Map;await Promise.all(i.filter(s=>s.cteName===null).map(async s=>{if(o.has(s.appId))return;let l=await ee(s.appId,t,n);o.set(s.appId,new Map(l.map(c=>[c.code,c])))}));let a=(s,l)=>{if(s.cteName!==null)return r.get(s.cteName)?.columnMeta?.get(l);let c=o.get(s.appId)?.get(Ee(s,l));return c?ve(c,s.appId):Xe(l)};return s=>{if(s.tableAlias!==null){let c=i.find(d=>ce(d)===s.tableAlias);return c?a(c,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(c=>a(c,s.field)).filter(c=>c!==void 0);return l.length===1?l[0]:void 0}}function _i(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>_i(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:Ue(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=Ue(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){_i(r.left,t,!0),_i(r.right,t,!0);return}for(let i of Object.values(r))_i(i,t,n)}async function AR(e,t,n,r,i){let o=await ym(e,n,r,i);e.columns.forEach(c=>_i(c,o));let a=await Wi(e,gR(e),n,r,i),s=gR(e),l=new Map;return t.forEach((c,d)=>{let u=a.get(s[d]);if(!u?.semantics||u.semantics.fieldType==="KSQL_UNKNOWN"||u.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${d+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(c,{...u,displayName:c})}),l}function sn(e){return`${e.appId}:${e.subtableCode??""}`}function gm(...e){let t=new Map;for(let n of e)for(let r of[n.from,...n.joins.map(i=>i.table)])r.cteName===null&&!t.has(sn(r))&&t.set(sn(r),r);return[...t.values()]}function hI(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function AI(e){let t=new Map,n=r=>{for(let i of r)t.set(sn(i),null)};for(let r of e){let i=Is(r);for(let s of i){let l=sn(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let c=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(u=>u.table)].find(u=>ce(u)?.toLowerCase()===s.toLowerCase());if(!c){n(i);return}if(c.cteName!==null)return;let d=t.get(sn(c));d!==null&&d?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let c=hI(l.field),d=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:c.alias;o(d,c.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(te(r)),a(r.having),a(r.orderBy);for(let s of r.joins){if(s.on===null){n(i);continue}o(s.on.left.tableAlias,s.on.left.field),o(s.on.right.tableAlias,s.on.right.field)}}return t}function SI(e,t){return{type:"SELECT",distinct:!1,columns:t!==null&&t.size>0?[...t].map(r=>({type:"FIELD",field:r,alias:null})):[{type:"WILDCARD"}],from:{...e,alias:null},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function TI(e,t,n,r){let i=AI(e),o=await Promise.all(gm(...e).map(async(a,s)=>{let l=await Gt(SI(a,i.get(sn(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),c=`__b53_source_${s}`;return[sn(a),{name:c,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:ue.get(l)}}]}));return new Map(o)}function SR(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(sn(r));if(!i)throw new Error("PlanningError: \u518D\u5E30 CTE \u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{appId:0,alias:r.alias,cteName:i.name,subtableCode:null}};return{...e,from:n(e.from),joins:e.joins.map(r=>({...r,table:n(r.table)}))}}function TR(e,t,n){return e.cteName===null?void 0:n.get(e.cteName)?.columnMeta?.get(t)}function ic(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=Te(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function IR(e,t){let n=t.joins[0];if(!n||n.type!=="INNER")throw new Error("PlanningError: \u518D\u5E30\u9805\u306E INNER JOIN \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");let r=t.from.cteName===e?t.from:n.table,i=r===t.from?n.table:t.from,o=ce(r),a=n.on.left.tableAlias===o,s=n.on.right.tableAlias===o;if(a===s)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u3092\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{self:r,source:i,selfField:a?n.on.left.field:n.on.right.field,sourceField:a?n.on.right.field:n.on.left.field}}async function II(e,t,n,r,i){let o=e.recursiveSpec,a=gI(e),s=await AR(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let c=await AR(o.recursiveTerm,a,t,i,l);a.forEach((G,x)=>{let K=s.get(G),Y=c.get(G);if(!K||!Y||!hR(K,Y))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${x+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let d=IR(e.name,o.recursiveTerm),u=await ym(o.recursiveTerm,t,i,l),p=u({type:"FIELD",tableAlias:ce(d.self),field:d.selfField}),f=u({type:"FIELD",tableAlias:ce(d.source),field:d.sourceField});if(!p||!f||!hR(p,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let R=await TI([o.seed,o.recursiveTerm],t,n,i),E=new Map(r);for(let G of R.values())E.set(G.name,G.table);let m=SR(o.seed,R),y=SR(o.recursiveTerm,R),g=await dt(m,t,n,E,i,!0,!0),T=gc(g,a,s),h=o.cycle,I=h?s.get(h.column):void 0,N=new Map(s);h&&N.set(h.markColumn,{...Z("string"),displayName:h.markColumn});let D=h?[...a,h.markColumn]:[...a],P=[],M=[],U=new Set([...T.warnings??[],...[...R.values()].flatMap(G=>G.warnings)]),C=new Ca(e.name,St(n)),v=G=>{C.addRow(),P.push(G)};for(let G of T.rows){let x=h?String(G[h.column]??""):"",K=h?{...G,[h.markColumn]:h.defaultValue}:G;v(K),M.push({row:G,path:h?[x]:[]})}let b=IR(e.name,y),_=b.source.cteName===null?void 0:E.get(b.source.cteName);if(!_)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let A=TR(b.self,b.selfField,l)??TR(b.source,b.sourceField,E);if(!A?.semantics||A.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${b.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let w=new Map;for(let G of _.rows){let x=String(G[b.sourceField]??""),K=ic(x,A.semantics),Y=w.get(K);Y?Y.push(G):w.set(K,[G])}let k=w.has(ic("",A.semantics)),O=0,F=!1;for(;M.length>0;){O++;let G=[];for(let x of M){let K=String(x.row[b.selfField]??"");!F&&K===""&&k&&(U.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${b.selfField} = ${b.sourceField} \u3067\u7B2C ${O} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let Y=w.get(ic(K,A.semantics))??[];for(let X of Y){let he=String(X[b.sourceField]??"");Dt("=",K,he,A.semantics)&&C.addExpansion()}if(Y.length===0)continue;let $=new Map(E);$.set(e.name,{rows:[x.row],columns:a,columnMeta:s});let L=await dt(y,t,n,$,i,!0,!0);for(let X of L.warnings??[])U.add(X);let W=gc(L,a,s);W.rows.length>0&&C.observeDepth(O);for(let X of W.rows){if(!h){v(X),G.push({row:X,path:[]});continue}let he=String(X[h.column]??""),tt=x.path.some(ie=>Dt("=",ie,he,I.semantics));v({...X,[h.markColumn]:tt?h.markValue:h.defaultValue}),tt||G.push({row:X,path:[...x.path,he]})}}M=G}let V={type:"SELECT",rows:P,columns:D,rowCount:P.length,warnings:[...U]};return ue.set(V,N),V}async function Jc(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&Jt(e))return Gt(Xt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let c of e.ctes){let d;c.recursiveSpec?d=await II(c,t,n,a,r):c.query.type==="SHOW_APPS"?d=await Dm(t):c.query.type==="DESCRIBE"?d=await vm(c.query,t,r):c.query.type==="GENERATE_SERIES"?d=hm(c.query):d=await dt(c.query,t,n,a,r,!0);for(let u of d.warnings??[])s.add(u);a.set(c.name,{rows:d.rows,columns:d.columns,columnMeta:ue.get(d),...c.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:c.query.columnAlias}:{}})}let l=await dt(e.query,t,n,a,r,o);return As(l,[...s])}function hm(e){let t=Zo(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:ne({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:ne({fieldType:"DATE"})};return ue.set(n,new Map([[e.columnAlias,r]])),n}async function dt(e,t,n,r,i,o=!1,a=!1){if(a||await os(e,t,r,i),e.type==="UNION"){let[c,d]=await Promise.all([dt(e.left,t,n,r,i,o,!0),dt(e.right,t,n,r,i,o,!0)]);return Em(c,d,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Le||e.joins.some(c=>c.table.cteName!=null)))return Gt(e,t,n,i,r,o,!1,"DERIVED");let l=await wI(e,t,n,r,i);return o&&ue.set(l,await Wi(e,l.columns,t,i,r)),l}async function wI(e,t,n,r,i){await Vi(e,t,i,r);let o=Bi.get(e),a=await gr(e,t,i,r),s=new Set,l=$=>{if($.alias!==null||$.cteName===null)return $;let L=ce($);return s.add(L),{...$,alias:L}};e={...e,from:l(e.from),joins:e.joins.map($=>({...$,table:l($.table)}))};let c=new Set;for(let $ of[e.from,...e.joins.map(L=>L.table)]){let L=ce($);if(L!==null){if(c.has(L))throw new Error(`ArgumentError: effective alias ${L} is used by multiple tables.`);c.add(L)}}let d=$=>{let L=r.get($);if(!L)throw new Error(`ArgumentError: materialized source ${$} is not available.`);return L};for(let $ of[e.from,...e.joins.map(L=>L.table)])$.cteName!==null&&d($.cteName);let{resolver:u}=await On(e,t,i,r,em(e)),p=tm(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([Ji(e.where,t,n,i,R,r),Ji(e.having,t,n,i,R,r),Um(e,t,n,i,R,r)]);let m=Se(e.where,u);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(m)}).`);let y=await Yi(e,t,i,r),g=fs(e)?(e.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:e,staticMode:"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:be(e.where)}):null,T=Vc(e,n,g),h=T.effectiveOptions,[I,N,D]=await Promise.all([Ts(e,t,i),Yc(e,t,i),lm(e,t,i,r)]),P=zc(e,N),M=await Zi(e,t,i,r,Tt(e.having)||Bc(e)),U=nm(e,M),C=Ss(e,I)??mn(e,I);yl(C);let v=t,b=await km(e.columns,t,h,i,R,r),_=Promise.resolve(y);_.catch(()=>{});let A=new Map,w=new Map;if(e.from.cteName!=null){let $=d(e.from.cteName);A.set(e.from.alias,$.rows.map(wR)),w.set(e.from.alias,$.columns)}else{let $=await Rc(T,()=>ki(e,e.from,v,f,E,!0,h.onLimitReached??"error",R,C.mainCondition,m.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,$)}let k=e.joins.map($=>Rc(T,async()=>{if($.table.cteName!=null){let L=d($.table.cteName);A.set($.table.alias,L.rows.map(wR)),w.set($.table.alias,L.columns)}else{let L=$.table.alias?C.joinConditions.get($.table.alias)??null:null,X=await Im(e,$,A,v,f,E,h.onLimitReached??"error",R,i,r,L,a)??await ki(e,$.table,v,f,E,!1,h.onLimitReached??"error",R,L,!0,a);A.set($.table.alias,X)}}));await Promise.all(k);let{optionOrders:O,sortKinds:F,semantics:V}=await _,G=e.joins.length===0&&e.from.cteName!=null?d(e.from.cteName).columns:void 0,{rows:x,columns:K}=vu({tables:A,stmt:e,scalarCache:b,optionOrders:O,sortKinds:F,orderSemantics:V,fieldTypeResolver:P.row,fieldSemanticsResolver:M,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:U,aggregateSortKindResolver:D,appliedKlikes:C.appliedKlikes,sourceColumns:G,tableColumns:w,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:se(n)}),Y=await Xc(e,x,K,t,i);return As({type:"SELECT",rows:x,columns:Y,rowCount:x.length,warnings:[...R]},p)}async function Xc(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 ee(e.from.appId,r,i);return yE(o,e.from.subtableCode,()=>bs(e.from.appId,r,i))}function wR(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function ki(e,t,n,r,i,o,a,s,l=null,c=!0,d,u=""){let p=Rn(e,t,d),f=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),xc(n,t.appId),iE(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?Td(e,t.appId).query:"",g=[l!==null?j(l):"",u].filter(N=>N!==""),T=g.length>1?g.map(N=>`(${N})`).join(" and "):g[0]??"",h=y&&T?`(${y}) and (${T})`:y||T;return(await at(n.getRecords,t.appId,h,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let R=o&&c&&e.joins.length===0&&e.where!==null&&qc.get(e)?.capability==="EXACT_PUSHDOWN"&&!Lt(e.where)?j(e.where):"",m=(await at(n.getRecords,t.appId,R,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return xE(m,t.subtableCode)}var Rr=50;function bI(e){let t=Te(e);return t!==null?JSON.stringify(t):e}function hc(e){return JSON.stringify(e)}function ln(e,t){return JSON.stringify(e.map((n,r)=>t[r]?bI(n):n))}var bR={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function NR(e,t,n,r=[]){if(t){if(e===1)return"\u901A\u5E38\u5B9F\u884C client \u306E native \u80FD\u529B\u304C\u4E0D\u660E";if(e===2)return"native \u8A2D\u5B9A\u304C\u4E0D\u660E";if(e===3)return"\u30D5\u30A9\u30FC\u30E0\u30E1\u30BF\u30C7\u30FC\u30BF\u672A\u53D6\u5F97";if(e===5||r.includes(5))return"\u30BD\u30FC\u30B9\u884C\u672A materialize";if(e===6)return"\u30AD\u30FC\u578B\u60C5\u5831\u304C\u672A\u78BA\u5B9A\u306E\u305F\u3081\u91CD\u8907\u5224\u5B9A\u4E0D\u80FD"}return e===1?"client \u304C upsertRecords \u80FD\u529B\u3092\u6301\u305F\u306A\u3044":e===2?n==="CLI"?"--native-upsert \u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044":"enableNativeUpsert \u304C false":e===3?"\u30AD\u30FC\u9805\u76EE\u306F\u91CD\u8907\u7981\u6B62\u306E SINGLE_LINE_TEXT \u307E\u305F\u306F NUMBER \u3067\u306F\u306A\u3044":e===4?"CHECK / APPLY / IMPORT / VALIDATE ONLY / ON ERROR SKIP \u3092\u4F34\u3046\u7D20\u3067\u306A\u3044 UPSERT":e===5?"\u30BD\u30FC\u30B9\u306B\u7A7A\u6587\u5B57\u30AD\u30FC\u304C\u3042\u308B":"\u30BD\u30FC\u30B9\u5185\u306B\u540C\u4E00\u30AD\u30FC\u304C\u3042\u308B"}function oc(e,t,n){if(t.status==="ELIGIBLE")return` ${e}: ELIGIBLE\uFF08${e.includes("statement/data")?"\u6761\u4EF6 3\u301C6 \u3092":"6 \u6761\u4EF6\u3092\u3059\u3079\u3066"}\u6E80\u305F\u3059\uFF09`;if(t.status==="INELIGIBLE")return` ${e}: INELIGIBLE\uFF08\u6761\u4EF6 ${t.condition}: ${bR[t.condition]} \u2014 ${NR(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${bR[o]} \u2014 ${NR(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function NI(e,t){if(t==="DOCUMENT_ONLY")return[oc("native UPSERT statement/data eligibility",e.statement,t),` native UPSERT execution surface: NOT_APPLICABLE\uFF08\u3053\u306E\u9762\u3067\u306F\u5B9F\u884C\u3057\u306A\u3044${e.statement.status==="ELIGIBLE"?"\u3002/flow \u307E\u305F\u306F CLI --native-upsert \u3067\u306F native \u5019\u88DC":""}\uFF09`];let n=[oc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(oc("native UPSERT statement/data eligibility",e.statement,t)),n}function CI(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function PI(e,t,n){let r=null;if(e.type==="UPSERT")try{r=lp(e)}catch{}return Qc({surface:n.surface==="DOCUMENT_ONLY"?"DOCUMENT_ONLY":"EXECUTION",clientCapability:n.surface==="DOCUMENT_ONLY"?null:n.clientHasNativeUpsert??null,enabled:n.surface==="DOCUMENT_ONLY"?null:n.surface==="FLOW"?n.enableNativeUpsert!==!1:n.enableNativeUpsert===!0,statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Sr.has(e)},fieldInfos:t,rowKeyValues:r})}async function Am(e,t,n){let r=CI(e);if(!r)return[];let i=await DI(r.appId,t);return NI(PI(r,i,n),n.surface)}function Qc(e){let t=e.statement.keyFields.length===1?e.statement.keyFields[0]:void 0,n=t===void 0||e.fieldInfos===null?void 0:e.fieldInfos.find(p=>p.code===t),r=n?.fieldType==="SINGLE_LINE_TEXT"||n?.fieldType==="NUMBER",i=e.fieldInfos===null?null:!!(t!==void 0&&n&&r&&n.isUnique===!0),o=!e.statement.hasCheck&&!e.statement.hasApply&&!e.statement.validateOnly&&!e.statement.onErrorSkip&&!(e.statement.kind==="SELECT"&&e.statement.importDerived),a=e.rowKeyValues,s=a===null?null:a.every(p=>p.every(f=>f!=="")),l=null;if(a!==null&&t!==void 0&&r){let p=new Set;l=!0;for(let f of a){let R=ln([...f],[n.fieldType==="NUMBER"]);if(p.has(R)){l=!1;break}p.add(R)}}let c=(p,f)=>({state:p===null?"UNKNOWN":p?"PASS":"FAIL",reason:f}),d={1:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"client capability is not applicable on this surface"}:c(e.clientCapability,"client does not provide upsertRecords"),2:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"native setting is not applicable on this surface"}:c(e.enabled,"native UPSERT is disabled"),3:c(i,"update key schema is not a single unique text or number field"),4:c(o,"statement is not a plain UPSERT"),5:c(s,"source contains an empty update key"),6:c(l,"source contains duplicate update keys")},u=p=>{let f=p.find(E=>d[E].state==="FAIL");if(f!==void 0)return{status:"INELIGIBLE",condition:f,reason:d[f].reason};let R=p.filter(E=>d[E].state==="UNKNOWN").map(E=>({condition:E,reason:d[E].reason}));return R.length>0?{status:"UNKNOWN",unknownConditions:R}:{status:"ELIGIBLE"}};return{conditions:d,execution:u([1,2,3,4,5,6]),statement:u([3,4,5,6])}}function Zc(e){return"upsertRecords"in e&&typeof e.upsertRecords=="function"}function Sm(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:Zc(t),enabled:FR(n),statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Sr.has(e)},fieldInfos:r,rowKeyValues:i}}var ms=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function OI(e,t){if(!e||!Array.isArray(e.records)||e.records.length!==t)throw new ms;let n=0,r=0;for(let i of e.records){if(!i||typeof i.id!="string"||typeof i.revision!="string"||i.operation!=="INSERT"&&i.operation!=="UPDATE")throw new ms;i.operation==="INSERT"?n+=1:r+=1}return{insertedCount:n,updatedCount:r}}async function Tm(e,t,n,r,i,o){if(n.length===0)return{type:"UPSERT",insertedCount:0,updatedCount:0};if(o.confirm&&!await o.confirm(n.length,"UPDATE"))throw new Re("UPDATE",n.length);let a=0,s=0;for(let l=0;l<n.length;l+=100){let c=n.slice(l,l+100).map((p,f)=>{let R={};for(let[E,m]of Object.entries(p))E!==t&&(R[E]=m);return{updateKey:{field:t,value:r[l+f][0]},record:R}}),d=await i.upsertRecords({app:e,upsert:!0,records:c}),u=OI(d,c.length);a+=u.insertedCount,s+=u.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function eo(e,t){let n=e.raw.get(hc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(ln(t,e.numericKey))}async function to(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,c=t.map(y=>o.get(y)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:c,...a?{snapshots:new Map}:{}},u=(y,g,T)=>{let h=y.get(g);(h===void 0||T>h)&&y.set(g,T)},p=(y,g)=>{u(d.raw,hc(y),g),c.some(Boolean)&&u(d.normalized,ln(y,c),g)},f=new Set,R=[],E=new Set;for(let y of n){let g=hc(y);E.has(g)||(E.add(g),y.some(T=>T==="")?R.push(y):f.add(y[0]))}let m=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let y of no([...f],Rr)){let g=`${t[0]} in (${y.map(Hi).join(",")})`,T=await xe(r.getRecords,e,g,m,{maxRecords:s,parallel:l});for(let h of T){let I=Number(h.$id?.value);Number.isFinite(I)&&(d.snapshots?.set(I,h),p(t.map(N=>ep(h[N]?.value)),I))}}for(let y of R){let g=t.map((I,N)=>`${I} = ${Hi(y[N])}`).join(" and "),T=a?[...new Set(["$id",...a])]:["$id"],h=await xe(r.getRecords,e,g,T,{maxRecords:s,parallel:l});if(h.length!==0){for(let I of h){let N=Number(I.$id?.value);Number.isFinite(N)&&d.snapshots?.set(N,I)}p(y,LI(h))}}return d}function LI(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 ep(e){return typeof e=="string"?e:e==null?"":String(e)}function Hi(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function no(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var _I=6,ls=Pa*_I;async function Im(e,t,n,r,i,o,a,s,l,c,d=null,u,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,R=t.on.right.tableAlias;if(!f||!R)return null;let E,m,y;if(f===t.table.alias&&R!==t.table.alias)E=R,m=t.on.right.field,y=t.on.left.field;else if(R===t.table.alias&&f!==t.table.alias)E=f,m=t.on.left.field,y=t.on.right.field;else return null;let g=n.get(E);if(!g)return null;let T=[e.from,...e.joins.map(A=>A.table)].find(A=>ce(A)===E),h=(await ee(t.table.appId,r,l)).find(A=>A.code===Ee(t.table,y)),I=h?ve(h,t.table.appId):Xe(y),N;if(T?.cteName!==null&&T?.cteName!==void 0)N=c?.get(T.cteName)?.columnMeta?.get(m);else if(T){let A=(await ee(T.appId,r,l)).find(w=>w.code===Ee(T,m));N=A?ve(A,T.appId):Xe(m)}let D=[],P=!1;for(let A of g){let w=A[m]?.value,k=ep(w);(w==null||k.length===0)&&(P=!0),D.push(k)}let M=Ru({fieldType:I?.fieldType,sourceSemantics:N?.semantics,sourceRowCount:g.length,values:D,hasEmptyValue:P,maxInKeys:ls});if(M.kind==="EMPTY_SOURCE")return[];if(M.kind==="FALLBACK"){if(M.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let A=new Set(D).size;s.add(`JOIN\u30AD\u30FC\u304C ${A} \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 ${ls} \u4EF6\uFF09\u3002`)}return null}if(M.kind==="RANGE_CANDIDATE")return null;let U=Eu(M,y,Hi);if(U.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 ${ls} \u4EF6\uFF09\u3002`),null;let C=Rn(e,t.table,u),v=A=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${A} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${A} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),xc(r,t.table.appId)},b=[],_=new Set;for(let A of U){let k=[d!==null?j(d):"",p].filter(F=>F!=="").reduce((F,V)=>`(${F}) and (${V})`,A),O=await at(r.getRecords,t.table.appId,k,C,{parallel:o,maxRecords:i,onLimit:a,onTruncate:v});for(let F of O.records){let V=`${F.$id?.value??""}:${JSON.stringify(F)}`;_.has(V)||(_.add(V),b.push(F))}}return b}var Ac=new Map,Sc=new Map,Tc=new Map,ys=new Map,Ic=new Map,wc=new Map;function tp(e){Ac.delete(e),Sc.delete(e),Tc.delete(e),ys.delete(e),Ic.delete(e),wc.delete(e)}function xn(e,t,n){return e.get(t)?.get(n)}function Tr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function ee(e,t,n){let r=xn(ys,n,e);if(r)return r;let i=t.getFields(e);return Tr(ys,n,e,i),i}async function DI(e,t){let n=xn(ys,t,e);return n?await n:null}async function Ct(e,t,n){let r=xn(wc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Tr(wc,n,e,i),i}async function bs(e,t,n){let r=xn(Ic,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Tr(Ic,n,e,i),i}async function np(e,t,n){let r=await bs(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Me(e,t,n){let r=xn(Ac,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Tr(Ac,n,e,o),o}async function bc(e,t,n){let r=xn(Sc,n,e);if(r)return r;let i=await ee(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 Tr(Sc,n,e,o),o}async function vI(e,t,n){let r=await bc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function CR(e,t,n){let r=xn(Tc,n,e);if(r)return r;let i=await ee(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Tr(Tc,n,e,o),o}function UI(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 MI(e,t,n,r){let i=UI(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let p=await ee(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let E=s.get(e.from.appId)?.get(u.field);return E?ve(E,e.from.appId):void 0}let f=o.find(E=>ce(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(Ee(f,u.field));return R?ve(R,f.appId):Xe(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(Ee(e.from,u.field));return f?ve(f,e.from.appId):Xe(u.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),y=m?.columns.includes(u.field)?m.columnMeta?.get(u.field):void 0;return y?[y]:[]}let R=s.get(f.appId)?.get(Ee(f,u.field)),E=R?ve(R,f.appId):Xe(u.field);return E?[E]:[]});return p.length>1&&a.add(u.field),p.length===1?p[0]:void 0},c=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let p;if(u.type==="FIELD")p=l(Ue(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")p=Z("number");else if(u.type==="WINDOW_COL")p=pm(u,l);else if(u.type==="GROUPING_COL")p=Z("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")p=Z("string");else if(u.type==="STRFUNC_COL")p=vn(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")p=Je();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(R=>Ar(R.result,l));u.expr.elseResult&&f.push(Ar(u.expr.elseResult,l)),p=ws(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(p=Un(u.arg,l)):p=u.func==="GROUP_CONCAT"?Z("string"):Z("number"));p?.semantics&&c.set(u.alias,p.semantics)}let d=new Map;for(let u of i){let p=c.get(u)??l(Ue(u))?.semantics;if(!p){let R=Ue(u);R.tableAlias===null&&a.has(R.field)&&d.set(u,ne({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await bs(p.source.appId,t,n);R.enable&&R.states!==null&&(f={...p,optionOrder:new Map(R.states.map(E=>[E.name,E.index]))})}d.set(u,f)}return d}async function Yi(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([kI(e,t,n),xI(e,t,n),MI(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function kI(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 bc(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 bc(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}async function xI(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 CR(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 CR(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}function wm(e,t){if(typeof e!="string")return e;let n=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),r=new Set(["CHECK_BOX","MULTI_SELECT"]);if(n.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i)&&i.every(o=>typeof o=="object"&&"code"in o))return i.map(o=>({code:o.code}))}catch{}return e.split(",").map(i=>({code:i.trim()}))}if(r.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i))return i.map(String)}catch{}return e.split(",").map(i=>i.trim())}return e}var FI=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function KI(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||FI.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function ft(e,t,n,r){let i=await ee(e,n,r);return KI(e,t,i),i}async function $t(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?Ct(e,r,i):void 0}function un(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),c=o[s]?.value??"",d=$e(c,l,r);if(!d.ok)throw new Error(`DmlValidationError: ${d.code} ${d.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(c)&&c.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:u?c:d.value}}})}async function GI(e,t,n,r,i){let o=await ft(e.appId,e.fields,t,r),a=await ci({statement:e,fieldInfos:o,dmlMaxRows:Ze(n.dmlMaxRows,"dmlMaxRows",Bt),dmlMaxSubtableRows:Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),statementNumber:i,loadNumberPrecision:()=>Ct(e.appId,t,r)});return mw(e,a,o)}async function $I(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await bm(e,t,n,r,i);return gw(e,a,o)}async function bm(e,t,n,r,i){let o=await ft(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=lp(e),l=new Set;for(let m of s){let y=ln(m,e.keyFields.map(g=>a.get(g)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let c=await to(e.appId,e.keyFields,s,t,n,a),d=s.map(m=>eo(c,m)),u=new Map,p=[...new Set(d.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of no(p,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let g of y.records){let T=Number(g.$id?.value);Number.isSafeInteger(T)&&T>0&&u.set(T,g)}}let R=d.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:u.get(m)}})),E=await Xf({statement:e,matches:R,fieldInfos:o,dmlMaxRows:Ze(n.dmlMaxRows,"dmlMaxRows",Bt),dmlMaxSubtableRows:Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),statementNumber:i,loadNumberPrecision:()=>Ct(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function BI(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await ft(e.appId,e.fields,t,r),o=await ci({statement:e,fieldInfos:i,dmlMaxRows:Ze(n.dmlMaxRows,"dmlMaxRows",Bt),dmlMaxSubtableRows:Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),loadNumberPrecision:()=>Ct(e.appId,t,r)}),a=uu(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Ns(a),applyDiagnostic:a}))throw new Re("INSERT",o.guards.parentRows);let s=await nE(o,t,a);return{...s,diagnostic:Ye(a,s)}}async function VI(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await bm(e,t,n,r,1),o=cu(i);if(n.confirm){let s=Ns(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new Re("UPDATE",i.guards.parentRows)}let a=await rE(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:Ye(o,a)}}function WI(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 Ns(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=WI(n?ts(n):[],r?ts(r):[]),a=HI(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),c=o.reduce((p,f)=>p+f.appendRows,0),d=o.reduce((p,f)=>p+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:c,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:d,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=ts(n),f=ts(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:p.reduce((R,E)=>R+E.appendRows,0),tables:p},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 ts(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=_n(t,"APPEND"),r=_n(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function _n(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function HI(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:_n(n,"ADD"),removedValues:_n(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 rp(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return GI(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return $I(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Lm(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await ip(e,t,n,r,i,o)).result}var ji=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function ip(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(_=>_.field)]:[...e.fields];if(new Set(c).size!==c.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let d=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,u=await ft(e.appId,d,t,r);e.type==="UPDATE"&&await yr(e,t,r);let p=new Map(u.map(_=>[_.code,_])),f=await $t(e.appId,d,u,t,r),R=gt(u,c),E=$E(R),m=(await YI(e,l,t,n,r,i,p,e.type==="UPDATE"?E:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),y=m.filter(_=>_.mode==="update"),g=e.type==="UPDATE"?qI:e.type.startsWith("UPSERT")?_=>JI(_,t,n.maxRecords??1e4):void 0,T=n.loadUpdateModeSnapshots??g,h=y.length>0&&T!==void 0,I=new Map;if(h){eu(y,d,u);let _=await T({appId:e.appId,candidates:y,fields:E}),A=new Map;for(let w of y){if(w.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${w.rowNumber}).`);let k=_.get(w.targetId);if(!k)throw new Error(`InternalError: update-mode snapshot is missing for record ${w.targetId}.`);let O=BE(k,w.record??{});A.set(w.rowNumber,O)}f===void 0&&[...A.values()].some(w=>An(w,R))&&(f=await Ct(e.appId,t,r));for(let w of y){let k=A.get(w.rowNumber);if(!k)throw new Error(`InternalError: validation post-image is missing for row ${w.rowNumber}.`);I.set(w.rowNumber,Sn(k,R,f,o,w.rowNumber,l))}}let N=tu(m,l,c,d,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!h}),{errors:D,invalidRows:P,invalidRowNumbers:M}=N;if(h){let _=new Map(N.candidateResults.map(A=>[A.rowNumber,A]));D=[],M=new Set;for(let A of m){let w=_.get(A.rowNumber);if(!w)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...w.preErrors,...w.builtInErrors,...w.checkErrors];D.push(...F),F.length>0&&M.add(A.rowNumber);continue}let k=I.get(A.rowNumber);if(!k)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=VE({rowNumber:A.rowNumber,setFields:d,normalizedPostImage:k.normalizedRecord,preErrors:w.preErrors,postImageErrors:k.errors,checkErrors:w.checkErrors});A.record=O.writeRecord,D.push(...O.errors);for(let F of O.invalidRowNumbers)M.add(F)}P=M.size}let U=[...c,...sr],C={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-P,invalidRows:P,errorCount:D.length,columns:U,errors:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},v=new Map;for(let _ of c){if(_==="$id"){v.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ne({fieldType:"RECORD_NUMBER"})});continue}let A=p.get(_);A&&v.set(_,ve(A,e.appId))}let b=new Set(["$err_statement","$err_row"]);for(let _ of sr)v.set(_,Z(b.has(_)?"number":"string"));return kn.set(C,v),{result:C,candidates:m,invalidRowNumbers:M,columnMeta:v}}async function Nc(e,t,n,r,i,o){let a=await ip(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");Nt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Qe,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new ji(`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 Re(R,c.length)}let d={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 m=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(y=>y.record)});R.push(m.ids)}return{type:"INSERT",createdIds:R,insertedCount:R.flat().length,...d}}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,...d}}let u=c.filter(R=>R.mode==="create"),p=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(m=>m.record)});f+=E.ids.length}for(let R=0;R<p.length;R+=100)await t.putRecords({app:e.appId,records:p.slice(R,R+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...d}}async function YI(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return zI(e,n,r,i,o,s);let l,c,d,u,p;if(e.type==="INSERT"||e.type==="UPSERT")PR(e,e.fields),p=new Map(e.fields.map(h=>[h,a.get(h)?.fieldType??""])),Mn(e,p),l=e.values.map(h=>h.map((I,N)=>I.type==="CASE_VALUE"?Ut(I.expr,{},a.get(e.fields[N])?.fieldType,se(r)):I));else{let h=await ap.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(h.columns.length<e.fields.length||!I&&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(I&&new Set(h.columns).size!==h.columns.length)throw Ce("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");PR(e,h.columns),c=h.rows,d=h.importPresence,u=h.importRowErrors;let N=h.columnMeta;p=new Map(h.columns.map(D=>{let P=N?.get(D),M=P?.fieldType??(P?.semantics?.compareMode==="number"||P?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[D,M]})),Mn(e,p),l=h.rows.map(D=>h.columns.map(P=>D[P]??""))}let f=l.map((h,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((N,D)=>d&&!d[I]?.has(N)?[]:[[N,h[D]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:c?.[I]??Object.fromEntries(e.fields.map((N,D)=>[N,yt(h[D])])),evaluationFieldTypes:p}));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,I])=>[h,I.fieldType])),E=f.map(h=>e.keyFields.map(I=>yt(h.payload.get(I)))),m=e.keyFields.map(h=>R.get(h)==="NUMBER"),y=new Map;for(let h of E){let I=ln(h,m);y.set(I,(y.get(I)??0)+1)}let g=Sr.has(e);if(g&&[...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 T=await to(e.appId,e.keyFields,E,n,r,R);return f.forEach((h,I)=>{let N=E[I],D=eo(T,N);h.mode=D===void 0?"create":"update",D!==void 0&&(h.targetId=D),e.keyFields.forEach((P,M)=>{N[M]===""&&h.preErrors.push({field:P,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${P} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!g&&(y.get(ln(N,m))??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 op(e){return e.checkGroups?or(e.checkGroups):[]}function PR(e,t){let n=new Set(t);for(let r of op(e)){if(r.tableAlias!==null)throw Ce(`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 Ce(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var jI=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Mn(e,t){if(e.checkGroups)for(let n of gf(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(jI.has(i??""))throw Ce(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function zI(e,t,n,r,i,o){if(e.from)return QI(e,e.from,t,n,r,i,o);await Mm(e.assignments,t,n,r);let a=await Me(e.appId,t,r),s=Nm(e,a);Mn(e,Cc(a,e.appId));let l,c=new Map,d=new Map;if(fa(e)){let u=Fl(e),p=[...new Set([...u.fields,...s,...o??[]])],f=await at(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=us(f.records),c=d,l=Gl(e,f.records,a,se(n)).flatMap(R=>R.records)}else{let u=ti(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await at(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=us(f.records),c=d,l=ni(e,[...c.keys()],a).flatMap(R=>R.records)}else if(o){let p=await at(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=us(p.records),l=ni(e,[...d.keys()],a).flatMap(f=>f.records)}else{let p=await La(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=ni(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((u,p)=>u.id-p.id).map((u,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:d.get(u.id),evaluationRow:XI(c.get(u.id),e.appId),evaluationFieldTypes:Cc(a,e.appId)}))}function us(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 qI(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 JI(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 no(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let c=l.$id?.value,d=Number(c);if(!Number.isSafeInteger(d)||d<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(c)}.`);if(!i.has(d))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${d}.`);if(o.has(d))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${d}.`);o.set(d,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function Nm(e,t){if(e.from)return[];let n=new Set;for(let r of op(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw Ce(`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 Ce(`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 XI(e,t){if(!e)return{};let n=xt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Cc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function QI(e,t,n,r,i,o,a){let s=await Xm(e,t,n,i,o);Mn(e,s.evaluationTypes);let l=await Cm(e,t,n,r,i,o,a),c=await Me(e.appId,n,i),d=Bl(e,l,c,se(r)).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?us(l.map(f=>f.target)):new Map;return d.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:p.get(f.id),evaluationRow:ob(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var ZI=Rr,ew=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Cm(e,t,n,r,i,o,a){let s=await tw(e,t,n,i),l=await Xm(e,t,n,i,o),c=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],d=[...new Set([t.joinKeyField,...c])],u=await nw(t,d,c,n,r,i,o),p=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let N=OR(I[t.joinKeyField],s,"source");if(p.has(N))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${N}.`);p.set(N,I),f.set(N,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let R=r.maxRecords??1e4,E=[...new Set([...Aw(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":ti({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],g=new Set,T=0;for(let I of no([...f.values()],ZI)){let N=`${t.targetJoinField} in (${I.map(Hi).join(",")})`,D=m?`(${N}) and (${m})`:N,P=await at(n.getRecords,e.appId,D,E,{maxRecords:R,parallel:r.fetchParallel??1,onLimit:"error"});if(T+=P.records.length,T>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 M of P.records){let U=M.$id?.value;if(typeof U!="string"||U==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");g.has(U)||(g.add(U),y.push(M))}}let h=[];for(let I of y){let N=I[t.targetJoinField]?.value,D=OR(N,s,"target");if(D===null)continue;let P=p.get(D);P!==void 0&&h.push({target:I,source:P})}return h}async function tw(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await ee(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 nw(e,t,n,r,i,o,a){if(e.cteName!==null){let d=a?.get(e.cteName);if(!d)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(!d.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return d.rows}let s=await Me(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let d of n){if(d!=="$id"&&!s.has(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);let u=d==="$id"?"RECORD_NUMBER":s.get(d);if(ew.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${d}).`)}return(await at(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(d=>xt(d,null))}function OR(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 ro(e,t,n,r,i){let o=await ip(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 Re(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(R=>R.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<u.length;p+=100)await t.putRecords({app:e.appId,records:u.slice(p,p+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),c=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),d=0;for(let u=0;u<l.length;u+=100){let p=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});d+=p.ids.length}for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPSERT",insertedCount:d,updatedCount:c.length}}async function rw(e,t,n,r){if(e.applyBlocks?.length)return BI(e,t,n,r);if(e.checkGroups?.length)return ro(e,t,n,r);if(e.subtableCode)return ww(e,t,n,r);let i=await ft(e.appId,e.fields,t,r),o=await $t(e.appId,e.fields,i,t,r),a=await Me(e.appId,t,r),s=da(e,a,se(n));un(s.flatMap(c=>c.records),e.fields,i,o);let l=[];for(let c of s){let d=await t.postRecords(c);l.push(d.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function iw(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Le},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function Pm(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=zE(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let x=new Set(e.targets.filter(K=>K.kind==="SUBTABLE").map(K=>K.subtableCode));if(e.replaceSubtables.some(K=>!x.has(K)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let K of e.targets.filter(Y=>Y.kind==="SUBTABLE"))if(!K.rowIdSourceHeader||!e.replaceSubtables.includes(K.subtableCode))throw new Error(`ArgumentError: CSV subtable ${K.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,p=await ee(e.appId,t,r),f=u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children),R=p.some(x=>f.includes(x.code)&&x.fieldType==="NUMBER")?await Ct(e.appId,t,r):void 0,E=await Ja(o,new Map),m=e.source.kind==="JSON"?ZE(e.source,E,u,n.maxRecords??1e4):eR(e.source,E,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",g=iR(m,u,p,R,y);if(e.source.kind==="CSV")return ow(e,m,g,p,t,n,i);qu(g,e.rejectLimit);let T=[...new Set(u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children))],h=Xu(g.errors,T),I=[...T,...Ju],N=g.invalidParentRows.size,D={preflight:"ACTUAL_DATA",parents:{total:g.parents.length,valid:g.parents.length-N,invalid:N,mutationCandidates:g.parents.filter(x=>x.valid).length},tables:Object.fromEntries(g.tableCounts),writesKintone:!1},P={type:"VALIDATION",operation:y,validatedRows:g.parents.length,validRows:g.parents.length-N,invalidRows:N,errorCount:h.length,columns:I,errors:h,importDetail:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&Nt(i,e.validationErrorTable,I,h,n.tempTableMaxRows??Qe,new Map),e.validateOnly)return P;if(aR(m),g.errors.length>0&&!e.onErrorSkip){let x=g.errors[0];throw new Error(`DmlValidationError: ${x.code} ${x.message} (row=${x.parentRow}, field=${x.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Nt(i,e.errorTable,I,h,n.tempTableMaxRows??Qe,new Map)}let M=g.parents.filter(x=>x.valid),U=new Map(p.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=>U.get(L)==="NUMBER"),K=new Set,Y=M.map(L=>e.keyFields.map(W=>String(L.top[W]?.value??"")));for(let L of Y){let W=ln(L,x);if(K.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");K.add(W)}let $=await to(e.appId,e.keyFields,Y,t,n,U);Y.forEach((L,W)=>{C[W]=eo($,L)})}let v=u.filter(x=>x.kind==="SUBTABLE").map(x=>x.subtableCode),b=new Map,_=C.filter(x=>x!==void 0);for(let x of no([...new Set(_)],100)){let K=await t.getRecords({app:e.appId,query:`$id in (${x.join(",")}) limit 500`,fields:["$id","$revision",...v]});for(let Y of K.records){let $=Number(Y.$id?.value),L=Number(Y.$revision?.value);Number.isFinite($)&&b.set($,{id:$,...Number.isFinite(L)?{revision:L}:{},record:Y})}}let A=sR(M,C,b),w={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(x=>x.mode==="INSERT").length,updatedParents:A.filter(x=>x.mode==="UPDATE").length,hasDeletes:A.some(x=>x.tables.some(K=>K.deleteRows>0)),parents:A.map(x=>({parentRow:x.parentRow,mode:x.mode,...x.targetId===void 0?{}:{targetId:x.targetId},tables:x.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new Re(e.keyFields?"UPDATE":"INSERT",A.length)}let k=x=>new Map(Object.entries(x).map(([K,Y])=>[K,Y.value])),O=x=>oR(k(x.top),new Map([...x.subtables].map(([K,Y])=>[K,Y.map($=>({values:k($)}))]))),F=A.filter(x=>x.mode==="INSERT"),V=A.filter(x=>x.mode==="UPDATE"),G=[];for(let x=0;x<F.length;x+=100){let K=await t.postRecords({app:e.appId,records:F.slice(x,x+100).map(O)});G.push(K.ids)}for(let x=0;x<V.length;x+=100)await t.putRecords({app:e.appId,records:V.slice(x,x+100).map(K=>({id:K.targetId,...K.revision===void 0?{}:{revision:K.revision},record:O(K)}))});return e.keyFields?{type:"UPSERT",insertedCount:G.flat().length,updatedCount:V.length,affectedRows:A.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}:{type:"INSERT",createdIds:G,insertedCount:G.flat().length,affectedRows:A.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return aw(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:iw(),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};Sr.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 rp(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&Nt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??Qe,kn.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",Nc(s,t,n,r,i,1));return c(u)}let d=await(s.type==="UPSERT_SELECT"?pp(s,t,n,r,i):sp(s,t,n,r,i));return c(d)}async function ow(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");lR(t.records);let s=t.records.map(b=>b.recordNumberSourceValue??""),l=ec(s,e.recordNumberSourceHeader),c=[...e.replaceSubtables],d=[...new Set(r.filter(b=>!b.inSubtable&&b.fieldType==="SUBTABLE").map(b=>b.code))],u=await xe(i.getRecords,e.appId,"",["$id","$revision",...d],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let b of u){let _=Number(b.$id?.value),A=Number(b.$revision?.value);if(Number.isFinite(_)){p.set(_,{id:_,...Number.isFinite(A)?{revision:A}:{},record:b});for(let w of d){let k=b[w]?.value;if(Array.isArray(k)){for(let O of k)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:w}),f.set(O.id,F)}}}}}let R=l.normalized.map(b=>b===null?void 0:Number(b)),E=n.parents.map((b,_)=>{let A=[...b.errors];for(let k of l.errors[_])A.push({operation:"UPDATE",parentRow:b.parentRow,field:k.field,code:k.code,message:k.message,sourceValues:t.records[_].top});let w=R[_];return w!==void 0&&!p.has(w)&&A.push({operation:"UPDATE",parentRow:b.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...b,valid:A.length===0,errors:A}}),m=uR(t.records,E,R,p,f),y=m.flatMap(b=>[...b.errors]),g=new Set(m.filter(b=>!b.valid).map(b=>b.parentRow)),T={...n,parents:E,errors:y,invalidParentRows:g};qu(T,e.rejectLimit);let h=m.filter(b=>b.valid),I=m.flatMap(b=>b.tables),N=(b,_)=>I.filter(A=>A.table===b).reduce((A,w)=>A+Number(w[_]),0),D=Object.fromEntries(c.map(b=>[b,{existingRows:N(b,"existingRows"),inputRows:N(b,"inputRows"),updateRows:N(b,"updateRows"),addRows:N(b,"addRows"),deleteRows:N(b,"deleteRows"),rowIdNotFound:N(b,"rowIdNotFound")}])),P={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:h.length,insertedParents:0,updatedParents:h.length,hasDeletes:h.some(b=>b.tables.some(_=>_.deleteRows>0)),totalDeleteRows:h.flatMap(b=>b.tables).reduce((b,_)=>b+_.deleteRows,0),rowIdNotFound:h.flatMap(b=>b.tables).reduce((b,_)=>b+_.rowIdNotFound,0),invalidParents:g.size,parents:h.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))],U=Xu(y,M),C=[...M,...Ju];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&Nt(a,e.validationErrorTable,C,U,o.tempTableMaxRows??Qe,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-g.size,invalidRows:g.size,errorCount:U.length,columns:C,errors:U,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:h.length,invalid:g.size,mutationCandidates:h.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.");Nt(a,e.errorTable,C,U,o.tempTableMaxRows??Qe,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:P}))throw new Re("UPDATE",h.length)}let v=b=>new Map(Object.entries(b).map(([_,A])=>[_,A.value]));for(let b of h){let _=Qu(v(b.top),new Map([...b.subtables].map(([A,w])=>[A,w.map(k=>({...k.rowId?{rowId:k.rowId}:{},values:v(k.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:b.targetId,...b.revision===void 0?{}:{revision:b.revision},record:_}]})}return{type:"UPDATE",updatedCount:h.length,affectedRows:h.length,skippedRows:g.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}async function aw(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 ft(e.appId,e.fields,n,i),s=await $t(e.appId,e.fields,a,n,i),l=await Ja(t,new Map),c=Yu(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),d=c.recordNumberSourceValues;if(!d)throw new Error("InternalError: record-number source values were not materialized.");let u=ec(d,e.recordNumberSourceHeader),p=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),U=await n.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id"]});for(let C of U.records){let v=C.$id?.value;typeof v=="string"&&v!==""&&p.add(v.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"])),m=c.rows.map((P,M)=>{let U=u.normalized[M],C=[...c.importRowErrors?.[M]??[],...u.errors[M]];return U!==null&&!p.has(U)&&C.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${U} does not exist in APP${e.appId}`}),{rowNumber:M+1,operation:"UPDATE",mode:"update",...U!==null&&p.has(U)?{targetId:Number(U)}:{},payload:new Map([[e.recordNumberSourceHeader,d[M]],...e.fields.map(v=>[v,P[v]??""])]),preErrors:C,record:{},evaluationRow:P,evaluationFieldTypes:E}}),y=[e.recordNumberSourceHeader,...e.fields],g=tu(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),T=[...y,...sr],h={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-g.invalidRows,invalidRows:g.invalidRows,errorCount:g.errors.length,columns:T,errors:g.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&&Nt(o,e.validationErrorTable,T,g.errors,r.tempTableMaxRows??Qe,new Map),h}if(!e.onErrorSkip&&g.invalidRows>0){let P=g.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(Nt(o,e.errorTable,T,g.errors,r.tempTableMaxRows??Qe,new Map),e.rejectLimit!=null&&g.invalidRows>e.rejectLimit)throw new ji(`rejected rows (${g.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,h)}let I=m.filter(P=>!g.invalidRowNumbers.has(P.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new Re("UPDATE",I.length);let N=I.map(P=>({id:P.targetId,record:P.record}));for(let P=0;P<N.length;P+=100)await n.putRecords({app:e.appId,records:N.slice(P,P+100)});let D={type:"UPDATE",updatedCount:N.length,...e.onErrorSkip?{affectedRows:N.length,skippedRows:g.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(D,{insertedCount:0,importAudit:c.importAudit}),D}async function sw(e,t,n,r,i,o){let a=Sr.get(e);if(!a){let E=i&&i.size>0?await dt(e.select,t,n,i,r,!0):await Gt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:ue.get(E)}}let s=await Ja(a.handle,a.cache),l=n.maxRecords??1e4,c=new Map((o??[]).map(E=>[E.code,E])),d=e.fields.map(E=>({code:E,fieldType:c.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?Hu(a.source,s,d,l):Yu(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=cR(a.source.projection),f=new Map(i??[]);f.set(Zu,u);let R=await dt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:R.rows,columns:R.columns,columnMeta:ue.get(R)}}var ap={materialize:sw};function Om(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 sp(e,t,n,r,i){if(e.checkGroups?.length)return ro(e,t,n,r,i);let o=await ft(e.appId,e.fields,t,r),a=await $t(e.appId,e.fields,o,t,r),s=await ap.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(Om(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 Re("INSERT",l.length);let d=await Me(e.appId,t,r),u=l.map((f,R)=>{let E={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[R]?.has(m))return;let g=f[c[y]]??"";E[m]={value:wm(g,d.get(m))}}),E});u.forEach(f=>un([f],e.fields.filter(R=>R in f),o,a));let p=[];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});p.push(E.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function Pc(e,t,n,r,i){if(e.applyBlocks?.length)return Lm(e,t,n,r);if(e.checkGroups?.length&&pt(e.where)){let R=await ft(e.appId,e.assignments.map(m=>m.field),t,r);await $t(e.appId,e.assignments.map(m=>m.field),R,t,r);let E=await Me(e.appId,t,r);return Nm(e,E),Mn(e,Cc(E,e.appId)),await yr(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return ro(e,t,n,r,i);if(e.subtableCode)return await yr(e,t,r),bw(e,t,n,r);let o=await ft(e.appId,e.assignments.map(R=>R.field),t,r),a=e.assignments.map(R=>R.field),s=await $t(e.appId,a,o,t,r);if(await yr(e,t,r),pt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return hw(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await Mm(e.assignments,t,n,r);let c=await Me(e.appId,t,r);if(fa(e)){let R=Fl(e),m=(await at(t.getRecords,R.app,R.query,[...R.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=Gl(e,m,c,se(n));if(un(y.flatMap(g=>g.records.map(T=>T.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new Re("UPDATE",m.length);for(let g of y)await t.putRecords(g);return{type:"UPDATE",updatedCount:m.length}}let d=ti(e),p=(await La(t.getRecords,d.app,d.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=ni(e,p,c);if(un(f.flatMap(R=>R.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new Re("UPDATE",p.length);for(let R of f)await t.putRecords(R);return{type:"UPDATE",updatedCount:p.length}}async function Lm(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Ot(e.where))return lw(e,t,n,r,i);let o=await ee(e.appId,t,r),a=Mt(e,o),s=Ra(e,o),l=zl(e),c=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(c.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(c.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let d=Number(c.records[0].$id?.value);if(d!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${d} does not match requested $id ${l}.`);ha(c.records[0]);let u=Mf({statement:e,snapshot:c.records[0],fieldInfos:o,metadata:a,evaluationContext:se(n)}),p=gt(o,e.assignments.map(I=>I.field)),f=An(u.postImage,p)?await Ct(e.appId,t,r):void 0,R=Sn(u.postImage,p,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=Ze(n.dmlMaxRows,"dmlMaxRows",Bt),m=Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),y=u.parentRows>E||u.changedSubtableRows>m;if(e.validateOnly){let I=di({plans:[u],records:ai(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),N={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:zi(I.branches[0]),guards:qi(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 kn.set(N,Cs(R.columns,o,e.appId)),N}if(u.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${E}).`);if(u.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let g=ya(u,R.normalizedRecord),T=ai(g),h=di({plans:[g],records:T.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let I=Ns(h,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:h}))throw new Re("UPDATE",u.parentRows)}return await t.putRecords(T),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:Ye(h,{successfulChunks:1,successfulParents:u.parentRows})}}async function lw(e,t,n,r,i){let o=Ze(n.dmlMaxRows,"dmlMaxRows",Bt),a=Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),s=await ee(e.appId,t,r),l=Mt(e,s),c;if(gs(e))c=await dw(e,t,n,s,r);else{let f=Ra(e,s),R=ti(e).query,E=o+1;c=await xe(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 d=await Ia({statement:e,snapshots:c,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>Ct(e.appId,t,r)});if(e.validateOnly)return yw(e,d,s);qp("phase15b",e);let u=di(d);if(n.confirm){let f=Ns(u);if(!await n.confirm(d.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new Re("UPDATE",d.guards.parentRows)}let p=await tE(d,t,u);return{...p,diagnostic:Ye(u,p)}}function gs(e){return(e.applyBlocks?.length??0)>0&&!Ot(e.where)&&(jt(e.where)||be(e.where))}function uw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&gs(t)&&be(t.where)}var cw=`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
|
|
14
|
+
`,r:"\r",t:" "};if(E in m){p+=m[E];continue}E!=="u"&&Ft(`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)||Ft("has invalid unicode escape",n,r,i);for(let T=0;T<4;T++)o();let g=Number.parseInt(y,16);if(g>=55296&&g<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Ft("has an unpaired high surrogate",n,r,i),o(),o();let T=e.slice(n,n+4);for(let I=0;I<4;I++)o();let h=Number.parseInt(T,16);(h<56320||h>57343)&&Ft("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(g-55296<<10)+h-56320)}else g>=56320&&g<=57343?Ft("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(g)}f||Ft("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let c=e.slice(n),d=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(c)?.[0];if(d){for(let p=0;p<d.length;p++)o();t.push({kind:"number",lexeme:d,...l});continue}let u=/^(true|false|null)/.exec(c)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}Ft(`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 Qa(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Za(e){if(e.byteLength===0)throw new H("JSON source is empty.");let t=XE(JE(e)),n=0,r=(c,d=t[n])=>{throw new H(`JSON ${c} (offset=${d.offset}, line=${d.line}, column=${d.column}).`)},i=(c,d)=>c.kind==="punct"&&c.value===d,o=c=>{let d=t[n];(d.kind!=="punct"||d.value!==c)&&r(`expected ${c}; found ${Qa(d)}`,d),n++},a=()=>{let c=t[n++];if(c.kind==="string")return c.value;if(c.kind==="number")return{kind:"number",lexeme:c.lexeme};if(c.kind==="literal")return c.value;if(c.kind==="punct"&&c.value==="{"){let d=new Map;if(i(t[n],"}"))return n++,d;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${Qa(u)}`,u);let p=u.value;d.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),d.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return d}if(c.kind==="punct"&&c.value==="["){let d=[];if(i(t[n],"]"))return n++,d;for(;;){d.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return d}return r(`expected a value; found ${Qa(c)}`,c)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Qa(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 H("JSON source contains no records.");return l.forEach((c,d)=>{if(!(c instanceof Map))throw new H(`JSON record ${d+1} must be an object.`)}),l}var cT=new Set(["CHECK_BOX","MULTI_SELECT"]),QE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function bt(e,t,n){throw new H(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function pT(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function dT(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&bt(n,t.code,"boolean is not accepted."),pT(e)){t.fieldType==="NUMBER"&&bt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&bt(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)||bt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&bt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||bt(n,t.code,"unsupported value type."),!cT.has(t.fieldType)&&!QE.has(t.fieldType)&&bt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&bt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&bt(n,t.code,"array elements must not contain duplicates."),QE.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Hu(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new H("JSON source is UTF-8 only.");let i=Za(t.bytes);if(i.length>r)throw new H(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new H("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,c)=>{for(let p of l.keys())o.has(p)||bt(c+1,p,"unknown key (not declared in INTO).");let d={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),d[p.code]=dT(l.get(p.code),p,c+1));a.push(d),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 Yu(e,t,n,r,i,o){let a=Xa(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new H(`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 H("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,g)=>[y,g]));for(let y of r)if(!l.has(y))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let c=new Map(i.map(y=>[y.code,y])),d=new Set(r);if(o&&d.has(o))throw new H("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],p=[],f=y=>a.rows.filter(g=>g[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,g]of a.columns.entries()){if(d.has(g)||g===o)continue;let T=c.get(g);if(T)u.push({column:g,reason:R(T),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)p.push({column:g,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new H(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${g}".`)}for(let y of r){let g=c.get(y);if(!g)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(g.inSubtable||g.writable===!1||g.fieldType==="FILE"||g.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${g.fieldType}).`)}let E=[];return{rows:a.rows.map(y=>{let g=[],T={};for(let h of r){let I=y[l.get(h)];try{T[h]=qE(I,c.get(h)?.fieldType,{cliKintone:!0})}catch(N){if(!(N instanceof Oi))throw N;T[h]=I,g.push({field:h,code:N.code,message:N.message})}}return E.push(g),T}),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:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((c,d)=>[c,l[d]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Li=(e,t,n)=>{throw new H(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function ZE(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new H("JSON source is UTF-8 only.");let o=Za(t.bytes);if(o.length>r)throw new H(`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 H("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,c)=>{let d=c+1;for(let R of l.keys())a.has(R)||Li(d,R,"unknown key (not declared in INTO).");let u=new Map,p=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 m=l.get(E);if(R.kind==="FIELD"){m instanceof Map&&Li(d,E,"object is not accepted for a top-level field."),u.set(E,m);continue}Array.isArray(m)||Li(d,E,"subtable value must be an array."),f.add(E);let y=new Set(R.children),g=m.map((T,h)=>{T instanceof Map||Li(d,E,`childRow=${h+1} must be an object.`);let I=T;for(let N of I.keys())y.has(N)||Li(d,N,`unknown child key in subtable ${E} at childRow=${h+1}.`);if(s++,s>i)throw new H(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:h+1,values:I}});p.set(E,g)}return{rowNumber:d,top:u,subtables:p,replacementTables:f}})}}function eR(e,t,n,r,i,o){let a=Xa(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new H('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((p,f)=>[p,f]));if(o&&!s.has(o))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(p=>p.kind==="FIELD"),c=n.filter(p=>p.kind==="SUBTABLE");for(let p of l)if(!s.has(p.field))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of c){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new H(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new H(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let d=[],u;if(a.rows.forEach((p,f)=>{let R=f+2,E=p[0];if(E!==""&&E!=="*")throw new H(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(E)} at source row ${R}.`);if(E==="*"){if(d.length>=i)throw new H(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:d.length+1,markerRowNumber:R,top:new Map(l.map(m=>[m.field,p[s.get(m.field)]])),subtables:new Map(c.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},d.push(u)}else if(u){for(let m of l){let y=p[s.get(m.field)];if(y!==""&&y!==u.top.get(m.field))throw new H(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${R}.`)}if(o){let m=p[s.get(o)];if(m!==""&&m!==u.recordNumberSourceValue)throw new H(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new H(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let m of c){let y=p[s.get(m.rowIdSourceHeader)],g=new Map(m.children.map(h=>[h,p[s.get(h)]]));if(y===""&&[...g.values()].every(h=>h===""))continue;let T=u.subtables.get(m.subtableCode);T.push({childRowNumber:T.length+1,sourceRowNumber:R,...y?{rowId:y}:{},values:g})}}),d.length===0)throw new H("CSV has no parent rows.");return{records:d}}var fT=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),ET=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function qu(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function iR(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)tR(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let R=a.get(p.subtableCode)??new Map;for(let E of p.children)tR(E,R.get(E),p.subtableCode)}let c=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),d=e.records.map(p=>RT(p,s,l,o,a,r,i,c)),u=d.flatMap(p=>[...p.errors]);return{parents:d,errors:u,invalidParentRows:new Set(d.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:c}}function RT(e,t,n,r,i,o,a,s){let l=[],c={};for(let p of t)e.top.has(p.field)&&zu(e.top.get(p.field),r.get(p.field),o,c,p.field,l,ju(e,a,p.field));let d={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||nR(p,o,d,l,ju(e,a,p.code));let u=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let R=[];for(let E of e.subtables.get(p.subtableCode)){f.childRows++;let m=l.length,y={},g=i.get(p.subtableCode);for(let T of p.children){let h=g.get(T),I=ju(e,a,T,p.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(T)?zu(E.values.get(T),h,o,y,T,l,I):nR(h,o,y,l,I)}l.length===m?(f.validChildRows++,R.push(y)):f.invalidChildRows++}u.set(p.subtableCode,R)}return{parentRow:e.rowNumber,valid:l.length===0,top:c,subtables:u,replacementTables:e.replacementTables,errors:l}}function tR(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&&ET.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function nR(e,t,n,r,i){let o=hn(e.defaultValue)?"":e.defaultValue;zu(o,e,t,n,e.code,r,i,!hn(e.defaultValue))}function zu(e,t,n,r,i,o,a,s=!1){let l=mT(e),c=$e(l,t,n);c.ok?r[i]={value:yT(l,t)?l:c.value}:o.push({...a,code:c.code,message:s?`\u65E2\u5B9A\u5024: ${c.message}`:c.message})}function mT(e){return rR(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:rR(t)?t.lexeme:t):e}function rR(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function yT(e,t){return fT.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function ju(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 Ju=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Xu(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":gT(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 gT(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 Qu(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 oR(e,t){return Qu(e,t,"DROP")}function aR(e){for(let t of e.records)for(let[n,r]of t.subtables)for(let i of r)if(i.rowId!==void 0||i.values.has("_rid")||i.values.has("id"))throw new Error(`ArgumentError: JSON IMPORT subtable ${n} does not accept _rid/id; rows are always newly numbered.`)}function sR(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,c])=>{let d=a?.record[l]?.value,u=Array.isArray(d)?d.length:0;return{table:l,existingRows:u,inputRows:c.length,addRows:c.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function hT(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function lR(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 uR(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],c=l===void 0?void 0:r.get(l),d=[...o.errors];if(!c||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:d};let u=new Map,p=[];for(let f of o.replacementTables){let R=hT(c.record,f),E=new Set(R.map(N=>N.id).filter(N=>!!N)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],g=0,T=0,h=0,I=m.map((N,D)=>{let P=y[D]??{};return N.rowId&&E.has(N.rowId)?(g++,{rowId:N.rowId,record:P}):(N.rowId&&((i.get(N.rowId)??[]).some(U=>U.parentId!==l||U.table!==f)&&d.push({operation:"UPDATE",parentRow:o.parentRow,field:N.rowId,subtable:f,subrow:N.childRowNumber,sourceRow:N.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${N.rowId}`,sourceValues:N.values}),h++),T++,{record:P})});u.set(f,I),p.push({table:f,existingRows:R.length,inputRows:m.length,updateRows:g,addRows:T,deleteRows:R.length-g,rowIdNotFound:h})}return{parentRow:o.parentRow,targetId:l,...c.revision===void 0?{}:{revision:c.revision},valid:d.length===0,top:o.top,subtables:u,tables:p,errors:d}})}var Zu="#__import_source";function cR(e){return{...e,from:{appId:0,alias:null,cteName:Zu}}}function AT(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function ec(e,t){let n=e.map(AT),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 ST="\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",Dn=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"}},ue=new WeakMap;function kR(e){return ue.get(e)}var kn=new WeakMap,Sr=new WeakMap,uc=Symbol("statementEvaluationContext"),xR=Symbol("nativeUpsertExecution"),TT=Symbol("nativeUpsertExplainCapability");function FR(e){return e[xR]===!0}function IT(e){return xR in e}function wT(e){return e[TT]}function KR(e){return e[uc]?e:{...e,[uc]:{statementInstant:new Date}}}function se(e){return e[uc]??{}}var pR=new WeakMap,bT=1,NT=1;function GR(e,t){if(t)return t;let n=pR.get(e);return n||(n=`client:${bT++}`,pR.set(e,n)),n}function Mc(e){return`${e}\0inv:${NT++}`}async function kc(e,t,n={}){St(n);let r=Date.now(),i=Mc(GR(t,n.cacheContext));try{let o=Dw(e,n.enableImport===!0),a=$R(),s=VR(t,a),l={aborted:!1},c=Fc(s,l,!PT(o)||du(o)),d=await cc(o,c,n,i);a.elapsedMs=Date.now()-r;let u={...WR(d,l),metrics:a};if(d.type==="SELECT"){let p=ue.get(d);p&&ue.set(u,p)}return u}finally{tp(i)}}function $R(){return{getCalls:0,postCalls:0,putCalls:0,nativeUpsertCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,limitReached:!1,limitReachedApps:[],elapsedMs:0}}var BR=Symbol("limitMetricsSink");function xc(e,t){let n=e[BR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function VR(e,t){let n={[BR]:t,getRecords:async r=>{t.getCalls+=1;let i=await e.getRecords(r);return t.fetchedRows+=i.records.length,i},openCursor:async r=>{t.cursorCreateCalls+=1;let i;try{i=await e.openCursor(r)}catch(s){throw s instanceof Error&&s.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),s}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let o=!1,a=()=>{o||(o=!0,t.cursorActiveCurrent-=1)};return{totalCount:i.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let s=await i.nextPage();return t.cursorRecordsScanned+=s.records.length,s.next||a(),s},close:async()=>{o||(t.cursorDeleteCalls+=1);try{await i.close(),a()}catch(s){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,s}}}},postRecords:r=>(t.postCalls+=1,e.postRecords(r)),putRecords:r=>(t.putCalls+=1,e.putRecords(r)),deleteRecords:r=>(t.deleteCalls+=1,e.deleteRecords(r)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:r=>(t.fieldCalls+=1,e.getFields(r)),getNumberPrecision:r=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(r)),getProcessStatuses:r=>(t.processStatusCalls+=1,e.getProcessStatuses(r))};return Zc(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var dR=Symbol("searchAbortFailClosed");function Fc(e,t,n){return n&&e[dR]?e:{...e,...n?{[dR]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new Dn;return i}}}function CT(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 PT(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function WR(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(ST),{...e,warnings:[...n]}}async function fR(e,t,n){let r=await Qi(e,t,n);return Vu(r),r}async function Qi(e,t,n){return jE(e,{select:async r=>{let{resolver:i}=await On(r,t,n);return Se(r.where,i)},dml:r=>rm(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await On(r,t,n);return Wu(r,i)},joinServerFunctionPlan:async r=>{await On(r,t,n);let i=await Ts(r,t,n),o=Ss(r,i);return o===null?null:(dr(o.joinPlan)&&Hc.set(r,o),o.joinPlan)}})}async function cc(e,t,n,r){n=KR(n);let i=await Qi(e,t,r);e.type!=="EXPLAIN"&&Vu(i);let o=dc(e);if(o!==null&&!uw(e))throw new Error(is(o,"in a batch"));if(Yn("phase15b",e),To("phase15b",e),it(e),e.type!=="EXPLAIN"&&await WT(e,t,r),e.type==="IMPORT")return Pm(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 Pc(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 rp(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 OT(e,t,n,r);case"SELECT":return Gt(yc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Rm(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Jc(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return rw(e,t,n,r);case"INSERT_SELECT":return sp(e,t,n,r);case"UPSERT":return Iw(e,t,n,r);case"UPSERT_SELECT":return pp(e,t,n,r);case"UPDATE":return Pc(e,t,n,r);case"DELETE":return Sw(e,t,n,r);case"REORDER":return Ow(e,t,n,r);case"SHOW_APPS":return Dm(t);case"DESCRIBE":return vm(e,t,r);case"EXPLAIN":return Gw(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ze(n.dmlMaxRows,"dmlMaxRows",Bt):Bt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe):Pe,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,n.resolveMetadata!==!1,IT(n)?{surface:"CLI",enableNativeUpsert:FR(n),clientHasNativeUpsert:wT(n)??Zc(t)}:{surface:"DOCUMENT_ONLY"});case"CREATE_TEMP_TABLE":throw new Error("ArgumentError: CREATE TEMP TABLE requires a batch (temp tables are batch-scoped).");case"DROP_TEMP_TABLE":throw new Error("ArgumentError: DROP TEMP TABLE requires a batch (temp tables are batch-scoped).");case"SET_VARIABLE":throw new Error("ArgumentError: SET variable requires a batch.");case"DECLARE_VARIABLE":throw new Error("ArgumentError: DECLARE variable requires a batch.");case"ASSERT":return qR(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var Kc=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Gc=["$id","$err_subtable","$err_field","$err_code","$err_count"];function $c(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 HR(e=!1){let t=e?Gc:Kc;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 OT(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return YR(e,t,n,r)}async function YR(e,t,n,r){let i=await Q(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=ou(e,i),l=new Set(s.flatMap(O=>ru(O.field))),c={present:nu.filter(O=>l.has(O)),absent:nu.filter(O=>!l.has(O))},d=e.checkGroups??[],u=or(d);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw Ce(`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 p=new Map([...o].map(([O,F])=>[O,F.fieldType]));p.set("$id","RECORD_NUMBER"),Mn(e,p);let f=$c(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 Ct(e.appId,t,r):void 0,m=O=>O.field==="$id"?ne({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?ne(o.get(O.field)):void 0),y=Se(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(y)}).`);let g=new Map([...o].map(([O,F])=>[O,F.fieldType])),T=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:El(e.where,{allowUnqualifiedFields:!0,fieldTypes:g,fieldOptions:T,allowKlike:!1}),I=h===null?"":j(h),D=(await xe(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:xt(O,null)})).filter(O=>e.where===null||le(e.where,O.flat,F=>p.get(F.field),void 0,void 0,se(n))),P=[],M=new Map,U=new Map,C=new Set,v=0,b=O=>{if(C.add(O.id),v+=1,e.summary){let G=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),x=U.get(G);x?x.$err_count=String(Number(x.$err_count)+1):U.set(G,{$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]),V=M.get(F);V?(V.$err_count=String(Number(V.$err_count)+1),O.subrow!==void 0&&(V.$err_subrow=`${V.$err_subrow},${O.subrow}`,V.$err_subrow_id=`${V.$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"})},_=s.filter(O=>!O.subtableCode),A=new Map;for(let O of s){if(!O.subtableCode)continue;let F=A.get(O.subtableCode)??[];F.push(O),A.set(O.subtableCode,F)}for(let O of D){for(let F of _){let V=O.record[F.field.code]?.value,G=$e(V,F.field,E);G.ok||b({id:O.id,field:F.field.code,code:G.code,message:G.message,value:li(V,F.field.fieldType)})}for(let[F,V]of A){let G=O.record[F]?.value;if(Array.isArray(G))for(let x=0;x<G.length;x++){let K=G[x];for(let Y of V){let $=K.value?.[Y.field.code]?.value,L=$e($,Y.field,E);if(!L.ok){let W=Ta(F,x,K);b({id:O.id,field:Y.field.code,code:L.code,message:L.message,value:li($,Y.field.fieldType),...W})}}}}for(let F of ua(d,O.flat,V=>p.get(V.field)))b({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)P.push(...U.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 k={type:"SELECT",columns:[...e.summary?Gc:Kc],rows:P,rowCount:P.length,validateStats:{errorRecords:C.size,errorCount:v,constraintMetadata:c}};return ue.set(k,HR(e.summary===!0)),k}var Qe=1e4;function Nt(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])||!LT(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 LT(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||!Mo(i.semantics,r.semantics))return!1}return!0}var mr=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function jR(e,t,n={}){let r=Nl(n.asOf??new Date,n.timezone);St(n);let{statements:i,meta:o}=ku(e,{import:n.enableImport===!0}),a=o.dialect===1&&i.some(Fu)?[GE]:[],s=Ol(i);if(i.forEach(m=>To("phase15b",m)),n.allowApplyMutation!==!0&&i.some(m=>qs(m)||m.type==="UPSERT"&&_T(m)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let l=pu(i,n.variables),c=zR(i,l),d={...n,variables:l};if(n.continueOnError&&s.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let m of s.statements){if(!m.isDml||m.tempTablesReferenced.length===0||m.statementType==="INSERT_SELECT"||m.statementType==="UPSERT_SELECT")continue;let y=i[m.index];if(!(y?.type==="UPDATE"&&y.from?.cteName!=null))throw new oe(`ArgumentError: temp table references in ${m.statementType} are not supported yet.`,m.index)}let u=$R(),p=VR(t,u),f=Date.now(),R=n.timeoutMs!=null?f+n.timeoutMs:null,E=Mc(GR(t,n.cacheContext));try{let m=new Map,y=new Map;for(let[I,N]of Object.entries(r.values))y.set(Yr(I),{type:"string",value:N});let g=[],T=new Set,h=null;for(let I=0;I<i.length;I++){let N=s.statements[I],D={index:I,type:N.statementType};if(h){g.push({...D,status:"skipped",skippedReason:h}),h!=="exit"&&T.add(I);continue}let P=N.dependsOn.find(M=>T.has(M));if(P!==void 0){let M=s.statements[P].tempTablesCreated[0]??`statement ${P}`;g.push({...D,status:"skipped",skippedReason:`dependency: ${M}`}),T.add(I);continue}if(R!==null&&Date.now()>=R){g.push({...D,status:"skipped",skippedReason:"timeout"}),T.add(I),h="timeout";continue}try{let M=R!==null?R-Date.now():null,U=d.confirm,C=U?{...d,confirm:(V,G,x)=>U(V,G,{statementIndex:I,statementCount:i.length,statementType:N.statementType,targetAppId:N.targetAppId,...x?.importDetail?{importDetail:x.importDetail}:{},...x?.applyDetail?{applyDetail:x.applyDetail}:{},...x?.applyDiagnostic?{applyDiagnostic:x.applyDiagnostic}:{}})}:d,v={aborted:!1},b=Fc(p,v,N.statementType!=="SELECT"&&N.statementType!=="UNION"&&N.statementType!=="WITH"||du(i[I])),_=CT(b),A=KR(C),w={stmt:i[I],info:N,client:_.client,options:A,cacheContext:E,tempTables:m,variables:y,relativeDateVariables:c,clock:se(A),dialect:o.dialect},k=await UT(DT(w),M,_.closeActive);k.result&&(k.result=WR(k.result,v),a.length>0&&Fu(i[I])&&k.result.type==="SELECT"&&(k.result=As(k.result,a)));let{exitTriggered:O,...F}=k;g.push({...D,status:"success",...F}),O&&(h="exit")}catch(M){g.push({...D,status:"error",error:MT(M),...M instanceof ji?{result:M.diagnostic}:{}}),T.add(I),M instanceof mr?h="timeout":M instanceof $i?h="assertion":N.statementType==="SET_VARIABLE"||N.statementType==="DECLARE_VARIABLE"?h="fail-fast":n.continueOnError||(h="fail-fast")}}return u.elapsedMs=Date.now()-f,{ok:g.every(I=>I.status==="success"||I.skippedReason==="exit"),statementCount:i.length,statements:g,analysis:s,metrics:u,...a.length>0?{warnings:a}:{}}}finally{tp(E)}}function _T(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 DT(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:c,dialect:d}=e;if(t.type==="SET_VARIABLE"){let p=ds(t,s);if(it(p),await fR(p,r,o),p.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:p.expr.elements.map(f=>({type:"string",value:f.value}))});else if(p.expr.type==="SCALAR_SUBQUERY")try{let f=await QR(p.expr.query,r,i,o,a),R=await XR(p.expr.query,r,o,a),E=R?Number(f):Number.NaN;s.set(t.name,R&&Number.isFinite(E)?{type:"number",value:E,raw:f}:{type:"string",value:f})}catch(f){throw f instanceof Pn?new Error(`ArgumentError: ${f.message}`):f}else s.set(t.name,ER(p.expr,c));return{}}if(t.type==="DECLARE_VARIABLE"){if(t.annotation==="RELATIVE_DATE")return s.set(t.name,{type:"relative-date",value:l.get(t.name)}),{};let p=i.variables??{};if(Object.prototype.hasOwnProperty.call(p,t.name))s.set(t.name,{type:"string",value:p[t.name]});else{let f=ER(t.default,c);s.set(t.name,{type:"string",value:f.type==="number"?f.raw??String(f.value):f.value})}return{}}let u=ds(t,s);if(Yn("phase15b",u),To("phase15b",u),it(u),d===1&&(u.type==="INSERT"||u.type==="UPDATE"||u.type==="DELETE")&&u.subtableCode)throw new Error("ArgumentError: dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(d===1&&(u.type==="UPSERT"||u.type==="UPSERT_SELECT")){let p=xu(u)[0];if(p)throw new Error(`ArgumentError: ${p.message}`);let f=await Q(u.appId,r,o),R=xu(u,f)[0];if(R)throw new Error(`ArgumentError: ${R.message}`)}if(await fR(u,r,o),u.type==="VALIDATE"){let p=await YR(u,r,{...i,onLimitReached:"error"},o);return u.errorTable&&Nt(a,u.errorTable,p.columns,p.rows,i.tempTableMaxRows??Qe,ue.get(p)??HR(u.summary===!0)),{result:p}}if(u.type==="IMPORT")return{result:await Pm(u,r,i,o,a)};if("validateOnly"in u&&u.validateOnly===!0){let p=await rp(u,r,{...i,onLimitReached:"error"},o,a,n.index+1);return u.validationErrorTable&&Nt(a,u.validationErrorTable,p.columns,p.errors,i.tempTableMaxRows??Qe,kn.get(p)??new Map),{result:p}}if("onErrorSkip"in u&&u.onErrorSkip===!0)return{result:await Nc(u,r,{...i,onLimitReached:"error"},o,a,n.index+1)};if(u.type==="CREATE_TEMP_TABLE"){let p={...i,maxRecords:i.tempTableMaxRows??Qe,onLimitReached:"error"},f=await vT(u.query,r,p,o,a);return a.set(u.name,{rows:f.rows,columns:f.columns,columnMeta:ue.get(f)}),{tempTable:u.name,rowCount:f.rows.length}}if(t.type==="DROP_TEMP_TABLE")return a.delete(t.name),{tempTable:t.name};if(t.type==="EXPLAIN"){let p=u;Uc.set(p,a);try{return{result:await cc(p,r,i,o)}}finally{Uc.delete(p)}}if(u.type==="ASSERT"){let p=await qR(u,r,i,o,a);return p.warning!==void 0?{result:p}:{}}if(u.type==="EXIT"){let p=await GT(u,r,i,o,a);return{result:p,...p.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(u.type==="SELECT"||u.type==="UNION")return{result:await dt(u,r,i,a,o,i.captureColumnMeta===!0)};if(u.type==="WITH")return{result:await Jc(u,r,i,o,a)};if(u.type==="INSERT_SELECT")return{result:await sp(u,r,i,o,a)};if(u.type==="UPSERT_SELECT")return{result:await pp(u,r,i,o,a)};if(u.type==="UPDATE"&&u.from?.cteName!=null)return{result:await Pc(u,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}return{result:await cc(u,r,i,o)}}async function vT(e,t,n,r,i){return e.type==="WITH"?Jc(e,t,n,r,i,!0):dt(e,t,n,i,r,!0)}async function UT(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new mr;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 mr)})()},t)})])}catch(a){throw a instanceof mr&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function MT(e){let t;if(e instanceof At)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??tc(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:kT(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:tc(r),message:r}}else{let n=String(e);t={code:tc(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function tc(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function kT(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function xT(e,t=!1,n=!1){let r=new tn(e).tokenize();return new nn(r,{import:t,dialect1:n}).parseStatements()}function FT(e,t){try{let n=xT(`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 zR(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)?FT(r.name,t[r.name]):r.default);return n}function ER(e,t={}){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:z(e)};case"KINTONE_FUNC":return{type:"string",value:yf(e.name,t)};case"STRING_FUNC":return{type:"string",value:ge(e,{},void 0,void 0,t)};case"ARITH":{let n=ye(e,{},t);if(!Number.isFinite(n))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:n,raw:String(n)}}case"VARIABLE":throw new Error(`InternalError: unresolved variable @${e.name} reached scalar evaluation.`)}}function ds(e,t){return pc(e,t,!1)}function is(e,t){return rr(e)===null?`ParseError: variable @${e} is not defined ${t}.`:"ParseError: @NOW() \u306A\u3069\u306E as-of \u95A2\u6570\u306F\u57FA\u6E96\u6642\u523B\u304C\u521D\u671F\u5316\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002"}function pc(e,t,n){if(Array.isArray(e))return e.map(r=>pc(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(is(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} can only be used as IN @${r.name}.`);if(a.type==="relative-date")return a.value;if(n&&a.type!=="number"&&!(a.type==="string"&&a.placeholder===!0))throw new Error(`ArgumentError: variable @${r.name} is not numeric and cannot be used in arithmetic.`);return n&&a.type==="string"&&a.placeholder===!0?{type:"NUMBER",value:0,raw:n==="AGG_ARITH"?`@${r.name}`:a.value}:a.type==="number"?{type:"NUMBER",value:a.value,raw:n==="AGG_ARITH"?`@${r.name}`:a.raw??String(a.value)}:{type:"STRING",value:a.value,fromVariable:!0}}if(r.type==="VARIABLE_COL"&&typeof r.name=="string"&&(typeof r.alias=="string"||r.alias===null)){let a=t.get(r.name);if(a===void 0)throw new Error(is(r.name,"in this batch"));if(a.type==="array")throw new Error(`ParseError: array variable @${r.name} cannot be used as a SELECT column.`);if(a.type==="relative-date")throw new Error(`InternalError: RELATIVE_DATE variable @${r.name} reached a SELECT column.`);let s=typeof r.aliasDisplay=="string"?{aliasDisplay:r.aliasDisplay}:{};return a.type==="number"?{type:"ARITH_COL",expr:{type:"NUMBER",value:a.value,raw:a.raw??String(a.value)},alias:r.alias,...s}:{type:"LITERAL_COL",value:a.value,alias:r.alias,...s}}if(r.type==="VARIABLE_IN_LIST")return r;let i=Object.fromEntries(Object.entries(r).map(([a,s])=>[a,pc(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(is(a.name,"in this batch"));if(s.type!=="array")throw new Error(`ParseError: scalar variable @${a.name} cannot be used as IN @${a.name}; use IN (@${a.name}) instead.`);if(s.elements.length===0)return{type:"BOOLEAN",value:i.op==="NOT_IN"};i.right={type:"IN_LIST",values:s.elements.map(l=>({type:"STRING",value:l.value}))}}}let o=KT(i);if(o.type==="SELECT"&&qe(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&qe(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 qe(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function KT(e){if(e.type==="NOT"&&qe(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&qe(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(qe(t,!1)||qe(n,!1))return{type:"BOOLEAN",value:!1};if(qe(t,!0))return n;if(qe(n,!0))return t}else if(e.op==="OR"){if(qe(t,!0)||qe(n,!0))return{type:"BOOLEAN",value:!0};if(qe(t,!1))return n;if(qe(n,!1))return t}}return e}function dc(e){if(Array.isArray(e)){for(let t of e){let n=dc(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=dc(n);if(r!==null)return r}}return null}var $i=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Pn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function qR(e,t,n,r,i){let o=await JR(e,t,n,r,i);if(!o.passed){if(e.warn===!0)return{type:"ASSERT",condition:e.text,passed:!1,warning:e.message??`assertion failed: ${e.text} (actual: ${o.actual}).`};let a=e.message!==void 0?` ${e.message}`:"";throw new $i(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function GT(e,t,n,r,i){let o=await JR(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function JR(e,t,n,r,i){let o=await es(e.left,t,n,r,i);if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await es(e.low,t,n,r,i),c=await es(e.high,t,n,r,i);return{passed:Dt(">=",o.value,l.value,nc(o,l))&&Dt("<=",o.value,c.value,nc(o,c)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await es(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string"):nc(o,a);return{passed:Dt(e.op,o.value,a.value,s),actual:o.value}}function nc(e,t){return B(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function es(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:z(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(fc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await QR(e.query,t,n,r,i),a=await XR(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof Pn?new $i(o.message):o}}}async function XR(e,t,n,r){let i=e.columns[0],o=i?.type==="ARITH_COL"||i?.type==="ARITH_AGG_COL"||i?.type==="WINDOW_COL"&&(i.windowKind===void 0||i.windowKind==="RANKING"||i.windowKind==="AGGREGATE"&&(i.aggFunc==="COUNT"||i.aggFunc==="SUM"||i.aggFunc==="AVG"))||i?.type==="AGGREGATE"&&(i.func==="COUNT"||i.func==="SUM"||i.func==="AVG"||i.func==="STDDEV_POP"||i.func==="STDDEV_SAMP"||i.func==="VAR_POP"||i.func==="VAR_SAMP"||i.func==="MEDIAN");if(i?.type==="AGGREGATE"&&i.func==="MODE"||i?.type==="WINDOW_COL"&&i.windowKind==="VALUE"||i?.type==="WINDOW_COL"&&i.windowKind==="AGGREGATE"&&(i.aggFunc==="MIN"||i.aggFunc==="MAX")){let a=(await Wi(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function QR(e,t,n,r,i){let{query:o,probed:a}=$T(e),s=await Fi(o,t,n,r,i);if(s.columns.length!==1)throw new Pn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Pn("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 Pn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function $T(e){return te(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 fc(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=fc(e.left),n=fc(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 Zi(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||Tt(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await Q(p,t,n);return[p,new Map(f.map(R=>[R.code,R]))]}))),l=new Set,c=p=>{if(Array.isArray(p)){p.forEach(c);return}if(p===null||typeof p!="object")return;let f=p;if(f.type==="SELECT")return;let R=String(f.op),E=f.right,m=["=","!=","<>"].includes(R)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(R)||m)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(c)};c(e.where),c(e.having);for(let p of e.columns)p.type==="CASE_COL"&&c(p.expr);let d=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let E=await np(p,t,n);E&&d.set(p,E)}));let u=(p,f,R)=>{if(f==="$id")return Qn(ne({fieldType:"__ID__"}),p.appId,"$id");if(R&&p.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let E=s.get(p.appId)?.get(Ee(p,f));if(!E)return;let m=E.semantics??ne(E),y=E.fieldType==="STATUS"&&d.has(p.appId)?{...m,optionOrder:d.get(p.appId)}:m;return Qn(y,p.appId,E.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let R=o.find(E=>ce(E)===p.tableAlias);return R?R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):u(R,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):u(e.from,p.field,!0);let f=o.flatMap(R=>{let E=R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(p.field)?.semantics:u(R,p.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(R=>as(R,p.field)!==void 0))return f.length>1?B("string"):void 0}}var ZR=new WeakMap;async function On(e,t,n,r,i=!1){let o=await Zi(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Ld(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&ZR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function BT(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function em(e){return BT(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function RR(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=Ue(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===ce(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=Ue(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function mR(e,t){return e!=="DIRECT"?"\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u3001ORDER BY \u306E\u5024\u306E\u7D44\u304C\u5165\u529B\u884C\u3092\u4E00\u610F\u306B\u8B58\u5225\u3059\u308B\u3068\u30AF\u30A8\u30EA\u69CB\u9020\u307E\u305F\u306F\u4FDD\u8A3C\u6E08\u307F\u306E\u30C7\u30FC\u30BF\u5236\u7D04\u304B\u3089\u78BA\u8A8D\u3067\u304D\u308B\u5834\u5408\u306B\u9650\u308A\u3001\u3053\u306E\u8B66\u544A\u306F\u7121\u8996\u3067\u304D\u307E\u3059\u3002\u5143\u306E\u96C6\u7D04\u30AD\u30FC\u3092\u3059\u3079\u3066 ORDER BY \u306B\u542B\u3080\u5F62\u3084\u3001JOIN \u5F8C\u3082\u540C\u3058\u7CFB\u5217\u5024\u304C\u5404\u30D1\u30FC\u30C6\u30A3\u30B7\u30E7\u30F3\u5185\u3067\u9AD8\u30051\u884C\u3068\u4FDD\u8A3C\u3067\u304D\u308B\u5F62\u304C\u8A72\u5F53\u3057\u307E\u3059\u3002\u751F\u6210\u5217\u3001\u518D\u5E30\u306E\u6DF1\u3055\u5217\u3001\u307E\u305F\u306F $id \u306B\u7531\u6765\u3059\u308B\u5217\u3067\u3042\u308B\u3068\u3044\u3046\u7406\u7531\u3060\u3051\u3067\u306F\u7121\u8996\u3067\u304D\u307E\u305B\u3093\u3002":t==="RANGE"?"ORDER BY \u306B\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u306A\u3069\u306E\u30BF\u30A4\u30D6\u30EC\u30FC\u30AF\u30AD\u30FC\u3092\u8DB3\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u7B49\u3092 ORDER BY \u306B\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}function tm(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"||RR(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`+mR(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||RR(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`+mR(n,"VALUE"));return i}function As(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=ue.get(e);return r&&ue.set(n,r),n}function Bc(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=>Tt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function nm(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(Ue(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=Un(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=Un(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=vn(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 Ln(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 fs(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function rm(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Tt(e.where)?await Q(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Se(null,()=>{}):Se(e.where,o=>{if(o.field==="$id")return ne({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?ne(a):void 0)})}async function yr(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await rm(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ae(`WHERE predicate cannot be represented by kintone REST (${Ln(r)})`)}async function Gt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l,c=new Set;if(await Vi(e,t,r,i),jT(e))return l=JT(e,n),o&&ue.set(l,await Wi(e,l.columns,t,r,i,a)),l;let{resolver:d}=await On(e,t,r,i,em(e)),u=tm(e,d,s),p=await gr(e,t,r,i);await Um(e,t,n,r,c,i);let f=dI(e,Se(e.where,d));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(f)}).`);let R=We(e),E,m;if(f.capability==="SUPERSET_PREFILTER"){let P=await Zi(e,t,r,i),M=Wu(e,P);M.eligible&&Bu(e,M)&&(E=M.plan)}if(E===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let P=null;try{P=j(e.where)}catch{P=null}m=Yo({select:e,selectMode:R,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:P,relativeFunctionNames:Ae(e.where)})??void 0,m&&(E=m.prefilterPlan)}let y=f.capability==="EXACT_PUSHDOWN"?R:"FULL_SCAN",g=await Yi(e,t,r,i),T=fs(e)?(e.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:e,staticMode:y,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:g.semantics,maxRecords:n.maxRecords??1e4,hasKlike:be(e.where)}):null,h=await QT(e,T?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":y,t,r),I=Vc(e,n,T),D=m!==void 0&&(R==="FULL_SCAN"||T?.kind==="CANONICAL_LOCAL")?Fc(t,{aborted:!1},!0):t;try{y==="SIMPLE"?l=await XT(e,D,I.effectiveOptions,r,T,g):l=await RI(e,D,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&E===void 0,g,E,p)}catch(P){om(I,P)}return o&&ue.set(l,await Wi(e,l.columns,t,r,i,a)),As(l,[...c,...u,...h])}function Ec(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 im(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 gr(e,t,n,r){let i=te(e);if(!Jn(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 p=await Q(u.appId,t,n);if(!u.subtableCode){for(let E of p){if(E.inSubtable!==!0||!E.subtableCode)continue;let m=s.get(E.code)??[];m.push({appId:u.appId,owner:E.subtableCode}),s.set(E.code,im(m))}return{kind:"APP",fieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=p.filter(E=>E.inSubtable&&E.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:p.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}})),c=sd(e,(u,p)=>l[p]),d=pd(o,e.columns,c);return VT(e,o,d,s),vr(e,Rd(e,d,c)),d}function VT(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let c=t[l],d=c?.type==="FIELD_NAME"?c.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,p=s.name.indexOf("."),f=p>=0?s.name.slice(p+1):s.name,R=r.get(s.name)??r.get(f)??[];throw R.length>0?new Error(Ec(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 ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var Bi=new WeakMap;async function WT(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 Vi(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function HT(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let p=await Q(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),s=(u,p)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(p);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,p)=>{if(p==="$id")return"$id";let f=Ee(u,p);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},c=(u,p)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?f.columns.includes(p):!0},d=(u,p,f,R)=>{let E=i.filter(g=>g.cteName===null&&l(g,f.field)!==null).length,m=i.some(g=>c(g,f.field)),y=ce(u);return{canonicalId:`source:${p}:APP${u.appId}:${R}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!m?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let m=i.findIndex(T=>ce(T)===u.tableAlias);if(m<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[m];if(y.cteName!==null)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let g=l(y,u.field);if(g===null){let T=s(y,Ee(y,u.field));throw T!==null&&T!==""?new Error(Ec(u.field,[{appId:y.appId,owner:T}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${y.appId}.`)}return d(y,m,u,g)}let p=i.flatMap((m,y)=>{if(m.cteName!==null)return[];let g=l(m,u.field);return g===null?[]:[{table:m,tableIndex:y,code:g}]}),f=i.filter(m=>c(m,u.field));if(p.length+f.length>1)throw new Error(`ArgumentError: field ${u.field} is ambiguous across multiple sources.`);if(p.length===1&&f.length===0){let m=p[0];return d(m.table,m.tableIndex,u,m.code)}if(f.length===1)throw new Error(`ArgumentError: field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let R=i.flatMap(m=>{if(m.cteName!==null)return[];let y=s(m,Ee(m,u.field));return y===null||y===""?[]:[{appId:m.appId,owner:y}]}),E=im(R);throw E.length>0?new Error(Ec(u.field,E)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function Vi(e,t,n,r){Bi.delete(e);let i=te(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await HT(e,t,n,r),c=gd(e,l,yd);c&&Bi.set(e,c);return}if(!Jn(e))return;if(i.type==="NONE"){Co(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await gr(e,t,n,r)}function YT(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 Vc(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Ht({...e,orderBy:[]}):Ht(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function om(e,t){throw e.reasons.size>0&&t instanceof Ke&&!t.completeInputWrapped?new Ke(YT(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Rc(e,t){try{return await t()}catch(n){om(e,n)}}function pt(e){return e?.type==="BOOLEAN"&&e.value===!1}function jT(e){return e.from.appId===0&&e.from.cteName===Le}function Es(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"?Es(e.left)||Es(e.right):e.type==="STRING_FUNC"?Wc(e):!1}function zT(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:vi(e)}function vi(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Wc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?vi(e.left)||vi(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"?Es(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:vi(n))):!1}function Wc(e){return e.args.some(t=>zT(t))}function qT(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(Es(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Wc(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(vi(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 JT(e,t){if(e.joins.length>0||e.where||te(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.");qT(e);let n=Lu([{}],e.columns,void 0,void 0,void 0,void 0,se(t)),{rows:r,columns:i}=wn(n,e.columns,void 0,void 0,void 0,void 0,void 0,se(t)),o=Va(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function XT(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?um(e):e,s=Do(a),l=i?.kind==="CANONICAL_LOCAL"?Rn(e,e.from):s.fields,c=await Yc(e,t,r),d=zc(e,c),u=e.columns.some(P=>P.type==="CASE_COL")?await Zi(e,t,r,void 0,Bc(e)):void 0,p=n.maxRecords??1e4,f=new Set,R=n.onLimitReached??"error",E=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&y!==null&&y<=p&&!be(e.where)?y:void 0,T;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)T=[];else if(i?.kind==="KORDER_CURSOR"){let P=await RE({client:t,app:s.app,fields:s.fields,query:Su(e),offset:e.offset??0,limit:e.limit});T=P.records,P.cleanupWarning&&f.add(P.cleanupWarning)}else if(m)T=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let P=e.where?j(e.where):"";T=await xe(t.getRecords,s.app,P,l,{parallel:E,maxRecords:p,stopAfter:g,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`),xc(t,e.from.appId)}})}let h=T.map(P=>xt(P,null));m||(h=Pu(h,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Ou(e.columns,void 0,d.row,u,se(n)),se(n)),h=Va(h,e.limit,e.offset));let{rows:I,columns:N}=wn(h,e.columns,void 0,d.row,void 0,u,void 0,se(n)),D=await Xc(e,I,N,t,r);return{type:"SELECT",rows:I,columns:D,rowCount:I.length,warnings:[...f]}}async function QT(e,t,n,r){let i=[],o=new Map,a=(c,d)=>{if(d.length===0)return;let u=o.get(c);u||(u=new Set,o.set(c,u));for(let p of d)u.add(p)},s=new Map,l=(c,d)=>{let u=s.get(c);u||(u=new Set,s.set(c,u));for(let p of d)u.add(p)};if(t==="SIMPLE"){let c=Do(e);a(c.app,c.fields),e.from.subtableCode||l(c.app,c.fields)}else{let c=[e.from,...e.joins.map(d=>d.table)].filter(d=>d.cteName===null);for(let d of c){let u=Rn(e,d);a(d.appId,u),d.subtableCode||l(d.appId,u)}}for(let[c,d]of o.entries()){let u=[...d].filter(m=>!el(m));if(u.length===0)continue;let p=await Q(c,n,r);if(p.length===0)continue;let f=new Set(p.map(m=>m.code)),R=u.filter(m=>!f.has(m));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (APP${c})`);let E=s.get(c);if(E){let m=p.filter(y=>y.inSubtable===!0&&E.has(y.code));for(let y of m){let g=y.subtableCode??"",T=g?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${g}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${T}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${c} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(g?`APP${c}$${g} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function yR(e){return e.cteName??`APP${e.appId}`}function ZT(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function eI(e,t){return el(t)||e.validCodes.has(t)}function rc(e,t){return e.table.cteName!==null?e.validCodes.has(t):eI(e,t)}function tI(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 nI(e,t,n,r){let i=[e.from,...e.joins.map(d=>d.table)],o=new Map,a=new Set;for(let d of i){let u=ce(d);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let d of i){if(d.cteName===null||d.cteName===Le)continue;let u=n.get(d.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${d.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${d.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 ${d.cteName}.`);o.set(d,u)}let s=new Map;await Promise.all(i.map(async d=>{let u=o.get(d);if(u){s.set(d,{table:d,label:yR(d),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(d.cteName===Le)return;let p=await Q(d.appId,t,r);s.set(d,{table:d,label:yR(d),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let d of s.values())for(let u of ZT(d.table))l.set(u,d);for(let d of e.joins)if(d.type!=="CROSS")for(let u of[d.on.left,d.on.right]){if(!u.tableAlias)continue;let p=l.get(u.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!rc(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let c=wd(e);for(let[d,u]of c.bySource){let p=s.get(d);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...u].filter(R=>!rc(p,R));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let d of c.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>rc(f,d))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${d} (${p})`)}}async function os(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await os(e.left,t,n,r,i),await os(e.right,t,n,r,i);return}await nI(e,t,n,r);for(let o of tI(e))await os(o,t,n,r,i)}}function am(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 Ui(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"?Ui(e.left)||Ui(e.right):e.type==="GROUP"||e.type==="NOT"?Ui(e.expr):!1}var Hc=new WeakMap;function Ss(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=uE(e.where,r),o=cE(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,pr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,c=a.get(l)??null,d=new Map(a);d.delete(l);let u=new Map(o.items.map(f=>[f.targetAlias,f.relation])),p=u.get(l)??null;return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:c,mainRelation:p,joinConditions:d,joinRelations:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Ts(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,am(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,d]=await Promise.all([Me(s,t,n),vI(s,t,n)]),u=rI(l).filter(p=>c.get(p)==="STATUS");if(u.length>0){let p=await bs(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(R=>R.name));for(let R of u)d.set(R,f)}}return[s,c,d]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function rI(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 Kt(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"&&Rs(e.left.expr,t),e.right.type==="CASE_VALUE"&&Rs(e.right.expr,t);return;case"LOGICAL":Kt(e.left,t),Kt(e.right,t);return;case"NOT":case"GROUP":Kt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Rs(e,t){for(let n of e.branches)Kt(n.condition,t)}function iI(e){let t=[];Kt(e.where,t),Kt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Rs(n.expr,t);return t}function ce(e){return e.alias??e.cteName}function sm(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>ce(n)===t)}function Is(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Yc(e,t,n){let r=iI(e);if(r.length===0)return new Map;let i=new Set,o=Is(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=sm(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 Me(s,t,n)]));return new Map(a)}function Ue(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 jc(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Nn(t,n)}function Nn(e,t){if(e.type==="FIELD_REF"){t.push(Ue(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Nn(e.left,t),Nn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Nn(e.left,t),Nn(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"&&Nn(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"?hr(n,t):n.type!=="ARRAY"&&Nn(n,t)}function hr(e,t){if(e.type==="AGG_REF"){jc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(hr(e.left,t),hr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function mc(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")hr(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;Mi(n,t)}}function Mi(e,t){if(e.type==="STRING_FUNC"){mc(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Mi(e.left,t),Mi(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"?mc(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?hr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Mi(r,t)}}function oI(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;jc(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function aI(e){let t=[];for(let n of e)n.type==="AGGREGATE"?jc(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?hr(n.expr,t):n.type==="STRFUNC_COL"?mc(n.expr,t):n.type==="SCALAR_VALUE_COL"?Mi(n.expr,t):n.type==="CASE_COL"&&oI(n.expr,t);return t}var sI=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function lI(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":sI.has(e.fieldType)?"string":void 0}async function lm(e,t,n,r){let i=aI(e.columns);if(i.length===0)return;let o=new Set,a=Is(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=sm(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 Q(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(m=>R.get(m)?.fieldType==="STATUS"))return;let E=await np(f,t,n);E&&l.set(f,E)}));let d=[e.from,...e.joins.map(f=>f.table)],u=(f,R)=>{let E=f.semantics??ne(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 m=d.find(y=>ce(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");R=s.get(m.appId)?.get(Ee(m,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(Ee(e.from,f.field))}else{let m=d.flatMap(y=>{if(y.cteName!==null){let T=r?.get(y.cteName);return T?.columns.includes(f.field)?[T.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let g=s.get(y.appId)?.get(Ee(y,f.field));return g?[u(g,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!R)return;let E=f.tableAlias!==null?d.find(m=>ce(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(R,E?.appId??e.from.appId)}}function Ee(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function as(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??ne(e);return{sortKind:lI(e),fieldType:e.fieldType,semantics:t===void 0?n:Qn(n,t,e.code)}}function um(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 ee(e){return{sortKind:e,semantics:B(e)}}function Je(){return{semantics:B("string","KSQL_UNKNOWN")}}function cm(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function Xe(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:ne({fieldType:"__ID__"})};if(e==="_rid")return ee("string");if(e==="_pid"||e==="_idx"||e==="$revision")return ee("number")}var uI=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function vn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?ee("number"):ee("string")}return uI.has(e.func)?ee("number"):ee("string")}function Ar(e,t){return e.type==="STRING"?ee("string"):e.type==="ARRAY"?cm():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?Je():Un(e.arg,t):e.func==="GROUP_CONCAT"?ee("string"):ee("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?ee("number"):e.type==="STRING_FUNC"?vn(e):e.type==="FIELD_REF"?t(Ue(e.field))??Je():e.type==="FIELD"?t(e)??Je():Je()}function ws(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&&Mo(n(r.semantics),n(t.semantics)))?e.every(i=>Mo(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?cm("KSQL_MIXED_UNSUPPORTED"):Je()}function Un(e,t){if(e.type==="FIELD_REF")return t(Ue(e.field))??Je();if(e.type==="FIELD")return t(e)??Je();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return ee("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return ee("string");if(e.type==="STRING_FUNC")return vn(e);let n=e.branches.map(r=>Ar(r.result,t));return e.elseResult&&n.push(Ar(e.elseResult,t)),ws(n)}function pm(e,t){return e.windowKind==="VALUE"?Un(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?ee("number"):e.arg.type==="WILDCARD"?Je():Un(e.arg,t):ee("number")}function ss(e,t){return{...e??{},displayName:t}}function cI(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 Wi(e,t,n,r,i,o=!1){let a=new Map;cI(e)&&await Promise.all(Is(e).map(async E=>{if(a.has(E.appId))return;let m=await Q(E.appId,n,r);a.set(E.appId,new Map(m.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 T=a.get(e.from.appId)?.get(E.field);return T?ve(T,e.from.appId):void 0}let y=s.find(T=>ce(T)===E.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(E.field);let g=a.get(y.appId)?.get(Ee(y,E.field));return g?ve(g,y.appId):Xe(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(Ee(e.from,E.field));return y?ve(y,e.from.appId):Xe(E.field)}let m=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 g=a.get(y.appId)?.get(Ee(y,E.field)),T=g?ve(g,y.appId):Xe(E.field);return T?[T]:[]});return m.length===1?m[0]:void 0},d=E=>{if(!l)return;let m=s.filter(y=>{if(E.tableAlias!==null&&ce(y)!==E.tableAlias)return!1;let g=Ee(y,E.field);return a.get(y.appId)?.has(g)===!0||Xe(E.field)!==void 0});return m.length===1?m[0].appId:void 0},u=(E,m)=>{let y=d(m);return E&&y!==void 0?{...E,publicSourceApp:y}:E},p=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 m=Ue(E),y=u(c(m),m);p.set(E,ss(y,y?.displayName??E))}return p}if(f)for(let E of t){let m=Ue(E),y=u(c(m),m);p.set(E,ss(y,y?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,m)=>{let y=f?"alias"in E&&E.alias?E.alias:void 0:t[m];if(!y)return;let g;if(E.type==="FIELD"){let T=Ue(E.field);g=u(c(T),T)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?g=ee("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"?g=ee("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(g=Un(E.arg,c));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")g=ee("number");else if(E.type==="GROUPING_COL")g=ee("number");else if(E.type==="LITERAL_COL")g=ee("string");else if(E.type==="SCALAR_VALUE_COL"){let T=E.expr;T.type==="STRING_FUNC"?g=vn(T):T.type==="NUMBER"||T.type==="SCALAR_ARITH"?g=ee("number"):T.type==="FIELD"?g=c(T):g=ee("string")}else if(E.type==="STRFUNC_COL")g=vn(E.expr);else if(E.type==="WINDOW_COL")g=pm(E,c);else if(E.type==="CASE_COL"){let T=E.expr.branches.map(h=>Ar(h.result,c));E.expr.elseResult&&T.push(Ar(E.expr.elseResult,c)),g=ws(T)}else E.type==="SCALAR_SUBQUERY_COL"&&(g=Je());p.set(y,ss(g,E.aliasDisplay??y))}),p}function pI(e,t){let n=ue.get(e),r=ue.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],c=l===void 0?void 0:r?.get(l),d;if(s&&c){let u=ws([s,c]),p=s.publicSourceApp===c.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...R}=u;d=p===void 0?R:{...R,publicSourceApp:p}}else d=Je();i.set(o,ss(d,s?.displayName??o))}),i}function zc(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let c=n.find(d=>ce(d)===s.tableAlias);return!c||c.cteName!==null?void 0:as(c,s.field)??t.get(c.appId)?.get(Ee(c,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:as(e.from,s.field)??t.get(e.from.appId)?.get(Ee(e.from,s.field));if(n.some(c=>c.cteName!==null))return;let l=r.flatMap(c=>{let d=as(c,s.field)??t.get(c.appId)?.get(Ee(c,s.field));return d?[d]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var dm=new WeakSet,qc=new WeakMap;function yc(e){return dm.add(e),e}function dI(e,t){return qc.set(e,t),t}function fm(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&&te(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function fI(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function EI(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":j(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new Dn;if(!fI(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=wn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function RI(e,t,n,r,i,o=!0,a,s,l){let c=qc.get(e);if(dm.has(e)&&c!==void 0&&fm(e,c)){let L=await EI(e,t);if(L!==null)return L}let d=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([Ji(e.where,t,n,r,u,i),Ji(e.having,t,n,r,u,i)]);let[f,R,E]=await Promise.all([Ts(e,t,r),Yc(e,t,r),lm(e,t,r,i)]),m=zc(e,R),y=await Zi(e,t,r,i,Tt(e.having)||Bc(e)),g=nm(e,y),T=Hc.get(e);if(T&&!dr(T.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let h=T??Ss(e,f)??mn(e,f);yl(h);let I="joinPlan"in h?h:null,N=I&&dr(I.joinPlan)?I:null,D=t,P=h.mainCondition,M=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let U=s?s.prefilterWhere:N?null:P,C=N?.queriesByAlias.get(e.from.alias)??"",v=await km(e.columns,t,n,r,u,i),b=pt(e.where),_=b?Promise.resolve([]):ki(e,e.from,D,d,p,!0,n.onLimitReached??"error",u,U,N?!1:o,l,C),A=[],w=[];for(let L of e.joins){if(b){A.push({join:L,promise:Promise.resolve([])});continue}let W=L.table.alias?N?.queriesByAlias.get(L.table.alias)??"":"",X=N?null:L.table.alias?M.get(L.table.alias)??null:null;X!==null||W!==""?A.push({join:L,promise:ki(e,L.table,D,d,p,!1,n.onLimitReached??"error",u,X,!0,l,W)}):w.push(L)}let k=a?Promise.resolve(a):Yi(e,t,r,i);k.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:L,promise:W}of A)F.set(L.table.alias,await W);await Promise.all(w.map(async L=>{let X=await Im(e,L,F,D,d,p,n.onLimitReached??"error",u,r,i,null,l,"")??await ki(e,L.table,D,d,p,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(L.table.alias,X)}));let{optionOrders:V,sortKinds:G,semantics:x}=await k,{rows:K,columns:Y}=vu({tables:F,stmt:e,scalarCache:v,optionOrders:V,sortKinds:G,orderSemantics:x,fieldTypeResolver:m.row,fieldSemanticsResolver:y,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:g,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:N?{residualWhere:N.joinPlan.residualWhere}:{},resolvedGroupingSpec:Bi.get(e),plainGroupByPlan:l,warnings:u,evaluationContext:se(n)}),$=await Xc(e,K,Y,t,r);return{type:"SELECT",rows:K,columns:$,rowCount:K.length,warnings:[...u]}}function mI(e,t){if(e.length!==t.length)throw new Error(`ArgumentError: UNION \u306E\u5DE6\u53F3\u3067\u5217\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093\uFF08\u5DE6 ${e.length} \u5217 / \u53F3 ${t.length} \u5217\uFF09\u3002
|
|
15
|
+
UNION \u306F\u5217\u3092\u4F4D\u7F6E\u3067\u5BFE\u5FDC\u3055\u305B\u308B\u305F\u3081\u3001\u4E21\u8FBA\u306E\u5217\u6570\u3092\u63C3\u3048\u3066\u304F\u3060\u3055\u3044`)}function gc(e,t,n){mI(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,c)=>{s[l]=a[e.columns[c]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=ue.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let c=e.columns[l],d=n?.get(s)??(c===void 0?void 0:o?.get(c));d&&a.set(s,{...d,displayName:s})}),ue.set(i,a)}return i}function Em(e,t,n,r){let i=gc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:yI(o,e.columns),s=[...new Set([...e.warnings??[],...t.warnings??[]])],l={type:"SELECT",rows:a,columns:[...e.columns],rowCount:a.length,warnings:s};return r&&ue.set(l,pI(e,t)),l}async function Rm(e,t,n,r,i=!1,o=!1){let a=Vc(e,n,null);return Rc(a,async()=>{let s=a.effectiveOptions,[l,c]=await Promise.all([e.left.type==="UNION"?Rm(e.left,t,s,r,i,o):Gt(yc(e.left),t,s,r,void 0,i,o,"DERIVED"),Gt(yc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return Em(l,c,e.all,i)})}function yI(e,t){let n=new Set;return e.filter(r=>{let i=JSON.stringify(t.map(o=>r[o]??""));return n.has(i)?!1:(n.add(i),!0)})}function mm(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function gI(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(mm);if(n.some(i=>i===null))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u5F0F\u306B\u306F AS \u5225\u540D\u304C\u5FC5\u8981\u3067\u3059`);let r=n;if(new Set(r).size!==r.length)throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u3067\u5217\u540D\u30EA\u30B9\u30C8\u3092\u7701\u7565\u3059\u308B\u5834\u5408\u3001seed \u306E\u51FA\u529B\u5217\u540D\u3092\u91CD\u8907\u3055\u305B\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093`);return r}function gR(e){return e.columns.map((t,n)=>mm(t)??`__b53_column_${n}`)}function hR(e,t){let n=e.semantics,r=t.semantics;if(!n||!r||n.compareMode==="unsupported"||r.compareMode==="unsupported"||n.compareMode!==r.compareMode||e.sortKind&&t.sortKind&&e.sortKind!==t.sortKind||n.inSubtable!==r.inSubtable||n.requiresCollectionOperators!==r.requiresCollectionOperators)return!1;let i=o=>o===void 0||o.startsWith("KSQL_");return!(!i(e.fieldType)&&!i(t.fieldType)&&e.fieldType!==t.fieldType)}async function ym(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)],o=new Map;await Promise.all(i.filter(s=>s.cteName===null).map(async s=>{if(o.has(s.appId))return;let l=await Q(s.appId,t,n);o.set(s.appId,new Map(l.map(c=>[c.code,c])))}));let a=(s,l)=>{if(s.cteName!==null)return r.get(s.cteName)?.columnMeta?.get(l);let c=o.get(s.appId)?.get(Ee(s,l));return c?ve(c,s.appId):Xe(l)};return s=>{if(s.tableAlias!==null){let c=i.find(d=>ce(d)===s.tableAlias);return c?a(c,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(c=>a(c,s.field)).filter(c=>c!==void 0);return l.length===1?l[0]:void 0}}function _i(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>_i(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:Ue(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=Ue(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){_i(r.left,t,!0),_i(r.right,t,!0);return}for(let i of Object.values(r))_i(i,t,n)}async function AR(e,t,n,r,i){let o=await ym(e,n,r,i);e.columns.forEach(c=>_i(c,o));let a=await Wi(e,gR(e),n,r,i),s=gR(e),l=new Map;return t.forEach((c,d)=>{let u=a.get(s[d]);if(!u?.semantics||u.semantics.fieldType==="KSQL_UNKNOWN"||u.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${d+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(c,{...u,displayName:c})}),l}function sn(e){return`${e.appId}:${e.subtableCode??""}`}function gm(...e){let t=new Map;for(let n of e)for(let r of[n.from,...n.joins.map(i=>i.table)])r.cteName===null&&!t.has(sn(r))&&t.set(sn(r),r);return[...t.values()]}function hI(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function AI(e){let t=new Map,n=r=>{for(let i of r)t.set(sn(i),null)};for(let r of e){let i=Is(r);for(let s of i){let l=sn(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let c=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(u=>u.table)].find(u=>ce(u)?.toLowerCase()===s.toLowerCase());if(!c){n(i);return}if(c.cteName!==null)return;let d=t.get(sn(c));d!==null&&d?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let c=hI(l.field),d=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:c.alias;o(d,c.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(te(r)),a(r.having),a(r.orderBy);for(let s of r.joins){if(s.on===null){n(i);continue}o(s.on.left.tableAlias,s.on.left.field),o(s.on.right.tableAlias,s.on.right.field)}}return t}function SI(e,t){return{type:"SELECT",distinct:!1,columns:t!==null&&t.size>0?[...t].map(r=>({type:"FIELD",field:r,alias:null})):[{type:"WILDCARD"}],from:{...e,alias:null},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function TI(e,t,n,r){let i=AI(e),o=await Promise.all(gm(...e).map(async(a,s)=>{let l=await Gt(SI(a,i.get(sn(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),c=`__b53_source_${s}`;return[sn(a),{name:c,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:ue.get(l)}}]}));return new Map(o)}function SR(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(sn(r));if(!i)throw new Error("PlanningError: \u518D\u5E30 CTE \u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{appId:0,alias:r.alias,cteName:i.name,subtableCode:null}};return{...e,from:n(e.from),joins:e.joins.map(r=>({...r,table:n(r.table)}))}}function TR(e,t,n){return e.cteName===null?void 0:n.get(e.cteName)?.columnMeta?.get(t)}function ic(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=Te(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function IR(e,t){let n=t.joins[0];if(!n||n.type!=="INNER")throw new Error("PlanningError: \u518D\u5E30\u9805\u306E INNER JOIN \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");let r=t.from.cteName===e?t.from:n.table,i=r===t.from?n.table:t.from,o=ce(r),a=n.on.left.tableAlias===o,s=n.on.right.tableAlias===o;if(a===s)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u3092\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{self:r,source:i,selfField:a?n.on.left.field:n.on.right.field,sourceField:a?n.on.right.field:n.on.left.field}}async function II(e,t,n,r,i){let o=e.recursiveSpec,a=gI(e),s=await AR(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let c=await AR(o.recursiveTerm,a,t,i,l);a.forEach((G,x)=>{let K=s.get(G),Y=c.get(G);if(!K||!Y||!hR(K,Y))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${x+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let d=IR(e.name,o.recursiveTerm),u=await ym(o.recursiveTerm,t,i,l),p=u({type:"FIELD",tableAlias:ce(d.self),field:d.selfField}),f=u({type:"FIELD",tableAlias:ce(d.source),field:d.sourceField});if(!p||!f||!hR(p,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let R=await TI([o.seed,o.recursiveTerm],t,n,i),E=new Map(r);for(let G of R.values())E.set(G.name,G.table);let m=SR(o.seed,R),y=SR(o.recursiveTerm,R),g=await dt(m,t,n,E,i,!0,!0),T=gc(g,a,s),h=o.cycle,I=h?s.get(h.column):void 0,N=new Map(s);h&&N.set(h.markColumn,{...ee("string"),displayName:h.markColumn});let D=h?[...a,h.markColumn]:[...a],P=[],M=[],U=new Set([...T.warnings??[],...[...R.values()].flatMap(G=>G.warnings)]),C=new Ca(e.name,St(n)),v=G=>{C.addRow(),P.push(G)};for(let G of T.rows){let x=h?String(G[h.column]??""):"",K=h?{...G,[h.markColumn]:h.defaultValue}:G;v(K),M.push({row:G,path:h?[x]:[]})}let b=IR(e.name,y),_=b.source.cteName===null?void 0:E.get(b.source.cteName);if(!_)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let A=TR(b.self,b.selfField,l)??TR(b.source,b.sourceField,E);if(!A?.semantics||A.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${b.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let w=new Map;for(let G of _.rows){let x=String(G[b.sourceField]??""),K=ic(x,A.semantics),Y=w.get(K);Y?Y.push(G):w.set(K,[G])}let k=w.has(ic("",A.semantics)),O=0,F=!1;for(;M.length>0;){O++;let G=[];for(let x of M){let K=String(x.row[b.selfField]??"");!F&&K===""&&k&&(U.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${b.selfField} = ${b.sourceField} \u3067\u7B2C ${O} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let Y=w.get(ic(K,A.semantics))??[];for(let X of Y){let he=String(X[b.sourceField]??"");Dt("=",K,he,A.semantics)&&C.addExpansion()}if(Y.length===0)continue;let $=new Map(E);$.set(e.name,{rows:[x.row],columns:a,columnMeta:s});let L=await dt(y,t,n,$,i,!0,!0);for(let X of L.warnings??[])U.add(X);let W=gc(L,a,s);W.rows.length>0&&C.observeDepth(O);for(let X of W.rows){if(!h){v(X),G.push({row:X,path:[]});continue}let he=String(X[h.column]??""),tt=x.path.some(ie=>Dt("=",ie,he,I.semantics));v({...X,[h.markColumn]:tt?h.markValue:h.defaultValue}),tt||G.push({row:X,path:[...x.path,he]})}}M=G}let V={type:"SELECT",rows:P,columns:D,rowCount:P.length,warnings:[...U]};return ue.set(V,N),V}async function Jc(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&Jt(e))return Gt(Xt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let c of e.ctes){let d;c.recursiveSpec?d=await II(c,t,n,a,r):c.query.type==="SHOW_APPS"?d=await Dm(t):c.query.type==="DESCRIBE"?d=await vm(c.query,t,r):c.query.type==="GENERATE_SERIES"?d=hm(c.query):d=await dt(c.query,t,n,a,r,!0);for(let u of d.warnings??[])s.add(u);a.set(c.name,{rows:d.rows,columns:d.columns,columnMeta:ue.get(d),...c.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:c.query.columnAlias}:{}})}let l=await dt(e.query,t,n,a,r,o);return As(l,[...s])}function hm(e){let t=Zo(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:ne({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:ne({fieldType:"DATE"})};return ue.set(n,new Map([[e.columnAlias,r]])),n}async function dt(e,t,n,r,i,o=!1,a=!1){if(a||await os(e,t,r,i),e.type==="UNION"){let[c,d]=await Promise.all([dt(e.left,t,n,r,i,o,!0),dt(e.right,t,n,r,i,o,!0)]);return Em(c,d,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Le||e.joins.some(c=>c.table.cteName!=null)))return Gt(e,t,n,i,r,o,!1,"DERIVED");let l=await wI(e,t,n,r,i);return o&&ue.set(l,await Wi(e,l.columns,t,i,r)),l}async function wI(e,t,n,r,i){await Vi(e,t,i,r);let o=Bi.get(e),a=await gr(e,t,i,r),s=new Set,l=$=>{if($.alias!==null||$.cteName===null)return $;let L=ce($);return s.add(L),{...$,alias:L}};e={...e,from:l(e.from),joins:e.joins.map($=>({...$,table:l($.table)}))};let c=new Set;for(let $ of[e.from,...e.joins.map(L=>L.table)]){let L=ce($);if(L!==null){if(c.has(L))throw new Error(`ArgumentError: effective alias ${L} is used by multiple tables.`);c.add(L)}}let d=$=>{let L=r.get($);if(!L)throw new Error(`ArgumentError: materialized source ${$} is not available.`);return L};for(let $ of[e.from,...e.joins.map(L=>L.table)])$.cteName!==null&&d($.cteName);let{resolver:u}=await On(e,t,i,r,em(e)),p=tm(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([Ji(e.where,t,n,i,R,r),Ji(e.having,t,n,i,R,r),Um(e,t,n,i,R,r)]);let m=Se(e.where,u);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(m)}).`);let y=await Yi(e,t,i,r),g=fs(e)?(e.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:e,staticMode:"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:be(e.where)}):null,T=Vc(e,n,g),h=T.effectiveOptions,[I,N,D]=await Promise.all([Ts(e,t,i),Yc(e,t,i),lm(e,t,i,r)]),P=zc(e,N),M=await Zi(e,t,i,r,Tt(e.having)||Bc(e)),U=nm(e,M),C=Ss(e,I)??mn(e,I);yl(C);let v=t,b=await km(e.columns,t,h,i,R,r),_=Promise.resolve(y);_.catch(()=>{});let A=new Map,w=new Map;if(e.from.cteName!=null){let $=d(e.from.cteName);A.set(e.from.alias,$.rows.map(wR)),w.set(e.from.alias,$.columns)}else{let $=await Rc(T,()=>ki(e,e.from,v,f,E,!0,h.onLimitReached??"error",R,C.mainCondition,m.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,$)}let k=e.joins.map($=>Rc(T,async()=>{if($.table.cteName!=null){let L=d($.table.cteName);A.set($.table.alias,L.rows.map(wR)),w.set($.table.alias,L.columns)}else{let L=$.table.alias?C.joinConditions.get($.table.alias)??null:null,X=await Im(e,$,A,v,f,E,h.onLimitReached??"error",R,i,r,L,a)??await ki(e,$.table,v,f,E,!1,h.onLimitReached??"error",R,L,!0,a);A.set($.table.alias,X)}}));await Promise.all(k);let{optionOrders:O,sortKinds:F,semantics:V}=await _,G=e.joins.length===0&&e.from.cteName!=null?d(e.from.cteName).columns:void 0,{rows:x,columns:K}=vu({tables:A,stmt:e,scalarCache:b,optionOrders:O,sortKinds:F,orderSemantics:V,fieldTypeResolver:P.row,fieldSemanticsResolver:M,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:U,aggregateSortKindResolver:D,appliedKlikes:C.appliedKlikes,sourceColumns:G,tableColumns:w,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:se(n)}),Y=await Xc(e,x,K,t,i);return As({type:"SELECT",rows:x,columns:Y,rowCount:x.length,warnings:[...R]},p)}async function Xc(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await Q(e.from.appId,r,i);return yE(o,e.from.subtableCode,()=>bs(e.from.appId,r,i))}function wR(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function ki(e,t,n,r,i,o,a,s,l=null,c=!0,d,u=""){let p=Rn(e,t,d),f=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),xc(n,t.appId),iE(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?Td(e,t.appId).query:"",g=[l!==null?j(l):"",u].filter(N=>N!==""),T=g.length>1?g.map(N=>`(${N})`).join(" and "):g[0]??"",h=y&&T?`(${y}) and (${T})`:y||T;return(await at(n.getRecords,t.appId,h,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let R=o&&c&&e.joins.length===0&&e.where!==null&&qc.get(e)?.capability==="EXACT_PUSHDOWN"&&!Lt(e.where)?j(e.where):"",m=(await at(n.getRecords,t.appId,R,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return xE(m,t.subtableCode)}var Rr=50;function bI(e){let t=Te(e);return t!==null?JSON.stringify(t):e}function hc(e){return JSON.stringify(e)}function ln(e,t){return JSON.stringify(e.map((n,r)=>t[r]?bI(n):n))}var bR={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function NR(e,t,n,r=[]){if(t){if(e===1)return"\u901A\u5E38\u5B9F\u884C client \u306E native \u80FD\u529B\u304C\u4E0D\u660E";if(e===2)return"native \u8A2D\u5B9A\u304C\u4E0D\u660E";if(e===3)return"\u30D5\u30A9\u30FC\u30E0\u30E1\u30BF\u30C7\u30FC\u30BF\u672A\u53D6\u5F97";if(e===5||r.includes(5))return"\u30BD\u30FC\u30B9\u884C\u672A materialize";if(e===6)return"\u30AD\u30FC\u578B\u60C5\u5831\u304C\u672A\u78BA\u5B9A\u306E\u305F\u3081\u91CD\u8907\u5224\u5B9A\u4E0D\u80FD"}return e===1?"client \u304C upsertRecords \u80FD\u529B\u3092\u6301\u305F\u306A\u3044":e===2?n==="CLI"?"--native-upsert \u304C\u6307\u5B9A\u3055\u308C\u3066\u3044\u306A\u3044":"enableNativeUpsert \u304C false":e===3?"\u30AD\u30FC\u9805\u76EE\u306F\u91CD\u8907\u7981\u6B62\u306E SINGLE_LINE_TEXT \u307E\u305F\u306F NUMBER \u3067\u306F\u306A\u3044":e===4?"CHECK / APPLY / IMPORT / VALIDATE ONLY / ON ERROR SKIP \u3092\u4F34\u3046\u7D20\u3067\u306A\u3044 UPSERT":e===5?"\u30BD\u30FC\u30B9\u306B\u7A7A\u6587\u5B57\u30AD\u30FC\u304C\u3042\u308B":"\u30BD\u30FC\u30B9\u5185\u306B\u540C\u4E00\u30AD\u30FC\u304C\u3042\u308B"}function oc(e,t,n){if(t.status==="ELIGIBLE")return` ${e}: ELIGIBLE\uFF08${e.includes("statement/data")?"\u6761\u4EF6 3\u301C6 \u3092":"6 \u6761\u4EF6\u3092\u3059\u3079\u3066"}\u6E80\u305F\u3059\uFF09`;if(t.status==="INELIGIBLE")return` ${e}: INELIGIBLE\uFF08\u6761\u4EF6 ${t.condition}: ${bR[t.condition]} \u2014 ${NR(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${bR[o]} \u2014 ${NR(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function NI(e,t){if(t==="DOCUMENT_ONLY")return[oc("native UPSERT statement/data eligibility",e.statement,t),` native UPSERT execution surface: NOT_APPLICABLE\uFF08\u3053\u306E\u9762\u3067\u306F\u5B9F\u884C\u3057\u306A\u3044${e.statement.status==="ELIGIBLE"?"\u3002/flow \u307E\u305F\u306F CLI --native-upsert \u3067\u306F native \u5019\u88DC":""}\uFF09`];let n=[oc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(oc("native UPSERT statement/data eligibility",e.statement,t)),n}function CI(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function PI(e,t,n){let r=null;if(e.type==="UPSERT")try{r=lp(e)}catch{}return Qc({surface:n.surface==="DOCUMENT_ONLY"?"DOCUMENT_ONLY":"EXECUTION",clientCapability:n.surface==="DOCUMENT_ONLY"?null:n.clientHasNativeUpsert??null,enabled:n.surface==="DOCUMENT_ONLY"?null:n.surface==="FLOW"?n.enableNativeUpsert!==!1:n.enableNativeUpsert===!0,statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Sr.has(e)},fieldInfos:t,rowKeyValues:r})}async function Am(e,t,n){let r=CI(e);if(!r)return[];let i=await DI(r.appId,t);return NI(PI(r,i,n),n.surface)}function Qc(e){let t=e.statement.keyFields.length===1?e.statement.keyFields[0]:void 0,n=t===void 0||e.fieldInfos===null?void 0:e.fieldInfos.find(p=>p.code===t),r=n?.fieldType==="SINGLE_LINE_TEXT"||n?.fieldType==="NUMBER",i=e.fieldInfos===null?null:!!(t!==void 0&&n&&r&&n.isUnique===!0),o=!e.statement.hasCheck&&!e.statement.hasApply&&!e.statement.validateOnly&&!e.statement.onErrorSkip&&!(e.statement.kind==="SELECT"&&e.statement.importDerived),a=e.rowKeyValues,s=a===null?null:a.every(p=>p.every(f=>f!=="")),l=null;if(a!==null&&t!==void 0&&r){let p=new Set;l=!0;for(let f of a){let R=ln([...f],[n.fieldType==="NUMBER"]);if(p.has(R)){l=!1;break}p.add(R)}}let c=(p,f)=>({state:p===null?"UNKNOWN":p?"PASS":"FAIL",reason:f}),d={1:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"client capability is not applicable on this surface"}:c(e.clientCapability,"client does not provide upsertRecords"),2:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"native setting is not applicable on this surface"}:c(e.enabled,"native UPSERT is disabled"),3:c(i,"update key schema is not a single unique text or number field"),4:c(o,"statement is not a plain UPSERT"),5:c(s,"source contains an empty update key"),6:c(l,"source contains duplicate update keys")},u=p=>{let f=p.find(E=>d[E].state==="FAIL");if(f!==void 0)return{status:"INELIGIBLE",condition:f,reason:d[f].reason};let R=p.filter(E=>d[E].state==="UNKNOWN").map(E=>({condition:E,reason:d[E].reason}));return R.length>0?{status:"UNKNOWN",unknownConditions:R}:{status:"ELIGIBLE"}};return{conditions:d,execution:u([1,2,3,4,5,6]),statement:u([3,4,5,6])}}function Zc(e){return"upsertRecords"in e&&typeof e.upsertRecords=="function"}function Sm(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:Zc(t),enabled:FR(n),statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:Sr.has(e)},fieldInfos:r,rowKeyValues:i}}var ms=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function OI(e,t){if(!e||!Array.isArray(e.records)||e.records.length!==t)throw new ms;let n=0,r=0;for(let i of e.records){if(!i||typeof i.id!="string"||typeof i.revision!="string"||i.operation!=="INSERT"&&i.operation!=="UPDATE")throw new ms;i.operation==="INSERT"?n+=1:r+=1}return{insertedCount:n,updatedCount:r}}async function Tm(e,t,n,r,i,o){if(n.length===0)return{type:"UPSERT",insertedCount:0,updatedCount:0};if(o.confirm&&!await o.confirm(n.length,"UPDATE"))throw new Re("UPDATE",n.length);let a=0,s=0;for(let l=0;l<n.length;l+=100){let c=n.slice(l,l+100).map((p,f)=>{let R={};for(let[E,m]of Object.entries(p))E!==t&&(R[E]=m);return{updateKey:{field:t,value:r[l+f][0]},record:R}}),d=await i.upsertRecords({app:e,upsert:!0,records:c}),u=OI(d,c.length);a+=u.insertedCount,s+=u.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function eo(e,t){let n=e.raw.get(hc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(ln(t,e.numericKey))}async function to(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,c=t.map(y=>o.get(y)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:c,...a?{snapshots:new Map}:{}},u=(y,g,T)=>{let h=y.get(g);(h===void 0||T>h)&&y.set(g,T)},p=(y,g)=>{u(d.raw,hc(y),g),c.some(Boolean)&&u(d.normalized,ln(y,c),g)},f=new Set,R=[],E=new Set;for(let y of n){let g=hc(y);E.has(g)||(E.add(g),y.some(T=>T==="")?R.push(y):f.add(y[0]))}let m=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let y of no([...f],Rr)){let g=`${t[0]} in (${y.map(Hi).join(",")})`,T=await xe(r.getRecords,e,g,m,{maxRecords:s,parallel:l});for(let h of T){let I=Number(h.$id?.value);Number.isFinite(I)&&(d.snapshots?.set(I,h),p(t.map(N=>ep(h[N]?.value)),I))}}for(let y of R){let g=t.map((I,N)=>`${I} = ${Hi(y[N])}`).join(" and "),T=a?[...new Set(["$id",...a])]:["$id"],h=await xe(r.getRecords,e,g,T,{maxRecords:s,parallel:l});if(h.length!==0){for(let I of h){let N=Number(I.$id?.value);Number.isFinite(N)&&d.snapshots?.set(N,I)}p(y,LI(h))}}return d}function LI(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 ep(e){return typeof e=="string"?e:e==null?"":String(e)}function Hi(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function no(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var _I=6,ls=Pa*_I;async function Im(e,t,n,r,i,o,a,s,l,c,d=null,u,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,R=t.on.right.tableAlias;if(!f||!R)return null;let E,m,y;if(f===t.table.alias&&R!==t.table.alias)E=R,m=t.on.right.field,y=t.on.left.field;else if(R===t.table.alias&&f!==t.table.alias)E=f,m=t.on.left.field,y=t.on.right.field;else return null;let g=n.get(E);if(!g)return null;let T=[e.from,...e.joins.map(A=>A.table)].find(A=>ce(A)===E),h=(await Q(t.table.appId,r,l)).find(A=>A.code===Ee(t.table,y)),I=h?ve(h,t.table.appId):Xe(y),N;if(T?.cteName!==null&&T?.cteName!==void 0)N=c?.get(T.cteName)?.columnMeta?.get(m);else if(T){let A=(await Q(T.appId,r,l)).find(w=>w.code===Ee(T,m));N=A?ve(A,T.appId):Xe(m)}let D=[],P=!1;for(let A of g){let w=A[m]?.value,k=ep(w);(w==null||k.length===0)&&(P=!0),D.push(k)}let M=Ru({fieldType:I?.fieldType,sourceSemantics:N?.semantics,sourceRowCount:g.length,values:D,hasEmptyValue:P,maxInKeys:ls});if(M.kind==="EMPTY_SOURCE")return[];if(M.kind==="FALLBACK"){if(M.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let A=new Set(D).size;s.add(`JOIN\u30AD\u30FC\u304C ${A} \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 ${ls} \u4EF6\uFF09\u3002`)}return null}if(M.kind==="RANGE_CANDIDATE")return null;let U=Eu(M,y,Hi);if(U.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 ${ls} \u4EF6\uFF09\u3002`),null;let C=Rn(e,t.table,u),v=A=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${A} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${A} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),xc(r,t.table.appId)},b=[],_=new Set;for(let A of U){let k=[d!==null?j(d):"",p].filter(F=>F!=="").reduce((F,V)=>`(${F}) and (${V})`,A),O=await at(r.getRecords,t.table.appId,k,C,{parallel:o,maxRecords:i,onLimit:a,onTruncate:v});for(let F of O.records){let V=`${F.$id?.value??""}:${JSON.stringify(F)}`;_.has(V)||(_.add(V),b.push(F))}}return b}var Ac=new Map,Sc=new Map,Tc=new Map,ys=new Map,Ic=new Map,wc=new Map;function tp(e){Ac.delete(e),Sc.delete(e),Tc.delete(e),ys.delete(e),Ic.delete(e),wc.delete(e)}function xn(e,t,n){return e.get(t)?.get(n)}function Tr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function Q(e,t,n){let r=xn(ys,n,e);if(r)return r;let i=t.getFields(e);return Tr(ys,n,e,i),i}async function DI(e,t){let n=xn(ys,t,e);return n?await n:null}async function Ct(e,t,n){let r=xn(wc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Tr(wc,n,e,i),i}async function bs(e,t,n){let r=xn(Ic,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Tr(Ic,n,e,i),i}async function np(e,t,n){let r=await bs(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Me(e,t,n){let r=xn(Ac,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Tr(Ac,n,e,o),o}async function bc(e,t,n){let r=xn(Sc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Tr(Sc,n,e,o),o}async function vI(e,t,n){let r=await bc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function CR(e,t,n){let r=xn(Tc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Tr(Tc,n,e,o),o}function UI(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 MI(e,t,n,r){let i=UI(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let p=await Q(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let E=s.get(e.from.appId)?.get(u.field);return E?ve(E,e.from.appId):void 0}let f=o.find(E=>ce(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(Ee(f,u.field));return R?ve(R,f.appId):Xe(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(Ee(e.from,u.field));return f?ve(f,e.from.appId):Xe(u.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),y=m?.columns.includes(u.field)?m.columnMeta?.get(u.field):void 0;return y?[y]:[]}let R=s.get(f.appId)?.get(Ee(f,u.field)),E=R?ve(R,f.appId):Xe(u.field);return E?[E]:[]});return p.length>1&&a.add(u.field),p.length===1?p[0]:void 0},c=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let p;if(u.type==="FIELD")p=l(Ue(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")p=ee("number");else if(u.type==="WINDOW_COL")p=pm(u,l);else if(u.type==="GROUPING_COL")p=ee("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")p=ee("string");else if(u.type==="STRFUNC_COL")p=vn(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")p=Je();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(R=>Ar(R.result,l));u.expr.elseResult&&f.push(Ar(u.expr.elseResult,l)),p=ws(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(p=Un(u.arg,l)):p=u.func==="GROUP_CONCAT"?ee("string"):ee("number"));p?.semantics&&c.set(u.alias,p.semantics)}let d=new Map;for(let u of i){let p=c.get(u)??l(Ue(u))?.semantics;if(!p){let R=Ue(u);R.tableAlias===null&&a.has(R.field)&&d.set(u,ne({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await bs(p.source.appId,t,n);R.enable&&R.states!==null&&(f={...p,optionOrder:new Map(R.states.map(E=>[E.name,E.index]))})}d.set(u,f)}return d}async function Yi(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([kI(e,t,n),xI(e,t,n),MI(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function kI(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 bc(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 bc(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}async function xI(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 CR(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 CR(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}function wm(e,t){if(typeof e!="string")return e;let n=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),r=new Set(["CHECK_BOX","MULTI_SELECT"]);if(n.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i)&&i.every(o=>typeof o=="object"&&"code"in o))return i.map(o=>({code:o.code}))}catch{}return e.split(",").map(i=>({code:i.trim()}))}if(r.has(t??"")){if(e==="")return[];try{let i=JSON.parse(e);if(Array.isArray(i))return i.map(String)}catch{}return e.split(",").map(i=>i.trim())}return e}var FI=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function KI(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||FI.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function ft(e,t,n,r){let i=await Q(e,n,r);return KI(e,t,i),i}async function $t(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?Ct(e,r,i):void 0}function un(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),c=o[s]?.value??"",d=$e(c,l,r);if(!d.ok)throw new Error(`DmlValidationError: ${d.code} ${d.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(c)&&c.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:u?c:d.value}}})}async function GI(e,t,n,r,i){let o=await ft(e.appId,e.fields,t,r),a=await ci({statement:e,fieldInfos:o,dmlMaxRows:Ze(n.dmlMaxRows,"dmlMaxRows",Bt),dmlMaxSubtableRows:Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),statementNumber:i,loadNumberPrecision:()=>Ct(e.appId,t,r)});return mw(e,a,o)}async function $I(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await bm(e,t,n,r,i);return gw(e,a,o)}async function bm(e,t,n,r,i){let o=await ft(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=lp(e),l=new Set;for(let m of s){let y=ln(m,e.keyFields.map(g=>a.get(g)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let c=await to(e.appId,e.keyFields,s,t,n,a),d=s.map(m=>eo(c,m)),u=new Map,p=[...new Set(d.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of no(p,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let g of y.records){let T=Number(g.$id?.value);Number.isSafeInteger(T)&&T>0&&u.set(T,g)}}let R=d.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:u.get(m)}})),E=await Xf({statement:e,matches:R,fieldInfos:o,dmlMaxRows:Ze(n.dmlMaxRows,"dmlMaxRows",Bt),dmlMaxSubtableRows:Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),statementNumber:i,loadNumberPrecision:()=>Ct(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function BI(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await ft(e.appId,e.fields,t,r),o=await ci({statement:e,fieldInfos:i,dmlMaxRows:Ze(n.dmlMaxRows,"dmlMaxRows",Bt),dmlMaxSubtableRows:Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),loadNumberPrecision:()=>Ct(e.appId,t,r)}),a=uu(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Ns(a),applyDiagnostic:a}))throw new Re("INSERT",o.guards.parentRows);let s=await nE(o,t,a);return{...s,diagnostic:Ye(a,s)}}async function VI(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await bm(e,t,n,r,1),o=cu(i);if(n.confirm){let s=Ns(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new Re("UPDATE",i.guards.parentRows)}let a=await rE(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:Ye(o,a)}}function WI(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 Ns(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=WI(n?ts(n):[],r?ts(r):[]),a=HI(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),c=o.reduce((p,f)=>p+f.appendRows,0),d=o.reduce((p,f)=>p+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:c,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:d,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=ts(n),f=ts(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:p.reduce((R,E)=>R+E.appendRows,0),tables:p},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 ts(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=_n(t,"APPEND"),r=_n(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function _n(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function HI(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:_n(n,"ADD"),removedValues:_n(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 rp(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return GI(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return $I(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await Lm(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await ip(e,t,n,r,i,o)).result}var ji=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function ip(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(_=>_.field)]:[...e.fields];if(new Set(c).size!==c.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let d=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,u=await ft(e.appId,d,t,r);e.type==="UPDATE"&&await yr(e,t,r);let p=new Map(u.map(_=>[_.code,_])),f=await $t(e.appId,d,u,t,r),R=gt(u,c),E=$E(R),m=(await YI(e,l,t,n,r,i,p,e.type==="UPDATE"?E:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),y=m.filter(_=>_.mode==="update"),g=e.type==="UPDATE"?qI:e.type.startsWith("UPSERT")?_=>JI(_,t,n.maxRecords??1e4):void 0,T=n.loadUpdateModeSnapshots??g,h=y.length>0&&T!==void 0,I=new Map;if(h){eu(y,d,u);let _=await T({appId:e.appId,candidates:y,fields:E}),A=new Map;for(let w of y){if(w.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${w.rowNumber}).`);let k=_.get(w.targetId);if(!k)throw new Error(`InternalError: update-mode snapshot is missing for record ${w.targetId}.`);let O=BE(k,w.record??{});A.set(w.rowNumber,O)}f===void 0&&[...A.values()].some(w=>An(w,R))&&(f=await Ct(e.appId,t,r));for(let w of y){let k=A.get(w.rowNumber);if(!k)throw new Error(`InternalError: validation post-image is missing for row ${w.rowNumber}.`);I.set(w.rowNumber,Sn(k,R,f,o,w.rowNumber,l))}}let N=tu(m,l,c,d,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!h}),{errors:D,invalidRows:P,invalidRowNumbers:M}=N;if(h){let _=new Map(N.candidateResults.map(A=>[A.rowNumber,A]));D=[],M=new Set;for(let A of m){let w=_.get(A.rowNumber);if(!w)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...w.preErrors,...w.builtInErrors,...w.checkErrors];D.push(...F),F.length>0&&M.add(A.rowNumber);continue}let k=I.get(A.rowNumber);if(!k)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=VE({rowNumber:A.rowNumber,setFields:d,normalizedPostImage:k.normalizedRecord,preErrors:w.preErrors,postImageErrors:k.errors,checkErrors:w.checkErrors});A.record=O.writeRecord,D.push(...O.errors);for(let F of O.invalidRowNumbers)M.add(F)}P=M.size}let U=[...c,...sr],C={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-P,invalidRows:P,errorCount:D.length,columns:U,errors:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},v=new Map;for(let _ of c){if(_==="$id"){v.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ne({fieldType:"RECORD_NUMBER"})});continue}let A=p.get(_);A&&v.set(_,ve(A,e.appId))}let b=new Set(["$err_statement","$err_row"]);for(let _ of sr)v.set(_,ee(b.has(_)?"number":"string"));return kn.set(C,v),{result:C,candidates:m,invalidRowNumbers:M,columnMeta:v}}async function Nc(e,t,n,r,i,o){let a=await ip(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");Nt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??Qe,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new ji(`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 Re(R,c.length)}let d={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 m=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(y=>y.record)});R.push(m.ids)}return{type:"INSERT",createdIds:R,insertedCount:R.flat().length,...d}}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,...d}}let u=c.filter(R=>R.mode==="create"),p=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(m=>m.record)});f+=E.ids.length}for(let R=0;R<p.length;R+=100)await t.putRecords({app:e.appId,records:p.slice(R,R+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...d}}async function YI(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return zI(e,n,r,i,o,s);let l,c,d,u,p;if(e.type==="INSERT"||e.type==="UPSERT")PR(e,e.fields),p=new Map(e.fields.map(h=>[h,a.get(h)?.fieldType??""])),Mn(e,p),l=e.values.map(h=>h.map((I,N)=>I.type==="CASE_VALUE"?Ut(I.expr,{},a.get(e.fields[N])?.fieldType,se(r)):I));else{let h=await ap.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(h.columns.length<e.fields.length||!I&&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(I&&new Set(h.columns).size!==h.columns.length)throw Ce("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");PR(e,h.columns),c=h.rows,d=h.importPresence,u=h.importRowErrors;let N=h.columnMeta;p=new Map(h.columns.map(D=>{let P=N?.get(D),M=P?.fieldType??(P?.semantics?.compareMode==="number"||P?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[D,M]})),Mn(e,p),l=h.rows.map(D=>h.columns.map(P=>D[P]??""))}let f=l.map((h,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((N,D)=>d&&!d[I]?.has(N)?[]:[[N,h[D]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:c?.[I]??Object.fromEntries(e.fields.map((N,D)=>[N,yt(h[D])])),evaluationFieldTypes:p}));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,I])=>[h,I.fieldType])),E=f.map(h=>e.keyFields.map(I=>yt(h.payload.get(I)))),m=e.keyFields.map(h=>R.get(h)==="NUMBER"),y=new Map;for(let h of E){let I=ln(h,m);y.set(I,(y.get(I)??0)+1)}let g=Sr.has(e);if(g&&[...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 T=await to(e.appId,e.keyFields,E,n,r,R);return f.forEach((h,I)=>{let N=E[I],D=eo(T,N);h.mode=D===void 0?"create":"update",D!==void 0&&(h.targetId=D),e.keyFields.forEach((P,M)=>{N[M]===""&&h.preErrors.push({field:P,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${P} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!g&&(y.get(ln(N,m))??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 op(e){return e.checkGroups?or(e.checkGroups):[]}function PR(e,t){let n=new Set(t);for(let r of op(e)){if(r.tableAlias!==null)throw Ce(`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 Ce(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var jI=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Mn(e,t){if(e.checkGroups)for(let n of gf(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(jI.has(i??""))throw Ce(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function zI(e,t,n,r,i,o){if(e.from)return QI(e,e.from,t,n,r,i,o);await Mm(e.assignments,t,n,r);let a=await Me(e.appId,t,r),s=Nm(e,a);Mn(e,Cc(a,e.appId));let l,c=new Map,d=new Map;if(fa(e)){let u=Fl(e),p=[...new Set([...u.fields,...s,...o??[]])],f=await at(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=us(f.records),c=d,l=Gl(e,f.records,a,se(n)).flatMap(R=>R.records)}else{let u=ti(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await at(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=us(f.records),c=d,l=ni(e,[...c.keys()],a).flatMap(R=>R.records)}else if(o){let p=await at(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=us(p.records),l=ni(e,[...d.keys()],a).flatMap(f=>f.records)}else{let p=await La(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=ni(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((u,p)=>u.id-p.id).map((u,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:d.get(u.id),evaluationRow:XI(c.get(u.id),e.appId),evaluationFieldTypes:Cc(a,e.appId)}))}function us(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 qI(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 JI(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 no(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let c=l.$id?.value,d=Number(c);if(!Number.isSafeInteger(d)||d<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(c)}.`);if(!i.has(d))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${d}.`);if(o.has(d))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${d}.`);o.set(d,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function Nm(e,t){if(e.from)return[];let n=new Set;for(let r of op(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw Ce(`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 Ce(`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 XI(e,t){if(!e)return{};let n=xt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Cc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function QI(e,t,n,r,i,o,a){let s=await Xm(e,t,n,i,o);Mn(e,s.evaluationTypes);let l=await Cm(e,t,n,r,i,o,a),c=await Me(e.appId,n,i),d=Bl(e,l,c,se(r)).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?us(l.map(f=>f.target)):new Map;return d.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:p.get(f.id),evaluationRow:ob(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var ZI=Rr,ew=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Cm(e,t,n,r,i,o,a){let s=await tw(e,t,n,i),l=await Xm(e,t,n,i,o),c=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],d=[...new Set([t.joinKeyField,...c])],u=await nw(t,d,c,n,r,i,o),p=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let N=OR(I[t.joinKeyField],s,"source");if(p.has(N))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${N}.`);p.set(N,I),f.set(N,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let R=r.maxRecords??1e4,E=[...new Set([...Aw(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":ti({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],g=new Set,T=0;for(let I of no([...f.values()],ZI)){let N=`${t.targetJoinField} in (${I.map(Hi).join(",")})`,D=m?`(${N}) and (${m})`:N,P=await at(n.getRecords,e.appId,D,E,{maxRecords:R,parallel:r.fetchParallel??1,onLimit:"error"});if(T+=P.records.length,T>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 M of P.records){let U=M.$id?.value;if(typeof U!="string"||U==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");g.has(U)||(g.add(U),y.push(M))}}let h=[];for(let I of y){let N=I[t.targetJoinField]?.value,D=OR(N,s,"target");if(D===null)continue;let P=p.get(D);P!==void 0&&h.push({target:I,source:P})}return h}async function tw(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await Q(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function nw(e,t,n,r,i,o,a){if(e.cteName!==null){let d=a?.get(e.cteName);if(!d)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(!d.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return d.rows}let s=await Me(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let d of n){if(d!=="$id"&&!s.has(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);let u=d==="$id"?"RECORD_NUMBER":s.get(d);if(ew.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${d}).`)}return(await at(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(d=>xt(d,null))}function OR(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 ro(e,t,n,r,i){let o=await ip(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 Re(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(R=>R.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<u.length;p+=100)await t.putRecords({app:e.appId,records:u.slice(p,p+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),c=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),d=0;for(let u=0;u<l.length;u+=100){let p=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});d+=p.ids.length}for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPSERT",insertedCount:d,updatedCount:c.length}}async function rw(e,t,n,r){if(e.applyBlocks?.length)return BI(e,t,n,r);if(e.checkGroups?.length)return ro(e,t,n,r);if(e.subtableCode)return ww(e,t,n,r);let i=await ft(e.appId,e.fields,t,r),o=await $t(e.appId,e.fields,i,t,r),a=await Me(e.appId,t,r),s=da(e,a,se(n));un(s.flatMap(c=>c.records),e.fields,i,o);let l=[];for(let c of s){let d=await t.postRecords(c);l.push(d.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function iw(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Le},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function Pm(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=zE(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let x=new Set(e.targets.filter(K=>K.kind==="SUBTABLE").map(K=>K.subtableCode));if(e.replaceSubtables.some(K=>!x.has(K)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let K of e.targets.filter(Y=>Y.kind==="SUBTABLE"))if(!K.rowIdSourceHeader||!e.replaceSubtables.includes(K.subtableCode))throw new Error(`ArgumentError: CSV subtable ${K.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,p=await Q(e.appId,t,r),f=u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children),R=p.some(x=>f.includes(x.code)&&x.fieldType==="NUMBER")?await Ct(e.appId,t,r):void 0,E=await Ja(o,new Map),m=e.source.kind==="JSON"?ZE(e.source,E,u,n.maxRecords??1e4):eR(e.source,E,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",g=iR(m,u,p,R,y);if(e.source.kind==="CSV")return ow(e,m,g,p,t,n,i);qu(g,e.rejectLimit);let T=[...new Set(u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children))],h=Xu(g.errors,T),I=[...T,...Ju],N=g.invalidParentRows.size,D={preflight:"ACTUAL_DATA",parents:{total:g.parents.length,valid:g.parents.length-N,invalid:N,mutationCandidates:g.parents.filter(x=>x.valid).length},tables:Object.fromEntries(g.tableCounts),writesKintone:!1},P={type:"VALIDATION",operation:y,validatedRows:g.parents.length,validRows:g.parents.length-N,invalidRows:N,errorCount:h.length,columns:I,errors:h,importDetail:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&Nt(i,e.validationErrorTable,I,h,n.tempTableMaxRows??Qe,new Map),e.validateOnly)return P;if(aR(m),g.errors.length>0&&!e.onErrorSkip){let x=g.errors[0];throw new Error(`DmlValidationError: ${x.code} ${x.message} (row=${x.parentRow}, field=${x.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Nt(i,e.errorTable,I,h,n.tempTableMaxRows??Qe,new Map)}let M=g.parents.filter(x=>x.valid),U=new Map(p.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=>U.get(L)==="NUMBER"),K=new Set,Y=M.map(L=>e.keyFields.map(W=>String(L.top[W]?.value??"")));for(let L of Y){let W=ln(L,x);if(K.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");K.add(W)}let $=await to(e.appId,e.keyFields,Y,t,n,U);Y.forEach((L,W)=>{C[W]=eo($,L)})}let v=u.filter(x=>x.kind==="SUBTABLE").map(x=>x.subtableCode),b=new Map,_=C.filter(x=>x!==void 0);for(let x of no([...new Set(_)],100)){let K=await t.getRecords({app:e.appId,query:`$id in (${x.join(",")}) limit 500`,fields:["$id","$revision",...v]});for(let Y of K.records){let $=Number(Y.$id?.value),L=Number(Y.$revision?.value);Number.isFinite($)&&b.set($,{id:$,...Number.isFinite(L)?{revision:L}:{},record:Y})}}let A=sR(M,C,b),w={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(x=>x.mode==="INSERT").length,updatedParents:A.filter(x=>x.mode==="UPDATE").length,hasDeletes:A.some(x=>x.tables.some(K=>K.deleteRows>0)),parents:A.map(x=>({parentRow:x.parentRow,mode:x.mode,...x.targetId===void 0?{}:{targetId:x.targetId},tables:x.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new Re(e.keyFields?"UPDATE":"INSERT",A.length)}let k=x=>new Map(Object.entries(x).map(([K,Y])=>[K,Y.value])),O=x=>oR(k(x.top),new Map([...x.subtables].map(([K,Y])=>[K,Y.map($=>({values:k($)}))]))),F=A.filter(x=>x.mode==="INSERT"),V=A.filter(x=>x.mode==="UPDATE"),G=[];for(let x=0;x<F.length;x+=100){let K=await t.postRecords({app:e.appId,records:F.slice(x,x+100).map(O)});G.push(K.ids)}for(let x=0;x<V.length;x+=100)await t.putRecords({app:e.appId,records:V.slice(x,x+100).map(K=>({id:K.targetId,...K.revision===void 0?{}:{revision:K.revision},record:O(K)}))});return e.keyFields?{type:"UPSERT",insertedCount:G.flat().length,updatedCount:V.length,affectedRows:A.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}:{type:"INSERT",createdIds:G,insertedCount:G.flat().length,affectedRows:A.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return aw(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:iw(),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};Sr.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 rp(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&Nt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??Qe,kn.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",Nc(s,t,n,r,i,1));return c(u)}let d=await(s.type==="UPSERT_SELECT"?pp(s,t,n,r,i):sp(s,t,n,r,i));return c(d)}async function ow(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");lR(t.records);let s=t.records.map(b=>b.recordNumberSourceValue??""),l=ec(s,e.recordNumberSourceHeader),c=[...e.replaceSubtables],d=[...new Set(r.filter(b=>!b.inSubtable&&b.fieldType==="SUBTABLE").map(b=>b.code))],u=await xe(i.getRecords,e.appId,"",["$id","$revision",...d],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let b of u){let _=Number(b.$id?.value),A=Number(b.$revision?.value);if(Number.isFinite(_)){p.set(_,{id:_,...Number.isFinite(A)?{revision:A}:{},record:b});for(let w of d){let k=b[w]?.value;if(Array.isArray(k)){for(let O of k)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:w}),f.set(O.id,F)}}}}}let R=l.normalized.map(b=>b===null?void 0:Number(b)),E=n.parents.map((b,_)=>{let A=[...b.errors];for(let k of l.errors[_])A.push({operation:"UPDATE",parentRow:b.parentRow,field:k.field,code:k.code,message:k.message,sourceValues:t.records[_].top});let w=R[_];return w!==void 0&&!p.has(w)&&A.push({operation:"UPDATE",parentRow:b.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...b,valid:A.length===0,errors:A}}),m=uR(t.records,E,R,p,f),y=m.flatMap(b=>[...b.errors]),g=new Set(m.filter(b=>!b.valid).map(b=>b.parentRow)),T={...n,parents:E,errors:y,invalidParentRows:g};qu(T,e.rejectLimit);let h=m.filter(b=>b.valid),I=m.flatMap(b=>b.tables),N=(b,_)=>I.filter(A=>A.table===b).reduce((A,w)=>A+Number(w[_]),0),D=Object.fromEntries(c.map(b=>[b,{existingRows:N(b,"existingRows"),inputRows:N(b,"inputRows"),updateRows:N(b,"updateRows"),addRows:N(b,"addRows"),deleteRows:N(b,"deleteRows"),rowIdNotFound:N(b,"rowIdNotFound")}])),P={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:h.length,insertedParents:0,updatedParents:h.length,hasDeletes:h.some(b=>b.tables.some(_=>_.deleteRows>0)),totalDeleteRows:h.flatMap(b=>b.tables).reduce((b,_)=>b+_.deleteRows,0),rowIdNotFound:h.flatMap(b=>b.tables).reduce((b,_)=>b+_.rowIdNotFound,0),invalidParents:g.size,parents:h.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))],U=Xu(y,M),C=[...M,...Ju];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&Nt(a,e.validationErrorTable,C,U,o.tempTableMaxRows??Qe,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-g.size,invalidRows:g.size,errorCount:U.length,columns:C,errors:U,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:h.length,invalid:g.size,mutationCandidates:h.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.");Nt(a,e.errorTable,C,U,o.tempTableMaxRows??Qe,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:P}))throw new Re("UPDATE",h.length)}let v=b=>new Map(Object.entries(b).map(([_,A])=>[_,A.value]));for(let b of h){let _=Qu(v(b.top),new Map([...b.subtables].map(([A,w])=>[A,w.map(k=>({...k.rowId?{rowId:k.rowId}:{},values:v(k.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:b.targetId,...b.revision===void 0?{}:{revision:b.revision},record:_}]})}return{type:"UPDATE",updatedCount:h.length,affectedRows:h.length,skippedRows:g.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}async function aw(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 ft(e.appId,e.fields,n,i),s=await $t(e.appId,e.fields,a,n,i),l=await Ja(t,new Map),c=Yu(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),d=c.recordNumberSourceValues;if(!d)throw new Error("InternalError: record-number source values were not materialized.");let u=ec(d,e.recordNumberSourceHeader),p=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),U=await n.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id"]});for(let C of U.records){let v=C.$id?.value;typeof v=="string"&&v!==""&&p.add(v.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"])),m=c.rows.map((P,M)=>{let U=u.normalized[M],C=[...c.importRowErrors?.[M]??[],...u.errors[M]];return U!==null&&!p.has(U)&&C.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${U} does not exist in APP${e.appId}`}),{rowNumber:M+1,operation:"UPDATE",mode:"update",...U!==null&&p.has(U)?{targetId:Number(U)}:{},payload:new Map([[e.recordNumberSourceHeader,d[M]],...e.fields.map(v=>[v,P[v]??""])]),preErrors:C,record:{},evaluationRow:P,evaluationFieldTypes:E}}),y=[e.recordNumberSourceHeader,...e.fields],g=tu(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),T=[...y,...sr],h={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-g.invalidRows,invalidRows:g.invalidRows,errorCount:g.errors.length,columns:T,errors:g.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&&Nt(o,e.validationErrorTable,T,g.errors,r.tempTableMaxRows??Qe,new Map),h}if(!e.onErrorSkip&&g.invalidRows>0){let P=g.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(Nt(o,e.errorTable,T,g.errors,r.tempTableMaxRows??Qe,new Map),e.rejectLimit!=null&&g.invalidRows>e.rejectLimit)throw new ji(`rejected rows (${g.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,h)}let I=m.filter(P=>!g.invalidRowNumbers.has(P.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new Re("UPDATE",I.length);let N=I.map(P=>({id:P.targetId,record:P.record}));for(let P=0;P<N.length;P+=100)await n.putRecords({app:e.appId,records:N.slice(P,P+100)});let D={type:"UPDATE",updatedCount:N.length,...e.onErrorSkip?{affectedRows:N.length,skippedRows:g.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(D,{insertedCount:0,importAudit:c.importAudit}),D}async function sw(e,t,n,r,i,o){let a=Sr.get(e);if(!a){let E=i&&i.size>0?await dt(e.select,t,n,i,r,!0):await Gt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:ue.get(E)}}let s=await Ja(a.handle,a.cache),l=n.maxRecords??1e4,c=new Map((o??[]).map(E=>[E.code,E])),d=e.fields.map(E=>({code:E,fieldType:c.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?Hu(a.source,s,d,l):Yu(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=cR(a.source.projection),f=new Map(i??[]);f.set(Zu,u);let R=await dt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:R.rows,columns:R.columns,columnMeta:ue.get(R)}}var ap={materialize:sw};function Om(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 sp(e,t,n,r,i){if(e.checkGroups?.length)return ro(e,t,n,r,i);let o=await ft(e.appId,e.fields,t,r),a=await $t(e.appId,e.fields,o,t,r),s=await ap.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(Om(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 Re("INSERT",l.length);let d=await Me(e.appId,t,r),u=l.map((f,R)=>{let E={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[R]?.has(m))return;let g=f[c[y]]??"";E[m]={value:wm(g,d.get(m))}}),E});u.forEach(f=>un([f],e.fields.filter(R=>R in f),o,a));let p=[];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});p.push(E.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function Pc(e,t,n,r,i){if(e.applyBlocks?.length)return Lm(e,t,n,r);if(e.checkGroups?.length&&pt(e.where)){let R=await ft(e.appId,e.assignments.map(m=>m.field),t,r);await $t(e.appId,e.assignments.map(m=>m.field),R,t,r);let E=await Me(e.appId,t,r);return Nm(e,E),Mn(e,Cc(E,e.appId)),await yr(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return ro(e,t,n,r,i);if(e.subtableCode)return await yr(e,t,r),bw(e,t,n,r);let o=await ft(e.appId,e.assignments.map(R=>R.field),t,r),a=e.assignments.map(R=>R.field),s=await $t(e.appId,a,o,t,r);if(await yr(e,t,r),pt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return hw(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await Mm(e.assignments,t,n,r);let c=await Me(e.appId,t,r);if(fa(e)){let R=Fl(e),m=(await at(t.getRecords,R.app,R.query,[...R.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=Gl(e,m,c,se(n));if(un(y.flatMap(g=>g.records.map(T=>T.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new Re("UPDATE",m.length);for(let g of y)await t.putRecords(g);return{type:"UPDATE",updatedCount:m.length}}let d=ti(e),p=(await La(t.getRecords,d.app,d.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=ni(e,p,c);if(un(f.flatMap(R=>R.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new Re("UPDATE",p.length);for(let R of f)await t.putRecords(R);return{type:"UPDATE",updatedCount:p.length}}async function Lm(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Ot(e.where))return lw(e,t,n,r,i);let o=await Q(e.appId,t,r),a=Mt(e,o),s=Ra(e,o),l=zl(e),c=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(c.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(c.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let d=Number(c.records[0].$id?.value);if(d!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${d} does not match requested $id ${l}.`);ha(c.records[0]);let u=Mf({statement:e,snapshot:c.records[0],fieldInfos:o,metadata:a,evaluationContext:se(n)}),p=gt(o,e.assignments.map(I=>I.field)),f=An(u.postImage,p)?await Ct(e.appId,t,r):void 0,R=Sn(u.postImage,p,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=Ze(n.dmlMaxRows,"dmlMaxRows",Bt),m=Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),y=u.parentRows>E||u.changedSubtableRows>m;if(e.validateOnly){let I=di({plans:[u],records:ai(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),N={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:zi(I.branches[0]),guards:qi(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 kn.set(N,Cs(R.columns,o,e.appId)),N}if(u.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${E}).`);if(u.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let g=ya(u,R.normalizedRecord),T=ai(g),h=di({plans:[g],records:T.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let I=Ns(h,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:h}))throw new Re("UPDATE",u.parentRows)}return await t.putRecords(T),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:Ye(h,{successfulChunks:1,successfulParents:u.parentRows})}}async function lw(e,t,n,r,i){let o=Ze(n.dmlMaxRows,"dmlMaxRows",Bt),a=Ze(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Pe),s=await Q(e.appId,t,r),l=Mt(e,s),c;if(gs(e))c=await dw(e,t,n,s,r);else{let f=Ra(e,s),R=ti(e).query,E=o+1;c=await xe(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 d=await Ia({statement:e,snapshots:c,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>Ct(e.appId,t,r)});if(e.validateOnly)return yw(e,d,s);qp("phase15b",e);let u=di(d);if(n.confirm){let f=Ns(u);if(!await n.confirm(d.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new Re("UPDATE",d.guards.parentRows)}let p=await tE(d,t,u);return{...p,diagnostic:Ye(u,p)}}function gs(e){return(e.applyBlocks?.length??0)>0&&!Ot(e.where)&&(jt(e.where)||be(e.where))}function uw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&gs(t)&&be(t.where)}var cw=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
|
|
16
16
|
OR / NOT \u914D\u4E0B\u306A\u3069 native query \u3078\u5B8C\u5168\u306B\u9069\u7528\u3067\u304D\u306A\u3044 KLIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002
|
|
17
|
-
WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function pw(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${cw}`)}async function dw(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=Au(e.where,{fieldTypes:s,fieldOptions:l});pw(c);let d=c.prefilter===null?"":j(c.prefilter),u=new Set(Ra(e,r));for(let R of fw(e.where))u.add(R);let p=await Ew(e.appId,e.where,a,t,i);return(await xe(t.getRecords,e.appId,d,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(R=>({snapshot:R,row:xt(R,null)})).filter(({row:R})=>le(e.where,R,p.fieldTypeResolver,c.appliedKlikes,p.fieldSemanticsResolver,se(n))).map(({snapshot:R})=>R)}function fw(e){return $c(e)}async function Ew(e,t,n,r,i){let s=[...Rw(t)].some(d=>n.get(d)?.fieldType==="STATUS")?await np(e,r,i):void 0;return{fieldTypeResolver:d=>d.field==="$id"?"NUMBER":n.get(d.field)?.fieldType,fieldSemanticsResolver:d=>{if(d.field==="$id")return Qn(ne({fieldType:"__ID__"}),e,"$id");let u=n.get(d.field);if(!u)return;let p=u.semantics??ne(u),f=u.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return Qn(f,e,u.code)}}}function Rw(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 mw(e,t,n){let r=t.validations.flatMap(d=>d.errors),i=t.validations.reduce((d,u)=>d+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...gt(n,e.fields).payloadFields,...ui],a=t.guards.parentRows,s=uu(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:zi(l),guards:qi(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return kn.set(c,Cs(o,n,e.appId)),c}function yw(e,t,n){let r=t.validations,i=r.flatMap(c=>c.errors),o=r.reduce((c,d)=>c+(d.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...gt(n,e.assignments.map(c=>c.field)).payloadFields,...ui],s=di(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:zi(s.branches[0]),guards:qi(s.branches[0]),deletedRows:{total:t.plans.reduce((c,d)=>c+d.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(c=>c.tables.some(d=>d.deletedRows>0)).length},diagnostic:s};return kn.set(l,Cs(a,n,e.appId)),l}function gw(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??[...gt(n,e.fields).payloadFields,...ui],l=cu(t),c=l.branches.find(R=>R.branch==="insert"),d=l.branches.find(R=>R.branch==="update"),u=zi(c),p=zi(d),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...u,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:qi(c)},update:{apply:p,guards:qi(d)}},deletedRows:{total:t.update.plans.reduce((R,E)=>R+E.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(R=>R.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return kn.set(f,Cs([...s],n,e.appId)),f}function zi(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:_n(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:_n(t,"ADD"),removedValues:_n(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function qi(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 Bt=100,Pe=500;function Ze(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 Cs(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:ne({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ve(s,n));continue}o.set(a,Z(i.has(a)?"number":"string"))}return o}async function hw(e,t,n,r,i,o){let a=await Cm(e,t,n,r,i,o),s=await Me(e.appId,n,i),l=Bl(e,a,s,se(r)),c=e.assignments.map(p=>p.field),d=await ee(e.appId,n,i),u=await $t(e.appId,c,d,n,i);if(un(l.flatMap(p=>p.records.map(f=>f.record)),c,d,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new Re("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function Aw(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 Sw(e,t,n,r){if(await yr(e,t,r),pt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Nw(e,t,n,r);let i=Cf(e),a=(await La(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 Re("DELETE",a.length);let s=Pf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function Tw(e,t,n){return e.values.map(r=>{let i={};return e.fields.forEach((o,a)=>{let s=r[a];i[o]={value:s.type==="CASE_VALUE"?Ut(s.expr,{},t.get(o),se(n)):mt(s,t.get(o))}}),i})}async function Iw(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return VI(e,t,n,r);if(e.checkGroups?.length)return ro(e,t,n,r);let i=await ft(e.appId,e.fields,t,r),o=await $t(e.appId,e.fields,i,t,r),a=[],s=[],l=await Me(e.appId,t,r),c=lp(e);if(Qc(Sm(e,t,n,i,c)).execution.status==="ELIGIBLE"){let f=Tw(e,l,n);return un(f,e.fields,i,o),Tm(e.appId,e.keyFields[0],f,c,t,n)}let u=await to(e.appId,e.keyFields,c,t,n,l);if(e.values.forEach((f,R)=>{let E={};e.fields.forEach((y,g)=>{let T=f[g];T.type==="CASE_VALUE"?E[y]={value:Ut(T.expr,{},l.get(y),se(n))}:E[y]={value:mt(T,l.get(y))}});let m=eo(u,c[R]);m!==void 0?s.push({id:m,record:E}):a.push(E)}),un([...a,...s.map(f=>f.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let f=a.length+s.length;if(!await n.confirm(f,"UPDATE"))throw new Re("UPDATE",f)}let p=[];for(let f=0;f<a.length;f+=100){let R=await t.postRecords({app:e.appId,records:a.slice(f,f+100)});p.push(R.ids)}for(let f=0;f<s.length;f+=100)await t.putRecords({app:e.appId,records:s.slice(f,f+100)});return{type:"UPSERT",insertedCount:p.flat().length,updatedCount:s.length}}function lp(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"?z(i):i.type==="CASE_VALUE"?Ge(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function up(e,t,n,r){if(t.length===0)return;let i=await Me(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 ww(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 xe(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Ps(a),l=new Map;for(let d of e.values){let u=LR(d[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((E,m)=>{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:LR(d[m])}}});let R=l.get(u);R?R.push(f):l.set(u,[f])}let c=[];for(let[d,u]of l.entries()){let p=s.get(d),R=[...io(p,i),...u];c.push(_m(e.appId,d,oo(p),i,R))}for(let d of c)await t.putRecords(d);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function bw(e,t,n,r){let i=e.subtableCode;if(!xi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Kt(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&Rs(p.value.expr,o);let a=await up(e.appId,o,t,r),s=await xe(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=cp(s,i).filter(p=>le(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new Re("UPDATE",c.length);let d=new Map;for(let p of c){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=d.get(p.parentId);f||(f=new Map,d.set(p.parentId,f));let 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:Ea(E.value,p.flat,a,se(n))}}f.set(p.rowId,R)}let u=Ps(s);for(let[p,f]of d.entries()){let R=u.get(p);if(!R)continue;let m=io(R,i).map(y=>{let g=y.id??"";if(!g)return y;let T=f.get(g);return T?{id:g,value:T}:{id:g}});await t.putRecords(Cw(e.appId,p,oo(R),i,m))}return{type:"UPDATE",updatedCount:c.length}}async function Nw(e,t,n,r){let i=e.subtableCode;if(!xi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Kt(e.where,o);let a=await up(e.appId,o,t,r),s=await xe(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=cp(s,i).filter(p=>le(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"DELETE"))throw new Re("DELETE",c.length);let d=new Map;for(let p of c){let f=d.get(p.parentId);f?f.push(p.rowIndex):d.set(p.parentId,[p.rowIndex])}let u=Ps(s);for(let[p,f]of d.entries()){let R=u.get(p);if(!R)continue;let E=io(R,i),m=new Set(f),y=E.filter((g,T)=>!m.has(T));await t.putRecords(_m(e.appId,p,oo(R),i,y))}return{type:"DELETE",deletedCount:c.length}}function Ps(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function cp(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=oo(r),a=io(r,t);for(let s=0;s<a.length;s++){let l=a[s],c={...ma(l,s),_pid:i};for(let[d,u]of Object.entries(r))d!==t&&(c[`_p.${d}`]=Oc(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:c})}}return n}function io(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function oo(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function _m(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Cw(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Pw(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 LR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved variable @${e.name} reached INSERT evaluation.`);return e.type==="STRING"?e.value:e.type==="NUMBER"?z(e):e.type==="CASE_VALUE"?Ge(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Oc(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 xi(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return xi(e.left)||xi(e.right);case"NOT":case"GROUP":return xi(e.expr);default:return!1}}async function Ow(e,t,n,r){let i=[];Kt(e.where,i);let o=await up(e.appId,i,t,r),a=await ee(e.appId,t,r);if(pt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??ne(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 xe(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=cp(c,e.subtableCode),u=e.all?new Set(c.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(d.filter(f=>e.where&&le(e.where,f.flat,o,void 0,l,se(n))).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new Re("UPDATE",u.size);let p=Ps(c);for(let f of u){let R=p.get(f);if(!R)continue;let m=io(R,e.subtableCode).map((g,T)=>({row:g,i:T,flat:Lw(R,e.subtableCode,g,T)}));m.sort((g,T)=>_w(g.flat,T.flat,e.by,l,se(n)));let y=m.map(g=>g.row.id??"");await t.putRecords(Pw(e.appId,f,oo(R),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function Lw(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}`]=Oc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Oc(a?.value);return i}function _w(e,t,n,r,i={}){for(let o of n){let a=_R(o.key,e,i),s=_R(o.key,t,i),l=o.key.type==="FIELD_NAME"?r(Ue(o.key.name)):o.key.type==="ARITH_KEY"?B("number"):o.key.type==="FUNC_KEY"?vn(o.key.expr).semantics??B("string"):B("number"),c=ot(a,s,l??B("string"));if(c!==0)return o.direction==="ASC"?c:-c}return 0}function _R(e,t,n={}){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ye(e.expr,t,n));case"FUNC_KEY":return ge(e.expr,t,void 0,void 0,n);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function pp(e,t,n,r,i){if(e.checkGroups?.length)return ro(e,t,n,r,i);let o=await ft(e.appId,e.fields,t,r),a=await $t(e.appId,e.fields,o,t,r),s=await ap.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(Om(s),c.length!==e.fields.length){let g=c.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${c.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let d=[],u=[],p=await Me(e.appId,t,r),f=l.map((g,T)=>{let h={};return e.fields.forEach((I,N)=>{if(s.importPresence&&!s.importPresence[T]?.has(I))return;let D=g[c[N]]??"";h[I]={value:wm(D,p.get(I))}}),h});f.forEach(g=>un([g],e.fields.filter(T=>T in g),o,a));let R=f.map(g=>e.keyFields.map(T=>String(g[T]?.value??"")));if(Qc(Sm(e,t,n,o,R)).execution.status==="ELIGIBLE")return Tm(e.appId,e.keyFields[0],f,R,t,n);if(Sr.has(e)){let g=e.keyFields.map(h=>p.get(h)==="NUMBER"),T=new Set;for(let h of R){let I=ln(h,g);if(T.has(I))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");T.add(I)}}let m=await to(e.appId,e.keyFields,R,t,n,p);if(f.forEach((g,T)=>{let h=eo(m,R[T]);h!==void 0?u.push({id:h,record:g}):d.push(g)}),n.confirm&&d.length+u.length>0){let g=d.length+u.length;if(!await n.confirm(g,"UPDATE"))throw new Re("UPDATE",g)}let y=[];for(let g=0;g<d.length;g+=100){let T=await t.postRecords({app:e.appId,records:d.slice(g,g+100)});y.push(T.ids)}for(let g=0;g<u.length;g+=100)await t.putRecords({app:e.appId,records:u.slice(g,g+100)});return{type:"UPSERT",insertedCount:y.flat().length,updatedCount:u.length}}var dp=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),fp=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 Dm(e){let t=await e.getApps(),n=[...dp],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 vm(e,t,n){let r=await ee(e.appId,t,n),i=[...fp],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 Dw(e,t=!1){try{let n=new tn(e).tokenize(),r=new nn(n,{import:t}).parse();return Yn("phase15b",r),it(r),r}catch(n){throw n instanceof De||n instanceof S,n}}async function Ji(e,t,n,r,i,o){let a=[];cs(e,t,n,r,a,i,o),await Promise.all(a)}async function Um(e,t,n,r,i,o){let a=[];for(let s of e.columns)if(s.type==="CASE_COL")for(let l of s.expr.branches)a.push(Ji(l.condition,t,n,r,i,o));await Promise.all(a)}function Fi(e,t,n,r,i){return i!==void 0&&i.size>0?dt(e,t,n,i,r):Gt(e,t,n,r)}function cs(e,t,n,r,i,o,a){if(e!==null)switch(e.type){case"BINARY":{let s=e.right;s.type==="SUBQUERY_IN_LIST"&&i.push(Fi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);let c=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(d=>d[c]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(Fi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);if(l.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(l.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let c=l.columns[0]??"";s.resolved=l.rows[0]?.[c]??""}));break}case"LOGICAL":cs(e.left,t,n,r,i,o,a),cs(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":cs(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(Fi(s.query,t,n,r,a).then(l=>{for(let c of l.warnings??[])o.add(c);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function Mm(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Gt(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 km(e,t,n,r,i,o){let a=new Map,s=[];for(let d=0;d<e.length;d++){let u=e[d];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let p=JSON.stringify(u.query),f=a.get(p);f||(f=Fi(u.query,t,n,r,o).then(R=>{for(let m of R.warnings??[])i.add(m);if(R.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(R.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 E=R.columns[0]??"";return R.rows[0]?.[E]??""}),a.set(p,f)),s.push([d,f])}let l=await Promise.all(s.map(([,d])=>d)),c=new Map;return s.forEach(([d],u)=>c.set(d,l[u])),c}var xm=new WeakMap,Fm=new WeakMap,Km=new WeakMap,Lc=new WeakMap,Ep=new WeakMap,Gm=new WeakMap,$m=new WeakMap;async function Bm(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))},d=new Map,u=new Map,p=new Map,f=new Set,R=i??await Qi(e,c,n),E=C=>R.nodes.find(v=>v.source===C||JSON.stringify(v.source)===JSON.stringify(C)),m=new Map(o??[]),y=new Set(o?.keys()??[]),g=new Map([...o??new Map].map(([C,v])=>[C,v.rows.length])),T=new WeakMap,h=C=>ce(C)??(C.appId>0?`APP${C.appId}`:"source"),I=C=>C.cteName===Le?1:C.cteName!==null?g.get(C.cteName)??null:null,N=C=>{let v=I(C.from),b=h(C.from),_=[];for(let w of C.joins){let k=I(w.table),O=h(w.table);if(w.type==="CROSS"){let F=v!==null&&k!==null?Ei(v,k):null;_.push({leftLabel:b,rightLabel:O,leftRows:v,rightRows:k,plan:F,rightRuntimeLabel:w.table.cteName===null?`APP${w.table.appId} fetched rows`:`${O} materialized rows`}),v=F?.outputRows??null,b=`${b} \xD7 ${O}`}else v=null,b=`${b} ${w.type} JOIN ${O}`}if(_.length>0&&Ep.set(C,_),pt(C.where)?v=0:C.where!==null&&(v=null),(te(C).type!=="NONE"||C.distinct||C.having!==null||Jn(C)||C.columns.some(w=>w.type==="WINDOW_COL"))&&(v=null),v!==null){let w=C.offset??0;v=Math.max(0,v-w),C.limit!==null&&(v=Math.min(v,C.limit)),T.set(C,v)}},D=async C=>{let v=[C.from,...C.joins.map(_=>_.table)];if(v.length>1&&C.columns.some(_=>_.type==="WILDCARD"||_.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 _ of v){if(_.cteName!==null){if(_.cteName===Le)continue;let w=m.get(_.cteName);if(!w)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${_.cteName}.`);b.push(...w.columns);continue}let A=await ee(_.appId,c,n);_.subtableCode?(b.push(...A.filter(w=>w.inSubtable&&(w.subtableCode===_.subtableCode||w.subtableCode===void 0)).map(w=>w.code)),b.push("_pid","_rid","_idx"),b.push(...A.filter(w=>!w.inSubtable).map(w=>`_p.${w.code}`))):(b.push(...A.filter(w=>!w.inSubtable).map(w=>w.code)),b.push(...wo))}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 v=C;if(v.type==="SELECT"){let b=C,_=await D(b);if(b.columns.length===1&&b.columns[0].type==="WILDCARD")return _;let A=[];for(let w of b.columns)w.type==="WILDCARD"?A.push(..._):w.type==="PARENT_WILDCARD"?A.push(..._.filter(k=>k.startsWith("_p."))):A.push(...wn([],[w]).columns);return A}if(v.type==="UNION")return P(v.left);if(v.type==="SHOW_APPS")return[...dp];if(v.type==="DESCRIBE")return[...fp];if(v.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 v=C;if(v.type==="WITH"){let b=C;for(let _ of b.ctes){if(await M(_.query),_.query.type==="GENERATE_SERIES"){if(_.query.args.some(k=>k.type==="VARIABLE")){m.set(_.name,{rows:[],columns:[_.query.columnAlias]});continue}let w=hm(_.query);m.set(_.name,{rows:w.rows,columns:w.columns,columnMeta:ue.get(w),uniqueGeneratedColumn:_.query.columnAlias}),y.add(_.name),g.set(_.name,w.rows.length);continue}let A=await P(_.query);if(m.set(_.name,{rows:[],columns:A}),_.query.type==="SELECT"){let w=T.get(_.query);w!==void 0&&g.set(_.name,w)}}await M(b.query);return}if(v.type==="UNION"){await M(v.left),await M(v.right);return}if(v.type==="SELECT"){let b=C;N(b);for(let w of b.columns)w.type==="SCALAR_SUBQUERY_COL"&&await M(w.query);if(await M(b.where),await M(b.having),await Vi(b,c,n,m),![b.from,...b.joins.map(w=>w.table)].some(w=>w.cteName!==null&&!m.has(w.cteName))){let w=await gr(b,c,n,m);w&&p.set(b,w)}return}for(let b of Object.values(v))await M(b)};await M(e);let U=async C=>{if(C===null||typeof C!="object"||f.has(C))return;if(f.add(C),Array.isArray(C)){await Promise.all(C.map(U));return}let v=C;if(v.type==="SELECT"){let b=C;await Vi(b,c,n);let _=[b.from,...b.joins.map(L=>L.table)].some(L=>L.cteName!==null);if(te(b).type==="PLAIN"&&!_){let L=await gr(b,c,n);L&&p.set(b,L)}let A=[b.from,...b.joins.map(L=>L.table)].filter(L=>L.cteName===null).map(L=>L.appId);(Tt(b.where)||b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0))&&A.forEach(L=>a.add(L));let{resolver:k,rewrites:O}=await On(b,c,n);O.length>0&&Lc.set(b,O);let F=Se(b.where,k),V=E(b);if(F.capability==="UNSUPPORTED"&&!V)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(F)}).`);d.set(b,F);let G=await Ts(b,c,n),K=Hc.get(b)??Ss(b,G);K&&xm.set(b,K);let Y=K??mn(b,G);Fm.set(b,Y);let $=new Map;for(let L of b.joins){let W=L.table.alias;if(L.type!=="INNER"||!W||L.table.subtableCode)continue;let X=L.on.left.tableAlias,he=L.on.right.tableAlias;if(!X||!he)continue;let tt=X===W&&he!==W?he:he===W&&X!==W?X:void 0,ie=X===W?L.on.right.field:L.on.left.field,Vt=X===W?L.on.left.field:L.on.right.field;if(!tt)continue;let Wt=[b.from,...b.joins.map(Oe=>Oe.table)].find(Oe=>ce(Oe)===tt),Fs;if(L.table.cteName!==null)Fs=m.get(L.table.cteName)?.columnMeta?.get(Vt);else{let Oe=(await ee(L.table.appId,c,n)).find(nt=>nt.code===Ee(L.table,Vt));Fs=Oe?ve(Oe,L.table.appId):Xe(Vt)}let Ks,Gs,Np,Cp;if(Wt?.cteName!==null&&Wt?.cteName!==void 0){let Oe=m.get(Wt.cteName);Ks=Oe?.columnMeta?.get(ie),y.has(Wt.cteName)&&Oe&&(Np=Oe.rows.length,Gs=Oe.rows.map(nt=>ep(nt[ie])),Cp=Gs.some(nt=>nt.length===0))}else if(Wt){let Oe=(await ee(Wt.appId,c,n)).find(nt=>nt.code===Ee(Wt,ie));Ks=Oe?ve(Oe,Wt.appId):Xe(ie)}let fo=Ru({fieldType:Fs?.fieldType,sourceSemantics:Ks?.semantics,sourceRowCount:Np,values:Gs,hasEmptyValue:Cp,maxInKeys:ls});if(fo.kind==="FALLBACK"&&fo.reason==="JOIN_KEY_VALUES_RUNTIME"&&(K?.joinPlan.items.some(nt=>nt.targetAlias===W)||K?.joinPlan.serverFunctionConsumptions.some(nt=>nt.targetAlias===W)))continue;let by=Eu(fo,Vt,Hi),Pp=Y.joinConditions.get(W),Ny=Pp?j(Pp):void 0,Cy=Y.joinRelations.get(W);$.set(W,{plan:fo,queries:by,additionalQuery:Ny,additionalRelation:Cy})}if($.size>0&&Km.set(b,$),b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0)){let L=await Yi(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(fs(b)&&!_&&V?.allowed!==!1){let W=F.capability==="EXACT_PUSHDOWN"?We(b):"FULL_SCAN";u.set(b,(b.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:b,staticMode:W,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:L.semantics,maxRecords:r,hasKlike:be(b.where)}))}}}else if(v.type==="VALIDATE"){let b=C;a.add(b.appId);let _=await ee(b.appId,c,n),A=new Map(_.filter(L=>!L.inSubtable).map(L=>[L.code,L])),w=new Set(_.filter(L=>L.inSubtable).map(L=>L.code)),k=ou(b,_),O=or(b.checkGroups??[]),F=$c(b.where);for(let L of O){if(L.field!=="$id"&&!A.has(L.field)&&!w.has(L.field))throw Ce(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${b.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!A.has(L.field)&&w.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"&&!A.has(L)&&!w.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${b.appId}.`);if(L!=="$id"&&!A.has(L)&&w.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 V=new Map([...A].map(([L,W])=>[L,W.fieldType]));V.set("$id","RECORD_NUMBER"),Mn(b,V);let G=Se(b.where,L=>L.field==="$id"?ne({fieldType:"__ID__"}):A.get(L.field)?.semantics??(A.has(L.field)?ne(A.get(L.field)):void 0));if(G.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(G)}).`);let x=new Map([...A].map(([L,W])=>[L,W.fieldType])),K=new Map([...A.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),Y=b.where===null?null:G.capability==="EXACT_PUSHDOWN"?b.where:El(b.where,{allowUnqualifiedFields:!0,fieldTypes:x,fieldOptions:K,allowKlike:!1}),$=k.some(L=>L.field.fieldType==="NUMBER");$&&(l.add(b.appId),await Ct(b.appId,c,n)),Gm.set(b,{targetFields:k.map(L=>L.subtableCode?`${L.subtableCode}(${L.field.code})`:L.field.code),fetchFields:[...new Set(["$id",...k.map(L=>L.subtableCode??L.field.code),...F,...O.map(L=>L.field)])],subtables:new Map([...new Set(k.flatMap(L=>L.subtableCode?[L.subtableCode]:[]))].map(L=>[L,k.filter(W=>W.subtableCode===L).length])),capability:G,prefilter:Y,numberPrecision:$})}else if(v.type==="UPDATE"||v.type==="DELETE"){if(a.add(C.appId),v.type==="UPDATE"&&C.applyBlocks?.length){let _=C,A=await ee(_.appId,c,n);if(Mt(_,A),gs(_)){let w=A.filter(O=>!O.inSubtable),k=Au(_.where,{fieldTypes:new Map(w.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(w.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});$m.set(_,k)}}let b=C;(b.type!=="UPDATE"||!gs(b))&&E(b)?.allowed!==!1&&await yr(b,c,n)}await Promise.all(Object.values(v).map(U))};if(await U(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Jt(e)){let C=Xt(e),{resolver:v,rewrites:b}=await On(C,c,n);b.length>0&&Lc.set(C,b);let _=Se(C.where,v),A=E(C);if(_.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(_)}).`);if(d.set(C,_),fs(C)&&A?.allowed!==!1){let w=await Yi(C,c,n);u.set(C,(C.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:C,staticMode:_.capability==="EXACT_PUSHDOWN"?We(C):"FULL_SCAN",whereCapability:_.capability,whereReasons:_.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:be(C.where)}))}}return{capabilities:d,orderPlans:u,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function _c(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 vw(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 DR(e){return e==="<>"?"!=":e}function ut(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(ut).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return ut(t.expr);case"GROUPING_FIELD":return`GROUPING(${ut(t.ref)})`;case"GROUPING_REF":return ut(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${ut(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${ut(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(ut).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(ut).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Cn(e){try{let t=e;switch(t.type){case"BINARY":return`${ut(t.left)} ${vw(t.op)} ${ut(t.right)}`;case"NULL_CHECK":return`${ut(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Cn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Cn(t.right)})`;case"NOT":return`NOT (${Cn(t.expr)})`;case"GROUP":return`(${Cn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Dc(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=re(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?Uw(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let c=sc(l),d=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${ac(c)}: ${c}`,` ${lc(c)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${d}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Cn(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(re)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!re(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=sc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=DR(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${ac(l)}: ${l}`,` ${lc(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${vR(i.prefilterPlan.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}let o=n.prefilterPlan;if(n.allowed&&o?.prefilterWhere&&o.residualWhere){for(let s of o.exactRelativeLeaves){let l=sc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=DR(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${ac(l)}: ${l}`,` ${lc(l)}: kintone server exact prefilter`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=j(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Cn(o.residualWhere)}`,` ${vR(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!re(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 Uw(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,c=l?.type==="KINTONE_FUNC"&&l.name===t,d=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((c||d)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function ac(e){return re(e)?"relative date function":"kintone function"}function sc(e){return e.right.type==="KINTONE_FUNC"?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"?e.right.values[0].name:"(unknown)"}function lc(e){return re(e)?"relative date evaluation":"kintone function evaluation"}function vR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&re(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var Vm=new WeakMap;function vc(e,t){if(Array.isArray(e))return e.map(r=>vc(r,t));if(e===null||typeof e!="object")return e;let n=e;if(n.type==="GENERATE_SERIES"){let r=new Map,i=new Set,o=n.args.map((s,l)=>{if(s.type!=="STRING"||s.fromVariable!==!0||!s.value.startsWith("@"))return s;let c=s.value.slice(1);r.set(l,c);let d=t.get(c);return d===void 0?{type:"VARIABLE",name:c}:(i.add(l),{type:"STRING",value:d,fromVariable:!0})}),a={...n,args:o};return Vm.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,vc(i,t)]))}function Di(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...dp]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...fp]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let c=Di(l.query,s);s.set(l.name,c)}return Di(e.query,s)}if(e.type==="UNION"){let s=Di(e.left,t),l=Di(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Le);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...wn([],[s]).columns);return{status:"STATIC",columns:a}}function Mw(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function kw(e,t,n,r){let i=new Map,o=async a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){for(let l of a)await o(l);return}let s=a;if(s.type==="SELECT"){let l=a,c=[l.from,...l.joins.map(d=>d.table)];if(c.some(d=>d.cteName!==null)&&c.every(d=>d.cteName===Le||d.cteName!==null&&r.has(d.cteName))){let d=await gr(l,t,n,r);d&&i.set(l,d)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var Wm=Symbol("ksql.explainFetchPlan");function Rp(e){return e[Wm]}function Hm(e,t){e[Wm]=t}async function Ym(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Pe,c=!0,d,u,p,f,R,E={surface:"DOCUMENT_ONLY"}){let m=Nl(f??new Date,R),y=St({recursiveCteMaxDepth:d,recursiveCteMaxRows:u,recursiveCteMaxExpansions:p}),g=Mc(r);try{let{statements:T,meta:h}=ku(e,{import:a}),I=Ol(T),N=pu(T,n),D=zR(T,N),P=new Map;for(let[_,A]of Object.entries(m.values))P.set(Yr(_),{type:"string",value:A});let M=new Map,U=new Map,C=[],v=[];for(let _=0;_<T.length;_++){let A=T[_],w=A.type==="SET_VARIABLE"?A.expr.type==="SCALAR_SUBQUERY"?{...A,expr:ds(A.expr,P)}:A:ds(A,P),k=vc(w,M);it(k);let O=await Qi(k,t,g),F=Mw(U),V=c?await Bm(k,t,g,i,O,F):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:O};if(!c){let W=await kw(k,t,g,F);for(let[X,he]of W)V.plainGroupByPlans.set(X,he)}let G;if(k.type==="CREATE_TEMP_TABLE"){let W=new Map([...U].map(([he,tt])=>[he,tt.status==="STATIC"?{status:"STATIC",columns:tt.columns}:{status:"DEFERRED"}])),X=Di(k.query,W);G=X.status==="STATIC"?{status:"STATIC",columns:X.columns,relation:{rows:[],columns:[...X.columns]},producerStatement:_+1}:{status:"DEFERRED",producerStatement:_+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},U.set(k.name,G)}let x={sources:[]},K=O.hasServerOnlyWhereFunction&&!O.allowed?Dc(O):[...Dc(O),...zm(Kw(k,I.statements[_],V.capabilities,V.orderPlans,V.plainGroupByPlans,s,l,x,U,G,{maxRecords:i,recursiveLimits:y}),o)],Y=_c(V),$=h.dialect===1?xw(k,I.statements[_],i,s):[],L=await Am(k,g,E);C.push({index:_,type:I.statements[_].statementType,plan:K.length===0?[...Y,...L,...$]:[K[0],...Y,...K.slice(1),...L,...$]}),v.push({index:_,fetch:mp(x.sources),sources:x.sources}),k.type==="DROP_TEMP_TABLE"&&U.delete(k.name),(A.type==="SET_VARIABLE"||A.type==="DECLARE_VARIABLE")&&(P.set(A.name,A.type==="DECLARE_VARIABLE"&&A.annotation==="RELATIVE_DATE"?{type:"relative-date",value:D.get(A.name)}:A.type==="SET_VARIABLE"&&A.expr.type==="ARRAY"?{type:"array",elements:A.expr.elements.map(W=>({type:"string",value:W.value}))}:{type:"string",value:`@${A.name}`,placeholder:!0}),A.type==="DECLARE_VARIABLE"&&A.annotation===void 0&&(A.default.type==="STRING"||A.default.type==="NUMBER")&&M.set(A.name,A.default.type==="STRING"?A.default.value:z(A.default)))}let b={statementCount:T.length,statements:C};return Hm(b,{statements:v}),b}finally{tp(g)}}function xw(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=Fw(e);(e.type==="UPDATE"||e.type==="DELETE")&&!o.includes(`APP${e.appId}`)&&o.unshift(`APP${e.appId}`);let a=Math.ceil(n/500);for(let c of o)i.push(` read ${c}: \u4E0D\u660E\uFF08\u4E0A\u9650 maxRecords=${n} \u3068\u4EEE\u5B9A: \u6700\u5927 ${a} \u56DE\u3001500 \u4EF6/\u56DE\uFF09`);let s=[...new Set([...t.appIds,...t.targetAppId===null?[]:[t.targetAppId]])];i.push(` metadata: GET form fields \xD7 ${s.length} \u30A2\u30D7\u30EA\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\u6E08\u307F\u306F\u8FFD\u52A0 0 \u56DE\uFF09`),(e.type==="UPSERT"||e.type==="UPSERT_SELECT")&&(e.type==="UPSERT"?i.push(` UPSERT pre-read: ${Math.ceil(e.values.length/Rr)} \u56DE\uFF08${e.values.length} \u884C\u3001${Rr} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/Rr)} \u56DE\u3001${Rr} \u30AD\u30FC/\u56DE\uFF09`));let l=e.type==="INSERT"||e.type==="UPSERT"?e.values.length:null;return(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPSERT"||e.type==="UPSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE")&&(i.push(l===null?` write: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/100)} \u56DE\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`:` write: ${Math.ceil(l/100)} \u56DE\uFF08${l} \u884C\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`),i.push(" reference: bulkRequest \u306F\u672A\u5B9F\u88C5\u3002\u66F8\u8FBC\u30B5\u30D6\u30EA\u30AF\u30A8\u30B9\u30C8\u6570\u306F HTTP \u66F8\u8FBC\u56DE\u6570\u3068\u540C\u3058")),i}function Fw(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(typeof i.appId=="number"&&Object.prototype.hasOwnProperty.call(i,"alias")&&Object.prototype.hasOwnProperty.call(i,"cteName")&&i.cteName===null&&i.appId>0){let o=`APP${i.appId}`,a=typeof i.subtableCode=="string"?`$${i.subtableCode}`:"",s=typeof i.alias=="string"&&i.alias!==o?` AS ${i.alias}`:"";t.push(`${o}${a}${s}`)}Object.values(i).forEach(n)};return n(e),t}function Kw(e,t,n,r,i,o=100,a=Pe,s={sources:[]},l=new Map,c,d=jm()){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",...c?.status==="STATIC"?[` schema: ${c.columns.join(", ")}`,` schema source: SELECT output of statement ${c.producerStatement}`]:c?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${c.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Qe} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Er(e.query,t,n,r,i,s,"main",l,d).map(u=>` ${u}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let u=Ki(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:",...Er(e.expr.query,u,n,r,i,s,"main",l,d).map(p=>` ${p}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Er(e.query,t,n,r,i,s,"main",l,d);if(e.type==="ASSERT"){let u=[`ASSERT${e.warn===!0?" WARN":""} ${e.text}${e.message!==void 0?`, '${e.message.replace(/'/g,"''")}'`:""}`,e.warn===!0?" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F\u8B66\u544A\u3068\u3057\u3066\u8A18\u9332\u3057\u3001\u5F8C\u7D9A\u6587\u3092\u7D9A\u884C\uFF09":" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,R)=>{u.push(p.length>1?` subquery[${R+1}]:`:" subquery:");let E=Ki(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Er(f.query,E,n,r,i,s,"main",l,d).map(m=>` ${m}`))}),u}if(e.type==="EXIT"){let u=[`EXIT SUCCESS IF ${e.text}, '${e.message.replace(/'/g,"''")}'`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u6210\u7ACB\u6642\u306F\u6B63\u5E38\u7D42\u4E86\u3057\u3001\u4EE5\u964D\u306E\u6587\u306F skippedReason: exit\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,R)=>{u.push(p.length>1?` subquery[${R+1}]:`:" subquery:");let E=Ki(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Er(f.query,E,n,r,i,s,"main",l,d).map(m=>` ${m}`))}),u}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Os(e,void 0,n,r,o,a,1e4,i):Er(e,t,n,r,i,s,"main",l,d)}function Ki(e){if(Array.isArray(e))return e.some(Ki);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Ki)}return!1}function Er(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=jm()){if(t.tempTablesReferenced.length===0)return Os(e,void 0,n,r,100,Pe,l.maxRecords,i,!0,o,a,l.recursiveLimits);let c=[];e.type==="INSERT_SELECT"?c.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&c.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),c.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),c.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let d=t.tempTablesReferenced.map(f=>[f,s.get(f)]);for(let[f,R]of d)R?.status==="STATIC"?c.push(` source: temp table ${f} (schema from statement ${R.producerStatement})`):(c.push(` source: temp table ${f}`),c.push(" schema: deferred (could not be derived statically)"));c.push(" rows: runtime (not materialized by EXPLAIN)");let u=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;u&&c.push(...qm(u,i?.get(u),d.some(([,f])=>f?.status!=="STATIC"))),c.push(d.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),c.push(" records API: none");let p=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return p.length>0&&c.push(` app: ${p.map(f=>`APP${f}`).join(", ")}`),c.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),c}var Uc=new WeakMap;function jm(){return{maxRecords:1e4,recursiveLimits:St({})}}async function Gw(e,t,n,r,i,o=100,a=Pe,s,l,c,d,u={surface:"DOCUMENT_ONLY"}){let p=St({recursiveCteMaxDepth:l,recursiveCteMaxRows:c,recursiveCteMaxExpansions:d}),f=s??await Qi(e.query,t,n),R=await Bm(e.query,t,n,r,f,Uc.get(e)),E={sources:[]},m=Dc(f),y=f.hasServerOnlyWhereFunction&&!f.allowed?[..._c(R),...m]:[..._c(R),...m,...zm(Os(e.query,void 0,R.capabilities,R.orderPlans,o,a,r,R.plainGroupByPlans,!0,E,"main",p),i)],g=await Am(e,n,u),T=ps([...y,...g],E.sources),h={type:"SELECT",columns:["plan"],rows:T.map(I=>({plan:I})),rowCount:T.length};return Hm(h,{statements:[{index:0,fetch:mp(E.sources),sources:E.sources}]}),h}function zm(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 Os(e,t,n,r,i=100,o=Pe,a=1e4,s,l=!0,c,d="main",u=St({})){let p=c??{sources:[]};if(e.type==="UNION"){let R=Hw(e,n,r,s,p);return l?ps(R,p.sources):R}if(e.type==="WITH"){let R=jw(e,n,r,s,p,a,u);return l?ps(R,p.sources):R}if(e.type==="INSERT")return Jw(e,t,i,o);if(e.type==="INSERT_SELECT")return Xw(e,t,n,r,s);if(e.type==="UPSERT")return tb(e,t,i,o);if(e.type==="UPSERT_SELECT")return nb(e,t,n,r,s);if(e.type==="UPDATE")return Qw(e,t,n,r,i,o,a);if(e.type==="DELETE")return eb(e,t);if(e.type==="REORDER")return rb(e,t);if(e.type==="VALIDATE")return Vw(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let m=e.targets?.filter(y=>y.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...m.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let R=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(m=>m.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${R} 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",...E?[" 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&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=ct(e,t,n,r,s,!0,!0,p,d);return l?ps(f,p.sources):f}var UR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function mp(e){return e.reduce((t,n)=>UR[t]>=UR[n.fetch]?t:n.fetch,"none")}function ps(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${mp(t).toUpperCase()}`,...n]}function $w(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function ns(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:$w(o)};return e.sources.push(s),s}function Bw(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function rs(e){return` fetch: ${Bw(e)}`}function Vw(e,t){let n=Gm.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)":j(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?Gc:Kc).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 Ww(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 qm(e,t,n){let r=te(e);if(r.type!=="PLAIN")return[];let i=[];if(t)t.items.forEach((o,a)=>{let s=r.allItems[a];s?.type==="FIELD_NAME"&&(o.kind==="PHYSICAL"?i.push(` group key ${s.name}: PHYSICAL (source=${o.sourceIndex}, field=${o.fieldCode})`):o.kind==="ALIAS_SAFE"?i.push(` group key ${s.name}: ALIAS_SAFE (column=${o.columnIndex})`):o.kind==="EXPRESSION"&&i.push(` group key ${s.name}: EXPRESSION`))});else if(n)for(let o of r.allItems)o.type==="FIELD_NAME"&&i.push(` group key ${o.name}: DEFERRED (temp table schema unavailable)`);return i}function ct(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let c=n?.get(e)??(n?[...n].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),d=r?.get(e)??(r?[...r].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),p=o&&c!==void 0&&fm(e,c),f=p?"COUNT_TOTAL_COUNT":d?.kind==="CANONICAL_LOCAL"||c&&c.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":We(e),R=zw(e);c&&c.capability!=="EXACT_PUSHDOWN"&&R.push(...c.reasons.map(h=>h.code));let E=[],m=oE(e,Bi.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let h of Ep.get(e)??[]){if(E.push(` cross join: ${h.leftLabel} \xD7 ${h.rightLabel}`),E.push(` left rows: ${h.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${h.rightRows??`runtime (${h.rightRuntimeLabel})`}`),h.plan)E.push(` rows: ${h.plan.outputRows}`),E.push(` row guard: ${h.plan.outputRows} / ${h.plan.limit}`),E.push(" guard timing: before row materialization");else{let I=h.leftRows===null?"left rows":String(h.leftRows),N=h.rightRows===null?"right rows":String(h.rightRows);E.push(` rows: runtime (${I} \xD7 ${N})`),E.push(` row guard: runtime checked / ${mu}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let h of Lc.get(e)??ZR.get(e)??[])E.push(Ww(h));m&&(E.push(` grouping source: ${m.source}`),E.push(` grouping sets: ${m.expandedSetCount} (limit: ${m.setLimit})`),E.push(` grouping items: ${m.groupingItemCount} (limit: ${m.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${m.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),E.push(...qm(e,u,[e.from,...e.joins.map(h=>h.table)].some(h=>h.cteName!==null)));for(let h of e.columns){if(h.type!=="WINDOW_COL"||h.windowKind===void 0||h.windowKind==="RANKING")continue;let I=[];h.partitionBy.length>0&&I.push(`PARTITION BY ${h.partitionBy.map(N=>N.tableAlias?`${N.tableAlias}.${N.field}`:N.field).join(", ")}`),h.orderBy.length>0&&I.push(`ORDER BY ${h.orderBy.map(Jm).join(", ")}`),h.windowKind==="VALUE"?E.push(` window ${h.alias}: ${h.valueFunc}(offset=${h.offset}) OVER (${I.join(" ")})`):h.windowKind==="AGGREGATE"&&(E.push(` window ${h.alias}: ${h.aggFunc} OVER (${I.join(" ")})`),E.push(h.frame===null?" frame: PARTITION ENTIRE":` frame: ${h.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${h.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let h=e.where===null?"":j(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${h}${h?" ":""}limit 1`),a){let I=ns(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${h}${h?" ":""}limit 1`);E.push(rs(I))}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}d?(E.push(` order plan: ${d.kind}`),d.reasonCodes.length>0&&E.push(` order reason: ${d.reasonCodes.join(", ")}`),d.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):d.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: ${d.scanRows}`))):m&&E.push(" order plan: CANONICAL_LOCAL");let y=d&&!d.requiresCompleteInput?{...e,orderBy:[]}:e,g=Ht(y);d?.requiresCompleteInput&&g.add("LOCAL_ORDER");let T=pt(e.where);if(g.size>0&&(!T||m!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...g].join(", ")}`),E.push(" onLimit=truncate: disabled")),T)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 h=Do(d?.kind==="CANONICAL_REST_TOP_N"?um(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=d?.kind==="KORDER_CURSOR"?Su(e):h.query;if(E.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let N=I?"EXACT":"ALL";E.push(rs(ns(s,e.from.appId,e.from.alias,l,N,I)))}E.push(` fields: ${h.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.fields.join(", ")}`)}else{let h=xm.get(e),I=Fm.get(e),N=I??mn(e);if(e.joins.length>0)if(h){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)"),h.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${h.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${h.joinPlan.residualWhere===null?"(none)":Cn(h.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${h.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${h.joinPlan.allKlikes.length-h.joinPlan.appliedKlikes.size}`),h.joinPlan.residualWhere!==null)for(let w of h.joinPlan.rejections)E.push(` join pushdown not applied: ${w.reason}`)}else{let w=e.joins.some(k=>k.type!=="INNER"&&k.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(k=>k.table)].some(k=>k.cteName!==null||!!k.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: ${w}`)}let D=Rn(e,e.from,u),P=e.from.alias?` AS ${e.from.alias}`:"",M=N.mainCondition,U=am(e),C=e.joins.length===0&&c?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Lt(e.where)?j(e.where):"",v=e.from.alias?h?.queriesByAlias.get(e.from.alias):void 0,b=v||(M!==null?j(M):C||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${P} (${e.from.appId})`),E.push(` kintone query: ${b}`);let _=h?.joinPlan.items.find(w=>w.targetAlias===e.from.alias),A=h?.joinPlan.serverFunctionConsumptions.find(w=>w.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let w=!I&&U!==null,k=b==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":w?"PREFILTERED":_?.relation==="exact"||A||C!==""?"EXACT":"PREFILTERED";E.push(rs(ns(s,e.from.appId,e.from.alias,l,k,b,w)))}_||A?(E.push(` pushdown applied: ${v}`),E.push(` relation: ${_?.relation??"exact"}`)):I&&M!==null?(E.push(` pushdown applied: ${b}`),E.push(` relation: ${N.mainRelation??"exact"}`)):U!==null&&(!I||Ui(U))&&E.push(` pushdown candidate: ${j(U)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),E.push(` fields: ${D.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":D.join(", ")}`);for(let w of e.joins){let k=Rn(e,w.table,u),O=w.table.alias?` AS ${w.table.alias}`:"",F=w.type==="INNER"?"JOIN":`${w.type} JOIN`,V=w.table.alias?N.joinConditions.get(w.table.alias)??null:null,G=w.table.alias&&!w.table.subtableCode&&w.table.cteName===null&&e.where?$r(e.where,{tableAlias:w.table.alias}):null,x=w.table.alias?h?.queriesByAlias.get(w.table.alias):void 0,K=w.table.alias?Km.get(e)?.get(w.table.alias):void 0,Y=!I&&w.type==="INNER"&&w.table.cteName===null&&!w.table.subtableCode&&[e.from,...e.joins.map(ie=>ie.table)].some(ie=>ie.cteName!==null),$=x||(V!==null?j(V):K?.additionalQuery?K.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),L=Y||K?.plan.kind==="RANGE_CANDIDATE"||K?.plan.kind==="FALLBACK"&&K.plan.reason==="JOIN_KEY_VALUES_RUNTIME",W=K&&K.queries.length>0?K.queries.map(ie=>$!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${ie}) and (${$})`:ie):[L?"(runtime source keys)":$],X=W.join(" | ");E.push(` ${F}: APP${w.table.appId}${O} (${w.table.appId})`);for(let ie of W)E.push(` kintone query: ${ie}`);let he=h?.joinPlan.items.find(ie=>ie.targetAlias===w.table.alias),tt=h?.joinPlan.serverFunctionConsumptions.find(ie=>ie.targetAlias===w.table.alias);if(a&&w.table.cteName===null){let ie=L||!K&&!I&&G!==null,Vt=X==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":ie?"PREFILTERED":K?.plan.kind==="IN"&&he?.relation!=="superset"&&K.additionalRelation!=="superset"||he?.relation==="exact"||tt?"EXACT":"PREFILTERED";E.push(rs(ns(s,w.table.appId,w.table.alias,"join",Vt,X,ie)))}if(K)if(K.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let ie of W)E.push(` pushdown applied: ${ie}`);E.push(" relation: superset")}else if(K.plan.kind==="IN"){let ie=he?.relation==="superset"||K.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let Vt of W)E.push(` pushdown applied: ${Vt}`);E.push(` relation: ${ie}`)}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 Y?(E.push(" join key prefilter: runtime candidate"),E.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),G!==null&&E.push(` pushdown candidate: ${j(G)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):he||tt?(E.push(` pushdown applied: ${x}`),E.push(` relation: ${he?.relation??"exact"}`)):I&&V!==null?(E.push(` pushdown applied: ${$}`),E.push(` relation: ${N.joinRelations.get(w.table.alias)??"exact"}`)):G!==null&&(!I||Ui(G))&&E.push(` pushdown candidate: ${j(G)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${k.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":k.join(", ")}`)}}return E.push(...qw(e,n,r,i,s)),E}function Hw(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(...ct(l,`[union:${c+1}]`,t,n,r,!0,!0,i,"union"))}),s}function Yw(e){let t=new Map,n=a=>ce(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Le?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),c=[];for(let d of a.joins){let u=r(d.table),p=n(d.table);if(d.type==="CROSS"){let f=s!==null&&u!==null?Ei(s,u):null;c.push({leftLabel:l,rightLabel:p,leftRows:s,rightRows:u,plan:f,rightRuntimeLabel:d.table.cteName===null?`APP${d.table.appId} fetched rows`:`${p} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${p}`}else s=null,l=`${l} ${d.type} JOIN ${p}`}return c.length>0&&Ep.set(a,c),pt(a.where)?s=0:a.where!==null&&(s=null),te(a).type!=="NONE"||a.distinct||a.having!==null||Jn(a)||a.columns.some(d=>d.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,Zo(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 jw(e,t,n,r,i={sources:[]},o=1e4,a=St({})){Yw(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let c=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",c?` cycle: path-scoped on ${c.column}, mark ${c.markColumn} ('${c.markValue}'/'${c.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let d of gm(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let u=`APP${d.appId}${d.subtableCode?`$${d.subtableCode}`:""}`;s.push(` source ${u}: R unknown, pageSize=500, estimated calls=ceil(R/500), maxRecords=${o}`)}s.push(" iteration rows: unknown until execution"," records API: none","")}else if(l.query.type==="SELECT")s.push(...ct(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let c=l.query,d=Vm.get(c);if(c.args.some(R=>R.type==="VARIABLE")){let R=E=>{let m=c.args[E];return m?m.type==="VARIABLE"?`@${m.name} (runtime)`:E<2?"literal":m.type==="NUMBER"?z(m):m.value:E===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`," series type: deferred (variable)",` start: ${R(0)}`,` stop: ${R(1)}`,` step: ${R(2)}`," rows: runtime",` row guard: runtime / ${_t}`," records API: none","");continue}let p=Zo(c),f=p.kind==="DATE"?`${p.step} ${String(p.dateUnit??"DAY").toLowerCase()}${Math.abs(p.step)===1?"":"s"}`:String(p.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`,` series type: ${p.kind}${d?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${d?.variableNames.has(0)?`@${d.variableNames.get(0)} (DECLARE default; value hidden)`:p.start}`,` stop: ${d?.variableNames.has(1)?`@${d.variableNames.get(1)} (DECLARE default; value hidden)`:p.stop}`,` step: ${f}`,` rows: ${p.rowCount}${d?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${p.rowCount} / ${_t}`,...d?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...Os(e.query,"[main]",t,n,100,Pe,o,r,!1,i,"main",a)),Jt(e)){s.push("");let l=Xt(e);s.push(...ct(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function zw(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=te(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"),Lt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),jt(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 qw(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(...ct(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...ct(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...ct(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(...ct(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function Jw(e,t,n=Bt,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,...yp(Na(e,n,r))]:a}function Xw(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(...ct(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Qw(e,t,n,r,i=100,o=Pe,a=1e4){if(e.applyBlocks?.length)return Zw(e,t,i,o,a);let s=If(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),c=fa(e),d=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?Xi(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${Xi(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(pt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),d&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!c&&!d&&p.push("\u5358\u7D14 SET"),u.push(` set type: ${p.join(", ")}`),c){let f=ib(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(` ${ab(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...ct(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function Zw(e,t,n,r,i){let o=Na(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"}),d=[...new Set(a.targets.flatMap(R=>R.operations.map(E=>E.kind)))],u=d.includes("REMOVE"),p=$m.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":j(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${Xi(e.where)}`,`parent cardinality: ${Ot(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(R=>`${R.field} (${R.targetKind})`).join(" | ")}`,`operations: ${d.join(" | ")}`,`selector: ${c.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${u?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...yp(o)]}function eb(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${Xi(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(pt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function tb(e,t,n=Bt,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,...yp(Na(e,n,r))]:a}function yp(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 nb(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(...ct(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function rb(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(Jm).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,pt(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: ${Xi(e.where)}`),o}function Jm(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function Xi(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return j(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function ib(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&hs(n,t),n.type==="STRING_FUNC"&&hs(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Gi(n,t);return[...t]}function hs(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"&&(hs(e.left,t),hs(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"&&Gi(n,t)}async function Xm(e,t,n,r,i){let o=op(e),a=await Me(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Me(t.appId,n,r),c=new Set,d=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw Ce(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw Ce(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else throw Ce(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),R=p.field==="$id"||l.has(p.field);if(!f)throw Ce(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(R)throw Ce(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);c.add(p.field)}let u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...c],sourceFields:[...d],evaluationTypes:u}}function ob(e,t,n){if(!e)return{};let r=xt(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 Gi(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"&&Gi(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Gi(e.left,t),Gi(e.right,t))}function ab(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} = ${Qm(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 Qm(e){return`${MR(e.left)} ${e.op} ${MR(e.right)}`}function MR(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"?z(e):e.type==="ARITH"?`(${Qm(e)})`:"..."}var Re=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 ke=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 gp(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 et(e){return new ke("READ_ONLY_VIOLATION",e)}function Ir(e,t){return new ke("PARSE_ERROR",e,t)}function Zm(){let e=new Dn;return new ke("SEARCH_ABORTED",e.message,e)}function ao(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function sb(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 Fn(e){return e instanceof ke?e:e instanceof De||e instanceof S?new ke("PARSE_ERROR",ao(e),e):e instanceof Dn||e?.name==="SearchAbortedError"?new ke("SEARCH_ABORTED",ao(e),e):e instanceof Ke||e?.name==="FetchAllLimitError"?new ke("FETCH_LIMIT_EXCEEDED",ao(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new ke("CLIENT_ERROR",e.message,e.cause):sb(e)?new ke("CLIENT_ERROR",ao(e),e):new ke("EXECUTION_ERROR",ao(e),e)}function Ls(e,t){let n=Fn(e);if(e instanceof oe){let r=t[e.statementIndex];if(r!==void 0)return gp(n,e.statementIndex,r.type)}return n}var lb=2,_s=5,ub=3e4,cb=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??lb;if(!Number.isSafeInteger(r)||r<1||r>_s)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${_s}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??ub,this.quarantineMs=n.quarantineMs??cb}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 Fa(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>_s)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${_s}.`)}};function pb(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function db(e,t=r=>new Promise(i=>setTimeout(i,r)),n=pb){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 fb(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 ey(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 fb(db(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function ty(e){return ny(e,Rb(e))}function ny(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=mb(o.options),s=yb(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:vs(o.minValue),maxValue:vs(o.maxValue),minLength:vs(o.minLength),maxLength:vs(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)&&!Eb.has(o.type)};l.semantics=ne(l),i.push(l),o.fields&&i.push(...ny(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var Eb=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function Rb(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 vs(e){return e==null||e===""?void 0:e}function mb(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 yb(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function ry(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 gb="Filter aborted because of too many search results";function iy(e){return e?.includes(gb)===!0}var oy="/k/v1/records.json",Us="/k/v1/records/cursor.json",hb=4096,Ab=2,hp=e=>kintone.api.url(e,!0);function Sb(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(oy,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=hb?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:hp(oy),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 so(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(`
|
|
17
|
+
WHERE \u3092 AND \u306E\u5B89\u5168\u306A KLIKE \u6761\u4EF6\u3078\u66F8\u304D\u63DB\u3048\u308B\u304B\u3001SELECT \u3067\u78BA\u8A8D\u3057\u305F $id IN (...) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002`;function pw(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${cw}`)}async function dw(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=Au(e.where,{fieldTypes:s,fieldOptions:l});pw(c);let d=c.prefilter===null?"":j(c.prefilter),u=new Set(Ra(e,r));for(let R of fw(e.where))u.add(R);let p=await Ew(e.appId,e.where,a,t,i);return(await xe(t.getRecords,e.appId,d,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(R=>({snapshot:R,row:xt(R,null)})).filter(({row:R})=>le(e.where,R,p.fieldTypeResolver,c.appliedKlikes,p.fieldSemanticsResolver,se(n))).map(({snapshot:R})=>R)}function fw(e){return $c(e)}async function Ew(e,t,n,r,i){let s=[...Rw(t)].some(d=>n.get(d)?.fieldType==="STATUS")?await np(e,r,i):void 0;return{fieldTypeResolver:d=>d.field==="$id"?"NUMBER":n.get(d.field)?.fieldType,fieldSemanticsResolver:d=>{if(d.field==="$id")return Qn(ne({fieldType:"__ID__"}),e,"$id");let u=n.get(d.field);if(!u)return;let p=u.semantics??ne(u),f=u.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return Qn(f,e,u.code)}}}function Rw(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 mw(e,t,n){let r=t.validations.flatMap(d=>d.errors),i=t.validations.reduce((d,u)=>d+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...gt(n,e.fields).payloadFields,...ui],a=t.guards.parentRows,s=uu(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:zi(l),guards:qi(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return kn.set(c,Cs(o,n,e.appId)),c}function yw(e,t,n){let r=t.validations,i=r.flatMap(c=>c.errors),o=r.reduce((c,d)=>c+(d.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...gt(n,e.assignments.map(c=>c.field)).payloadFields,...ui],s=di(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:zi(s.branches[0]),guards:qi(s.branches[0]),deletedRows:{total:t.plans.reduce((c,d)=>c+d.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(c=>c.tables.some(d=>d.deletedRows>0)).length},diagnostic:s};return kn.set(l,Cs(a,n,e.appId)),l}function gw(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??[...gt(n,e.fields).payloadFields,...ui],l=cu(t),c=l.branches.find(R=>R.branch==="insert"),d=l.branches.find(R=>R.branch==="update"),u=zi(c),p=zi(d),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...u,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:qi(c)},update:{apply:p,guards:qi(d)}},deletedRows:{total:t.update.plans.reduce((R,E)=>R+E.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(R=>R.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return kn.set(f,Cs([...s],n,e.appId)),f}function zi(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:_n(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:_n(t,"ADD"),removedValues:_n(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function qi(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 Bt=100,Pe=500;function Ze(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 Cs(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:ne({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ve(s,n));continue}o.set(a,ee(i.has(a)?"number":"string"))}return o}async function hw(e,t,n,r,i,o){let a=await Cm(e,t,n,r,i,o),s=await Me(e.appId,n,i),l=Bl(e,a,s,se(r)),c=e.assignments.map(p=>p.field),d=await Q(e.appId,n,i),u=await $t(e.appId,c,d,n,i);if(un(l.flatMap(p=>p.records.map(f=>f.record)),c,d,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new Re("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function Aw(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 Sw(e,t,n,r){if(await yr(e,t,r),pt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Nw(e,t,n,r);let i=Cf(e),a=(await La(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 Re("DELETE",a.length);let s=Pf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function Tw(e,t,n){return e.values.map(r=>{let i={};return e.fields.forEach((o,a)=>{let s=r[a];i[o]={value:s.type==="CASE_VALUE"?Ut(s.expr,{},t.get(o),se(n)):mt(s,t.get(o))}}),i})}async function Iw(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return VI(e,t,n,r);if(e.checkGroups?.length)return ro(e,t,n,r);let i=await ft(e.appId,e.fields,t,r),o=await $t(e.appId,e.fields,i,t,r),a=[],s=[],l=await Me(e.appId,t,r),c=lp(e);if(Qc(Sm(e,t,n,i,c)).execution.status==="ELIGIBLE"){let f=Tw(e,l,n);return un(f,e.fields,i,o),Tm(e.appId,e.keyFields[0],f,c,t,n)}let u=await to(e.appId,e.keyFields,c,t,n,l);if(e.values.forEach((f,R)=>{let E={};e.fields.forEach((y,g)=>{let T=f[g];T.type==="CASE_VALUE"?E[y]={value:Ut(T.expr,{},l.get(y),se(n))}:E[y]={value:mt(T,l.get(y))}});let m=eo(u,c[R]);m!==void 0?s.push({id:m,record:E}):a.push(E)}),un([...a,...s.map(f=>f.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let f=a.length+s.length;if(!await n.confirm(f,"UPDATE"))throw new Re("UPDATE",f)}let p=[];for(let f=0;f<a.length;f+=100){let R=await t.postRecords({app:e.appId,records:a.slice(f,f+100)});p.push(R.ids)}for(let f=0;f<s.length;f+=100)await t.putRecords({app:e.appId,records:s.slice(f,f+100)});return{type:"UPSERT",insertedCount:p.flat().length,updatedCount:s.length}}function lp(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"?z(i):i.type==="CASE_VALUE"?Ge(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function up(e,t,n,r){if(t.length===0)return;let i=await Me(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 ww(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 xe(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Ps(a),l=new Map;for(let d of e.values){let u=LR(d[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((E,m)=>{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:LR(d[m])}}});let R=l.get(u);R?R.push(f):l.set(u,[f])}let c=[];for(let[d,u]of l.entries()){let p=s.get(d),R=[...io(p,i),...u];c.push(_m(e.appId,d,oo(p),i,R))}for(let d of c)await t.putRecords(d);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function bw(e,t,n,r){let i=e.subtableCode;if(!xi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Kt(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&Rs(p.value.expr,o);let a=await up(e.appId,o,t,r),s=await xe(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=cp(s,i).filter(p=>le(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new Re("UPDATE",c.length);let d=new Map;for(let p of c){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=d.get(p.parentId);f||(f=new Map,d.set(p.parentId,f));let 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:Ea(E.value,p.flat,a,se(n))}}f.set(p.rowId,R)}let u=Ps(s);for(let[p,f]of d.entries()){let R=u.get(p);if(!R)continue;let m=io(R,i).map(y=>{let g=y.id??"";if(!g)return y;let T=f.get(g);return T?{id:g,value:T}:{id:g}});await t.putRecords(Cw(e.appId,p,oo(R),i,m))}return{type:"UPDATE",updatedCount:c.length}}async function Nw(e,t,n,r){let i=e.subtableCode;if(!xi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Kt(e.where,o);let a=await up(e.appId,o,t,r),s=await xe(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=cp(s,i).filter(p=>le(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(c.length,"DELETE"))throw new Re("DELETE",c.length);let d=new Map;for(let p of c){let f=d.get(p.parentId);f?f.push(p.rowIndex):d.set(p.parentId,[p.rowIndex])}let u=Ps(s);for(let[p,f]of d.entries()){let R=u.get(p);if(!R)continue;let E=io(R,i),m=new Set(f),y=E.filter((g,T)=>!m.has(T));await t.putRecords(_m(e.appId,p,oo(R),i,y))}return{type:"DELETE",deletedCount:c.length}}function Ps(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function cp(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=oo(r),a=io(r,t);for(let s=0;s<a.length;s++){let l=a[s],c={...ma(l,s),_pid:i};for(let[d,u]of Object.entries(r))d!==t&&(c[`_p.${d}`]=Oc(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:c})}}return n}function io(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function oo(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function _m(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Cw(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Pw(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 LR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved variable @${e.name} reached INSERT evaluation.`);return e.type==="STRING"?e.value:e.type==="NUMBER"?z(e):e.type==="CASE_VALUE"?Ge(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Oc(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 xi(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return xi(e.left)||xi(e.right);case"NOT":case"GROUP":return xi(e.expr);default:return!1}}async function Ow(e,t,n,r){let i=[];Kt(e.where,i);let o=await up(e.appId,i,t,r),a=await Q(e.appId,t,r);if(pt(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??ne(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 xe(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=cp(c,e.subtableCode),u=e.all?new Set(c.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(d.filter(f=>e.where&&le(e.where,f.flat,o,void 0,l,se(n))).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new Re("UPDATE",u.size);let p=Ps(c);for(let f of u){let R=p.get(f);if(!R)continue;let m=io(R,e.subtableCode).map((g,T)=>({row:g,i:T,flat:Lw(R,e.subtableCode,g,T)}));m.sort((g,T)=>_w(g.flat,T.flat,e.by,l,se(n)));let y=m.map(g=>g.row.id??"");await t.putRecords(Pw(e.appId,f,oo(R),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function Lw(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}`]=Oc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Oc(a?.value);return i}function _w(e,t,n,r,i={}){for(let o of n){let a=_R(o.key,e,i),s=_R(o.key,t,i),l=o.key.type==="FIELD_NAME"?r(Ue(o.key.name)):o.key.type==="ARITH_KEY"?B("number"):o.key.type==="FUNC_KEY"?vn(o.key.expr).semantics??B("string"):B("number"),c=ot(a,s,l??B("string"));if(c!==0)return o.direction==="ASC"?c:-c}return 0}function _R(e,t,n={}){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(ye(e.expr,t,n));case"FUNC_KEY":return ge(e.expr,t,void 0,void 0,n);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function pp(e,t,n,r,i){if(e.checkGroups?.length)return ro(e,t,n,r,i);let o=await ft(e.appId,e.fields,t,r),a=await $t(e.appId,e.fields,o,t,r),s=await ap.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(Om(s),c.length!==e.fields.length){let g=c.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${c.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let d=[],u=[],p=await Me(e.appId,t,r),f=l.map((g,T)=>{let h={};return e.fields.forEach((I,N)=>{if(s.importPresence&&!s.importPresence[T]?.has(I))return;let D=g[c[N]]??"";h[I]={value:wm(D,p.get(I))}}),h});f.forEach(g=>un([g],e.fields.filter(T=>T in g),o,a));let R=f.map(g=>e.keyFields.map(T=>String(g[T]?.value??"")));if(Qc(Sm(e,t,n,o,R)).execution.status==="ELIGIBLE")return Tm(e.appId,e.keyFields[0],f,R,t,n);if(Sr.has(e)){let g=e.keyFields.map(h=>p.get(h)==="NUMBER"),T=new Set;for(let h of R){let I=ln(h,g);if(T.has(I))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");T.add(I)}}let m=await to(e.appId,e.keyFields,R,t,n,p);if(f.forEach((g,T)=>{let h=eo(m,R[T]);h!==void 0?u.push({id:h,record:g}):d.push(g)}),n.confirm&&d.length+u.length>0){let g=d.length+u.length;if(!await n.confirm(g,"UPDATE"))throw new Re("UPDATE",g)}let y=[];for(let g=0;g<d.length;g+=100){let T=await t.postRecords({app:e.appId,records:d.slice(g,g+100)});y.push(T.ids)}for(let g=0;g<u.length;g+=100)await t.putRecords({app:e.appId,records:u.slice(g,g+100)});return{type:"UPSERT",insertedCount:y.flat().length,updatedCount:u.length}}var dp=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),fp=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 Dm(e){let t=await e.getApps(),n=[...dp],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 vm(e,t,n){let r=await Q(e.appId,t,n),i=[...fp],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 Dw(e,t=!1){try{let n=new tn(e).tokenize(),r=new nn(n,{import:t}).parse();return Yn("phase15b",r),it(r),r}catch(n){throw n instanceof De||n instanceof S,n}}async function Ji(e,t,n,r,i,o){let a=[];cs(e,t,n,r,a,i,o),await Promise.all(a)}async function Um(e,t,n,r,i,o){let a=[];for(let s of e.columns)if(s.type==="CASE_COL")for(let l of s.expr.branches)a.push(Ji(l.condition,t,n,r,i,o));await Promise.all(a)}function Fi(e,t,n,r,i){return i!==void 0&&i.size>0?dt(e,t,n,i,r):Gt(e,t,n,r)}function cs(e,t,n,r,i,o,a){if(e!==null)switch(e.type){case"BINARY":{let s=e.right;s.type==="SUBQUERY_IN_LIST"&&i.push(Fi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);let c=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(d=>d[c]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(Fi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);if(l.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(l.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let c=l.columns[0]??"";s.resolved=l.rows[0]?.[c]??""}));break}case"LOGICAL":cs(e.left,t,n,r,i,o,a),cs(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":cs(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(Fi(s.query,t,n,r,a).then(l=>{for(let c of l.warnings??[])o.add(c);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function Mm(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Gt(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 km(e,t,n,r,i,o){let a=new Map,s=[];for(let d=0;d<e.length;d++){let u=e[d];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let p=JSON.stringify(u.query),f=a.get(p);f||(f=Fi(u.query,t,n,r,o).then(R=>{for(let m of R.warnings??[])i.add(m);if(R.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(R.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 E=R.columns[0]??"";return R.rows[0]?.[E]??""}),a.set(p,f)),s.push([d,f])}let l=await Promise.all(s.map(([,d])=>d)),c=new Map;return s.forEach(([d],u)=>c.set(d,l[u])),c}var xm=new WeakMap,Fm=new WeakMap,Km=new WeakMap,Lc=new WeakMap,Ep=new WeakMap,Gm=new WeakMap,$m=new WeakMap;async function Bm(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))},d=new Map,u=new Map,p=new Map,f=new Set,R=i??await Qi(e,c,n),E=C=>R.nodes.find(v=>v.source===C||JSON.stringify(v.source)===JSON.stringify(C)),m=new Map(o??[]),y=new Set(o?.keys()??[]),g=new Map([...o??new Map].map(([C,v])=>[C,v.rows.length])),T=new WeakMap,h=C=>ce(C)??(C.appId>0?`APP${C.appId}`:"source"),I=C=>C.cteName===Le?1:C.cteName!==null?g.get(C.cteName)??null:null,N=C=>{let v=I(C.from),b=h(C.from),_=[];for(let w of C.joins){let k=I(w.table),O=h(w.table);if(w.type==="CROSS"){let F=v!==null&&k!==null?Ei(v,k):null;_.push({leftLabel:b,rightLabel:O,leftRows:v,rightRows:k,plan:F,rightRuntimeLabel:w.table.cteName===null?`APP${w.table.appId} fetched rows`:`${O} materialized rows`}),v=F?.outputRows??null,b=`${b} \xD7 ${O}`}else v=null,b=`${b} ${w.type} JOIN ${O}`}if(_.length>0&&Ep.set(C,_),pt(C.where)?v=0:C.where!==null&&(v=null),(te(C).type!=="NONE"||C.distinct||C.having!==null||Jn(C)||C.columns.some(w=>w.type==="WINDOW_COL"))&&(v=null),v!==null){let w=C.offset??0;v=Math.max(0,v-w),C.limit!==null&&(v=Math.min(v,C.limit)),T.set(C,v)}},D=async C=>{let v=[C.from,...C.joins.map(_=>_.table)];if(v.length>1&&C.columns.some(_=>_.type==="WILDCARD"||_.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 _ of v){if(_.cteName!==null){if(_.cteName===Le)continue;let w=m.get(_.cteName);if(!w)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${_.cteName}.`);b.push(...w.columns);continue}let A=await Q(_.appId,c,n);_.subtableCode?(b.push(...A.filter(w=>w.inSubtable&&(w.subtableCode===_.subtableCode||w.subtableCode===void 0)).map(w=>w.code)),b.push("_pid","_rid","_idx"),b.push(...A.filter(w=>!w.inSubtable).map(w=>`_p.${w.code}`))):(b.push(...A.filter(w=>!w.inSubtable).map(w=>w.code)),b.push(...wo))}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 v=C;if(v.type==="SELECT"){let b=C,_=await D(b);if(b.columns.length===1&&b.columns[0].type==="WILDCARD")return _;let A=[];for(let w of b.columns)w.type==="WILDCARD"?A.push(..._):w.type==="PARENT_WILDCARD"?A.push(..._.filter(k=>k.startsWith("_p."))):A.push(...wn([],[w]).columns);return A}if(v.type==="UNION")return P(v.left);if(v.type==="SHOW_APPS")return[...dp];if(v.type==="DESCRIBE")return[...fp];if(v.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 v=C;if(v.type==="WITH"){let b=C;for(let _ of b.ctes){if(await M(_.query),_.query.type==="GENERATE_SERIES"){if(_.query.args.some(k=>k.type==="VARIABLE")){m.set(_.name,{rows:[],columns:[_.query.columnAlias]});continue}let w=hm(_.query);m.set(_.name,{rows:w.rows,columns:w.columns,columnMeta:ue.get(w),uniqueGeneratedColumn:_.query.columnAlias}),y.add(_.name),g.set(_.name,w.rows.length);continue}let A=await P(_.query);if(m.set(_.name,{rows:[],columns:A}),_.query.type==="SELECT"){let w=T.get(_.query);w!==void 0&&g.set(_.name,w)}}await M(b.query);return}if(v.type==="UNION"){await M(v.left),await M(v.right);return}if(v.type==="SELECT"){let b=C;N(b);for(let w of b.columns)w.type==="SCALAR_SUBQUERY_COL"&&await M(w.query);if(await M(b.where),await M(b.having),await Vi(b,c,n,m),![b.from,...b.joins.map(w=>w.table)].some(w=>w.cteName!==null&&!m.has(w.cteName))){let w=await gr(b,c,n,m);w&&p.set(b,w)}return}for(let b of Object.values(v))await M(b)};await M(e);let U=async C=>{if(C===null||typeof C!="object"||f.has(C))return;if(f.add(C),Array.isArray(C)){await Promise.all(C.map(U));return}let v=C;if((v.type==="UPSERT"||v.type==="UPSERT_SELECT")&&await Q(C.appId,c,n),v.type==="SELECT"){let b=C;await Vi(b,c,n);let _=[b.from,...b.joins.map(L=>L.table)].some(L=>L.cteName!==null);if(te(b).type==="PLAIN"&&!_){let L=await gr(b,c,n);L&&p.set(b,L)}let A=[b.from,...b.joins.map(L=>L.table)].filter(L=>L.cteName===null).map(L=>L.appId);(Tt(b.where)||b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0))&&A.forEach(L=>a.add(L));let{resolver:k,rewrites:O}=await On(b,c,n);O.length>0&&Lc.set(b,O);let F=Se(b.where,k),V=E(b);if(F.capability==="UNSUPPORTED"&&!V)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(F)}).`);d.set(b,F);let G=await Ts(b,c,n),K=Hc.get(b)??Ss(b,G);K&&xm.set(b,K);let Y=K??mn(b,G);Fm.set(b,Y);let $=new Map;for(let L of b.joins){let W=L.table.alias;if(L.type!=="INNER"||!W||L.table.subtableCode)continue;let X=L.on.left.tableAlias,he=L.on.right.tableAlias;if(!X||!he)continue;let tt=X===W&&he!==W?he:he===W&&X!==W?X:void 0,ie=X===W?L.on.right.field:L.on.left.field,Vt=X===W?L.on.left.field:L.on.right.field;if(!tt)continue;let Wt=[b.from,...b.joins.map(Oe=>Oe.table)].find(Oe=>ce(Oe)===tt),Fs;if(L.table.cteName!==null)Fs=m.get(L.table.cteName)?.columnMeta?.get(Vt);else{let Oe=(await Q(L.table.appId,c,n)).find(nt=>nt.code===Ee(L.table,Vt));Fs=Oe?ve(Oe,L.table.appId):Xe(Vt)}let Ks,Gs,Np,Cp;if(Wt?.cteName!==null&&Wt?.cteName!==void 0){let Oe=m.get(Wt.cteName);Ks=Oe?.columnMeta?.get(ie),y.has(Wt.cteName)&&Oe&&(Np=Oe.rows.length,Gs=Oe.rows.map(nt=>ep(nt[ie])),Cp=Gs.some(nt=>nt.length===0))}else if(Wt){let Oe=(await Q(Wt.appId,c,n)).find(nt=>nt.code===Ee(Wt,ie));Ks=Oe?ve(Oe,Wt.appId):Xe(ie)}let fo=Ru({fieldType:Fs?.fieldType,sourceSemantics:Ks?.semantics,sourceRowCount:Np,values:Gs,hasEmptyValue:Cp,maxInKeys:ls});if(fo.kind==="FALLBACK"&&fo.reason==="JOIN_KEY_VALUES_RUNTIME"&&(K?.joinPlan.items.some(nt=>nt.targetAlias===W)||K?.joinPlan.serverFunctionConsumptions.some(nt=>nt.targetAlias===W)))continue;let by=Eu(fo,Vt,Hi),Pp=Y.joinConditions.get(W),Ny=Pp?j(Pp):void 0,Cy=Y.joinRelations.get(W);$.set(W,{plan:fo,queries:by,additionalQuery:Ny,additionalRelation:Cy})}if($.size>0&&Km.set(b,$),b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0)){let L=await Yi(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(fs(b)&&!_&&V?.allowed!==!1){let W=F.capability==="EXACT_PUSHDOWN"?We(b):"FULL_SCAN";u.set(b,(b.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:b,staticMode:W,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:L.semantics,maxRecords:r,hasKlike:be(b.where)}))}}}else if(v.type==="VALIDATE"){let b=C;a.add(b.appId);let _=await Q(b.appId,c,n),A=new Map(_.filter(L=>!L.inSubtable).map(L=>[L.code,L])),w=new Set(_.filter(L=>L.inSubtable).map(L=>L.code)),k=ou(b,_),O=or(b.checkGroups??[]),F=$c(b.where);for(let L of O){if(L.field!=="$id"&&!A.has(L.field)&&!w.has(L.field))throw Ce(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${b.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!A.has(L.field)&&w.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"&&!A.has(L)&&!w.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${b.appId}.`);if(L!=="$id"&&!A.has(L)&&w.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 V=new Map([...A].map(([L,W])=>[L,W.fieldType]));V.set("$id","RECORD_NUMBER"),Mn(b,V);let G=Se(b.where,L=>L.field==="$id"?ne({fieldType:"__ID__"}):A.get(L.field)?.semantics??(A.has(L.field)?ne(A.get(L.field)):void 0));if(G.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(G)}).`);let x=new Map([...A].map(([L,W])=>[L,W.fieldType])),K=new Map([...A.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),Y=b.where===null?null:G.capability==="EXACT_PUSHDOWN"?b.where:El(b.where,{allowUnqualifiedFields:!0,fieldTypes:x,fieldOptions:K,allowKlike:!1}),$=k.some(L=>L.field.fieldType==="NUMBER");$&&(l.add(b.appId),await Ct(b.appId,c,n)),Gm.set(b,{targetFields:k.map(L=>L.subtableCode?`${L.subtableCode}(${L.field.code})`:L.field.code),fetchFields:[...new Set(["$id",...k.map(L=>L.subtableCode??L.field.code),...F,...O.map(L=>L.field)])],subtables:new Map([...new Set(k.flatMap(L=>L.subtableCode?[L.subtableCode]:[]))].map(L=>[L,k.filter(W=>W.subtableCode===L).length])),capability:G,prefilter:Y,numberPrecision:$})}else if(v.type==="UPDATE"||v.type==="DELETE"){if(a.add(C.appId),v.type==="UPDATE"&&C.applyBlocks?.length){let _=C,A=await Q(_.appId,c,n);if(Mt(_,A),gs(_)){let w=A.filter(O=>!O.inSubtable),k=Au(_.where,{fieldTypes:new Map(w.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(w.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});$m.set(_,k)}}let b=C;(b.type!=="UPDATE"||!gs(b))&&E(b)?.allowed!==!1&&await yr(b,c,n)}await Promise.all(Object.values(v).map(U))};if(await U(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Jt(e)){let C=Xt(e),{resolver:v,rewrites:b}=await On(C,c,n);b.length>0&&Lc.set(C,b);let _=Se(C.where,v),A=E(C);if(_.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(_)}).`);if(d.set(C,_),fs(C)&&A?.allowed!==!1){let w=await Yi(C,c,n);u.set(C,(C.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:C,staticMode:_.capability==="EXACT_PUSHDOWN"?We(C):"FULL_SCAN",whereCapability:_.capability,whereReasons:_.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:be(C.where)}))}}return{capabilities:d,orderPlans:u,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function _c(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 vw(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 DR(e){return e==="<>"?"!=":e}function ut(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(ut).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return ut(t.expr);case"GROUPING_FIELD":return`GROUPING(${ut(t.ref)})`;case"GROUPING_REF":return ut(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${ut(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${ut(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(ut).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(ut).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Cn(e){try{let t=e;switch(t.type){case"BINARY":return`${ut(t.left)} ${vw(t.op)} ${ut(t.right)}`;case"NULL_CHECK":return`${ut(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Cn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Cn(t.right)})`;case"NOT":return`NOT (${Cn(t.expr)})`;case"GROUP":return`(${Cn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Dc(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=re(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?Uw(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let c=sc(l),d=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${ac(c)}: ${c}`,` ${lc(c)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${d}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Cn(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(re)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!re(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=sc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=DR(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${ac(l)}: ${l}`,` ${lc(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${vR(i.prefilterPlan.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}let o=n.prefilterPlan;if(n.allowed&&o?.prefilterWhere&&o.residualWhere){for(let s of o.exactRelativeLeaves){let l=sc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=DR(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${ac(l)}: ${l}`,` ${lc(l)}: kintone server exact prefilter`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=j(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Cn(o.residualWhere)}`,` ${vR(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!re(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 Uw(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,c=l?.type==="KINTONE_FUNC"&&l.name===t,d=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((c||d)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function ac(e){return re(e)?"relative date function":"kintone function"}function sc(e){return e.right.type==="KINTONE_FUNC"?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"?e.right.values[0].name:"(unknown)"}function lc(e){return re(e)?"relative date evaluation":"kintone function evaluation"}function vR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&re(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var Vm=new WeakMap;function vc(e,t){if(Array.isArray(e))return e.map(r=>vc(r,t));if(e===null||typeof e!="object")return e;let n=e;if(n.type==="GENERATE_SERIES"){let r=new Map,i=new Set,o=n.args.map((s,l)=>{if(s.type!=="STRING"||s.fromVariable!==!0||!s.value.startsWith("@"))return s;let c=s.value.slice(1);r.set(l,c);let d=t.get(c);return d===void 0?{type:"VARIABLE",name:c}:(i.add(l),{type:"STRING",value:d,fromVariable:!0})}),a={...n,args:o};return Vm.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,vc(i,t)]))}function Di(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...dp]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...fp]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let c=Di(l.query,s);s.set(l.name,c)}return Di(e.query,s)}if(e.type==="UNION"){let s=Di(e.left,t),l=Di(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Le);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...wn([],[s]).columns);return{status:"STATIC",columns:a}}function Mw(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function kw(e,t,n,r){let i=new Map,o=async a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){for(let l of a)await o(l);return}let s=a;if(s.type==="SELECT"){let l=a,c=[l.from,...l.joins.map(d=>d.table)];if(c.some(d=>d.cteName!==null)&&c.every(d=>d.cteName===Le||d.cteName!==null&&r.has(d.cteName))){let d=await gr(l,t,n,r);d&&i.set(l,d)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var Wm=Symbol("ksql.explainFetchPlan");function Rp(e){return e[Wm]}function Hm(e,t){e[Wm]=t}async function Ym(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Pe,c=!0,d,u,p,f,R,E={surface:"DOCUMENT_ONLY"}){let m=Nl(f??new Date,R),y=St({recursiveCteMaxDepth:d,recursiveCteMaxRows:u,recursiveCteMaxExpansions:p}),g=Mc(r);try{let{statements:T,meta:h}=ku(e,{import:a}),I=Ol(T),N=pu(T,n),D=zR(T,N),P=new Map;for(let[_,A]of Object.entries(m.values))P.set(Yr(_),{type:"string",value:A});let M=new Map,U=new Map,C=[],v=[];for(let _=0;_<T.length;_++){let A=T[_],w=A.type==="SET_VARIABLE"?A.expr.type==="SCALAR_SUBQUERY"?{...A,expr:ds(A.expr,P)}:A:ds(A,P),k=vc(w,M);it(k);let O=await Qi(k,t,g),F=Mw(U),V=c?await Bm(k,t,g,i,O,F):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:O};if(!c){let W=await kw(k,t,g,F);for(let[X,he]of W)V.plainGroupByPlans.set(X,he)}let G;if(k.type==="CREATE_TEMP_TABLE"){let W=new Map([...U].map(([he,tt])=>[he,tt.status==="STATIC"?{status:"STATIC",columns:tt.columns}:{status:"DEFERRED"}])),X=Di(k.query,W);G=X.status==="STATIC"?{status:"STATIC",columns:X.columns,relation:{rows:[],columns:[...X.columns]},producerStatement:_+1}:{status:"DEFERRED",producerStatement:_+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},U.set(k.name,G)}let x={sources:[]},K=O.hasServerOnlyWhereFunction&&!O.allowed?Dc(O):[...Dc(O),...zm(Kw(k,I.statements[_],V.capabilities,V.orderPlans,V.plainGroupByPlans,s,l,x,U,G,{maxRecords:i,recursiveLimits:y}),o)],Y=_c(V),$=h.dialect===1?xw(k,I.statements[_],i,s):[],L=await Am(k,g,E);C.push({index:_,type:I.statements[_].statementType,plan:K.length===0?[...Y,...L,...$]:[K[0],...Y,...K.slice(1),...L,...$]}),v.push({index:_,fetch:mp(x.sources),sources:x.sources}),k.type==="DROP_TEMP_TABLE"&&U.delete(k.name),(A.type==="SET_VARIABLE"||A.type==="DECLARE_VARIABLE")&&(P.set(A.name,A.type==="DECLARE_VARIABLE"&&A.annotation==="RELATIVE_DATE"?{type:"relative-date",value:D.get(A.name)}:A.type==="SET_VARIABLE"&&A.expr.type==="ARRAY"?{type:"array",elements:A.expr.elements.map(W=>({type:"string",value:W.value}))}:{type:"string",value:`@${A.name}`,placeholder:!0}),A.type==="DECLARE_VARIABLE"&&A.annotation===void 0&&(A.default.type==="STRING"||A.default.type==="NUMBER")&&M.set(A.name,A.default.type==="STRING"?A.default.value:z(A.default)))}let b={statementCount:T.length,statements:C};return Hm(b,{statements:v}),b}finally{tp(g)}}function xw(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=Fw(e);(e.type==="UPDATE"||e.type==="DELETE")&&!o.includes(`APP${e.appId}`)&&o.unshift(`APP${e.appId}`);let a=Math.ceil(n/500);for(let c of o)i.push(` read ${c}: \u4E0D\u660E\uFF08\u4E0A\u9650 maxRecords=${n} \u3068\u4EEE\u5B9A: \u6700\u5927 ${a} \u56DE\u3001500 \u4EF6/\u56DE\uFF09`);let s=[...new Set([...t.appIds,...t.targetAppId===null?[]:[t.targetAppId]])];i.push(` metadata: GET form fields \xD7 ${s.length} \u30A2\u30D7\u30EA\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\u6E08\u307F\u306F\u8FFD\u52A0 0 \u56DE\uFF09`),(e.type==="UPSERT"||e.type==="UPSERT_SELECT")&&(e.type==="UPSERT"?i.push(` UPSERT pre-read: ${Math.ceil(e.values.length/Rr)} \u56DE\uFF08${e.values.length} \u884C\u3001${Rr} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/Rr)} \u56DE\u3001${Rr} \u30AD\u30FC/\u56DE\uFF09`));let l=e.type==="INSERT"||e.type==="UPSERT"?e.values.length:null;return(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPSERT"||e.type==="UPSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE")&&(i.push(l===null?` write: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/100)} \u56DE\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`:` write: ${Math.ceil(l/100)} \u56DE\uFF08${l} \u884C\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`),i.push(" reference: bulkRequest \u306F\u672A\u5B9F\u88C5\u3002\u66F8\u8FBC\u30B5\u30D6\u30EA\u30AF\u30A8\u30B9\u30C8\u6570\u306F HTTP \u66F8\u8FBC\u56DE\u6570\u3068\u540C\u3058")),i}function Fw(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(typeof i.appId=="number"&&Object.prototype.hasOwnProperty.call(i,"alias")&&Object.prototype.hasOwnProperty.call(i,"cteName")&&i.cteName===null&&i.appId>0){let o=`APP${i.appId}`,a=typeof i.subtableCode=="string"?`$${i.subtableCode}`:"",s=typeof i.alias=="string"&&i.alias!==o?` AS ${i.alias}`:"";t.push(`${o}${a}${s}`)}Object.values(i).forEach(n)};return n(e),t}function Kw(e,t,n,r,i,o=100,a=Pe,s={sources:[]},l=new Map,c,d=jm()){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",...c?.status==="STATIC"?[` schema: ${c.columns.join(", ")}`,` schema source: SELECT output of statement ${c.producerStatement}`]:c?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${c.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${Qe} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Er(e.query,t,n,r,i,s,"main",l,d).map(u=>` ${u}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let u=Ki(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:",...Er(e.expr.query,u,n,r,i,s,"main",l,d).map(p=>` ${p}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Er(e.query,t,n,r,i,s,"main",l,d);if(e.type==="ASSERT"){let u=[`ASSERT${e.warn===!0?" WARN":""} ${e.text}${e.message!==void 0?`, '${e.message.replace(/'/g,"''")}'`:""}`,e.warn===!0?" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F\u8B66\u544A\u3068\u3057\u3066\u8A18\u9332\u3057\u3001\u5F8C\u7D9A\u6587\u3092\u7D9A\u884C\uFF09":" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,R)=>{u.push(p.length>1?` subquery[${R+1}]:`:" subquery:");let E=Ki(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Er(f.query,E,n,r,i,s,"main",l,d).map(m=>` ${m}`))}),u}if(e.type==="EXIT"){let u=[`EXIT SUCCESS IF ${e.text}, '${e.message.replace(/'/g,"''")}'`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u6210\u7ACB\u6642\u306F\u6B63\u5E38\u7D42\u4E86\u3057\u3001\u4EE5\u964D\u306E\u6587\u306F skippedReason: exit\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,R)=>{u.push(p.length>1?` subquery[${R+1}]:`:" subquery:");let E=Ki(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Er(f.query,E,n,r,i,s,"main",l,d).map(m=>` ${m}`))}),u}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Os(e,void 0,n,r,o,a,1e4,i):Er(e,t,n,r,i,s,"main",l,d)}function Ki(e){if(Array.isArray(e))return e.some(Ki);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Ki)}return!1}function Er(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=jm()){if(t.tempTablesReferenced.length===0)return Os(e,void 0,n,r,100,Pe,l.maxRecords,i,!0,o,a,l.recursiveLimits);let c=[];e.type==="INSERT_SELECT"?c.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&c.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),c.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),c.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let d=t.tempTablesReferenced.map(f=>[f,s.get(f)]);for(let[f,R]of d)R?.status==="STATIC"?c.push(` source: temp table ${f} (schema from statement ${R.producerStatement})`):(c.push(` source: temp table ${f}`),c.push(" schema: deferred (could not be derived statically)"));c.push(" rows: runtime (not materialized by EXPLAIN)");let u=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;u&&c.push(...qm(u,i?.get(u),d.some(([,f])=>f?.status!=="STATIC"))),c.push(d.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),c.push(" records API: none");let p=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return p.length>0&&c.push(` app: ${p.map(f=>`APP${f}`).join(", ")}`),c.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),c}var Uc=new WeakMap;function jm(){return{maxRecords:1e4,recursiveLimits:St({})}}async function Gw(e,t,n,r,i,o=100,a=Pe,s,l,c,d,u=!0,p={surface:"DOCUMENT_ONLY"}){let f=St({recursiveCteMaxDepth:l,recursiveCteMaxRows:c,recursiveCteMaxExpansions:d}),R=s??await Qi(e.query,t,n),E=u?await Bm(e.query,t,n,r,R,Uc.get(e)):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:R},m={sources:[]},y=Dc(R),g=R.hasServerOnlyWhereFunction&&!R.allowed?[..._c(E),...y]:[..._c(E),...y,...zm(Os(e.query,void 0,E.capabilities,E.orderPlans,o,a,r,E.plainGroupByPlans,!0,m,"main",f),i)],T=await Am(e,n,p),h=ps([...g,...T],m.sources),I={type:"SELECT",columns:["plan"],rows:h.map(N=>({plan:N})),rowCount:h.length};return Hm(I,{statements:[{index:0,fetch:mp(m.sources),sources:m.sources}]}),I}function zm(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 Os(e,t,n,r,i=100,o=Pe,a=1e4,s,l=!0,c,d="main",u=St({})){let p=c??{sources:[]};if(e.type==="UNION"){let R=Hw(e,n,r,s,p);return l?ps(R,p.sources):R}if(e.type==="WITH"){let R=jw(e,n,r,s,p,a,u);return l?ps(R,p.sources):R}if(e.type==="INSERT")return Jw(e,t,i,o);if(e.type==="INSERT_SELECT")return Xw(e,t,n,r,s);if(e.type==="UPSERT")return tb(e,t,i,o);if(e.type==="UPSERT_SELECT")return nb(e,t,n,r,s);if(e.type==="UPDATE")return Qw(e,t,n,r,i,o,a);if(e.type==="DELETE")return eb(e,t);if(e.type==="REORDER")return rb(e,t);if(e.type==="VALIDATE")return Vw(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let m=e.targets?.filter(y=>y.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...m.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let R=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(m=>m.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${R} 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",...E?[" 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&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=ct(e,t,n,r,s,!0,!0,p,d);return l?ps(f,p.sources):f}var UR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function mp(e){return e.reduce((t,n)=>UR[t]>=UR[n.fetch]?t:n.fetch,"none")}function ps(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${mp(t).toUpperCase()}`,...n]}function $w(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function ns(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:$w(o)};return e.sources.push(s),s}function Bw(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function rs(e){return` fetch: ${Bw(e)}`}function Vw(e,t){let n=Gm.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)":j(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?Gc:Kc).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 Ww(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 qm(e,t,n){let r=te(e);if(r.type!=="PLAIN")return[];let i=[];if(t)t.items.forEach((o,a)=>{let s=r.allItems[a];s?.type==="FIELD_NAME"&&(o.kind==="PHYSICAL"?i.push(` group key ${s.name}: PHYSICAL (source=${o.sourceIndex}, field=${o.fieldCode})`):o.kind==="ALIAS_SAFE"?i.push(` group key ${s.name}: ALIAS_SAFE (column=${o.columnIndex})`):o.kind==="EXPRESSION"&&i.push(` group key ${s.name}: EXPRESSION`))});else if(n)for(let o of r.allItems)o.type==="FIELD_NAME"&&i.push(` group key ${o.name}: DEFERRED (temp table schema unavailable)`);return i}function ct(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let c=n?.get(e)??(n?[...n].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),d=r?.get(e)??(r?[...r].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),p=o&&c!==void 0&&fm(e,c),f=p?"COUNT_TOTAL_COUNT":d?.kind==="CANONICAL_LOCAL"||c&&c.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":We(e),R=zw(e);c&&c.capability!=="EXACT_PUSHDOWN"&&R.push(...c.reasons.map(h=>h.code));let E=[],m=oE(e,Bi.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let h of Ep.get(e)??[]){if(E.push(` cross join: ${h.leftLabel} \xD7 ${h.rightLabel}`),E.push(` left rows: ${h.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${h.rightRows??`runtime (${h.rightRuntimeLabel})`}`),h.plan)E.push(` rows: ${h.plan.outputRows}`),E.push(` row guard: ${h.plan.outputRows} / ${h.plan.limit}`),E.push(" guard timing: before row materialization");else{let I=h.leftRows===null?"left rows":String(h.leftRows),N=h.rightRows===null?"right rows":String(h.rightRows);E.push(` rows: runtime (${I} \xD7 ${N})`),E.push(` row guard: runtime checked / ${mu}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let h of Lc.get(e)??ZR.get(e)??[])E.push(Ww(h));m&&(E.push(` grouping source: ${m.source}`),E.push(` grouping sets: ${m.expandedSetCount} (limit: ${m.setLimit})`),E.push(` grouping items: ${m.groupingItemCount} (limit: ${m.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${m.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),E.push(...qm(e,u,[e.from,...e.joins.map(h=>h.table)].some(h=>h.cteName!==null)));for(let h of e.columns){if(h.type!=="WINDOW_COL"||h.windowKind===void 0||h.windowKind==="RANKING")continue;let I=[];h.partitionBy.length>0&&I.push(`PARTITION BY ${h.partitionBy.map(N=>N.tableAlias?`${N.tableAlias}.${N.field}`:N.field).join(", ")}`),h.orderBy.length>0&&I.push(`ORDER BY ${h.orderBy.map(Jm).join(", ")}`),h.windowKind==="VALUE"?E.push(` window ${h.alias}: ${h.valueFunc}(offset=${h.offset}) OVER (${I.join(" ")})`):h.windowKind==="AGGREGATE"&&(E.push(` window ${h.alias}: ${h.aggFunc} OVER (${I.join(" ")})`),E.push(h.frame===null?" frame: PARTITION ENTIRE":` frame: ${h.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${h.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let h=e.where===null?"":j(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${h}${h?" ":""}limit 1`),a){let I=ns(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${h}${h?" ":""}limit 1`);E.push(rs(I))}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}d?(E.push(` order plan: ${d.kind}`),d.reasonCodes.length>0&&E.push(` order reason: ${d.reasonCodes.join(", ")}`),d.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):d.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: ${d.scanRows}`))):m&&E.push(" order plan: CANONICAL_LOCAL");let y=d&&!d.requiresCompleteInput?{...e,orderBy:[]}:e,g=Ht(y);d?.requiresCompleteInput&&g.add("LOCAL_ORDER");let T=pt(e.where);if(g.size>0&&(!T||m!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...g].join(", ")}`),E.push(" onLimit=truncate: disabled")),T)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 h=Do(d?.kind==="CANONICAL_REST_TOP_N"?um(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=d?.kind==="KORDER_CURSOR"?Su(e):h.query;if(E.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let N=I?"EXACT":"ALL";E.push(rs(ns(s,e.from.appId,e.from.alias,l,N,I)))}E.push(` fields: ${h.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.fields.join(", ")}`)}else{let h=xm.get(e),I=Fm.get(e),N=I??mn(e);if(e.joins.length>0)if(h){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)"),h.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${h.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${h.joinPlan.residualWhere===null?"(none)":Cn(h.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${h.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${h.joinPlan.allKlikes.length-h.joinPlan.appliedKlikes.size}`),h.joinPlan.residualWhere!==null)for(let w of h.joinPlan.rejections)E.push(` join pushdown not applied: ${w.reason}`)}else{let w=e.joins.some(k=>k.type!=="INNER"&&k.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(k=>k.table)].some(k=>k.cteName!==null||!!k.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: ${w}`)}let D=Rn(e,e.from,u),P=e.from.alias?` AS ${e.from.alias}`:"",M=N.mainCondition,U=am(e),C=e.joins.length===0&&c?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Lt(e.where)?j(e.where):"",v=e.from.alias?h?.queriesByAlias.get(e.from.alias):void 0,b=v||(M!==null?j(M):C||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${P} (${e.from.appId})`),E.push(` kintone query: ${b}`);let _=h?.joinPlan.items.find(w=>w.targetAlias===e.from.alias),A=h?.joinPlan.serverFunctionConsumptions.find(w=>w.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let w=!I&&U!==null,k=b==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":w?"PREFILTERED":_?.relation==="exact"||A||C!==""?"EXACT":"PREFILTERED";E.push(rs(ns(s,e.from.appId,e.from.alias,l,k,b,w)))}_||A?(E.push(` pushdown applied: ${v}`),E.push(` relation: ${_?.relation??"exact"}`)):I&&M!==null?(E.push(` pushdown applied: ${b}`),E.push(` relation: ${N.mainRelation??"exact"}`)):U!==null&&(!I||Ui(U))&&E.push(` pushdown candidate: ${j(U)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),E.push(` fields: ${D.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":D.join(", ")}`);for(let w of e.joins){let k=Rn(e,w.table,u),O=w.table.alias?` AS ${w.table.alias}`:"",F=w.type==="INNER"?"JOIN":`${w.type} JOIN`,V=w.table.alias?N.joinConditions.get(w.table.alias)??null:null,G=w.table.alias&&!w.table.subtableCode&&w.table.cteName===null&&e.where?$r(e.where,{tableAlias:w.table.alias}):null,x=w.table.alias?h?.queriesByAlias.get(w.table.alias):void 0,K=w.table.alias?Km.get(e)?.get(w.table.alias):void 0,Y=!I&&w.type==="INNER"&&w.table.cteName===null&&!w.table.subtableCode&&[e.from,...e.joins.map(ie=>ie.table)].some(ie=>ie.cteName!==null),$=x||(V!==null?j(V):K?.additionalQuery?K.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),L=Y||K?.plan.kind==="RANGE_CANDIDATE"||K?.plan.kind==="FALLBACK"&&K.plan.reason==="JOIN_KEY_VALUES_RUNTIME",W=K&&K.queries.length>0?K.queries.map(ie=>$!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${ie}) and (${$})`:ie):[L?"(runtime source keys)":$],X=W.join(" | ");E.push(` ${F}: APP${w.table.appId}${O} (${w.table.appId})`);for(let ie of W)E.push(` kintone query: ${ie}`);let he=h?.joinPlan.items.find(ie=>ie.targetAlias===w.table.alias),tt=h?.joinPlan.serverFunctionConsumptions.find(ie=>ie.targetAlias===w.table.alias);if(a&&w.table.cteName===null){let ie=L||!K&&!I&&G!==null,Vt=X==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":ie?"PREFILTERED":K?.plan.kind==="IN"&&he?.relation!=="superset"&&K.additionalRelation!=="superset"||he?.relation==="exact"||tt?"EXACT":"PREFILTERED";E.push(rs(ns(s,w.table.appId,w.table.alias,"join",Vt,X,ie)))}if(K)if(K.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let ie of W)E.push(` pushdown applied: ${ie}`);E.push(" relation: superset")}else if(K.plan.kind==="IN"){let ie=he?.relation==="superset"||K.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let Vt of W)E.push(` pushdown applied: ${Vt}`);E.push(` relation: ${ie}`)}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 Y?(E.push(" join key prefilter: runtime candidate"),E.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),G!==null&&E.push(` pushdown candidate: ${j(G)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):he||tt?(E.push(` pushdown applied: ${x}`),E.push(` relation: ${he?.relation??"exact"}`)):I&&V!==null?(E.push(` pushdown applied: ${$}`),E.push(` relation: ${N.joinRelations.get(w.table.alias)??"exact"}`)):G!==null&&(!I||Ui(G))&&E.push(` pushdown candidate: ${j(G)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${k.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":k.join(", ")}`)}}return E.push(...qw(e,n,r,i,s)),E}function Hw(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(...ct(l,`[union:${c+1}]`,t,n,r,!0,!0,i,"union"))}),s}function Yw(e){let t=new Map,n=a=>ce(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Le?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),c=[];for(let d of a.joins){let u=r(d.table),p=n(d.table);if(d.type==="CROSS"){let f=s!==null&&u!==null?Ei(s,u):null;c.push({leftLabel:l,rightLabel:p,leftRows:s,rightRows:u,plan:f,rightRuntimeLabel:d.table.cteName===null?`APP${d.table.appId} fetched rows`:`${p} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${p}`}else s=null,l=`${l} ${d.type} JOIN ${p}`}return c.length>0&&Ep.set(a,c),pt(a.where)?s=0:a.where!==null&&(s=null),te(a).type!=="NONE"||a.distinct||a.having!==null||Jn(a)||a.columns.some(d=>d.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,Zo(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 jw(e,t,n,r,i={sources:[]},o=1e4,a=St({})){Yw(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let c=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",c?` cycle: path-scoped on ${c.column}, mark ${c.markColumn} ('${c.markValue}'/'${c.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let d of gm(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let u=`APP${d.appId}${d.subtableCode?`$${d.subtableCode}`:""}`;s.push(` source ${u}: R unknown, pageSize=500, estimated calls=ceil(R/500), maxRecords=${o}`)}s.push(" iteration rows: unknown until execution"," records API: none","")}else if(l.query.type==="SELECT")s.push(...ct(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let c=l.query,d=Vm.get(c);if(c.args.some(R=>R.type==="VARIABLE")){let R=E=>{let m=c.args[E];return m?m.type==="VARIABLE"?`@${m.name} (runtime)`:E<2?"literal":m.type==="NUMBER"?z(m):m.value:E===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`," series type: deferred (variable)",` start: ${R(0)}`,` stop: ${R(1)}`,` step: ${R(2)}`," rows: runtime",` row guard: runtime / ${_t}`," records API: none","");continue}let p=Zo(c),f=p.kind==="DATE"?`${p.step} ${String(p.dateUnit??"DAY").toLowerCase()}${Math.abs(p.step)===1?"":"s"}`:String(p.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`,` series type: ${p.kind}${d?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${d?.variableNames.has(0)?`@${d.variableNames.get(0)} (DECLARE default; value hidden)`:p.start}`,` stop: ${d?.variableNames.has(1)?`@${d.variableNames.get(1)} (DECLARE default; value hidden)`:p.stop}`,` step: ${f}`,` rows: ${p.rowCount}${d?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${p.rowCount} / ${_t}`,...d?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...Os(e.query,"[main]",t,n,100,Pe,o,r,!1,i,"main",a)),Jt(e)){s.push("");let l=Xt(e);s.push(...ct(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function zw(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=te(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"),Lt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),jt(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 qw(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(...ct(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...ct(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...ct(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(...ct(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function Jw(e,t,n=Bt,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,...yp(Na(e,n,r))]:a}function Xw(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(...ct(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Qw(e,t,n,r,i=100,o=Pe,a=1e4){if(e.applyBlocks?.length)return Zw(e,t,i,o,a);let s=If(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),c=fa(e),d=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?Xi(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${Xi(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(pt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),d&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!c&&!d&&p.push("\u5358\u7D14 SET"),u.push(` set type: ${p.join(", ")}`),c){let f=ib(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(` ${ab(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...ct(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function Zw(e,t,n,r,i){let o=Na(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"}),d=[...new Set(a.targets.flatMap(R=>R.operations.map(E=>E.kind)))],u=d.includes("REMOVE"),p=$m.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":j(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${Xi(e.where)}`,`parent cardinality: ${Ot(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(R=>`${R.field} (${R.targetKind})`).join(" | ")}`,`operations: ${d.join(" | ")}`,`selector: ${c.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${u?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...yp(o)]}function eb(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${Xi(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(pt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function tb(e,t,n=Bt,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,...yp(Na(e,n,r))]:a}function yp(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 nb(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(...ct(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function rb(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(Jm).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,pt(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: ${Xi(e.where)}`),o}function Jm(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function Xi(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return j(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function ib(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&hs(n,t),n.type==="STRING_FUNC"&&hs(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Gi(n,t);return[...t]}function hs(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"&&(hs(e.left,t),hs(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"&&Gi(n,t)}async function Xm(e,t,n,r,i){let o=op(e),a=await Me(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Me(t.appId,n,r),c=new Set,d=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw Ce(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw Ce(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else throw Ce(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),R=p.field==="$id"||l.has(p.field);if(!f)throw Ce(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(R)throw Ce(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);c.add(p.field)}let u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...c],sourceFields:[...d],evaluationTypes:u}}function ob(e,t,n){if(!e)return{};let r=xt(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 Gi(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"&&Gi(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Gi(e.left,t),Gi(e.right,t))}function ab(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} = ${Qm(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 Qm(e){return`${MR(e.left)} ${e.op} ${MR(e.right)}`}function MR(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"?z(e):e.type==="ARITH"?`(${Qm(e)})`:"..."}var Re=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 ke=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 gp(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 et(e){return new ke("READ_ONLY_VIOLATION",e)}function Ir(e,t){return new ke("PARSE_ERROR",e,t)}function Zm(){let e=new Dn;return new ke("SEARCH_ABORTED",e.message,e)}function ao(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function sb(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 Fn(e){return e instanceof ke?e:e instanceof De||e instanceof S?new ke("PARSE_ERROR",ao(e),e):e instanceof Dn||e?.name==="SearchAbortedError"?new ke("SEARCH_ABORTED",ao(e),e):e instanceof Ke||e?.name==="FetchAllLimitError"?new ke("FETCH_LIMIT_EXCEEDED",ao(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new ke("CLIENT_ERROR",e.message,e.cause):sb(e)?new ke("CLIENT_ERROR",ao(e),e):new ke("EXECUTION_ERROR",ao(e),e)}function Ls(e,t){let n=Fn(e);if(e instanceof oe){let r=t[e.statementIndex];if(r!==void 0)return gp(n,e.statementIndex,r.type)}return n}var lb=2,_s=5,ub=3e4,cb=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??lb;if(!Number.isSafeInteger(r)||r<1||r>_s)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${_s}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??ub,this.quarantineMs=n.quarantineMs??cb}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 Fa(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>_s)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${_s}.`)}};function pb(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function db(e,t=r=>new Promise(i=>setTimeout(i,r)),n=pb){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 fb(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 ey(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 fb(db(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function ty(e){return ny(e,Rb(e))}function ny(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=mb(o.options),s=yb(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:vs(o.minValue),maxValue:vs(o.maxValue),minLength:vs(o.minLength),maxLength:vs(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)&&!Eb.has(o.type)};l.semantics=ne(l),i.push(l),o.fields&&i.push(...ny(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var Eb=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function Rb(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 vs(e){return e==null||e===""?void 0:e}function mb(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 yb(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function ry(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 gb="Filter aborted because of too many search results";function iy(e){return e?.includes(gb)===!0}var oy="/k/v1/records.json",Us="/k/v1/records/cursor.json",hb=4096,Ab=2,hp=e=>kintone.api.url(e,!0);function Sb(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(oy,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=hb?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:hp(oy),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 so(e){let t=e;if(e instanceof Error&&e.message.trim()!=="")return e;if(t===null||typeof t!="object"||typeof t.message!="string"||t.message.trim()===""){let o=new Error("\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC: kintone \u304B\u3089\u306E\u5FDC\u7B54\u304C\u3042\u308A\u307E\u305B\u3093\uFF08\u30AA\u30D5\u30E9\u30A4\u30F3\u30FB\u901A\u4FE1\u906E\u65AD\u306E\u53EF\u80FD\u6027\uFF09");return Object.assign(o,{cause:e}),o}let n=t,r=[typeof n.code=="string"&&n.code!==""?`${n.message}\uFF08${n.code}\uFF09`:n.message];if(n.errors!==null&&typeof n.errors=="object")for(let[o,a]of Object.entries(n.errors)){let s=Array.isArray(a?.messages)?a.messages.filter(l=>typeof l=="string"):[];s.length>0&&r.push(`${o}: ${s.join(" / ")}`)}let i=new Error(r.join(`
|
|
18
18
|
`));return typeof n.code=="string"&&n.code!==""&&(i.name=n.code),typeof n.code=="string"&&Object.assign(i,{code:n.code}),typeof n.status=="number"&&Object.assign(i,{status:n.status}),Object.assign(i,{cause:e}),i}async function Tb(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return so({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}),so(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}),so(n)}}function Ib(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function Kn(e,t,n){try{return await kintone.api(hp(e),t,n)}catch(r){throw so(r)}}function wb(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function bb(e={}){let t=e.cursorMaxActive??Ab;wb(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=Sb(a),l=await fetch(s.url,s.init);if(!l.ok)throw await Tb(l);let c=await l.json();return iy(l.headers.get("X-Cybozu-Warning"))?{...c,searchAborted:!0}:c}catch(s){throw so(s)}},async openCursor(a){let s=hp(Us),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(),d;try{d=await n.runCreate(()=>Kn(Us,"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 Ka(E))}let u=d.id,p=ey(Number(d.totalCount),{get:()=>Kn(Us,"GET",{id:u}),delete:()=>Kn(Us,"DELETE",{id:u}),isAlreadyReleasedError:Ib,onReleased:()=>c.release(),onReleaseUnknown:()=>c.quarantine()}),f=null,R={totalCount:p.totalCount,async nextPage(){let E=await p.nextPage();return E.next||i.delete(R),E},close(){return f||(f=p.close().finally(()=>{i.delete(R)}),f)}};return i.add(R),R},async getApps(){let s=[],l=0;for(;;){let c=await Kn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let d of c.apps)s.push({appId:Number(d.appId),name:d.name,description:d.description});if(c.apps.length<100)break;l+=100}return s},async getFields(a){let s=await Kn("/k/v1/app/form/fields.json","GET",{app:a});return ty(s.properties)},async getNumberPrecision(a){let s=await Kn("/k/v1/app/settings.json","GET",{app:a});return Bf(s)},async getProcessStatuses(a){let s=await Kn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:ry(s.states)}}}}var ay=new Set(["postRecords","putRecords","upsertRecords","deleteRecords"]),lo=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 cn(e){try{return await e()}catch(t){throw new lo(t)}}function Nb(e){return()=>{throw et(`${String(e)} is blocked by the readonly client`)}}function wr(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 cn(()=>t(l));if(c.searchAborted===!0)throw Zm();return c},openCursor:async l=>{let c=await cn(()=>n(l)),d=c.nextPage.bind(c),u=c.close.bind(c);return{totalCount:c.totalCount,nextPage:()=>cn(()=>d()),close:()=>cn(()=>u())}},getApps:()=>cn(()=>r()),getFields:l=>cn(()=>i(l)),getNumberPrecision:l=>cn(()=>o(l)),getProcessStatuses:l=>cn(()=>a(l))});return new Proxy(s,{get(l,c,d){return ay.has(c)?Nb(c):Reflect.get(l,c,d)},has(l,c){return ay.has(c)?!1:Reflect.has(l,c)}})}function Cb(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 lo(o.reason)})(),n)}}}async function br(e,t){let n=Cb(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 Pb="A-Za-z",Ob="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Sp=`${Pb}${Ob}`,ly=`${Sp}0-9_`,Lb=new RegExp(`^[${Sp}]$`,"u"),_b=new RegExp(`^[${ly}]$`,"u"),Db=new RegExp(`^[${Sp}][${ly}]{0,63}$`,"u");function vb(e){return Lb.test(e)}function Ub(e){return _b.test(e)}function Tp(e){let t=e.normalize("NFC").toUpperCase();if(!Db.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 Ap(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 Mb(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 kb(e,t){let n=t>0?e[t-1]:"";if(Ap(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,!vb(e[l]??""))return null;for(l++;l<e.length&&Ub(e[l]);)l++;s=l;try{o=Tp(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&&Ap(e[l]);)l++;if(l===f)return null}let c=l,d=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&Mb(e[l]);)l++;if(l===f)return null;d=e.slice(f,l)}let u=l<e.length?e[l]:"";if(Ap(u))return null;let p={profile:d,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:c,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function Ip(e){let t=[],n=0;for(;n<e.length;){let r=e[n];if(r==="'"){for(n++;n<e.length;){if(e[n]==="'"){if(n++,n<e.length&&e[n]==="'"){n++;continue}break}n++}continue}if(r==="`"){for(n++;n<e.length&&e[n]!=="`";)n++;n<e.length&&n++;continue}if(r==="-"&&e[n+1]==="-"){for(n+=2;n<e.length&&e[n]!==`
|
|
19
19
|
`;)n++;continue}if(r==="/"&&e[n+1]==="*"){for(n+=2;n<e.length;){if(e[n]==="*"&&e[n+1]==="/"){n+=2;break}n++}continue}let i=kb(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function sy(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function uy(e,t="dev",n){let r=Ip(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let y=a(m.profile),g=o.get(m.appId);g||(g=new Set,o.set(m.appId,g)),g.add(y.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let y=a(m.profile).toLowerCase(),g=`logical:${m.logicalName}@${y}`;if(l.has(g))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${y} requires logicalApps configuration.`);let T=n.resolveLogicalApp(m.logicalName,y);l.set(g,T),s.add(T)}let c=new Map,d=new Map;for(let[m,y]of o.entries()){let g=[...y].sort();if(!(g.length<=1))for(let T of g){let h=sy(s);c.set(`physical:${m}@${T}`,h),d.set(h,{source:"physical",mappedAppId:h,appId:m,profile:T})}}let u=[],p=[],f=0,R=0,E=(m,y,g,T)=>{if(!m&&y===g)return;let h=f;u.push(m),f+=m.length,p.push({normalizedStart:h,normalizedEnd:f,sourceStart:y,sourceEnd:g,...T===void 0?{}:{bindingMappedAppId:T}})};for(let m of r){let y=a(m.profile).toLowerCase(),g;if(m.source==="physical")g={source:"physical",mappedAppId:c.get(`physical:${m.appId}@${y}`)??m.appId,appId:m.appId,profile:y};else{let I=`logical:${m.logicalName}@${y}`,N=c.get(I);N===void 0&&(N=sy(s),c.set(I,N)),g={source:"logical",logicalName:m.logicalName,mappedAppId:N,appId:l.get(I),profile:y}}d.set(g.mappedAppId,g),E(e.slice(R,m.start),R,m.start);let T=e.slice(m.referenceValueEnd,m.appEnd),h=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${g.mappedAppId}${T}`:`APP${g.mappedAppId}${T}`;E(h,m.start,m.fullEnd,g.mappedAppId),R=m.fullEnd}return E(e.slice(R),R,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:d,rewriteSegments:p}}var cy=new Set(["client","logicalApps","maxRecords","recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions","fetchParallel","cursorMaxActive"]),py=new Set([...cy,"onLimitReached"]),xb=new Set([...py,"variables","tempTableMaxRows"]);function dy(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Nr(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function fy(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 Fb(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 Ey(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=Tp(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`);Nr(r,`logicalApps.${n}`),t[i]=r}return t}function Ry(e,t,n){for(let r of Reflect.ownKeys(e))if(typeof r!="string"||!t.has(r))throw new TypeError(`Unknown ${n} option: ${String(r)}`);e.maxRecords!==void 0&&Nr(e.maxRecords,"maxRecords");for(let r of["recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions"])e[r]!==void 0&&Nr(e[r],r);if(e.fetchParallel!==void 0&&Nr(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Nr(e.cursorMaxActive,"cursorMaxActive"),e.cursorMaxActive>5))throw new RangeError("cursorMaxActive must be between 1 and 5");if(e.onLimitReached!==void 0&&e.onLimitReached!=="error"&&e.onLimitReached!=="truncate")throw new TypeError('onLimitReached must be "error" or "truncate"');return{...e.maxRecords!==void 0?{maxRecords:e.maxRecords}:{},...e.recursiveCteMaxDepth!==void 0?{recursiveCteMaxDepth:e.recursiveCteMaxDepth}:{},...e.recursiveCteMaxRows!==void 0?{recursiveCteMaxRows:e.recursiveCteMaxRows}:{},...e.recursiveCteMaxExpansions!==void 0?{recursiveCteMaxExpansions:e.recursiveCteMaxExpansions}:{},...e.fetchParallel!==void 0?{fetchParallel:e.fetchParallel}:{},...e.cursorMaxActive!==void 0?{cursorMaxActive:e.cursorMaxActive}:{},...e.onLimitReached!==void 0?{onLimitReached:e.onLimitReached}:{}}}function wp(e,t){dy(e);let n=t==="run"?py:cy;fy(e.client);let r=Ry(e,n,t==="run"?"runQuery":"explainQuery"),i=Ey(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function my(e){dy(e),fy(e.client),e.variables!==void 0&&Fb(e.variables),e.tempTableMaxRows!==void 0&&Nr(e.tempTableMaxRows,"tempTableMaxRows");let t=Ry(e,xb,"runBatch"),n=Ey(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 Ms(e,t,n={}){let r=n.logicalAppDisplay??"profile";if(typeof e=="string"){let i=e.match(/^(\s*target:\s*)APP(\d+) \((\d+)\)\s*$/);if(i&&i[2]===i[3]){let s=t.get(Number(i[2]));if(s){let l=s.source==="logical"?r==="physical"?`LAPP_${s.logicalName} -> APP${s.appId}`:`LAPP_${s.logicalName} -> APP${s.appId}@${s.profile}`:r==="physical"?`APP${s.appId}`:`APP${s.appId}@${s.profile}`;return`${i[1]}${l}`}}if(t.size===0)return e;let o=[...t.keys()].sort((s,l)=>String(l).length-String(s).length),a=new RegExp(`APP(${o.join("|")})(?!\\d)(\\s+AS\\s+[^\\s()]+)?(?:\\s+\\(\\1\\))?`,"g");return e.replace(a,(s,l,c)=>{let d=t.get(Number(l));return`${d.source==="logical"?r==="physical"?`LAPP_${d.logicalName} -> APP${d.appId}`:`LAPP_${d.logicalName}@${d.profile}`:r==="physical"?`APP${d.appId}`:`APP${d.appId}@${d.profile}`}${c??""}`})}return Array.isArray(e)?e.map(i=>Ms(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,Ms(o,t,n)])):e}function Kb(e,t,n){return e.slice(t,n)}function uo(e,t,n){let r=Ip(e),i=r.find(c=>c.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${Kb(e,i.start,i.fullEnd)}).`);if(!r.some(c=>c.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=uy(e,"browser",{resolveLogicalApp(c){let d=n?.[c];if(d===void 0)throw new Error(`ArgumentError: logical app LAPP_${c} is not defined.`);return d}}),a=[...o.appBindingByMappedApp.values()].filter(c=>c.source==="logical"),s=c=>o.appBindingByMappedApp.get(c)?.appId??c,l={getRecords:c=>t.getRecords({...c,app:s(c.app)}),openCursor:c=>t.openCursor({...c,app:s(c.app)}),getApps:()=>t.getApps(),getFields:c=>t.getFields(s(c)),getNumberPrecision:c=>t.getNumberPrecision(s(c)),getProcessStatuses:c=>t.getProcessStatuses(s(c))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function co(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 po(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return Ms(e,n,{logicalAppDisplay:"physical"})}function ks(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 Gb(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function $b(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 xs(e,t=e.metrics){let n=kR(e);return{type:"query",rows:e.rows.map(Gb),columns:e.columns.map(r=>$b(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:ks(t)}}function bp(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 yy(e){if(e instanceof me)return Ir(e.message,e);let t=Fn(e);return t.code==="PARSE_ERROR"?t:Ir("SQL statement could not be parsed",e)}function Bb(e){if(e.trim()==="")throw Ir("SQL statement is empty");try{return KE(e,{import:!0})}catch(t){let n=yy(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Ir("This API accepts one statement; use runBatch for multiple statements",t):n}}function gy(e){if(ho(e)==="UNKNOWN")throw et("Unclassifiable statement is not allowed");return e}function hy(e){if(e.trim()==="")throw Ir("SQL statement is empty");try{return Mu(e,{import:!0})}catch(t){throw yy(t)}}function Vb(e){let t=gy(e),n=t.type;if(n==="IMPORT")throw et("IMPORT is disabled by default in engine library queries");if(!Bn(t))throw et(`${n} statements are not read-only`);if(bp(t))throw et("APPLY statements are not allowed in engine library queries");if(!Fp(t))throw et(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function Ay(e){let t=gy(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw et("IMPORT is disabled by default in engine library batches");if(!Bn(n))throw et(`${n.type} statements are not read-only`);if(bp(n))throw et("APPLY statements are not allowed in engine library batches");if(Yt(n.type))throw et("DML VALIDATE ONLY statements are not supported by runBatch")}function Sy(e){let t=Bb(e);return Vb(t),t}function Ty(e){let t=hy(e);return t.forEach(Ay),t}function Iy(e){let t=e.trim(),n=hy(t);n.forEach(Ay);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 Wb(e){let t=e.error,n=t?.cause!==void 0?Fn(t.cause):new ke("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return gp(n,e.index,e.type)}async function Hb(e,t){let n=[],r=[];try{let i=my(t),o=uo(e,i.client,i.logicalApps);r=o.logicalBindings,n=Ty(o.sql);let a=await br(o.client,d=>jR(o.sql,wr(d),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(d=>d.status==="error");if(s!==void 0)throw Wb(s);let l=[],c=a.statements.map(d=>{let u={index:d.index,type:d.type,status:d.status};if(d.tempTable!==void 0&&(u.tempTable=d.tempTable),d.rowCount!==void 0&&(u.rowCount=d.rowCount),d.error!==void 0&&(u.error={code:d.error.code,message:d.error.message}),d.skippedReason!==void 0&&(u.skippedReason=d.skippedReason),d.status==="success"&&d.result?.type==="SELECT"){u.resultIndex=l.length;let p=xs(d.result,a.metrics);l.push(n[d.index]?.type==="EXPLAIN"?po(p,r):p)}return u});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:c,results:l,warnings:[]}}catch(i){throw co(Ls(i,n),r)}}function wy(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Yb(e,t){let n=[];try{let r=wp(t,"run"),i=uo(e,r.client,r.logicalApps);n=i.logicalBindings;let a=Sy(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await br(i.client,l=>kc(i.sql,wr(l),{...a,captureColumnMeta:!0}));return wy(s),xs(s)}catch(r){throw co(Fn(r),n)}}async function jb(e,t){let n=[],r=[];try{let i=wp(t,"explain"),o=uo(e,i.client,i.logicalApps);r=o.logicalBindings;let a=Iy(o.sql);if(n=a.statements,a.legacySql!==void 0){let d=await br(o.client,f=>kc(a.legacySql,wr(f),i.executeOptions));wy(d);let u=po(d.rows.map(f=>String(f.plan??"")),r),p=Rp(d)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:u,text:u.join(`
|
|
20
20
|
`),plan:p,metrics:ks(d.metrics)}}let s=await br(o.client,d=>Ym(o.sql,wr(d),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive,!1,100,void 0,!0,i.executeOptions.recursiveCteMaxDepth,i.executeOptions.recursiveCteMaxRows,i.executeOptions.recursiveCteMaxExpansions,void 0,void 0,{surface:"DOCUMENT_ONLY"})),l=po(s.statements.flatMap(d=>[...s.statementCount>1?[`[${d.index+1}] ${d.type}`]:[],...d.plan]),r),c=Rp(s)??{statements:s.statements.map(d=>({index:d.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
|
|
21
|
-
`),plan:c,metrics:ks()}}catch(i){throw co(Ls(i,n),r)}}var Jv="3.
|
|
21
|
+
`),plan:c,metrics:ks()}}catch(i){throw co(Ls(i,n),r)}}var Jv="3.74.0";export{ke as KsqlEngineError,bb as createReadonlyKintoneClient,jb as explainQuery,Hb as runBatch,Yb as runQuery,Jv as version};
|