@rex0220/kintone-sql-tools 3.83.0 → 3.84.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- "use strict";var ll=Object.defineProperty;var rg=Object.getOwnPropertyDescriptor;var ig=Object.getOwnPropertyNames;var og=Object.prototype.hasOwnProperty;var ag=(e,t)=>{for(var n in t)ll(e,n,{get:t[n],enumerable:!0})},sg=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ig(t))!og.call(e,i)&&i!==n&&ll(e,i,{get:()=>t[i],enumerable:!(r=rg(t,i))||r.enumerable});return e};var lg=e=>sg(ll({},"__esModule",{value:!0}),e);var DN={};ag(DN,{KsqlEngineError:()=>ve,createReadonlyKintoneClient:()=>_y,explainQuery:()=>Zy,runBatch:()=>Jy,runQuery:()=>Qy,version:()=>_N});module.exports=lg(DN);async function Ke(e,t,n,r,i={}){let o=i.pageSize??ug,a=Math.max(1,i.parallel??cg),s=i.maxRecords??pg,l=i.onLimit??"error",u=i.stopAfter;if(u!==void 0&&(!Number.isSafeInteger(u)||u<=0||u>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=u??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,d=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,m=0,y=ed(n,R),g=await Zp(e,t,y,c,o,m);if(Qp(g,i),d.push(...g.records),u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Ve(E)}if(g.records.length<o)return d;for(m+=o,m>=ul&&(R=td(g.records),m=0);;){if(u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Ve(E)}let A=p-d.length,h=Math.ceil(A/o),I=Math.max(1,Math.min(a,h)),b=[];for(let v=0;v<I;v++){let x=m+v*o;if(x>=ul)break;b.push(x)}let D=ed(n,R),C=await Promise.all(b.map(v=>Zp(e,t,D,c,o,v)));for(let v of C)Qp(v,i);let M=!1;for(let v of C){if(d.push(...v.records),u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Ve(E)}if(v.records.length<o){M=!0;break}}if(M)break;if(m+=o*b.length,m>=ul){let v=C[C.length-1];R=td(v.records),m=0}}return d}function Qp(e,t){e.searchAborted&&t.onSearchAborted?.()}function nd(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 ug=500,cg=1,pg=1e4,ul=1e4;async function Zp(e,t,n,r,i,o){let a=dg(n,i,o);return e({app:t,query:a,fields:r})}function ed(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 dg(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function td(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 Ve=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var fg=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Eg(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function we(e){let t=fg.exec(e.trim());if(t===null)return null;let n=Eg(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 cl(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 rd(e){let t=we(e);return t===null?null:cl(t)}function Rg(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 Lo(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Rg(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function _o(e,t){let n=we(e),r=we(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Lo(n,r)}var Ce="__NO_FROM__";function Do(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function qn(e){return e.windowKind==="AGGREGATE"}function vo(e){return e.windowKind==="VALUE"}function be(e){return{type:"NUMBER",value:Number(e),raw:e}}function q(e){let t=e.raw??String(e.value);return rd(t)??t}function id(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 mg(e){return`${e.tableAlias??""}\0${e.field}`}function ee(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=mg(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 od(e){return ee(e).type!=="NONE"}function ad(e,t){let n=ee(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),u=r.get(l.canonicalId);if(u)return u;let p={...l,field:s};return r.set(p.canonicalId,p),p},o=n.allItems.map(i).filter((s,l,u)=>u.findIndex(p=>p.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function ko(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function en(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function yg(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 pl(e){return en(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Qn(e){return!pl(e)&&(yg(e.type)||en(e.type))}function sd(e){return Qn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var ld=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Me(e,t){for(let n of t)e.add(n)}function Uo(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"&&ld.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=>Uo(i,t)):Uo(r,t))}function Mo(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"&&!ld.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=>Mo(i,t)):Mo(r,t))}function Zt(e){let t=new Set;if(en(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Me(t,Xn(e));break;case"UNION":Me(t,cd(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Me(t,Zt(n.query));Me(t,Zt(e.query));break;case"CREATE_TEMP_TABLE":Me(t,Zt(e.query));break;default:break}return Uo(e)&&t.add("STATISTICAL_AGGREGATE"),Mo(e)&&t.add("AGGREGATE"),t}function ud(e){return Zt(e).size>0}function cd(e){let t=e.left.type==="SELECT"?Xn(e.left):cd(e.left);return Me(t,Xn(e.right)),e.all||t.add("DISTINCT"),t}function Xn(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=ee(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of[...e.columns,...e.hiddenWindows??[]])if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Me(t,Xn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Me(t,Jn(i.condition));return Me(t,Jn(e.where)),Me(t,Jn(e.having)),Uo(e)&&t.add("STATISTICAL_AGGREGATE"),Mo(e)&&t.add("AGGREGATE"),t}function Jn(e){let t=new Set;if(e===null)return t;switch(e.type){case"BINARY":(e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY")&&Me(t,Xn(e.right.query));break;case"LOGICAL":Me(t,Jn(e.left)),Me(t,Jn(e.right));break;case"NOT":case"GROUP":Me(t,Jn(e.expr));break;case"EXISTS":Me(t,Xn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function pd(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function dd(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 xo=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Tn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Gr=new Set([...Tn,...xo]),In="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",vt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function re(e){return xo.has(e)}function Zn(e){return Tn.has(e)}function st(e){return Gr.has(e)}var gg=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})}),El=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})}),Kr="v1";function J(e){throw new Error(`UnsupportedError: APPLY ${Kr} scope does not support ${e}`)}function hg(e,t){let n=Kr;Kr=e;try{return t()}finally{Kr=n}}function Ag(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 nr(e,t){return hg(e,()=>Sg(t,gg[e]))}function Sg(e,t){let n=Ag(e);if(n===null)return;if(n.type==="UPSERT"){Ig(n,t);return}let r=n.applyBlocks;if(dl(r),!t.multipleBlocks&&r.length!==1&&J("multiple APPLY blocks in this phase"),n.type==="INSERT"){wg(n,r,t);return}let i=n;i.subtableCode&&J("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&J("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&J("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&J("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&J("REJECT LIMIT in this phase"),bg(i.where,t.multipleParents),Ed(r,t)}function Ed(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||J(`${r.kind} in this phase`);Rd(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Fo(i,"APPEND targets");tr(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&fd(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.assignments.length===0&&J("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&J("parent or qualified PATCH targets in this phase")}tr(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&fd(r.selector.where,t.idxSelectors)}}}}function Rd(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 Tg=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function md(e,t){if(Rd(e),e.targetKind==="MULTI_VALUE"){if(!Tg.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 dl(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Kr} scope allows only one block for table ${n.field}`);t.add(n.field)}}function Ig(e,t){t.upsert||J("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&J("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&J("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&J("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];dl(n),dl(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&J("multiple APPLY blocks in this phase"),yd(n,"UPSERT ON INSERT"),Ed(r,{...t,idxSelectors:!1,expectRows:!1})}function yd(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&J(`${r.kind} for ${t} in this phase`);for(let i of r.fields)Fo(i,"APPEND targets");tr(r.values,"APPEND values")}}function wg(e,t,n){n.insert||J("INSERT in this phase"),e.subtableCode&&J("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&J("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&J("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&J("REJECT LIMIT in this phase"),yd(t,"INSERT")}function Ut(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 Go(e,t){let n=El[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Rl(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${er(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 ${er(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 ${er(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Ut(t.where))throw new Error(`UnsupportedError: APPLY ${er(e)} execution does not support multiple-parent APPLY`)}function Rl(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 gd(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Ut(t.where))&&!El[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${er(e)} public multiple-parent write is not connected`)}function rr(e){if(!El[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${er(e)} internal prepared write is not available`)}function er(e){return`Phase ${e.slice(5)}`}function bg(e,t){Ut(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&J("a parent $id that is not a positive safe integer in this phase"),t||J("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),fl(e,t))}function fl(e,t){if(Array.isArray(e)){for(let o of e)fl(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&J("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&J("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&J("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&J("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&re(n.name))&&J("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))fl(o,t)}function fd(e,t){tr(e,"child row selectors",t)}function tr(e,t,n=!1){if(Array.isArray(e)){for(let s of e)tr(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&J(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&J(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&J(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&re(r.name))&&J(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&J(`qualified or parent field references in ${t}`),Fo(l,t,n)}if(i==="FIELD_REF"&&Fo(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))tr(s,t,n)}function Fo(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&J(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&J(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&J(`aggregate expressions in ${t}`)}function Br(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Ng(e.op);if(t===null)throw new fe(`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:Br(e.left),right:Br(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Br(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Ng(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 hd(e){return e.includes("%")||e.includes("_")}function $r(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function nn(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function tn(e){if(e===null)return!1;if($r(e))return!0;switch(e.type){case"LOGICAL":return tn(e.left)||tn(e.right);case"NOT":case"GROUP":return tn(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Pe(e){if(e===null)return!1;if(nn(e))return!0;switch(e.type){case"LOGICAL":return Pe(e.left)||Pe(e.right);case"NOT":case"GROUP":return Pe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function z(e){switch(e.type){case"BINARY":return Cg(e);case"NULL_CHECK":return Og(e);case"LOGICAL":return Lg(e);case"NOT":return _g(e);case"GROUP":return Dg(e);case"EXISTS":throw new fe("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new fe("internal error: BOOLEAN predicate reached kintone query conversion")}}function Cg(e){if($r(e))throw new fe("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=Sd(e.left),n=Pg(e.op),r=vg(e.right,e.op);return`${t} ${n} ${r}`}function Pg(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 Og(e){let t=Sd(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Lg(e){let t=z(e.left),n=z(e.right),r=e.op==="AND"?"and":"or",i=Ad(e.left)?`(${t})`:t,o=Ad(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function _g(e){return z(Br(e.expr))}function Dg(e){return`(${z(e.expr)})`}function Sd(e){if(e.type==="FUNC_FIELD")throw new fe(`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 fe("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 fe("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 fe("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 fe("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return Bg(e.field)}function vg(e,t){switch(e.type){case"VARIABLE":throw new fe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new fe(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Td(e);case"NUMBER":return q(e);case"KINTONE_FUNC":return Id(e);case"IN_LIST":return Gg(e,t);case"ARITH_VALUE":throw new fe("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 fe("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 fe("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new fe("\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 fe("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Td(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Id(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Ug(e)}function Ug(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Wr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!xg(e.args.offset,e.args.offsetText)||!Mg.has(e.args.unit)?Wr():`${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&&!kg.has(e.args.weekday)?Wr():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"||!Fg(e.args.day)?Wr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Wr()}var Mg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),kg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function xg(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function Fg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Wr(){throw new fe("internal error: invalid relative date function AST reached kintone query conversion")}function Gg(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new fe("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Kg(e.values),`(${e.values.map(r=>r.type==="STRING"?Td(r):r.type==="NUMBER"?q(r):Id(r)).join(",")})`}function Kg(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new fe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function Bg(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Ad(e){return e.type==="LOGICAL"}var fe=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Ko(e){return`'${e.replace(/'/g,"''")}'`}function ir(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return q(e);if(e.type==="STRING_FUNC")return yl(e);let n=`${ir(e.left)}${e.op}${ir(e.right)}`;return t?n:`(${n})`}function wd(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return yl(e.expr);if(e.type==="AGG_FIELD")return ht(e.expr);if(e.type==="ARITH_FIELD")return ir(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return ml(e.expr)}function Nd(e){switch(e.type){case"STRING":return Ko(e.value);case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>Ko(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Nd).join(",")})`;case"ARITH_VALUE":return ir(e.expr);case"CASE_VALUE":return ml(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Vr(e){switch(e.type){case"BINARY":return`${wd(e.left)} ${e.op.replace("_"," ")} ${Nd(e.right)}`;case"NULL_CHECK":return`${wd(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Vr(e.left)} ${e.op} ${Vr(e.right)})`;case"NOT":return`NOT (${Vr(e.expr)})`;case"GROUP":return`(${Vr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function bd(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Ko(t.value)).join(",")}]`:e.type==="AGG_REF"?ie(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?ht(e):e.type==="FIELD_REF"||e.type==="ARITH"?ir(e):wn(e)}function ml(e){let t=e.branches.map(r=>`WHEN ${Vr(r.condition)} THEN ${bd(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${bd(e.elseResult)}`;return`CASE ${t}${n} END`}function $g(e){return e.type==="AGG_REF"?ie(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?ht(e):wn(e)}function yl(e){return`${e.func}(${e.args.map($g).join(",")})`}function wn(e){switch(e.type){case"STRING":return Ko(e.value);case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return yl(e);case"CASE_WHEN":return ml(e);case"SCALAR_ARITH":return`(${wn(e.left)}${e.op}${wn(e.right)})`;case"CONCAT_OP":return`(${wn(e.left)}||${wn(e.right)})`}}function Wg(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?ir(e,!0):wn(e)}function ie(e,t,n){let r=Wg(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function ht(e){return e.type==="NUMBER"?q(e):e.type==="AGG_REF"?ie(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${ht(e.left)}${e.op}${ht(e.right)}`}var Cd=Symbol("ksql.groupingRowMeta"),Pd=new WeakMap;function gl(e,t){return Object.defineProperty(e,Cd,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function hl(e){return e[Cd]}function Vg(e){return hl(e)?.includedCanonicalIds}function Od(e,t){Pd.set(e,t)}function bn(e,t){let n=Vg(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Pd.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Bo=["$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 $o(e){return e.startsWith("_")||e.startsWith("$")}var Hg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Sl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Sl);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"?Hg.test(t.field):Object.values(t).some(Sl)}function Yg(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 ge(e)||Sl(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var jg=["_pid","_rid","_idx"];function Al(e){return[...new Set(e)]}function zg(e){switch(e.kind){case"APP":return Al([...e.fieldCodes,...Bo]);case"SUBTABLE":return Al([...e.childFieldCodes,...jg,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Al(e.columns)}}function Ld(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:zg(t(r,i))}))}function _d(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 Dd(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function vd(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?_d(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:Dd(a,r.fieldCode)}}function qg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Jg(e,t,n){let r=_d(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:Dd(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,u)=>qg(l)===e?[{column:l,columnIndex:u}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],u=Yg(l.column);return u==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:u==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&ie(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Ud(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Jg(r.name,t,n):{kind:"EXPRESSION"})}}function Oe(e,t){let n=[...t];if(n.includes(e))return e;let r=e.toLowerCase();return n.find(i=>i===r)}var Xg="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 Hr(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 wl(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return Hr(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?Hr(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function bl(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function kd(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function xd(e){return e.type==="WINDOW_COL"}function Qg(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function rn(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 u=e.map(p=>rn(p,t));return u.some(p=>p===null)?null:`[${u.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||bl(n))return null;if(r==="GROUP"&&n.expr!==void 0)return rn(n.expr,t);let i=typeof r=="string"?Il.get(r):void 0;if(i!==void 0)return rn(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:${Qg(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=wl(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 u of Object.keys(n)){if(u==="type"||a.has(u))continue;let p=rn(n[u],t);if(p===null)return null;s.push(`${u}=${p}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function Zg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function eh(e){let t=new Map;for(let n of e){let r=Zg(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function Nl(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var th=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Wo(e){if(e&&typeof e=="object"){let t=e,n=wl(t);if(n!==null)return Nl(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=Wo(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Md(e,t,n,r){let i=n==="WILDCARD"?"wildcard":Nl(n),o=Wo(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=${Xg})`)}function on(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)on(a,t);return}let n=e;if(n.hiddenWindowRef===!0||bl(n)||kd(n)||xd(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 Md(t.clause,t.expression,"WILDCARD",t.policy);let r=wl(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&th.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=Oe(r.field,t.aliases.keys()),u=l===void 0?[]:t.aliases.get(l)??[];if(u.length===1&&l!==void 0&&!t.resolvingAliases.has(l)){let p=new Set(t.resolvingAliases);p.add(l),on(u[0],{...t,resolvingAliases:p});return}}let a=rn(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 Md(t.clause,t.expression,r,t.policy);return}let i=rn(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){on(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||on(n[a],t)}function Yr(e,t){let n=eh(e.columns);for(let r of[...e.columns,...e.hiddenWindows??[]]){if(r.type==="WINDOW_COL"){let i=[...r.partitionBy,...r.orderBy.map(o=>o.key.type==="FIELD_NAME"?o.key.aggregateRef??Hr(o.key.name):o.key),...r.windowKind==="AGGREGATE"||r.windowKind==="VALUE"?[r.arg]:[]];for(let o of i)on(o,{clause:"ORDER BY",expression:o,policy:t,aliases:n,resolvingAliases:new Set});continue}on(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set})}e.having!==null&&on(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"?Hr(r.key.name):r.key;on(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function Tl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Tl);let t=e;return bl(t)||xd(t)?!1:kd(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Tl)}function Mt(e){return ee(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Tl(t))}function nh(e){return e.type==="FIELD_NAME"?Hr(e.name):e.expr}function Fd(e,t,n){let r=ee(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let E=vd(f,n);if(E.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${E.name} is ambiguous across multiple sources.`);return E.kind==="UNKNOWN"?`unknown:${E.name}`:`source:${E.sourceIndex}:${E.fieldCode}`},a=new Set;t.items.forEach((f,E)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let R=rn(e.columns[f.columnIndex],o);R!==null&&a.add(R);return}if(f.kind==="EXPRESSION"){let R=rn(nh(i[E]),o);R!==null&&a.add(R)}});let s=[e.from,...e.joins.map(f=>f.table)],l=f=>`APP${f.appId}${f.subtableCode!=null?`$${f.subtableCode}`:""}`,u=s.map(f=>f.cteName??l(f)).join(" / "),p=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:Wo(f)).join(", ")}`,c=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,d=i.every((f,E)=>f.type==="FIELD_NAME"&&t.items[E]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:u,groupingLabel:p,migrationSourceSql:c,migrationGroupingFields:d}}function Vo(e){if(ee(e).type!=="NONE"||!Mt(e))return;let t={identities:new Set,resolveField:n=>`ast:${Nl(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};Yr(e,t)}function Gd(e){return`FIELD:${e}`}var Kd=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 Cl(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function lt(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>lt(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=>lt(r,t))}}function jo(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>jo(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){lt(n.arg,t);return}Object.values(n).forEach(r=>jo(r,t))}}function ge(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ge);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(ge)}function rh(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="ARITH_COL"||e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?ge(e):!1}function ih(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${Cl(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${Cl(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Od(e,r.canonicalId)}function Pl(e){let t=ee(e),n=[];for(let i of e.columns)lt(i,n);lt(e.having,n),lt(e.orderBy,n);let r=[];if(lt(e.where,r),lt(e.joins,r),jo(e.columns,r),jo(e.having,r),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.");Vo(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==="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 Bd(e,t,n=()=>{}){Pl(e);let r=ee(e),i=[];for(let u of e.columns)lt(u,i);if(lt(e.having,i),lt(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=ad(e,t),a=new Set,s=[];for(let u of o.allItems){let p=u;if(!p.physical)throw new Error(`ArgumentError: grouping item ${Cl(u.field)} must resolve to a physical APP field.`);a.has(p.canonicalId)||(a.add(p.canonicalId),s.push(p))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let u of i)ih(u,t,a);Yr(e,{identities:new Set([...a].map(Gd)),resolveField:u=>t(u).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let u of s)l.add(u.directKey),u.unqualifiedBridgeKey!==null&&l.add(u.unqualifiedBridgeKey);for(let u of e.columns){if(!rh(u))continue;let p="alias"in u?u.alias:null;if(p!==null&&l.has(p))throw new Error(`ArgumentError: aggregate alias ${p} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function oh(e){return e.some(t=>t.type==="WINDOW_COL")}function je(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ee(e).type!=="NONE"||e.distinct||oh(e.columns)||(e.hiddenWindows?.length??0)>0||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&ge(t.expr)||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&ge(t.expr)||t.type==="STRFUNC_COL"&&Ll(t.expr)||t.type==="SCALAR_VALUE_COL"&&ar(t.expr))||kt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function kt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return $d(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||$r(e);case"NULL_CHECK":return $d(e.field);case"LOGICAL":return kt(e.left)||kt(e.right);case"NOT":case"GROUP":return kt(e.expr);case"EXISTS":return!0}}function $d(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function qo(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(z(e.where)),e.orderBy.length>0){let i=e.orderBy.map(ah).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:sh(e.columns),totalCount:!1}}function Hd(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!kt(e.where)&&n.push(z(e.where)),{app:t,query:n.join(" "),fields:[]}}function Nn(e,t,n){let i=jd(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 ah(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 sh(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="ARITH_COL"&&ge(r.expr)||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(Jo(r.field)):r.type==="ARITH_COL"?jr(r.expr,n):r.type==="STRFUNC_COL"?Ol(r.expr,n):r.type==="SCALAR_VALUE_COL"&&or(r.expr,n);return[...new Set(n)]}function lh(e,t){jr(e.left,t),jr(e.right,t)}function jr(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(Jo(e.field)):e.type==="ARITH"?lh(e,t):e.type==="STRING_FUNC"&&Ol(e,t)}function Jo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Ol(e,t){for(let n of e.args)uh(n,t)}function uh(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){zo(e,t);return}or(e,t)}function or(e,t){if(e.type==="FIELD"){t.push(Jo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Ol(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){or(e.left,t),or(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Wd(n.result,t);e.elseResult&&Wd(e.elseResult,t)}}function Wd(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){zo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){jr(e,t);return}or(e,t)}}function zo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&ch(e.arg,t);return}e.type==="AGG_ARITH"&&(zo(e.left,t),zo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Jo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function ch(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?jr(e,t):or(e,t)}function Ll(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:ar(t))}function ar(e){return e.type==="STRING_FUNC"?Ll(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?ar(e.left)||ar(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Vd(t.result))||e.elseResult!==null&&Vd(e.elseResult):!1}function Vd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:ar(e)}function Yd(e,t){let n=new Set,r=jd(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function jd(e,t,n){let r=[e.from,...e.joins.map(S=>S.table)],i=[e.from,...e.joins.map(S=>S.table)].filter(S=>S.cteName===null),o=n?r:i,a=new Map;for(let S of o)a.set(S,{table:S,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(S=>!!S.subtableCode)??null,u=new Map;for(let S of o)S.alias&&u.set(S.alias,S),S.cteName!==null?u.set(S.cteName,S):S.subtableCode||(u.set(`APP${S.appId}`,S),u.set(`app${S.appId}`,S));let p=dh(e.columns),c=ph(e.columns),d=S=>{let w=a.get(S);w&&(w.allFields=!0,w.fields.clear())},f=()=>{for(let S of o)d(S)},E=()=>{for(let S of o)S.subtableCode&&d(S)},R=(S,w)=>{let L=a.get(S);if(!(!L||L.allFields)){if(S.subtableCode){if(w.startsWith("_p.")){let F=w.slice(3);F&&F!=="*"&&L.fields.add(F);return}return void 0}w&&L.fields.add(w)}},m=(S,w="select",L)=>{if(!S||S==="*")return;if(S==="_p.*"){E();return}if(S.endsWith(".*")){let K=S.slice(0,-2);if(!K){f();return}if(K==="_p"){E();return}let W=u.get(K);if(W){d(W);return}return}if(w==="groupBy"&&L!==void 0){if(L.kind==="PHYSICAL"){let K=r[L.sourceIndex];K&&(n||K.cteName===null)&&R(K,L.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&Oe(S,p)!==void 0||(w==="orderBy"||w==="having"||w==="groupBy")&&fh(S))return;let F=S.indexOf(".");if(F>0){let K=S.slice(0,F),W=S.slice(F+1);if(K==="_p"){l&&R(l,`_p.${W}`);return}let k=u.get(K);if(k){R(k,W);return}if(n)return}n?n.unqualified.add(S):s&&R(s,S)},y=(S,w,L="select")=>{if(w){if(w==="_p"){l&&R(l,`_p.${S}`);return}let F=u.get(w);if(F){R(F,S);return}if(n)return}m(S,L)},g=(S,w="select")=>{if(S.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${S.name} reached source-aware field collection.`);if(S.type==="FIELD_REF"){if(S.hiddenWindowRef)return;m(S.field,w);return}if(S.type==="ARITH"){g(S.left,w),g(S.right,w);return}if(S.type==="STRING_FUNC"){I(S,w);return}},A=(S,w="select")=>{if(S.type==="AGG_REF"){S.arg.type!=="WILDCARD"&&D(S.arg,w);return}S.type==="AGG_ARITH"&&(A(S.left,w),A(S.right,w)),S.type==="AGG_GROUP_KEY"&&y(S.field,S.tableAlias??null,w)},h=(S,w="select")=>{if(S.type==="AGG_REF"||S.type==="AGG_ARITH"||S.type==="AGG_GROUP_KEY"||S.type==="VARIABLE"){A(S,w);return}b(S,w)},I=(S,w="select")=>{for(let L of S.args)h(L,w)},b=(S,w="select")=>{if(S.type==="FIELD"){if(S.hiddenWindowRef)return;if(S.aggregateRef){A(S.aggregateRef,w);return}y(S.field,S.tableAlias,w);return}if(S.type==="STRING_FUNC"){I(S,w);return}if(S.type==="SCALAR_ARITH"||S.type==="CONCAT_OP"){b(S.left,w),b(S.right,w);return}S.type==="CASE_WHEN"&&M(S,w)},D=(S,w="select")=>{if(S.type==="FIELD_REF"||S.type==="ARITH"){g(S,w);return}b(S,w)},C=(S,w="select")=>{if(S.type!=="ARRAY"){if(S.type==="AGG_REF"||S.type==="AGG_ARITH"){A(S,w);return}if(S.type==="FIELD_REF"||S.type==="ARITH"){g(S,w);return}b(S,w)}},M=(S,w="select")=>{for(let L of S.branches)O(L.condition,w),C(L.result,w);S.elseResult&&C(S.elseResult,w)},v=(S,w="select")=>{if(S.type==="FIELD"){if(S.hiddenWindowRef)return;if(S.aggregateRef){A(S.aggregateRef,w);return}y(S.field,S.tableAlias,w);return}if(S.type==="FUNC_FIELD"){I(S.expr,w);return}if(S.type==="AGG_FIELD"){A(S.expr,w);return}if(S.type==="ARITH_FIELD"){g(S.expr,w);return}S.type!=="GROUPING_FIELD"&&M(S.expr,w)},x=(S,w="select")=>{if(S.type==="ARITH_VALUE"){g(S.expr,w);return}if(S.type==="CASE_VALUE"){M(S.expr,w);return}},O=(S,w="where")=>{if(S)switch(S.type){case"BINARY":v(S.left,w),x(S.right,w);return;case"NULL_CHECK":v(S.field,w);return;case"LOGICAL":O(S.left,w),O(S.right,w);return;case"NOT":case"GROUP":O(S.expr,w);return;case"EXISTS":case"BOOLEAN":return}},_=(S,w)=>{if(S.type==="FIELD_NAME"){m(S.name,"groupBy",w);return}if(S.type==="ARITH_KEY"){g(S.expr,"groupBy");return}I(S.expr,"groupBy")},N=(S,w="orderBy")=>{if(S.type==="FIELD_NAME"){if(S.aggregateRef){A(S.aggregateRef,w);return}m(S.name,w);return}if(S.type==="ARITH_KEY"){g(S.expr,w);return}S.type!=="GROUPING_KEY"&&I(S.expr,w)};for(let S of[...e.columns,...e.hiddenWindows??[]])switch(S.type){case"WILDCARD":f();break;case"PARENT_WILDCARD":E();break;case"FIELD":m(S.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${S.name}`);case"AGGREGATE":S.arg.type!=="WILDCARD"&&D(S.arg,"select");break;case"ARITH_AGG_COL":A(S.expr,"select");break;case"ARITH_COL":g(S.expr,"select");break;case"CASE_COL":M(S.expr,"select");break;case"STRFUNC_COL":I(S.expr,"select");break;case"SCALAR_VALUE_COL":b(S.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(S.windowKind==="AGGREGATE"||S.windowKind==="VALUE")&&S.arg.type!=="WILDCARD"&&D(S.arg,"select");for(let w of S.partitionBy)w.type==="FIELD"&&y(w.field,w.tableAlias,"select");for(let w of S.orderBy){let L=w.key.type==="FIELD_NAME"&&(w.key.aggregateRef!==void 0||c.has(w.key.name));N(w.key,L?"orderBy":"select")}break}for(let S of e.joins)S.type!=="CROSS"&&(y(S.on.left.field,S.on.left.tableAlias,"where"),y(S.on.right.field,S.on.right.tableAlias,"where"));O(e.where,"where");let P=ee(e);if(P.type==="PLAIN")P.allItems.forEach((S,w)=>_(S,t?.items[w]));else if(P.type==="GROUPING_SETS")for(let S of P.allItems)y(S.field,S.tableAlias,"select");O(e.having,"having");for(let S of e.orderBy)N(S.key);return a}function ph(e){let t=new Set;for(let n of e)(n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL"||n.type==="ARITH_COL"&&ge(n.expr)||n.type==="CASE_COL"&&ge(n.expr)||n.type==="STRFUNC_COL"&&Ll(n.expr)||n.type==="SCALAR_VALUE_COL"&&ar(n.expr))&&(n.alias&&t.add(n.alias),n.type==="AGGREGATE"&&t.add(ie(n.func,n.distinct,n.arg)));return t}function dh(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(ie(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 fh(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function an(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||je(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||od(n)||n.distinct?!1:!Mt(n)}function sn(e){let t=e.ctes[0].query,n=e.query,r=Xo(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 Xo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:zd(e.left,t)};case"NULL_CHECK":return{...e,field:zd(e.field,t)};case"LOGICAL":return{...e,left:Xo(e.left,t),right:Xo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Xo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function zd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var Eh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Rh=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":Rh.has(e.fieldType)?t="option":Eh.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 V(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function sr(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Qo(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 ze=["=","!=",">","<",">=","<="],mh=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),yh=new Set(ze),gh=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"])]]),hh=new Map([["TODAY",new Set(ze)],["NOW",new Set(ze)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Ah=["=","!=","in","not in"],Sh=new Map([["RECORD_NUMBER",new Set([...ze,"in","not in"])],["__ID__",new Set([...ze,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(ze)],["UPDATED_TIME",new Set(ze)],["DATE",new Set(ze)],["TIME",new Set(ze)],["DATETIME",new Set(ze)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...ze,"in","not in"])],["CALC",new Set([...ze,"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(Ah)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Th=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"]),Xd=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function ea(e){return Sh.get(e)??new Set}function Qd(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)&&ea(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function Te(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:qr(e,t)}function qr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return Ih(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?_l():Nh(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return _l();case"GROUP":return qr(e.expr,t);case"NOT":{let n=qr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:ef(n.reasons)?Xr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=qr(e.left,t),r=qr(e.right,t);return Ph(e.op,n,r)}}}function Ih(e,t,n,r){if(n.type==="KINTONE_FUNC"&&re(n.name))return wh(e,t,n,r);if(n.type==="KINTONE_FUNC"&&qd(n))return Jd(e,t,n,r);if(n.type==="IN_LIST"){let p=n.values.filter(c=>c.type==="KINTONE_FUNC");if(p.length>0)return n.values.length===1&&p.length===1?Jd(e,t,p[0],r):Zo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Jr(e))}if(t.type!=="FIELD")return _l();let i=r(t);if(!i)return lr("WHERE_FIELD_UNRESOLVED",t.field,void 0,Jr(e));let o=Jr(e);if(!Zd(i.fieldType,o))return lr("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Ch(i.fieldType,e))return lr("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=ea(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||qd(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",u=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!u?{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 qd(e){return e.type==="KINTONE_FUNC"&&Tn.has(e.name)}function Jd(e,t,n,r){let i=Jr(e),o=n.name;if(!Tn.has(o)||t.type!=="FIELD")return Zo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=gh.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Zo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):hh.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Zo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function wh(e,t,n,r){let i=Jr(e),o=n.name;if(t.type!=="FIELD")return zr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?bh(n)?yh.has(i)?!mh.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?zr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,a.fieldType,i):{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:zr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):zr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):zr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function bh(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 Nh(e,t,n){let r=n(e);return r?Zd(r.fieldType,t)?!Dl.has(r.fieldType)&&!Xd.has(r.fieldType)?lr("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:lr("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):lr("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Zd(e,t){let n=Th.get(e);return n===void 0||n.has(t)}function Ch(e,t){return Dl.has(e)?!0:Xd.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Jr(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 Ph(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Xr({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")?Xr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Xr({capability:"LOCAL_ONLY",reasons:r})}function _l(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function lr(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Zo(e,t,n,r,i){return Xr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function zr(e,t,n,r,i){return tf({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function ef(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&re(t.functionName))}function Oh(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Tn.has(t.functionName))}function tf(e){if(e.capability==="EXACT_PUSHDOWN"||!ef(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&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 Lh(e){if(e.capability==="EXACT_PUSHDOWN"||!Oh(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&&Tn.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 Xr(e){return Lh(tf(e))}function Qr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function ta(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function na(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Qr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function ra(e){let t=e.raw??String(e.value),n=we(t);if(n===null)return!1;if(n.sign===0)return q(e)==="0";let r=Math.max(n.scale,0),i=Math.max(n.coefficient.length-n.scale,0);if(r>10||i+r>30)return!1;let o=cl(n);return q(e)===o}var _h=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Dh=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),vh=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Uh=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function ia(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"?vh.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?kh(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Mh(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"&&ra(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&ra(e.right)?"exact":"unsafe":Dh.has(r)?vl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?vl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Uh.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Qr(e.right.value)?"exact":"unsafe":r==="TIME"?ta(e.right.value)?"exact":"unsafe":na(e.right.value)?"exact":"unsafe":_h.has(r)?!vl(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 nf(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 vl(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 Mh(e){let t=n=>n.type==="NUMBER"&&ra(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 kh(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function Ul(e,t={}){return la(e,t).condition}function la(e,t={}){return oa(e,n=>xh(n,t))}function Zr(e,t={}){return aa(e,n=>nf(n,r=>sa(r,t)))}function oa(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=oa(e.left,t),r=oa(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 oa(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function aa(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=aa(e.left,t),r=aa(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return aa(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function xh(e,t){if(Fh(e,t)||Gh(e,t))return"exact";if(e.left.type!=="FIELD"||!sa(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||Te(e,i=>{if(!sa(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ne({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":ia(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function Fh(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!sa(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function Gh(e,t){return!Kh(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function Kh(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 sa(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function ei(e,t={}){let n=e!==null&&t.extractCondition!==!1?la(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;ur(r,o);let a=new Set;return ur(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function Cn(e,t={}){let n=e.joins.every(c=>c.type==="INNER"||c.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=ei(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,u=new Map;if(e.where!==null)for(let c of e.joins){if(c.type!=="INNER"&&c.type!=="CROSS"||!c.table.alias||c.table.subtableCode||c.table.cteName!==null)continue;let d=la(e.where,{...r,tableAlias:c.table.alias,fieldTypes:t.fieldTypesByApp?.get(c.table.appId),fieldOptions:t.fieldOptionsByApp?.get(c.table.appId)});d.condition!==null&&d.relation!==null&&(l.set(c.table.alias,d.condition),u.set(c.table.alias,d.relation))}let p=new Set(a.appliedKlikes);for(let c of l.values())ur(c,p);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:u,appliedKlikes:p,allKlikes:a.allKlikes}}function Ml(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function ur(e,t){if(e!==null){if(nn(e)){t.add(e);return}switch(e.type){case"LOGICAL":ur(e.left,t),ur(e.right,t);return;case"NOT":case"GROUP":ur(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function ua(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=Se(t.where);if(l.length===0||!Wh(l,a)||o===null||!rf(o,l))return null;let u={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:$h(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},p={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:u};return Bh(p,e,l),p}function Bh(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(!rf(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Se(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"&&st(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function $h(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&st(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&st(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 Wh(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function rf(e,t){let n=new Map;for(let r of t){if(!st(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 he=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function of(e){af(e)}function xl(e){if(Ml(e).length>0)throw new he("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 af(e){switch(e.type){case"SELECT":cr(e);return;case"UNION":Gl(e);return;case"WITH":sf(e);return;case"EXPLAIN":af(e.query);return;case"CREATE_TEMP_TABLE":Fl(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":Pn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Ut(e.where)&&Pe(e.where)){kl(e.where),Pn(e);return}if(ln(e)&&e.subtableCode)throw new he("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&Pe(e.where)&&!Yh(e,e.where)){kl(e.where),Pn(e);return}if(ln(e))throw new he("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(ln(e)&&e.subtableCode)throw new he("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&Pe(e.where)){kl(e.where),Pn(e);return}if(ln(e))throw new he("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(ln(e))throw new he("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(ln(e))throw new he("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(ln(e))throw new he("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(ln(e))throw new he("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 kl(e){pa(e,t=>{if(!nn(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new he("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 he("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 Fl(e){e.type==="SELECT"?cr(e):e.type==="UNION"?Gl(e):sf(e)}function Gl(e){Fl(e.left),cr(e.right)}function sf(e){if(an(e)){cr(sn(e));return}for(let t of e.ctes)t.query.type==="SELECT"?cr(t.query):t.query.type==="UNION"&&Gl(t.query);Fl(e.query)}function cr(e){if(Hh(e),Pe(e.where)&&!(je(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Cn(e,{allowUnresolvedVariables:!0});if(Ml(n).length===0){Pn(e);return}if(Vh(e)){Pn(e);return}throw new he("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")}Pn(e)}function Vh(e){return e.where!==null&&Se(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 Hh(e){pa(e,t=>{if(!nn(t))return;if(!ca(e.where,t))throw new he("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 he("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 he("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 Pn(e){da(e,t=>{t.type==="SELECT"&&cr(t)},!0)}function ln(e){let t=!1;return da(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function Yh(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 ca(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return ca(e.left,t)||ca(e.right,t);case"NOT":case"GROUP":return ca(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function pa(e,t){if(Array.isArray(e)){for(let r of e)pa(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&&jh(r)||pa(r,t)}function da(e,t,n=!1){if(Array.isArray(e)){for(let i of e)da(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))da(i,t)}function jh(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var ti=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 lf(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(zh(t))throw new ti;return;default:return}}function zh(e){let t=!1;return fa(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||qh(n.where)&&(t=!0)}),t}function qh(e){let t=!1;return fa(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function fa(e,t){if(Array.isArray(e)){for(let r of e)fa(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))fa(r,t)}function un(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 Ea(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 un(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return un(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 un(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return un(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return un(e,t,3,3);case"REGEXP_REPLACE":return un(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return un(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return un(e,t,0,0)}}var $l=1e4,xt=$l,te=e=>new Error(`ArgumentError: ${e}`),Jh=e=>e.type==="VARIABLE",cn=e=>e?.type==="STRING"&&e.fromVariable===!0;function Xh(e){return e.type==="NUMBER"?Number(q(e)):e.value}function pr(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 Kl(e){let t=pr(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 Qh(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw te("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 uf(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)?te("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)?te("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):te("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 te("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 te(`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 ni(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 ri(e){let t=we(e.raw??String(e.value));if(t===null||t.scale>0)return null;if(t.sign===0)return 0;if(t.coefficient.length-t.scale>16)return null;let r=`${t.coefficient}${"0".repeat(-t.scale)}`;if(r.length===16&&r>"9007199254740991")return null;let i=Number(r)*t.sign;return Number.isSafeInteger(i)?i:null}function cf(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Ra(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 Bl(e){return e.year*12+e.month-1}function pf(e,t){if(t==="MONTH"&&e.day!==1)throw te("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 te("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 Zh(e,t,n){let r=Kl(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=Kl(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return Ra(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=Bl(t)+(n.coefficient<0&&t.day!==1?1:0);return Ra(Bl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return Ra(e.year,a,n.coefficient)}function df(e,t,n){if(e<1||e>9999)throw te("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 eA(e){let t=Math.floor(e/12),n=e-t*12+1;return df(t,n,1)}function ff(e){if(e.args.length<2||e.args.length>3)throw te("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=>Xh(g));["start","stop","step"].forEach((g,A)=>{if(t[A]==="")throw te(`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"?pr(n):null,u=typeof r=="string"?pr(r):null,p=typeof n=="string"&&/^\d{4}-/.test(n),c=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(cf))throw te("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||u||p||c||typeof n=="string"&&typeof r=="string"&&!(cn(o)&&cn(a)&&ni(n)!==null&&ni(r)!==null)){if(!l||!u)throw te(l&&typeof r!="string"||u&&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 te("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"}:uf(i);return pf(l,g.unit),{kind:"DATE",start:n,stop:r,step:g.coefficient,dateUnit:g.unit,rowCount:Zh(l,u,g)}}let d=o.type==="NUMBER"?ri(o):cn(o)?ni(n):null,f=a.type==="NUMBER"?ri(a):cn(a)?ni(r):null;if(d===null||f===null)throw(o.type==="NUMBER"||cn(o))&&(a.type==="NUMBER"||cn(a))?te("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):te("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=i===void 0?1:s?.type==="NUMBER"?ri(s):cn(s)?ni(i):null;if(E===null)throw s?.type==="NUMBER"||cn(s)?te("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):te("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let R=d,m=f,y=E;if(y===0)throw te("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:R,stop:m,step:y,rowCount:Ra(R,m,y)}}function tA(e){if(e.args.length<2||e.args.length>3)throw te("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(Jh)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw te(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&ri(o)===null)throw te("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(cf(o.value))throw te("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)&&pr(o.value)===null)throw te("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=ri(n);if(r===null)throw te("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 te("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=uf(n.value),i=e.args[0];if(i?.type==="STRING"){let o=pr(i.value);o&&pf(o,r.unit)}}return null}let t=ff(e);if(t.rowCount>xt)throw te(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${xt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function Ef(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=tA(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>xt)throw te(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${xt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function ma(e){let t=ff(e);if(t.rowCount>xt)throw te(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${xt} \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 te("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=pr(t.start);if(t.dateUnit==="MONTH"){let i=Bl(r);for(let o=0;o<t.rowCount;o++)n.push(eA(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(df(r.year+i*t.step,1,1));else{let i=Kl(t.start);for(let o=0;o<t.rowCount;o++)n.push(Qh(i+o*t.step))}}return{...t,values:n}}function ut(e){nA(e),lf(e),of(e),Ef(e)}function nA(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;Ea(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var ga=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],Hl="\0as-of:";function ii(e){return`${Hl}${e}`}function dr(e){if(!e.startsWith(Hl))return null;let t=e.slice(Hl.length);return oi(t)?t:null}function oi(e){return ga.includes(e)}function Yl(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=Wl(r,"year"),o=Wl(r,"month"),a=Wl(r,"day"),s=`${Vl(i)}-${ya(o)}-${ya(a)}`,l=`${Vl(i)}-${ya(o)}-01`,u=o===12?i+1:i,p=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${Vl(u)}-${ya(p)}-01`}}}function Wl(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 ya(e){return String(e).padStart(2,"0")}function Vl(e){return String(e).padStart(4,"0")}var ha=16,Rf=64,oe=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ai(e,t,n){if(Array.isArray(e)){for(let r of e)ai(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))ai(a,t,n)}}var rA=new Set(["=","!=","<>",">","<",">=","<="]);function jl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)jl(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(dr(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",u=n&&i==="BINARY"&&a==="right"&&l&&rA.has(String(r.op));jl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?u:o?n:!1)}}}function iA(e){let t=e.type==="EXPLAIN"?e.query:e;return en(t.type)||t.type==="VALIDATE"}function zl(e){if(Array.isArray(e)){for(let t of e)zl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Pl(e);for(let n of Object.values(t))zl(n)}}function ql(e){if(e.length===0)throw new oe("ArgumentError: SQL is empty.",0);if(e.forEach((c,d)=>{try{zl(c)}catch(f){throw f instanceof Error?new oe(f.message,d):f}try{nr("phase15b",c),ut(c)}catch(f){throw f instanceof he||f instanceof ti?new oe(f.message,d):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new oe(f.message,d):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let d=c==="SET_VARIABLE"?"SET":"DECLARE";throw new oe(`ArgumentError: ${d} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let d=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new oe(`ArgumentError: ${d} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,d)=>{let f=c.type==="VALIDATE"&&c.errorTable?c.errorTable:"validationErrorTable"in c&&c.validationErrorTable?c.validationErrorTable:"onErrorSkip"in c&&c.onErrorSkip?c.errorTable??null:null;if(e.length===1&&f){let D=c.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in c&&c.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new oe(D,d)}let E=ko(c),R=[],m=[],y=new Set,g=new Set,A=new Set,h=[];jl(c,h);let I=new Set;for(let D of h){let C=o.get(D.name);if(C===void 0)throw new oe(`ParseError: variable @${D.name} is not defined before statement ${d+1}.`,d);if(C.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.`,d);if(C.kind==="array"&&D.kind!=="array-in-list")throw new oe(`ParseError: array variable @${D.name} can only be used as IN @${D.name}.`,d);if(C.relativeDate&&iA(c))throw new oe(`ArgumentError: RELATIVE_DATE variable @${D.name} cannot be used in DML or VALIDATE statements.`,d);if(C.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.`,d);I.has(D.name)||(C.referencedBy.push(d),I.add(D.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new oe(`ParseError: variable @${c.name} is already defined.`,d);if(o.set(c.name,{index:d,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",relativeDate:c.type==="DECLARE_VARIABLE"&&c.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(c.name),a.length>Rf)throw new oe(`ParseError: batch exceeds ${Rf} variables.`,d)}c.type==="CREATE_TEMP_TABLE"?ai(c.query,y,g):c.type==="DROP_TEMP_TABLE"||ai(c,y,g);let b=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let D=new Set,C=new Set;ai(c.select,D,C),b=D.size>0&&C.size===0}for(let D of y){let C=t.get(D);if(C===void 0)throw new oe(`ParseError: temp table ${D} is not defined in this batch.`,d);A.add(C)}if(f){let D=c.type==="VALIDATE"?c.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"]:c.type==="IMPORT"&&c.targets?.some(v=>v.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(v=>v.kind==="FIELD"?[v.field]:v.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(v=>v.field)]:"fields"in c?c.fields:[],C=JSON.stringify(D),M=t.get(f);if(M===void 0){if(t.set(f,d),n.set(f,C),r.push(f),R.push(f),t.size>ha)throw new oe(`ParseError: batch exceeds ${ha} temp tables.`,d)}else{if(n.get(f)!==C)throw new oe(`ParseError: validation error table ${f} has a different payload schema.`,d);A.add(M)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new oe(`ParseError: temp table ${c.name} is already defined.`,d);if(t.set(c.name,d),r.push(c.name),R.push(c.name),t.size>ha)throw new oe(`ParseError: batch exceeds ${ha} temp tables.`,d)}if(c.type==="DROP_TEMP_TABLE"){let D=t.get(c.name);if(D===void 0)throw new oe(`ParseError: temp table ${c.name} is not defined in this batch.`,d);A.add(D),m.push(c.name),t.delete(c.name)}i.push({index:d,statementType:E,isDml:pl(c),isReadOnly:Qn(c),hasWhere:pd(c),insertValuesCount:dd(c),appIds:[...g].sort((D,C)=>D-C),tempTablesCreated:R,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...A].sort((D,C)=>D-C),tempOnlySource:b,targetAppId:en(E)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:ud(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),u=i.some(c=>c.requiresCompleteInput),p=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:u,tempTables:r,variables:p,warnings:p.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var Aa=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["CROSS","CROSS"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["PRIMARY_ORGANIZATION","PRIMARY_ORGANIZATION"],["CASE","CASE"],["WHEN","WHEN"],["THEN","THEN"],["ELSE","ELSE"],["END","END"],["UPPER","UPPER"],["LOWER","LOWER"],["TRIM","TRIM"],["LTRIM","LTRIM"],["RTRIM","RTRIM"],["LENGTH","LENGTH"],["LENGTH_CHAR","LENGTH_CHAR"],["SUBSTRING","SUBSTRING"],["SUBSTR","SUBSTR"],["CONCAT","CONCAT"],["REPLACE","REPLACE"],["REGEXP_LIKE","REGEXP_LIKE"],["REGEXP_REPLACE","REGEXP_REPLACE"],["REGEXP_SUBSTR","REGEXP_SUBSTR"],["COALESCE","COALESCE"],["NULLIF","NULLIF"],["ISNULL","ISNULL"],["INSTR","INSTR"],["GREATEST","GREATEST"],["LEAST","LEAST"],["LPAD","LPAD"],["RPAD","RPAD"],["TRANSLATE","TRANSLATE"],["CAST","CAST"],["CONVERT","CONVERT"],["FORMAT","FORMAT"],["ROUND","ROUND"],["FLOOR","FLOOR"],["CEIL","CEIL"],["CEILING","CEILING"],["TRUNCATE","TRUNCATE"],["TRUNC","TRUNC"],["ABS","ABS"],["MOD","MOD"],["POWER","POWER"],["POW","POW"],["SQRT","SQRT"],["YEAR","YEAR"],["MONTH","MONTH"],["DAY","DAY"],["DAYOFWEEK","DAYOFWEEK"],["QUARTER","QUARTER"],["WEEK","WEEK"],["DATE_FORMAT","DATE_FORMAT"],["DATEDIFF","DATEDIFF"],["DATE_ADD","DATE_ADD"],["LAST_DAY","LAST_DAY"],["IF","IF"]]);var ke=class extends Error{constructor(n,r,i,o=!1){let a=i.slice(Math.max(0,r-10),r+10);super(`${n}\uFF08\u4F4D\u7F6E ${r}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=r;this.input=i;this.unterminated=o;this.name="LexError"}},pn=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(fr(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(Jl(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new ke(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${n}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")n+="'",this.pos++;else return this.makeToken("STRING",n,t);else n+=r,this.pos++}throw new ke("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="`")return this.pos++,this.makeToken("BIDENT",n,t);n+=r,this.pos++}throw new ke("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&fr(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&fr(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&fr(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||!fr(this.input[this.pos]))throw new ke("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&fr(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&&mf(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Aa.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(!Jl(n))throw new ke("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&mf(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ke(`@profile is not allowed on temp table ${r}.`,this.pos,this.input);return this.makeToken("IDENT",r,t)}readVariable(t){this.pos++;let n=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(n))throw new ke("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new ke("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
1
+ "use strict";var ll=Object.defineProperty;var rg=Object.getOwnPropertyDescriptor;var ig=Object.getOwnPropertyNames;var og=Object.prototype.hasOwnProperty;var ag=(e,t)=>{for(var n in t)ll(e,n,{get:t[n],enumerable:!0})},sg=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ig(t))!og.call(e,i)&&i!==n&&ll(e,i,{get:()=>t[i],enumerable:!(r=rg(t,i))||r.enumerable});return e};var lg=e=>sg(ll({},"__esModule",{value:!0}),e);var DN={};ag(DN,{KsqlEngineError:()=>ve,createReadonlyKintoneClient:()=>_y,explainQuery:()=>Zy,runBatch:()=>Jy,runQuery:()=>Qy,version:()=>_N});module.exports=lg(DN);async function Ke(e,t,n,r,i={}){let o=i.pageSize??ug,a=Math.max(1,i.parallel??cg),s=i.maxRecords??pg,l=i.onLimit??"error",u=i.stopAfter;if(u!==void 0&&(!Number.isSafeInteger(u)||u<=0||u>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let p=u??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,d=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,R=0,m=0,y=ed(n,R),g=await Zp(e,t,y,c,o,m);if(Qp(g,i),d.push(...g.records),u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Ve(E)}if(g.records.length<o)return d;for(m+=o,m>=ul&&(R=td(g.records),m=0);;){if(u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Ve(E)}let A=p-d.length,h=Math.ceil(A/o),I=Math.max(1,Math.min(a,h)),b=[];for(let v=0;v<I;v++){let x=m+v*o;if(x>=ul)break;b.push(x)}let D=ed(n,R),C=await Promise.all(b.map(v=>Zp(e,t,D,c,o,v)));for(let v of C)Qp(v,i);let M=!1;for(let v of C){if(d.push(...v.records),u!==void 0&&d.length>=u)return d.slice(0,u);if(d.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),d.slice(0,s);throw new Ve(E)}if(v.records.length<o){M=!0;break}}if(M)break;if(m+=o*b.length,m>=ul){let v=C[C.length-1];R=td(v.records),m=0}}return d}function Qp(e,t){e.searchAborted&&t.onSearchAborted?.()}function nd(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 ug=500,cg=1,pg=1e4,ul=1e4;async function Zp(e,t,n,r,i,o){let a=dg(n,i,o);return e({app:t,query:a,fields:r})}function ed(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 dg(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function td(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 Ve=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};var fg=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Eg(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function we(e){let t=fg.exec(e.trim());if(t===null)return null;let n=Eg(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 cl(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 rd(e){let t=we(e);return t===null?null:cl(t)}function Rg(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 Lo(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Rg(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function _o(e,t){let n=we(e),r=we(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Lo(n,r)}var Ce="__NO_FROM__";function Do(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function qn(e){return e.windowKind==="AGGREGATE"}function vo(e){return e.windowKind==="VALUE"}function be(e){return{type:"NUMBER",value:Number(e),raw:e}}function q(e){let t=e.raw??String(e.value);return rd(t)??t}function id(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 mg(e){return`${e.tableAlias??""}\0${e.field}`}function ee(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=mg(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 od(e){return ee(e).type!=="NONE"}function ad(e,t){let n=ee(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),u=r.get(l.canonicalId);if(u)return u;let p={...l,field:s};return r.set(p.canonicalId,p),p},o=n.allItems.map(i).filter((s,l,u)=>u.findIndex(p=>p.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}function ko(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function en(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function yg(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 pl(e){return en(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Qn(e){return!pl(e)&&(yg(e.type)||en(e.type))}function sd(e){return Qn(e)?e.type==="SELECT"||e.type==="WITH"||e.type==="UNION"||e.type==="SHOW_APPS"||e.type==="DESCRIBE"||e.type==="VALIDATE":!1}var ld=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Me(e,t){for(let n of t)e.add(n)}function Uo(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"&&ld.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=>Uo(i,t)):Uo(r,t))}function Mo(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"&&!ld.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=>Mo(i,t)):Mo(r,t))}function Zt(e){let t=new Set;if(en(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Me(t,Xn(e));break;case"UNION":Me(t,cd(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Me(t,Zt(n.query));Me(t,Zt(e.query));break;case"CREATE_TEMP_TABLE":Me(t,Zt(e.query));break;default:break}return Uo(e)&&t.add("STATISTICAL_AGGREGATE"),Mo(e)&&t.add("AGGREGATE"),t}function ud(e){return Zt(e).size>0}function cd(e){let t=e.left.type==="SELECT"?Xn(e.left):cd(e.left);return Me(t,Xn(e.right)),e.all||t.add("DISTINCT"),t}function Xn(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=ee(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of[...e.columns,...e.hiddenWindows??[]])if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Me(t,Xn(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Me(t,Jn(i.condition));return Me(t,Jn(e.where)),Me(t,Jn(e.having)),Uo(e)&&t.add("STATISTICAL_AGGREGATE"),Mo(e)&&t.add("AGGREGATE"),t}function Jn(e){let t=new Set;if(e===null)return t;switch(e.type){case"BINARY":(e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY")&&Me(t,Xn(e.right.query));break;case"LOGICAL":Me(t,Jn(e.left)),Me(t,Jn(e.right));break;case"NOT":case"GROUP":Me(t,Jn(e.expr));break;case"EXISTS":Me(t,Xn(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function pd(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function dd(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 xo=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),Tn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Gr=new Set([...Tn,...xo]),In="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",vt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function re(e){return xo.has(e)}function Zn(e){return Tn.has(e)}function st(e){return Gr.has(e)}var gg=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})}),El=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})}),Kr="v1";function J(e){throw new Error(`UnsupportedError: APPLY ${Kr} scope does not support ${e}`)}function hg(e,t){let n=Kr;Kr=e;try{return t()}finally{Kr=n}}function Ag(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 nr(e,t){return hg(e,()=>Sg(t,gg[e]))}function Sg(e,t){let n=Ag(e);if(n===null)return;if(n.type==="UPSERT"){Ig(n,t);return}let r=n.applyBlocks;if(dl(r),!t.multipleBlocks&&r.length!==1&&J("multiple APPLY blocks in this phase"),n.type==="INSERT"){wg(n,r,t);return}let i=n;i.subtableCode&&J("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&J("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&J("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&J("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&J("REJECT LIMIT in this phase"),bg(i.where,t.multipleParents),Ed(r,t)}function Ed(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||J(`${r.kind} in this phase`);Rd(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Fo(i,"APPEND targets");tr(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&fd(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.assignments.length===0&&J("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&J("parent or qualified PATCH targets in this phase")}tr(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&fd(r.selector.where,t.idxSelectors)}}}}function Rd(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 Tg=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function md(e,t){if(Rd(e),e.targetKind==="MULTI_VALUE"){if(!Tg.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 dl(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Kr} scope allows only one block for table ${n.field}`);t.add(n.field)}}function Ig(e,t){t.upsert||J("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&J("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&J("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&J("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];dl(n),dl(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&J("multiple APPLY blocks in this phase"),yd(n,"UPSERT ON INSERT"),Ed(r,{...t,idxSelectors:!1,expectRows:!1})}function yd(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&J(`${r.kind} for ${t} in this phase`);for(let i of r.fields)Fo(i,"APPEND targets");tr(r.values,"APPEND values")}}function wg(e,t,n){n.insert||J("INSERT in this phase"),e.subtableCode&&J("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&J("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&J("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&J("REJECT LIMIT in this phase"),yd(t,"INSERT")}function Ut(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 Go(e,t){let n=El[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Rl(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${er(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 ${er(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 ${er(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Ut(t.where))throw new Error(`UnsupportedError: APPLY ${er(e)} execution does not support multiple-parent APPLY`)}function Rl(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 gd(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Ut(t.where))&&!El[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${er(e)} public multiple-parent write is not connected`)}function rr(e){if(!El[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${er(e)} internal prepared write is not available`)}function er(e){return`Phase ${e.slice(5)}`}function bg(e,t){Ut(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&J("a parent $id that is not a positive safe integer in this phase"),t||J("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),fl(e,t))}function fl(e,t){if(Array.isArray(e)){for(let o of e)fl(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&J("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&J("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&J("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&J("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&re(n.name))&&J("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))fl(o,t)}function fd(e,t){tr(e,"child row selectors",t)}function tr(e,t,n=!1){if(Array.isArray(e)){for(let s of e)tr(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&J(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&J(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&J(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&re(r.name))&&J(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&J(`qualified or parent field references in ${t}`),Fo(l,t,n)}if(i==="FIELD_REF"&&Fo(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))tr(s,t,n)}function Fo(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&J(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&J(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&J(`aggregate expressions in ${t}`)}function Br(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Ng(e.op);if(t===null)throw new fe(`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:Br(e.left),right:Br(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Br(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Ng(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 hd(e){return e.includes("%")||e.includes("_")}function $r(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function nn(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function tn(e){if(e===null)return!1;if($r(e))return!0;switch(e.type){case"LOGICAL":return tn(e.left)||tn(e.right);case"NOT":case"GROUP":return tn(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Pe(e){if(e===null)return!1;if(nn(e))return!0;switch(e.type){case"LOGICAL":return Pe(e.left)||Pe(e.right);case"NOT":case"GROUP":return Pe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function z(e){switch(e.type){case"BINARY":return Cg(e);case"NULL_CHECK":return Og(e);case"LOGICAL":return Lg(e);case"NOT":return _g(e);case"GROUP":return Dg(e);case"EXISTS":throw new fe("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new fe("internal error: BOOLEAN predicate reached kintone query conversion")}}function Cg(e){if($r(e))throw new fe("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=Sd(e.left),n=Pg(e.op),r=vg(e.right,e.op);return`${t} ${n} ${r}`}function Pg(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 Og(e){let t=Sd(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Lg(e){let t=z(e.left),n=z(e.right),r=e.op==="AND"?"and":"or",i=Ad(e.left)?`(${t})`:t,o=Ad(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function _g(e){return z(Br(e.expr))}function Dg(e){return`(${z(e.expr)})`}function Sd(e){if(e.type==="FUNC_FIELD")throw new fe(`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 fe("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 fe("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 fe("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 fe("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return Bg(e.field)}function vg(e,t){switch(e.type){case"VARIABLE":throw new fe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new fe(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Td(e);case"NUMBER":return q(e);case"KINTONE_FUNC":return Id(e);case"IN_LIST":return Gg(e,t);case"ARITH_VALUE":throw new fe("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 fe("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 fe("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new fe("\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 fe("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Td(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Id(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Ug(e)}function Ug(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Wr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!xg(e.args.offset,e.args.offsetText)||!Mg.has(e.args.unit)?Wr():`${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&&!kg.has(e.args.weekday)?Wr():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"||!Fg(e.args.day)?Wr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Wr()}var Mg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),kg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function xg(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function Fg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Wr(){throw new fe("internal error: invalid relative date function AST reached kintone query conversion")}function Gg(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new fe("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Kg(e.values),`(${e.values.map(r=>r.type==="STRING"?Td(r):r.type==="NUMBER"?q(r):Id(r)).join(",")})`}function Kg(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new fe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function Bg(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Ad(e){return e.type==="LOGICAL"}var fe=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};function Ko(e){return`'${e.replace(/'/g,"''")}'`}function ir(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return q(e);if(e.type==="STRING_FUNC")return yl(e);let n=`${ir(e.left)}${e.op}${ir(e.right)}`;return t?n:`(${n})`}function wd(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return yl(e.expr);if(e.type==="AGG_FIELD")return ht(e.expr);if(e.type==="ARITH_FIELD")return ir(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return ml(e.expr)}function Nd(e){switch(e.type){case"STRING":return Ko(e.value);case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>Ko(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Nd).join(",")})`;case"ARITH_VALUE":return ir(e.expr);case"CASE_VALUE":return ml(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Vr(e){switch(e.type){case"BINARY":return`${wd(e.left)} ${e.op.replace("_"," ")} ${Nd(e.right)}`;case"NULL_CHECK":return`${wd(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Vr(e.left)} ${e.op} ${Vr(e.right)})`;case"NOT":return`NOT (${Vr(e.expr)})`;case"GROUP":return`(${Vr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function bd(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Ko(t.value)).join(",")}]`:e.type==="AGG_REF"?ie(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?ht(e):e.type==="FIELD_REF"||e.type==="ARITH"?ir(e):wn(e)}function ml(e){let t=e.branches.map(r=>`WHEN ${Vr(r.condition)} THEN ${bd(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${bd(e.elseResult)}`;return`CASE ${t}${n} END`}function $g(e){return e.type==="AGG_REF"?ie(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?ht(e):wn(e)}function yl(e){return`${e.func}(${e.args.map($g).join(",")})`}function wn(e){switch(e.type){case"STRING":return Ko(e.value);case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return yl(e);case"CASE_WHEN":return ml(e);case"SCALAR_ARITH":return`(${wn(e.left)}${e.op}${wn(e.right)})`;case"CONCAT_OP":return`(${wn(e.left)}||${wn(e.right)})`}}function Wg(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?ir(e,!0):wn(e)}function ie(e,t,n){let r=Wg(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function ht(e){return e.type==="NUMBER"?q(e):e.type==="AGG_REF"?ie(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${ht(e.left)}${e.op}${ht(e.right)}`}var Cd=Symbol("ksql.groupingRowMeta"),Pd=new WeakMap;function gl(e,t){return Object.defineProperty(e,Cd,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function hl(e){return e[Cd]}function Vg(e){return hl(e)?.includedCanonicalIds}function Od(e,t){Pd.set(e,t)}function bn(e,t){let n=Vg(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Pd.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Bo=["$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 $o(e){return e.startsWith("_")||e.startsWith("$")}var Hg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Sl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Sl);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"?Hg.test(t.field):Object.values(t).some(Sl)}function Yg(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 ge(e)||Sl(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var jg=["_pid","_rid","_idx"];function Al(e){return[...new Set(e)]}function zg(e){switch(e.kind){case"APP":return Al([...e.fieldCodes,...Bo]);case"SUBTABLE":return Al([...e.childFieldCodes,...jg,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Al(e.columns)}}function Ld(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:zg(t(r,i))}))}function _d(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 Dd(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function vd(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?_d(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:Dd(a,r.fieldCode)}}function qg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Jg(e,t,n){let r=_d(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:Dd(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,u)=>qg(l)===e?[{column:l,columnIndex:u}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],u=Yg(l.column);return u==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:u==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&ie(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Ud(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Jg(r.name,t,n):{kind:"EXPRESSION"})}}function Oe(e,t){let n=[...t];if(n.includes(e))return e;let r=e.toLowerCase();return n.find(i=>i===r)}var Xg="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 Hr(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 wl(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return Hr(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?Hr(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function bl(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function kd(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function xd(e){return e.type==="WINDOW_COL"}function Qg(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function rn(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 u=e.map(p=>rn(p,t));return u.some(p=>p===null)?null:`[${u.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||bl(n))return null;if(r==="GROUP"&&n.expr!==void 0)return rn(n.expr,t);let i=typeof r=="string"?Il.get(r):void 0;if(i!==void 0)return rn(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:${Qg(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=wl(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 u of Object.keys(n)){if(u==="type"||a.has(u))continue;let p=rn(n[u],t);if(p===null)return null;s.push(`${u}=${p}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function Zg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function eh(e){let t=new Map;for(let n of e){let r=Zg(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function Nl(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var th=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Wo(e){if(e&&typeof e=="object"){let t=e,n=wl(t);if(n!==null)return Nl(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=Wo(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Md(e,t,n,r){let i=n==="WILDCARD"?"wildcard":Nl(n),o=Wo(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=${Xg})`)}function on(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)on(a,t);return}let n=e;if(n.hiddenWindowRef===!0||bl(n)||kd(n)||xd(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 Md(t.clause,t.expression,"WILDCARD",t.policy);let r=wl(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&th.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=Oe(r.field,t.aliases.keys()),u=l===void 0?[]:t.aliases.get(l)??[];if(u.length===1&&l!==void 0&&!t.resolvingAliases.has(l)){let p=new Set(t.resolvingAliases);p.add(l),on(u[0],{...t,resolvingAliases:p});return}}let a=rn(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 Md(t.clause,t.expression,r,t.policy);return}let i=rn(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){on(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||on(n[a],t)}function Yr(e,t){let n=eh(e.columns);for(let r of[...e.columns,...e.hiddenWindows??[]]){if(r.type==="WINDOW_COL"){let i=[...r.partitionBy,...r.orderBy.map(o=>o.key.type==="FIELD_NAME"?o.key.aggregateRef??Hr(o.key.name):o.key),...r.windowKind==="AGGREGATE"||r.windowKind==="VALUE"?[r.arg]:[]];for(let o of i)on(o,{clause:"ORDER BY",expression:o,policy:t,aliases:n,resolvingAliases:new Set});continue}on(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set})}e.having!==null&&on(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"?Hr(r.key.name):r.key;on(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function Tl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Tl);let t=e;return bl(t)||xd(t)?!1:kd(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Tl)}function Mt(e){return ee(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Tl(t))}function nh(e){return e.type==="FIELD_NAME"?Hr(e.name):e.expr}function Fd(e,t,n){let r=ee(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let E=vd(f,n);if(E.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${E.name} is ambiguous across multiple sources.`);return E.kind==="UNKNOWN"?`unknown:${E.name}`:`source:${E.sourceIndex}:${E.fieldCode}`},a=new Set;t.items.forEach((f,E)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let R=rn(e.columns[f.columnIndex],o);R!==null&&a.add(R);return}if(f.kind==="EXPRESSION"){let R=rn(nh(i[E]),o);R!==null&&a.add(R)}});let s=[e.from,...e.joins.map(f=>f.table)],l=f=>`APP${f.appId}${f.subtableCode!=null?`$${f.subtableCode}`:""}`,u=s.map(f=>f.cteName??l(f)).join(" / "),p=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:Wo(f)).join(", ")}`,c=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,d=i.every((f,E)=>f.type==="FIELD_NAME"&&t.items[E]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:u,groupingLabel:p,migrationSourceSql:c,migrationGroupingFields:d}}function Vo(e){if(ee(e).type!=="NONE"||!Mt(e))return;let t={identities:new Set,resolveField:n=>`ast:${Nl(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};Yr(e,t)}function Gd(e){return`FIELD:${e}`}var Kd=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 Cl(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function lt(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>lt(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=>lt(r,t))}}function jo(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>jo(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){lt(n.arg,t);return}Object.values(n).forEach(r=>jo(r,t))}}function ge(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ge);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(ge)}function rh(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="ARITH_COL"||e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?ge(e):!1}function ih(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${Cl(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${Cl(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Od(e,r.canonicalId)}function Pl(e){let t=ee(e),n=[...e.columns,...e.hiddenWindows??[]],r=[];for(let o of n)lt(o,r);lt(e.having,r),lt(e.orderBy,r);let i=[];if(lt(e.where,i),lt(e.joins,i),jo(n,i),jo(e.having,i),i.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(r.length>0)throw new Error("ArgumentError: GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");Vo(e);return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: KORDER BY is not supported with extended grouping.");if(e.columns.some(o=>o.type==="WILDCARD"||o.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 Bd(e,t,n=()=>{}){Pl(e);let r=ee(e),i=[];for(let u of[...e.columns,...e.hiddenWindows??[]])lt(u,i);if(lt(e.having,i),lt(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=ad(e,t),a=new Set,s=[];for(let u of o.allItems){let p=u;if(!p.physical)throw new Error(`ArgumentError: grouping item ${Cl(u.field)} must resolve to a physical APP field.`);a.has(p.canonicalId)||(a.add(p.canonicalId),s.push(p))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let u of i)ih(u,t,a);Yr(e,{identities:new Set([...a].map(Gd)),resolveField:u=>t(u).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let u of s)l.add(u.directKey),u.unqualifiedBridgeKey!==null&&l.add(u.unqualifiedBridgeKey);for(let u of e.columns){if(!rh(u))continue;let p="alias"in u?u.alias:null;if(p!==null&&l.has(p))throw new Error(`ArgumentError: aggregate alias ${p} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function oh(e){return e.some(t=>t.type==="WINDOW_COL")}function je(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ee(e).type!=="NONE"||e.distinct||oh(e.columns)||(e.hiddenWindows?.length??0)>0||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&ge(t.expr)||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&ge(t.expr)||t.type==="STRFUNC_COL"&&Ll(t.expr)||t.type==="SCALAR_VALUE_COL"&&ar(t.expr))||kt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function kt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return $d(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||$r(e);case"NULL_CHECK":return $d(e.field);case"LOGICAL":return kt(e.left)||kt(e.right);case"NOT":case"GROUP":return kt(e.expr);case"EXISTS":return!0}}function $d(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function qo(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(z(e.where)),e.orderBy.length>0){let i=e.orderBy.map(ah).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:sh(e.columns),totalCount:!1}}function Hd(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!kt(e.where)&&n.push(z(e.where)),{app:t,query:n.join(" "),fields:[]}}function Nn(e,t,n){let i=jd(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 ah(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 sh(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="ARITH_COL"&&ge(r.expr)||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(Jo(r.field)):r.type==="ARITH_COL"?jr(r.expr,n):r.type==="STRFUNC_COL"?Ol(r.expr,n):r.type==="SCALAR_VALUE_COL"&&or(r.expr,n);return[...new Set(n)]}function lh(e,t){jr(e.left,t),jr(e.right,t)}function jr(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(Jo(e.field)):e.type==="ARITH"?lh(e,t):e.type==="STRING_FUNC"&&Ol(e,t)}function Jo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Ol(e,t){for(let n of e.args)uh(n,t)}function uh(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){zo(e,t);return}or(e,t)}function or(e,t){if(e.type==="FIELD"){t.push(Jo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Ol(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){or(e.left,t),or(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Wd(n.result,t);e.elseResult&&Wd(e.elseResult,t)}}function Wd(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){zo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){jr(e,t);return}or(e,t)}}function zo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&ch(e.arg,t);return}e.type==="AGG_ARITH"&&(zo(e.left,t),zo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Jo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function ch(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?jr(e,t):or(e,t)}function Ll(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:ar(t))}function ar(e){return e.type==="STRING_FUNC"?Ll(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?ar(e.left)||ar(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Vd(t.result))||e.elseResult!==null&&Vd(e.elseResult):!1}function Vd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:ar(e)}function Yd(e,t){let n=new Set,r=jd(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function jd(e,t,n){let r=[e.from,...e.joins.map(S=>S.table)],i=[e.from,...e.joins.map(S=>S.table)].filter(S=>S.cteName===null),o=n?r:i,a=new Map;for(let S of o)a.set(S,{table:S,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(S=>!!S.subtableCode)??null,u=new Map;for(let S of o)S.alias&&u.set(S.alias,S),S.cteName!==null?u.set(S.cteName,S):S.subtableCode||(u.set(`APP${S.appId}`,S),u.set(`app${S.appId}`,S));let p=dh(e.columns),c=ph(e.columns),d=S=>{let w=a.get(S);w&&(w.allFields=!0,w.fields.clear())},f=()=>{for(let S of o)d(S)},E=()=>{for(let S of o)S.subtableCode&&d(S)},R=(S,w)=>{let L=a.get(S);if(!(!L||L.allFields)){if(S.subtableCode){if(w.startsWith("_p.")){let F=w.slice(3);F&&F!=="*"&&L.fields.add(F);return}return void 0}w&&L.fields.add(w)}},m=(S,w="select",L)=>{if(!S||S==="*")return;if(S==="_p.*"){E();return}if(S.endsWith(".*")){let K=S.slice(0,-2);if(!K){f();return}if(K==="_p"){E();return}let W=u.get(K);if(W){d(W);return}return}if(w==="groupBy"&&L!==void 0){if(L.kind==="PHYSICAL"){let K=r[L.sourceIndex];K&&(n||K.cteName===null)&&R(K,L.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&Oe(S,p)!==void 0||(w==="orderBy"||w==="having"||w==="groupBy")&&fh(S))return;let F=S.indexOf(".");if(F>0){let K=S.slice(0,F),W=S.slice(F+1);if(K==="_p"){l&&R(l,`_p.${W}`);return}let k=u.get(K);if(k){R(k,W);return}if(n)return}n?n.unqualified.add(S):s&&R(s,S)},y=(S,w,L="select")=>{if(w){if(w==="_p"){l&&R(l,`_p.${S}`);return}let F=u.get(w);if(F){R(F,S);return}if(n)return}m(S,L)},g=(S,w="select")=>{if(S.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${S.name} reached source-aware field collection.`);if(S.type==="FIELD_REF"){if(S.hiddenWindowRef)return;m(S.field,w);return}if(S.type==="ARITH"){g(S.left,w),g(S.right,w);return}if(S.type==="STRING_FUNC"){I(S,w);return}},A=(S,w="select")=>{if(S.type==="AGG_REF"){S.arg.type!=="WILDCARD"&&D(S.arg,w);return}S.type==="AGG_ARITH"&&(A(S.left,w),A(S.right,w)),S.type==="AGG_GROUP_KEY"&&y(S.field,S.tableAlias??null,w)},h=(S,w="select")=>{if(S.type==="AGG_REF"||S.type==="AGG_ARITH"||S.type==="AGG_GROUP_KEY"||S.type==="VARIABLE"){A(S,w);return}b(S,w)},I=(S,w="select")=>{for(let L of S.args)h(L,w)},b=(S,w="select")=>{if(S.type==="FIELD"){if(S.hiddenWindowRef)return;if(S.aggregateRef){A(S.aggregateRef,w);return}y(S.field,S.tableAlias,w);return}if(S.type==="STRING_FUNC"){I(S,w);return}if(S.type==="SCALAR_ARITH"||S.type==="CONCAT_OP"){b(S.left,w),b(S.right,w);return}S.type==="CASE_WHEN"&&M(S,w)},D=(S,w="select")=>{if(S.type==="FIELD_REF"||S.type==="ARITH"){g(S,w);return}b(S,w)},C=(S,w="select")=>{if(S.type!=="ARRAY"){if(S.type==="AGG_REF"||S.type==="AGG_ARITH"){A(S,w);return}if(S.type==="FIELD_REF"||S.type==="ARITH"){g(S,w);return}b(S,w)}},M=(S,w="select")=>{for(let L of S.branches)O(L.condition,w),C(L.result,w);S.elseResult&&C(S.elseResult,w)},v=(S,w="select")=>{if(S.type==="FIELD"){if(S.hiddenWindowRef)return;if(S.aggregateRef){A(S.aggregateRef,w);return}y(S.field,S.tableAlias,w);return}if(S.type==="FUNC_FIELD"){I(S.expr,w);return}if(S.type==="AGG_FIELD"){A(S.expr,w);return}if(S.type==="ARITH_FIELD"){g(S.expr,w);return}S.type!=="GROUPING_FIELD"&&M(S.expr,w)},x=(S,w="select")=>{if(S.type==="ARITH_VALUE"){g(S.expr,w);return}if(S.type==="CASE_VALUE"){M(S.expr,w);return}},O=(S,w="where")=>{if(S)switch(S.type){case"BINARY":v(S.left,w),x(S.right,w);return;case"NULL_CHECK":v(S.field,w);return;case"LOGICAL":O(S.left,w),O(S.right,w);return;case"NOT":case"GROUP":O(S.expr,w);return;case"EXISTS":case"BOOLEAN":return}},_=(S,w)=>{if(S.type==="FIELD_NAME"){m(S.name,"groupBy",w);return}if(S.type==="ARITH_KEY"){g(S.expr,"groupBy");return}I(S.expr,"groupBy")},N=(S,w="orderBy")=>{if(S.type==="FIELD_NAME"){if(S.aggregateRef){A(S.aggregateRef,w);return}m(S.name,w);return}if(S.type==="ARITH_KEY"){g(S.expr,w);return}S.type!=="GROUPING_KEY"&&I(S.expr,w)};for(let S of[...e.columns,...e.hiddenWindows??[]])switch(S.type){case"WILDCARD":f();break;case"PARENT_WILDCARD":E();break;case"FIELD":m(S.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${S.name}`);case"AGGREGATE":S.arg.type!=="WILDCARD"&&D(S.arg,"select");break;case"ARITH_AGG_COL":A(S.expr,"select");break;case"ARITH_COL":g(S.expr,"select");break;case"CASE_COL":M(S.expr,"select");break;case"STRFUNC_COL":I(S.expr,"select");break;case"SCALAR_VALUE_COL":b(S.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(S.windowKind==="AGGREGATE"||S.windowKind==="VALUE")&&S.arg.type!=="WILDCARD"&&D(S.arg,"select");for(let w of S.partitionBy)w.type==="FIELD"&&y(w.field,w.tableAlias,"select");for(let w of S.orderBy){let L=w.key.type==="FIELD_NAME"&&(w.key.aggregateRef!==void 0||c.has(w.key.name));N(w.key,L?"orderBy":"select")}break}for(let S of e.joins)S.type!=="CROSS"&&(y(S.on.left.field,S.on.left.tableAlias,"where"),y(S.on.right.field,S.on.right.tableAlias,"where"));O(e.where,"where");let P=ee(e);if(P.type==="PLAIN")P.allItems.forEach((S,w)=>_(S,t?.items[w]));else if(P.type==="GROUPING_SETS")for(let S of P.allItems)y(S.field,S.tableAlias,"select");O(e.having,"having");for(let S of e.orderBy)N(S.key);return a}function ph(e){let t=new Set;for(let n of e)(n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL"||n.type==="ARITH_COL"&&ge(n.expr)||n.type==="CASE_COL"&&ge(n.expr)||n.type==="STRFUNC_COL"&&Ll(n.expr)||n.type==="SCALAR_VALUE_COL"&&ar(n.expr))&&(n.alias&&t.add(n.alias),n.type==="AGGREGATE"&&t.add(ie(n.func,n.distinct,n.arg)));return t}function dh(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(ie(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 fh(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function an(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||je(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||od(n)||n.distinct?!1:!Mt(n)}function sn(e){let t=e.ctes[0].query,n=e.query,r=Xo(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 Xo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:zd(e.left,t)};case"NULL_CHECK":return{...e,field:zd(e.field,t)};case"LOGICAL":return{...e,left:Xo(e.left,t),right:Xo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Xo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function zd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var Eh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Rh=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":Rh.has(e.fieldType)?t="option":Eh.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 V(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function sr(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Qo(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 ze=["=","!=",">","<",">=","<="],mh=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),yh=new Set(ze),gh=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"])]]),hh=new Map([["TODAY",new Set(ze)],["NOW",new Set(ze)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Ah=["=","!=","in","not in"],Sh=new Map([["RECORD_NUMBER",new Set([...ze,"in","not in"])],["__ID__",new Set([...ze,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(ze)],["UPDATED_TIME",new Set(ze)],["DATE",new Set(ze)],["TIME",new Set(ze)],["DATETIME",new Set(ze)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...ze,"in","not in"])],["CALC",new Set([...ze,"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(Ah)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Th=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"]),Xd=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function ea(e){return Sh.get(e)??new Set}function Qd(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)&&ea(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function Te(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:qr(e,t)}function qr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return Ih(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?_l():Nh(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return _l();case"GROUP":return qr(e.expr,t);case"NOT":{let n=qr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:ef(n.reasons)?Xr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=qr(e.left,t),r=qr(e.right,t);return Ph(e.op,n,r)}}}function Ih(e,t,n,r){if(n.type==="KINTONE_FUNC"&&re(n.name))return wh(e,t,n,r);if(n.type==="KINTONE_FUNC"&&qd(n))return Jd(e,t,n,r);if(n.type==="IN_LIST"){let p=n.values.filter(c=>c.type==="KINTONE_FUNC");if(p.length>0)return n.values.length===1&&p.length===1?Jd(e,t,p[0],r):Zo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",p[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Jr(e))}if(t.type!=="FIELD")return _l();let i=r(t);if(!i)return lr("WHERE_FIELD_UNRESOLVED",t.field,void 0,Jr(e));let o=Jr(e);if(!Zd(i.fieldType,o))return lr("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Ch(i.fieldType,e))return lr("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=ea(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||qd(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",u=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!u?{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 qd(e){return e.type==="KINTONE_FUNC"&&Tn.has(e.name)}function Jd(e,t,n,r){let i=Jr(e),o=n.name;if(!Tn.has(o)||t.type!=="FIELD")return Zo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=gh.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Zo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):hh.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Zo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function wh(e,t,n,r){let i=Jr(e),o=n.name;if(t.type!=="FIELD")return zr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?bh(n)?yh.has(i)?!mh.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?zr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,a.fieldType,i):{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:zr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):zr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):zr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function bh(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 Nh(e,t,n){let r=n(e);return r?Zd(r.fieldType,t)?!Dl.has(r.fieldType)&&!Xd.has(r.fieldType)?lr("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:lr("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):lr("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Zd(e,t){let n=Th.get(e);return n===void 0||n.has(t)}function Ch(e,t){return Dl.has(e)?!0:Xd.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Jr(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 Ph(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Xr({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")?Xr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Xr({capability:"LOCAL_ONLY",reasons:r})}function _l(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function lr(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Zo(e,t,n,r,i){return Xr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function zr(e,t,n,r,i){return tf({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function ef(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&re(t.functionName))}function Oh(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&Tn.has(t.functionName))}function tf(e){if(e.capability==="EXACT_PUSHDOWN"||!ef(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&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 Lh(e){if(e.capability==="EXACT_PUSHDOWN"||!Oh(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&&Tn.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 Xr(e){return Lh(tf(e))}function Qr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function ta(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function na(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Qr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function ra(e){let t=e.raw??String(e.value),n=we(t);if(n===null)return!1;if(n.sign===0)return q(e)==="0";let r=Math.max(n.scale,0),i=Math.max(n.coefficient.length-n.scale,0);if(r>10||i+r>30)return!1;let o=cl(n);return q(e)===o}var _h=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Dh=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),vh=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Uh=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function ia(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"?vh.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?kh(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Mh(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"&&ra(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&ra(e.right)?"exact":"unsafe":Dh.has(r)?vl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?vl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Uh.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Qr(e.right.value)?"exact":"unsafe":r==="TIME"?ta(e.right.value)?"exact":"unsafe":na(e.right.value)?"exact":"unsafe":_h.has(r)?!vl(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 nf(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 vl(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 Mh(e){let t=n=>n.type==="NUMBER"&&ra(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 kh(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function Ul(e,t={}){return la(e,t).condition}function la(e,t={}){return oa(e,n=>xh(n,t))}function Zr(e,t={}){return aa(e,n=>nf(n,r=>sa(r,t)))}function oa(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=oa(e.left,t),r=oa(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 oa(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function aa(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=aa(e.left,t),r=aa(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return aa(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function xh(e,t){if(Fh(e,t)||Gh(e,t))return"exact";if(e.left.type!=="FIELD"||!sa(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||Te(e,i=>{if(!sa(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ne({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":ia(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function Fh(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!sa(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function Gh(e,t){return!Kh(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function Kh(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 sa(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function ei(e,t={}){let n=e!==null&&t.extractCondition!==!1?la(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;ur(r,o);let a=new Set;return ur(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function Cn(e,t={}){let n=e.joins.every(c=>c.type==="INNER"||c.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=ei(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,u=new Map;if(e.where!==null)for(let c of e.joins){if(c.type!=="INNER"&&c.type!=="CROSS"||!c.table.alias||c.table.subtableCode||c.table.cteName!==null)continue;let d=la(e.where,{...r,tableAlias:c.table.alias,fieldTypes:t.fieldTypesByApp?.get(c.table.appId),fieldOptions:t.fieldOptionsByApp?.get(c.table.appId)});d.condition!==null&&d.relation!==null&&(l.set(c.table.alias,d.condition),u.set(c.table.alias,d.relation))}let p=new Set(a.appliedKlikes);for(let c of l.values())ur(c,p);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:u,appliedKlikes:p,allKlikes:a.allKlikes}}function Ml(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function ur(e,t){if(e!==null){if(nn(e)){t.add(e);return}switch(e.type){case"LOGICAL":ur(e.left,t),ur(e.right,t);return;case"NOT":case"GROUP":ur(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function ua(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=Se(t.where);if(l.length===0||!Wh(l,a)||o===null||!rf(o,l))return null;let u={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:$h(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},p={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:u};return Bh(p,e,l),p}function Bh(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(!rf(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Se(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"&&st(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function $h(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&st(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&st(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 Wh(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function rf(e,t){let n=new Map;for(let r of t){if(!st(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 he=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function of(e){af(e)}function xl(e){if(Ml(e).length>0)throw new he("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 af(e){switch(e.type){case"SELECT":cr(e);return;case"UNION":Gl(e);return;case"WITH":sf(e);return;case"EXPLAIN":af(e.query);return;case"CREATE_TEMP_TABLE":Fl(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":Pn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Ut(e.where)&&Pe(e.where)){kl(e.where),Pn(e);return}if(ln(e)&&e.subtableCode)throw new he("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&Pe(e.where)&&!Yh(e,e.where)){kl(e.where),Pn(e);return}if(ln(e))throw new he("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(ln(e)&&e.subtableCode)throw new he("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&Pe(e.where)){kl(e.where),Pn(e);return}if(ln(e))throw new he("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(ln(e))throw new he("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(ln(e))throw new he("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(ln(e))throw new he("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(ln(e))throw new he("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 kl(e){pa(e,t=>{if(!nn(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new he("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 he("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 Fl(e){e.type==="SELECT"?cr(e):e.type==="UNION"?Gl(e):sf(e)}function Gl(e){Fl(e.left),cr(e.right)}function sf(e){if(an(e)){cr(sn(e));return}for(let t of e.ctes)t.query.type==="SELECT"?cr(t.query):t.query.type==="UNION"&&Gl(t.query);Fl(e.query)}function cr(e){if(Hh(e),Pe(e.where)&&!(je(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Cn(e,{allowUnresolvedVariables:!0});if(Ml(n).length===0){Pn(e);return}if(Vh(e)){Pn(e);return}throw new he("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")}Pn(e)}function Vh(e){return e.where!==null&&Se(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 Hh(e){pa(e,t=>{if(!nn(t))return;if(!ca(e.where,t))throw new he("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 he("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 he("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 Pn(e){da(e,t=>{t.type==="SELECT"&&cr(t)},!0)}function ln(e){let t=!1;return da(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function Yh(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 ca(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return ca(e.left,t)||ca(e.right,t);case"NOT":case"GROUP":return ca(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function pa(e,t){if(Array.isArray(e)){for(let r of e)pa(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&&jh(r)||pa(r,t)}function da(e,t,n=!1){if(Array.isArray(e)){for(let i of e)da(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))da(i,t)}function jh(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var ti=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 lf(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(zh(t))throw new ti;return;default:return}}function zh(e){let t=!1;return fa(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||qh(n.where)&&(t=!0)}),t}function qh(e){let t=!1;return fa(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function fa(e,t){if(Array.isArray(e)){for(let r of e)fa(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))fa(r,t)}function un(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 Ea(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 un(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return un(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 un(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return un(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return un(e,t,3,3);case"REGEXP_REPLACE":return un(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return un(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return un(e,t,0,0)}}var $l=1e4,xt=$l,te=e=>new Error(`ArgumentError: ${e}`),Jh=e=>e.type==="VARIABLE",cn=e=>e?.type==="STRING"&&e.fromVariable===!0;function Xh(e){return e.type==="NUMBER"?Number(q(e)):e.value}function pr(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 Kl(e){let t=pr(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 Qh(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw te("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 uf(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)?te("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)?te("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):te("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 te("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 te(`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 ni(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 ri(e){let t=we(e.raw??String(e.value));if(t===null||t.scale>0)return null;if(t.sign===0)return 0;if(t.coefficient.length-t.scale>16)return null;let r=`${t.coefficient}${"0".repeat(-t.scale)}`;if(r.length===16&&r>"9007199254740991")return null;let i=Number(r)*t.sign;return Number.isSafeInteger(i)?i:null}function cf(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Ra(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 Bl(e){return e.year*12+e.month-1}function pf(e,t){if(t==="MONTH"&&e.day!==1)throw te("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 te("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 Zh(e,t,n){let r=Kl(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=Kl(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return Ra(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=Bl(t)+(n.coefficient<0&&t.day!==1?1:0);return Ra(Bl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return Ra(e.year,a,n.coefficient)}function df(e,t,n){if(e<1||e>9999)throw te("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 eA(e){let t=Math.floor(e/12),n=e-t*12+1;return df(t,n,1)}function ff(e){if(e.args.length<2||e.args.length>3)throw te("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=>Xh(g));["start","stop","step"].forEach((g,A)=>{if(t[A]==="")throw te(`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"?pr(n):null,u=typeof r=="string"?pr(r):null,p=typeof n=="string"&&/^\d{4}-/.test(n),c=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(cf))throw te("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||u||p||c||typeof n=="string"&&typeof r=="string"&&!(cn(o)&&cn(a)&&ni(n)!==null&&ni(r)!==null)){if(!l||!u)throw te(l&&typeof r!="string"||u&&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 te("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"}:uf(i);return pf(l,g.unit),{kind:"DATE",start:n,stop:r,step:g.coefficient,dateUnit:g.unit,rowCount:Zh(l,u,g)}}let d=o.type==="NUMBER"?ri(o):cn(o)?ni(n):null,f=a.type==="NUMBER"?ri(a):cn(a)?ni(r):null;if(d===null||f===null)throw(o.type==="NUMBER"||cn(o))&&(a.type==="NUMBER"||cn(a))?te("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):te("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=i===void 0?1:s?.type==="NUMBER"?ri(s):cn(s)?ni(i):null;if(E===null)throw s?.type==="NUMBER"||cn(s)?te("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):te("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let R=d,m=f,y=E;if(y===0)throw te("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:R,stop:m,step:y,rowCount:Ra(R,m,y)}}function tA(e){if(e.args.length<2||e.args.length>3)throw te("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(Jh)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw te(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&ri(o)===null)throw te("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(cf(o.value))throw te("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)&&pr(o.value)===null)throw te("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=ri(n);if(r===null)throw te("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 te("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=uf(n.value),i=e.args[0];if(i?.type==="STRING"){let o=pr(i.value);o&&pf(o,r.unit)}}return null}let t=ff(e);if(t.rowCount>xt)throw te(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${xt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function Ef(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=tA(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>xt)throw te(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${xt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function ma(e){let t=ff(e);if(t.rowCount>xt)throw te(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${xt} \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 te("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=pr(t.start);if(t.dateUnit==="MONTH"){let i=Bl(r);for(let o=0;o<t.rowCount;o++)n.push(eA(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(df(r.year+i*t.step,1,1));else{let i=Kl(t.start);for(let o=0;o<t.rowCount;o++)n.push(Qh(i+o*t.step))}}return{...t,values:n}}function ut(e){nA(e),lf(e),of(e),Ef(e)}function nA(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;Ea(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var ga=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],Hl="\0as-of:";function ii(e){return`${Hl}${e}`}function dr(e){if(!e.startsWith(Hl))return null;let t=e.slice(Hl.length);return oi(t)?t:null}function oi(e){return ga.includes(e)}function Yl(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=Wl(r,"year"),o=Wl(r,"month"),a=Wl(r,"day"),s=`${Vl(i)}-${ya(o)}-${ya(a)}`,l=`${Vl(i)}-${ya(o)}-01`,u=o===12?i+1:i,p=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${Vl(u)}-${ya(p)}-01`}}}function Wl(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 ya(e){return String(e).padStart(2,"0")}function Vl(e){return String(e).padStart(4,"0")}var ha=16,Rf=64,oe=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ai(e,t,n){if(Array.isArray(e)){for(let r of e)ai(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))ai(a,t,n)}}var rA=new Set(["=","!=","<>",">","<",">=","<="]);function jl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)jl(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(dr(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",u=n&&i==="BINARY"&&a==="right"&&l&&rA.has(String(r.op));jl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?u:o?n:!1)}}}function iA(e){let t=e.type==="EXPLAIN"?e.query:e;return en(t.type)||t.type==="VALIDATE"}function zl(e){if(Array.isArray(e)){for(let t of e)zl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Pl(e);for(let n of Object.values(t))zl(n)}}function ql(e){if(e.length===0)throw new oe("ArgumentError: SQL is empty.",0);if(e.forEach((c,d)=>{try{zl(c)}catch(f){throw f instanceof Error?new oe(f.message,d):f}try{nr("phase15b",c),ut(c)}catch(f){throw f instanceof he||f instanceof ti?new oe(f.message,d):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new oe(f.message,d):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let d=c==="SET_VARIABLE"?"SET":"DECLARE";throw new oe(`ArgumentError: ${d} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let d=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new oe(`ArgumentError: ${d} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,d)=>{let f=c.type==="VALIDATE"&&c.errorTable?c.errorTable:"validationErrorTable"in c&&c.validationErrorTable?c.validationErrorTable:"onErrorSkip"in c&&c.onErrorSkip?c.errorTable??null:null;if(e.length===1&&f){let D=c.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in c&&c.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new oe(D,d)}let E=ko(c),R=[],m=[],y=new Set,g=new Set,A=new Set,h=[];jl(c,h);let I=new Set;for(let D of h){let C=o.get(D.name);if(C===void 0)throw new oe(`ParseError: variable @${D.name} is not defined before statement ${d+1}.`,d);if(C.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.`,d);if(C.kind==="array"&&D.kind!=="array-in-list")throw new oe(`ParseError: array variable @${D.name} can only be used as IN @${D.name}.`,d);if(C.relativeDate&&iA(c))throw new oe(`ArgumentError: RELATIVE_DATE variable @${D.name} cannot be used in DML or VALIDATE statements.`,d);if(C.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.`,d);I.has(D.name)||(C.referencedBy.push(d),I.add(D.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new oe(`ParseError: variable @${c.name} is already defined.`,d);if(o.set(c.name,{index:d,kind:c.type==="SET_VARIABLE"&&c.expr.type==="ARRAY"?"array":"scalar",relativeDate:c.type==="DECLARE_VARIABLE"&&c.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(c.name),a.length>Rf)throw new oe(`ParseError: batch exceeds ${Rf} variables.`,d)}c.type==="CREATE_TEMP_TABLE"?ai(c.query,y,g):c.type==="DROP_TEMP_TABLE"||ai(c,y,g);let b=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let D=new Set,C=new Set;ai(c.select,D,C),b=D.size>0&&C.size===0}for(let D of y){let C=t.get(D);if(C===void 0)throw new oe(`ParseError: temp table ${D} is not defined in this batch.`,d);A.add(C)}if(f){let D=c.type==="VALIDATE"?c.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"]:c.type==="IMPORT"&&c.targets?.some(v=>v.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(v=>v.kind==="FIELD"?[v.field]:v.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(v=>v.field)]:"fields"in c?c.fields:[],C=JSON.stringify(D),M=t.get(f);if(M===void 0){if(t.set(f,d),n.set(f,C),r.push(f),R.push(f),t.size>ha)throw new oe(`ParseError: batch exceeds ${ha} temp tables.`,d)}else{if(n.get(f)!==C)throw new oe(`ParseError: validation error table ${f} has a different payload schema.`,d);A.add(M)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new oe(`ParseError: temp table ${c.name} is already defined.`,d);if(t.set(c.name,d),r.push(c.name),R.push(c.name),t.size>ha)throw new oe(`ParseError: batch exceeds ${ha} temp tables.`,d)}if(c.type==="DROP_TEMP_TABLE"){let D=t.get(c.name);if(D===void 0)throw new oe(`ParseError: temp table ${c.name} is not defined in this batch.`,d);A.add(D),m.push(c.name),t.delete(c.name)}i.push({index:d,statementType:E,isDml:pl(c),isReadOnly:Qn(c),hasWhere:pd(c),insertValuesCount:dd(c),appIds:[...g].sort((D,C)=>D-C),tempTablesCreated:R,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...A].sort((D,C)=>D-C),tempOnlySource:b,targetAppId:en(E)&&typeof c.appId=="number"?c.appId:null,isUpdateFrom:c.type==="UPDATE"&&c.from!=null,isValidationOnly:"validateOnly"in c&&c.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in c&&c.onErrorSkip===!0,requiresCompleteInput:ud(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),u=i.some(c=>c.requiresCompleteInput),p=a.map(c=>({name:c,kind:o.get(c).kind,referencedBy:[...o.get(c).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(c=>c.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:u,tempTables:r,variables:p,warnings:p.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}var Aa=new Map([["UNION","UNION"],["ALL","ALL"],["WITH","WITH"],["SHOW","SHOW"],["DESCRIBE","DESCRIBE"],["APPS","APPS"],["EXPLAIN","EXPLAIN"],["UPSERT","UPSERT"],["REORDER","REORDER"],["DUPLICATE","DUPLICATE"],["SELECT","SELECT"],["DISTINCT","DISTINCT"],["FROM","FROM"],["AS","AS"],["WHERE","WHERE"],["INSERT","INSERT"],["INTO","INTO"],["VALUES","VALUES"],["UPDATE","UPDATE"],["SET","SET"],["DELETE","DELETE"],["INNER","INNER"],["LEFT","LEFT"],["RIGHT","RIGHT"],["CROSS","CROSS"],["JOIN","JOIN"],["ON","ON"],["GROUP","GROUP"],["BY","BY"],["HAVING","HAVING"],["ORDER","ORDER"],["KORDER","KORDER"],["ASC","ASC"],["DESC","DESC"],["LIMIT","LIMIT"],["OFFSET","OFFSET"],["COUNT","COUNT"],["SUM","SUM"],["AVG","AVG"],["MAX","MAX"],["MIN","MIN"],["GROUP_CONCAT","GROUP_CONCAT"],["STDDEV_POP","STDDEV_POP"],["STDDEV_SAMP","STDDEV_SAMP"],["VAR_POP","VAR_POP"],["VAR_SAMP","VAR_SAMP"],["MEDIAN","MEDIAN"],["MODE","MODE"],["ROW_NUMBER","ROW_NUMBER"],["RANK","RANK"],["DENSE_RANK","DENSE_RANK"],["ASSERT","ASSERT"],["AND","AND"],["OR","OR"],["NOT","NOT"],["EXISTS","EXISTS"],["IS","IS"],["NULL","NULL"],["LIKE","LIKE"],["KLIKE","KLIKE"],["IN","IN"],["BETWEEN","BETWEEN"],["TODAY","TODAY"],["NOW","NOW"],["LOGINUSER","LOGINUSER"],["PRIMARY_ORGANIZATION","PRIMARY_ORGANIZATION"],["CASE","CASE"],["WHEN","WHEN"],["THEN","THEN"],["ELSE","ELSE"],["END","END"],["UPPER","UPPER"],["LOWER","LOWER"],["TRIM","TRIM"],["LTRIM","LTRIM"],["RTRIM","RTRIM"],["LENGTH","LENGTH"],["LENGTH_CHAR","LENGTH_CHAR"],["SUBSTRING","SUBSTRING"],["SUBSTR","SUBSTR"],["CONCAT","CONCAT"],["REPLACE","REPLACE"],["REGEXP_LIKE","REGEXP_LIKE"],["REGEXP_REPLACE","REGEXP_REPLACE"],["REGEXP_SUBSTR","REGEXP_SUBSTR"],["COALESCE","COALESCE"],["NULLIF","NULLIF"],["ISNULL","ISNULL"],["INSTR","INSTR"],["GREATEST","GREATEST"],["LEAST","LEAST"],["LPAD","LPAD"],["RPAD","RPAD"],["TRANSLATE","TRANSLATE"],["CAST","CAST"],["CONVERT","CONVERT"],["FORMAT","FORMAT"],["ROUND","ROUND"],["FLOOR","FLOOR"],["CEIL","CEIL"],["CEILING","CEILING"],["TRUNCATE","TRUNCATE"],["TRUNC","TRUNC"],["ABS","ABS"],["MOD","MOD"],["POWER","POWER"],["POW","POW"],["SQRT","SQRT"],["YEAR","YEAR"],["MONTH","MONTH"],["DAY","DAY"],["DAYOFWEEK","DAYOFWEEK"],["QUARTER","QUARTER"],["WEEK","WEEK"],["DATE_FORMAT","DATE_FORMAT"],["DATEDIFF","DATEDIFF"],["DATE_ADD","DATE_ADD"],["LAST_DAY","LAST_DAY"],["IF","IF"]]);var ke=class extends Error{constructor(n,r,i,o=!1){let a=i.slice(Math.max(0,r-10),r+10);super(`${n}\uFF08\u4F4D\u7F6E ${r}\u3001\u524D\u5F8C: \u300C${a}\u300D\uFF09`);this.pos=r;this.input=i;this.unterminated=o;this.name="LexError"}},pn=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(fr(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(Jl(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new ke(`\u4E88\u671F\u3057\u306A\u3044\u6587\u5B57 \u300C${n}\u300D \u3067\u3059`,this.pos,this.input)}readString(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="'")if(this.pos++,this.pos<this.input.length&&this.input[this.pos]==="'")n+="'",this.pos++;else return this.makeToken("STRING",n,t);else n+=r,this.pos++}throw new ke("\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readBacktickIdent(t){this.pos++;let n="";for(;this.pos<this.input.length;){let r=this.input[this.pos];if(r==="`")return this.pos++,this.makeToken("BIDENT",n,t);n+=r,this.pos++}throw new ke("\u30D0\u30C3\u30AF\u30AF\u30A9\u30FC\u30C8\u8B58\u5225\u5B50\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",t,this.input,!0)}readNumber(t){for(;this.pos<this.input.length&&fr(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&fr(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&fr(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||!fr(this.input[this.pos]))throw new ke("\u6307\u6570\u90E8\u306B\u306F\u6570\u5B57\u304C\u5FC5\u8981\u3067\u3059",t,this.input,this.pos>=this.input.length);for(;this.pos<this.input.length&&fr(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&&mf(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Aa.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(!Jl(n))throw new ke("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&mf(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new ke(`@profile is not allowed on temp table ${r}.`,this.pos,this.input);return this.makeToken("IDENT",r,t)}readVariable(t){this.pos++;let n=this.input[this.pos]??"";if(!/[A-Za-z_]/.test(n))throw new ke("\u300C@\u300D \u306E\u76F4\u5F8C\u306B\u306F\u82F1\u5B57\u307E\u305F\u306F _ \u3067\u59CB\u307E\u308B\u5909\u6570\u540D\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(this.pos++;this.pos<this.input.length&&/[A-Za-z0-9_]/.test(this.input[this.pos]);)this.pos++;if(this.pos-t-1>64)throw new ke("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
2
2
  `){this.pos++;continue}if(t==="-"&&this.input[this.pos+1]==="-"){for(;this.pos<this.input.length&&this.input[this.pos]!==`
3
3
  `;)this.pos++;continue}if(t==="/"&&this.input[this.pos+1]==="*"){let n=this.pos;this.pos+=2;let r=!1;for(;this.pos<this.input.length;){if(this.input[this.pos]==="*"&&this.input[this.pos+1]==="/"){this.pos+=2,r=!0;break}this.pos++}if(!r)throw new ke("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r,end:this.pos}}};function Jl(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||oA(t)}function mf(e){let t=e.codePointAt(0);return Jl(e)||t>=48&&t<=57}function fr(e){let t=e.codePointAt(0);return t>=48&&t<=57}function oA(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var gf=20,Xl=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"}),Af=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),si=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"}),_P=Object.freeze(Object.values(si).filter(e=>e!==void 0)),aA=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),sA=new Set(aA);function lA(e){return sA.has(e)}var Ql=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),li=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function hf(e){return li[e]!==void 0}var uA=Object.freeze([...xo]),cA=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),pA=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function dA(e){return cA.has(e)}function fA(e){return pA.has(e)}function EA(e){return Number.isInteger(e)&&e>=1&&e<=31}var DP=Object.freeze(Array.from(new Set([...Object.keys(Xl),...Af,...Object.keys(si),...Object.keys(Ql),...Object.keys(li),...uA,"IF"]))),RA=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 mA(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!RA.has(e.kind):!0}var T=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.rawMessage=n;this.token=r;this.name="ParseError"}},Ft=["\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
  `),dn=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.hiddenWindows=null;this.insideWindowExpression=0;this.insideWindowContainingSelectExpression=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(!oi(o))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${ga.map(a=>`@${a}`).join("/")} \u3067\u3059`,i)}}parse(){let t=this.parseStatements();if(t.length===0)throw new T("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new T("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new T(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){return this.parseStatementsWithRanges().statements}parseStatementsWithRanges(){let t=[],n=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let r=this.peek();if(t.push(this.parseStatement()),t.length>gf)throw new T(`batch exceeds ${gf} statements.`,r);let i=this.peek();if(i.kind!==";"&&i.kind!=="EOF")throw new T("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",i);let o=this.prev();n.push({start:r.pos,end:o.end??i.pos})}return this.expect("EOF"),{statements:t,statementRanges:n}}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="EXIT")return this.parseExit();if(n==="MERGE"){if(!this.capabilities.dialect1)throw new T("MERGE \u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t);return this.parseMergeAsUpsert()}if(n==="GENERATE_SERIES")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);if(n==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new T("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT / EXIT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:r}}parseRelativeDateVariableToken(){let t=this.peek(),n=li[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 T("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE"){if(this.peekAt(1).kind==="("&&this.capabilities.dialect1)return this.advance(),this.finishVariableReference(r);throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r)}if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=li[r.kind];if(i==="LOGINUSER")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i==="PRIMARY_ORGANIZATION")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new T(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new T(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek(),i;if(r.kind==="WITH")i=this.parseWith();else if(r.kind==="SELECT")i=this.tryParseUnionChain(this.parseSelect());else throw new T("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",r);return t!==null&&this.bareTempTableNames.add(t),{type:"CREATE_TEMP_TABLE",name:n,query:i}}parseDropTempTable(){this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();return t!==null&&this.bareTempTableNames.delete(t),{type:"DROP_TEMP_TABLE",name:n}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new T(n,r)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;if(this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT"))return this.advance(),`#${t.value}`;throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}isDialect1BareTempTableName(){let t=this.peek();return this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT")&&!t.value.startsWith("#")?t.value:null}parseShow(){if(this.advance(),!this.consume("APPS"))throw new T("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=At(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=At(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let b=this.parseIdentifier();if(s.has(b))throw new T(`IMPORT target ${b} is declared more than once.`,this.prev());if(s.add(b),this.peek().kind==="("){this.advance();let D=this.parseIdentList();if(this.expect(")"),new Set(D).size!==D.length)throw new T(`IMPORT subtable ${b} contains duplicate child declarations.`,this.prev());let C;if(this.isSoftKeyword("ROW")){this.advance();for(let M of["ID","SOURCE"]){if(!this.isSoftKeyword(M))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}C=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:b,children:D,...C?{rowIdSourceHeader:C}:{}})}else a.push(b),o.push({kind:"FIELD",field:b});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new T("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let u=this.parseIdentifier(),p,c=!0,d;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let b=this.parseIdentifier().toUpperCase();if(b!=="UTF8"&&b!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());p=b==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new T("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),c=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new T("COLUMNS is CSV-only.",this.peek());if(c)throw new T("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),d=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Ce||f.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(b=>b.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new T(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",R=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new T("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new T("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!c)throw new T("BY NAME requires HEADER.",this.prev());if(f)throw new T("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(E="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new T("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new T("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),R=!0}}let m,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let b of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(b))throw new T("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let g;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new T("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),g=this.parseIdentList(),this.expect(")"),new Set(g).size!==g.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let A=o.filter(b=>b.kind==="SUBTABLE");if(A.length){if(f)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(A.some(b=>b.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(g)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new T("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(E!=="BY_NAME")throw new T("CSV subtable IMPORT requires BY NAME.",this.prev());if(!g)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let b=new Set(g);for(let D of A){if(!D.rowIdSourceHeader)throw new T(`CSV subtable ${D.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!b.has(D.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${D.subtableCode}.`,this.prev())}for(let D of b)if(!A.some(C=>C.subtableCode===D))throw new T(`REPLACE SUBTABLES target ${D} is not declared in INTO.`,this.prev())}}else if(g)throw new T("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new T("IMPORT UPDATE supports CSV only.",this.prev());if(E!=="BY_NAME")throw new T("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let h=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:u}:{kind:"CSV",sourceName:u,encoding:p,hasHeader:c,mappingMode:E,ignoreUnknownColumns:R,...d?{columns:d}:{},...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 T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=At(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let d=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:d})}else o.push({kind:"FIELD",field:c})}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(),u;if(this.consume("INTO")){let c=this.peek();if(c.kind!=="IDENT"||!c.value.startsWith("#"))throw new T("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",c);u=this.parseTableName()}let p={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...u?{errorTable:u}:{}};return this.assertValidateExpressions(p,t),p}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.peek(),n=this.isSoftKeyword("WARN");n&&(this.requireDialect1(t),this.advance());let r=this.parseAssertCondition(),i=this.parseFlowMessage();return{type:"ASSERT",...r,...n?{warn:!0}:{},...i!==void 0?{message:i}:{}}}parseExit(){let t=this.advance();if(this.requireDialect1(t),!this.isSoftKeyword("SUCCESS"))throw new T("EXIT \u306E\u5F8C\u306B\u306F SUCCESS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.peek().kind!=="IF"&&!this.isSoftKeyword("IF"))throw new T("EXIT SUCCESS \u306E\u5F8C\u306B\u306F IF \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=this.parseAssertCondition();if(!this.consume(","))throw new T("EXIT SUCCESS IF \u306B\u306F\u672B\u5C3E\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u6587\u5B57\u5217\u304C\u5FC5\u8981\u3067\u3059",this.peek());let r=this.expect("STRING","EXIT SUCCESS IF \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return{type:"EXIT",...n,message:r.value}}parseAssertCondition(){let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseFlowMessage(){if(this.consume(","))return this.requireDialect1(this.prev()),this.expect("STRING","ASSERT \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}requireDialect1(t){if(!this.capabilities.dialect1)throw new T("\u3053\u306E\u69CB\u6587\u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t)}finishVariableReference(t){let n={type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(this.peek().kind!=="("||!this.capabilities.dialect1)return n;let r=t.value.slice(1).toUpperCase();if(!oi(r))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${ga.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:ii(r)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new T("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new T("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new T(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new T("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new T("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&mA(this.tokens[i-1],o)&&(r+=" "),r+=a}return r}parseSelect(t=!1){this.expect("SELECT");let n=this.consume("DISTINCT"),r=this.hiddenWindows;this.hiddenWindows=[];let i,o;try{i=this.parseSelectColumns(),o=this.hiddenWindows}finally{this.hiddenWindows=r}let a=this.consume("FROM"),s=a?this.parseTableRef():{appId:0,alias:null,cteName:Ce},l=a?this.parseJoins():[],u=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,p=[],c,d=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?c=this.parseGroupingSetsClause():this.isRollupStart()?c=this.parseRollupClause():this.isCubeStart()?c=this.parseCubeClause():p=this.parseGroupByKeys(),c&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(d=this.parseWhereExpr("HAVING"))}let f="CANONICAL",E=[];if(this.consume("ORDER"))this.expect("BY"),E=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());f="KINTONE_NATIVE",this.expect("BY"),E=this.parseOrderBy()}let R=this.consume("LIMIT")?this.parseUnsignedInt():null,m=this.consume("OFFSET")?this.parseUnsignedInt():null;if(c&&f==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(i,d,p,c),{type:"SELECT",distinct:n,columns:i,...o.length>0?{hiddenWindows:o}:{},from:s,joins:l,where:u,groupBy:p,...c?{grouping:c}:{},having:d,orderMode:f,orderBy:E,limit:R,offset:m}}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,u=this.peek().kind;if(u==="SHOW")s=this.parseShow();else if(u==="DESCRIBE"||u==="DESC")s=this.parseDescribe();else if(u==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES")s=this.parseGenerateSeries();else if(t){let d=this.parseRecursiveCteCandidate(o);s=d.query,l=d.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let p=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(p&&!l)throw new T("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:p},this.validateRecursiveCte(o,a,l),r++,r>1))throw new T("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let c={name:o,query:s};a&&(c.columnAliases=a),l&&(c.recursiveSpec=l),n.push(c),this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.add(o)}while(this.consume(","));let i=this.tryParseUnionChain(this.parseSelect());return t?{type:"WITH",ctes:n,query:i,recursive:!0}:{type:"WITH",ctes:n,query:i}}finally{this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.clear()}}parseOptionalCteColumnAliases(){if(!this.consume("("))return;let t=[];if(this.peek().kind===")")throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u306F1\u500B\u4EE5\u4E0A\u306E\u5217\u540D\u304C\u5FC5\u8981\u3067\u3059",this.peek());do t.push(this.parseIdentifier());while(this.consume(","));if(this.expect(")"),new Set(t).size!==t.length)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u540C\u3058\u5217\u540D\u3092\u91CD\u8907\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());return t}parseRecursiveCteCandidate(t){let n=this.parseSelect();if(this.peek().kind!=="UNION")return{query:n};this.advance();let r=this.consume("ALL");this.activeCteDefinition={name:t,recursiveWith:!0,phase:"RECURSIVE_TERM"},this.provisionalRecursiveCte={name:t,references:0};let i=this.parseSelect(),o=this.provisionalRecursiveCte.references;this.provisionalRecursiveCte=null;let a={type:"UNION",all:r,left:n,right:i};if(a=this.tryParseUnionChain(a),this.activeCteDefinition={name:t,recursiveWith:!0,phase:"SEED"},o===0)return{query:a};if(!r||a.type!=="UNION"||a.left!==n||a.right!==i)throw new T("\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(o!==1)throw new T("\u518D\u5E30\u9805\u304B\u3089\u306E\u81EA\u5DF1\u53C2\u7167\u306F\u3061\u3087\u3046\u30691\u56DE\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());return{query:a,recursiveSpec:{seed:n,recursiveTerm:i,unionAll:!0,cycle:null}}}parseRecursiveCycleClause(){this.advance();let t=this.parseIdentifier();this.expect("SET","CYCLE \u306E\u5217\u540D\u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentifier();if(!this.isSoftKeyword("TO"))throw new T("CYCLE \u306E mark \u5217\u306E\u5F8C\u306B\u306F TO \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=this.expect("STRING","CYCLE TO \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(!this.isSoftKeyword("DEFAULT"))throw new T("CYCLE TO \u306E\u5024\u306E\u5F8C\u306B\u306F DEFAULT \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let i=this.expect("STRING","CYCLE DEFAULT \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(r.value===i.value)throw new T("CYCLE \u306E TO \u3068 DEFAULT \u306B\u306F\u7570\u306A\u308B\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);return{column:t,markColumn:n,markValue:r.value,defaultValue:i.value,exposePath:!1}}validateRecursiveCte(t,n,r){let i=this.prev(),o=r.seed,a=r.recursiveTerm,{groupBy:s}=a;if(o.columns.length!==a.columns.length)throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(n&&n.length!==o.columns.length)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u3068 SELECT \u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(o.columns.some(p=>p.type==="WILDCARD"||p.type==="PARENT_WILDCARD")||a.columns.some(p=>p.type==="WILDCARD"||p.type==="PARENT_WILDCARD"))throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new T("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new T("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(p=>p===t).length!==1)throw new T("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new T("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let u=n??o.columns.map(p=>this.selectColumnOutputName(p));if(r.cycle){if(u.filter(c=>c===r.cycle.column).length!==1)throw new T("CYCLE \u5217\u306F\u518D\u5E30 CTE \u306E\u51FA\u529B\u52171\u500B\u3078\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",i);if(u.includes(r.cycle.markColumn))throw new T("CYCLE \u306E mark \u5217\u306F\u518D\u5E30 CTE \u306E\u65E2\u5B58\u51FA\u529B\u5217\u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093",i)}}containsRecursiveForbiddenNode(t){if(Array.isArray(t))return t.some(r=>this.containsRecursiveForbiddenNode(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="AGGREGATE"||n.type==="AGG_REF"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"||n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SUBQUERY_IN_LIST"||n.type==="EXISTS"?!0:Object.values(n).some(r=>this.containsRecursiveForbiddenNode(r))}selectColumnOutputName(t){return"alias"in t&&typeof t.alias=="string"?t.alias:t.type==="FIELD"?t.field:null}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new T("GENERATE_SERIES \u304C\u5FC5\u8981\u3067\u3059",t);this.expect("(");let n=[];if(this.peek().kind!==")")do{let i=this.peek();if(i.kind==="STRING"){this.advance(),n.push({type:"STRING",value:i.value});continue}if(i.kind==="VARIABLE"){this.advance(),n.push(this.finishVariableReference(i));continue}let o="";(i.kind==="+"||i.kind==="-")&&(o=i.kind==="-"?"-":"+",this.advance());let a=this.peek();if(a.kind!=="NUMBER")throw new T("GENERATE_SERIES \u306E\u5F15\u6570\u306B\u306F\u6570\u5024\u3001\u6587\u5B57\u5217\u3001\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",a);this.advance(),n.push(be(`${o}${a.value}`))}while(this.consume(","));this.expect(")");let r=this.consume("AS")?this.parseIdentifier():"generate_series";return{type:"GENERATE_SERIES",args:n,columnAlias:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}if(this.startsWithWindowFunction()&&this.leadingFunctionArgumentContainsOver())throw new T(Ft,this.peek());if(this.hasNestedAggregateWindowInSelectColumn()&&!this.startsWithStandaloneWindowColumn()){this.insideWindowContainingSelectExpression++;let a;try{a=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!0})}finally{this.insideWindowContainingSelectExpression--}let s=this.consume("AS")?this.parseAliasName():null;return a.type==="CASE_WHEN"?this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s):a.type==="STRING_FUNC"?this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s):this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.finishVariableReference(this.advance()),s=dr(a.name),l=null;if(s===null){if(!this.consume("AS"))throw new T("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());l=this.parseAliasName()}else this.consume("AS")&&(l=this.parseAliasName());return this.withAliasDisplay({type:"VARIABLE_COL",name:a.name,alias:l?.alias??null},l)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),u=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:u?.alias??null},u)}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,!0);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(a.arg.type==="FIELD"&&a.arg.aggregateRef!==void 0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),u=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:u?.alias??null},u)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_parent.*")throw new T("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let a={type:"FIELD_REF",field:i},s=this.parseSelectArith(()=>this.continueArith(a)),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let o=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:i,alias:o?.alias??null},o)}tryWindowFunc(){return Ql[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(si[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(Ql[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}startsWithStandaloneWindowColumn(){let t=this.tryValueWindowFunc(),n=this.tryWindowFunc(),r=this.tryAggregateFunc();if(t===null&&n===null&&r===null)return!1;let i=0,o=-1;for(let s=this.pos+1;s<this.tokens.length;s++){let l=this.tokens[s];if(l.kind==="(")i++;else if(l.kind===")"&&--i===0){o=s;break}}let a=o+1;if(o<0||this.tokens[a]?.kind!=="IDENT"||this.tokens[a].value.toUpperCase()!=="OVER"||a<0||this.tokens[a+1]?.kind!=="(")return!1;i=0;for(let s=a+1;s<this.tokens.length;s++){let l=this.tokens[s];if(l.kind==="(")i++;else if(l.kind===")"&&--i===0){let u=this.tokens[s+1]?.kind;return u==="AS"||u===","||u==="FROM"||u===";"||u==="EOF"}}return!1}startsWithWindowFunction(){if(this.tryValueWindowFunc()!==null||this.tryWindowFunc()!==null)return!0;if(this.tryAggregateFunc()===null)return!1;let t=0;for(let n=this.pos+1;n<this.tokens.length;n++){let r=this.tokens[n];if(r.kind==="(")t++;else if(r.kind===")"&&--t===0){let i=this.tokens[n+1];return i?.kind==="IDENT"&&i.value.toUpperCase()==="OVER"}}return!1}leadingFunctionArgumentContainsOver(){let t=0;for(let n=this.pos+1;n<this.tokens.length;n++){let r=this.tokens[n];if(r.kind==="(")t++;else if(r.kind===")"&&--t===0)return!1;if(t>0&&r.kind==="IDENT"&&r.value.toUpperCase()==="OVER")return!0}return!1}registerHiddenWindow(t){if(this.hiddenWindows===null)throw new T(Ft,this.peek());let n=JSON.stringify({...t,alias:""}),r=this.hiddenWindows.find(o=>JSON.stringify({...o,alias:""})===n);if(r)return r.alias;let i=`__ksql_window_${this.hiddenWindows.length}`;return this.hiddenWindows.push({...t,alias:i}),i}parseHiddenWindowReference(){if(this.hiddenWindows===null)return null;let t=this.tryValueWindowFunc(),n=this.tryWindowFunc(),r=this.tryAggregateFunc();if(t===null&&n===null&&r===null)return null;if(this.insideWindowExpression>0)throw new T(Ft,this.peek());let i=0;for(let a=this.pos+1;a<this.tokens.length;a++){let s=this.tokens[a];if(s.kind==="(")i++;else if(s.kind===")"&&--i===0)break;if(i>0&&s.kind==="IDENT"&&s.value.toUpperCase()==="OVER")throw new T(Ft,s)}let o=this.pos;this.insideWindowExpression++;try{let a;if(t!==null)a=this.parseValueWindowColumn(t,"");else if(n!==null)a=this.parseWindowColumn(n,"");else{let l=this.parseAggregateRef(r,!0);if(!this.isSoftKeyword("OVER"))return this.pos=o,null;a=this.parseAggregateWindowColumn(l,"")}return{type:"FIELD",tableAlias:null,field:this.registerHiddenWindow(a),hiddenWindowRef:!0}}finally{this.insideWindowExpression--}}parseWindowPartitionKey(){if(this.isGroupingFunctionStart())return this.parseGroupingRef();let t=this.parseQualifiedIdent();return{type:"FIELD",tableAlias:t.tableAlias,field:t.field}}parseWindowColumn(t,n){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do r.push(this.parseWindowPartitionKey());while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy()):[];if(this.expect(")"),n!==void 0)return{type:"WINDOW_COL",func:t,partitionBy:r,orderBy:i,alias:n};if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let o=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:r,orderBy:i,alias:o.alias},o)}parseValueWindowColumn(t,n){this.advance(),this.expect("(");let r=this.tryAggregateFunc(),i=r===null?this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}):(()=>{let u=this.parseAggregateRef(r);return{type:"FIELD",tableAlias:null,field:ie(u.func,u.distinct,u.arg),aggregateRef:u}})(),o=1;if(this.consume(",")){let u=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(o=Number(u.value),!Number.isSafeInteger(o)||o<0)throw new T(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,u)}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 a=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do a.push(this.parseWindowPartitionKey());while(this.consume(","))}if(!this.consume("ORDER"))throw new T(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let s=this.parseOrderBy();if(this.expect(")"),n===void 0&&(this.isArithOp(this.peek().kind)||this.peek().kind==="||"))throw new T(Ft,this.peek());if(n!==void 0)return{type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:i,offset:o,partitionBy:a,orderBy:s,alias:n};if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let l=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:i,offset:o,partitionBy:a,orderBy:s,alias:l.alias},l)}parseAggregateWindowColumn(t,n){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new T(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do i.push(this.parseWindowPartitionKey());while(this.consume(","))}let o=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy()):[],a=o.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(o.length===0)throw new T("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let l=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new T("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());a={unit:l,source:"EXPLICIT"}}if(this.expect(")"),n===void 0&&this.isArithOp(this.peek().kind))throw new T(Ft,this.peek());if(n!==void 0)return{type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:a,partitionBy:i,orderBy:o,alias:n};if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:a,partitionBy:i,orderBy:o,alias:s.alias},s)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?be(`-${q(n)}`):{type:"AGG_ARITH",left:be("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return be(n.value)}if(this.peek().kind==="VARIABLE"){let n=this.advance();return this.finishVariableReference(n)}let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new T("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),si[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=p=>{if(Array.isArray(p)){p.forEach(a);return}if(p===null||typeof p!="object")return;let c=p;if(!(c.type==="SELECT"||c.type==="SCALAR_SUBQUERY")){if(c.type==="AGG_GROUP_KEY"){o.push(p);return}Object.values(c).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new T("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let u=new Set(r.filter(p=>p.type==="FIELD_NAME").map(p=>p.name));for(let p of o){let c=this.aggregateGroupKeyDisplay(p);if(!u.has(c))throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${c}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(p)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek(),r=this.parseHiddenWindowReference();if(r)return r;if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let i=this.parseScalarAddSubConcat(t);return this.expect(")"),i}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.parseScalarPrimary(t);if(i.type==="NUMBER")return be(`${n.kind==="-"?"-":"+"}${q(i)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:be("0"),op:"-",right:i}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),be(n.value);if(n.kind==="VARIABLE")return this.advance(),this.finishVariableReference(n);if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr(this.hiddenWindows!==null)}if(this.tryAggregateFunc()!==null){if(this.scalarAllowsAggregateArgs&&this.insideWindowContainingSelectExpression>0){let i=this.parseAggregateRef(this.tryAggregateFunc(),!0);return{type:"FIELD",tableAlias:null,field:ie(i.func,i.distinct,i.arg),aggregateRef:i}}throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n)}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){let t=this.parseHiddenWindowReference();if(t)return{type:"FIELD_REF",field:t.field,hiddenWindowRef:!0};if(this.consume("(")){let r=this.parseArithAddSub();return this.expect(")"),r}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return be(`+${r.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseArithPrimary();return r.type==="NUMBER"?be(`-${q(r)}`):{type:"ARITH",left:be("0"),op:"-",right:r}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let n=this.peek();if(n.kind==="NUMBER")return this.advance(),be(n.value);if(this.allowSelectArithVariable&&n.kind==="VARIABLE")return this.advance(),this.finishVariableReference(n);if(n.kind==="IDENT"||n.kind==="BIDENT"){this.advance();let r=n.value;if(this.peek().kind==="."){this.advance();let i=this.advance();r=`${r}.${i.value}`}return{type:"FIELD_REF",field:r}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",n)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult(t);this.expect(",");let i=this.parseCaseResult(t);return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult(t);n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=this.peek();if(this.hiddenWindows!==null&&this.startsWithWindowFunction())return this.parseArithAddSub();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Xl[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Xl[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(Af.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new T(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof T))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new T(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new T("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=yA(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.insideWindowContainingSelectExpression>0)return this.parseScalarAddSubConcat(this.scalarAllowsCase);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 si[this.peek().kind]??null}parseAggregateRef(t,n=!1){this.advance(),this.expect("(");let r=this.consume("DISTINCT"),i=r?this.prev():null;if(t==="MODE"&&i)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let o;if(n&&this.tryAggregateFunc()!==null){let s=this.parseAggregateRef(this.tryAggregateFunc());o={type:"FIELD",tableAlias:null,field:ie(s.func,s.distinct,s.arg),aggregateRef:s}}else if(this.consume("*")){if(!lA(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());o={type:"WILDCARD"}}else o=this.parseAggregateArgExpr();let a;if(this.isSoftKeyword("SEPARATOR")){let s=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",s);a=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:r,arg:o,...a!==void 0?{separator:a}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek();if(t.kind==="IDENT"&&t.value.toUpperCase()==="GENERATE_SERIES"&&this.peekAt(1).kind==="(")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let n=this.parseTableName();if(this.capabilities.dialect1&&this.bareTempTableNames.has(n)){let s=`#${n}`;return this.tempTableRefs.push({...this.prev(),value:s}),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:s}}if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new T(s,t)}let{appId:r,subtableCode:i}=At(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"||t==="IDENT"&&this.peek().value.toUpperCase()==="KEY"&&this.peekAt(1).kind==="("?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();if(n==="CROSS"){if(this.peek().kind==="ON")throw new T("CROSS JOIN \u306B ON \u53E5\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());t.push({type:"CROSS",table:r,on:null});continue}this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){if(this.consume("INNER")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B INNER \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"INNER"}if(this.consume("LEFT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"LEFT"}if(this.consume("RIGHT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"RIGHT"}return this.consume("CROSS")?(this.expect("JOIN"),"CROSS"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue(n!=="LIKE");return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){let t=this.parseHiddenWindowReference();if(t)return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith({type:"FIELD_REF",field:t.field,hiddenWindowRef:!0})}:t;if(this.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(i)}:{type:"FUNC_FIELD",expr:i}}let n=this.tryAggregateFunc();if(n!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.parseAggregateRef(n);return this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(i)}:{type:"FIELD",tableAlias:null,field:ie(i.func,i.distinct,i.arg),...this.groupingFieldContext==="SELECT_CASE"||this.groupingFieldContext==="HAVING"?{aggregateRef:i}:{}}}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 i=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(i)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let r=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let o={type:"FIELD_REF",field:r.tableAlias?`${r.tableAlias}.${r.field}`:r.field};return{type:"ARITH_FIELD",expr:this.continueArith(o)}}return{type:"FIELD",tableAlias:r.tableAlias,field:r.field}}parseWhereSqlValue(t=!0){let n=this.peek();if(t&&n.kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return be(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&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 T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!dA(l))throw new T("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let u=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:u,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(!fA(o))throw new T(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!EA(o))throw new T(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new T(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new T(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(hf(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:li[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new T("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}let t=this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");return this.peek().kind==="("&&this.capabilities.dialect1?{type:"IN_LIST",values:[this.finishVariableReference(t)]}:{type:"VARIABLE_IN_LIST",name:t.value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(be(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new T(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(be(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push(this.finishVariableReference(i));else if(i.kind==="LOGINUSER"){if(t.length>0)throw new T(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new T(r,this.peek())}else if(i.kind==="PRIMARY_ORGANIZATION"){let o="PRIMARY_ORGANIZATION() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";if(t.length>0)throw new T(o,i);if(this.expect("(","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"PRIMARY_ORGANIZATION"}),this.peek().kind===",")throw new T(o,this.peek())}else throw new T(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new T("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new T("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new T("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=id(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new T(Ft,this.peek());if(!this.isArithOp(this.peek().kind))return{type:"FIELD_NAME",name:ie(o.func,o.distinct,o.arg),aggregateRef:o};this.pos=i}if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=At(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let p=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:p,...c,...d}}this.expect("VALUES");let o=[];do{this.expect("(");let p=this.parseInsertRow(i.length,!0);this.expect(")"),o.push(p)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let u=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...u,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...u,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=At(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),d=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields:d,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length,!1)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...u,...p}}parseOnDuplicate(){if(this.capabilities.dialect1&&this.consumeSoftKeyword("KEY")){this.expect("(","KEY \u306E\u5F8C\u306B\u306F (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentList();if(this.expect(")"),n.length===0)throw new T("KEY \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return n}if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}parseMergeAsUpsert(){let t=this.advance();this.expect("INTO","MERGE \u306E\u5F8C\u306B\u306F INTO \u304C\u5FC5\u8981\u3067\u3059"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=At(n,this.prev());if(i)throw new T("MERGE \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("AS","MERGE \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseTableAliasName();this.expectSoftKeyword("USING","MERGE \u306B\u306F USING <source> AS alias \u304C\u5FC5\u8981\u3067\u3059");let a=this.pos,s=this.parseTableRef();if(!this.tokens.slice(a,this.pos).some(I=>I.kind==="AS")||s.alias===null)throw new T("MERGE \u306E USING \u30BD\u30FC\u30B9\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let u=s.alias;this.expect("ON","MERGE \u306B\u306F ON t.key = s.key \u306E\u5358\u4E00\u30AD\u30FC\u7B49\u5024\u304C\u5FC5\u8981\u3067\u3059");let p=this.parseMergeQualifiedField("MERGE \u306E ON \u5DE6\u8FBA\u306F targetAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(!this.consume("="))throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\uFF08t.key = s.key\uFF09\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u3084\u975E\u7B49\u5024\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let c=this.parseMergeQualifiedField("MERGE \u306E ON \u53F3\u8FBA\u306F sourceAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(p.alias.toLowerCase()!==o.toLowerCase()||c.alias.toLowerCase()!==u.toLowerCase())throw new T(`MERGE \u306E ON \u306F ${o}.key = ${u}.key \u306E\u5225\u540D\u4FEE\u98FE\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);if(this.peek().kind==="AND"||this.peek().kind==="OR")throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let d=null,f=null,E=null;for(;this.peek().kind==="WHEN";){let I=this.advance();if(this.consume("NOT")){if(this.expectSoftKeyword("MATCHED","WHEN NOT \u306E\u5F8C\u306B\u306F MATCHED \u304C\u5FC5\u8981\u3067\u3059"),f!==null)throw new T("WHEN NOT MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);if(this.expect("THEN","WHEN NOT MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("INSERT","WHEN NOT MATCHED THEN \u306E\u5F8C\u306B\u306F INSERT \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT \u306B\u306F\u5217\u30EA\u30B9\u30C8\u304C\u5FC5\u8981\u3067\u3059"),f=this.parseIdentList(),this.expect(")"),this.expect("VALUES","MERGE INSERT \u306E\u5217\u30EA\u30B9\u30C8\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT VALUES \u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),E=this.parseMergeValueList(),this.expect(")"),f.length!==E.length)throw new T("MERGE INSERT \u306E\u5217\u6570\u3068 VALUES \u306E\u5024\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",I)}else{if(this.expectSoftKeyword("MATCHED","WHEN \u306E\u5F8C\u306B\u306F MATCHED \u307E\u305F\u306F NOT MATCHED \u304C\u5FC5\u8981\u3067\u3059"),d!==null)throw new T("WHEN MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);this.expect("THEN","WHEN MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("UPDATE","WHEN MATCHED THEN \u306E\u5F8C\u306B\u306F UPDATE \u304C\u5FC5\u8981\u3067\u3059"),this.expect("SET","WHEN MATCHED THEN UPDATE \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059"),d=this.parseMergeAssignments(o)}}if(d===null||f===null||E===null)throw new T("WHEN MATCHED / WHEN NOT MATCHED \u306E\u4E21\u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u66F4\u65B0\u306E\u307F\u306F UPDATE ... FROM\u3001\u633F\u5165\u306E\u307F\u306F INSERT ... SELECT \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(!f.some(I=>I.toLowerCase()===p.field.toLowerCase()))throw new T(`MERGE \u306E ON \u30AD\u30FC ${p.field} \u306F INSERT \u5217\u30EA\u30B9\u30C8\u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044`,t);let R=new Map;f.forEach((I,b)=>R.set(I.toLowerCase(),E[b]));for(let I of d){let b=I.field.toLowerCase(),D=R.get(b);if(D!==void 0&&!this.mergeExpressionsEqual(D,I.value,u))throw new T(`MERGE \u306E\u5217 ${I.field} \u306F\u4E21\u53E5\u306E\u5F0F\u304C\u4E00\u81F4\u3059\u308B\u5834\u5408\u306E\u307F MERGE \u3092 UPSERT \u3078\u6B63\u898F\u5316\u3067\u304D\u307E\u3059`,t);D===void 0&&(f.push(I.field),E.push(I.value),R.set(b,I.value))}let m=E.map(I=>this.mergeValueToSelectColumn(I,u,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},A=this.parseCheckGroups(),h=this.parseDmlControlSuffix();return{type:"UPSERT_SELECT",appId:r,fields:f,select:g,keyFields:[p.field],...A,...h}}parseMergeQualifiedField(t){let n=this.peek(),r=this.parseFieldPath(),i=this.splitQualifiedField(r);if(i.alias===null)throw new T(t,n);return{alias:i.alias,field:i.field}}parseMergeAssignments(t){let n=[];do{let r=this.peek(),i=this.parseFieldPath(),o=this.splitQualifiedField(i);if(o.alias!==null&&o.alias.toLowerCase()!==t.toLowerCase())throw new T(`MERGE UPDATE SET \u306E\u5DE6\u8FBA\u306F target alias ${t} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);this.expect("="),n.push({field:o.field,value:this.parseAssignmentValue()})}while(this.consume(","));return n}parseMergeValueList(){let t=[];if(this.peek().kind===")")return t;do t.push(this.parseAssignmentValue());while(this.consume(","));return t}mergeExpressionsEqual(t,n,r){return this.mergeNormalizedValueEqual(this.normalizeMergeValue(t,r,!0),this.normalizeMergeValue(n,r,!0))}normalizeMergeValue(t,n,r=!1){if(Array.isArray(t))return t.map(o=>this.normalizeMergeValue(o,n,r));if(t===null||typeof t!="object")return t;let i=t;if(r&&i.type==="NUMBER")return{type:"NUMBER",value:i.value};if(i.type==="SOURCE_FIELD")return String(i.alias).toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{type:"FIELD_REF",field:i.field};if(i.type==="FIELD_REF"&&typeof i.field=="string"){let o=this.splitQualifiedField(i.field);return o.alias!==null&&o.alias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,field:o.field}}return i.type==="FIELD"&&typeof i.tableAlias=="string"?i.tableAlias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,tableAlias:null}:Object.fromEntries(Object.entries(i).map(([o,a])=>[o,this.normalizeMergeValue(a,n,r)]))}mergeNormalizedValueEqual(t,n){if(t===n)return!0;if(Array.isArray(t)||Array.isArray(n))return Array.isArray(t)&&Array.isArray(n)&&t.length===n.length&&t.every((s,l)=>this.mergeNormalizedValueEqual(s,n[l]));if(t===null||n===null||typeof t!="object"||typeof n!="object")return!1;let r=t,i=n,o=Object.keys(r),a=Object.keys(i);return o.length===a.length&&o.every(s=>Object.prototype.hasOwnProperty.call(i,s)&&this.mergeNormalizedValueEqual(r[s],i[s]))}mergeValueToSelectColumn(t,n,r){let i=this.normalizeMergeValue(t,n);if(this.mergeValueContainsInvalidSource(i))throw new T(`MERGE \u306E\u5F0F\u306F source alias ${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044`,r);let o=i;switch(o.type){case"FIELD_REF":return{type:"FIELD",field:String(o.field),alias:null};case"STRING":return{type:"LITERAL_COL",value:String(o.value),alias:null};case"NUMBER":return{type:"ARITH_COL",expr:o,alias:null};case"ARITH":return{type:"ARITH_COL",expr:o,alias:null};case"STRING_FUNC":return{type:"STRFUNC_COL",expr:o,alias:null};case"CASE_VALUE":return{type:"CASE_COL",expr:o.expr,alias:null};default:throw new T("MERGE \u306E\u4EE3\u5165\u5F0F\u306F\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9\u30FB\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u6587\u5B57\u5217\u95A2\u6570\u30FBCASE \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",r)}}mergeValueContainsInvalidSource(t){if(Array.isArray(t))return t.some(r=>this.mergeValueContainsInvalidSource(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="INVALID_SOURCE"||Object.values(n).some(r=>this.mergeValueContainsInvalidSource(r))}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t,n){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let i=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="IF"){let i=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let i=this.advance(),o=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");r.push(be(`${i.kind==="-"?"-":"+"}${o.value}`))}else{let i=this.advance();if(i.kind==="STRING")r.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")r.push(be(i.value));else if(n&&this.isDialect1AsOfCall(i))r.push(this.finishVariableReference(i));else{let o=this.isDialect1AsOfCall(i)?" INSERT ... VALUES \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u6587\u578B\u3067\u306F INSERT ... SELECT \u3067\u6CE8\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"";throw new T(`INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059${o}`,i)}}while(this.consume(","));if(r.length!==t)throw new T(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${r.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return r}isDialect1AsOfCall(t){return this.capabilities.dialect1===!0&&t.kind==="VARIABLE"&&oi(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}=At(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(d=>d.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let d=this.parseTableRef();if(d.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(d.cteName!==null&&!d.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!d.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(d.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:d.appId,cteName:d.cteName,alias:d.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let d=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=d.targetJoinField,o.joinKeyField=d.joinKeyField,o.targetFilter=d.targetFilter}else{if(i.some(d=>d.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(d=>d.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(d.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&u.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(p.validateOnly||p.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...u,...p}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...u,...p}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...u,...p}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length,!1)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T(Ft,this.peek())}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((p,c)=>{let d=this.matchUpdateFromJoin(p,n,r);d!==null&&a.push({index:c,...d})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let p=0;p<o.length;p++){if(p!==s.index&&this.nodeContainsQualifiedField(o[p],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(p!==s.index&&this.nodeContainsForeignQualifier(o[p],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let u=o.filter((p,c)=>c!==s.index).reduce((p,c)=>p===null?c:{type:"LOGICAL",op:"AND",left:p,right:c},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:u}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new T("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(hf(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=At(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=At(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw this.startsWithWindowFunction()?new T(Ft,t):new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}tryParseDigitPrefixedIdentifier(){let t=this.peek(),n=this.peekAt(1);return t.kind!=="NUMBER"||!/^\d+$/.test(t.value)||n.kind!=="IDENT"||n.pos!==t.pos+t.value.length?null:(this.advance(),this.advance(),t.value+n.value)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||Aa.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),t}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function yA(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 At(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}function fn(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 gA(e,t){return e<t?-1:e>t?1:0}function Sf(e){if(e==="")return{band:0};let t=we(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function hA(e,t){let n=Sf(e),r=Sf(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Lo(n.value,r.value):n.band===5&&r.band===5?fn(n.value,r.value):0}function Tf(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 AA(e,t,n){let r=Tf(e,n),i=Tf(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=fn(r.normalizedId,i.normalizedId);return o!==0?o:fn(r.display,i.display)}function SA(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 If(e,t){let n=t.optionOrder??new Map,i=[...new Set(SA(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(wf),i}function wf(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:fn(e.label,t.label)}function TA(e,t,n){let r=If(e,n),i=If(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=wf(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function ct(e,t,n){switch(n.compareMode){case"string":return fn(e,t);case"number":return hA(e,t);case"recordNumber":return AA(e,t,n.fieldType==="RECORD_NUMBER");case"option":return TA(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Gt(e,t,n,r=V("string")){let i=ct(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 bf(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=we(o),l=we(a),u=s!==null&&l!==null?Lo(s,l):gA(Number(o),Number(a));if(u!==0)return u}return fn(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function Ee(e,t,n={}){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="FIELD_REF")return Number(Be(t,e.field));if(e.type==="STRING_FUNC")return Number(Ae(e,t,void 0,void 0,n));let r=Ee(e.left,t,n),i=Ee(e.right,t,n);switch(e.op){case"+":return r+i;case"-":return r-i;case"*":return r*i;case"/":return i!==0?r/i:NaN;case"%":return i!==0?r%i:NaN}}function Le(e,t,n,r,i={}){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Be(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 Ae(e,t,n,r,i);case"CASE_WHEN":return He(e,t,n,r,i);case"CONCAT_OP":return Ae({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r,i);case"SCALAR_ARITH":{let o=Number(Le(e.left,t,n,r,i)),a=Number(Le(e.right,t,n,r,i));switch(e.op){case"+":return o+a;case"-":return o-a;case"*":return o*a;case"/":return a!==0?o/a:NaN;case"%":return a!==0?o%a:NaN}}}}function Kt(e,t,n,r,i={}){switch(e.type){case"CASE_WHEN":return Of(e,t,n,r,i);case"SCALAR_ARITH":{let o=Kt(e.left,t,n,r,i),a=Kt(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=Kt(e.left,t,n,r,i),a=Kt(e.right,t,n,r,i);return`${o??""}${a??""}`}default:return Le(e,t,n,r,i)}}function Sa(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 IA(e){return e>=55296&&e<=56319}function wA(e){return e>=56320&&e<=57343}function Ia(e,t){return t>0&&t<e.length&&IA(e.charCodeAt(t-1))&&wA(e.charCodeAt(t))}function Nf(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 eu(e,t){let n=Math.min(Math.max(0,t),e.length);return Ia(e,n)&&(n-=1),e.slice(0,n)}function bA(e,t){let n=Math.max(0,e.length-t);return Ia(e,n)&&(n+=1),e.slice(n)}function NA(e,t,n){let r=Nf(t,e.length),i=Nf(n,e.length);return i<=r?"":(Ia(e,r)&&(r+=1),Ia(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function CA(e,t){let n=e.repeat(Math.ceil(t/e.length));return eu(n,t)}var PA=200,ui=new Map;function OA(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 Zl(e,t,n=!1){let r=OA(t)+(n?"g":""),i=`${e}\0${r}`,o=ui.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(ui.size>=PA){let s=ui.keys().next().value;s!==void 0&&ui.delete(s)}return ui.set(i,a),a}function LA(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function _A(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 DA(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let p=Number(s+l);if(p>=1&&p<=n.length){i+=n[p-1]??"",o+=2;continue}}let u=Number(s);if(u>=1&&u<=n.length){i+=n[u-1]??"",o+=1;continue}}i+="$"}return i}function vA(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,u=a.length-(l?3:2),p=a.slice(0,u);return DA(n,o,p,l?s:void 0)})}function Ae(e,t,n,r,i={}){Ea(e.func,e.args);let o=e.args.map(a=>BA(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 NA(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?"":eu(a,s)}case"RIGHT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":bA(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 eu(a,s);let l=o[2]??" ";if(l==="")return a;let u=CA(l,s-a.length);return e.func==="LPAD"?u+a:a+u}case"GREATEST":case"LEAST":return bf(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 Zl(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{LA(o[2]);let a=_A(o[4]),s=Zl(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):vA(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return Zl(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((u,p)=>{l.has(u)||l.set(u,s[p])}),[...o[0]].map(u=>l.get(u)??u).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 Sa("round",Number(o[0]??"0"),Number(o[1]??"0"));case"FLOOR":return Sa("floor",Number(o[0]??"0"),Number(o[1]??"0"));case"CEIL":return Sa("ceil",Number(o[0]??"0"),Number(o[1]??"0"));case"TRUNCATE":return Sa("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 GA(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 Ta(o[0])?String(tu(o[0])+1):"";case"QUARTER":return Ta(o[0])?String(Math.ceil(Number(o[0].slice(5,7))/3)):"";case"WEEK":return Ta(o[0])?String(Pf(o[0])):"";case"DATE_FORMAT":return MA(o[0]??"",o[1]??"");case"DATEDIFF":return kA(o[0]??"",o[1]??"");case"DATE_ADD":return xA(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return FA(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"),u=String(a.getDate()).padStart(2,"0");return`${s}-${l}-${u}`}case"CURRENT_TIMESTAMP":return(i.statementInstant??new Date).toISOString()}}function ci(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 wa(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 Ta(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=wa(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 tu(e){return wa(e).getUTCDay()}function Cf(e){let t=wa(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function UA(e){return Cf(e).getUTCFullYear()}function Pf(e){let t=Cf(e),n=t.getUTCFullYear(),r=wa(`${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 MA(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=ci(e),l=Ta(e);return t.replace(/%[YymcdeHiswavG]/g,u=>{switch(u){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(tu(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][tu(e)]:"";case"%v":return l?String(Pf(e)).padStart(2,"0"):"";case"%G":return l?String(UA(e)).padStart(4,"0"):"";default:return u}})}function kA(e,t){if(e.length<10||t.length<10)return"0";let n=ci(e),r=ci(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 xA(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}=ci(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=c=>{let d=a.getUTCDate();a.setUTCDate(1),c();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(d,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),u=String(a.getUTCMonth()+1).padStart(2,"0"),p=String(a.getUTCDate()).padStart(2,"0");return`${l}-${u}-${p}`}function FA(e){if(!e||e.length<10)return e;let{y:t,mo:n}=ci(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 GA(e,t){if(/^-?\d+$/.test(t.trim()))return KA(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,u=s+l,p=i.toFixed(u),[c,d=""]=p.split(".");l>0&&(d=d.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=d?`${f}.${d}`:f;return n?E+"%":E}function KA(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 BA(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(pi(e,t)):e.type==="NUMBER"?q(e):String(Le(e,t,n,r,i))}function pi(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[ie(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Be(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(pi(e.left,t)),r=Number(pi(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 Be(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}var $A=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]),WA=new Set(["COALESCE","ISNULL","NULLIF","GREATEST","LEAST"]);function nu(e){return e==="number"||e==="string"?e:e?.compareMode==="number"||e?.compareMode==="recordNumber"?"number":"string"}function VA(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 HA(e,t){return e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN"?"number":e.func==="GROUP_CONCAT"||e.arg.type==="WILDCARD"?"string":di(e.arg,t)}function St(e,t){if(e.func==="CAST"){let n=e.args[1];return n?.type==="STRING"&&n.value==="NUMBER"?"number":"string"}return $A.has(e.func)||WA.has(e.func)&&e.args.length>0&&e.args.every(n=>di(n,t)==="number")?"number":"string"}function di(e,t){if(e===null||typeof e!="object")return"string";let n=e;switch(n.type){case"NUMBER":case"ARITH":case"SCALAR_ARITH":case"AGG_ARITH":return"number";case"STRING_FUNC":return St(e,t);case"AGG_REF":return HA(e,t);case"FIELD":return nu(t?.(e));case"FIELD_REF":return nu(t?.(VA(n.field)));case"AGG_GROUP_KEY":return nu(t?.({type:"FIELD",tableAlias:typeof n.tableAlias=="string"?n.tableAlias:null,field:n.field}));case"CASE_WHEN":{let r=n.branches,i=n.elseResult,o=[...r.map(a=>a.result),...i==null?[]:[i]];return o.length>0&&o.every(a=>di(a,t)==="number")?"number":"string"}default:return"string"}}function ue(e,t,n,r,i,o={}){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return YA(e,t,n,r,i,o);case"NULL_CHECK":return QA(e,t);case"LOGICAL":return ZA(e,t,n,r,i,o);case"NOT":return!ue(e.expr,t,n,r,i,o);case"GROUP":return ue(e.expr,t,n,r,i,o);case"EXISTS":{let a=e.resolved;return e.not?!a:a}}}function YA(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=kf(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=zA(e.left,s,i);return jA(e.op,a,e.right,t,s,n,l,i,o)}function jA(e,t,n,r,i,o,a=V("string"),s,l={}){if(e==="IN"||e==="NOT_IN"){let p=null;if(n.type==="IN_LIST"&&(XA(n.values),p=new Set(n.values.map(d=>d.type==="NUMBER"?i==="NUMBER"?q(d):String(d.value):d.value))),n.type==="SUBQUERY_IN_LIST"&&(p=n.resolved),p===null)return e==="NOT_IN";let c=JA(t,p,i);return e==="IN"?c:!c}if(e==="LIKE"){let p=ru(n,r,o,void 0,l);return Mf(t,p)}if(e==="NOT_LIKE"){let p=ru(n,r,o,void 0,l);return!Mf(t,p)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let u=ru(n,r,o,s,l);return Gt(e,t,u,a)}function zA(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?ne({fieldType:t}):V("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return V("number");if(e.type==="FUNC_FIELD")return V(St(e.expr,r=>n?.(r)));if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return V("number");if(o.type==="STRING_FUNC")return V(St(o,a=>n?.(a)));if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??V("string")}return V("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?V("number"):V("string")}var Lf=new Set(["CHECK_BOX","MULTI_SELECT"]),_f=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),qA=new Set(["CREATOR","MODIFIER"]);function JA(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=V("number");return[...t].some(a=>Gt("=",e,a,o))}let i;if(Lf.has(n)||_f.has(n)||qA.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Lf.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):_f.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 XA(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let n=e.find(r=>r.type==="KINTONE_FUNC");if(n?.type==="KINTONE_FUNC")throw new Error(`${n.name}: ${vt}`)}function QA(e,t){let n=kf(e.field,t);return e.not?n!=="":n===""}function ZA(e,t,n,r,i,o={}){return e.op==="AND"?ue(e.left,t,n,r,i,o)&&ue(e.right,t,n,r,i,o):ue(e.left,t,n,r,i,o)||ue(e.right,t,n,r,i,o)}function kf(e,t,n,r,i={}){if(e.type==="FUNC_FIELD")return Ae(e.expr,t,void 0,void 0,i);if(e.type==="AGG_FIELD")return String(pi(e.expr,t));if(e.type==="ARITH_FIELD")return String(Ee(e.expr,t,i));if(e.type==="CASE_FIELD")return He(e.expr,t,n,r,i);if(e.type==="GROUPING_FIELD")return bn(e.ref,t);if(e.aggregateRef){let a=e.aggregateRef;return Be(t,ie(a.func,a.distinct,a.arg))}let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Be(t,o)}function ru(e,t,n,r,i={}){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return q(e);case"KINTONE_FUNC":return eS(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"?Be(t,e.expr.field):e.expr.type==="STRING_FUNC"?Ae(e.expr,t,void 0,void 0,i):String(Ee(e.expr,t,i));case"CASE_VALUE":return He(e.expr,t,n,r,i);case"ARRAY":return e.elements.map(o=>o.value).join(",")}}function He(e,t,n,r,i={}){for(let o of e.branches)if(ue(o.condition,t,n,void 0,r,i))return Uf(o.result,t,n,r,i);return e.elseResult!==null?Uf(e.elseResult,t,n,r,i):""}function Of(e,t,n,r,i={}){for(let o of e.branches)if(ue(o.condition,t,n,void 0,r,i))return vf(o.result,t,n,r,i);return e.elseResult===null?null:vf(e.elseResult,t,n,r,i)}function vf(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[ie(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[ht(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?Ee(e,t,i):Kt(e,t,n,r,i)}function Uf(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[ie(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[ht(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(Ee(e,t,i)):String(Le(e,t,n,r,i))}function xf(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 eS(e){throw re(e)?new Error(`${e}: ${In}`):Zn(e)?new Error(`${e}: ${vt}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var ba=new Map,tS=200;function Mf(e,t){if(!hd(t))return e.includes(t);let n=ba.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"),ba.size>=tS&&ba.clear(),ba.set(t,n)}return n.test(e)}function Er(e){return Gf(e)}function Ff(e){return Gf(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Gf(e){let t=[],n=new Set,r=o=>{if(Array.isArray(o)){o.forEach(r);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="EXISTS"||a.type==="SUBQUERY_IN_LIST"||a.type==="SCALAR_SUBQUERY")throw _e("CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(a.type==="FIELD"&&typeof a.field=="string")i(typeof a.tableAlias=="string"?a.tableAlias:null,a.field);else if(a.type==="FIELD_REF"&&typeof a.field=="string"){let s=a.field.indexOf(".");i(s>0?a.field.slice(0,s):null,s>0?a.field.slice(s+1):a.field)}for(let s of Object.values(a))r(s)},i=(o,a)=>{if(/^(COUNT|SUM|AVG|MIN|MAX|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(a))throw _e("CHECK \u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");let s=`${o??""}\0${a}`;n.has(s)||(n.add(s),t.push({tableAlias:o,field:a}))};return r(e),t}function _e(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function Na(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ue(a.condition,t,n))continue;let s=Le(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function iu(e){if(tn(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 nS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),rS=new Set(["CHECK_BOX","MULTI_SELECT"]);function Oa(e,t=new Map,n={}){let r=e.values.map(i=>iS(e.fields,i,t,n));return mi(r,100).map(i=>({app:e.appId,records:i}))}function iS(e,t,n,r){let i={};return e.forEach((o,a)=>{let s=t[a];s.type==="CASE_VALUE"?i[o]={value:Bt(s.expr,{},n.get(o),r)}:i[o]={value:Tt(s,n.get(o))}}),i}function Ei(e){iu(e.where);let t=Qf(e);return{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function Ri(e,t,n=new Map){let r=oS(e.assignments,n);return mi(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function oS(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:Tt(i,t.get(r))});return n}function Wf(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 La(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 ou(e){iu(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Vf(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Rr(n,t):n.type==="STRING_FUNC"?au(n,t):n.type==="CASE_VALUE"&&Hf(n.expr,t);return Qf(e).forEach(n=>t.add(n)),{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function Vf(e,t){fi(e.left,t),fi(e.right,t)}function fi(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"?Vf(e,t):e.type==="STRING_FUNC"&&au(e,t)}function au(e,t){for(let n of e.args)aS(n,t)}function aS(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Pa(e,t);return}Rr(e,t)}function Rr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){au(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Rr(e.left,t),Rr(e.right,t);return}e.type==="CASE_WHEN"&&Hf(e,t)}function Pa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&sS(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 sS(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?fi(e,t):Rr(e,t)}function Kf(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"){fi(e,t);return}Rr(e,t)}}function Hf(e,t){for(let n of e.branches)Ca(n.condition,t),Kf(n.result,t);e.elseResult!==null&&Kf(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"&&fi(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 su(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=Yf(o),l={};for(let{field:u,value:p}of e.assignments)l[u]={value:lu(p,s,n.get(u),o,r)};return{id:a,record:l}});return mi(i,100).map(o=>({app:e.appId,records:o}))}function lu(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?cu(e,r):Ee(e,t,i));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Le(e,t,void 0,void 0,i));if(e.type==="STRING_FUNC")return Ae(e,t,void 0,void 0,i);if(e.type==="CASE_VALUE")return Bt(e.expr,t,n,i);if(e.type==="SOURCE_FIELD")throw new ae("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Tt(e,n)}function _a(e,t,n,r={}){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return q(e);if(e.type==="ARITH")return String(Ee(e,t,r));if(e.type==="CASE_VALUE")return He(e.expr,t,n,void 0,r);throw new Error(`${e.type} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}var lS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function uu(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=Yf(o),u={};for(let{field:p,value:c}of e.assignments){let d=n.get(p);if(c.type==="SOURCE_FIELD"){if(lS.has(d??""))throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${d} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${p}\uFF09`);if(!Object.prototype.hasOwnProperty.call(a,c.field))throw new ae(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${c.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let f=a[c.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: ${c.field}\uFF09`);if((d==="NUMBER"||d==="CALC")&&f!==""&&!Number.isFinite(Number(f)))throw new ae(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${f}`);u[p]={value:Tt({type:"STRING",value:f},d)}}else{if(c.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");c.type==="ARITH"?u[p]={value:String(cu(c,o))}:c.type==="SCALAR_ARITH"||c.type==="CONCAT_OP"?u[p]={value:String(Le(c,l,void 0,void 0,r))}:c.type==="CASE_VALUE"?u[p]={value:Bt(c.expr,l,d,r)}:u[p]={value:Tt(c,d)}}}return{id:s,record:u}});return mi(i,100).map(o=>({app:e.appId,records:o}))}function Yf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function cu(e,t){let n=Bf(e.left,t),r=Bf(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 Bf(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 cu(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 jf(e){return iu(e.where),{app:e.appId,query:z(e.where),fields:["$id"],totalCount:!1}}function zf(e,t){return mi(t,100).map(n=>({app:e,ids:n}))}function qf(e){return nS.has(e??"")}function uS(e){return rS.has(e??"")}function cS(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 pS(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function Jf(e,t){return qf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):uS(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?cS(e):t==="DATE"?pS(e):e}function Xf(e,t){return qf(t)?e.map(n=>({code:n})):e}function $f(e,t,n,r){if(e.type==="ARRAY")return Xf(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"?Jf(e.value,n):e.type==="STRING_FUNC"?Ae(e,t,void 0,void 0,r):e.type==="FIELD_REF"||e.type==="ARITH"?String(Ee(e,t,r)):String(Le(e,t,void 0,void 0,r))}function Qf(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Er(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Bt(e,t,n,r={}){for(let i of e.branches)if(ue(i.condition,t,void 0,void 0,void 0,r))return $f(i.result,t,n,r);return e.elseResult!==null?$f(e.elseResult,t,n,r):""}function Tt(e,t){let n=pu(e,t);if(!n.ok)throw new ae(n.message);return n.value}function pu(e,t){try{return{ok:!0,value:dS(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function dS(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 Jf(e.value,t);case"NUMBER":return q(e);case"ARRAY":return Xf(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 mi(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 du=new Set(["CHECK_BOX","MULTI_SELECT"]),fS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function yi(e){throw new Error(`ArgumentError: ${e}`)}function Zf(e,t,n){let r=ES(n.fieldType,e.field),i=RS(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)&&yi(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let u=i.filter(y=>!l.has(y)),p=a.filter(y=>!o.has(y)),c=[...u,...p],d=new Set(i.filter(y=>l.has(y))).size,f=new Set,E=new Set,R=e.operations.map(y=>{let g=y.kind==="ADD"?f:E,A=!g.has(y.value);return g.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&A&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=du.has(r)?c:c.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:R,postImageValue:m,addedValues:p.length,removedValues:d,changedValues:p.length+d}}function ES(e,t){return du.has(e)||fS.has(e)?e:yi(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function RS(e,t,n){if(!Array.isArray(e))return yi(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>du.has(t)?typeof i!="string"?yi(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?yi(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function X(e){throw new Error(`ArgumentError: ${e}`)}function Ru(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?X("APPLY parent selector must be a single positive $id."):t.right.value}function $t(e,t){let n=e.applyBlocks;if(!n?.length)return X("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)fu(s.field,null,r),mS(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&X(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(c=>c.field===s.field)&&X(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(c=>c.code===s.field&&!c.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?X(`APPLY target ${s.field} is not a SUBTABLE.`):X(`APPLY target ${s.field} does not exist as a top-level field.`);if(md(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&X(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let u=l,p=new Map(t.filter(c=>c.inSubtable&&c.subtableCode===s.field).map(c=>[c.code,c]));i.set(s.field,u),a.set(s.field,p);for(let c of s.operations)if(c.kind==="PATCH"){for(let d of c.assignments)fu(d.field,s.field,r,p),Eu(d.value,s.field,r,p);c.selector.kind==="WHERE"&&Eu(c.selector.where,s.field,r,p)}else if(c.kind==="APPEND"){let d=new Set;for(let f of c.fields)d.has(f)&&X(`APPLY APPEND specifies child ${f} more than once.`),d.add(f),fu(f,s.field,r,p)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&Eu(c.selector.where,s.field,r,p)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function mS(e,t){gi(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&X(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&X(`APPLY parent FILE reference ${n} is not supported.`)})}function fu(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&X(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);t!==null&&o?.inSubtable&&X(`APPLY child ${e} does not belong to subtable ${t}.`),X(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&X(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Eu(e,t,n,r){gi(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&X(`APPLY child reference ${i} does not belong to subtable ${t}.`),X(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function Da(e,t){let n=$t(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)gi(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function va(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=oE(i?.value);return n}function tE(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??$t(t,r),o=gu(n.$id?.value,"APPLY snapshot $id"),a=Ru(t);return o!==a&&X(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),rE(t,n,i,o,e.evaluationContext)}function nE(e,t,n,r=$t(e,n),i={}){let o=new Set;return t.map(a=>{let s=gu(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&X(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),rE(e,a,r,s,i)})}function rE(e,t,n,r,i={}){let o=gu(t.$revision?.value,"APPLY snapshot $revision"),a=[],s=[];for(let c of e.applyBlocks){if(c.targetKind==="MULTI_VALUE"){let x=n.targetMultiValueFields.get(c.field);x||X(`APPLY multi-value metadata for ${c.field} is missing.`),s.push(Zf(c,t[c.field]?.value,x));continue}let d=n.childrenByTable.get(c.field),f=TS(t,c.field),E=new Set;for(let x of f)x.id||X(`APPLY snapshot for ${c.field} contains a row without _rid.`),E.has(x.id)&&X(`APPLY snapshot for ${c.field} contains duplicate _rid ${x.id}.`),E.add(x.id);let R=x=>x.field==="_rid"?"SINGLE_LINE_TEXT":x.field==="_idx"?"NUMBER":d.get(x.field)?.fieldType,m=[],y=[],g=[],A=new Set,h=new Set,I=new Set,b=c.operations.some(x=>x.kind==="REMOVE");for(let[x,O]of c.operations.entries()){if(O.kind==="APPEND"){let N=mu(O,d,c.field,i);g.push({kind:"APPEND",addedRows:N.length}),y.push(...N);continue}if(O.kind==="REMOVE"){let N=hS(O,f,R,c.field,i);O.expectRows&&eE(O.expectRows,N.length,r,c.field,x,O.kind),g.push({kind:"REMOVE",removedRows:N.length});for(let P of N){let S=f[P].id;h.has(P)&&X(`APPLY row ${S} is selected by both PATCH and REMOVE.`),I.has(P)&&X(`APPLY removes row ${S} more than once.`),I.add(P)}continue}if(O.kind!=="PATCH")continue;let _=gS(O,f,R,c.field,i);O.expectRows&&eE(O.expectRows,_.length,r,c.field,x,O.kind),g.push({kind:"PATCH",matchedRows:_.length,changedRows:_.length});for(let N of _){let P=f[N];I.has(N)&&X(`APPLY row ${P.id} is selected by both PATCH and REMOVE.`),h.add(N);let S=va(P,N);for(let w of O.assignments){let L=`${P.id}\0${w.field}`;A.has(L)&&X(`APPLY patches cell ${P.id}.${w.field} more than once.`),A.add(L),m.push({rowIndex:N,field:w.field,value:_a(w.value,S,R,i)})}}}let D=new Map;for(let x of m){let O=D.get(x.rowIndex)??{};O[x.field]={value:x.value},D.set(x.rowIndex,O)}let M=[...f.flatMap((x,O)=>I.has(O)?[]:[{id:x.id,value:{...x.value,...D.get(O)??{}}}]),...y],v={table:c.field,operations:g,changedSubtableRows:D.size+I.size+y.length,deletedRows:I.size,snapshotRowIds:f.map(x=>x.id),postImageRows:M};b?a.push({...v,payloadShape:"FULL_SURVIVORS",removedRowIds:f.flatMap((x,O)=>I.has(O)?[x.id]:[]),payloadRows:M.map(x=>({...x.id===void 0?{}:{id:x.id},value:x.value}))}):a.push({...v,payloadShape:"PATCH_ONLY",payloadRows:[...f.map((x,O)=>{let _=D.get(O);return _?{id:x.id,value:_}:{id:x.id}}),...y.map(x=>({value:x.value}))]})}let l=IS(t),u={};for(let c of e.assignments){let d=n.fieldsByCode.get(c.field)?.fieldType;u[c.field]={value:lu(c.value,l,d,t,i)}}let p={...t};Object.assign(p,u);for(let c of a)p[c.table]={value:c.postImageRows};for(let c of s)p[c.field]={value:c.postImageValue};return{app:e.appId,parentId:r,revision:o,parentRows:1,changedSubtableRows:a.reduce((c,d)=>c+d.changedSubtableRows,0),parentValues:u,postImage:p,tables:a,multiValues:s}}function eE(e,t,n,r,i,o){if(e.kind==="EXACT"?t===e.count:e.kind==="BETWEEN"?t>=e.min&&t<=e.max:e.kind==="AT_LEAST"?t>=e.count:t<=e.count)return;let s=e.kind==="EXACT"?`exactly ${e.count}`:e.kind==="BETWEEN"?`between ${e.min} and ${e.max}`:e.kind==="AT_LEAST"?`at least ${e.count}`:`at most ${e.count}`;X(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function Ua(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return X(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,u)=>{let p=a[u];return p?.value?l.id===void 0?{value:p.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,p.value[c]]))}:X(`APPLY normalized post-image for ${o.table} row ${u+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:X(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function mu(e,t,n,r={}){return e.values.map(i=>({value:yS(e,i,t,n,r)}))}function yS(e,t,n,r,i){if(t.length!==e.fields.length)return X(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let o=new Map(e.fields.map((s,l)=>[s,t[l]])),a={};for(let s of n.values()){if(s.fieldType==="FILE"||s.writable===!1)continue;let l=o.get(s.code);a[s.code]={value:l===void 0?yu(s):l.type==="CASE_VALUE"?Bt(l.expr,{},s.fieldType,i):Tt(l,s.fieldType)}}return a}function yu(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 gS(e,t,n,r,i={}){return iE(e.selector,t,n,r,i)}function hS(e,t,n,r,i={}){return iE(e.selector,t,n,r,i)}function iE(e,t,n,r,i={}){if(e.kind==="ALL_ROWS")return t.map((u,p)=>p);let o=e.where,a=t.flatMap((u,p)=>ue(o,va(u,p),n,void 0,void 0,i)?[p]:[]),s=AS(o);s!==null&&a.length===0&&X(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=SS(o);return l!==null&&a.length===0&&X(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function AS(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 SS(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 TS(e,t){let n=e[t]?.value;return Array.isArray(n)?n.map(r=>{let i=r;return{id:typeof i.id=="string"?i.id:"",value:i.value&&typeof i.value=="object"?i.value:{}}}):X(`APPLY snapshot field ${t} is not a subtable value.`)}function gu(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&X(`${t} must be a positive integer.`),n}function IS(e){let t={};for(let[n,r]of Object.entries(e))t[n]=oE(r?.value);return t}function oE(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 gi(e,t){if(Array.isArray(e)){e.forEach(r=>gi(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))gi(r,t)}function Re(e){throw new Error(`ArgumentError: ${e}`)}function ka(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?Re("APPLY snapshot $revision must be a positive integer."):t}function hi(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return Re("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return Re("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&Re(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&Re(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&Re(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),wS(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function aE(e){if(e.records.length===0)return[];let t=e.plans[0]?.app;if(!Number.isSafeInteger(t)||t<=0||e.plans.length!==e.records.length)return Re("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function wS(e){let t=hu(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(p=>p.id===void 0?[]:[p.id]);for(let p of e.payloadRows)p.id===void 0&&p.value===void 0&&Re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(hu(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(d=>d.kind==="REMOVE")&&Re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let p=e.payloadRows.slice(0,t.length).map(d=>d.id??"");Ma(t,p,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(d=>d.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(d=>d.id??"");Ma(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(d=>d.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(p=>p.kind==="REMOVE")||Re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=hu(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&Re(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&Re(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(p=>p.id===void 0?[]:[p.id]),o=new Set(r),a=new Set(i);for(let p of r)a.has(p)&&Re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${p}.`);let s=t.filter(p=>!o.has(p));Ma(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(p=>p.id??"");Ma(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(p=>p.id!==void 0)||e.postImageRows.slice(i.length).some(p=>p.id!==void 0))&&Re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(p=>p.value===void 0)&&Re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((p,c)=>!Au(p.value,e.postImageRows[c]?.value))&&Re(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let u=new Set([...i,...r]);(u.size!==t.length||t.some(p=>!u.has(p)))&&Re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function hu(e,t){let n=[...e],r=new Set;for(let i of n)i||Re(`APPLY ${t} contains an empty row id.`),r.has(i)&&Re(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function Ma(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&Re(n)}function Au(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)=>Au(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)&&Au(n[a],r[a]))}function sE(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 lE(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=sE(t.digits,"digits",1,30),r=sE(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 uE(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 bS=new Set(["CHECK_BOX","MULTI_SELECT"]),NS=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function Ye(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=CS(e);if(i!==""&&!PS(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=Ai(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:OS(t.fieldType),message:o}}if(t.required&&xa(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!xa(r)&&t.fieldType==="NUMBER"){let i=String(r),o=we(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&_o(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&&_o(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}=uE(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(!xa(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!On(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!xa(r)&&NS.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 CS(e){return e==null?"":Fa(e)&&e.type==="NUMBER"?q(e):Fa(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function PS(e,t){if(t==="DATE")return On(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return On(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)?On(n.slice(0,10),"DATE")&&On(n.slice(11),"TIME"):On(n,"DATETIME")}function Ai(e,t){if(Fa(e)){let r=pu(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(bS.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 Fa(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Ln(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Fa(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function xa(e){return e===""||Array.isArray(e)&&e.length===0}function OS(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function On(e,t){if(t==="TIME"){let u=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return u!==null&&Number(u[1])<=23&&Number(u[2])<=59&&Number(u[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)&&On(l,"TIME")}var mr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Su(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(p=>typeof p=="object"&&p!==null&&"code"in p),u=a;try{u=Ai(a,s)}catch{}i.record[o]={value:l?a:u}}}}function Tu(e,t,n,r,i,o,a,s=[],l=!0,u=!0,p={}){let c=new Map(i.map(m=>[m.code,m])),d=[],f=new Set,E=[];p.validateUpdateBuiltIns===!1&&Su(e,r,i);let R;for(let m of e){m.record??={};let y=u?[...m.preErrors]:[],g=[],A=[],h=m.mode==="create"||p.validateUpdateBuiltIns!==!1;for(let C of r){if(!m.payload.has(C))continue;let M=m.payload.get(C),v=c.get(C).fieldType,x=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(v)&&Array.isArray(M)&&M.every(_=>typeof _=="object"&&_!==null&&"code"in _);if(!h)continue;let O=Ye(M,c.get(C),a);O.ok?m.record[C]={value:x?M:O.value}:g.push({field:C,code:O.code,message:O.message})}if(l&&m.mode==="create")for(let C of i){if(C.inSubtable||m.payload.has(C.code))continue;if(Ln(C.defaultValue)){let v=Ye("",C,a);v.ok?C.required&&g.push({field:C.code,code:"ERR_REQUIRED",message:`${C.code} \u306F\u5FC5\u9808\u3067\u3059`}):g.push({field:C.code,code:v.code,message:v.message})}else{let v=Ye(C.defaultValue,C,a);v.ok||g.push({field:C.code,code:v.code,message:`\u65E2\u5B9A\u5024: ${v.message}`})}}if(s.length>0){let C=m.evaluationRow??Object.fromEntries([...m.payload].map(([x,O])=>[x,It(O)])),M=m.evaluationFieldTypes,v=x=>{let O=x.tableAlias?`${x.tableAlias}.${x.field}`:x.field;return M?.get(O)??M?.get(x.field)};try{for(let x of Na(s,C,v))A.push({field:"",code:"ERR_CHECK",message:x.message})}catch(x){R??=x}}let I=C=>C.map(M=>{let v={};for(let x of n)v[x]=It(m.payload.get(x));return v.$err_statement=String(o),v.$err_operation=t,v.$err_row=String(m.rowNumber),v.$err_field=M.field,v.$err_code=M.code,v.$err_message=M.message,v.$err_value="",v.$err_subtable="",v.$err_subrow="",v.$err_subrow_id="",v}),b={rowNumber:m.rowNumber,preErrors:I(y),builtInErrors:I(g),checkErrors:I(A)};E.push(b);let D=[...b.preErrors,...b.builtInErrors,...b.checkErrors];D.length>0&&f.add(m.rowNumber),d.push(...D)}if(R!==void 0)throw R;return{errors:d,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function It(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 Iu=["required","length","range","choice"];function wu(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 bu(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 LS(e){return wu(e).length>0}function _S(e){return e.fieldType==="NUMBER"||LS(e)}function Ga(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Nu(e,t){let{topByCode:n,childrenByTable:r}=bu(t),i=_S;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,u)=>{let p=u?`${u}\0${l.code}`:l.code;if(a.has(p))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(p),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...u?{subtableCode:u}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let c=r.get(l.subtableCode);if(!c)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let d of l.children){let f=c.find(E=>E.code===d);if(!f){let E=[...r.entries()].some(([R,m])=>R!==l.subtableCode&&m.some(y=>y.code===d));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let u=l.field;if(u==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let p=n.get(u);if(p?.fieldType==="SUBTABLE"){let c=(r.get(u)??[]).filter(i);if(c.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${u} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);c.forEach(d=>s(d,u));continue}if(p){s(p);continue}throw[...r.values()].some(c=>c.some(d=>d.code===u))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${u}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${u} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function Si(e,t){return Ln(e)?"":It(Ai(e,t))}var DS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Ti=mr;function wt(e,t=["$id"]){let n=bu(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!DS.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 _n(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 Dn(e,t,n,r,i=1,o="UPDATE"){let a=vS(e),s=[],l=new Set,u=[...t.payloadFields,...Ti],p=It(e.$id?.value),c=(d,f,E,R)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?p:It(e[y]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=d.code,m.$err_code=E.code,m.$err_message=E.message,m.$err_value=Si(f,d.fieldType),m.$err_subtable=R?.subtable??"",m.$err_subrow=R?String(R.subrow):"",m.$err_subrow_id=R?.subrowId??"",s.push(m)};for(let d of t.topLevel){let f=e[d.code]?.value,E=Ye(f,d,n);E.ok?a[d.code]={value:cE(f,d.fieldType,E.value)}:c(d,f,E)}for(let[d,f]of t.subtables){let E=e[d]?.value;if(!Array.isArray(E))continue;let R=a[d]?.value;for(let m=0;m<E.length;m++){let y=E[m],g=R[m];for(let A of f){let h=y.value?.[A.code]?.value,I=Ye(h,A,n);I.ok?(g.value??={},g.value[A.code]={value:cE(h,A.fieldType,I.value)}):c(A,h,I,Ga(d,m,y))}}}return{normalizedRecord:a,errors:s,columns:u,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function cE(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 vS(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 Ka(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;pE(o,"dmlMaxRows"),pE(a,"dmlMaxSubtableRows");for(let A of n)ka(A);let l=nE(t,n,r,i),u=wt(r,t.assignments.map(A=>A.field)),p=l.some(A=>_n(A.postImage,u));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,d=l.map((A,h)=>Dn(A.postImage,u,c,s,e.parentRowNumbers?.[h]??h+1));if(!t.validateOnly){let A=d.flatMap(h=>h.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:A})}`)}let f=l.length,E=l.reduce((A,h)=>A+h.changedSubtableRows,0),R=f>o||E>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((A,h)=>Ua(A,d[h].normalizedRecord)),y=m.flatMap(A=>hi(A).records),g=d.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return dE({plans:m,records:y,validations:g,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:R}})}function pE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function dE(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))dE(n,t);return Object.freeze(e)}var Cu=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Ba(e,t){if(new Set(e.fields).size!==e.fields.length)return bt("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)fE(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return bt(`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 bt(`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 bt(`APPLY INSERT supports APPEND only (${l.kind}).`);let u=new Set;for(let p of l.fields){if(u.has(p))return bt(`APPLY APPEND specifies child ${p} more than once.`);u.add(p),fE(p,o.field,n,s)}for(let p of l.values)if(p.length!==l.fields.length)return bt(`APPLY APPEND for ${o.field} has ${p.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function US(e,t,n=Ba(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Oa(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),u=s.operations.flatMap(p=>mu(p,l,s.field));return{table:s.field,rows:u,addedRows:u.length}});return o.map((s,l)=>{let u={};for(let c of t)c.inSubtable||c.fieldType==="SUBTABLE"||c.fieldType==="FILE"||c.writable===!1||Cu.has(c.fieldType)||(u[c.code]=s[c.code]??{value:yu(c)});let p={...s};for(let c of a){let d=c.rows.map(f=>({value:f.value}));u[c.table]={value:d},p[c.table]={value:d}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:u,record:p}})}async function Ii(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;EE(r,"dmlMaxRows"),EE(i,"dmlMaxSubtableRows");let a=e.metadata??Ba(t,n),s=US(t,n,a,e.parentRowNumbers),l=n.filter(h=>h.fieldType==="SUBTABLE"||h.fieldType!=="FILE"&&h.writable!==!1&&!Cu.has(h.fieldType)),u=wt(l,t.fields),p=s.some(h=>_n(h.postImage,u));if(p&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=p?await e.loadNumberPrecision():void 0,d=s.map(h=>Dn(h.postImage,u,c,o,h.parentRowNumber,"INSERT"));if(!t.validateOnly){let h=d.flatMap(I=>I.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d[0]?.columns??[],errors:h})}`)}let f=s.length,E=s.reduce((h,I)=>h+I.tables.reduce((b,D)=>b+D.addedRows,0),0),R=f>r||E>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((h,I)=>{let b=d[I].normalizedRecord,D={};for(let C of t.fields)D[C]=b[C];for(let C of h.tables){let M=b[C.table]?.value;D[C.table]={value:C.rows.map((v,x)=>({value:Object.fromEntries(Object.keys(v.value).map(O=>[O,M[x]?.value?.[O]??v.value[O]]))}))}}return{...h,postImage:b,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 A=d.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return RE({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:g,validations:A,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:R}})}function fE(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return bt(`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?bt(`APPLY child ${e} does not belong to subtable ${t}.`):bt(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Cu.has(i.fieldType))return bt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function EE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function bt(e){throw new Error(`ArgumentError: ${e}`)}function RE(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))RE(n,t);return Object.freeze(e)}async function yE(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;mE(i,"dmlMaxRows"),mE(o,"dmlMaxSubtableRows"),GS(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),u=MS(t,s.map(y=>y.sourceRowIndex)),p=await Ii({statement:u,fieldInfos:r,metadata:Ba(u,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],d=new Set;for(let y of l){let g=y.targetId;d.has(g)&&Pu(`UPSERT APPLY resolves more than one source row to parent $id ${g}.`),d.add(g),y.snapshot||Pu(`UPSERT APPLY snapshot for parent $id ${g} is missing.`);let A=Number(y.snapshot.$id?.value);A!==g&&Pu(`UPSERT APPLY snapshot $id ${A} does not match target $id ${g}.`);let h=kS(t,y.sourceRowIndex,g),I=h.applyBlocks?.length?$t(h,r):xS(r);c.push(await Ka({statement:h,snapshots:[y.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=FS(c,i,o),E=p.guards.parentRows+f.guards.parentRows,R=p.guards.subtableRows+f.guards.subtableRows,m=E>i||R>o;if(!t.validateOnly){let y=[...p.validations.flatMap(g=>g.errors),...f.validations.flatMap(g=>g.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&R>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${o}).`);return Ou({create:p,update:f,createBatches:p.batches,updateBatches:KS(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:R,dmlMaxSubtableRows:o,wouldExceed:m,create:p.guards,update:f.guards}})}function MS(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function kS(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 xS(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function FS(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 Ou({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 GS(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 KS(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 mE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Pu(e){throw new Error(`ArgumentError: ${e}`)}function Ou(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))Ou(n,t);return Object.freeze(e)}function bi(e){return yr("UPDATE",[AE(e)])}function Lu(e){return yr("INSERT",[hE(e)])}function _u(e){return yr("UPSERT",[hE(e.create),AE(e.update)])}function qe(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 Wa(e,t,n){return e.type==="UPDATE"?yr("UPDATE",[$a("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?yr("INSERT",[$a("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):yr("UPSERT",[$a("insert",e.onInsertApplyBlocks??[],null,!1,t,n),$a("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function yr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function hE(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 AE(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:gE(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:gE(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 gE(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:wi(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:wi(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:wi(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:wi(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:wi(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function wi(e,t){return e==null||t===null?null:e+t}function $a(e,t,n,r,i,o){let a=t.map(p=>{let c=p.operations.map(f=>BS(f,n)),d=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:p.targetKind,field:p.field,operations:c,changedCount:d}}),s=a.filter(p=>p.targetKind==="SUBTABLE"),l=s.every(p=>p.changedCount!==null)?s.reduce((p,c)=>p+c.changedCount,0):null,u=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:u},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function BS(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 Nt=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 SE(e,t,n){rr("phase10c");let r=aE(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 Nt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:qe(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 TE(e,t,n){rr("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 Nt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:qe(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 IE(e,t,n){rr("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let u=e.createBatches[l];try{let p=await t.postRecords({app:u.app,records:[...u.records]});r.push(p.ids)}catch(p){throw new Nt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:qe(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},p)}i+=1,a+=u.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let u=e.updateBatches[l];try{await t.putRecords({app:u.app,records:[...u.records]})}catch(p){throw new Nt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:qe(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},p)}o+=1,s+=u.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var $S=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function WS(e){if(!$S.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 VS(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=WS(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 Du(e,t){let n=VS(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 HS(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 vu(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 HS(i)?!0:Object.values(i).some(n)};return n(e)}function wE(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 Ct(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 Ni=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)}},Va=class{constructor(t,n=Ct({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new Ni("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new Ni("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new Ni("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var Ha=50;function Mu(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+=Ha){let o=e.values.slice(i,i+Ha);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Uu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),YS=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function jS(e,t){return e==="DATE"?Qr(t):e==="TIME"?ta(t):Uu.has(e)?na(t):!1}function zS(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Uu.has(e)?Uu.has(t.fieldType):!1}function ku(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=ea(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!YS.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(!zS(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=>!jS(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];ct(s,i,n)<0&&(i=s),ct(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var xu=$l;function Ci(e,t,n=xu){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function bE(e,t){let n=ee(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function Pt(e){if(e===null)return!1;switch(e.type){case"BINARY":return Ya(e.left);case"NULL_CHECK":return Ya(e.field);case"LOGICAL":return Pt(e.left)||Pt(e.right);case"NOT":case"GROUP":return Pt(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Ya(e){if(Array.isArray(e))return e.some(Ya);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(Ya)}async function pt(e,t,n,r,i){let o=await Ke(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 ja(e,t,n,r){let{records:i,metrics:o}=await pt(e,t,n,["$id"],r);return{ids:nd(i),metrics:o}}function hr(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)?CE(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"}):CE(n[0],e.field)}function Ku(e,t){if(e.left.type!=="FIELD")return Pi();let n=hr(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Pi();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Te(e,a=>{let s=hr(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 Pi();let o=ia(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?Pi():Object.freeze({relation:o,owner:n})}function PE(e,t){let n=Se(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=hr(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Te(e,o=>{let a=hr(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 OE(e,t){let n=new Set;vn(e,n);let i=(e===null?[]:DE(gr(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=qS(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)vn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(QS(e,t)),fetchQueriesByAlias:new Map,...o})}function LE(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Un(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,Ar(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(u=>u.alias===a.targetAlias&&u.appId===a.appId&&u.sourceKind==="APP"))return e;let l=Ar({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!Un(Za(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 Sr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Un(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&&!Un(Za(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))||_E(XS(e))!==e.allKlikes.length))}function qS(e,t){if(e===null)return NE(null);let n=Object.freeze([...Se(e)]);if(n.length===0)return NE(e);let r=JS(e,t,n);if(r!==null)return r;let i=Ja(e),o=[],a=new Set;for(let c of i){let d=PE(c,t);if(d.relation!=="function-leaf-exact")continue;let f={targetAlias:d.owner.alias,appId:d.owner.appId,predicate:c,relation:"exact"},E;try{E=Ar(f,t)}catch{continue}let R=Za(E);Un(R,d.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:d.owner.alias,appId:d.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),functionOccurrences:d.functionOccurrences,relation:d.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=Xa(e,a),l=Object.freeze(s===null?[]:[...Se(s)]),u=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),p=Un(n,u)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:p,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:u,residualWhere:s,residualServerFunctionOccurrences:l}}function JS(e,t,n){let r=za(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Ar(i,t)}catch{return null}if(!Un(Za(o),n))return null;let a=new Set;if(vn(e,a),_E(o)!==a.size)return null;let s=Object.freeze(qa(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 za(e,t){switch(e.type){case"BINARY":{if(Se(e).length>0){let i=PE(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Ku(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=za(e.left,t),r=za(e.right,t);return n!==null&&r!==null&&es(n,r)?n:null}case"GROUP":case"NOT":return za(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function qa(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return[...qa(e.left),...qa(e.right)];case"GROUP":case"NOT":return qa(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function NE(e){let t=e===null?[]:Se(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Ja(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Ja(e.left),...Ja(e.right)]:[];case"GROUP":return Ja(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Xa(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Xa(e.left,t),r=Xa(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=Xa(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function Za(e){let t=[];for(let n of Gr){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 Un(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 _E(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function XS(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function QS(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=hr(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Qa(i.right)){n.add("CROSS_TABLE_BINARY");return}Ku(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(UE(i)){n.add("KLIKE_OR");return}let o=gr(i.left,t),a=gr(i.right,t);if(o.length!==1||a.length!==1||!es(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 Ar(e,t){return Oi(e.predicate,e,t),z(e.predicate)}function Oi(e,t,n){switch(e.type){case"LOGICAL":Oi(e.left,t,n),Oi(e.right,t,n);return;case"GROUP":Oi(e.expr,t,n);return;case"NOT":Oi(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Qa(e.right))throw Gu(t,"predicate contains a non-target or RHS field reference");let r=hr(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 gr(e,t){switch(e.type){case"BINARY":{let n=Ku(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=gr(e.left,t),r=gr(e.right,t);if(e.op==="AND")return DE([...n,...r]);if(UE(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return es(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:vE(i.relation,o.relation)}]:[]}case"GROUP":return gr(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=>es(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:vE(i.relation,n.relation)}}return t}function CE(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Pi(){return Object.freeze({relation:"unsafe"})}function es(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function vE(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function vn(e,t){if(e!==null){if(nn(e)){t.add(e);return}switch(e.type){case"LOGICAL":vn(e.left,t),vn(e.right,t);return;case"NOT":case"GROUP":vn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function UE(e){let t=new Set;return vn(e,t),t.size>0}function Qa(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Qa);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Qa)}function Bu(e,t){let n=ei(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}var ZS=1e4,eT=500;function tT(e,t){if(e.key.type!=="FIELD_NAME")return;let n=Oe(e.key.name,t.keys());return n===void 0?void 0:t.get(n)}function nT(e,t){let n=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]);return Oe(t,n)!==void 0}function Li(e){let{stmt:t}=e,n=[],r=t.columns.flatMap(a=>a.type==="WINDOW_COL"?a.orderBy:[]).concat((t.hiddenWindows??[]).flatMap(a=>a.orderBy)),i=[...t.orderBy,...r];for(let a of i){if(a.key.type!=="FIELD_NAME")continue;let s=tT(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"&&!nT(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>eT)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>ZS)&&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 rT=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 iT(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function _i(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,u=e.orderSemantics.get(l);if(!u){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(iT(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!u.source||u.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}rT.has(u.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${u.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 ts=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"}},ns=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}},rs=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 ME(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 rs(a).message}}return{records:n,cleanupWarning:o}}function $u(e){let t=[];e.where&&t.push(z(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var oT={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 kE(e,t){let n=oT[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 xE(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=>kE(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=kE(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var Tr=new WeakMap,Vu=new WeakMap,aT="\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 qu(e){if(Vu.has(e))return e;let t;return t=new Proxy(e,{get(n,r,i){return typeof r!="string"||Object.prototype.hasOwnProperty.call(n,r)?Reflect.get(n,r,i):Ie(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&Ie(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=Ie(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),Vu.set(t,e),t}function Vt(e){return Vu.get(e)??e}function zE(e){let t=Tr.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},Tr.set(e,t)),t}function dt(e,t,n,r=[]){let i=zE(e);t!==null&&i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function $e(e,t){return Tr.get(e)?.byColumn.get(t)}function Ie(e,t){return Tr.get(e)?.byLookupKey.get(t)}function Wt(e,t){return Tr.has(e)?void 0:e[t]}function FE(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(ie(s.func,s.distinct,s.arg));return}a.type==="SELECT"||a.type==="SCALAR_SUBQUERY"||Object.values(a).forEach(i)};i(e),[...r].some(o=>t.some(a=>Ie(a,o)===void 0&&a[o]===void 0))&&n.add(aT)}function Mi(e){let t=Tr.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=hl(e);return r&&gl(n,r.includedCanonicalIds),n}function Ht(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 sT(e,t,n,r={}){if(n.type==="CROSS"){let d=Ci(e.length,t.length);if(!d.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${d.outputRows} \u884C\uFF08\u5DE6 ${d.leftRows} \u884C \xD7 \u53F3 ${d.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${d.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let E of e)for(let R of t)f.push({...E,...R});return f}let{on:i,type:o}=n,a=lT(i,e,t,r.leftColumns,r.rightColumns),s=Hu(a.left),l=Hu(a.right);if(KE(e,s,r.leftColumns),KE(t,l,r.rightColumns),o==="RIGHT"){let d=new Map;for(let R of e){let m=R[s]??"",y=d.get(m);y?y.push(R):d.set(m,[R])}let f={};for(let R of r.leftColumns??Object.keys(e[0]??{}))f[R]="";let E=[];for(let R of t){let m=R[l]??"",y=d.get(m)??[];if(y.length>0)for(let g of y)E.push({...g,...R});else E.push({...f,...R})}return E}let u=new Map;for(let d of t){let f=d[l]??"",E=u.get(f);E?E.push(d):u.set(f,[d])}let p=[],c={};for(let d of r.rightColumns??Object.keys(t[0]??{}))c[d]="";for(let d of e){let f=d[s]??"",E=u.get(f)??[];if(E.length>0)for(let R of E)p.push({...d,...R});else o==="LEFT"&&p.push({...d,...c})}return p}function Hu(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function lT(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=GE(o),l=GE(a),u=d=>{if(d.tableAlias){let m=s.has(d.tableAlias),y=l.has(d.tableAlias);if(m!==y)return m?"LEFT":"RIGHT"}let f=Hu(d),E=o.includes(f),R=a.includes(f);return E!==R?E?"LEFT":"RIGHT":"UNKNOWN"},p=u(e.left),c=u(e.right);return p==="RIGHT"&&c==="LEFT"?{left:e.right,right:e.left}:e}function GE(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 KE(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 uT(e,t,n,r,i,o={}){return t===null?e:e.filter(a=>ue(t,a,n,r,i,o))}function as(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&ge(t.expr)||t.type==="CASE_COL"&&ge(t.expr)||t.type==="STRFUNC_COL"&&Gi(t.expr)||t.type==="SCALAR_VALUE_COL"&&En(t.expr)||t.type==="WINDOW_COL"&&((t.windowKind==="AGGREGATE"||t.windowKind==="VALUE")&&ge(t.arg)||t.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.aggregateRef!==void 0)))}function cT(e,t,n,r,i,o={},a=null,s=[]){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let l=new Map;for(let p of e){let c=t.map((f,E)=>dT(f,p,i?.items[E],n,o)).join("\0"),d=l.get(c);d?d.push(p):l.set(c,[p])}l.size===0&&t.length===0&&as(n)&&l.set("",[]);let u=[];for(let p of l.values()){let c=qu({...p[0]});for(let d of t)d.type==="ARITH_KEY"?c[Fi(d.expr)]=String(Ee(d.expr,p[0],o.evaluationContext)):d.type==="FUNC_KEY"&&(c[Rn(d.expr)]=Ae(d.expr,p[0],void 0,void 0,o.evaluationContext));qE(c,p,n,r,o.evaluationContext),Je(c,p,a,r,o.evaluationContext),Je(c,p,n.filter(d=>d.type==="WINDOW_COL"),r,o.evaluationContext),Je(c,p,s,r,o.evaluationContext),u.push(c)}return u}function pT(e,t,n,r,i={},o=null,a=[]){let s=[],l=0,u=()=>{if(l++,i.maxGeneratedRows!==void 0&&l>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${l} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let p of t.sets){let c={children:new Map},d=[];for(let E of e){let R=c;for(let m of p.items){let y=BE(m,E),g=R.children.get(y);g||(g={children:new Map},R.children.set(y,g)),R=g}R.rows||(u(),R.rows=[],d.push(R.rows)),R.rows.push(E)}e.length===0&&p.items.length===0&&(u(),c.rows=[],d.push(c.rows));let f=new Set(p.items.map(E=>E.canonicalId));for(let E of d){let R=qu({...E[0]}),m=new Map;for(let y of p.items)m.has(y.canonicalId)||m.set(y.canonicalId,BE(y,E[0]));for(let y of t.allItems){let g=m.get(y.canonicalId)??"";R[y.directKey]=g,y.unqualifiedBridgeKey!==null&&(R[y.unqualifiedBridgeKey]=g)}qE(R,E,n,r,i.evaluationContext),Je(R,E,o,r,i.evaluationContext),Je(R,E,a,r,i.evaluationContext),Je(R,E,n.filter(y=>y.type==="WINDOW_COL"),r,i.evaluationContext),gl(R,f),s.push(R)}}return s}function BE(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function qE(e,t,n,r,i={}){for(let[o,a]of n.entries()){if(is(a)){Je(e,t,a,r,i);continue}if(a.type==="AGGREGATE"){let s=ie(a.func,a.distinct,a.arg),l=String(ki(a.func,a.distinct,a.arg,a.separator,t,r,i));dt(e,o,l,a.alias?[a.alias,s]:[s])}else if(a.type==="ARITH_AGG_COL"){Je(e,t,a.expr,r,i);let s=a.alias??xi(a.expr);dt(e,o,String(Di(a.expr,t,r,i)),[s])}else if(a.type==="ARITH_COL"&&ge(a.expr)){Je(e,t,a.expr,r,i);let s=a.alias??Fi(a.expr),l=zu(a.expr,t,r);dt(e,o,String(Ee(l,e,i)),[s])}else if(a.type==="STRFUNC_COL"&&Gi(a.expr)){Je(e,t,a.expr,r,i);let s=a.alias??Rn(a.expr),l=ls(a.expr,t,r);dt(e,o,Ae(l,e,void 0,void 0,i),[s])}else if(a.type==="SCALAR_VALUE_COL"&&En(a.expr)){Je(e,t,a.expr,r,i);let s=a.alias??Ot(a.expr),l=Ui(a.expr,t,r);dt(e,o,String(Le(l,e,void 0,void 0,i)),[s])}else if(a.type==="CASE_COL"&&ge(a.expr)){Je(e,t,a.expr,r,i);let s=ZE(a.expr,t,r),u=He(s,e,void 0,p=>p.aggregateRef?vi(p.aggregateRef,r):void 0,i);dt(e,o,u,[Yu(a.alias,o)])}}}function is(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(is);let t=e;return t.hiddenWindowRef===!0?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:Object.values(t).some(is)}function Yu(e,t){return e??`__ksql_case_column_${t}`}function ju(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>ju(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=>ju(r,t))}function Je(e,t,n,r,i={}){let o=[];ju(n,o);for(let a of o){let s=ie(a.func,a.distinct,a.arg);if(Ie(e,s)!==void 0)continue;let l=String(ki(a.func,a.distinct,a.arg,a.separator,t,r,i));zE(e).byLookupKey.set(s,l)}}function dT(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=os(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"?Ae(e.expr,t,void 0,void 0,i.evaluationContext):String(Ee(e.expr,t,i.evaluationContext))}function ki(e,t,n,r,i,o,a={}){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let s=JE(e,n,i,a).filter(E=>E!==null),l=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",u=l?s.map(E=>{let R=Number(E);if(!Number.isFinite(R))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${E}`);return R}):null,p=t?l?[...new Set(u)]:[...new Set(s)]:l?u:s;if(e==="COUNT")return p.length;if(e==="GROUP_CONCAT")return p.join(r??",");let c=e==="MIN"||e==="MAX"||e==="MODE"?Ir(n,o):void 0,d=typeof c=="string"?V(c):c??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?V("string"):V("number"));if(e==="MODE"){if(s.length===0)return"";let E=new Map;for(let y of s)E.set(y,(E.get(y)??0)+1);let R="",m=0;for(let[y,g]of E){if(g>m){R=y,m=g;continue}if(g!==m)continue;let A=ct(y,R,d);(A<0||A===0&&fn(y,R)<0)&&(R=y)}return R}if(e==="MIN"||e==="MAX"){let E=p;if(E.length===0)return"";let R=E[0];for(let m of E.slice(1)){let y=ct(m,R,d);(e==="MAX"&&y>0||e==="MIN"&&y<0)&&(R=m)}return R}let f=l?p:p.map(Number);switch(e){case"SUM":return f.reduce((E,R)=>E+R,0);case"AVG":return f.length===0?0:f.reduce((E,R)=>E+R,0)/f.length;case"MEDIAN":{if(f.length===0)return"";let E=[...f].sort((m,y)=>m-y),R=Math.floor(E.length/2);return E.length%2===1?E[R]:(E[R-1]+E[R])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let E=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(f.length===0||E&&f.length<2)return"";let R=f[0],m=0,y=0,g=0;for(let h of f){let I=h-R;m++;let b=I-y;y+=b/m,g+=b*(I-y)}let A=Math.max(0,g/(E?m-1:m));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(A):A}}}function JE(e,t,n,r={}){return n.map(i=>{let o=Vt(i),a;if(t.type==="FIELD_REF"){let s=o[t.field];if(s===void 0||s===""&&e!=="MIN"&&e!=="MAX")return null;a=s}else if(t.type==="ARITH"||t.type==="NUMBER"){let s=Ee(t,o,r);if(isNaN(s))return null;a=String(s)}else{let s=Kt(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 fT(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 Di(e,t,n,r={}){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(ki(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(Be(t[0]??{},a))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let i=Di(e.left,t,n,r),o=Di(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 xi(e){return ht(e)}function Ir(e,t){if(e.type==="FIELD_REF")return t?.(fT(e.field))??"string";if(e.type==="FIELD")return e.aggregateRef?vi(e.aggregateRef,t):t?.(e)??"string";if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return"number";if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return"string";if(e.type==="STRING_FUNC")return St(e,o=>t?.(o));let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Ir(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 vi(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 V("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return V("string");let n=e.arg.type==="WILDCARD"?"string":Ir(e.arg,t)??"string";return typeof n=="string"?V(n):n}function ET(e,t,n,r,i={}){return t===null?e:e.filter(o=>ue(t,Mi(o),n,void 0,r,i))}function RT(e,t,n,r,i,o={}){if(e.length===0)return e;let a=mT(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i,evaluationContext:o}),s=new Set;return e.filter(l=>{let u=a(l);return s.has(u)?!1:(s.add(u),!0)})}function mT(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(wT(t,a,o))}function Ju(e,t,n,r,i,o,a={}){return t.length===0?e:XE(e,t,n,r,i,o,a).rows.map(s=>s.row)}function XE(e,t,n,r,i,o,a={}){let s=t.map(({key:p})=>{if(p.type==="ARITH_KEY")return{semantics:V("number")};if(p.type==="FUNC_KEY")return{semantics:V(St(p.expr,f=>i?.get(f.tableAlias?`${f.tableAlias}.${f.field}`:f.field)))};if(p.type==="GROUPING_KEY")return{semantics:V("number")};let c=i?.get(p.name);if(c)return{semantics:c};let d=n?.get(p.name);return d?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:d}}:{semantics:V(r?.get(p.name)??"string")}}),l=e.map(p=>({row:p,keys:t.map(({key:c},d)=>({s:hT(c,p,o,a)}))})),u=(p,c)=>yT(p,c,t,s);return l.sort(u),{rows:l,compare:u}}function yT(e,t,n,r){for(let i=0;i<n.length;i++){let o=gT(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function gT(e,t,n){return ct(e.s,t.s,n.semantics)}function hT(e,t,n,r={}){let i=Vt(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??Ie(t,e.name)??i[e.name]??"";case"ARITH_KEY":return String(Ee(e.expr,i,r));case"FUNC_KEY":return Ae(e.expr,i,void 0,void 0,r);case"GROUPING_KEY":return bn(e.ref,t)}}function Xu(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,u=>Be(Vt(u),s.field));break;case"LITERAL_COL":o.set(l,()=>s.value);break;case"AGGREGATE":{o.set(l,u=>$e(u,a)??"0");break}case"ARITH_AGG_COL":{o.set(l,u=>$e(u,a)??"0");break}case"WINDOW_COL":o.set(l,u=>$e(u,a)??"");break;case"ARITH_COL":o.set(l,u=>ge(s.expr)?$e(u,a)??"":String(Ee(s.expr,Vt(u),i)));break;case"STRFUNC_COL":{let u=Rn(s.expr);o.set(l,p=>Gi(s.expr)?$e(p,a)??Ie(p,u)??Ae(s.expr,Vt(p),n,r,i):Ae(s.expr,Vt(p),n,r,i));break}case"CASE_COL":o.set(l,u=>ge(s.expr)?$e(u,a)??"":He(s.expr,Vt(u),n,r,i));break;case"SCALAR_VALUE_COL":{let u=Ot(s.expr);o.set(l,p=>En(s.expr)?$e(p,a)??Ie(p,u)??"":String(Le(s.expr,Vt(p),n,r,i)));break}case"SCALAR_SUBQUERY_COL":o.set(l,()=>t?.get(a)??"");break;case"GROUPING_COL":o.set(l,u=>bn(s.ref,u));break;case"VARIABLE_COL":break}}return(a,s)=>{let l=Oe(a,o.keys());return l===void 0?void 0:o.get(l)?.(s)}}function Qu(e,t,n,r,i,o,a={},s=[]){let l=t.map((u,p)=>({column:u,columnIndex:p})).filter(u=>u.column.type==="WINDOW_COL");if(l.push(...s.map(u=>({column:u,columnIndex:null}))),e.length===0||l.length===0)return e;for(let u=0;u<e.length;u++)e[u]=qu(e[u]);for(let{column:u,columnIndex:p}of l){let c=new Map;for(let d of e){let f=JSON.stringify(u.partitionBy.map(R=>IT(d,R))),E=c.get(f);E?E.push(d):c.set(f,[d])}for(let d of c.values()){let f=XE(d,u.orderBy,n,r,i,void 0,a),E=f.rows;if(qn(u)){TT(u,p,f,o,a);continue}if(vo(u)){ST(u,p,E,a);continue}if(!Do(u))throw new Error(`InternalError: unknown window kind ${u.windowKind??"undefined"}`);let R=1,m=1;for(let y=0;y<E.length;y++){y>0&&f.compare(E[y-1],E[y])!==0&&(R=y+1,m++);let g=u.func==="ROW_NUMBER"?y+1:u.func==="RANK"?R:m;dt(E[y].row,p,String(g),[u.alias])}}}return e}function AT(e,t,n={}){let r=Kt(e,Mi(t),void 0,void 0,n);return r==null||typeof r=="number"&&!Number.isFinite(r)?"":String(r)}function ST(e,t,n,r={}){let i=n.map(a=>AT(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;dt(n[a].row,t,s>=0&&s<i.length?i[s]:"",[e.alias])}}function TT(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:JE(e.aggFunc,e.arg,o.map(f=>Mi(f.row)),i),s=e.arg.type==="WILDCARD"?void 0:Ir(e.arg,r),l=typeof s=="string"?V(s):s??V("string"),u=[],p=0,c=0,d;for(let f=0;f<o.length;f++){let E=a?.[f]??null;if(e.arg.type==="WILDCARD")p++;else if(E!==null)if(e.aggFunc==="COUNT")p++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")c+=Number(E),p++;else if(d===void 0)d=E;else{let m=ct(E,d,l);(e.aggFunc==="MAX"&&m>0||e.aggFunc==="MIN"&&m<0)&&(d=E)}let R=e.aggFunc==="COUNT"?p:e.aggFunc==="SUM"?c:e.aggFunc==="AVG"?p===0?0:c/p:d??0;u.push(String(R))}if(e.frame===null){let f=u[u.length-1];for(let E of o)dt(E.row,t,f,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let f=0;f<o.length;){let E=f;for(;E+1<o.length&&n.compare(o[E],o[E+1])===0;)E++;for(let R=f;R<=E;R++)dt(o[R].row,t,u[E],[e.alias]);f=E+1}return}for(let f=0;f<o.length;f++)dt(o[f].row,t,u[f],[e.alias])}function IT(e,t){if(t.type==="GROUPING_REF")return bn(t,e);let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Be(Mi(e),n)}function ss(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function os(e,t,n,r={}){let i=is(e),o=i?Mi(t):Vt(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(o)).map(s=>[s,o[s]!==void 0?o[s]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(o).filter(s=>s.startsWith("_p.")).sort()).map(s=>[s,o[s]!==void 0?o[s]:null])};case"FIELD":return Be(o,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let a=ie(e.func,e.distinct,e.arg);return $e(t,n)??Ie(t,e.alias??a)??Ie(t,a)??Wt(t,e.alias??a)??Wt(t,a)??"0"}case"ARITH_AGG_COL":{let a=e.alias??xi(e.expr);return $e(t,n)??Ie(t,a)??Wt(t,a)??"0"}case"ARITH_COL":return ge(e.expr)&&!i?$e(t,n)??Ie(t,e.alias??Fi(e.expr))??"":String(Ee(e.expr,o,r.evaluationContext));case"CASE_COL":return ge(e.expr)&&!i?$e(t,n)??Ie(t,Yu(e.alias,n))??Wt(t,Yu(e.alias,n))??"":He(e.expr,o,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return bn(e.ref,t);case"STRFUNC_COL":{let a=Rn(e.expr);return Gi(e.expr)&&!i?$e(t,n)??Ie(t,e.alias??a)??Ie(t,a)??Wt(t,e.alias??a)??Wt(t,a)??Ae(e.expr,o,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext):Ae(e.expr,o,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext)}case"SCALAR_VALUE_COL":{let a=Ot(e.expr);return En(e.expr)&&!i?$e(t,n)??Ie(t,e.alias??a)??Ie(t,a)??Wt(t,e.alias??a)??Wt(t,a)??"":String(Le(e.expr,o,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return $e(t,n)??Ie(t,e.alias)??Wt(t,e.alias)??""}}function wT(e,t,n={}){return e.map((r,i)=>{let o=os(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Mn(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let E=e.map(m=>{let y=YE(WE(m),a),g=os(t[0],m,0,{wildcardKeys:Object.keys(y)}),A={};if(typeof g!="string")for(let[h,I]of g.entries)I!==null&&(A[h]=I);return A}),R=E.length>0?Object.keys(E[0]):[...i??[]];return{rows:E,columns:R}}let l=PT(t),u=CT(t),p=t.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD"),c=p?null:bT(t,l,u),d=c??[];return p&&e.length===0?{rows:[],columns:NT(t,l,u)}:{rows:e.map((E,R)=>{let m={},y={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys(YE(WE(E),a)),parentWildcardKeys:Object.keys(E).filter(g=>g.startsWith("_p.")).sort()};for(let[g,A]of t.entries()){let h=os(A,E,g,y);switch(A.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[I,b]of h.entries)b!==null&&(m[I]=b);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[I,b]of h.entries)b!==null&&(m[I]=b),R===0&&d.push(I);break}case"FIELD":{let I=c?.[g]??A.alias??l.get(g)??A.field;m[I]=h,c===null&&R===0&&d.push(I);break}case"LITERAL_COL":{let I=c?.[g]??A.alias??`'${A.value}'`;m[I]=h,c===null&&R===0&&d.push(I);break}case"AGGREGATE":{let I=ie(A.func,A.distinct,A.arg),b=c?.[g]??A.alias??I;m[b]=h,c===null&&R===0&&d.push(b);break}case"ARITH_AGG_COL":{let I=c?.[g]??A.alias??xi(A.expr);m[I]=h,c===null&&R===0&&d.push(I);break}case"ARITH_COL":{let I=c?.[g]??A.alias??Fi(A.expr);m[I]=h,c===null&&R===0&&d.push(I);break}case"CASE_COL":{let I=c?.[g]??A.alias??u.get(g)??"case";m[I]=h,c===null&&R===0&&d.push(I);break}case"GROUPING_COL":{let I=c?.[g]??A.alias??`GROUPING(${A.ref.field.tableAlias?`${A.ref.field.tableAlias}.`:""}${A.ref.field.field})`;m[I]=h,c===null&&R===0&&d.push(I);break}case"STRFUNC_COL":{let I=c?.[g]??A.alias??Rn(A.expr);m[I]=h,c===null&&R===0&&d.push(I);break}case"SCALAR_VALUE_COL":{let I=c?.[g]??A.alias??Ot(A.expr);m[I]=h,c===null&&R===0&&d.push(I);break}case"SCALAR_SUBQUERY_COL":{let I=c?.[g]??A.alias??"(subquery)";m[I]=h,c===null&&R===0&&d.push(I);break}case"WINDOW_COL":{let I=c?.[g]??A.alias;m[I]=h,c===null&&R===0&&d.push(I);break}}}return m}),columns:d}}function bT(e,t,n){return e.map((r,i)=>QE(r,i,t,n))}function NT(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=QE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function QE(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??ie(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??xi(e.expr);case"ARITH_COL":return e.alias??Fi(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??Rn(e.expr);case"SCALAR_VALUE_COL":return e.alias??Ot(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 CT(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 PT(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=$E(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=$E(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 $E(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function WE(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Fi(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?q(n):n.type==="STRING_FUNC"?Rn(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function Rn(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?xi(n):n.type==="VARIABLE"?`@${n.name}`:Ot(n));return`${e.func}(${t.join(",")})`}function Ot(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return q(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Rn(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${Ot(e.left)}${e.op}${Ot(e.right)}`;case"CONCAT_OP":return`${Ot(e.left)}||${Ot(e.right)}`}}function OT(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:En(e)}function En(e){return e.type==="STRING_FUNC"?Gi(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?En(e.left)||En(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>VE(t.result))||e.elseResult!==null&&VE(e.elseResult):!1}function VE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:En(e)}function Gi(e){return e.args.some(t=>OT(t))}function LT(e,t,n){if(e.type==="AGG_REF"){let r=ki(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=Di(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(Be(t[0]??{},r)),raw:Be(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?ls(e,t,n):Ui(e,t,n)}function Ui(e,t,n){return e.type==="STRING_FUNC"?ls(e,t,n):e.type==="CASE_WHEN"?ZE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Ui(e.left,t,n),right:Ui(e.right,t,n)}:e}function zu(e,t,n){return e.type==="STRING_FUNC"?ls(e,t,n):e.type==="ARITH"?{...e,left:zu(e.left,t,n),right:zu(e.right,t,n)}:e}function HE(e,t,n){if(e.type==="AGG_REF"){let r=ki(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=Di(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:Ui(e,t,n)}function ZE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:HE(r.result,t,n)})),elseResult:e.elseResult===null?null:HE(e.elseResult,t,n)}}function ls(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>LT(r,t,n))}}function YE(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 jE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Wu(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function _T(e,t,n=[]){let r=new Map,i=new Map(n.map(a=>[a.alias,eR(a,t)])),o=a=>i.get(a.field)??t?.(a);for(let a of e){if(a.type==="AGGREGATE"&&r.set(ie(a.func,a.distinct,a.arg),vi({type:"AGG_REF",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{}},t)),a.type==="WINDOW_COL")for(let s of a.orderBy)s.key.type==="FIELD_NAME"&&s.key.aggregateRef&&r.set(s.key.name,vi(s.key.aggregateRef,t));if(!(!("alias"in a)||!a.alias))if(a.type==="ARITH_COL"||a.type==="ARITH_AGG_COL")r.set(a.alias,V("number"));else if(a.type==="WINDOW_COL"){if(Do(a)||qn(a)&&(a.aggFunc==="COUNT"||a.aggFunc==="SUM"||a.aggFunc==="AVG"))r.set(a.alias,V("number"));else if((qn(a)||vo(a))&&a.arg.type!=="WILDCARD"){let s=Ir(a.arg,t)??"string";r.set(a.alias,typeof s=="string"?V(s):s)}}else a.type==="AGGREGATE"?a.func==="COUNT"||a.func==="SUM"||a.func==="AVG"||a.func==="STDDEV_POP"||a.func==="STDDEV_SAMP"||a.func==="VAR_POP"||a.func==="VAR_SAMP"||a.func==="MEDIAN"?r.set(a.alias,V("number")):a.func==="GROUP_CONCAT"&&r.set(a.alias,V("string")):a.type==="LITERAL_COL"||a.type==="SCALAR_SUBQUERY_COL"?r.set(a.alias,V("string")):a.type==="CASE_COL"||a.type==="SCALAR_VALUE_COL"?r.set(a.alias,V(di(a.expr,o))):a.type==="STRFUNC_COL"&&r.set(a.alias,V(St(a.expr,o)))}return r}function eR(e,t){if(Do(e)||qn(e)&&(e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"))return V("number");if((qn(e)||vo(e))&&e.arg.type!=="WILDCARD"){let n=Ir(e.arg,t)??"string";return typeof n=="string"?V(n):n}return V("string")}function Zu(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:u,havingFieldSemanticsResolver:p,aggregateSortKindResolver:c,appliedKlikes:d,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:R,resolvedGroupingSpec:m,plainGroupByPlan:y,warnings:g,evaluationContext:A}=e,h=_T(t.columns,c,t.hiddenWindows);for(let[N,P]of a??[])h.set(N,P);let I=new Map((t.hiddenWindows??[]).map(N=>[N.alias,eR(N,c)])),b=N=>I.get(N.field)??l?.(N),D=[],C=t.from.alias;D=(n.get(C)??n.get(null)??[]).map(N=>Ht(N,C));let v=Wu(jE(E?.get(C),C),void 0,D);for(let N of t.joins){let P=N.table.alias,w=(n.get(P)??[]).map(F=>Ht(F,P)),L=Wu(jE(E?.get(P),P),void 0,w);D=sT(D,w,N,{leftColumns:v,rightColumns:L}),v=Wu(v,L,D)}let x=e.residualWhere!==void 0?e.residualWhere:t.where;D=uT(D,x,s,d,l,A);let O=ee(t);if(O.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");D=pT(D,m,t.columns,c,{maxGeneratedRows:5e4,evaluationContext:A},t.having,t.hiddenWindows)}else(O.type==="PLAIN"||as([...t.columns,...t.hiddenWindows??[]]))&&(D=cT(D,O.type==="PLAIN"?O.allItems:[],t.columns,c,O.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:A},t.having,t.hiddenWindows));FE(t.columns,D,g);let _=N=>N.aggregateRef?vi(N.aggregateRef,c):p?.(N);return FE(t.having,D,g),D=ET(D,t.having,u,_,A),D=Qu(D,t.columns,i,o,h,c,A,t.hiddenWindows),t.distinct&&(D=RT(D,t.columns,r,s,b,A)),D=Ju(D,t.orderBy,i,o,h,Xu(t.columns,r,s,b,A),A),D=ss(D,t.limit,t.offset),Mn(D,t.columns,r,s,f,b,R,A)}function tR(e,t){let n=[];for(let r of e){let i=ec(r.$id?.value),o=DT(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[u,p]of Object.entries(r)){if(u===t)continue;let c=ec(p?.value);l[`_p.${u}`]={value:c}}for(let[u,p]of Object.entries(s.value??{}))l[u]={value:ec(p?.value)};n.push(l)}}return n}function DT(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function ec(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}var Xe={HEADER_UNKNOWN_KEY:"KSQL1001",HEADER_DUPLICATE_KEY:"KSQL1002",HEADER_INVALID_NAME:"KSQL1003",HEADER_INVALID_DEPENDS_ON:"KSQL1004",HEADER_INVALID_TIMEOUT:"KSQL1005",HEADER_INVALID_DIALECT:"KSQL1006",LOGICAL_APP_UNRESOLVED:"KSQL1101",LEX_ERROR:"KSQL1201",PARSE_ERROR:"KSQL1202",DIALECT1_REQUIRED:"KSQL1203",UPDATE_KEY_COMPOSITE:"KSQL1301",UPDATE_KEY_FIELD_TYPE:"KSQL1302",UPDATE_KEY_NOT_UNIQUE:"KSQL1303",SUBTABLE_DML_FORBIDDEN:"KSQL1304",BARE_INSERT_NOT_IDEMPOTENT:"KSQL1305",SERVER_TIME_FUNCTION_NOT_AS_OF:"KSQL1306"};function vT(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 @@
11
11
  `&&a++,l(),a++;continue}r+=u,a++}if(i)throw new Y("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function qT(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new Y(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new Y(`CSV column name "${n}" is duplicated.`);t.add(n)})}function ms(e,t){let n=zT(jT(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}`)),qT(r),i.length===0)throw new Y("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new Y(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var JT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),XT=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Vi=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 ER(e,t,n){if(!JT.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Vi;return XT.has(t??"")?r.map(i=>({code:i})):r}function Yt(e,t,n,r){throw new Y(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function RR(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new Y("JSON source is not valid UTF-8.")}}function mR(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 d="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&Yt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){d+=E;continue}n>=e.length&&Yt("string has an unterminated escape",l.offset,l.line,l.column);let R=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
14
- `,r:"\r",t:" "};if(R in m){d+=m[R];continue}R!=="u"&&Yt(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||Yt("has invalid unicode escape",n,r,i);for(let A=0;A<4;A++)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)))&&Yt("has an unpaired high surrogate",n,r,i),o(),o();let A=e.slice(n,n+4);for(let I=0;I<4;I++)o();let h=Number.parseInt(A,16);(h<56320||h>57343)&&Yt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),d+=String.fromCodePoint(65536+(g-55296<<10)+h-56320)}else g>=56320&&g<=57343?Yt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):d+=String.fromCharCode(g)}f||Yt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:d,...l});continue}let u=e.slice(n),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(u)?.[0];if(p){for(let d=0;d<p.length;d++)o();t.push({kind:"number",lexeme:p,...l});continue}let c=/^(true|false|null)/.exec(u)?.[0];if(c){for(let d=0;d<c.length;d++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}Yt(`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 ys(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function gs(e){if(e.byteLength===0)throw new Y("JSON source is empty.");let t=mR(RR(e)),n=0,r=(u,p=t[n])=>{throw new Y(`JSON ${u} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(u,p)=>u.kind==="punct"&&u.value===p,o=u=>{let p=t[n];(p.kind!=="punct"||p.value!==u)&&r(`expected ${u}; found ${ys(p)}`,p),n++},a=()=>{let u=t[n++];if(u.kind==="string")return u.value;if(u.kind==="number")return{kind:"number",lexeme:u.lexeme};if(u.kind==="literal")return u.value;if(u.kind==="punct"&&u.value==="{"){let p=new Map;if(i(t[n],"}"))return n++,p;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${ys(c)}`,c);let d=c.value;p.has(d)&&r(`duplicate key ${JSON.stringify(d)}`,c),o(":"),p.set(d,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return p}if(u.kind==="punct"&&u.value==="["){let p=[];if(i(t[n],"]"))return n++,p;for(;;){p.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return p}return r(`expected a value; found ${ys(u)}`,u)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${ys(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new Y("JSON source contains no records.");return l.forEach((u,p)=>{if(!(u instanceof Map))throw new Y(`JSON record ${p+1} must be an object.`)}),l}var QT=new Set(["CHECK_BOX","MULTI_SELECT"]),yR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Lt(e,t,n){throw new Y(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function ZT(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function eI(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&Lt(n,t.code,"boolean is not accepted."),ZT(e)){t.fieldType==="NUMBER"&&Lt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&Lt(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)||Lt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&Lt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||Lt(n,t.code,"unsupported value type."),!QT.has(t.fieldType)&&!yR.has(t.fieldType)&&Lt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&Lt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&Lt(n,t.code,"array elements must not contain duplicates."),yR.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function pc(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let i=gs(t.bytes);if(i.length>r)throw new Y(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new Y("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,u)=>{for(let d of l.keys())o.has(d)||Lt(u+1,d,"unknown key (not declared in INTO).");let p={},c=new Set;for(let d of n)l.has(d.code)&&(c.add(d.code),p[d.code]=eI(l.get(d.code),d,u+1));a.push(p),s.push(c)}),{receipt:{rows:i.length,encoding:"utf8"},rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function dc(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ms(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(s.rows.length>n)throw new Y(`source rows (${s.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new Y("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let u=new Map(s.columns.map((g,A)=>[g,A]));for(let g of r)if(!u.has(g))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${g}" is missing.`);let p=new Map(i.map(g=>[g.code,g])),c=new Set(r);if(o&&c.has(o))throw new Y("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!u.has(o))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let d=[],f=[],E=g=>s.rows.filter(A=>A[g]!=="").length,R=g=>g.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":g.inSubtable||g.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":g.writable===!1?`non-writable ${g.fieldType} field`:`known export-only ${g.fieldType} field`;for(let[g,A]of s.columns.entries()){if(c.has(A)||A===o)continue;let h=p.get(A);if(h)d.push({column:A,reason:R(h),nonEmptyCells:E(g)});else if(e.ignoreUnknownColumns)f.push({column:A,reason:"unknown column ignored by explicit policy",nonEmptyCells:E(g)});else throw new Y(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${A}".`)}for(let g of r){let A=p.get(g);if(!A)throw new Error(`ArgumentError: DML target field ${g} does not exist.`);if(A.inSubtable||A.writable===!1||A.fieldType==="FILE"||A.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${g} is not writable (${A.fieldType}).`)}let m=[],y=s.rows.map(g=>{let A=[],h={};for(let I of r){let b=g[u.get(I)];try{h[I]=ER(b,p.get(I)?.fieldType,{cliKintone:!0})}catch(D){if(!(D instanceof Vi))throw D;h[I]=b,A.push({field:I,code:D.code,message:D.message})}}return m.push(A),h});return{receipt:{rows:s.rows.length,encoding:a},rows:y,columns:[...r],columnMeta:new Map(r.map(g=>[g,{fieldType:p.get(g)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:m,...o?{recordNumberSourceValues:s.rows.map(g=>g[u.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:d,ignoredUnknownColumns:f}}}let l=s.rows.map(u=>Object.fromEntries(s.columns.map((p,c)=>[p,u[c]])));return{receipt:{rows:s.rows.length,encoding:a},rows:l,columns:s.columns,columnMeta:new Map(s.columns.map(u=>[u,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Hi=(e,t,n)=>{throw new Y(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function gR(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let o=gs(t.bytes);if(o.length>r)throw new Y(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new Y("IMPORT targets contain duplicates.");let s=0;return{receipt:{rows:o.length,encoding:"utf8"},records:o.map((l,u)=>{let p=u+1;for(let E of l.keys())a.has(E)||Hi(p,E,"unknown key (not declared in INTO).");let c=new Map,d=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&Hi(p,R,"object is not accepted for a top-level field."),c.set(R,m);continue}Array.isArray(m)||Hi(p,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),g=m.map((A,h)=>{A instanceof Map||Hi(p,R,`childRow=${h+1} must be an object.`);let I=A;for(let b of I.keys())y.has(b)||Hi(p,b,`unknown child key in subtable ${R} at childRow=${h+1}.`);if(s++,s>i)throw new Y(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:h+1,values:I}});d.set(R,g)}return{rowNumber:p,top:c,subtables:d,replacementTables:f}})}}function hR(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ms(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||s.columns[0]!=="*")throw new Y('ERR_IMPORT_MARKER: first CSV header must be "*".');let l=new Map(s.columns.map((f,E)=>[f,E]));if(o&&!l.has(o))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=n.filter(f=>f.kind==="FIELD"),p=n.filter(f=>f.kind==="SUBTABLE");for(let f of u)if(!l.has(f.field))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${f.field}" is missing.`);for(let f of p){if(!f.rowIdSourceHeader||!l.has(f.rowIdSourceHeader))throw new Y(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${f.subtableCode} is missing.`);for(let E of f.children)if(!l.has(E))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required child header "${E}" is missing.`)}let c=[],d;if(s.rows.forEach((f,E)=>{let R=E+2,m=f[0];if(m!==""&&m!=="*")throw new Y(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(m)} at source row ${R}.`);if(m==="*"){if(c.length>=i)throw new Y(`source parent rows exceed maxRecords (${i}).`);d={rowNumber:c.length+1,markerRowNumber:R,top:new Map(u.map(y=>[y.field,f[l.get(y.field)]])),subtables:new Map(p.map(y=>[y.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:f[l.get(o)]}:{}},c.push(d)}else if(d){for(let y of u){let g=f[l.get(y.field)];if(g!==""&&g!==d.top.get(y.field))throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${y.field} at source row ${R}.`)}if(o){let y=f[l.get(o)];if(y!==""&&y!==d.recordNumberSourceValue)throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new Y(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let y of p){let g=f[l.get(y.rowIdSourceHeader)],A=new Map(y.children.map(I=>[I,f[l.get(I)]]));if(g===""&&[...A.values()].every(I=>I===""))continue;let h=d.subtables.get(y.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:R,...g?{rowId:g}:{},values:A})}}),c.length===0)throw new Y("CSV has no parent rows.");return{receipt:{rows:s.rows.length,encoding:a},records:c}}var tI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),nI=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Rc(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(d=>!d.inSubtable).map(d=>[d.code,d])),a=new Map;for(let d of n)if(d.inSubtable&&d.subtableCode){let f=a.get(d.subtableCode);f||a.set(d.subtableCode,f=new Map),f.set(d.code,d)}let s=t.filter(d=>d.kind==="FIELD"),l=t.filter(d=>d.kind==="SUBTABLE");for(let d of s)AR(d.field,o.get(d.field),void 0);for(let d of l){let f=o.get(d.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${d.subtableCode} does not exist.`);let E=a.get(d.subtableCode)??new Map;for(let R of d.children)AR(R,E.get(R),d.subtableCode)}let u=new Map(l.map(d=>[d.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(d=>rI(d,s,l,o,a,r,i,u)),c=p.flatMap(d=>[...d.errors]);return{parents:p,errors:c,invalidParentRows:new Set(p.filter(d=>!d.valid).map(d=>d.parentRow)),tableCounts:u}}function rI(e,t,n,r,i,o,a,s){let l=[],u={};for(let d of t)e.top.has(d.field)&&Ec(e.top.get(d.field),r.get(d.field),o,u,d.field,l,fc(e,a,d.field));let p={};if(a==="INSERT")for(let d of r.values())d.fieldType==="SUBTABLE"||d.writable===!1||e.top.has(d.code)||SR(d,o,p,l,fc(e,a,d.code));let c=new Map;for(let d of n){if(!e.subtables.has(d.subtableCode))continue;let f=s.get(d.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(d.subtableCode)){f.childRows++;let m=l.length,y={},g=i.get(d.subtableCode);for(let A of d.children){let h=g.get(A),I=fc(e,a,A,d.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(A)?Ec(R.values.get(A),h,o,y,A,l,I):SR(h,o,y,l,I)}l.length===m?(f.validChildRows++,E.push(y)):f.invalidChildRows++}c.set(d.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:u,subtables:c,replacementTables:e.replacementTables,errors:l}}function AR(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&&nI.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function SR(e,t,n,r,i){let o=Ln(e.defaultValue)?"":e.defaultValue;Ec(o,e,t,n,e.code,r,i,!Ln(e.defaultValue))}function Ec(e,t,n,r,i,o,a,s=!1){let l=iI(e),u=Ye(l,t,n);u.ok?r[i]={value:oI(l,t)?l:u.value}:o.push({...a,code:u.code,message:s?`\u65E2\u5B9A\u5024: ${u.message}`:u.message})}function iI(e){return TR(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:TR(t)?t.lexeme:t):e}function TR(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function oI(e,t){return tI.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function fc(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 mc=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function yc(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":aI(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 aI(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 gc(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 wR(e,t){return gc(e,t,"DROP")}function bR(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 NR(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,u])=>{let p=a?.record[l]?.value,c=Array.isArray(p)?p.length:0;return{table:l,existingRows:c,inputRows:u.length,addRows:u.length,deleteRows:c}});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 sI(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function CR(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 PR(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],u=l===void 0?void 0:r.get(l),p=[...o.errors];if(!u||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let c=new Map,d=[];for(let f of o.replacementTables){let E=sI(u.record,f),R=new Set(E.map(b=>b.id).filter(b=>!!b)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],g=0,A=0,h=0,I=m.map((b,D)=>{let C=y[D]??{};return b.rowId&&R.has(b.rowId)?(g++,{rowId:b.rowId,record:C}):(b.rowId&&((i.get(b.rowId)??[]).some(v=>v.parentId!==l||v.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:b.rowId,subtable:f,subrow:b.childRowNumber,sourceRow:b.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${b.rowId}`,sourceValues:b.values}),h++),A++,{record:C})});c.set(f,I),d.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:g,addRows:A,deleteRows:E.length-g,rowIdNotFound:h})}return{parentRow:o.parentRow,targetId:l,...u.revision===void 0?{}:{revision:u.revision},valid:p.length===0,top:o.top,subtables:c,tables:d,errors:p}})}var hc="#__import_source";function OR(e){return{...e,from:{appId:0,alias:null,cteName:hc}}}function lI(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Ac(e,t){let n=e.map(lI),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 uI="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",Wn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}};function Dr(e,t){return e?.columns.includes(t)?t:void 0}function Ne(e,t){let n=Dr(e,t);return n===void 0?void 0:e?.columnMeta?.get(n)}var pe=new WeakMap;function rm(e){return pe.get(e)}var Hn=new WeakMap,vr=new WeakMap,_s=new WeakMap;function LR(e,t){t?.length&&_s.set(e,[...new Set(t)])}function wr(e,t){let n=_s.get(e);return{result:t,...n?.length?{warnings:n}:{}}}var Lc=Symbol("statementEvaluationContext"),cI=Symbol("importSourceMaterializedCallback"),im=Symbol("nativeUpsertExecution"),pI=Symbol("nativeUpsertExplainCapability"),dI=Symbol("batchCompletionObserver");function om(e){return e[im]===!0}function fI(e){return im in e}function EI(e){return e[pI]}function am(e){return e[Lc]?e:{...e,[Lc]:{statementInstant:new Date}}}function le(e){return e[Lc]??{}}async function rp(e,t,n){let r=e[cI];r&&await r({name:t.sourceName,kind:t.kind,...n})}var _R=new WeakMap,RI=1,mI=1;function sm(e,t){if(t)return t;let n=_R.get(e);return n||(n=`client:${RI++}`,_R.set(e,n)),n}function ip(e){return`${e}\0inv:${mI++}`}async function op(e,t,n={}){Ct(n);let r=Date.now(),i=ip(sm(t,n.cacheContext));try{let o=hb(e,n.enableImport===!0),a=lm(),s=cm(t,a),l={aborted:!1},u=sp(s,l,!gI(o)||vu(o)),p=await _c(o,u,n,i);a.elapsedMs=Date.now()-r;let c={...pm(p,l),metrics:a};if(p.type==="SELECT"){let d=pe.get(p);d&&pe.set(c,d)}return c}finally{wp(i)}}function lm(){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 um=Symbol("limitMetricsSink");function ap(e,t){let n=e[um];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function cm(e,t){let n={[um]: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 Tp(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var DR=Symbol("searchAbortFailClosed");function sp(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 Wn;return i}}}function yI(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 gI(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function pm(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(uI),{...e,warnings:[...n]}}async function vR(e,t,n){let r=await Eo(e,t,n);return uc(r),r}async function Eo(e,t,n){return pR(e,{select:async r=>{let{resolver:i}=await Kn(r,t,n);return Te(r.where,i)},dml:r=>wm(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Kn(r,t,n);return cc(r,i)},joinServerFunctionPlan:async r=>{await Kn(r,t,n);let i=await Ws(r,t,n),o=$s(r,i);return o===null?null:(Sr(o.joinPlan)&&Ep.set(r,o),o.joinPlan)}})}async function _c(e,t,n,r){n=am(n);let i=await Eo(e,t,r);e.type!=="EXPLAIN"&&uc(i);let o=vc(e);if(o!==null&&!Jw(e))throw new Error(Is(o,"in a batch"));if(nr("phase15b",e),Go("phase15b",e),ut(e),e.type!=="EXPLAIN"&&await MI(e,t,r),e.type==="IMPORT")return Zm(e,t,n,r);if(e.type==="UPDATE"&&e.applyBlocks?.length){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Jc(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 Np(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 hI(e,t,n,r);case"SELECT":return zt(Gc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Fm(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return hp(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Vw(e,t,n,r);case"INSERT_SELECT":return Lp(e,t,n,r);case"UPSERT":return cb(e,t,n,r);case"UPSERT_SELECT":return Up(e,t,n,r);case"UPDATE":return Jc(e,t,n,r);case"DELETE":return lb(e,t,n,r);case"REORDER":return mb(e,t,n,r);case"SHOW_APPS":return ry(t);case"DESCRIBE":return iy(e,t,r);case"EXPLAIN":return Cb(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?it(n.dmlMaxRows,"dmlMaxRows",Jt):Jt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",De):De,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,n.resolveMetadata!==!1,fI(n)?{surface:"CLI",enableNativeUpsert:om(n),clientHasNativeUpsert:EI(n)??Tp(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 mm(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var lp=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],up=["$id","$err_subtable","$err_field","$err_code","$err_count"];function cp(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 dm(e=!1){let t=e?up:lp;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:V(n==="$id"||n==="$err_count"?"number":"string")}]))}async function hI(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return fm(e,t,n,r)}async function fm(e,t,n,r){let i=await Q(e.appId,t,r),o=new Map(i.filter(L=>!L.inSubtable).map(L=>[L.code,L])),a=new Set(i.filter(L=>L.inSubtable).map(L=>L.code)),s=Nu(e,i),l=new Set(s.flatMap(L=>wu(L.field))),u={present:Iu.filter(L=>l.has(L)),absent:Iu.filter(L=>!l.has(L))},p=e.checkGroups??[],c=Er(p);for(let L of c){if(L.field!=="$id"&&!o.has(L.field)&&!a.has(L.field))throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!o.has(L.field)&&a.has(L.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let d=new Map([...o].map(([L,F])=>[L,F.fieldType]));d.set("$id","RECORD_NUMBER"),Vn(e,d);let f=cp(e.where),E=[...new Set(["$id",...s.map(L=>L.subtableCode??L.field.code),...f,...c.map(L=>L.field)])];for(let L of f){if(L!=="$id"&&!o.has(L)&&!a.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${e.appId}.`);if(L!=="$id"&&!o.has(L)&&a.has(L))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(L=>L.field.fieldType==="NUMBER")?await Dt(e.appId,t,r):void 0,m=L=>L.field==="$id"?ne({fieldType:"__ID__"}):o.get(L.field)?.semantics??(o.has(L.field)?ne(o.get(L.field)):void 0),y=Te(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Bn(y)}).`);let g=new Map([...o].map(([L,F])=>[L,F.fieldType])),A=new Map([...o.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),h=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:Ul(e.where,{allowUnqualifiedFields:!0,fieldTypes:g,fieldOptions:A,allowKlike:!1}),I=h===null?"":z(h),D=(await Ke(t.getRecords,e.appId,I,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(L=>({id:String(L.$id?.value??""),record:L,flat:Ht(L,null)})).filter(L=>e.where===null||ue(e.where,L.flat,F=>d.get(F.field),void 0,void 0,le(n))),C=[],M=new Map,v=new Map,x=new Set,O=0,_=L=>{if(x.add(L.id),O+=1,e.summary){let W=JSON.stringify([L.id,L.subtable??"",L.field,L.code]),k=v.get(W);k?k.$err_count=String(Number(k.$err_count)+1):v.set(W,{$id:L.id,$err_subtable:L.subtable??"",$err_field:L.field,$err_code:L.code,$err_count:"1"});return}let F=JSON.stringify([L.id,L.subtable??"",L.field,L.code,L.message]),K=M.get(F);K?(K.$err_count=String(Number(K.$err_count)+1),L.subrow!==void 0&&(K.$err_subrow=`${K.$err_subrow},${L.subrow}`,K.$err_subrow_id=`${K.$err_subrow_id},${L.subrowId??""}`)):M.set(F,{$id:L.id,$err_field:L.field,$err_code:L.code,$err_message:L.message,$err_value:L.value,$err_subtable:L.subtable??"",$err_subrow:L.subrow===void 0?"":String(L.subrow),$err_subrow_id:L.subrowId??"",$err_count:"1"})},N=s.filter(L=>!L.subtableCode),P=new Map;for(let L of s){if(!L.subtableCode)continue;let F=P.get(L.subtableCode)??[];F.push(L),P.set(L.subtableCode,F)}for(let L of D){for(let F of N){let K=L.record[F.field.code]?.value,W=Ye(K,F.field,R);W.ok||_({id:L.id,field:F.field.code,code:W.code,message:W.message,value:Si(K,F.field.fieldType)})}for(let[F,K]of P){let W=L.record[F]?.value;if(Array.isArray(W))for(let k=0;k<W.length;k++){let G=W[k];for(let j of K){let $=G.value?.[j.field.code]?.value,B=Ye($,j.field,R);if(!B.ok){let U=Ga(F,k,G);_({id:L.id,field:j.field.code,code:B.code,message:B.message,value:Si($,j.field.fieldType),...U})}}}}for(let F of Na(p,L.flat,K=>d.get(K.field)))_({id:L.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)C.push(...v.values());else for(let L of M.values()){let F=Number(L.$err_count);L.$err_subtable!==""&&F>=2&&(L.$err_message=`${L.$err_message}\uFF08${F}\u884C: ${L.$err_subrow}\uFF09`),C.push(L)}let w={type:"SELECT",columns:[...e.summary?up:lp],rows:C,rowCount:C.length,validateStats:{errorRecords:x.size,errorCount:O,constraintMetadata:u}};return pe.set(w,dm(e.summary===!0)),w}var nt=1e4;function _t(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,u)=>l!==n[u])||!AI(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 AI(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||!Qo(i.semantics,r.semantics))return!1}return!0}var Cr=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function Em(e,t,n={}){let r=Yl(n.asOf??new Date,n.timezone);Ct(n);let{statements:i,meta:o}=nc(e,{import:n.enableImport===!0}),a=o.dialect===1&&i.some(ic)?[iR]:[],s=ql(i);if(i.forEach(m=>Go("phase15b",m)),n.allowApplyMutation!==!0&&i.some(m=>Rl(m)||m.type==="UPSERT"&&SI(m)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let l=Du(i,n.variables),u=Rm(i,l),p={...n,variables:l};if(n.continueOnError&&s.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let m of s.statements){if(!m.isDml||m.tempTablesReferenced.length===0||m.statementType==="INSERT_SELECT"||m.statementType==="UPSERT_SELECT")continue;let y=i[m.index];if(!(y?.type==="UPDATE"&&y.from?.cteName!=null))throw new oe(`ArgumentError: temp table references in ${m.statementType} are not supported yet.`,m.index)}let c=lm(),d=cm(t,c),f=Date.now(),E=n.timeoutMs!=null?f+n.timeoutMs:null,R=ip(sm(t,n.cacheContext));try{let m=new Map,y=new Map;for(let[C,M]of Object.entries(r.values))y.set(ii(C),{type:"string",value:M});let g=[],A=new Set,h=null;for(let C=0;C<i.length;C++){let M=s.statements[C],v={index:C,type:M.statementType};if(h){g.push({...v,status:"skipped",skippedReason:h}),h!=="exit"&&A.add(C);continue}let x=M.dependsOn.find(O=>A.has(O));if(x!==void 0){let O=s.statements[x].tempTablesCreated[0]??`statement ${x}`;g.push({...v,status:"skipped",skippedReason:`dependency: ${O}`}),A.add(C);continue}if(E!==null&&Date.now()>=E){g.push({...v,status:"skipped",skippedReason:"timeout"}),A.add(C),h="timeout";continue}try{let O=E!==null?E-Date.now():null,_=p.confirm,N=_?{...p,confirm:(G,j,$)=>_(G,j,{statementIndex:C,statementCount:i.length,statementType:M.statementType,targetAppId:M.targetAppId,...$?.importDetail?{importDetail:$.importDetail}:{},...$?.applyDetail?{applyDetail:$.applyDetail}:{},...$?.applyDiagnostic?{applyDiagnostic:$.applyDiagnostic}:{}})}:p,P={aborted:!1},S=sp(d,P,M.statementType!=="SELECT"&&M.statementType!=="UNION"&&M.statementType!=="WITH"||vu(i[C])),w=yI(S),L=am(N),F={stmt:i[C],info:M,client:w.client,options:L,cacheContext:R,tempTables:m,variables:y,relativeDateVariables:u,clock:le(L),dialect:o.dialect},K=await wI(TI(F),O,w.closeActive);K.result&&(K.result=pm(K.result,P),a.length>0&&ic(i[C])&&K.result.type==="SELECT"&&(K.result=Bs(K.result,a)));let{exitTriggered:W,...k}=K;g.push({...v,status:"success",...k}),W&&(h="exit")}catch(O){g.push({...v,status:"error",error:bI(O),...O instanceof lo?{result:O.diagnostic}:{}}),A.add(C),O instanceof Cr?h="timeout":O instanceof no?h="assertion":M.statementType==="SET_VARIABLE"||M.statementType==="DECLARE_VARIABLE"?h="fail-fast":n.continueOnError||(h="fail-fast")}}c.elapsedMs=Date.now()-f;let I=[...new Set([...a,...g.flatMap(C=>C.warnings??[])])],b={ok:g.every(C=>C.status==="success"||C.skippedReason==="exit"),statementCount:i.length,statements:g,analysis:s,metrics:c,...I.length>0?{warnings:I}:{}},D=n[dI];if(D)try{D({result:b,tempTables:m})}catch{}return b}finally{wp(R)}}function SI(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 TI(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:u,dialect:p}=e;if(t.type==="SET_VARIABLE"){let f=Ds(t,s);if(ut(f),await vR(f,r,o),f.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:f.expr.elements.map(E=>({type:"string",value:E.value}))});else if(f.expr.type==="SCALAR_SUBQUERY")try{let E=await hm(f.expr.query,r,i,o,a),R=await gm(f.expr.query,r,o,a),m=R?Number(E):Number.NaN;s.set(t.name,R&&Number.isFinite(m)?{type:"number",value:m,raw:E}:{type:"string",value:E})}catch(E){throw E instanceof Gn?new Error(`ArgumentError: ${E.message}`):E}else s.set(t.name,UR(f.expr,u));return{}}if(t.type==="DECLARE_VARIABLE"){if(t.annotation==="RELATIVE_DATE")return s.set(t.name,{type:"relative-date",value:l.get(t.name)}),{};let f=i.variables??{};if(Object.prototype.hasOwnProperty.call(f,t.name))s.set(t.name,{type:"string",value:f[t.name]});else{let E=UR(t.default,u);s.set(t.name,{type:"string",value:E.type==="number"?E.raw??String(E.value):E.value})}return{}}let c=Ds(t,s);if(nr("phase15b",c),Go("phase15b",c),ut(c),p===1&&(c.type==="INSERT"||c.type==="UPDATE"||c.type==="DELETE")&&c.subtableCode)throw new Error("ArgumentError: dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(p===1&&(c.type==="UPSERT"||c.type==="UPSERT_SELECT")){let f=rc(c)[0];if(f)throw new Error(`ArgumentError: ${f.message}`);let E=await Q(c.appId,r,o),R=rc(c,E)[0];if(R)throw new Error(`ArgumentError: ${R.message}`)}if(await vR(c,r,o),c.type==="VALIDATE"){let f=await fm(c,r,{...i,onLimitReached:"error"},o);return c.errorTable&&_t(a,c.errorTable,f.columns,f.rows,i.tempTableMaxRows??nt,pe.get(f)??dm(c.summary===!0)),{result:f}}if(c.type==="IMPORT"){let f=await Zm(c,r,i,o,a);return wr(c,f)}if("validateOnly"in c&&c.validateOnly===!0){let f=await Np(c,r,{...i,onLimitReached:"error"},o,a,n.index+1);return c.validationErrorTable&&_t(a,c.validationErrorTable,f.columns,f.errors,i.tempTableMaxRows??nt,Hn.get(f)??new Map),wr(c,f)}if("onErrorSkip"in c&&c.onErrorSkip===!0){let f=await zc(c,r,{...i,onLimitReached:"error"},o,a,n.index+1);return wr(c,f)}if(c.type==="CREATE_TEMP_TABLE"){let f={...i,maxRecords:i.tempTableMaxRows??nt,onLimitReached:"error"},E=await II(c.query,r,f,o,a);return a.set(c.name,{rows:E.rows,columns:E.columns,columnMeta:pe.get(E)}),{tempTable:c.name,rowCount:E.rows.length,...E.warnings?.length?{warnings:[...E.warnings]}:{}}}if(t.type==="DROP_TEMP_TABLE")return a.delete(t.name),{tempTable:t.name};if(t.type==="EXPLAIN"){let f=c;np.set(f,a);try{return{result:await _c(f,r,i,o)}}finally{np.delete(f)}}if(c.type==="ASSERT"){let f=await mm(c,r,i,o,a);return f.warning!==void 0?{result:f}:{}}if(c.type==="EXIT"){let f=await LI(c,r,i,o,a);return{result:f,...f.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(c.type==="SELECT"||c.type==="UNION")return{result:await yt(c,r,i,a,o,i.captureColumnMeta===!0)};if(c.type==="WITH")return{result:await hp(c,r,i,o,a)};if(c.type==="INSERT_SELECT"){let f=await Lp(c,r,i,o,a);return wr(c,f)}if(c.type==="UPSERT_SELECT"){let f=await Up(c,r,i,o,a);return wr(c,f)}if(c.type==="UPDATE"&&c.from?.cteName!=null)return{result:await Jc(c,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}let d=await _c(c,r,i,o);return wr(c,d)}async function II(e,t,n,r,i){return e.type==="WITH"?hp(e,t,n,r,i,!0):yt(e,t,n,i,r,!0)}async function wI(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Cr;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(u=>{l=setTimeout(u,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Cr)})()},t)})])}catch(a){throw a instanceof Cr&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function bI(e){let t;if(e instanceof Nt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Sc(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:NI(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Sc(r),message:r}}else{let n=String(e);t={code:Sc(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Sc(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function NI(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function CI(e,t=!1,n=!1){let r=new pn(e).tokenize();return new dn(r,{import:t,dialect1:n}).parseStatements()}function PI(e,t){try{let n=CI(`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 Rm(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)?PI(r.name,t[r.name]):r.default);return n}function UR(e,t={}){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:q(e)};case"KINTONE_FUNC":return{type:"string",value:xf(e.name,t)};case"STRING_FUNC":return{type:"string",value:Ae(e,{},void 0,void 0,t)};case"ARITH":{let n=Ee(e,{},t);if(!Number.isFinite(n))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:n,raw:String(n)}}case"VARIABLE":throw new Error(`InternalError: unresolved variable @${e.name} reached scalar evaluation.`)}}function Ds(e,t){return Dc(e,t,!1)}function Is(e,t){return dr(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 Dc(e,t,n){if(Array.isArray(e))return e.map(r=>Dc(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,Dc(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=OI(i);if(o.type==="SELECT"&&Ze(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Ze(o.where,!0))throw new Error("ArgumentError: empty-array simplification makes the target WHERE always true; use an explicit safe target condition.");return o}return e}function Ze(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function OI(e){if(e.type==="NOT"&&Ze(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Ze(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Ze(t,!1)||Ze(n,!1))return{type:"BOOLEAN",value:!1};if(Ze(t,!0))return n;if(Ze(n,!0))return t}else if(e.op==="OR"){if(Ze(t,!0)||Ze(n,!0))return{type:"BOOLEAN",value:!0};if(Ze(t,!1))return n;if(Ze(n,!1))return t}}return e}function vc(e){if(Array.isArray(e)){for(let t of e){let n=vc(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=vc(n);if(r!==null)return r}}return null}var no=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Gn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function mm(e,t,n,r,i){let o=await ym(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 no(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function LI(e,t,n,r,i){let o=await ym(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function ym(e,t,n,r,i){let o=await hs(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 hs(e.low,t,n,r,i),u=await hs(e.high,t,n,r,i);return{passed:Gt(">=",o.value,l.value,Tc(o,l))&&Gt("<=",o.value,u.value,Tc(o,u)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await hs(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?V("number"):V("string"):Tc(o,a);return{passed:Gt(e.op,o.value,a.value,s),actual:o.value}}function Tc(e,t){return V(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function hs(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:q(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(Uc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await hm(e.query,t,n,r,i),a=await gm(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof Gn?new no(o.message):o}}}async function gm(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 oo(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function hm(e,t,n,r,i){let{query:o,probed:a}=_I(e),s=await Zi(o,t,n,r,i);if(s.columns.length!==1)throw new Gn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Gn("scalar subquery returned no rows (expected 1 row).");if(s.rowCount>1){let l=a&&s.rowCount===2?"2 or more rows":`${s.rowCount} rows`;throw new Gn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function _I(e){return Mt(e)||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function Uc(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=Uc(e.left),n=Uc(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 Ro(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=i||Pt(e.where)?[...new Set(o.filter(d=>d.cteName===null).map(d=>d.appId))]:[],s=new Map(await Promise.all(a.map(async d=>{let f=await Q(d,t,n);return[d,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,u=d=>{if(Array.isArray(d)){d.forEach(u);return}if(d===null||typeof d!="object")return;let f=d;if(f.type==="SELECT")return;let E=String(f.op),R=f.right,m=["=","!=","<>"].includes(E)&&R?.type==="STRING"&&R.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(E)||m)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(u)};u(e.where),u(e.having);for(let d of e.columns)d.type==="CASE_COL"&&u(d.expr);let p=new Map;await Promise.all([...s].map(async([d,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await bp(d,t,n);R&&p.set(d,R)}));let c=(d,f,E)=>{if(f==="$id")return sr(ne({fieldType:"__ID__"}),d.appId,"$id");if(E&&d.subtableCode){if(f==="_rid")return V("string");if(f==="_idx"||f==="_pid")return V("number")}let R=s.get(d.appId)?.get(ce(d,f));if(!R)return;let m=R.semantics??ne(R),y=R.fieldType==="STATUS"&&p.has(d.appId)?{...m,optionOrder:p.get(d.appId)}:m;return sr(y,d.appId,R.code)};return d=>{if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,d.field,!1);let E=o.find(R=>de(R)===d.tableAlias);return E?E.cteName!==null?Ne(r?.get(E.cteName),d.field)?.semantics??V("string"):c(E,d.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?Ne(r?.get(e.from.cteName),d.field)?.semantics??V("string"):c(e.from,d.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName):void 0,m=E.cteName!==null?Dr(R,d.field)!==void 0?Ne(R,d.field)?.semantics??V("string"):void 0:c(E,d.field,!0);return m?[m]:[]});if(f.length===1)return f[0];if(!o.some(E=>bs(E,d.field)!==void 0))return f.length>1?V("string"):void 0}}var Am=new WeakMap;async function Kn(e,t,n,r,i=!1){let o=await Ro(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Qd(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&Am.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function rt(e){return[...e.columns.filter(t=>t.type==="WINDOW_COL"),...e.hiddenWindows??[]]}function DI(e){return rt(e).some(t=>t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function Sm(e){return DI(e)||rt(e).some(t=>t.windowKind==="VALUE")}function vI(e,t){let n=ee(e);return n.type!=="PLAIN"||n.allItems.length===0?!1:n.allItems.every(r=>t.some(i=>r.type==="FIELD_NAME"&&i.key.type==="FIELD_NAME"?i.key.name===r.name:r.type===i.key.type&&JSON.stringify(r)===JSON.stringify(i.key))?!0:e.columns.some(i=>!("alias"in i)||i.alias===null||!t.some(o=>o.key.type==="FIELD_NAME"&&o.key.name===i.alias)?!1:r.type==="FIELD_NAME"&&i.type==="FIELD"?i.field===r.name:r.type==="ARITH_KEY"&&i.type==="ARITH_COL"||r.type==="FUNC_KEY"&&i.type==="STRFUNC_COL"?JSON.stringify(r.expr)===JSON.stringify(i.expr):!1))}function MR(e,t,n,r,i){return vI(e,t)?!0:i!==void 0&&e.joins.length===0&&e.from.cteName!==null?t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===de(e.from)}):r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function kR(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"||MR(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`+kR(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||MR(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`+kR(n,"VALUE"));return i}function Bs(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=pe.get(e);return r&&pe.set(n,r),n}function pp(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=>Pt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function Im(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Fe(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=V("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=V("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=gn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=gn(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?V("string"):V("number"):r.type==="STRFUNC_COL"?i=yn(r.expr,o=>{let a=t(o);return a?{compareMode:a.compareMode}:void 0}).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=V("string")),i&&n.set(r.alias,i)}return r=>{if(r.tableAlias!==null)return t(r);let i=Oe(r.field,n.keys());return i===void 0?t(r):n.get(i)}}function Bn(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 vs(e){return e.orderBy.length>0||rt(e).some(t=>t.orderBy.length>0)}async function wm(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Pt(e.where)?await Q(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Te(null,()=>{}):Te(e.where,o=>{if(o.field==="$id")return ne({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?ne(a):void 0)})}async function Pr(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await wm(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ae(`WHERE predicate cannot be represented by kintone REST (${Bn(r)})`)}async function zt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){YI(e);let l,u=new Set;if(await io(e,t,r,i),FI(e))return l=BI(e,n),o&&pe.set(l,await oo(e,l.columns,t,r,i,a)),l;let{resolver:p}=await Kn(e,t,r,i,Sm(e)),c=Tm(e,p,s),d=await Or(e,t,r,i);await oy(e,t,n,r,u,i);let f=tw(e,Te(e.where,p));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Bn(f)}).`);let E=je(e),R,m;if(f.capability==="SUPERSET_PREFILTER"){let C=await Ro(e,t,r,i),M=cc(e,C);M.eligible&&lc(e,M)&&(R=M.plan)}if(R===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let C=null;try{C=z(e.where)}catch{C=null}m=ua({select:e,selectMode:E,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:C,relativeFunctionNames:Se(e.where)})??void 0,m&&(R=m.prefilterPlan)}let y=f.capability==="EXACT_PUSHDOWN"?E:"FULL_SCAN",g=await so(e,t,r,i),A=vs(e)?(e.orderMode==="KINTONE_NATIVE"?_i:Li)({stmt:e,staticMode:y,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:g.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Pe(e.where)}):null,h=await WI(e,A?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":y,t,r),I=dp(e,n,A),D=m!==void 0&&(E==="FULL_SCAN"||A?.kind==="CANONICAL_LOCAL")?sp(t,{aborted:!1},!0):t;try{y==="SIMPLE"?l=await $I(e,D,I.effectiveOptions,r,A,g):l=await iw(e,D,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&R===void 0,g,R,d)}catch(C){Nm(I,C)}return o&&pe.set(l,await oo(e,l.columns,t,r,i,a)),Bs(l,[...u,...c,...h])}function Mc(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 bm(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 Or(e,t,n,r){let i=ee(e);if(!Mt(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(c=>c.table)],s=new Map,l=await Promise.all(a.map(async c=>{if(c.cteName!==null){let R=r?.get(c.cteName);if(!R)throw new Error(`InternalError: materialized schema ${c.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:R.columns}}let d=await Q(c.appId,t,n);if(!c.subtableCode){for(let R of d){if(R.inSubtable!==!0||!R.subtableCode)continue;let m=s.get(R.code)??[];m.push({appId:c.appId,owner:R.subtableCode}),s.set(R.code,bm(m))}return{kind:"APP",fieldCodes:d.filter(R=>!R.inSubtable).map(R=>R.code)}}let f=d.filter(R=>R.inSubtable&&R.subtableCode===c.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:d.filter(R=>R.inSubtable&&R.subtableCode===void 0)).map(R=>R.code),parentFieldCodes:d.filter(R=>!R.inSubtable).map(R=>R.code)}})),u=Ld(e,(c,d)=>l[d]),p=Ud(o,e.columns,u);return UI(e,o,p,s),Yr(e,Fd(e,p,u)),p}function UI(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 u=t[l],p=u?.type==="FIELD_NAME"?u.name:"(expression)";if(s.kind==="UNKNOWN"){let c=a===null?"":` (APP${a})`,d=s.name.indexOf("."),f=d>=0?s.name.slice(d+1):s.name,E=r.get(s.name)??r.get(f)??[];throw E.length>0?new Error(Mc(s.name,E)):new Error(`ArgumentError: unknown field code(s): ${s.name}${c}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${p} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${p} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${p} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var ro=new WeakMap;async function MI(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 io(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function kI(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=i.filter(c=>c.cteName===null),a=new Map(await Promise.all([...new Set(o.map(c=>c.appId))].map(async c=>{let d=await Q(c,t,n);return[c,new Map(d.map(f=>[f.code,f]))]}))),s=(c,d)=>{if(c.subtableCode)return null;let f=a.get(c.appId)?.get(d);return f?.inSubtable===!0?f.subtableCode??"":null},l=(c,d)=>{if(d==="$id")return"$id";let f=ce(c,d);return s(c,f)!==null?null:a.get(c.appId)?.has(f)?f:null},u=(c,d)=>{if(c.cteName===null)return!1;let f=r?.get(c.cteName);return f?Dr(f,d)!==void 0:!0},p=(c,d,f,E)=>{let R=i.filter(g=>g.cteName===null&&l(g,f.field)!==null).length,m=i.some(g=>u(g,f.field)),y=de(c);return{canonicalId:`source:${d}:APP${c.appId}:${E}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:R===1&&!m?f.field:null,physical:!0}};return c=>{if(c.tableAlias!==null){let m=i.findIndex(A=>de(A)===c.tableAlias);if(m<0)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} has an unknown table alias.`);let y=i[m];if(y.cteName!==null)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let g=l(y,c.field);if(g===null){let A=s(y,ce(y,c.field));throw A!==null&&A!==""?new Error(Mc(c.field,[{appId:y.appId,owner:A}])):new Error(`ArgumentError: field ${c.tableAlias}.${c.field} does not exist in APP${y.appId}.`)}return p(y,m,c,g)}let d=i.flatMap((m,y)=>{if(m.cteName!==null)return[];let g=l(m,c.field);return g===null?[]:[{table:m,tableIndex:y,code:g}]}),f=i.filter(m=>u(m,c.field));if(d.length+f.length>1)throw new Error(`ArgumentError: field ${c.field} is ambiguous across multiple sources.`);if(d.length===1&&f.length===0){let m=d[0];return p(m.table,m.tableIndex,c,m.code)}if(f.length===1)throw new Error(`ArgumentError: field ${c.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let E=i.flatMap(m=>{if(m.cteName!==null)return[];let y=s(m,ce(m,c.field));return y===null||y===""?[]:[{appId:m.appId,owner:y}]}),R=bm(E);throw R.length>0?new Error(Mc(c.field,R)):new Error(`ArgumentError: field ${c.field} does not exist in a physical APP source.`)}}async function io(e,t,n,r){ro.delete(e);let i=ee(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await kI(e,t,n,r),u=Bd(e,l,Kd);u&&ro.set(e,u);return}if(!Mt(e))return;if(i.type==="NONE"){Vo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await Or(e,t,n,r)}function xI(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 dp(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Zt({...e,orderBy:[]}):Zt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Nm(e,t){throw e.reasons.size>0&&t instanceof Ve&&!t.completeInputWrapped?new Ve(xI(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function kc(e,t){try{return await t()}catch(n){Nm(e,n)}}function mt(e){return e?.type==="BOOLEAN"&&e.value===!1}function FI(e){return e.from.appId===0&&e.from.cteName===Ce}function Us(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT planning.`);return e.type==="FIELD_REF"?e.hiddenWindowRef!==!0:e.type==="ARITH"?Us(e.left)||Us(e.right):e.type==="STRING_FUNC"?fp(e):!1}function GI(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:zi(e)}function zi(e){return e.type==="FIELD"?e.hiddenWindowRef!==!0:e.type==="STRING_FUNC"?fp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?zi(e.left)||zi(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"?Us(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:zi(n))):!1}function fp(e){return e.args.some(t=>GI(t))}function KI(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(Us(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(fp(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(zi(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 BI(e,t){if(e.joins.length>0||e.where||ee(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");KI(e);let n=Qu([{}],e.columns,void 0,void 0,void 0,void 0,le(t),e.hiddenWindows),{rows:r,columns:i}=Mn(n,e.columns,void 0,void 0,void 0,void 0,void 0,le(t)),o=ss(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function $I(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Dm(e):e,s=qo(a),l=i?.kind==="CANONICAL_LOCAL"?Nn(e,e.from):s.fields,u=await Rp(e,t,r),p=yp(e,u),c=e.columns.some(C=>C.type==="CASE_COL")?await Ro(e,t,r,void 0,pp(e)):void 0,d=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&y!==null&&y<=d&&!Pe(e.where)?y:void 0,A;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)A=[];else if(i?.kind==="KORDER_CURSOR"){let C=await ME({client:t,app:s.app,fields:s.fields,query:$u(e),offset:e.offset??0,limit:e.limit});A=C.records,C.cleanupWarning&&f.add(C.cleanupWarning)}else if(m)A=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let C=e.where?z(e.where):"";A=await Ke(t.getRecords,s.app,C,l,{parallel:R,maxRecords:d,stopAfter:g,onLimit:E,onTruncate:M=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${M} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${M} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ap(t,e.from.appId)}})}let h=A.map(C=>Ht(C,null));m||(h=Ju(h,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Xu(e.columns,void 0,p.row,c,le(n)),le(n)),h=ss(h,e.limit,e.offset));let{rows:I,columns:b}=Mn(h,e.columns,void 0,p.row,void 0,c,void 0,le(n)),D=await Ap(e,I,b,t,r);return{type:"SELECT",rows:I,columns:D,rowCount:I.length,warnings:[...f]}}async function WI(e,t,n,r){let i=[],o=new Map,a=(u,p)=>{if(p.length===0)return;let c=o.get(u);c||(c=new Set,o.set(u,c));for(let d of p)c.add(d)},s=new Map,l=(u,p)=>{let c=s.get(u);c||(c=new Set,s.set(u,c));for(let d of p)c.add(d)};if(t==="SIMPLE"){let u=qo(e);a(u.app,u.fields),e.from.subtableCode||l(u.app,u.fields)}else{let u=[e.from,...e.joins.map(p=>p.table)].filter(p=>p.cteName===null);for(let p of u){let c=Nn(e,p);a(p.appId,c),p.subtableCode||l(p.appId,c)}}for(let[u,p]of o.entries()){let c=[...p].filter(m=>!$o(m));if(c.length===0)continue;let d=await Q(u,n,r);if(d.length===0)continue;let f=new Set(d.map(m=>m.code)),E=c.filter(m=>!f.has(m));if(E.length>0)throw new Error(`ArgumentError: unknown field code(s): ${E.join(", ")} (APP${u})`);let R=s.get(u);if(R){let m=d.filter(y=>y.inSubtable===!0&&R.has(y.code));for(let y of m){let g=y.subtableCode??"",A=g?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${g}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${A}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${u} \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${u}$${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 Ic(e){return e.cteName??`APP${e.appId}`}function Cm(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function VI(e,t){return $o(t)||e.validCodes.has(t)}function wc(e,t){return e.table.cteName!==null?e.validCodes.has(t):VI(e,t)}async function HI(e,t,n){let r=[e.from,...e.joins.map(o=>o.table)].filter(o=>o.cteName===null),i=new Map;return await Promise.all([...new Set(r.map(o=>o.appId))].map(async o=>{let a=await Q(o,t,n);i.set(o,new Set(a.map(s=>s.code)))})),(o,a)=>{if(o.cteName!==null)return!1;if(o.subtableCode||$o(a))return!0;let s=i.get(o.appId);return!s||s.size===0?!0:s.has(ce(o,a))}}async function Pm(e,t,n,r){let i=!1;xR(e,t,()=>(i=!0,!0)),i&&xR(e,t,await HI(e,n,r))}function xR(e,t,n){let r=[e.from,...e.joins.map(E=>E.table)],i=new Map;for(let E of r)for(let R of Cm(E))i.set(R,E);let o=e.columns.flatMap(E=>"alias"in E&&E.alias!==null?[E.alias]:[]),a=E=>E.cteName===null||E.cteName===Ce?[]:t.get(E.cteName)?.columns??[],s=(E,R)=>E?Oe(R,a(E)):void 0,l=E=>{if(r.some(y=>a(y).includes(E)))return E;let R=r.flatMap(y=>{let g=s(y,E);return g===void 0?[]:[g]}),m=[...new Set(R)];if(m.length===1)return r.some(y=>n(y,E))?E:m[0]},u=(E,R,m)=>{if(m&&R===null){let y=Oe(E,o);if(y!==void 0)return y}return R===null?l(E)??E:s(i.get(R),E)??E},p=(E,R)=>{let m=E.indexOf(".");if(m<=0)return u(E,null,R);let y=E.slice(0,m),g=E.slice(m+1),A=u(g,y,!1);return A===g?E:`${y}.${A}`};for(let E of e.joins)E.type!=="CROSS"&&(E.on.left.field=u(E.on.left.field,E.on.left.tableAlias,!1),E.on.right.field=u(E.on.right.field,E.on.right.tableAlias,!1));let c=new Set,d=(E,R=!1)=>{if(E===null||typeof E!="object"||c.has(E))return;if(c.add(E),Array.isArray(E)){for(let y of E)d(y,R);return}let m=E;if(!(E!==e&&(m.type==="SELECT"||m.type==="UNION"))){if(m.type==="FIELD"&&typeof m.field=="string"){let y=typeof m.tableAlias=="string"?m.tableAlias:null;m.field=y===null?p(m.field,R):u(m.field,y,R)}else if(m.type==="FIELD_REF"&&typeof m.field=="string")m.field=p(m.field,R);else if(m.type==="AGG_GROUP_KEY"&&typeof m.field=="string"){let y=typeof m.tableAlias=="string"?m.tableAlias:null;m.field=u(m.field,y,R)}for(let y of Object.values(m))d(y,R)}};for(let E of[...e.columns,...e.hiddenWindows??[]])d(E);d(e.where),d(e.having,!0),d(e.grouping);let f=ee(e);if(f.type==="PLAIN")for(let E of f.allItems)E.type==="FIELD_NAME"?E.name=p(E.name,!0):d(E);for(let E of e.orderBy)E.key.type==="FIELD_NAME"?E.key.name=p(E.key.name,!0):d(E.key);for(let E of rt(e)){for(let R of E.partitionBy)R.type==="FIELD"&&(R.field=u(R.field,R.tableAlias,!1));for(let R of E.orderBy)R.key.type==="FIELD_NAME"?R.key.name=p(R.key.name,!1):d(R.key)}}function YI(e){let t=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]),n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(!(i.type==="AGG_REF"||i.type==="AGG_ARITH")){if(i.type==="FIELD"&&(i.tableAlias===null||i.tableAlias===void 0)&&typeof i.field=="string"){let o=Oe(i.field,t);o!==void 0&&(i.field=o)}i.type==="SELECT"||i.type==="UNION"||Object.values(i).forEach(n)}};n(e.having)}function jI(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 xc(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=new Map,s=new Set,l=new Set;for(let d of o){let f=de(d);if(f!==null){if(l.has(f))throw new Error(`ArgumentError: effective alias ${f} is used by multiple tables.`);l.add(f)}}for(let d of o){if(d.cteName===null||d.cteName===Ce)continue;let f=n.get(d.cteName);if(!f){if(i){s.add(d);continue}throw new Error(`ArgumentError: materialized source ${d.cteName} is not available.`)}if(f.rows.length>0&&f.columns.length===0)throw new Error(`InternalError: materialized source ${d.cteName} has rows but no column schema.`);if(e.joins.length>0&&f.rows.length===0&&f.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${d.cteName}.`);a.set(d,f)}let u=new Map;await Promise.all(o.map(async d=>{if(s.has(d)){u.set(d,{table:d,label:Ic(d),validCodes:new Set,authoritative:!1,schemaUnavailable:!0});return}let f=a.get(d);if(f){u.set(d,{table:d,label:Ic(d),validCodes:new Set(f.columns),authoritative:!0,schemaUnavailable:f.rows.length===0&&f.columns.length===0});return}if(d.cteName===Ce)return;let E=i?await zm(d.appId,r):await Q(d.appId,t,r);u.set(d,{table:d,label:Ic(d),validCodes:new Set((E??[]).map(R=>R.code)),authoritative:E!==null&&E.length>0,schemaUnavailable:!1})}));let p=new Map;for(let d of u.values())for(let f of Cm(d.table))p.set(f,d);for(let d of e.joins)if(d.type!=="CROSS")for(let f of[d.on.left,d.on.right]){if(!f.tableAlias)continue;let E=p.get(f.tableAlias);if(E&&E.table.cteName!==null&&!E.schemaUnavailable&&!wc(E,f.field))throw new Error(`ArgumentError: JOIN key ${f.tableAlias}.${f.field} is not available in the materialized table.`)}let c=Yd(e);for(let[d,f]of c.bySource){let E=u.get(d);if(!E||E.schemaUnavailable||!E.authoritative)continue;let R=[...f].filter(m=>!wc(E,m));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (${E.label})`)}for(let d of c.unqualified){let f=[...u.values()].filter(R=>!R.schemaUnavailable);if(f.some(R=>wc(R,d))||[...u.values()].some(R=>R.schemaUnavailable)||f.some(R=>R.table.cteName===null&&!R.authoritative))continue;let E=f.map(R=>R.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${d} (${E})`)}}async function ws(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await ws(e.left,t,n,r,i),await ws(e.right,t,n,r,i);return}await Pm(e,n,t,r),await xc(e,t,n,r);for(let o of jI(e))await ws(o,t,n,r,i)}}function Om(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Zr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Zr(e.where,{tableAlias:e.from.alias}):null}function qi(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"?qi(e.left)||qi(e.right):e.type==="GROUP"||e.type==="NOT"?qi(e.expr):!1}var Ep=new WeakMap;function $s(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=OE(e.where,r),o=LE(i,r),a=new Map,s=new Map;for(let[f,E]of o.fetchQueriesByAlias)s.set(f,E);for(let f of o.items)s.has(f.targetAlias)||s.set(f.targetAlias,Ar(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,u=a.get(l)??null,p=new Map(a);p.delete(l);let c=new Map(o.items.map(f=>[f.targetAlias,f.relation])),d=c.get(l)??null;return c.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:u,mainRelation:d,joinConditions:p,joinRelations:c,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Ws(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let u=r.get(s);u?u.push(l):r.set(s,[l])};if(i(e.from.appId,Om(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER"||s.type==="CROSS")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=Zr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[u,p]=await Promise.all([Ge(s,t,n),Aw(s,t,n)]),c=zI(l).filter(d=>u.get(d)==="STATUS");if(c.length>0){let d=await Ys(s,t,n);if(d.enable&&d.states&&d.states.length>0){let f=new Set(d.states.map(E=>E.name));for(let E of c)p.set(E,f)}}return[s,u,p]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function zI(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 jt(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"&&Ms(e.left.expr,t),e.right.type==="CASE_VALUE"&&Ms(e.right.expr,t);return;case"LOGICAL":jt(e.left,t),jt(e.right,t);return;case"NOT":case"GROUP":jt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Ms(e,t){for(let n of e.branches)jt(n.condition,t)}function qI(e){let t=[];jt(e.where,t),jt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Ms(n.expr,t);return t}function de(e){return e.alias??e.cteName}function Lm(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>de(n)===t)}function Vs(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Rp(e,t,n){let r=qI(e);if(r.length===0)return new Map;let i=new Set,o=Vs(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=Lm(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 Ge(s,t,n)]));return new Map(a)}function Fe(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function mp(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||xn(t,n)}function xn(e,t){if(e.type==="FIELD_REF"){t.push(Fe(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){xn(e.left,t),xn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){xn(e.left,t),xn(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"&&xn(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"?Lr(n,t):n.type!=="ARRAY"&&xn(n,t)}function Lr(e,t){if(e.type==="AGG_REF"){mp(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Lr(e.left,t),Lr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Fc(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")Lr(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;Ji(n,t)}}function Ji(e,t){if(e.type==="STRING_FUNC"){Fc(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Ji(e.left,t),Ji(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"?Fc(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?Lr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Ji(r,t)}}function FR(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;mp(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function JI(e){let t=[];for(let n of e)n.type==="AGGREGATE"?mp(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Lr(n.expr,t):n.type==="ARITH_COL"?FR(n.expr,t):n.type==="STRFUNC_COL"?Fc(n.expr,t):n.type==="SCALAR_VALUE_COL"?Ji(n.expr,t):n.type==="CASE_COL"&&FR(n.expr,t);return t}var XI=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function QI(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":XI.has(e.fieldType)?"string":void 0}async function _m(e,t,n,r){let i=JI(e.columns);if(i.length===0)return;let o=new Set,a=Vs(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=Lm(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await Q(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,u=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...u].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await bp(f,t,n);R&&l.set(f,R)}));let p=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??ne(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let m=p.find(y=>de(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return Ne(r?.get(m.cteName),f.field)?.semantics??V("string");E=s.get(m.appId)?.get(ce(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return Ne(r?.get(e.from.cteName),f.field)?.semantics??V("string");E=s.get(e.from.appId)?.get(ce(e.from,f.field))}else{let m=p.flatMap(y=>{if(y.cteName!==null){let A=r?.get(y.cteName);return Dr(A,f.field)!==void 0?[Ne(A,f.field)?.semantics??V("string")]:[]}let g=s.get(y.appId)?.get(ce(y,f.field));return g?[c(g,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?p.find(m=>de(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function ce(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function bs(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function xe(e,t){let n=e.semantics??ne(e);return{sortKind:QI(e),fieldType:e.fieldType,semantics:t===void 0?n:sr(n,t,e.code)}}function Dm(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:V(e)}}function et(){return{semantics:V("string","KSQL_UNKNOWN")}}function vm(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function tt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:ne({fieldType:"__ID__"})};if(e==="_rid")return Z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Z("number")}function yn(e,t){return Z(St(e,n=>{let r=t?.(n);if(r)return"compareMode"in r?r:r.semantics}))}function _r(e,t){return e.type==="STRING"?Z("string"):e.type==="ARRAY"?vm():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?et():gn(e.arg,t):e.func==="GROUP_CONCAT"?Z("string"):Z("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Z("number"):e.type==="STRING_FUNC"?yn(e,t):e.type==="FIELD_REF"?t(Fe(e.field))??et():e.type==="FIELD"?t(e)??et():et()}function Hs(e){if(e.length===0)return et();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&Qo(n(r.semantics),n(t.semantics)))?e.every(i=>Qo(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?vm("KSQL_MIXED_UNSUPPORTED"):et()}function gn(e,t){if(e.type==="FIELD_REF")return t(Fe(e.field))??et();if(e.type==="FIELD")return e.aggregateRef?Um(e.aggregateRef,t):t(e)??et();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 yn(e,t);let n=e.branches.map(r=>_r(r.result,t));return e.elseResult&&n.push(_r(e.elseResult,t)),Hs(n)}function Um(e,t){return e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN"?Z("number"):e.func==="GROUP_CONCAT"||e.func==="MODE"||e.arg.type==="WILDCARD"?Z("string"):gn(e.arg,t)}function ks(e,t){return e.windowKind==="VALUE"?gn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?Z("number"):e.arg.type==="WILDCARD"?et():gn(e.arg,t):Z("number")}function Ns(e,t){return{...e??{},displayName:t}}function ZI(e){return(e.hiddenWindows?.length??0)>0||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 oo(e,t,n,r,i,o=!1){let a=new Map;ZI(e)&&await Promise.all(Vs(e).map(async y=>{if(a.has(y.appId))return;let g=await Q(y.appId,n,r);a.set(y.appId,new Map(g.map(A=>[A.code,A])))}));let s=[e.from,...e.joins.map(y=>y.table)],l=o&&i===void 0&&s.every(y=>y.cteName===null),u=y=>{if(y.tableAlias!==null){if(y.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let I=a.get(e.from.appId)?.get(y.field);return I?xe(I,e.from.appId):void 0}let A=s.find(I=>de(I)===y.tableAlias);if(!A)return;if(A.cteName!==null)return Ne(i?.get(A.cteName),y.field);let h=a.get(A.appId)?.get(ce(A,y.field));return h?xe(h,A.appId):tt(y.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Ne(i?.get(e.from.cteName),y.field);let A=a.get(e.from.appId)?.get(ce(e.from,y.field));return A?xe(A,e.from.appId):tt(y.field)}let g=s.flatMap(A=>{if(A.cteName!==null){let b=i?.get(A.cteName);return Dr(b,y.field)===void 0?[]:[Ne(b,y.field)]}let h=a.get(A.appId)?.get(ce(A,y.field)),I=h?xe(h,A.appId):tt(y.field);return I?[I]:[]});return g.length===1?g[0]:void 0},p=y=>{if(!l)return;let g=s.filter(A=>{if(y.tableAlias!==null&&de(A)!==y.tableAlias)return!1;let h=ce(A,y.field);return a.get(A.appId)?.has(h)===!0||tt(y.field)!==void 0});return g.length===1?g[0].appId:void 0},c=(y,g)=>{let A=p(g);return y&&A!==void 0?{...y,publicSourceApp:A}:y},d=new Map,f=new Map((e.hiddenWindows??[]).map(y=>[y.alias,ks(y,u)])),E=y=>y.hiddenWindowRef?f.get(y.field):u(y),R=e.columns.some(y=>y.type==="WILDCARD"||y.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let y of t){let g=Fe(y),A=c(u(g),g);d.set(y,Ns(A,A?.displayName??y))}return d}if(R)for(let y of t){let g=Fe(y),A=c(u(g),g);d.set(y,Ns(A,A?.displayName??y))}return e.columns.filter(y=>y.type!=="WILDCARD"&&y.type!=="PARENT_WILDCARD").forEach((y,g)=>{let A=R?"alias"in y&&y.alias?y.alias:void 0:t[g];if(!A)return;let h;if(y.type==="FIELD"){let I=Fe(y.field);h=c(u(I),I)}else if(y.type==="AGGREGATE")y.func==="GROUP_CONCAT"?h=Z("string"):y.func==="COUNT"||y.func==="SUM"||y.func==="AVG"||y.func==="STDDEV_POP"||y.func==="STDDEV_SAMP"||y.func==="VAR_POP"||y.func==="VAR_SAMP"||y.func==="MEDIAN"?h=Z("number"):(y.func==="MIN"||y.func==="MAX"||y.func==="MODE")&&y.arg.type!=="WILDCARD"&&(h=gn(y.arg,u));else if(y.type==="ARITH_AGG_COL"||y.type==="ARITH_COL")h=Z("number");else if(y.type==="GROUPING_COL")h=Z("number");else if(y.type==="LITERAL_COL")h=Z("string");else if(y.type==="SCALAR_VALUE_COL"){let I=y.expr;I.type==="STRING_FUNC"?h=yn(I,E):I.type==="NUMBER"||I.type==="SCALAR_ARITH"?h=Z("number"):I.type==="FIELD"?h=E(I):h=Z("string")}else if(y.type==="STRFUNC_COL")h=yn(y.expr,E);else if(y.type==="WINDOW_COL")h=ks(y,u);else if(y.type==="CASE_COL"){let I=y.expr.branches.map(b=>_r(b.result,E));y.expr.elseResult&&I.push(_r(y.expr.elseResult,E)),h=Hs(I)}else y.type==="SCALAR_SUBQUERY_COL"&&(h=et());d.set(A,Ns(h,y.aliasDisplay??A))}),d}function ew(e,t){let n=pe.get(e),r=pe.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],u=l===void 0?void 0:r?.get(l),p;if(s&&u){let c=Hs([s,u]),d=s.publicSourceApp===u.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=c;p=d===void 0?E:{...E,publicSourceApp:d}}else p=et();i.set(o,Ns(p,s?.displayName??o))}),i}function yp(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 u=n.find(p=>de(p)===s.tableAlias);return!u||u.cteName!==null?void 0:bs(u,s.field)??t.get(u.appId)?.get(ce(u,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:bs(e.from,s.field)??t.get(e.from.appId)?.get(ce(e.from,s.field));if(n.some(u=>u.cteName!==null))return;let l=r.flatMap(u=>{let p=bs(u,s.field)??t.get(u.appId)?.get(ce(u,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var Mm=new WeakSet,gp=new WeakMap;function Gc(e){return Mm.add(e),e}function tw(e,t){return gp.set(e,t),t}function km(e,t){if(t.capability!=="EXACT_PUSHDOWN")return!1;let n=e.columns.filter(r=>r.type==="AGGREGATE"&&r.func==="COUNT"&&!r.distinct&&r.arg.type==="WILDCARD");return n.length!==1||e.columns.some(r=>r!==n[0]&&r.type!=="LITERAL_COL")?!1:!e.distinct&&ee(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function nw(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function rw(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":z(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new Wn;if(!nw(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=Mn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function iw(e,t,n,r,i,o=!0,a,s,l){let u=gp.get(e);if(Mm.has(e)&&u!==void 0&&km(e,u)){let B=await rw(e,t);if(B!==null)return B}let p=n.maxRecords??1e4,c=new Set,d=n.fetchParallel??1;await Promise.all([po(e.where,t,n,r,c,i),po(e.having,t,n,r,c,i)]);let[f,E,R]=await Promise.all([Ws(e,t,r),Rp(e,t,r),_m(e,t,r,i)]),m=yp(e,E),y=await Ro(e,t,r,i,Pt(e.having)||pp(e)),g=Im(e,y),A=Ep.get(e);if(A&&!Sr(A.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let h=A??$s(e,f)??Cn(e,f);xl(h);let I="joinPlan"in h?h:null,b=I&&Sr(I.joinPlan)?I:null,D=t,C=h.mainCondition,M=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let v=s?s.prefilterWhere:b?null:C,x=b?.queriesByAlias.get(e.from.alias)??"",O=await sy(e.columns,t,n,r,c,i),_=mt(e.where),N=_?Promise.resolve([]):Xi(e,e.from,D,p,d,!0,n.onLimitReached??"error",c,v,b?!1:o,l,x),P=[],S=[];for(let B of e.joins){if(_){P.push({join:B,promise:Promise.resolve([])});continue}let U=B.table.alias?b?.queriesByAlias.get(B.table.alias)??"":"",H=b?null:B.table.alias?M.get(B.table.alias)??null:null;H!==null||U!==""?P.push({join:B,promise:Xi(e,B.table,D,p,d,!1,n.onLimitReached??"error",c,H,!0,l,U)}):S.push(B)}let w=a?Promise.resolve(a):so(e,t,r,i);w.catch(()=>{});let L=await N,F=new Map;F.set(e.from.alias,L);for(let{join:B,promise:U}of P)F.set(B.table.alias,await U);await Promise.all(S.map(async B=>{let H=await jm(e,B,F,D,p,d,n.onLimitReached??"error",c,r,i,null,l,"")??await Xi(e,B.table,D,p,d,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(B.table.alias,H)}));let{optionOrders:K,sortKinds:W,semantics:k}=await w,{rows:G,columns:j}=Zu({tables:F,stmt:e,scalarCache:O,optionOrders:K,sortKinds:W,orderSemantics:k,fieldTypeResolver:m.row,fieldSemanticsResolver:y,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:g,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:ro.get(e),plainGroupByPlan:l,warnings:c,evaluationContext:le(n)}),$=await Ap(e,G,j,t,r);return{type:"SELECT",rows:G,columns:$,rowCount:G.length,warnings:[...c]}}function ow(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
14
+ `,r:"\r",t:" "};if(R in m){d+=m[R];continue}R!=="u"&&Yt(`has invalid escape \\${R}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||Yt("has invalid unicode escape",n,r,i);for(let A=0;A<4;A++)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)))&&Yt("has an unpaired high surrogate",n,r,i),o(),o();let A=e.slice(n,n+4);for(let I=0;I<4;I++)o();let h=Number.parseInt(A,16);(h<56320||h>57343)&&Yt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),d+=String.fromCodePoint(65536+(g-55296<<10)+h-56320)}else g>=56320&&g<=57343?Yt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):d+=String.fromCharCode(g)}f||Yt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:d,...l});continue}let u=e.slice(n),p=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(u)?.[0];if(p){for(let d=0;d<p.length;d++)o();t.push({kind:"number",lexeme:p,...l});continue}let c=/^(true|false|null)/.exec(u)?.[0];if(c){for(let d=0;d<c.length;d++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}Yt(`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 ys(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function gs(e){if(e.byteLength===0)throw new Y("JSON source is empty.");let t=mR(RR(e)),n=0,r=(u,p=t[n])=>{throw new Y(`JSON ${u} (offset=${p.offset}, line=${p.line}, column=${p.column}).`)},i=(u,p)=>u.kind==="punct"&&u.value===p,o=u=>{let p=t[n];(p.kind!=="punct"||p.value!==u)&&r(`expected ${u}; found ${ys(p)}`,p),n++},a=()=>{let u=t[n++];if(u.kind==="string")return u.value;if(u.kind==="number")return{kind:"number",lexeme:u.lexeme};if(u.kind==="literal")return u.value;if(u.kind==="punct"&&u.value==="{"){let p=new Map;if(i(t[n],"}"))return n++,p;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${ys(c)}`,c);let d=c.value;p.has(d)&&r(`duplicate key ${JSON.stringify(d)}`,c),o(":"),p.set(d,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return p}if(u.kind==="punct"&&u.value==="["){let p=[];if(i(t[n],"]"))return n++,p;for(;;){p.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return p}return r(`expected a value; found ${ys(u)}`,u)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${ys(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new Y("JSON source contains no records.");return l.forEach((u,p)=>{if(!(u instanceof Map))throw new Y(`JSON record ${p+1} must be an object.`)}),l}var QT=new Set(["CHECK_BOX","MULTI_SELECT"]),yR=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Lt(e,t,n){throw new Y(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function ZT(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function eI(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&Lt(n,t.code,"boolean is not accepted."),ZT(e)){t.fieldType==="NUMBER"&&Lt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&Lt(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)||Lt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&Lt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||Lt(n,t.code,"unsupported value type."),!QT.has(t.fieldType)&&!yR.has(t.fieldType)&&Lt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&Lt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&Lt(n,t.code,"array elements must not contain duplicates."),yR.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function pc(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let i=gs(t.bytes);if(i.length>r)throw new Y(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new Y("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,u)=>{for(let d of l.keys())o.has(d)||Lt(u+1,d,"unknown key (not declared in INTO).");let p={},c=new Set;for(let d of n)l.has(d.code)&&(c.add(d.code),p[d.code]=eI(l.get(d.code),d,u+1));a.push(p),s.push(c)}),{receipt:{rows:i.length,encoding:"utf8"},rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function dc(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ms(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(s.rows.length>n)throw new Y(`source rows (${s.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new Y("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let u=new Map(s.columns.map((g,A)=>[g,A]));for(let g of r)if(!u.has(g))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${g}" is missing.`);let p=new Map(i.map(g=>[g.code,g])),c=new Set(r);if(o&&c.has(o))throw new Y("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!u.has(o))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let d=[],f=[],E=g=>s.rows.filter(A=>A[g]!=="").length,R=g=>g.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":g.inSubtable||g.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":g.writable===!1?`non-writable ${g.fieldType} field`:`known export-only ${g.fieldType} field`;for(let[g,A]of s.columns.entries()){if(c.has(A)||A===o)continue;let h=p.get(A);if(h)d.push({column:A,reason:R(h),nonEmptyCells:E(g)});else if(e.ignoreUnknownColumns)f.push({column:A,reason:"unknown column ignored by explicit policy",nonEmptyCells:E(g)});else throw new Y(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${A}".`)}for(let g of r){let A=p.get(g);if(!A)throw new Error(`ArgumentError: DML target field ${g} does not exist.`);if(A.inSubtable||A.writable===!1||A.fieldType==="FILE"||A.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${g} is not writable (${A.fieldType}).`)}let m=[],y=s.rows.map(g=>{let A=[],h={};for(let I of r){let b=g[u.get(I)];try{h[I]=ER(b,p.get(I)?.fieldType,{cliKintone:!0})}catch(D){if(!(D instanceof Vi))throw D;h[I]=b,A.push({field:I,code:D.code,message:D.message})}}return m.push(A),h});return{receipt:{rows:s.rows.length,encoding:a},rows:y,columns:[...r],columnMeta:new Map(r.map(g=>[g,{fieldType:p.get(g)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:m,...o?{recordNumberSourceValues:s.rows.map(g=>g[u.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:d,ignoredUnknownColumns:f}}}let l=s.rows.map(u=>Object.fromEntries(s.columns.map((p,c)=>[p,u[c]])));return{receipt:{rows:s.rows.length,encoding:a},rows:l,columns:s.columns,columnMeta:new Map(s.columns.map(u=>[u,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Hi=(e,t,n)=>{throw new Y(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function gR(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let o=gs(t.bytes);if(o.length>r)throw new Y(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new Y("IMPORT targets contain duplicates.");let s=0;return{receipt:{rows:o.length,encoding:"utf8"},records:o.map((l,u)=>{let p=u+1;for(let E of l.keys())a.has(E)||Hi(p,E,"unknown key (not declared in INTO).");let c=new Map,d=new Map,f=new Set;for(let E of n){let R=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(R))continue;let m=l.get(R);if(E.kind==="FIELD"){m instanceof Map&&Hi(p,R,"object is not accepted for a top-level field."),c.set(R,m);continue}Array.isArray(m)||Hi(p,R,"subtable value must be an array."),f.add(R);let y=new Set(E.children),g=m.map((A,h)=>{A instanceof Map||Hi(p,R,`childRow=${h+1} must be an object.`);let I=A;for(let b of I.keys())y.has(b)||Hi(p,b,`unknown child key in subtable ${R} at childRow=${h+1}.`);if(s++,s>i)throw new Y(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:h+1,values:I}});d.set(R,g)}return{rowNumber:p,top:c,subtables:d,replacementTables:f}})}}function hR(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ms(t.bytes,{encoding:a,hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||s.columns[0]!=="*")throw new Y('ERR_IMPORT_MARKER: first CSV header must be "*".');let l=new Map(s.columns.map((f,E)=>[f,E]));if(o&&!l.has(o))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=n.filter(f=>f.kind==="FIELD"),p=n.filter(f=>f.kind==="SUBTABLE");for(let f of u)if(!l.has(f.field))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${f.field}" is missing.`);for(let f of p){if(!f.rowIdSourceHeader||!l.has(f.rowIdSourceHeader))throw new Y(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${f.subtableCode} is missing.`);for(let E of f.children)if(!l.has(E))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required child header "${E}" is missing.`)}let c=[],d;if(s.rows.forEach((f,E)=>{let R=E+2,m=f[0];if(m!==""&&m!=="*")throw new Y(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(m)} at source row ${R}.`);if(m==="*"){if(c.length>=i)throw new Y(`source parent rows exceed maxRecords (${i}).`);d={rowNumber:c.length+1,markerRowNumber:R,top:new Map(u.map(y=>[y.field,f[l.get(y.field)]])),subtables:new Map(p.map(y=>[y.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:f[l.get(o)]}:{}},c.push(d)}else if(d){for(let y of u){let g=f[l.get(y.field)];if(g!==""&&g!==d.top.get(y.field))throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${y.field} at source row ${R}.`)}if(o){let y=f[l.get(o)];if(y!==""&&y!==d.recordNumberSourceValue)throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new Y(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let y of p){let g=f[l.get(y.rowIdSourceHeader)],A=new Map(y.children.map(I=>[I,f[l.get(I)]]));if(g===""&&[...A.values()].every(I=>I===""))continue;let h=d.subtables.get(y.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:R,...g?{rowId:g}:{},values:A})}}),c.length===0)throw new Y("CSV has no parent rows.");return{receipt:{rows:s.rows.length,encoding:a},records:c}}var tI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),nI=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Rc(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(d=>!d.inSubtable).map(d=>[d.code,d])),a=new Map;for(let d of n)if(d.inSubtable&&d.subtableCode){let f=a.get(d.subtableCode);f||a.set(d.subtableCode,f=new Map),f.set(d.code,d)}let s=t.filter(d=>d.kind==="FIELD"),l=t.filter(d=>d.kind==="SUBTABLE");for(let d of s)AR(d.field,o.get(d.field),void 0);for(let d of l){let f=o.get(d.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${d.subtableCode} does not exist.`);let E=a.get(d.subtableCode)??new Map;for(let R of d.children)AR(R,E.get(R),d.subtableCode)}let u=new Map(l.map(d=>[d.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),p=e.records.map(d=>rI(d,s,l,o,a,r,i,u)),c=p.flatMap(d=>[...d.errors]);return{parents:p,errors:c,invalidParentRows:new Set(p.filter(d=>!d.valid).map(d=>d.parentRow)),tableCounts:u}}function rI(e,t,n,r,i,o,a,s){let l=[],u={};for(let d of t)e.top.has(d.field)&&Ec(e.top.get(d.field),r.get(d.field),o,u,d.field,l,fc(e,a,d.field));let p={};if(a==="INSERT")for(let d of r.values())d.fieldType==="SUBTABLE"||d.writable===!1||e.top.has(d.code)||SR(d,o,p,l,fc(e,a,d.code));let c=new Map;for(let d of n){if(!e.subtables.has(d.subtableCode))continue;let f=s.get(d.subtableCode);f.parentsPresent++;let E=[];for(let R of e.subtables.get(d.subtableCode)){f.childRows++;let m=l.length,y={},g=i.get(d.subtableCode);for(let A of d.children){let h=g.get(A),I=fc(e,a,A,d.subtableCode,R.childRowNumber,R.sourceRowNumber??e.markerRowNumber);R.values.has(A)?Ec(R.values.get(A),h,o,y,A,l,I):SR(h,o,y,l,I)}l.length===m?(f.validChildRows++,E.push(y)):f.invalidChildRows++}c.set(d.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:u,subtables:c,replacementTables:e.replacementTables,errors:l}}function AR(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&&nI.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function SR(e,t,n,r,i){let o=Ln(e.defaultValue)?"":e.defaultValue;Ec(o,e,t,n,e.code,r,i,!Ln(e.defaultValue))}function Ec(e,t,n,r,i,o,a,s=!1){let l=iI(e),u=Ye(l,t,n);u.ok?r[i]={value:oI(l,t)?l:u.value}:o.push({...a,code:u.code,message:s?`\u65E2\u5B9A\u5024: ${u.message}`:u.message})}function iI(e){return TR(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:TR(t)?t.lexeme:t):e}function TR(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function oI(e,t){return tI.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function fc(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 mc=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function yc(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":aI(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 aI(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 gc(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 wR(e,t){return gc(e,t,"DROP")}function bR(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 NR(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,u])=>{let p=a?.record[l]?.value,c=Array.isArray(p)?p.length:0;return{table:l,existingRows:c,inputRows:u.length,addRows:u.length,deleteRows:c}});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 sI(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function CR(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 PR(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],u=l===void 0?void 0:r.get(l),p=[...o.errors];if(!u||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:p};let c=new Map,d=[];for(let f of o.replacementTables){let E=sI(u.record,f),R=new Set(E.map(b=>b.id).filter(b=>!!b)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],g=0,A=0,h=0,I=m.map((b,D)=>{let C=y[D]??{};return b.rowId&&R.has(b.rowId)?(g++,{rowId:b.rowId,record:C}):(b.rowId&&((i.get(b.rowId)??[]).some(v=>v.parentId!==l||v.table!==f)&&p.push({operation:"UPDATE",parentRow:o.parentRow,field:b.rowId,subtable:f,subrow:b.childRowNumber,sourceRow:b.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${b.rowId}`,sourceValues:b.values}),h++),A++,{record:C})});c.set(f,I),d.push({table:f,existingRows:E.length,inputRows:m.length,updateRows:g,addRows:A,deleteRows:E.length-g,rowIdNotFound:h})}return{parentRow:o.parentRow,targetId:l,...u.revision===void 0?{}:{revision:u.revision},valid:p.length===0,top:o.top,subtables:c,tables:d,errors:p}})}var hc="#__import_source";function OR(e){return{...e,from:{appId:0,alias:null,cteName:hc}}}function lI(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Ac(e,t){let n=e.map(lI),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 uI="\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u3001\u7D50\u679C\u304C\u6B20\u843D\u3057\u305F\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002",Wn=class extends Error{constructor(){super("SearchAbortedError: kintone \u306E\u691C\u7D22\u304C 10 \u4E07\u4EF6\u3067\u6253\u3061\u5207\u3089\u308C\u305F\u305F\u3081\u3001\u5B8C\u5168\u306A\u5BFE\u8C61\u96C6\u5408\u3092\u78BA\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002"),this.name="SearchAbortedError"}};function Dr(e,t){return e?.columns.includes(t)?t:void 0}function Ne(e,t){let n=Dr(e,t);return n===void 0?void 0:e?.columnMeta?.get(n)}var pe=new WeakMap;function rm(e){return pe.get(e)}var Hn=new WeakMap,vr=new WeakMap,_s=new WeakMap;function LR(e,t){t?.length&&_s.set(e,[...new Set(t)])}function wr(e,t){let n=_s.get(e);return{result:t,...n?.length?{warnings:n}:{}}}var Lc=Symbol("statementEvaluationContext"),cI=Symbol("importSourceMaterializedCallback"),im=Symbol("nativeUpsertExecution"),pI=Symbol("nativeUpsertExplainCapability"),dI=Symbol("batchCompletionObserver");function om(e){return e[im]===!0}function fI(e){return im in e}function EI(e){return e[pI]}function am(e){return e[Lc]?e:{...e,[Lc]:{statementInstant:new Date}}}function le(e){return e[Lc]??{}}async function rp(e,t,n){let r=e[cI];r&&await r({name:t.sourceName,kind:t.kind,...n})}var _R=new WeakMap,RI=1,mI=1;function sm(e,t){if(t)return t;let n=_R.get(e);return n||(n=`client:${RI++}`,_R.set(e,n)),n}function ip(e){return`${e}\0inv:${mI++}`}async function op(e,t,n={}){Ct(n);let r=Date.now(),i=ip(sm(t,n.cacheContext));try{let o=hb(e,n.enableImport===!0),a=lm(),s=cm(t,a),l={aborted:!1},u=sp(s,l,!gI(o)||vu(o)),p=await _c(o,u,n,i);a.elapsedMs=Date.now()-r;let c={...pm(p,l),metrics:a};if(p.type==="SELECT"){let d=pe.get(p);d&&pe.set(c,d)}return c}finally{wp(i)}}function lm(){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 um=Symbol("limitMetricsSink");function ap(e,t){let n=e[um];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function cm(e,t){let n={[um]: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 Tp(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var DR=Symbol("searchAbortFailClosed");function sp(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 Wn;return i}}}function yI(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 gI(e){return e.type==="SELECT"||e.type==="UNION"||e.type==="WITH"}function pm(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(uI),{...e,warnings:[...n]}}async function vR(e,t,n){let r=await Eo(e,t,n);return uc(r),r}async function Eo(e,t,n){return pR(e,{select:async r=>{let{resolver:i}=await Kn(r,t,n);return Te(r.where,i)},dml:r=>wm(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Kn(r,t,n);return cc(r,i)},joinServerFunctionPlan:async r=>{await Kn(r,t,n);let i=await Ws(r,t,n),o=$s(r,i);return o===null?null:(Sr(o.joinPlan)&&Ep.set(r,o),o.joinPlan)}})}async function _c(e,t,n,r){n=am(n);let i=await Eo(e,t,r);e.type!=="EXPLAIN"&&uc(i);let o=vc(e);if(o!==null&&!Jw(e))throw new Error(Is(o,"in a batch"));if(nr("phase15b",e),Go("phase15b",e),ut(e),e.type!=="EXPLAIN"&&await MI(e,t,r),e.type==="IMPORT")return Zm(e,t,n,r);if(e.type==="UPDATE"&&e.applyBlocks?.length){if(e.validationErrorTable)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return Jc(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 Np(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 hI(e,t,n,r);case"SELECT":return zt(Gc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return Fm(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return hp(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Vw(e,t,n,r);case"INSERT_SELECT":return Lp(e,t,n,r);case"UPSERT":return cb(e,t,n,r);case"UPSERT_SELECT":return Up(e,t,n,r);case"UPDATE":return Jc(e,t,n,r);case"DELETE":return lb(e,t,n,r);case"REORDER":return mb(e,t,n,r);case"SHOW_APPS":return ry(t);case"DESCRIBE":return iy(e,t,r);case"EXPLAIN":return Cb(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?it(n.dmlMaxRows,"dmlMaxRows",Jt):Jt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",De):De,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,n.resolveMetadata!==!1,fI(n)?{surface:"CLI",enableNativeUpsert:om(n),clientHasNativeUpsert:EI(n)??Tp(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 mm(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var lp=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],up=["$id","$err_subtable","$err_field","$err_code","$err_count"];function cp(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 dm(e=!1){let t=e?up:lp;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:V(n==="$id"||n==="$err_count"?"number":"string")}]))}async function hI(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return fm(e,t,n,r)}async function fm(e,t,n,r){let i=await Q(e.appId,t,r),o=new Map(i.filter(L=>!L.inSubtable).map(L=>[L.code,L])),a=new Set(i.filter(L=>L.inSubtable).map(L=>L.code)),s=Nu(e,i),l=new Set(s.flatMap(L=>wu(L.field))),u={present:Iu.filter(L=>l.has(L)),absent:Iu.filter(L=>!l.has(L))},p=e.checkGroups??[],c=Er(p);for(let L of c){if(L.field!=="$id"&&!o.has(L.field)&&!a.has(L.field))throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!o.has(L.field)&&a.has(L.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let d=new Map([...o].map(([L,F])=>[L,F.fieldType]));d.set("$id","RECORD_NUMBER"),Vn(e,d);let f=cp(e.where),E=[...new Set(["$id",...s.map(L=>L.subtableCode??L.field.code),...f,...c.map(L=>L.field)])];for(let L of f){if(L!=="$id"&&!o.has(L)&&!a.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${e.appId}.`);if(L!=="$id"&&!o.has(L)&&a.has(L))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let R=s.some(L=>L.field.fieldType==="NUMBER")?await Dt(e.appId,t,r):void 0,m=L=>L.field==="$id"?ne({fieldType:"__ID__"}):o.get(L.field)?.semantics??(o.has(L.field)?ne(o.get(L.field)):void 0),y=Te(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Bn(y)}).`);let g=new Map([...o].map(([L,F])=>[L,F.fieldType])),A=new Map([...o.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),h=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:Ul(e.where,{allowUnqualifiedFields:!0,fieldTypes:g,fieldOptions:A,allowKlike:!1}),I=h===null?"":z(h),D=(await Ke(t.getRecords,e.appId,I,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(L=>({id:String(L.$id?.value??""),record:L,flat:Ht(L,null)})).filter(L=>e.where===null||ue(e.where,L.flat,F=>d.get(F.field),void 0,void 0,le(n))),C=[],M=new Map,v=new Map,x=new Set,O=0,_=L=>{if(x.add(L.id),O+=1,e.summary){let W=JSON.stringify([L.id,L.subtable??"",L.field,L.code]),k=v.get(W);k?k.$err_count=String(Number(k.$err_count)+1):v.set(W,{$id:L.id,$err_subtable:L.subtable??"",$err_field:L.field,$err_code:L.code,$err_count:"1"});return}let F=JSON.stringify([L.id,L.subtable??"",L.field,L.code,L.message]),K=M.get(F);K?(K.$err_count=String(Number(K.$err_count)+1),L.subrow!==void 0&&(K.$err_subrow=`${K.$err_subrow},${L.subrow}`,K.$err_subrow_id=`${K.$err_subrow_id},${L.subrowId??""}`)):M.set(F,{$id:L.id,$err_field:L.field,$err_code:L.code,$err_message:L.message,$err_value:L.value,$err_subtable:L.subtable??"",$err_subrow:L.subrow===void 0?"":String(L.subrow),$err_subrow_id:L.subrowId??"",$err_count:"1"})},N=s.filter(L=>!L.subtableCode),P=new Map;for(let L of s){if(!L.subtableCode)continue;let F=P.get(L.subtableCode)??[];F.push(L),P.set(L.subtableCode,F)}for(let L of D){for(let F of N){let K=L.record[F.field.code]?.value,W=Ye(K,F.field,R);W.ok||_({id:L.id,field:F.field.code,code:W.code,message:W.message,value:Si(K,F.field.fieldType)})}for(let[F,K]of P){let W=L.record[F]?.value;if(Array.isArray(W))for(let k=0;k<W.length;k++){let G=W[k];for(let j of K){let $=G.value?.[j.field.code]?.value,B=Ye($,j.field,R);if(!B.ok){let U=Ga(F,k,G);_({id:L.id,field:j.field.code,code:B.code,message:B.message,value:Si($,j.field.fieldType),...U})}}}}for(let F of Na(p,L.flat,K=>d.get(K.field)))_({id:L.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)C.push(...v.values());else for(let L of M.values()){let F=Number(L.$err_count);L.$err_subtable!==""&&F>=2&&(L.$err_message=`${L.$err_message}\uFF08${F}\u884C: ${L.$err_subrow}\uFF09`),C.push(L)}let w={type:"SELECT",columns:[...e.summary?up:lp],rows:C,rowCount:C.length,validateStats:{errorRecords:x.size,errorCount:O,constraintMetadata:u}};return pe.set(w,dm(e.summary===!0)),w}var nt=1e4;function _t(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,u)=>l!==n[u])||!AI(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 AI(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||!Qo(i.semantics,r.semantics))return!1}return!0}var Cr=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};async function Em(e,t,n={}){let r=Yl(n.asOf??new Date,n.timezone);Ct(n);let{statements:i,meta:o}=nc(e,{import:n.enableImport===!0}),a=o.dialect===1&&i.some(ic)?[iR]:[],s=ql(i);if(i.forEach(m=>Go("phase15b",m)),n.allowApplyMutation!==!0&&i.some(m=>Rl(m)||m.type==="UPSERT"&&SI(m)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let l=Du(i,n.variables),u=Rm(i,l),p={...n,variables:l};if(n.continueOnError&&s.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let m of s.statements){if(!m.isDml||m.tempTablesReferenced.length===0||m.statementType==="INSERT_SELECT"||m.statementType==="UPSERT_SELECT")continue;let y=i[m.index];if(!(y?.type==="UPDATE"&&y.from?.cteName!=null))throw new oe(`ArgumentError: temp table references in ${m.statementType} are not supported yet.`,m.index)}let c=lm(),d=cm(t,c),f=Date.now(),E=n.timeoutMs!=null?f+n.timeoutMs:null,R=ip(sm(t,n.cacheContext));try{let m=new Map,y=new Map;for(let[C,M]of Object.entries(r.values))y.set(ii(C),{type:"string",value:M});let g=[],A=new Set,h=null;for(let C=0;C<i.length;C++){let M=s.statements[C],v={index:C,type:M.statementType};if(h){g.push({...v,status:"skipped",skippedReason:h}),h!=="exit"&&A.add(C);continue}let x=M.dependsOn.find(O=>A.has(O));if(x!==void 0){let O=s.statements[x].tempTablesCreated[0]??`statement ${x}`;g.push({...v,status:"skipped",skippedReason:`dependency: ${O}`}),A.add(C);continue}if(E!==null&&Date.now()>=E){g.push({...v,status:"skipped",skippedReason:"timeout"}),A.add(C),h="timeout";continue}try{let O=E!==null?E-Date.now():null,_=p.confirm,N=_?{...p,confirm:(G,j,$)=>_(G,j,{statementIndex:C,statementCount:i.length,statementType:M.statementType,targetAppId:M.targetAppId,...$?.importDetail?{importDetail:$.importDetail}:{},...$?.applyDetail?{applyDetail:$.applyDetail}:{},...$?.applyDiagnostic?{applyDiagnostic:$.applyDiagnostic}:{}})}:p,P={aborted:!1},S=sp(d,P,M.statementType!=="SELECT"&&M.statementType!=="UNION"&&M.statementType!=="WITH"||vu(i[C])),w=yI(S),L=am(N),F={stmt:i[C],info:M,client:w.client,options:L,cacheContext:R,tempTables:m,variables:y,relativeDateVariables:u,clock:le(L),dialect:o.dialect},K=await wI(TI(F),O,w.closeActive);K.result&&(K.result=pm(K.result,P),a.length>0&&ic(i[C])&&K.result.type==="SELECT"&&(K.result=Bs(K.result,a)));let{exitTriggered:W,...k}=K;g.push({...v,status:"success",...k}),W&&(h="exit")}catch(O){g.push({...v,status:"error",error:bI(O),...O instanceof lo?{result:O.diagnostic}:{}}),A.add(C),O instanceof Cr?h="timeout":O instanceof no?h="assertion":M.statementType==="SET_VARIABLE"||M.statementType==="DECLARE_VARIABLE"?h="fail-fast":n.continueOnError||(h="fail-fast")}}c.elapsedMs=Date.now()-f;let I=[...new Set([...a,...g.flatMap(C=>C.warnings??[])])],b={ok:g.every(C=>C.status==="success"||C.skippedReason==="exit"),statementCount:i.length,statements:g,analysis:s,metrics:c,...I.length>0?{warnings:I}:{}},D=n[dI];if(D)try{D({result:b,tempTables:m})}catch{}return b}finally{wp(R)}}function SI(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 TI(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:u,dialect:p}=e;if(t.type==="SET_VARIABLE"){let f=Ds(t,s);if(ut(f),await vR(f,r,o),f.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:f.expr.elements.map(E=>({type:"string",value:E.value}))});else if(f.expr.type==="SCALAR_SUBQUERY")try{let E=await hm(f.expr.query,r,i,o,a),R=await gm(f.expr.query,r,o,a),m=R?Number(E):Number.NaN;s.set(t.name,R&&Number.isFinite(m)?{type:"number",value:m,raw:E}:{type:"string",value:E})}catch(E){throw E instanceof Gn?new Error(`ArgumentError: ${E.message}`):E}else s.set(t.name,UR(f.expr,u));return{}}if(t.type==="DECLARE_VARIABLE"){if(t.annotation==="RELATIVE_DATE")return s.set(t.name,{type:"relative-date",value:l.get(t.name)}),{};let f=i.variables??{};if(Object.prototype.hasOwnProperty.call(f,t.name))s.set(t.name,{type:"string",value:f[t.name]});else{let E=UR(t.default,u);s.set(t.name,{type:"string",value:E.type==="number"?E.raw??String(E.value):E.value})}return{}}let c=Ds(t,s);if(nr("phase15b",c),Go("phase15b",c),ut(c),p===1&&(c.type==="INSERT"||c.type==="UPDATE"||c.type==="DELETE")&&c.subtableCode)throw new Error("ArgumentError: dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(p===1&&(c.type==="UPSERT"||c.type==="UPSERT_SELECT")){let f=rc(c)[0];if(f)throw new Error(`ArgumentError: ${f.message}`);let E=await Q(c.appId,r,o),R=rc(c,E)[0];if(R)throw new Error(`ArgumentError: ${R.message}`)}if(await vR(c,r,o),c.type==="VALIDATE"){let f=await fm(c,r,{...i,onLimitReached:"error"},o);return c.errorTable&&_t(a,c.errorTable,f.columns,f.rows,i.tempTableMaxRows??nt,pe.get(f)??dm(c.summary===!0)),{result:f}}if(c.type==="IMPORT"){let f=await Zm(c,r,i,o,a);return wr(c,f)}if("validateOnly"in c&&c.validateOnly===!0){let f=await Np(c,r,{...i,onLimitReached:"error"},o,a,n.index+1);return c.validationErrorTable&&_t(a,c.validationErrorTable,f.columns,f.errors,i.tempTableMaxRows??nt,Hn.get(f)??new Map),wr(c,f)}if("onErrorSkip"in c&&c.onErrorSkip===!0){let f=await zc(c,r,{...i,onLimitReached:"error"},o,a,n.index+1);return wr(c,f)}if(c.type==="CREATE_TEMP_TABLE"){let f={...i,maxRecords:i.tempTableMaxRows??nt,onLimitReached:"error"},E=await II(c.query,r,f,o,a);return a.set(c.name,{rows:E.rows,columns:E.columns,columnMeta:pe.get(E)}),{tempTable:c.name,rowCount:E.rows.length,...E.warnings?.length?{warnings:[...E.warnings]}:{}}}if(t.type==="DROP_TEMP_TABLE")return a.delete(t.name),{tempTable:t.name};if(t.type==="EXPLAIN"){let f=c;np.set(f,a);try{return{result:await _c(f,r,i,o)}}finally{np.delete(f)}}if(c.type==="ASSERT"){let f=await mm(c,r,i,o,a);return f.warning!==void 0?{result:f}:{}}if(c.type==="EXIT"){let f=await LI(c,r,i,o,a);return{result:f,...f.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(c.type==="SELECT"||c.type==="UNION")return{result:await yt(c,r,i,a,o,i.captureColumnMeta===!0)};if(c.type==="WITH")return{result:await hp(c,r,i,o,a)};if(c.type==="INSERT_SELECT"){let f=await Lp(c,r,i,o,a);return wr(c,f)}if(c.type==="UPSERT_SELECT"){let f=await Up(c,r,i,o,a);return wr(c,f)}if(c.type==="UPDATE"&&c.from?.cteName!=null)return{result:await Jc(c,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}let d=await _c(c,r,i,o);return wr(c,d)}async function II(e,t,n,r,i){return e.type==="WITH"?hp(e,t,n,r,i,!0):yt(e,t,n,i,r,!0)}async function wI(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Cr;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(u=>{l=setTimeout(u,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Cr)})()},t)})])}catch(a){throw a instanceof Cr&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function bI(e){let t;if(e instanceof Nt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Sc(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:NI(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Sc(r),message:r}}else{let n=String(e);t={code:Sc(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Sc(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function NI(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function CI(e,t=!1,n=!1){let r=new pn(e).tokenize();return new dn(r,{import:t,dialect1:n}).parseStatements()}function PI(e,t){try{let n=CI(`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 Rm(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)?PI(r.name,t[r.name]):r.default);return n}function UR(e,t={}){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:q(e)};case"KINTONE_FUNC":return{type:"string",value:xf(e.name,t)};case"STRING_FUNC":return{type:"string",value:Ae(e,{},void 0,void 0,t)};case"ARITH":{let n=Ee(e,{},t);if(!Number.isFinite(n))throw new Error("ArgumentError: SET scalar arithmetic produced a non-finite number.");return{type:"number",value:n,raw:String(n)}}case"VARIABLE":throw new Error(`InternalError: unresolved variable @${e.name} reached scalar evaluation.`)}}function Ds(e,t){return Dc(e,t,!1)}function Is(e,t){return dr(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 Dc(e,t,n){if(Array.isArray(e))return e.map(r=>Dc(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,Dc(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=OI(i);if(o.type==="SELECT"&&Ze(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&Ze(o.where,!0))throw new Error("ArgumentError: empty-array simplification makes the target WHERE always true; use an explicit safe target condition.");return o}return e}function Ze(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function OI(e){if(e.type==="NOT"&&Ze(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&Ze(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(Ze(t,!1)||Ze(n,!1))return{type:"BOOLEAN",value:!1};if(Ze(t,!0))return n;if(Ze(n,!0))return t}else if(e.op==="OR"){if(Ze(t,!0)||Ze(n,!0))return{type:"BOOLEAN",value:!0};if(Ze(t,!1))return n;if(Ze(n,!1))return t}}return e}function vc(e){if(Array.isArray(e)){for(let t of e){let n=vc(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=vc(n);if(r!==null)return r}}return null}var no=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Gn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function mm(e,t,n,r,i){let o=await ym(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 no(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function LI(e,t,n,r,i){let o=await ym(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function ym(e,t,n,r,i){let o=await hs(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 hs(e.low,t,n,r,i),u=await hs(e.high,t,n,r,i);return{passed:Gt(">=",o.value,l.value,Tc(o,l))&&Gt("<=",o.value,u.value,Tc(o,u)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await hs(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?V("number"):V("string"):Tc(o,a);return{passed:Gt(e.op,o.value,a.value,s),actual:o.value}}function Tc(e,t){return V(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function hs(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:q(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(Uc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await hm(e.query,t,n,r,i),a=await gm(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof Gn?new no(o.message):o}}}async function gm(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 oo(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function hm(e,t,n,r,i){let{query:o,probed:a}=_I(e),s=await Zi(o,t,n,r,i);if(s.columns.length!==1)throw new Gn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Gn("scalar subquery returned no rows (expected 1 row).");if(s.rowCount>1){let l=a&&s.rowCount===2?"2 or more rows":`${s.rowCount} rows`;throw new Gn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function _I(e){return Mt(e)||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function Uc(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=Uc(e.left),n=Uc(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 Ro(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=i||Pt(e.where)?[...new Set(o.filter(d=>d.cteName===null).map(d=>d.appId))]:[],s=new Map(await Promise.all(a.map(async d=>{let f=await Q(d,t,n);return[d,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,u=d=>{if(Array.isArray(d)){d.forEach(u);return}if(d===null||typeof d!="object")return;let f=d;if(f.type==="SELECT")return;let E=String(f.op),R=f.right,m=["=","!=","<>"].includes(E)&&R?.type==="STRING"&&R.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(E)||m)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(u)};u(e.where),u(e.having);for(let d of e.columns)d.type==="CASE_COL"&&u(d.expr);let p=new Map;await Promise.all([...s].map(async([d,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let R=await bp(d,t,n);R&&p.set(d,R)}));let c=(d,f,E)=>{if(f==="$id")return sr(ne({fieldType:"__ID__"}),d.appId,"$id");if(E&&d.subtableCode){if(f==="_rid")return V("string");if(f==="_idx"||f==="_pid")return V("number")}let R=s.get(d.appId)?.get(ce(d,f));if(!R)return;let m=R.semantics??ne(R),y=R.fieldType==="STATUS"&&p.has(d.appId)?{...m,optionOrder:p.get(d.appId)}:m;return sr(y,d.appId,R.code)};return d=>{if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,d.field,!1);let E=o.find(R=>de(R)===d.tableAlias);return E?E.cteName!==null?Ne(r?.get(E.cteName),d.field)?.semantics??V("string"):c(E,d.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?Ne(r?.get(e.from.cteName),d.field)?.semantics??V("string"):c(e.from,d.field,!0);let f=o.flatMap(E=>{let R=E.cteName!==null?r?.get(E.cteName):void 0,m=E.cteName!==null?Dr(R,d.field)!==void 0?Ne(R,d.field)?.semantics??V("string"):void 0:c(E,d.field,!0);return m?[m]:[]});if(f.length===1)return f[0];if(!o.some(E=>bs(E,d.field)!==void 0))return f.length>1?V("string"):void 0}}var Am=new WeakMap;async function Kn(e,t,n,r,i=!1){let o=await Ro(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Qd(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&Am.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function rt(e){return[...e.columns.filter(t=>t.type==="WINDOW_COL"),...e.hiddenWindows??[]]}function DI(e){return rt(e).some(t=>t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function Sm(e){return DI(e)||rt(e).some(t=>t.windowKind==="VALUE")}function vI(e,t){let n=ee(e);return n.type!=="PLAIN"||n.allItems.length===0?!1:n.allItems.every(r=>t.some(i=>r.type==="FIELD_NAME"&&i.key.type==="FIELD_NAME"?i.key.name===r.name:r.type===i.key.type&&JSON.stringify(r)===JSON.stringify(i.key))?!0:e.columns.some(i=>!("alias"in i)||i.alias===null||!t.some(o=>o.key.type==="FIELD_NAME"&&o.key.name===i.alias)?!1:r.type==="FIELD_NAME"&&i.type==="FIELD"?i.field===r.name:r.type==="ARITH_KEY"&&i.type==="ARITH_COL"||r.type==="FUNC_KEY"&&i.type==="STRFUNC_COL"?JSON.stringify(r.expr)===JSON.stringify(i.expr):!1))}function MR(e,t,n,r,i){return vI(e,t)?!0:i!==void 0&&e.joins.length===0&&e.from.cteName!==null?t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===de(e.from)}):r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function kR(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"||MR(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`+kR(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||MR(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`+kR(n,"VALUE"));return i}function Bs(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=pe.get(e);return r&&pe.set(n,r),n}function pp(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=>Pt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function Im(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Fe(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=V("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=V("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=gn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=gn(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?V("string"):V("number"):r.type==="STRFUNC_COL"?i=yn(r.expr,o=>{let a=t(o);return a?{compareMode:a.compareMode}:void 0}).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=V("string")),i&&n.set(r.alias,i)}return r=>{if(r.tableAlias!==null)return t(r);let i=Oe(r.field,n.keys());return i===void 0?t(r):n.get(i)}}function Bn(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 vs(e){return e.orderBy.length>0||rt(e).some(t=>t.orderBy.length>0)}async function wm(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Pt(e.where)?await Q(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Te(null,()=>{}):Te(e.where,o=>{if(o.field==="$id")return ne({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?ne(a):void 0)})}async function Pr(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await wm(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ae(`WHERE predicate cannot be represented by kintone REST (${Bn(r)})`)}async function zt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){YI(e);let l,u=new Set;if(await io(e,t,r,i),FI(e))return l=BI(e,n),o&&pe.set(l,await oo(e,l.columns,t,r,i,a)),l;let{resolver:p}=await Kn(e,t,r,i,Sm(e)),c=Tm(e,p,s),d=await Or(e,t,r,i);await oy(e,t,n,r,u,i);let f=tw(e,Te(e.where,p));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Bn(f)}).`);let E=je(e),R,m;if(f.capability==="SUPERSET_PREFILTER"){let C=await Ro(e,t,r,i),M=cc(e,C);M.eligible&&lc(e,M)&&(R=M.plan)}if(R===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let C=null;try{C=z(e.where)}catch{C=null}m=ua({select:e,selectMode:E,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:C,relativeFunctionNames:Se(e.where)})??void 0,m&&(R=m.prefilterPlan)}let y=f.capability==="EXACT_PUSHDOWN"?E:"FULL_SCAN",g=await so(e,t,r,i),A=vs(e)?(e.orderMode==="KINTONE_NATIVE"?_i:Li)({stmt:e,staticMode:y,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:g.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Pe(e.where)}):null,h=await WI(e,A?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":y,t,r),I=dp(e,n,A),D=m!==void 0&&(E==="FULL_SCAN"||A?.kind==="CANONICAL_LOCAL")?sp(t,{aborted:!1},!0):t;try{y==="SIMPLE"?l=await $I(e,D,I.effectiveOptions,r,A,g):l=await iw(e,D,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&R===void 0,g,R,d)}catch(C){Nm(I,C)}return o&&pe.set(l,await oo(e,l.columns,t,r,i,a)),Bs(l,[...u,...c,...h])}function Mc(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 bm(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 Or(e,t,n,r){let i=ee(e);if(!Mt(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(c=>c.table)],s=new Map,l=await Promise.all(a.map(async c=>{if(c.cteName!==null){let R=r?.get(c.cteName);if(!R)throw new Error(`InternalError: materialized schema ${c.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:R.columns}}let d=await Q(c.appId,t,n);if(!c.subtableCode){for(let R of d){if(R.inSubtable!==!0||!R.subtableCode)continue;let m=s.get(R.code)??[];m.push({appId:c.appId,owner:R.subtableCode}),s.set(R.code,bm(m))}return{kind:"APP",fieldCodes:d.filter(R=>!R.inSubtable).map(R=>R.code)}}let f=d.filter(R=>R.inSubtable&&R.subtableCode===c.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:d.filter(R=>R.inSubtable&&R.subtableCode===void 0)).map(R=>R.code),parentFieldCodes:d.filter(R=>!R.inSubtable).map(R=>R.code)}})),u=Ld(e,(c,d)=>l[d]),p=Ud(o,e.columns,u);return UI(e,o,p,s),Yr(e,Fd(e,p,u)),p}function UI(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 u=t[l],p=u?.type==="FIELD_NAME"?u.name:"(expression)";if(s.kind==="UNKNOWN"){let c=a===null?"":` (APP${a})`,d=s.name.indexOf("."),f=d>=0?s.name.slice(d+1):s.name,E=r.get(s.name)??r.get(f)??[];throw E.length>0?new Error(Mc(s.name,E)):new Error(`ArgumentError: unknown field code(s): ${s.name}${c}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${p} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${p} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${p} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var ro=new WeakMap;async function MI(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 io(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function kI(e,t,n,r){let i=[e.from,...e.joins.map(c=>c.table)],o=i.filter(c=>c.cteName===null),a=new Map(await Promise.all([...new Set(o.map(c=>c.appId))].map(async c=>{let d=await Q(c,t,n);return[c,new Map(d.map(f=>[f.code,f]))]}))),s=(c,d)=>{if(c.subtableCode)return null;let f=a.get(c.appId)?.get(d);return f?.inSubtable===!0?f.subtableCode??"":null},l=(c,d)=>{if(d==="$id")return"$id";let f=ce(c,d);return s(c,f)!==null?null:a.get(c.appId)?.has(f)?f:null},u=(c,d)=>{if(c.cteName===null)return!1;let f=r?.get(c.cteName);return f?Dr(f,d)!==void 0:!0},p=(c,d,f,E)=>{let R=i.filter(g=>g.cteName===null&&l(g,f.field)!==null).length,m=i.some(g=>u(g,f.field)),y=de(c);return{canonicalId:`source:${d}:APP${c.appId}:${E}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:R===1&&!m?f.field:null,physical:!0}};return c=>{if(c.tableAlias!==null){let m=i.findIndex(A=>de(A)===c.tableAlias);if(m<0)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} has an unknown table alias.`);let y=i[m];if(y.cteName!==null)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let g=l(y,c.field);if(g===null){let A=s(y,ce(y,c.field));throw A!==null&&A!==""?new Error(Mc(c.field,[{appId:y.appId,owner:A}])):new Error(`ArgumentError: field ${c.tableAlias}.${c.field} does not exist in APP${y.appId}.`)}return p(y,m,c,g)}let d=i.flatMap((m,y)=>{if(m.cteName!==null)return[];let g=l(m,c.field);return g===null?[]:[{table:m,tableIndex:y,code:g}]}),f=i.filter(m=>u(m,c.field));if(d.length+f.length>1)throw new Error(`ArgumentError: field ${c.field} is ambiguous across multiple sources.`);if(d.length===1&&f.length===0){let m=d[0];return p(m.table,m.tableIndex,c,m.code)}if(f.length===1)throw new Error(`ArgumentError: field ${c.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let E=i.flatMap(m=>{if(m.cteName!==null)return[];let y=s(m,ce(m,c.field));return y===null||y===""?[]:[{appId:m.appId,owner:y}]}),R=bm(E);throw R.length>0?new Error(Mc(c.field,R)):new Error(`ArgumentError: field ${c.field} does not exist in a physical APP source.`)}}async function io(e,t,n,r){ro.delete(e);let i=ee(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.hiddenWindows??[]).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await kI(e,t,n,r),u=Bd(e,l,Kd);u&&ro.set(e,u);return}if(!Mt(e))return;if(i.type==="NONE"){Vo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await Or(e,t,n,r)}function xI(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 dp(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?Zt({...e,orderBy:[]}):Zt(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function Nm(e,t){throw e.reasons.size>0&&t instanceof Ve&&!t.completeInputWrapped?new Ve(xI(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function kc(e,t){try{return await t()}catch(n){Nm(e,n)}}function mt(e){return e?.type==="BOOLEAN"&&e.value===!1}function FI(e){return e.from.appId===0&&e.from.cteName===Ce}function Us(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT planning.`);return e.type==="FIELD_REF"?e.hiddenWindowRef!==!0:e.type==="ARITH"?Us(e.left)||Us(e.right):e.type==="STRING_FUNC"?fp(e):!1}function GI(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:zi(e)}function zi(e){return e.type==="FIELD"?e.hiddenWindowRef!==!0:e.type==="STRING_FUNC"?fp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?zi(e.left)||zi(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"?Us(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:zi(n))):!1}function fp(e){return e.args.some(t=>GI(t))}function KI(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(Us(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(fp(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(zi(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 BI(e,t){if(e.joins.length>0||e.where||ee(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");KI(e);let n=Qu([{}],e.columns,void 0,void 0,void 0,void 0,le(t),e.hiddenWindows),{rows:r,columns:i}=Mn(n,e.columns,void 0,void 0,void 0,void 0,void 0,le(t)),o=ss(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function $I(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?Dm(e):e,s=qo(a),l=i?.kind==="CANONICAL_LOCAL"?Nn(e,e.from):s.fields,u=await Rp(e,t,r),p=yp(e,u),c=e.columns.some(C=>C.type==="CASE_COL")?await Ro(e,t,r,void 0,pp(e)):void 0,d=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",R=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&y!==null&&y<=d&&!Pe(e.where)?y:void 0,A;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)A=[];else if(i?.kind==="KORDER_CURSOR"){let C=await ME({client:t,app:s.app,fields:s.fields,query:$u(e),offset:e.offset??0,limit:e.limit});A=C.records,C.cleanupWarning&&f.add(C.cleanupWarning)}else if(m)A=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let C=e.where?z(e.where):"";A=await Ke(t.getRecords,s.app,C,l,{parallel:R,maxRecords:d,stopAfter:g,onLimit:E,onTruncate:M=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${M} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${M} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ap(t,e.from.appId)}})}let h=A.map(C=>Ht(C,null));m||(h=Ju(h,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Xu(e.columns,void 0,p.row,c,le(n)),le(n)),h=ss(h,e.limit,e.offset));let{rows:I,columns:b}=Mn(h,e.columns,void 0,p.row,void 0,c,void 0,le(n)),D=await Ap(e,I,b,t,r);return{type:"SELECT",rows:I,columns:D,rowCount:I.length,warnings:[...f]}}async function WI(e,t,n,r){let i=[],o=new Map,a=(u,p)=>{if(p.length===0)return;let c=o.get(u);c||(c=new Set,o.set(u,c));for(let d of p)c.add(d)},s=new Map,l=(u,p)=>{let c=s.get(u);c||(c=new Set,s.set(u,c));for(let d of p)c.add(d)};if(t==="SIMPLE"){let u=qo(e);a(u.app,u.fields),e.from.subtableCode||l(u.app,u.fields)}else{let u=[e.from,...e.joins.map(p=>p.table)].filter(p=>p.cteName===null);for(let p of u){let c=Nn(e,p);a(p.appId,c),p.subtableCode||l(p.appId,c)}}for(let[u,p]of o.entries()){let c=[...p].filter(m=>!$o(m));if(c.length===0)continue;let d=await Q(u,n,r);if(d.length===0)continue;let f=new Set(d.map(m=>m.code)),E=c.filter(m=>!f.has(m));if(E.length>0)throw new Error(`ArgumentError: unknown field code(s): ${E.join(", ")} (APP${u})`);let R=s.get(u);if(R){let m=d.filter(y=>y.inSubtable===!0&&R.has(y.code));for(let y of m){let g=y.subtableCode??"",A=g?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${g}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${A}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${u} \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${u}$${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 Ic(e){return e.cteName??`APP${e.appId}`}function Cm(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function VI(e,t){return $o(t)||e.validCodes.has(t)}function wc(e,t){return e.table.cteName!==null?e.validCodes.has(t):VI(e,t)}async function HI(e,t,n){let r=[e.from,...e.joins.map(o=>o.table)].filter(o=>o.cteName===null),i=new Map;return await Promise.all([...new Set(r.map(o=>o.appId))].map(async o=>{let a=await Q(o,t,n);i.set(o,new Set(a.map(s=>s.code)))})),(o,a)=>{if(o.cteName!==null)return!1;if(o.subtableCode||$o(a))return!0;let s=i.get(o.appId);return!s||s.size===0?!0:s.has(ce(o,a))}}async function Pm(e,t,n,r){let i=!1;xR(e,t,()=>(i=!0,!0)),i&&xR(e,t,await HI(e,n,r))}function xR(e,t,n){let r=[e.from,...e.joins.map(E=>E.table)],i=new Map;for(let E of r)for(let R of Cm(E))i.set(R,E);let o=e.columns.flatMap(E=>"alias"in E&&E.alias!==null?[E.alias]:[]),a=E=>E.cteName===null||E.cteName===Ce?[]:t.get(E.cteName)?.columns??[],s=(E,R)=>E?Oe(R,a(E)):void 0,l=E=>{if(r.some(y=>a(y).includes(E)))return E;let R=r.flatMap(y=>{let g=s(y,E);return g===void 0?[]:[g]}),m=[...new Set(R)];if(m.length===1)return r.some(y=>n(y,E))?E:m[0]},u=(E,R,m)=>{if(m&&R===null){let y=Oe(E,o);if(y!==void 0)return y}return R===null?l(E)??E:s(i.get(R),E)??E},p=(E,R)=>{let m=E.indexOf(".");if(m<=0)return u(E,null,R);let y=E.slice(0,m),g=E.slice(m+1),A=u(g,y,!1);return A===g?E:`${y}.${A}`};for(let E of e.joins)E.type!=="CROSS"&&(E.on.left.field=u(E.on.left.field,E.on.left.tableAlias,!1),E.on.right.field=u(E.on.right.field,E.on.right.tableAlias,!1));let c=new Set,d=(E,R=!1)=>{if(E===null||typeof E!="object"||c.has(E))return;if(c.add(E),Array.isArray(E)){for(let y of E)d(y,R);return}let m=E;if(!(E!==e&&(m.type==="SELECT"||m.type==="UNION"))){if(m.type==="FIELD"&&typeof m.field=="string"){let y=typeof m.tableAlias=="string"?m.tableAlias:null;m.field=y===null?p(m.field,R):u(m.field,y,R)}else if(m.type==="FIELD_REF"&&typeof m.field=="string")m.field=p(m.field,R);else if(m.type==="AGG_GROUP_KEY"&&typeof m.field=="string"){let y=typeof m.tableAlias=="string"?m.tableAlias:null;m.field=u(m.field,y,R)}for(let y of Object.values(m))d(y,R)}};for(let E of[...e.columns,...e.hiddenWindows??[]])d(E);d(e.where),d(e.having,!0),d(e.grouping);let f=ee(e);if(f.type==="PLAIN")for(let E of f.allItems)E.type==="FIELD_NAME"?E.name=p(E.name,!0):d(E);for(let E of e.orderBy)E.key.type==="FIELD_NAME"?E.key.name=p(E.key.name,!0):d(E.key);for(let E of rt(e)){for(let R of E.partitionBy)R.type==="FIELD"&&(R.field=u(R.field,R.tableAlias,!1));for(let R of E.orderBy)R.key.type==="FIELD_NAME"?R.key.name=p(R.key.name,!1):d(R.key)}}function YI(e){let t=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]),n=r=>{if(r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r;if(!(i.type==="AGG_REF"||i.type==="AGG_ARITH")){if(i.type==="FIELD"&&(i.tableAlias===null||i.tableAlias===void 0)&&typeof i.field=="string"){let o=Oe(i.field,t);o!==void 0&&(i.field=o)}i.type==="SELECT"||i.type==="UNION"||Object.values(i).forEach(n)}};n(e.having)}function jI(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 xc(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(d=>d.table)],a=new Map,s=new Set,l=new Set;for(let d of o){let f=de(d);if(f!==null){if(l.has(f))throw new Error(`ArgumentError: effective alias ${f} is used by multiple tables.`);l.add(f)}}for(let d of o){if(d.cteName===null||d.cteName===Ce)continue;let f=n.get(d.cteName);if(!f){if(i){s.add(d);continue}throw new Error(`ArgumentError: materialized source ${d.cteName} is not available.`)}if(f.rows.length>0&&f.columns.length===0)throw new Error(`InternalError: materialized source ${d.cteName} has rows but no column schema.`);if(e.joins.length>0&&f.rows.length===0&&f.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${d.cteName}.`);a.set(d,f)}let u=new Map;await Promise.all(o.map(async d=>{if(s.has(d)){u.set(d,{table:d,label:Ic(d),validCodes:new Set,authoritative:!1,schemaUnavailable:!0});return}let f=a.get(d);if(f){u.set(d,{table:d,label:Ic(d),validCodes:new Set(f.columns),authoritative:!0,schemaUnavailable:f.rows.length===0&&f.columns.length===0});return}if(d.cteName===Ce)return;let E=i?await zm(d.appId,r):await Q(d.appId,t,r);u.set(d,{table:d,label:Ic(d),validCodes:new Set((E??[]).map(R=>R.code)),authoritative:E!==null&&E.length>0,schemaUnavailable:!1})}));let p=new Map;for(let d of u.values())for(let f of Cm(d.table))p.set(f,d);for(let d of e.joins)if(d.type!=="CROSS")for(let f of[d.on.left,d.on.right]){if(!f.tableAlias)continue;let E=p.get(f.tableAlias);if(E&&E.table.cteName!==null&&!E.schemaUnavailable&&!wc(E,f.field))throw new Error(`ArgumentError: JOIN key ${f.tableAlias}.${f.field} is not available in the materialized table.`)}let c=Yd(e);for(let[d,f]of c.bySource){let E=u.get(d);if(!E||E.schemaUnavailable||!E.authoritative)continue;let R=[...f].filter(m=>!wc(E,m));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (${E.label})`)}for(let d of c.unqualified){let f=[...u.values()].filter(R=>!R.schemaUnavailable);if(f.some(R=>wc(R,d))||[...u.values()].some(R=>R.schemaUnavailable)||f.some(R=>R.table.cteName===null&&!R.authoritative))continue;let E=f.map(R=>R.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${d} (${E})`)}}async function ws(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await ws(e.left,t,n,r,i),await ws(e.right,t,n,r,i);return}await Pm(e,n,t,r),await xc(e,t,n,r);for(let o of jI(e))await ws(o,t,n,r,i)}}function Om(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Zr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Zr(e.where,{tableAlias:e.from.alias}):null}function qi(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"?qi(e.left)||qi(e.right):e.type==="GROUP"||e.type==="NOT"?qi(e.expr):!1}var Ep=new WeakMap;function $s(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=OE(e.where,r),o=LE(i,r),a=new Map,s=new Map;for(let[f,E]of o.fetchQueriesByAlias)s.set(f,E);for(let f of o.items)s.has(f.targetAlias)||s.set(f.targetAlias,Ar(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,u=a.get(l)??null,p=new Map(a);p.delete(l);let c=new Map(o.items.map(f=>[f.targetAlias,f.relation])),d=c.get(l)??null;return c.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:u,mainRelation:d,joinConditions:p,joinRelations:c,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Ws(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let u=r.get(s);u?u.push(l):r.set(s,[l])};if(i(e.from.appId,Om(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER"||s.type==="CROSS")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=Zr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[u,p]=await Promise.all([Ge(s,t,n),Aw(s,t,n)]),c=zI(l).filter(d=>u.get(d)==="STATUS");if(c.length>0){let d=await Ys(s,t,n);if(d.enable&&d.states&&d.states.length>0){let f=new Set(d.states.map(E=>E.name));for(let E of c)p.set(E,f)}}return[s,u,p]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function zI(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 jt(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"&&Ms(e.left.expr,t),e.right.type==="CASE_VALUE"&&Ms(e.right.expr,t);return;case"LOGICAL":jt(e.left,t),jt(e.right,t);return;case"NOT":case"GROUP":jt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Ms(e,t){for(let n of e.branches)jt(n.condition,t)}function qI(e){let t=[];jt(e.where,t),jt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Ms(n.expr,t);return t}function de(e){return e.alias??e.cteName}function Lm(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>de(n)===t)}function Vs(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Rp(e,t,n){let r=qI(e);if(r.length===0)return new Map;let i=new Set,o=Vs(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=Lm(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 Ge(s,t,n)]));return new Map(a)}function Fe(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function mp(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||xn(t,n)}function xn(e,t){if(e.type==="FIELD_REF"){t.push(Fe(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){xn(e.left,t),xn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){xn(e.left,t),xn(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"&&xn(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"?Lr(n,t):n.type!=="ARRAY"&&xn(n,t)}function Lr(e,t){if(e.type==="AGG_REF"){mp(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Lr(e.left,t),Lr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Fc(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")Lr(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;Ji(n,t)}}function Ji(e,t){if(e.type==="STRING_FUNC"){Fc(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Ji(e.left,t),Ji(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"?Fc(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?Lr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Ji(r,t)}}function FR(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;mp(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function JI(e){let t=[];for(let n of e)n.type==="AGGREGATE"?mp(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Lr(n.expr,t):n.type==="ARITH_COL"?FR(n.expr,t):n.type==="STRFUNC_COL"?Fc(n.expr,t):n.type==="SCALAR_VALUE_COL"?Ji(n.expr,t):n.type==="CASE_COL"&&FR(n.expr,t);return t}var XI=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function QI(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":XI.has(e.fieldType)?"string":void 0}async function _m(e,t,n,r){let i=JI(e.columns);if(i.length===0)return;let o=new Set,a=Vs(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=Lm(e,f.tableAlias);E&&E.cteName===null&&o.add(E.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let E of a)o.add(E.appId);let s=new Map(await Promise.all([...o].map(async f=>{let E=await Q(f,t,n);return[f,new Map(E.map(R=>[R.code,R]))]}))),l=new Map,u=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...u].some(m=>E.get(m)?.fieldType==="STATUS"))return;let R=await bp(f,t,n);R&&l.set(f,R)}));let p=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let R=f.semantics??ne(f);return f.fieldType==="STATUS"&&l.has(E)?{...R,optionOrder:l.get(E)}:R};return f=>{let E;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(f.field);else{let m=p.find(y=>de(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return Ne(r?.get(m.cteName),f.field)?.semantics??V("string");E=s.get(m.appId)?.get(ce(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return Ne(r?.get(e.from.cteName),f.field)?.semantics??V("string");E=s.get(e.from.appId)?.get(ce(e.from,f.field))}else{let m=p.flatMap(y=>{if(y.cteName!==null){let A=r?.get(y.cteName);return Dr(A,f.field)!==void 0?[Ne(A,f.field)?.semantics??V("string")]:[]}let g=s.get(y.appId)?.get(ce(y,f.field));return g?[c(g,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!E)return;let R=f.tableAlias!==null?p.find(m=>de(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,R?.appId??e.from.appId)}}function ce(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function bs(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function xe(e,t){let n=e.semantics??ne(e);return{sortKind:QI(e),fieldType:e.fieldType,semantics:t===void 0?n:sr(n,t,e.code)}}function Dm(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:V(e)}}function et(){return{semantics:V("string","KSQL_UNKNOWN")}}function vm(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function tt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:ne({fieldType:"__ID__"})};if(e==="_rid")return Z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Z("number")}function yn(e,t){return Z(St(e,n=>{let r=t?.(n);if(r)return"compareMode"in r?r:r.semantics}))}function _r(e,t){return e.type==="STRING"?Z("string"):e.type==="ARRAY"?vm():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?et():gn(e.arg,t):e.func==="GROUP_CONCAT"?Z("string"):Z("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Z("number"):e.type==="STRING_FUNC"?yn(e,t):e.type==="FIELD_REF"?t(Fe(e.field))??et():e.type==="FIELD"?t(e)??et():et()}function Hs(e){if(e.length===0)return et();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&Qo(n(r.semantics),n(t.semantics)))?e.every(i=>Qo(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?vm("KSQL_MIXED_UNSUPPORTED"):et()}function gn(e,t){if(e.type==="FIELD_REF")return t(Fe(e.field))??et();if(e.type==="FIELD")return e.aggregateRef?Um(e.aggregateRef,t):t(e)??et();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 yn(e,t);let n=e.branches.map(r=>_r(r.result,t));return e.elseResult&&n.push(_r(e.elseResult,t)),Hs(n)}function Um(e,t){return e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN"?Z("number"):e.func==="GROUP_CONCAT"||e.func==="MODE"||e.arg.type==="WILDCARD"?Z("string"):gn(e.arg,t)}function ks(e,t){return e.windowKind==="VALUE"?gn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?Z("number"):e.arg.type==="WILDCARD"?et():gn(e.arg,t):Z("number")}function Ns(e,t){return{...e??{},displayName:t}}function ZI(e){return(e.hiddenWindows?.length??0)>0||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 oo(e,t,n,r,i,o=!1){let a=new Map;ZI(e)&&await Promise.all(Vs(e).map(async y=>{if(a.has(y.appId))return;let g=await Q(y.appId,n,r);a.set(y.appId,new Map(g.map(A=>[A.code,A])))}));let s=[e.from,...e.joins.map(y=>y.table)],l=o&&i===void 0&&s.every(y=>y.cteName===null),u=y=>{if(y.tableAlias!==null){if(y.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let I=a.get(e.from.appId)?.get(y.field);return I?xe(I,e.from.appId):void 0}let A=s.find(I=>de(I)===y.tableAlias);if(!A)return;if(A.cteName!==null)return Ne(i?.get(A.cteName),y.field);let h=a.get(A.appId)?.get(ce(A,y.field));return h?xe(h,A.appId):tt(y.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Ne(i?.get(e.from.cteName),y.field);let A=a.get(e.from.appId)?.get(ce(e.from,y.field));return A?xe(A,e.from.appId):tt(y.field)}let g=s.flatMap(A=>{if(A.cteName!==null){let b=i?.get(A.cteName);return Dr(b,y.field)===void 0?[]:[Ne(b,y.field)]}let h=a.get(A.appId)?.get(ce(A,y.field)),I=h?xe(h,A.appId):tt(y.field);return I?[I]:[]});return g.length===1?g[0]:void 0},p=y=>{if(!l)return;let g=s.filter(A=>{if(y.tableAlias!==null&&de(A)!==y.tableAlias)return!1;let h=ce(A,y.field);return a.get(A.appId)?.has(h)===!0||tt(y.field)!==void 0});return g.length===1?g[0].appId:void 0},c=(y,g)=>{let A=p(g);return y&&A!==void 0?{...y,publicSourceApp:A}:y},d=new Map,f=new Map((e.hiddenWindows??[]).map(y=>[y.alias,ks(y,u)])),E=y=>y.hiddenWindowRef?f.get(y.field):u(y),R=e.columns.some(y=>y.type==="WILDCARD"||y.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let y of t){let g=Fe(y),A=c(u(g),g);d.set(y,Ns(A,A?.displayName??y))}return d}if(R)for(let y of t){let g=Fe(y),A=c(u(g),g);d.set(y,Ns(A,A?.displayName??y))}return e.columns.filter(y=>y.type!=="WILDCARD"&&y.type!=="PARENT_WILDCARD").forEach((y,g)=>{let A=R?"alias"in y&&y.alias?y.alias:void 0:t[g];if(!A)return;let h;if(y.type==="FIELD"){let I=Fe(y.field);h=c(u(I),I)}else if(y.type==="AGGREGATE")y.func==="GROUP_CONCAT"?h=Z("string"):y.func==="COUNT"||y.func==="SUM"||y.func==="AVG"||y.func==="STDDEV_POP"||y.func==="STDDEV_SAMP"||y.func==="VAR_POP"||y.func==="VAR_SAMP"||y.func==="MEDIAN"?h=Z("number"):(y.func==="MIN"||y.func==="MAX"||y.func==="MODE")&&y.arg.type!=="WILDCARD"&&(h=gn(y.arg,u));else if(y.type==="ARITH_AGG_COL"||y.type==="ARITH_COL")h=Z("number");else if(y.type==="GROUPING_COL")h=Z("number");else if(y.type==="LITERAL_COL")h=Z("string");else if(y.type==="SCALAR_VALUE_COL"){let I=y.expr;I.type==="STRING_FUNC"?h=yn(I,E):I.type==="NUMBER"||I.type==="SCALAR_ARITH"?h=Z("number"):I.type==="FIELD"?h=E(I):h=Z("string")}else if(y.type==="STRFUNC_COL")h=yn(y.expr,E);else if(y.type==="WINDOW_COL")h=ks(y,u);else if(y.type==="CASE_COL"){let I=y.expr.branches.map(b=>_r(b.result,E));y.expr.elseResult&&I.push(_r(y.expr.elseResult,E)),h=Hs(I)}else y.type==="SCALAR_SUBQUERY_COL"&&(h=et());d.set(A,Ns(h,y.aliasDisplay??A))}),d}function ew(e,t){let n=pe.get(e),r=pe.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],u=l===void 0?void 0:r?.get(l),p;if(s&&u){let c=Hs([s,u]),d=s.publicSourceApp===u.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=c;p=d===void 0?E:{...E,publicSourceApp:d}}else p=et();i.set(o,Ns(p,s?.displayName??o))}),i}function yp(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 u=n.find(p=>de(p)===s.tableAlias);return!u||u.cteName!==null?void 0:bs(u,s.field)??t.get(u.appId)?.get(ce(u,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:bs(e.from,s.field)??t.get(e.from.appId)?.get(ce(e.from,s.field));if(n.some(u=>u.cteName!==null))return;let l=r.flatMap(u=>{let p=bs(u,s.field)??t.get(u.appId)?.get(ce(u,s.field));return p?[p]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var Mm=new WeakSet,gp=new WeakMap;function Gc(e){return Mm.add(e),e}function tw(e,t){return gp.set(e,t),t}function km(e,t){if(t.capability!=="EXACT_PUSHDOWN")return!1;let n=e.columns.filter(r=>r.type==="AGGREGATE"&&r.func==="COUNT"&&!r.distinct&&r.arg.type==="WILDCARD");return n.length!==1||e.columns.some(r=>r!==n[0]&&r.type!=="LITERAL_COL")?!1:!e.distinct&&ee(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function nw(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function rw(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":z(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new Wn;if(!nw(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=Mn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function iw(e,t,n,r,i,o=!0,a,s,l){let u=gp.get(e);if(Mm.has(e)&&u!==void 0&&km(e,u)){let B=await rw(e,t);if(B!==null)return B}let p=n.maxRecords??1e4,c=new Set,d=n.fetchParallel??1;await Promise.all([po(e.where,t,n,r,c,i),po(e.having,t,n,r,c,i)]);let[f,E,R]=await Promise.all([Ws(e,t,r),Rp(e,t,r),_m(e,t,r,i)]),m=yp(e,E),y=await Ro(e,t,r,i,Pt(e.having)||pp(e)),g=Im(e,y),A=Ep.get(e);if(A&&!Sr(A.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let h=A??$s(e,f)??Cn(e,f);xl(h);let I="joinPlan"in h?h:null,b=I&&Sr(I.joinPlan)?I:null,D=t,C=h.mainCondition,M=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let v=s?s.prefilterWhere:b?null:C,x=b?.queriesByAlias.get(e.from.alias)??"",O=await sy(e.columns,t,n,r,c,i),_=mt(e.where),N=_?Promise.resolve([]):Xi(e,e.from,D,p,d,!0,n.onLimitReached??"error",c,v,b?!1:o,l,x),P=[],S=[];for(let B of e.joins){if(_){P.push({join:B,promise:Promise.resolve([])});continue}let U=B.table.alias?b?.queriesByAlias.get(B.table.alias)??"":"",H=b?null:B.table.alias?M.get(B.table.alias)??null:null;H!==null||U!==""?P.push({join:B,promise:Xi(e,B.table,D,p,d,!1,n.onLimitReached??"error",c,H,!0,l,U)}):S.push(B)}let w=a?Promise.resolve(a):so(e,t,r,i);w.catch(()=>{});let L=await N,F=new Map;F.set(e.from.alias,L);for(let{join:B,promise:U}of P)F.set(B.table.alias,await U);await Promise.all(S.map(async B=>{let H=await jm(e,B,F,D,p,d,n.onLimitReached??"error",c,r,i,null,l,"")??await Xi(e,B.table,D,p,d,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(B.table.alias,H)}));let{optionOrders:K,sortKinds:W,semantics:k}=await w,{rows:G,columns:j}=Zu({tables:F,stmt:e,scalarCache:O,optionOrders:K,sortKinds:W,orderSemantics:k,fieldTypeResolver:m.row,fieldSemanticsResolver:y,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:g,aggregateSortKindResolver:R,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:ro.get(e),plainGroupByPlan:l,warnings:c,evaluationContext:le(n)}),$=await Ap(e,G,j,t,r);return{type:"SELECT",rows:G,columns:$,rowCount:G.length,warnings:[...c]}}function ow(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
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 Kc(e,t,n){ow(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,u)=>{s[l]=a[e.columns[u]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=pe.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let u=e.columns[l],p=n?.get(s)??(u===void 0?void 0:o?.get(u));p&&a.set(s,{...p,displayName:s})}),pe.set(i,a)}return i}function xm(e,t,n,r){let i=Kc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:aw(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&&pe.set(l,ew(e,t)),l}async function Fm(e,t,n,r,i=!1,o=!1){let a=dp(e,n,null);return kc(a,async()=>{let s=a.effectiveOptions,[l,u]=await Promise.all([e.left.type==="UNION"?Fm(e.left,t,s,r,i,o):zt(Gc(e.left),t,s,r,void 0,i,o,"DERIVED"),zt(Gc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return xm(l,u,e.all,i)})}function aw(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 Gm(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function Km(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(Gm);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)=>Gm(t)??`__b53_column_${n}`)}function KR(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 Bm(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(u=>[u.code,u])))}));let a=(s,l)=>{if(s.cteName!==null)return Ne(r.get(s.cteName),l);let u=o.get(s.appId)?.get(ce(s,l));return u?xe(u,s.appId):tt(l)};return s=>{if(s.tableAlias!==null){let u=i.find(p=>de(p)===s.tableAlias);return u?a(u,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(u=>a(u,s.field)).filter(u=>u!==void 0);return l.length===1?l[0]:void 0}}function Yi(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Yi(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:Fe(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=Fe(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){Yi(r.left,t,!0),Yi(r.right,t,!0);return}for(let i of Object.values(r))Yi(i,t,n)}async function BR(e,t,n,r,i){let o=await Bm(e,n,r,i);e.columns.forEach(u=>Yi(u,o));let a=await oo(e,GR(e),n,r,i),s=GR(e),l=new Map;return t.forEach((u,p)=>{let c=a.get(s[p]);if(!c?.semantics||c.semantics.fieldType==="KSQL_UNKNOWN"||c.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${p+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(u,{...c,displayName:u})}),l}function mn(e){return`${e.appId}:${e.subtableCode??""}`}function $m(...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(mn(r))&&t.set(mn(r),r);return[...t.values()]}function sw(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function lw(e){let t=new Map,n=r=>{for(let i of r)t.set(mn(i),null)};for(let r of e){let i=Vs(r);for(let s of i){let l=mn(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let u=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(c=>c.table)].find(c=>de(c)?.toLowerCase()===s.toLowerCase());if(!u){n(i);return}if(u.cteName!==null)return;let p=t.get(mn(u));p!==null&&p?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let u=sw(l.field),p=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:u.alias;o(p,u.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(ee(r)),a(r.having),a(r.orderBy);for(let s of r.joins){if(s.on===null){n(i);continue}o(s.on.left.tableAlias,s.on.left.field),o(s.on.right.tableAlias,s.on.right.field)}}return t}function uw(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 cw(e,t,n,r){let i=lw(e),o=await Promise.all($m(...e).map(async(a,s)=>{let l=await zt(uw(a,i.get(mn(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),u=`__b53_source_${s}`;return[mn(a),{name:u,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:pe.get(l)}}]}));return new Map(o)}function $R(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(mn(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 WR(e,t,n){return e.cteName===null?void 0:Ne(n.get(e.cteName),t)}function bc(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=we(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function VR(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=de(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 pw(e,t,n,r,i){let o=e.recursiveSpec,a=Km(e),s=await BR(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let u=await BR(o.recursiveTerm,a,t,i,l);a.forEach((W,k)=>{let G=s.get(W),j=u.get(W);if(!G||!j||!KR(G,j))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${k+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let p=VR(e.name,o.recursiveTerm),c=await Bm(o.recursiveTerm,t,i,l),d=c({type:"FIELD",tableAlias:de(p.self),field:p.selfField}),f=c({type:"FIELD",tableAlias:de(p.source),field:p.sourceField});if(!d||!f||!KR(d,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let E=await cw([o.seed,o.recursiveTerm],t,n,i),R=new Map(r);for(let W of E.values())R.set(W.name,W.table);let m=$R(o.seed,E),y=$R(o.recursiveTerm,E),g=await yt(m,t,n,R,i,!0,!0),A=Kc(g,a,s),h=o.cycle,I=h?s.get(h.column):void 0,b=new Map(s);h&&b.set(h.markColumn,{...Z("string"),displayName:h.markColumn});let D=h?[...a,h.markColumn]:[...a],C=[],M=[],v=new Set([...A.warnings??[],...[...E.values()].flatMap(W=>W.warnings)]),x=new Va(e.name,Ct(n)),O=W=>{x.addRow(),C.push(W)};for(let W of A.rows){let k=h?String(W[h.column]??""):"",G=h?{...W,[h.markColumn]:h.defaultValue}:W;O(G),M.push({row:W,path:h?[k]:[]})}let _=VR(e.name,y),N=_.source.cteName===null?void 0:R.get(_.source.cteName);if(!N)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let P=WR(_.self,_.selfField,l)??WR(_.source,_.sourceField,R);if(!P?.semantics||P.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${_.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let S=new Map;for(let W of N.rows){let k=String(W[_.sourceField]??""),G=bc(k,P.semantics),j=S.get(G);j?j.push(W):S.set(G,[W])}let w=S.has(bc("",P.semantics)),L=0,F=!1;for(;M.length>0;){L++;let W=[];for(let k of M){let G=String(k.row[_.selfField]??"");!F&&G===""&&w&&(v.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${_.selfField} = ${_.sourceField} \u3067\u7B2C ${L} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let j=S.get(bc(G,P.semantics))??[];for(let H of j){let ye=String(H[_.sourceField]??"");Gt("=",G,ye,P.semantics)&&x.addExpansion()}if(j.length===0)continue;let $=new Map(R);$.set(e.name,{rows:[k.row],columns:a,columnMeta:s});let B=await yt(y,t,n,$,i,!0,!0);for(let H of B.warnings??[])v.add(H);let U=Kc(B,a,s);U.rows.length>0&&x.observeDepth(L);for(let H of U.rows){if(!h){O(H),W.push({row:H,path:[]});continue}let ye=String(H[h.column]??""),We=k.path.some(se=>Gt("=",se,ye,I.semantics));O({...H,[h.markColumn]:We?h.markValue:h.defaultValue}),We||W.push({row:H,path:[...k.path,ye]})}}M=W}let K={type:"SELECT",rows:C,columns:D,rowCount:C.length,warnings:[...v]};return pe.set(K,b),K}async function hp(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&an(e))return zt(sn(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let u of e.ctes){let p;u.recursiveSpec?p=await pw(u,t,n,a,r):u.query.type==="SHOW_APPS"?p=await ry(t):u.query.type==="DESCRIBE"?p=await iy(u.query,t,r):u.query.type==="GENERATE_SERIES"?p=Wm(u.query):p=await yt(u.query,t,n,a,r,!0);for(let c of p.warnings??[])s.add(c);a.set(u.name,{rows:p.rows,columns:p.columns,columnMeta:pe.get(p),...u.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:u.query.columnAlias}:{}})}let l=await yt(e.query,t,n,a,r,o);return Bs(l,[...s])}function Wm(e){let t=ma(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 pe.set(n,new Map([[e.columnAlias,r]])),n}async function yt(e,t,n,r,i,o=!1,a=!1){if(a||await ws(e,t,r,i),e.type==="UNION"){let[u,p]=await Promise.all([yt(e.left,t,n,r,i,o,!0),yt(e.right,t,n,r,i,o,!0)]);return xm(u,p,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Ce||e.joins.some(u=>u.table.cteName!=null)))return zt(e,t,n,i,r,o,!1,"DERIVED");let l=await dw(e,t,n,r,i);return o&&pe.set(l,await oo(e,l.columns,t,i,r)),l}async function dw(e,t,n,r,i){await io(e,t,i,r);let o=ro.get(e),a=await Or(e,t,i,r),s=new Set,l=$=>{if($.alias!==null||$.cteName===null)return $;let B=de($);return s.add(B),{...$,alias:B}};e={...e,from:l(e.from),joins:e.joins.map($=>({...$,table:l($.table)}))};let u=new Set;for(let $ of[e.from,...e.joins.map(B=>B.table)]){let B=de($);if(B!==null){if(u.has(B))throw new Error(`ArgumentError: effective alias ${B} is used by multiple tables.`);u.add(B)}}let p=$=>{let B=r.get($);if(!B)throw new Error(`ArgumentError: materialized source ${$} is not available.`);return B};for(let $ of[e.from,...e.joins.map(B=>B.table)])$.cteName!==null&&p($.cteName);let{resolver:c}=await Kn(e,t,i,r,Sm(e)),d=Tm(e,c,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,E=new Set,R=n.fetchParallel??1;await Promise.all([po(e.where,t,n,i,E,r),po(e.having,t,n,i,E,r),oy(e,t,n,i,E,r)]);let m=Te(e.where,c);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Bn(m)}).`);let y=await so(e,t,i,r),g=vs(e)?(e.orderMode==="KINTONE_NATIVE"?_i:Li)({stmt:e,staticMode:"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:Pe(e.where)}):null,A=dp(e,n,g),h=A.effectiveOptions,[I,b,D]=await Promise.all([Ws(e,t,i),Rp(e,t,i),_m(e,t,i,r)]),C=yp(e,b),M=await Ro(e,t,i,r,Pt(e.having)||pp(e)),v=Im(e,M),x=$s(e,I)??Cn(e,I);xl(x);let O=t,_=await sy(e.columns,t,h,i,E,r),N=Promise.resolve(y);N.catch(()=>{});let P=new Map,S=new Map;if(e.from.cteName!=null){let $=p(e.from.cteName);P.set(e.from.alias,$.rows.map(HR)),S.set(e.from.alias,$.columns)}else{let $=await kc(A,()=>Xi(e,e.from,O,f,R,!0,h.onLimitReached??"error",E,x.mainCondition,m.capability==="EXACT_PUSHDOWN",a));P.set(e.from.alias,$)}let w=e.joins.map($=>kc(A,async()=>{if($.table.cteName!=null){let B=p($.table.cteName);P.set($.table.alias,B.rows.map(HR)),S.set($.table.alias,B.columns)}else{let B=$.table.alias?x.joinConditions.get($.table.alias)??null:null,H=await jm(e,$,P,O,f,R,h.onLimitReached??"error",E,i,r,B,a)??await Xi(e,$.table,O,f,R,!1,h.onLimitReached??"error",E,B,!0,a);P.set($.table.alias,H)}}));await Promise.all(w);let{optionOrders:L,sortKinds:F,semantics:K}=await N,W=e.joins.length===0&&e.from.cteName!=null?p(e.from.cteName).columns:void 0,{rows:k,columns:G}=Zu({tables:P,stmt:e,scalarCache:_,optionOrders:L,sortKinds:F,orderSemantics:K,fieldTypeResolver:C.row,fieldSemanticsResolver:M,havingFieldTypeResolver:C.having,havingFieldSemanticsResolver:v,aggregateSortKindResolver:D,appliedKlikes:x.appliedKlikes,sourceColumns:W,tableColumns:S,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:le(n)}),j=await Ap(e,k,G,t,i);return Bs({type:"SELECT",rows:k,columns:j,rowCount:k.length,warnings:[...E]},d)}async function Ap(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 xE(o,e.from.subtableCode,()=>Ys(e.from.appId,r,i))}function HR(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Xi(e,t,n,r,i,o,a,s,l=null,u=!0,p,c=""){let d=Nn(e,t,p),f=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ap(n,t.appId),wE(e,t,o))throw new Ve(`\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&&u?Hd(e,t.appId).query:"",g=[l!==null?z(l):"",c].filter(b=>b!==""),A=g.length>1?g.map(b=>`(${b})`).join(" and "):g[0]??"",h=y&&A?`(${y}) and (${A})`:y||A;return(await pt(n.getRecords,t.appId,h,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let E=o&&u&&e.joins.length===0&&e.where!==null&&gp.get(e)?.capability==="EXACT_PUSHDOWN"&&!kt(e.where)?z(e.where):"",m=(await pt(n.getRecords,t.appId,E,d,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return tR(m,t.subtableCode)}var Nr=50;function fw(e){let t=we(e);return t!==null?JSON.stringify(t):e}function Bc(e){return JSON.stringify(e)}function hn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?fw(n):n))}var YR={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function jR(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 Nc(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}: ${YR[t.condition]} \u2014 ${jR(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${YR[o]} \u2014 ${jR(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function Ew(e,t){if(t==="DOCUMENT_ONLY")return[Nc("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=[Nc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(Nc("native UPSERT statement/data eligibility",e.statement,t)),n}function Rw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function mw(e,t,n){let r=null;if(e.type==="UPSERT")try{r=_p(e)}catch{}return Sp({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:vr.has(e)},fieldInfos:t,rowKeyValues:r})}async function Vm(e,t,n){let r=Rw(e);if(!r)return[];let i=await zm(r.appId,t);return Ew(mw(r,i,n),n.surface)}function Sp(e){let t=e.statement.keyFields.length===1?e.statement.keyFields[0]:void 0,n=t===void 0||e.fieldInfos===null?void 0:e.fieldInfos.find(d=>d.code===t),r=n?.fieldType==="SINGLE_LINE_TEXT"||n?.fieldType==="NUMBER",i=e.fieldInfos===null?null:!!(t!==void 0&&n&&r&&n.isUnique===!0),o=!e.statement.hasCheck&&!e.statement.hasApply&&!e.statement.validateOnly&&!e.statement.onErrorSkip&&!(e.statement.kind==="SELECT"&&e.statement.importDerived),a=e.rowKeyValues,s=a===null?null:a.every(d=>d.every(f=>f!=="")),l=null;if(a!==null&&t!==void 0&&r){let d=new Set;l=!0;for(let f of a){let E=hn([...f],[n.fieldType==="NUMBER"]);if(d.has(E)){l=!1;break}d.add(E)}}let u=(d,f)=>({state:d===null?"UNKNOWN":d?"PASS":"FAIL",reason:f}),p={1:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"client capability is not applicable on this surface"}:u(e.clientCapability,"client does not provide upsertRecords"),2:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"native setting is not applicable on this surface"}:u(e.enabled,"native UPSERT is disabled"),3:u(i,"update key schema is not a single unique text or number field"),4:u(o,"statement is not a plain UPSERT"),5:u(s,"source contains an empty update key"),6:u(l,"source contains duplicate update keys")},c=d=>{let f=d.find(R=>p[R].state==="FAIL");if(f!==void 0)return{status:"INELIGIBLE",condition:f,reason:p[f].reason};let E=d.filter(R=>p[R].state==="UNKNOWN").map(R=>({condition:R,reason:p[R].reason}));return E.length>0?{status:"UNKNOWN",unknownConditions:E}:{status:"ELIGIBLE"}};return{conditions:p,execution:c([1,2,3,4,5,6]),statement:c([3,4,5,6])}}function Tp(e){return"upsertRecords"in e&&typeof e.upsertRecords=="function"}function Hm(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:Tp(t),enabled:om(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:vr.has(e)},fieldInfos:r,rowKeyValues:i}}var xs=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function yw(e,t){if(!e||!Array.isArray(e.records)||e.records.length!==t)throw new xs;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 xs;i.operation==="INSERT"?n+=1:r+=1}return{insertedCount:n,updatedCount:r}}async function Ym(e,t,n,r,i,o){if(n.length===0)return{type:"UPSERT",insertedCount:0,updatedCount:0};if(o.confirm&&!await o.confirm(n.length,"UPDATE"))throw new me("UPDATE",n.length);let a=0,s=0;for(let l=0;l<n.length;l+=100){let u=n.slice(l,l+100).map((d,f)=>{let E={};for(let[R,m]of Object.entries(d))R!==t&&(E[R]=m);return{updateKey:{field:t,value:r[l+f][0]},record:E}}),p=await i.upsertRecords({app:e,upsert:!0,records:u}),c=yw(p,u.length);a+=c.insertedCount,s+=c.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function mo(e,t){let n=e.raw.get(Bc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(hn(t,e.numericKey))}async function yo(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,u=t.map(y=>o.get(y)==="NUMBER"),p={raw:new Map,normalized:new Map,numericKey:u,...a?{snapshots:new Map}:{}},c=(y,g,A)=>{let h=y.get(g);(h===void 0||A>h)&&y.set(g,A)},d=(y,g)=>{c(p.raw,Bc(y),g),u.some(Boolean)&&c(p.normalized,hn(y,u),g)},f=new Set,E=[],R=new Set;for(let y of n){let g=Bc(y);R.has(g)||(R.add(g),y.some(A=>A==="")?E.push(y):f.add(y[0]))}let m=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let y of go([...f],Nr)){let g=`${t[0]} in (${y.map(ao).join(",")})`,A=await Ke(r.getRecords,e,g,m,{maxRecords:s,parallel:l});for(let h of A){let I=Number(h.$id?.value);Number.isFinite(I)&&(p.snapshots?.set(I,h),d(t.map(b=>Ip(h[b]?.value)),I))}}for(let y of E){let g=t.map((I,b)=>`${I} = ${ao(y[b])}`).join(" and "),A=a?[...new Set(["$id",...a])]:["$id"],h=await Ke(r.getRecords,e,g,A,{maxRecords:s,parallel:l});if(h.length!==0){for(let I of h){let b=Number(I.$id?.value);Number.isFinite(b)&&p.snapshots?.set(b,I)}d(y,gw(h))}}return p}function gw(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 Ip(e){return typeof e=="string"?e:e==null?"":String(e)}function ao(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function go(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var hw=6,Cs=Ha*hw;async function jm(e,t,n,r,i,o,a,s,l,u,p=null,c,d=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,E=t.on.right.tableAlias;if(!f||!E)return null;let R,m,y;if(f===t.table.alias&&E!==t.table.alias)R=E,m=t.on.right.field,y=t.on.left.field;else if(E===t.table.alias&&f!==t.table.alias)R=f,m=t.on.left.field,y=t.on.right.field;else return null;let g=n.get(R);if(!g)return null;let A=[e.from,...e.joins.map(P=>P.table)].find(P=>de(P)===R),h=(await Q(t.table.appId,r,l)).find(P=>P.code===ce(t.table,y)),I=h?xe(h,t.table.appId):tt(y),b;if(A?.cteName!==null&&A?.cteName!==void 0)b=Ne(u?.get(A.cteName),m);else if(A){let P=(await Q(A.appId,r,l)).find(S=>S.code===ce(A,m));b=P?xe(P,A.appId):tt(m)}let D=[],C=!1;for(let P of g){let S=P[m]?.value,w=Ip(S);(S==null||w.length===0)&&(C=!0),D.push(w)}let M=ku({fieldType:I?.fieldType,sourceSemantics:b?.semantics,sourceRowCount:g.length,values:D,hasEmptyValue:C,maxInKeys:Cs});if(M.kind==="EMPTY_SOURCE")return[];if(M.kind==="FALLBACK"){if(M.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let P=new Set(D).size;s.add(`JOIN\u30AD\u30FC\u304C ${P} \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 ${Cs} \u4EF6\uFF09\u3002`)}return null}if(M.kind==="RANGE_CANDIDATE")return null;let v=Mu(M,y,ao);if(v.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 ${Cs} \u4EF6\uFF09\u3002`),null;let x=Nn(e,t.table,c),O=P=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${P} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${P} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ap(r,t.table.appId)},_=[],N=new Set;for(let P of v){let w=[p!==null?z(p):"",d].filter(F=>F!=="").reduce((F,K)=>`(${F}) and (${K})`,P),L=await pt(r.getRecords,t.table.appId,w,x,{parallel:o,maxRecords:i,onLimit:a,onTruncate:O});for(let F of L.records){let K=`${F.$id?.value??""}:${JSON.stringify(F)}`;N.has(K)||(N.add(K),_.push(F))}}return _}var $c=new Map,Wc=new Map,Vc=new Map,Fs=new Map,Hc=new Map,Yc=new Map;function wp(e){$c.delete(e),Wc.delete(e),Vc.delete(e),Fs.delete(e),Hc.delete(e),Yc.delete(e)}function Yn(e,t,n){return e.get(t)?.get(n)}function Ur(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=Yn(Fs,n,e);if(r)return r;let i=t.getFields(e);return Ur(Fs,n,e,i),i}async function zm(e,t){let n=Yn(Fs,t,e);return n?await n:null}async function Dt(e,t,n){let r=Yn(Yc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Ur(Yc,n,e,i),i}async function Ys(e,t,n){let r=Yn(Hc,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Ur(Hc,n,e,i),i}async function bp(e,t,n){let r=await Ys(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ge(e,t,n){let r=Yn($c,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Ur($c,n,e,o),o}async function jc(e,t,n){let r=Yn(Wc,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 Ur(Wc,n,e,o),o}async function Aw(e,t,n){let r=await jc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function zR(e,t,n){let r=Yn(Vc,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 Ur(Vc,n,e,o),o}function Sw(e){let t=[...e.orderBy,...rt(e).flatMap(n=>n.orderBy)];return[...new Set(t.flatMap(n=>n.key.type==="FIELD_NAME"?[n.key.name]:[]))]}async function Tw(e,t,n,r){let i=Sw(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(E=>E.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(E=>E.cteName===null).map(E=>E.appId))].map(async E=>{let R=await Q(E,t,n);return[E,new Map(R.map(m=>[m.code,m]))]}))),l=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let g=s.get(e.from.appId)?.get(E.field);return g?xe(g,e.from.appId):void 0}let m=o.find(g=>de(g)===E.tableAlias);if(!m)return;if(m.cteName!==null)return Ne(r?.get(m.cteName),E.field);let y=s.get(m.appId)?.get(ce(m,E.field));return y?xe(y,m.appId):tt(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Ne(r?.get(e.from.cteName),E.field);let m=s.get(e.from.appId)?.get(ce(e.from,E.field));return m?xe(m,e.from.appId):tt(E.field)}let R=o.flatMap(m=>{if(m.cteName!==null){let A=r?.get(m.cteName),h=Ne(A,E.field);return h?[h]:[]}let y=s.get(m.appId)?.get(ce(m,E.field)),g=y?xe(y,m.appId):tt(E.field);return g?[g]:[]});return R.length>1&&a.add(E.field),R.length===1?R[0]:void 0},u=new Map,p=new Map((e.hiddenWindows??[]).map(E=>[E.alias,ks(E,l)])),c=E=>E.hiddenWindowRef?p.get(E.field):l(E);for(let E of e.columns){if(!("alias"in E)||!E.alias)continue;let R;if(E.type==="FIELD")R=l(Fe(E.field));else if(E.type==="ARITH_COL"||E.type==="ARITH_AGG_COL")R=Z("number");else if(E.type==="WINDOW_COL")R=ks(E,l);else if(E.type==="GROUPING_COL")R=Z("number");else if(E.type==="LITERAL_COL")R=Z("string");else if(E.type==="SCALAR_VALUE_COL"){let m=E.expr;m.type==="STRING_FUNC"?R=yn(m,c):m.type==="NUMBER"||m.type==="SCALAR_ARITH"?R=Z("number"):m.type==="FIELD"?R=c(m):R=Z("string")}else if(E.type==="STRFUNC_COL")R=yn(E.expr,c);else if(E.type==="SCALAR_SUBQUERY_COL")R=et();else if(E.type==="CASE_COL"){let m=E.expr.branches.map(y=>_r(y.result,c));E.expr.elseResult&&m.push(_r(E.expr.elseResult,c)),R=Hs(m)}else E.type==="AGGREGATE"&&(E.func==="MIN"||E.func==="MAX"||E.func==="MODE"?E.arg.type!=="WILDCARD"&&(R=gn(E.arg,l)):R=E.func==="GROUP_CONCAT"?Z("string"):Z("number"));R?.semantics&&u.set(E.alias,R.semantics)}let d=new Map;for(let E of rt(e).flatMap(R=>R.orderBy))E.key.type==="FIELD_NAME"&&E.key.aggregateRef&&d.set(E.key.name,E.key.aggregateRef);let f=new Map;for(let E of i){let R=Oe(E,u.keys()),m=(R===void 0?void 0:u.get(R))??(d.has(E)?Um(d.get(E),l).semantics:void 0)??l(Fe(E))?.semantics;if(!m){let g=Fe(E);g.tableAlias===null&&a.has(g.field)&&f.set(E,ne({fieldType:"KSQL_AMBIGUOUS"}));continue}let y=m;if(m.fieldType==="STATUS"&&m.source&&e.orderMode!=="KINTONE_NATIVE"){let g=await Ys(m.source.appId,t,n);g.enable&&g.states!==null&&(y={...m,optionOrder:new Map(g.states.map(A=>[A.name,A.index]))})}f.set(E,y)}return f}async function so(e,t,n,r){let i=rt(e).some(l=>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([Iw(e,t,n),ww(e,t,n),Tw(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Iw(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 jc(a.appId,t,n);for(let[l,u]of s.entries())r.has(l)||r.set(l,u)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await jc(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}async function ww(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 zR(a.appId,t,n);for(let[l,u]of s.entries())r.has(l)||r.set(l,u)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await zR(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}function qm(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 bw=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Nw(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||bw.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function gt(e,t,n,r){let i=await Q(e,n,r);return Nw(e,t,i),i}async function qt(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?Dt(e,r,i):void 0}function An(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),u=o[s]?.value??"",p=Ye(u,l,r);if(!p.ok)throw new Error(`DmlValidationError: ${p.code} ${p.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(u)&&u.every(d=>typeof d=="object"&&d!==null&&"code"in d);o[s]={value:c?u:p.value}}})}async function Cw(e,t,n,r,i){let o=await gt(e.appId,e.fields,t,r),a=await Ii({statement:e,fieldInfos:o,dmlMaxRows:it(n.dmlMaxRows,"dmlMaxRows",Jt),dmlMaxSubtableRows:it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",De),statementNumber:i,loadNumberPrecision:()=>Dt(e.appId,t,r)});return rb(e,a,o)}async function Pw(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Jm(e,t,n,r,i);return ob(e,a,o)}async function Jm(e,t,n,r,i){let o=await gt(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=_p(e),l=new Set;for(let m of s){let y=hn(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 u=await yo(e.appId,e.keyFields,s,t,n,a),p=s.map(m=>mo(u,m)),c=new Map,d=[...new Set(p.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of go(d,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let g of y.records){let A=Number(g.$id?.value);Number.isSafeInteger(A)&&A>0&&c.set(A,g)}}let E=p.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:c.get(m)}})),R=await yE({statement:e,matches:E,fieldInfos:o,dmlMaxRows:it(n.dmlMaxRows,"dmlMaxRows",Jt),dmlMaxSubtableRows:it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",De),statementNumber:i,loadNumberPrecision:()=>Dt(e.appId,t,r)});return{fieldInfos:o,prepared:R}}async function Ow(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await gt(e.appId,e.fields,t,r),o=await Ii({statement:e,fieldInfos:i,dmlMaxRows:it(n.dmlMaxRows,"dmlMaxRows",Jt),dmlMaxSubtableRows:it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",De),loadNumberPrecision:()=>Dt(e.appId,t,r)}),a=Lu(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:js(a),applyDiagnostic:a}))throw new me("INSERT",o.guards.parentRows);let s=await TE(o,t,a);return{...s,diagnostic:qe(a,s)}}async function Lw(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Jm(e,t,n,r,1),o=_u(i);if(n.confirm){let s=js(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new me("UPDATE",i.guards.parentRows)}let a=await IE(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:qe(o,a)}}function _w(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 js(e,t=!0){let n=e.branches.find(d=>d.branch==="insert"),r=e.branches.find(d=>d.branch==="update"),i=e.branches.flatMap(d=>d.targets),o=_w(n?As(n):[],r?As(r):[]),a=Dw(i),s=e.branches.reduce((d,f)=>d+(f.parentRows??0),0),l=i.filter(d=>d.targetKind==="SUBTABLE").reduce((d,f)=>d+(f.changedCount??0),0),u=o.reduce((d,f)=>d+f.appendRows,0),p=o.reduce((d,f)=>d+f.removeRows,0),c={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:u,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:p,deletedParentRows:e.branches.reduce((d,f)=>d+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(d=>d.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(d=>d.targetKind==="SUBTABLE").reduce((d,f)=>d+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let d=As(n),f=As(r);return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:d.reduce((E,R)=>E+R.appendRows,0),tables:d},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,R)=>E+(R.changedCount??0),0),addedSubtableRows:f.reduce((E,R)=>E+R.appendRows,0),tables:f,deletedRows:f.reduce((E,R)=>E+R.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return c}function As(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 Dw(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 Np(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return Cw(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return Pw(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await ty(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Cp(e,t,n,r,i,o)).result}var lo=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Cp(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",u=e.type==="UPDATE"?["$id",...e.assignments.map(N=>N.field)]:[...e.fields];if(new Set(u).size!==u.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let p=e.type==="UPDATE"?e.assignments.map(N=>N.field):e.fields,c=await gt(e.appId,p,t,r);e.type==="UPDATE"&&await Pr(e,t,r);let d=new Map(c.map(N=>[N.code,N])),f=await qt(e.appId,p,c,t,r),E=wt(c,u),R=oR(E),m=(await vw(e,l,t,n,r,i,d,e.type==="UPDATE"?R:void 0)).sort((N,P)=>N.rowNumber-P.rowNumber),y=m.filter(N=>N.mode==="update"),g=e.type==="UPDATE"?kw:e.type.startsWith("UPSERT")?N=>xw(N,t,n.maxRecords??1e4):void 0,A=n.loadUpdateModeSnapshots??g,h=y.length>0&&A!==void 0,I=new Map;if(h){Su(y,p,c);let N=await A({appId:e.appId,candidates:y,fields:R}),P=new Map;for(let S of y){if(S.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${S.rowNumber}).`);let w=N.get(S.targetId);if(!w)throw new Error(`InternalError: update-mode snapshot is missing for record ${S.targetId}.`);let L=aR(w,S.record??{});P.set(S.rowNumber,L)}f===void 0&&[...P.values()].some(S=>_n(S,E))&&(f=await Dt(e.appId,t,r));for(let S of y){let w=P.get(S.rowNumber);if(!w)throw new Error(`InternalError: validation post-image is missing for row ${S.rowNumber}.`);I.set(S.rowNumber,Dn(w,E,f,o,S.rowNumber,l))}}let b=Tu(m,l,u,p,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!h}),{errors:D,invalidRows:C,invalidRowNumbers:M}=b;if(h){let N=new Map(b.candidateResults.map(P=>[P.rowNumber,P]));D=[],M=new Set;for(let P of m){let S=N.get(P.rowNumber);if(!S)throw new Error(`InternalError: validation detail is missing for row ${P.rowNumber}.`);if(P.mode==="create"){let F=[...S.preErrors,...S.builtInErrors,...S.checkErrors];D.push(...F),F.length>0&&M.add(P.rowNumber);continue}let w=I.get(P.rowNumber);if(!w)throw new Error(`InternalError: prepared post-image validation is missing for row ${P.rowNumber}.`);let L=sR({rowNumber:P.rowNumber,setFields:p,normalizedPostImage:w.normalizedRecord,preErrors:S.preErrors,postImageErrors:w.errors,checkErrors:S.checkErrors});P.record=L.writeRecord,D.push(...L.errors);for(let F of L.invalidRowNumbers)M.add(F)}C=M.size}let v=[...u,...mr],x={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-C,invalidRows:C,errorCount:D.length,columns:v,errors:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},O=new Map;for(let N of u){if(N==="$id"){O.set(N,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ne({fieldType:"RECORD_NUMBER"})});continue}let P=d.get(N);P&&O.set(N,xe(P,e.appId))}let _=new Set(["$err_statement","$err_row"]);for(let N of mr)O.set(N,Z(_.has(N)?"number":"string"));return Hn.set(x,O),{result:x,candidates:m,invalidRowNumbers:M,columnMeta:O}}async function zc(e,t,n,r,i,o){let a=await Cp(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");_t(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??nt,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new lo(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let u=a.candidates.filter(E=>!a.invalidRowNumbers.has(E.rowNumber));if(n.confirm){let E=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(u.length,E))throw new me(E,u.length)}let p={affectedRows:u.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let R=0;R<u.length;R+=100){let m=await t.postRecords({app:e.appId,records:u.slice(R,R+100).map(y=>y.record)});E.push(m.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...p}}if(e.type==="UPDATE"){let E=u.map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:R.targetId,record:R.record}});for(let R=0;R<E.length;R+=100)await t.putRecords({app:e.appId,records:E.slice(R,R+100)});return{type:"UPDATE",updatedCount:E.length,...p}}let c=u.filter(E=>E.mode==="create"),d=u.filter(E=>E.mode==="update").map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:E.targetId,record:E.record}}),f=0;for(let E=0;E<c.length;E+=100){let R=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(m=>m.record)});f+=R.ids.length}for(let E=0;E<d.length;E+=100)await t.putRecords({app:e.appId,records:d.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:d.length,...p}}async function vw(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return Mw(e,n,r,i,o,s);let l,u,p,c,d;if(e.type==="INSERT"||e.type==="UPSERT")qR(e,e.fields),d=new Map(e.fields.map(h=>[h,a.get(h)?.fieldType??""])),Vn(e,d),l=e.values.map(h=>h.map((I,b)=>I.type==="CASE_VALUE"?Bt(I.expr,{},a.get(e.fields[b])?.fieldType,le(r)):I));else{let h=await Op.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 _e("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");qR(e,h.columns),u=h.rows,p=h.importPresence,c=h.importRowErrors;let b=h.columnMeta;d=new Map(h.columns.map(D=>{let C=b?.get(D),M=C?.fieldType??(C?.semantics?.compareMode==="number"||C?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[D,M]})),Vn(e,d),l=h.rows.map(D=>h.columns.map(C=>D[C]??""))}let f=l.map((h,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((b,D)=>p&&!p[I]?.has(b)?[]:[[b,h[D]]])),preErrors:[...c?.[I]??[]],record:{},evaluationRow:u?.[I]??Object.fromEntries(e.fields.map((b,D)=>[b,It(h[D])])),evaluationFieldTypes:d}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let h of e.keyFields)if(!e.fields.includes(h))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${h}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([h,I])=>[h,I.fieldType])),R=f.map(h=>e.keyFields.map(I=>It(h.payload.get(I)))),m=e.keyFields.map(h=>E.get(h)==="NUMBER"),y=new Map;for(let h of R){let I=hn(h,m);y.set(I,(y.get(I)??0)+1)}let g=vr.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 A=await yo(e.appId,e.keyFields,R,n,r,E);return f.forEach((h,I)=>{let b=R[I],D=mo(A,b);h.mode=D===void 0?"create":"update",D!==void 0&&(h.targetId=D),e.keyFields.forEach((C,M)=>{b[M]===""&&h.preErrors.push({field:C,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${C} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!g&&(y.get(hn(b,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 Pp(e){return e.checkGroups?Er(e.checkGroups):[]}function qR(e,t){let n=new Set(t);for(let r of Pp(e)){if(r.tableAlias!==null)throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.tableAlias}.${r.field} \u306F\u3053\u306E\u8A55\u4FA1\u884C\u3067\u306F\u4FEE\u98FE\u3067\u304D\u307E\u305B\u3093`);if(!n.has(r.field))throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var Uw=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Vn(e,t){if(e.checkGroups)for(let n of Ff(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(Uw.has(i??""))throw _e(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function Mw(e,t,n,r,i,o){if(e.from)return Gw(e,e.from,t,n,r,i,o);await ay(e.assignments,t,n,r);let a=await Ge(e.appId,t,r),s=Xm(e,a);Vn(e,qc(a,e.appId));let l,u=new Map,p=new Map;if(La(e)){let c=ou(e),d=[...new Set([...c.fields,...s,...o??[]])],f=await pt(t.getRecords,c.app,c.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ps(f.records),u=p,l=su(e,f.records,a,le(n)).flatMap(E=>E.records)}else{let c=Ei(e);if(s.length>0){let d=[...new Set(["$id",...s,...o??[]])],f=await pt(t.getRecords,c.app,c.query,d,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ps(f.records),u=p,l=Ri(e,[...u.keys()],a).flatMap(E=>E.records)}else if(o){let d=await pt(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});p=Ps(d.records),l=Ri(e,[...p.keys()],a).flatMap(f=>f.records)}else{let d=await ja(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Ri(e,d.ids,a).flatMap(f=>f.records)}}return l.sort((c,d)=>c.id-d.id).map((c,d)=>({rowNumber:d+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(f=>[f.field,c.record[f.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:p.get(c.id),evaluationRow:Fw(u.get(c.id),e.appId),evaluationFieldTypes:qc(a,e.appId)}))}function Ps(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 kw(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 xw(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 Ve(`\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 go(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 u=l.$id?.value,p=Number(u);if(!Number.isSafeInteger(p)||p<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(u)}.`);if(!i.has(p))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${p}.`);if(o.has(p))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${p}.`);o.set(p,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function Xm(e,t){if(e.from)return[];let n=new Set;for(let r of Pp(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw _e(`CHECK \u306E\u4FEE\u98FE\u5B50 ${r.tableAlias} \u306F\u66F4\u65B0\u5148 APP${e.appId} \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);if(r.field!=="$id"&&!t.has(r.field))throw _e(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);n.add(r.field)}return[...n]}function Fw(e,t){if(!e)return{};let n=Ht(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function qc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function Gw(e,t,n,r,i,o,a){let s=await Ty(e,t,n,i,o);Vn(e,s.evaluationTypes);let l=await Qm(e,t,n,r,i,o,a),u=await Ge(e.appId,n,i),p=uu(e,l,u,le(r)).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),d=a?Ps(l.map(f=>f.target)):new Map;return p.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(R=>[R.field,f.record[R.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:d.get(f.id),evaluationRow:Yb(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var Kw=Nr,Bw=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Qm(e,t,n,r,i,o,a){if(t.cteName!==null){let I=o?.get(t.cteName),b=C=>Oe(C,I?.columns??[])??C;t.joinKeyField=b(t.joinKeyField);for(let C of e.assignments)C.value.type==="SOURCE_FIELD"&&C.value.alias===t.alias&&(C.value.field=b(C.value.field));let D=C=>{if(C===null||typeof C!="object")return;if(Array.isArray(C)){C.forEach(D);return}let M=C;M.type==="FIELD"&&M.tableAlias===t.alias&&typeof M.field=="string"&&(M.field=b(M.field)),Object.values(M).forEach(D)};D(e.checkGroups)}let s=await $w(e,t,n,i),l=await Ty(e,t,n,i,o),u=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],p=[...new Set([t.joinKeyField,...u])],c=await Ww(t,p,u,n,r,i,o),d=new Map,f=new Map;for(let I of c){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let b=JR(I[t.joinKeyField],s,"source");if(d.has(b))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${b}.`);d.set(b,I),f.set(b,String(I[t.joinKeyField]).trim())}if(d.size===0)return[];let E=r.maxRecords??1e4,R=[...new Set([...sb(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":Ei({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],g=new Set,A=0;for(let I of go([...f.values()],Kw)){let b=`${t.targetJoinField} in (${I.map(ao).join(",")})`,D=m?`(${b}) and (${m})`:b,C=await pt(n.getRecords,e.appId,D,R,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(A+=C.records.length,A>E)throw new Ve(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${E} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let M of C.records){let v=M.$id?.value;if(typeof v!="string"||v==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");g.has(v)||(g.add(v),y.push(M))}}let h=[];for(let I of y){let b=I[t.targetJoinField]?.value,D=JR(b,s,"target");if(D===null)continue;let C=d.get(D);C!==void 0&&h.push({target:I,source:C})}return h}async function $w(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 Ww(e,t,n,r,i,o,a){if(e.cteName!==null){let p=a?.get(e.cteName);if(!p)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(Dr(p,c)===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return p.rows}let s=await Ge(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let p of n){if(p!=="$id"&&!s.has(p))throw new Error(`ArgumentError: UPDATE ... FROM source column ${p} does not exist.`);let c=p==="$id"?"RECORD_NUMBER":s.get(p);if(Bw.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${p}).`)}return(await pt(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(p=>Ht(p,null))}function JR(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=we(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function ho(e,t,n,r,i){let o=await Cp(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let c=o.result.errors[0];throw new Error(`DmlValidationError: ${c.$err_code} ${c.$err_message} (row=${c.$err_row}, field=${c.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new me(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let d=0;d<a.length;d+=100){let f=await t.postRecords({app:e.appId,records:a.slice(d,d+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(d=>({id:d.targetId,record:d.record}));for(let d=0;d<c.length;d+=100)await t.putRecords({app:e.appId,records:c.slice(d,d+100)});return{type:"UPDATE",updatedCount:c.length}}let l=a.filter(c=>c.mode==="create"),u=a.filter(c=>c.mode==="update").map(c=>({id:c.targetId,record:c.record})),p=0;for(let c=0;c<l.length;c+=100){let d=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});p+=d.ids.length}for(let c=0;c<u.length;c+=100)await t.putRecords({app:e.appId,records:u.slice(c,c+100)});return{type:"UPSERT",insertedCount:p,updatedCount:u.length}}async function Vw(e,t,n,r){if(e.applyBlocks?.length)return Ow(e,t,n,r);if(e.checkGroups?.length)return ho(e,t,n,r);if(e.subtableCode)return pb(e,t,n,r);let i=await gt(e.appId,e.fields,t,r),o=await qt(e.appId,e.fields,i,t,r),a=await Ge(e.appId,t,r),s=Oa(e,a,le(n));An(s.flatMap(u=>u.records),e.fields,i,o);let l=[];for(let u of s){let p=await t.postRecords(u);l.push(p.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function Hw(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Ce},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function Zm(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=fR(e.source.sourceName,n.importSource);if(e.targets?.some(c=>c.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 k=new Set(e.targets.filter(G=>G.kind==="SUBTABLE").map(G=>G.subtableCode));if(e.replaceSubtables.some(G=>!k.has(G)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let G of e.targets.filter(j=>j.kind==="SUBTABLE"))if(!G.rowIdSourceHeader||!e.replaceSubtables.includes(G.subtableCode))throw new Error(`ArgumentError: CSV subtable ${G.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=e.targets,d=await Q(e.appId,t,r),f=c.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children),E=d.some(k=>f.includes(k.code)&&k.fieldType==="NUMBER")?await Dt(e.appId,t,r):void 0,R=await Rs(o,new Map),m=e.source.kind==="JSON"?gR(e.source,R,c,n.maxRecords??1e4):hR(e.source,R,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader);await rp(n,e.source,m.receipt);let y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",g=IR(m,c,d,E,y);if(e.source.kind==="CSV")return Yw(e,m,g,d,t,n,i);Rc(g,e.rejectLimit);let A=[...new Set(c.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],h=yc(g.errors,A),I=[...A,...mc],b=g.invalidParentRows.size,D={preflight:"ACTUAL_DATA",parents:{total:g.parents.length,valid:g.parents.length-b,invalid:b,mutationCandidates:g.parents.filter(k=>k.valid).length},tables:Object.fromEntries(g.tableCounts),writesKintone:!1},C={type:"VALIDATION",operation:y,validatedRows:g.parents.length,validRows:g.parents.length-b,invalidRows:b,errorCount:h.length,columns:I,errors:h,importDetail:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&_t(i,e.validationErrorTable,I,h,n.tempTableMaxRows??nt,new Map),e.validateOnly)return C;if(bR(m),g.errors.length>0&&!e.onErrorSkip){let k=g.errors[0];throw new Error(`DmlValidationError: ${k.code} ${k.message} (row=${k.parentRow}, field=${k.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");_t(i,e.errorTable,I,h,n.tempTableMaxRows??nt,new Map)}let M=g.parents.filter(k=>k.valid),v=new Map(d.map(k=>[k.code,k.fieldType])),x=M.map(()=>{});if(e.keyFields){for(let B of e.keyFields)if(!e.fields.includes(B))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${B}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let k=e.keyFields.map(B=>v.get(B)==="NUMBER"),G=new Set,j=M.map(B=>e.keyFields.map(U=>String(B.top[U]?.value??"")));for(let B of j){let U=hn(B,k);if(G.has(U))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");G.add(U)}let $=await yo(e.appId,e.keyFields,j,t,n,v);j.forEach((B,U)=>{x[U]=mo($,B)})}let O=c.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode),_=new Map,N=x.filter(k=>k!==void 0);for(let k of go([...new Set(N)],100)){let G=await t.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id","$revision",...O]});for(let j of G.records){let $=Number(j.$id?.value),B=Number(j.$revision?.value);Number.isFinite($)&&_.set($,{id:$,...Number.isFinite(B)?{revision:B}:{},record:j})}}let P=NR(M,x,_),S={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:P.length,insertedParents:P.filter(k=>k.mode==="INSERT").length,updatedParents:P.filter(k=>k.mode==="UPDATE").length,hasDeletes:P.some(k=>k.tables.some(G=>G.deleteRows>0)),parents:P.map(k=>({parentRow:k.parentRow,mode:k.mode,...k.targetId===void 0?{}:{targetId:k.targetId},tables:k.tables}))};if(P.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(P.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:S}))throw new me(e.keyFields?"UPDATE":"INSERT",P.length)}let w=k=>new Map(Object.entries(k).map(([G,j])=>[G,j.value])),L=k=>wR(w(k.top),new Map([...k.subtables].map(([G,j])=>[G,j.map($=>({values:w($)}))]))),F=P.filter(k=>k.mode==="INSERT"),K=P.filter(k=>k.mode==="UPDATE"),W=[];for(let k=0;k<F.length;k+=100){let G=await t.postRecords({app:e.appId,records:F.slice(k,k+100).map(L)});W.push(G.ids)}for(let k=0;k<K.length;k+=100)await t.putRecords({app:e.appId,records:K.slice(k,k+100).map(G=>({id:G.targetId,...G.revision===void 0?{}:{revision:G.revision},record:L(G)}))});return e.keyFields?{type:"UPSERT",insertedCount:W.flat().length,updatedCount:K.length,affectedRows:P.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:S}:{type:"INSERT",createdIds:W,insertedCount:W.flat().length,affectedRows:P.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:S}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return jw(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:Hw(),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};vr.set(s,l);let u=c=>{l.audit&&Object.assign(c,{importAudit:l.audit});let d=_s.get(s);return d?.length&&_s.set(e,d),c};if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await Np(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&_t(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??nt,Hn.get(c)??new Map),u(c)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let c=await(s.type==="UPSERT_SELECT",zc(s,t,n,r,i,1));return u(c)}let p=await(s.type==="UPSERT_SELECT"?Up(s,t,n,r,i):Lp(s,t,n,r,i));return u(p)}async function Yw(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");CR(t.records);let s=t.records.map(_=>_.recordNumberSourceValue??""),l=Ac(s,e.recordNumberSourceHeader),u=[...e.replaceSubtables],p=[...new Set(r.filter(_=>!_.inSubtable&&_.fieldType==="SUBTABLE").map(_=>_.code))],c=await Ke(i.getRecords,e.appId,"",["$id","$revision",...p],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),d=new Map,f=new Map;for(let _ of c){let N=Number(_.$id?.value),P=Number(_.$revision?.value);if(Number.isFinite(N)){d.set(N,{id:N,...Number.isFinite(P)?{revision:P}:{},record:_});for(let S of p){let w=_[S]?.value;if(Array.isArray(w)){for(let L of w)if(L.id){let F=f.get(L.id)??[];F.push({parentId:N,table:S}),f.set(L.id,F)}}}}}let E=l.normalized.map(_=>_===null?void 0:Number(_)),R=n.parents.map((_,N)=>{let P=[..._.errors];for(let w of l.errors[N])P.push({operation:"UPDATE",parentRow:_.parentRow,field:w.field,code:w.code,message:w.message,sourceValues:t.records[N].top});let S=E[N];return S!==void 0&&!d.has(S)&&P.push({operation:"UPDATE",parentRow:_.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${S} does not exist in APP${e.appId}`,sourceValues:t.records[N].top}),{..._,valid:P.length===0,errors:P}}),m=PR(t.records,R,E,d,f),y=m.flatMap(_=>[..._.errors]),g=new Set(m.filter(_=>!_.valid).map(_=>_.parentRow)),A={...n,parents:R,errors:y,invalidParentRows:g};Rc(A,e.rejectLimit);let h=m.filter(_=>_.valid),I=m.flatMap(_=>_.tables),b=(_,N)=>I.filter(P=>P.table===_).reduce((P,S)=>P+Number(S[N]),0),D=Object.fromEntries(u.map(_=>[_,{existingRows:b(_,"existingRows"),inputRows:b(_,"inputRows"),updateRows:b(_,"updateRows"),addRows:b(_,"addRows"),deleteRows:b(_,"deleteRows"),rowIdNotFound:b(_,"rowIdNotFound")}])),C={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:h.length,insertedParents:0,updatedParents:h.length,hasDeletes:h.some(_=>_.tables.some(N=>N.deleteRows>0)),totalDeleteRows:h.flatMap(_=>_.tables).reduce((_,N)=>_+N.deleteRows,0),rowIdNotFound:h.flatMap(_=>_.tables).reduce((_,N)=>_+N.rowIdNotFound,0),invalidParents:g.size,parents:h.map(_=>({parentRow:_.parentRow,mode:"UPDATE",targetId:_.targetId,tables:_.tables}))},M=[...new Set(e.targets.flatMap(_=>_.kind==="FIELD"?[_.field]:_.children))],v=yc(y,M),x=[...M,...mc];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&_t(a,e.validationErrorTable,x,v,o.tempTableMaxRows??nt,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-g.size,invalidRows:g.size,errorCount:v.length,columns:x,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:R.length,valid:h.length,invalid:g.size,mutationCandidates:h.length},tables:D,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:C.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let _=y[0];throw new Error(`DmlValidationError: ${_.code} ${_.message} (row=${_.parentRow}, field=${_.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");_t(a,e.errorTable,x,v,o.tempTableMaxRows??nt,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:C}))throw new me("UPDATE",h.length)}let O=_=>new Map(Object.entries(_).map(([N,P])=>[N,P.value]));for(let _ of h){let N=gc(O(_.top),new Map([..._.subtables].map(([P,S])=>[P,S.map(w=>({...w.rowId?{rowId:w.rowId}:{},values:O(w.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:_.targetId,..._.revision===void 0?{}:{revision:_.revision},record:N}]})}return{type:"UPDATE",updatedCount:h.length,affectedRows:h.length,skippedRows:g.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}async function jw(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 gt(e.appId,e.fields,n,i),s=await qt(e.appId,e.fields,a,n,i),l=await Rs(t,new Map),u=dc(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader);await rp(r,e.source,u.receipt);let p=u.recordNumberSourceValues;if(!p)throw new Error("InternalError: record-number source values were not materialized.");let c=Ac(p,e.recordNumberSourceHeader),d=new Set,f=[...new Set(c.normalized.filter(C=>C!==null))];for(let C=0;C<f.length;C+=100){let M=f.slice(C,C+100),v=await n.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id"]});for(let x of v.records){let O=x.$id?.value;typeof O=="string"&&O!==""&&d.add(O.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(C=>[C.code,C])),R=new Map(e.fields.map(C=>[C,E.get(C)?.fieldType??"SINGLE_LINE_TEXT"])),m=u.rows.map((C,M)=>{let v=c.normalized[M],x=[...u.importRowErrors?.[M]??[],...c.errors[M]];return v!==null&&!d.has(v)&&x.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${v} does not exist in APP${e.appId}`}),{rowNumber:M+1,operation:"UPDATE",mode:"update",...v!==null&&d.has(v)?{targetId:Number(v)}:{},payload:new Map([[e.recordNumberSourceHeader,p[M]],...e.fields.map(O=>[O,C[O]??""])]),preErrors:x,record:{},evaluationRow:C,evaluationFieldTypes:R}}),y=[e.recordNumberSourceHeader,...e.fields],g=Tu(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),A=[...y,...mr],h={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-g.invalidRows,invalidRows:g.invalidRows,errorCount:g.errors.length,columns:A,errors:g.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(h,{importAudit:u.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&_t(o,e.validationErrorTable,A,g.errors,r.tempTableMaxRows??nt,new Map),h}if(!e.onErrorSkip&&g.invalidRows>0){let C=g.errors[0];throw new Error(`DmlValidationError: ${C.$err_code} ${C.$err_message} (row=${C.$err_row}, field=${C.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(_t(o,e.errorTable,A,g.errors,r.tempTableMaxRows??nt,new Map),e.rejectLimit!=null&&g.invalidRows>e.rejectLimit)throw new lo(`rejected rows (${g.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,h)}let I=m.filter(C=>!g.invalidRowNumbers.has(C.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new me("UPDATE",I.length);let b=I.map(C=>({id:C.targetId,record:C.record}));for(let C=0;C<b.length;C+=100)await n.putRecords({app:e.appId,records:b.slice(C,C+100)});let D={type:"UPDATE",updatedCount:b.length,...e.onErrorSkip?{affectedRows:b.length,skippedRows:g.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(D,{insertedCount:0,importAudit:u.importAudit}),D}async function zw(e,t,n,r,i,o){let a=vr.get(e);if(!a){let R=i&&i.size>0?await yt(e.select,t,n,i,r,!0):await zt(e.select,t,n,r,void 0,!0);return LR(e,R.warnings),{rows:R.rows,columns:R.columns,columnMeta:pe.get(R)}}let s=await Rs(a.handle,a.cache),l=n.maxRecords??1e4,u=new Map((o??[]).map(R=>[R.code,R])),p=e.fields.map(R=>({code:R,fieldType:u.get(R)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?pc(a.source,s,p,l):dc(a.source,s,l,e.fields,o);if(await rp(n,a.source,c.receipt),a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let d=OR(a.source.projection),f=new Map(i??[]);f.set(hc,c);let E=await yt(d,t,{...n,onLimitReached:"error"},f,r,!0);return LR(e,E.warnings),{rows:E.rows,columns:E.columns,columnMeta:pe.get(E)}}var Op={materialize:zw};function ey(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 Lp(e,t,n,r,i){if(e.checkGroups?.length)return ho(e,t,n,r,i);let o=await gt(e.appId,e.fields,t,r),a=await qt(e.appId,e.fields,o,t,r),s=await Op.materialize(e,t,n,r,i,o),{rows:l,columns:u}=s;if(ey(s),u.length!==e.fields.length){let f=u.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${u.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new me("INSERT",l.length);let p=await Ge(e.appId,t,r),c=l.map((f,E)=>{let R={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[E]?.has(m))return;let g=f[u[y]]??"";R[m]={value:qm(g,p.get(m))}}),R});c.forEach(f=>An([f],e.fields.filter(E=>E in f),o,a));let d=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),R=await t.postRecords({app:e.appId,records:E});d.push(R.ids)}return{type:"INSERT",createdIds:d,insertedCount:d.flat().length}}async function Jc(e,t,n,r,i){if(e.applyBlocks?.length)return ty(e,t,n,r);if(e.checkGroups?.length&&mt(e.where)){let E=await gt(e.appId,e.assignments.map(m=>m.field),t,r);await qt(e.appId,e.assignments.map(m=>m.field),E,t,r);let R=await Ge(e.appId,t,r);return Xm(e,R),Vn(e,qc(R,e.appId)),await Pr(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return ho(e,t,n,r,i);if(e.subtableCode)return await Pr(e,t,r),db(e,t,n,r);let o=await gt(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await qt(e.appId,a,o,t,r);if(await Pr(e,t,r),mt(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return ab(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await ay(e.assignments,t,n,r);let u=await Ge(e.appId,t,r);if(La(e)){let E=ou(e),m=(await pt(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=su(e,m,u,le(n));if(An(y.flatMap(g=>g.records.map(A=>A.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new me("UPDATE",m.length);for(let g of y)await t.putRecords(g);return{type:"UPDATE",updatedCount:m.length}}let p=Ei(e),d=(await ja(t.getRecords,p.app,p.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Ri(e,d,u);if(An(f.flatMap(E=>E.records.map(R=>R.record)),a,o,s),n.confirm&&!await n.confirm(d.length,"UPDATE"))throw new me("UPDATE",d.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:d.length}}async function ty(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Ut(e.where))return qw(e,t,n,r,i);let o=await Q(e.appId,t,r),a=$t(e,o),s=Da(e,o),l=Ru(e),u=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(u.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(u.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let p=Number(u.records[0].$id?.value);if(p!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${p} does not match requested $id ${l}.`);ka(u.records[0]);let c=tE({statement:e,snapshot:u.records[0],fieldInfos:o,metadata:a,evaluationContext:le(n)}),d=wt(o,e.assignments.map(I=>I.field)),f=_n(c.postImage,d)?await Dt(e.appId,t,r):void 0,E=Dn(c.postImage,d,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let R=it(n.dmlMaxRows,"dmlMaxRows",Jt),m=it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",De),y=c.parentRows>R||c.changedSubtableRows>m;if(e.validateOnly){let I=bi({plans:[c],records:hi(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),b={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:E.invalidRows===0?1:0,invalidRows:E.invalidRows===0?0:1,errorCount:E.errorCount,columns:[...E.columns],errors:E.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:uo(I.branches[0]),guards:co(I.branches[0]),deletedRows:{total:c.tables.reduce((D,C)=>D+C.deletedRows,0),parentRows:c.tables.some(D=>D.deletedRows>0)?1:0},diagnostic:I};return Hn.set(b,zs(E.columns,o,e.appId)),b}if(c.parentRows>R)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${R}).`);if(c.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let g=Ua(c,E.normalizedRecord),A=hi(g),h=bi({plans:[g],records:A.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:R,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let I=js(h,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:h}))throw new me("UPDATE",c.parentRows)}return await t.putRecords(A),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:qe(h,{successfulChunks:1,successfulParents:c.parentRows})}}async function qw(e,t,n,r,i){let o=it(n.dmlMaxRows,"dmlMaxRows",Jt),a=it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",De),s=await Q(e.appId,t,r),l=$t(e,s),u;if(Gs(e))u=await Zw(e,t,n,s,r);else{let f=Da(e,s),E=Ei(e).query,R=o+1;u=await Ke(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,R),parallel:n.fetchParallel??1,maxRecords:R,stopAfter:R,onLimit:"error"})}if(!e.validateOnly&&u.length>o)throw new Error(`ArgumentError: APPLY parent rows (${u.length}) exceed dmlMaxRows (${o}).`);let p=await Ka({statement:e,snapshots:u,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>Dt(e.appId,t,r)});if(e.validateOnly)return ib(e,p,s);gd("phase15b",e);let c=bi(p);if(n.confirm){let f=js(c);if(!await n.confirm(p.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new me("UPDATE",p.guards.parentRows)}let d=await SE(p,t,c);return{...d,diagnostic:qe(c,d)}}function Gs(e){return(e.applyBlocks?.length??0)>0&&!Ut(e.where)&&(tn(e.where)||Pe(e.where))}function Jw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Gs(t)&&Pe(t.where)}var Xw=`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
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 Qw(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Xw}`)}async function Zw(e,t,n,r,i){let o=r.filter(E=>!E.inSubtable),a=new Map(o.map(E=>[E.code,E])),s=new Map(o.map(E=>[E.code,E.fieldType])),l=new Map(o.flatMap(E=>E.optionOrder?[[E.code,new Set(Object.keys(E.optionOrder))]]:[])),u=Bu(e.where,{fieldTypes:s,fieldOptions:l});Qw(u);let p=u.prefilter===null?"":z(u.prefilter),c=new Set(Da(e,r));for(let E of eb(e.where))c.add(E);let d=await tb(e.appId,e.where,a,t,i);return(await Ke(t.getRecords,e.appId,p,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:Ht(E,null)})).filter(({row:E})=>ue(e.where,E,d.fieldTypeResolver,u.appliedKlikes,d.fieldSemanticsResolver,le(n))).map(({snapshot:E})=>E)}function eb(e){return cp(e)}async function tb(e,t,n,r,i){let s=[...nb(t)].some(p=>n.get(p)?.fieldType==="STATUS")?await bp(e,r,i):void 0;return{fieldTypeResolver:p=>p.field==="$id"?"NUMBER":n.get(p.field)?.fieldType,fieldSemanticsResolver:p=>{if(p.field==="$id")return sr(ne({fieldType:"__ID__"}),e,"$id");let c=n.get(p.field);if(!c)return;let d=c.semantics??ne(c),f=c.fieldType==="STATUS"&&s?{...d,optionOrder:s}:d;return sr(f,e,c.code)}}}function nb(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 rb(e,t,n){let r=t.validations.flatMap(p=>p.errors),i=t.validations.reduce((p,c)=>p+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...wt(n,e.fields).payloadFields,...Ti],a=t.guards.parentRows,s=Lu(t),l=s.branches[0],u={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:uo(l),guards:co(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return Hn.set(u,zs(o,n,e.appId)),u}function ib(e,t,n){let r=t.validations,i=r.flatMap(u=>u.errors),o=r.reduce((u,p)=>u+(p.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...wt(n,e.assignments.map(u=>u.field)).payloadFields,...Ti],s=bi(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:uo(s.branches[0]),guards:co(s.branches[0]),deletedRows:{total:t.plans.reduce((u,p)=>u+p.tables.reduce((c,d)=>c+d.deletedRows,0),0),parentRows:t.plans.filter(u=>u.tables.some(p=>p.deletedRows>0)).length},diagnostic:s};return Hn.set(l,zs(a,n,e.appId)),l}function ob(e,t,n){let r=t.create.validations.flatMap(E=>E.errors),i=t.update.validations.flatMap(E=>E.errors),o=[...r,...i].map(E=>({...E,$err_operation:"UPSERT"})),a=new Set(o.map(E=>E.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...wt(n,e.fields).payloadFields,...Ti],l=_u(t),u=l.branches.find(E=>E.branch==="insert"),p=l.branches.find(E=>E.branch==="update"),c=uo(u),d=uo(p),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...d],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:co(u)},update:{apply:d,guards:co(p)}},deletedRows:{total:t.update.plans.reduce((E,R)=>E+R.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(R=>R.deletedRows>0)).length},diagnostic:l};return Hn.set(f,zs([...s],n,e.appId)),f}function uo(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 co(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var Jt=100,De=500;function it(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 zs(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,xe(s,n));continue}o.set(a,Z(i.has(a)?"number":"string"))}return o}async function ab(e,t,n,r,i,o){let a=await Qm(e,t,n,r,i,o),s=await Ge(e.appId,n,i),l=uu(e,a,s,le(r)),u=e.assignments.map(d=>d.field),p=await Q(e.appId,n,i),c=await qt(e.appId,u,p,n,i);if(An(l.flatMap(d=>d.records.map(f=>f.record)),u,p,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new me("UPDATE",a.length);for(let d of l)await n.putRecords(d);return{type:"UPDATE",updatedCount:a.length}}function sb(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 lb(e,t,n,r){if(await Pr(e,t,r),mt(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return fb(e,t,n,r);let i=jf(e),a=(await ja(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new me("DELETE",a.length);let s=zf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function ub(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"?Bt(s.expr,{},t.get(o),le(n)):Tt(s,t.get(o))}}),i})}async function cb(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Lw(e,t,n,r);if(e.checkGroups?.length)return ho(e,t,n,r);let i=await gt(e.appId,e.fields,t,r),o=await qt(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ge(e.appId,t,r),u=_p(e);if(Sp(Hm(e,t,n,i,u)).execution.status==="ELIGIBLE"){let f=ub(e,l,n);return An(f,e.fields,i,o),Ym(e.appId,e.keyFields[0],f,u,t,n)}let c=await yo(e.appId,e.keyFields,u,t,n,l);if(e.values.forEach((f,E)=>{let R={};e.fields.forEach((y,g)=>{let A=f[g];A.type==="CASE_VALUE"?R[y]={value:Bt(A.expr,{},l.get(y),le(n))}:R[y]={value:Tt(A,l.get(y))}});let m=mo(c,u[E]);m!==void 0?s.push({id:m,record:R}):a.push(R)}),An([...a,...s.map(f=>f.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let f=a.length+s.length;if(!await n.confirm(f,"UPDATE"))throw new me("UPDATE",f)}let d=[];for(let f=0;f<a.length;f+=100){let E=await t.postRecords({app:e.appId,records:a.slice(f,f+100)});d.push(E.ids)}for(let f=0;f<s.length;f+=100)await t.putRecords({app:e.appId,records:s.slice(f,f+100)});return{type:"UPSERT",insertedCount:d.flat().length,updatedCount:s.length}}function _p(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?q(i):i.type==="CASE_VALUE"?He(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Dp(e,t,n,r){if(t.length===0)return;let i=await Ge(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 pb(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 Ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=qs(a),l=new Map;for(let p of e.values){let c=XR(p[o]);if(!s.get(c))throw new Error(`_pid=${c} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((R,m)=>{if(R!=="_pid"){if(R.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[R]={value:XR(p[m])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let u=[];for(let[p,c]of l.entries()){let d=s.get(p),E=[...Ao(d,i),...c];u.push(ny(e.appId,p,So(d),i,E))}for(let p of u)await t.putRecords(p);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function db(e,t,n,r){let i=e.subtableCode;if(!Qi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];jt(e.where,o);for(let d of e.assignments)d.value.type==="CASE_VALUE"&&Ms(d.value.expr,o);let a=await Dp(e.appId,o,t,r),s=await Ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=vp(s,i).filter(d=>ue(e.where,d.flat,a,void 0,void 0,le(n)));if(n.confirm&&!await n.confirm(u.length,"UPDATE"))throw new me("UPDATE",u.length);let p=new Map;for(let d of u){if(!d.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=p.get(d.parentId);f||(f=new Map,p.set(d.parentId,f));let E={};for(let R of e.assignments){if(R.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${R.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[R.field]={value:_a(R.value,d.flat,a,le(n))}}f.set(d.rowId,E)}let c=qs(s);for(let[d,f]of p.entries()){let E=c.get(d);if(!E)continue;let m=Ao(E,i).map(y=>{let g=y.id??"";if(!g)return y;let A=f.get(g);return A?{id:g,value:A}:{id:g}});await t.putRecords(Eb(e.appId,d,So(E),i,m))}return{type:"UPDATE",updatedCount:u.length}}async function fb(e,t,n,r){let i=e.subtableCode;if(!Qi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];jt(e.where,o);let a=await Dp(e.appId,o,t,r),s=await Ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=vp(s,i).filter(d=>ue(e.where,d.flat,a,void 0,void 0,le(n)));if(n.confirm&&!await n.confirm(u.length,"DELETE"))throw new me("DELETE",u.length);let p=new Map;for(let d of u){let f=p.get(d.parentId);f?f.push(d.rowIndex):p.set(d.parentId,[d.rowIndex])}let c=qs(s);for(let[d,f]of p.entries()){let E=c.get(d);if(!E)continue;let R=Ao(E,i),m=new Set(f),y=R.filter((g,A)=>!m.has(A));await t.putRecords(ny(e.appId,d,So(E),i,y))}return{type:"DELETE",deletedCount:u.length}}function qs(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function vp(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=So(r),a=Ao(r,t);for(let s=0;s<a.length;s++){let l=a[s],u={...va(l,s),_pid:i};for(let[p,c]of Object.entries(r))p!==t&&(u[`_p.${p}`]=Xc(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:u})}}return n}function Ao(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function So(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function ny(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Eb(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Rb(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 XR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved variable @${e.name} reached INSERT evaluation.`);return e.type==="STRING"?e.value:e.type==="NUMBER"?q(e):e.type==="CASE_VALUE"?He(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Xc(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 Qi(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return Qi(e.left)||Qi(e.right);case"NOT":case"GROUP":return Qi(e.expr);default:return!1}}async function mb(e,t,n,r){let i=[];jt(e.where,i);let o=await Dp(e.appId,i,t,r),a=await Q(e.appId,t,r);if(mt(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 V("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??V("string")},u=await Ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),p=vp(u,e.subtableCode),c=e.all?new Set(u.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(p.filter(f=>e.where&&ue(e.where,f.flat,o,void 0,l,le(n))).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new me("UPDATE",c.size);let d=qs(u);for(let f of c){let E=d.get(f);if(!E)continue;let m=Ao(E,e.subtableCode).map((g,A)=>({row:g,i:A,flat:yb(E,e.subtableCode,g,A)}));m.sort((g,A)=>gb(g.flat,A.flat,e.by,l,le(n)));let y=m.map(g=>g.row.id??"");await t.putRecords(Rb(e.appId,f,So(E),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:c.size}}function yb(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}`]=Xc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Xc(a?.value);return i}function gb(e,t,n,r,i={}){for(let o of n){let a=QR(o.key,e,i),s=QR(o.key,t,i),l=o.key.type==="FIELD_NAME"?r(Fe(o.key.name)):o.key.type==="ARITH_KEY"?V("number"):o.key.type==="FUNC_KEY"?yn(o.key.expr,p=>{let c=r(p);return c?{compareMode:c.compareMode}:void 0}).semantics??V("string"):V("number"),u=ct(a,s,l??V("string"));if(u!==0)return o.direction==="ASC"?u:-u}return 0}function QR(e,t,n={}){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(Ee(e.expr,t,n));case"FUNC_KEY":return Ae(e.expr,t,void 0,void 0,n);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Up(e,t,n,r,i){if(e.checkGroups?.length)return ho(e,t,n,r,i);let o=await gt(e.appId,e.fields,t,r),a=await qt(e.appId,e.fields,o,t,r),s=await Op.materialize(e,t,n,r,i,o),{rows:l,columns:u}=s;if(ey(s),u.length!==e.fields.length){let g=u.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${u.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let p=[],c=[],d=await Ge(e.appId,t,r),f=l.map((g,A)=>{let h={};return e.fields.forEach((I,b)=>{if(s.importPresence&&!s.importPresence[A]?.has(I))return;let D=g[u[b]]??"";h[I]={value:qm(D,d.get(I))}}),h});f.forEach(g=>An([g],e.fields.filter(A=>A in g),o,a));let E=f.map(g=>e.keyFields.map(A=>String(g[A]?.value??"")));if(Sp(Hm(e,t,n,o,E)).execution.status==="ELIGIBLE")return Ym(e.appId,e.keyFields[0],f,E,t,n);if(vr.has(e)){let g=e.keyFields.map(h=>d.get(h)==="NUMBER"),A=new Set;for(let h of E){let I=hn(h,g);if(A.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");A.add(I)}}let m=await yo(e.appId,e.keyFields,E,t,n,d);if(f.forEach((g,A)=>{let h=mo(m,E[A]);h!==void 0?c.push({id:h,record:g}):p.push(g)}),n.confirm&&p.length+c.length>0){let g=p.length+c.length;if(!await n.confirm(g,"UPDATE"))throw new me("UPDATE",g)}let y=[];for(let g=0;g<p.length;g+=100){let A=await t.postRecords({app:e.appId,records:p.slice(g,g+100)});y.push(A.ids)}for(let g=0;g<c.length;g+=100)await t.putRecords({app:e.appId,records:c.slice(g,g+100)});return{type:"UPSERT",insertedCount:y.flat().length,updatedCount:c.length}}var Mp=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),kp=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 ry(e){let t=await e.getApps(),n=[...Mp],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 iy(e,t,n){let r=await Q(e.appId,t,n),i=[...kp],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 hb(e,t=!1){try{let n=new pn(e).tokenize(),r=new dn(n,{import:t}).parse();return nr("phase15b",r),ut(r),r}catch(n){throw n instanceof ke||n instanceof T,n}}async function po(e,t,n,r,i,o){let a=[];Os(e,t,n,r,a,i,o),await Promise.all(a)}async function oy(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(po(l.condition,t,n,r,i,o));await Promise.all(a)}function Zi(e,t,n,r,i){return i!==void 0&&i.size>0?yt(e,t,n,i,r):zt(e,t,n,r)}function Os(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(Zi(s.query,t,n,r,a).then(l=>{for(let p of l.warnings??[])o.add(p);let u=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(p=>p[u]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(Zi(s.query,t,n,r,a).then(l=>{for(let p of l.warnings??[])o.add(p);if(l.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(l.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let u=l.columns[0]??"";s.resolved=l.rows[0]?.[u]??""}));break}case"LOGICAL":Os(e.left,t,n,r,i,o,a),Os(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":Os(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(Zi(s.query,t,n,r,a).then(l=>{for(let u of l.warnings??[])o.add(u);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function ay(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await zt(i.value.query,t,n,r);if(o.rowCount===0)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);if(o.rowCount>1)throw new Error(`SET \u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${i.field}\uFF09`);let a=o.columns[0]??"",s=o.rows[0]?.[a]??"";i.value={type:"STRING",value:s}}}async function sy(e,t,n,r,i,o){let a=new Map,s=[];for(let p=0;p<e.length;p++){let c=e[p];if(c.type!=="SCALAR_SUBQUERY_COL")continue;let d=JSON.stringify(c.query),f=a.get(d);f||(f=Zi(c.query,t,n,r,o).then(E=>{for(let m of E.warnings??[])i.add(m);if(E.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(E.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let R=E.columns[0]??"";return E.rows[0]?.[R]??""}),a.set(d,f)),s.push([p,f])}let l=await Promise.all(s.map(([,p])=>p)),u=new Map;return s.forEach(([p],c)=>u.set(p,l[c])),u}var ly=new WeakMap,uy=new WeakMap,cy=new WeakMap,Qc=new WeakMap,xp=new WeakMap,py=new WeakMap,dy=new WeakMap;async function fy(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,u={...t,getFields:async O=>(a.add(O),t.getFields(O)),getProcessStatuses:async O=>(s.add(O),t.getProcessStatuses(O)),getNumberPrecision:async O=>(l.add(O),t.getNumberPrecision(O))},p=new Map,c=new Map,d=new Map,f=[],E=new Set,R=i??await Eo(e,u,n),m=O=>R.nodes.find(_=>_.source===O||JSON.stringify(_.source)===JSON.stringify(O)),y=new Map(o??[]),g=new Set(o?.keys()??[]),A=new Map([...o??new Map].map(([O,_])=>[O,_.rows.length])),h=new WeakMap,I=O=>de(O)??(O.appId>0?`APP${O.appId}`:"source"),b=O=>O.cteName===Ce?1:O.cteName!==null?A.get(O.cteName)??null:null,D=O=>{let _=b(O.from),N=I(O.from),P=[];for(let w of O.joins){let L=b(w.table),F=I(w.table);if(w.type==="CROSS"){let K=_!==null&&L!==null?Ci(_,L):null;P.push({leftLabel:N,rightLabel:F,leftRows:_,rightRows:L,plan:K,rightRuntimeLabel:w.table.cteName===null?`APP${w.table.appId} fetched rows`:`${F} materialized rows`}),_=K?.outputRows??null,N=`${N} \xD7 ${F}`}else _=null,N=`${N} ${w.type} JOIN ${F}`}if(P.length>0&&xp.set(O,P),mt(O.where)?_=0:O.where!==null&&(_=null),(ee(O).type!=="NONE"||O.distinct||O.having!==null||Mt(O)||rt(O).length>0)&&(_=null),_!==null){let w=O.offset??0;_=Math.max(0,_-w),O.limit!==null&&(_=Math.min(_,O.limit)),h.set(O,_)}},C=async O=>{let _=[O.from,...O.joins.map(P=>P.table)];if(_.length>1&&O.columns.some(P=>P.type==="WILDCARD"||P.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let N=[];for(let P of _){if(P.cteName!==null){if(P.cteName===Ce)continue;let w=y.get(P.cteName);if(!w)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${P.cteName}.`);N.push(...w.columns);continue}let S=await Q(P.appId,u,n);P.subtableCode?(N.push(...S.filter(w=>w.inSubtable&&(w.subtableCode===P.subtableCode||w.subtableCode===void 0)).map(w=>w.code)),N.push("_pid","_rid","_idx"),N.push(...S.filter(w=>!w.inSubtable).map(w=>`_p.${w.code}`))):(N.push(...S.filter(w=>!w.inSubtable).map(w=>w.code)),N.push(...Bo))}return[...new Set(N)]},M=async O=>{if(O===null||typeof O!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let _=O;if(_.type==="SELECT"){let N=O,P=await C(N);if(N.columns.length===1&&N.columns[0].type==="WILDCARD")return P;let S=[];for(let w of N.columns)w.type==="WILDCARD"?S.push(...P):w.type==="PARENT_WILDCARD"?S.push(...P.filter(L=>L.startsWith("_p."))):S.push(...Mn([],[w]).columns);return S}if(_.type==="UNION")return M(_.left);if(_.type==="SHOW_APPS")return[...Mp];if(_.type==="DESCRIBE")return[...kp];if(_.type==="GENERATE_SERIES")return[O.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},v=async O=>{if(O===null||typeof O!="object")return;if(Array.isArray(O)){for(let N of O)await v(N);return}let _=O;if(_.type==="WITH"){let N=O;for(let P of N.ctes){if(P.recursiveSpec){let w=Km(P);P.recursiveSpec.cycle&&w.push(P.recursiveSpec.cycle.markColumn),y.set(P.name,{rows:[],columns:w}),await v(P.query);continue}if(await v(P.query),P.query.type==="GENERATE_SERIES"){if(P.query.args.some(L=>L.type==="VARIABLE")){y.set(P.name,{rows:[],columns:[P.query.columnAlias]});continue}let w=Wm(P.query);y.set(P.name,{rows:w.rows,columns:w.columns,columnMeta:pe.get(w),uniqueGeneratedColumn:P.query.columnAlias}),g.add(P.name),A.set(P.name,w.rows.length);continue}let S=await M(P.query);if(y.set(P.name,{rows:[],columns:S}),P.query.type==="SELECT"){let w=h.get(P.query);w!==void 0&&A.set(P.name,w)}}await v(N.query);return}if(_.type==="UNION"){await v(_.left),await v(_.right);return}if(_.type==="SELECT"){let N=O;await Pm(N,y,u,n),await xc(N,u,y,n,!0),f.push(N),D(N);for(let w of N.columns)w.type==="SCALAR_SUBQUERY_COL"&&await v(w.query);if(await v(N.where),await v(N.having),await io(N,u,n,y),![N.from,...N.joins.map(w=>w.table)].some(w=>w.cteName!==null&&!y.has(w.cteName))){let w=await Or(N,u,n,y);w&&d.set(N,w)}return}for(let N of Object.values(_))await v(N)};await v(e);let x=async O=>{if(O===null||typeof O!="object"||E.has(O))return;if(E.add(O),Array.isArray(O)){await Promise.all(O.map(x));return}let _=O;if((_.type==="UPSERT"||_.type==="UPSERT_SELECT")&&await Q(O.appId,u,n),_.type==="SELECT"){let N=O;await io(N,u,n);let P=[N.from,...N.joins.map(U=>U.table)].some(U=>U.cteName!==null);if(ee(N).type==="PLAIN"&&!P){let U=await Or(N,u,n);U&&d.set(N,U)}let S=[N.from,...N.joins.map(U=>U.table)].filter(U=>U.cteName===null).map(U=>U.appId);(Pt(N.where)||N.orderBy.length>0||rt(N).some(U=>U.orderBy.length>0))&&S.forEach(U=>a.add(U));let{resolver:L,rewrites:F}=await Kn(N,u,n,y);F.length>0&&Qc.set(N,F);let K=Te(N.where,L),W=m(N);if(K.capability==="UNSUPPORTED"&&!W)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Bn(K)}).`);p.set(N,K);let k=await Ws(N,u,n),j=Ep.get(N)??$s(N,k);j&&ly.set(N,j);let $=j??Cn(N,k);uy.set(N,$);let B=new Map;for(let U of N.joins){let H=U.table.alias;if(U.type!=="INNER"||!H||U.table.subtableCode)continue;let ye=U.on.left.tableAlias,We=U.on.right.tableAlias;if(!ye||!We)continue;let se=ye===H&&We!==H?We:We===H&&ye!==H?ye:void 0,Xt=ye===H?U.on.right.field:U.on.left.field,Po=ye===H?U.on.left.field:U.on.right.field;if(!se)continue;let Qt=[N.from,...N.joins.map(Ue=>Ue.table)].find(Ue=>de(Ue)===se),ol;if(U.table.cteName!==null)ol=Ne(y.get(U.table.cteName),Po);else{let Ue=(await Q(U.table.appId,u,n)).find(at=>at.code===ce(U.table,Po));ol=Ue?xe(Ue,U.table.appId):tt(Po)}let al,sl,qp,Jp;if(Qt?.cteName!==null&&Qt?.cteName!==void 0){let Ue=y.get(Qt.cteName);al=Ne(Ue,Xt),g.has(Qt.cteName)&&Ue&&(qp=Ue.rows.length,sl=Ue.rows.map(at=>Ip(at[Xt])),Jp=sl.some(at=>at.length===0))}else if(Qt){let Ue=(await Q(Qt.appId,u,n)).find(at=>at.code===ce(Qt,Xt));al=Ue?xe(Ue,Qt.appId):tt(Xt)}let Oo=ku({fieldType:ol?.fieldType,sourceSemantics:al?.semantics,sourceRowCount:qp,values:sl,hasEmptyValue:Jp,maxInKeys:Cs});if(Oo.kind==="FALLBACK"&&Oo.reason==="JOIN_KEY_VALUES_RUNTIME"&&(j?.joinPlan.items.some(at=>at.targetAlias===H)||j?.joinPlan.serverFunctionConsumptions.some(at=>at.targetAlias===H)))continue;let eg=Mu(Oo,Po,ao),Xp=$.joinConditions.get(H),tg=Xp?z(Xp):void 0,ng=$.joinRelations.get(H);B.set(H,{plan:Oo,queries:eg,additionalQuery:tg,additionalRelation:ng})}if(B.size>0&&cy.set(N,B),N.orderBy.length>0||rt(N).some(U=>U.orderBy.length>0)){let U=await so(N,u,n);if(N.orderMode!=="KINTONE_NATIVE")for(let H of U.semantics.values())H.fieldType==="STATUS"&&H.source&&s.add(H.source.appId);if(vs(N)&&!P&&W?.allowed!==!1){let H=K.capability==="EXACT_PUSHDOWN"?je(N):"FULL_SCAN";c.set(N,(N.orderMode==="KINTONE_NATIVE"?_i:Li)({stmt:N,staticMode:H,whereCapability:K.capability,whereReasons:K.reasons,orderSemantics:U.semantics,maxRecords:r,hasKlike:Pe(N.where)}))}}}else if(_.type==="VALIDATE"){let N=O;a.add(N.appId);let P=await Q(N.appId,u,n),S=new Map(P.filter(U=>!U.inSubtable).map(U=>[U.code,U])),w=new Set(P.filter(U=>U.inSubtable).map(U=>U.code)),L=Nu(N,P),F=Er(N.checkGroups??[]),K=cp(N.where);for(let U of F){if(U.field!=="$id"&&!S.has(U.field)&&!w.has(U.field))throw _e(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${U.field} \u306F APP${N.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(U.field!=="$id"&&!S.has(U.field)&&w.has(U.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${U.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let U of K){if(U!=="$id"&&!S.has(U)&&!w.has(U))throw new Error(`ArgumentError: WHERE field ${U} does not exist in APP${N.appId}.`);if(U!=="$id"&&!S.has(U)&&w.has(U))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${U} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let W=new Map([...S].map(([U,H])=>[U,H.fieldType]));W.set("$id","RECORD_NUMBER"),Vn(N,W);let k=Te(N.where,U=>U.field==="$id"?ne({fieldType:"__ID__"}):S.get(U.field)?.semantics??(S.has(U.field)?ne(S.get(U.field)):void 0));if(k.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Bn(k)}).`);let G=new Map([...S].map(([U,H])=>[U,H.fieldType])),j=new Map([...S.values()].flatMap(U=>U.optionOrder?[[U.code,new Set(Object.keys(U.optionOrder))]]:[])),$=N.where===null?null:k.capability==="EXACT_PUSHDOWN"?N.where:Ul(N.where,{allowUnqualifiedFields:!0,fieldTypes:G,fieldOptions:j,allowKlike:!1}),B=L.some(U=>U.field.fieldType==="NUMBER");B&&(l.add(N.appId),await Dt(N.appId,u,n)),py.set(N,{targetFields:L.map(U=>U.subtableCode?`${U.subtableCode}(${U.field.code})`:U.field.code),fetchFields:[...new Set(["$id",...L.map(U=>U.subtableCode??U.field.code),...K,...F.map(U=>U.field)])],subtables:new Map([...new Set(L.flatMap(U=>U.subtableCode?[U.subtableCode]:[]))].map(U=>[U,L.filter(H=>H.subtableCode===U).length])),capability:k,prefilter:$,numberPrecision:B})}else if(_.type==="UPDATE"||_.type==="DELETE"){if(a.add(O.appId),_.type==="UPDATE"&&O.applyBlocks?.length){let P=O,S=await Q(P.appId,u,n);if($t(P,S),Gs(P)){let w=S.filter(F=>!F.inSubtable),L=Bu(P.where,{fieldTypes:new Map(w.map(F=>[F.code,F.fieldType])),fieldOptions:new Map(w.flatMap(F=>F.optionOrder?[[F.code,new Set(Object.keys(F.optionOrder))]]:[]))});dy.set(P,L)}}let N=O;(N.type!=="UPDATE"||!Gs(N))&&m(N)?.allowed!==!1&&await Pr(N,u,n)}await Promise.all(Object.values(_).map(x))};if(await x(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&an(e)){let O=sn(e),{resolver:_,rewrites:N}=await Kn(O,u,n);N.length>0&&Qc.set(O,N);let P=Te(O.where,_),S=m(O);if(P.capability==="UNSUPPORTED"&&!S)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Bn(P)}).`);if(p.set(O,P),vs(O)&&S?.allowed!==!1){let w=await so(O,u,n);c.set(O,(O.orderMode==="KINTONE_NATIVE"?_i:Li)({stmt:O,staticMode:P.capability==="EXACT_PUSHDOWN"?je(O):"FULL_SCAN",whereCapability:P.capability,whereReasons:P.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:Pe(O.where)}))}}for(let O of f)await xc(O,u,y,n,!0);return{capabilities:p,orderPlans:c,plainGroupByPlans:d,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function Zc(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 Ab(e){switch(e){case"NOT_LIKE":return"NOT LIKE";case"NOT_KLIKE":return"NOT KLIKE";case"NOT_IN":return"NOT IN";case"LIKE":case"KLIKE":case"IN":case"=":case"!=":case"<>":case">":case"<":case">=":case"<=":return e;default:return"<op>"}}function ZR(e){return e==="<>"?"!=":e}function Et(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(Et).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return Et(t.expr);case"GROUPING_FIELD":return`GROUPING(${Et(t.ref)})`;case"GROUPING_REF":return Et(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${Et(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${Et(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(Et).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(Et).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Fn(e){try{let t=e;switch(t.type){case"BINARY":return`${Et(t.left)} ${Ab(t.op)} ${Et(t.right)}`;case"NULL_CHECK":return`${Et(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Fn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Fn(t.right)})`;case"NOT":return`NOT (${Fn(t.expr)})`;case"GROUP":return`(${Fn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function ep(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?Sb(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 u=Pc(l),p=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Cc(u)}: ${u}`,` ${Oc(u)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${p}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Fn(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=Pc(s),u=s.left.type==="FIELD"?s.left.field:void 0,p=ZR(s.op),c=n.capability?.reasons.find(d=>d.functionName===l&&(u===void 0||d.field===u)&&d.operator===p);t.push(` ${Cc(l)}: ${l}`,` ${Oc(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??u??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${em(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=Pc(s),u=s.left.type==="FIELD"?s.left.field:void 0,p=ZR(s.op),c=n.capability?.reasons.find(d=>d.functionName===l&&(u===void 0||d.field===u)&&d.operator===p);t.push(` ${Cc(l)}: ${l}`,` ${Oc(l)}: kintone server exact prefilter`,` field: ${c?.field??u??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??p}`)}let a=z(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Fn(o.residualWhere)}`,` ${em(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 Sb(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,u=l?.type==="KINTONE_FUNC"&&l.name===t,p=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(c=>c!==null&&typeof c=="object"&&c.type==="KINTONE_FUNC"&&c.name===t);if((u||p)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function Cc(e){return re(e)?"relative date function":"kintone function"}function Pc(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 Oc(e){return re(e)?"relative date evaluation":"kintone function evaluation"}function em(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&re(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var Ey=new WeakMap;function tp(e,t){if(Array.isArray(e))return e.map(r=>tp(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 u=s.value.slice(1);r.set(l,u);let p=t.get(u);return p===void 0?{type:"VARIABLE",name:u}:(i.add(l),{type:"STRING",value:p,fromVariable:!0})}),a={...n,args:o};return Ey.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,tp(i,t)]))}function ji(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...Mp]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...kp]};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 u=ji(l.query,s);s.set(l.name,u)}return ji(e.query,s)}if(e.type==="UNION"){let s=ji(e.left,t),l=ji(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Ce);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...Mn([],[s]).columns);return{status:"STATIC",columns:a}}function Tb(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function Ib(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,u=[l.from,...l.joins.map(p=>p.table)];if(u.some(p=>p.cteName!==null)&&u.every(p=>p.cteName===Ce||p.cteName!==null&&r.has(p.cteName))){let p=await Or(l,t,n,r);p&&i.set(l,p)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var Ry=Symbol("ksql.explainFetchPlan");function Fp(e){return e[Ry]}function my(e,t){e[Ry]=t}async function yy(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=De,u=!0,p,c,d,f,E,R={surface:"DOCUMENT_ONLY"}){let m=Yl(f??new Date,E),y=Ct({recursiveCteMaxDepth:p,recursiveCteMaxRows:c,recursiveCteMaxExpansions:d}),g=ip(r);try{let{statements:A,meta:h}=nc(e,{import:a}),I=ql(A),b=Du(A,n),D=Rm(A,b),C=new Map;for(let[N,P]of Object.entries(m.values))C.set(ii(N),{type:"string",value:P});let M=new Map,v=new Map,x=[],O=[];for(let N=0;N<A.length;N++){let P=A[N],S=P.type==="SET_VARIABLE"?P.expr.type==="SCALAR_SUBQUERY"?{...P,expr:Ds(P.expr,C)}:P:Ds(P,C),w=tp(S,M);ut(w);let L=await Eo(w,t,g),F=Tb(v),K=u?await fy(w,t,g,i,L,F):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:L};if(!u){let U=await Ib(w,t,g,F);for(let[H,ye]of U)K.plainGroupByPlans.set(H,ye)}let W;if(w.type==="CREATE_TEMP_TABLE"){let U=new Map([...v].map(([ye,We])=>[ye,We.status==="STATIC"?{status:"STATIC",columns:We.columns}:{status:"DEFERRED"}])),H=ji(w.query,U);W=H.status==="STATIC"?{status:"STATIC",columns:H.columns,relation:{rows:[],columns:[...H.columns]},producerStatement:N+1}:{status:"DEFERRED",producerStatement:N+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},v.set(w.name,W)}let k={sources:[]},G=L.hasServerOnlyWhereFunction&&!L.allowed?ep(L):[...ep(L),...hy(Nb(w,I.statements[N],K.capabilities,K.orderPlans,K.plainGroupByPlans,s,l,k,v,W,{maxRecords:i,recursiveLimits:y}),o)],j=Zc(K),$=h.dialect===1?wb(w,I.statements[N],i,s):[],B=await Vm(w,g,R);x.push({index:N,type:I.statements[N].statementType,plan:G.length===0?[...j,...B,...$]:[G[0],...j,...G.slice(1),...B,...$]}),O.push({index:N,fetch:Gp(k.sources),sources:k.sources}),w.type==="DROP_TEMP_TABLE"&&v.delete(w.name),(P.type==="SET_VARIABLE"||P.type==="DECLARE_VARIABLE")&&(C.set(P.name,P.type==="DECLARE_VARIABLE"&&P.annotation==="RELATIVE_DATE"?{type:"relative-date",value:D.get(P.name)}:P.type==="SET_VARIABLE"&&P.expr.type==="ARRAY"?{type:"array",elements:P.expr.elements.map(U=>({type:"string",value:U.value}))}:{type:"string",value:`@${P.name}`,placeholder:!0}),P.type==="DECLARE_VARIABLE"&&P.annotation===void 0&&(P.default.type==="STRING"||P.default.type==="NUMBER")&&M.set(P.name,P.default.type==="STRING"?P.default.value:q(P.default)))}let _={statementCount:A.length,statements:x};return my(_,{statements:O}),_}finally{wp(g)}}function wb(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=bb(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 u of o)i.push(` read ${u}: \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/Nr)} \u56DE\uFF08${e.values.length} \u884C\u3001${Nr} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/Nr)} \u56DE\u3001${Nr} \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 bb(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 Nb(e,t,n,r,i,o=100,a=De,s={sources:[]},l=new Map,u,p=gy()){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",...u?.status==="STATIC"?[` schema: ${u.columns.join(", ")}`,` schema source: SELECT output of statement ${u.producerStatement}`]:u?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${u.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${nt} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...br(e.query,t,n,r,i,s,"main",l,p).map(c=>` ${c}`)];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 c=eo(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:",...br(e.expr.query,c,n,r,i,s,"main",l,p).map(d=>` ${d}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return br(e.query,t,n,r,i,s,"main",l,p);if(e.type==="ASSERT"){let c=[`ASSERT${e.warn===!0?" WARN":""} ${e.text}${e.message!==void 0?`, '${e.message.replace(/'/g,"''")}'`:""}`,e.warn===!0?" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F\u8B66\u544A\u3068\u3057\u3066\u8A18\u9332\u3057\u3001\u5F8C\u7D9A\u6587\u3092\u7D9A\u884C\uFF09":" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],d=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return d.forEach((f,E)=>{c.push(d.length>1?` subquery[${E+1}]:`:" subquery:");let R=eo(f.query)?t:{...t,tempTablesReferenced:[]};c.push(...br(f.query,R,n,r,i,s,"main",l,p).map(m=>` ${m}`))}),c}if(e.type==="EXIT"){let c=[`EXIT SUCCESS IF ${e.text}, '${e.message.replace(/'/g,"''")}'`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u6210\u7ACB\u6642\u306F\u6B63\u5E38\u7D42\u4E86\u3057\u3001\u4EE5\u964D\u306E\u6587\u306F skippedReason: exit\uFF09"],d=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return d.forEach((f,E)=>{c.push(d.length>1?` subquery[${E+1}]:`:" subquery:");let R=eo(f.query)?t:{...t,tempTablesReferenced:[]};c.push(...br(f.query,R,n,r,i,s,"main",l,p).map(m=>` ${m}`))}),c}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Js(e,void 0,n,r,o,a,1e4,i):br(e,t,n,r,i,s,"main",l,p)}function eo(e){if(Array.isArray(e))return e.some(eo);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(eo)}return!1}function br(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=gy()){if(t.tempTablesReferenced.length===0)return Js(e,void 0,n,r,100,De,l.maxRecords,i,!0,o,a,l.recursiveLimits);let u=[];e.type==="INSERT_SELECT"?u.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"&&u.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`),u.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),u.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let p=t.tempTablesReferenced.map(f=>[f,s.get(f)]);for(let[f,E]of p)E?.status==="STATIC"?u.push(` source: temp table ${f} (schema from statement ${E.producerStatement})`):(u.push(` source: temp table ${f}`),u.push(" schema: deferred (could not be derived statically)"));u.push(" rows: runtime (not materialized by EXPLAIN)");let c=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;c&&u.push(...Ay(c,i?.get(c),p.some(([,f])=>f?.status!=="STATIC"))),u.push(p.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),u.push(" records API: none");let d=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return d.length>0&&u.push(` app: ${d.map(f=>`APP${f}`).join(", ")}`),u.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),u}var np=new WeakMap;function gy(){return{maxRecords:1e4,recursiveLimits:Ct({})}}async function Cb(e,t,n,r,i,o=100,a=De,s,l,u,p,c=!0,d={surface:"DOCUMENT_ONLY"}){let f=Ct({recursiveCteMaxDepth:l,recursiveCteMaxRows:u,recursiveCteMaxExpansions:p}),E=s??await Eo(e.query,t,n),R=c?await fy(e.query,t,n,r,E,np.get(e)):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:E},m={sources:[]},y=ep(E),g=E.hasServerOnlyWhereFunction&&!E.allowed?[...Zc(R),...y]:[...Zc(R),...y,...hy(Js(e.query,void 0,R.capabilities,R.orderPlans,o,a,r,R.plainGroupByPlans,!0,m,"main",f),i)],A=await Vm(e,n,d),h=Ls([...g,...A],m.sources),I={type:"SELECT",columns:["plan"],rows:h.map(b=>({plan:b})),rowCount:h.length};return my(I,{statements:[{index:0,fetch:Gp(m.sources),sources:m.sources}]}),I}function hy(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 Js(e,t,n,r,i=100,o=De,a=1e4,s,l=!0,u,p="main",c=Ct({})){let d=u??{sources:[]};if(e.type==="UNION"){let E=Db(e,n,r,s,d);return l?Ls(E,d.sources):E}if(e.type==="WITH"){let E=Ub(e,n,r,s,d,a,c);return l?Ls(E,d.sources):E}if(e.type==="INSERT")return xb(e,t,i,o);if(e.type==="INSERT_SELECT")return Fb(e,t,n,r,s);if(e.type==="UPSERT")return $b(e,t,i,o);if(e.type==="UPSERT_SELECT")return Wb(e,t,n,r,s);if(e.type==="UPDATE")return Gb(e,t,n,r,i,o,a);if(e.type==="DELETE")return Bb(e,t);if(e.type==="REORDER")return Vb(e,t);if(e.type==="VALIDATE")return Lb(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let m=e.targets?.filter(y=>y.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...m.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let E=e.keyFields?"UPSERT":"INSERT",R=e.targets?.some(m=>m.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${E} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...R?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&R?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...R?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=Rt(e,t,n,r,s,!0,!0,d,p);return l?Ls(f,d.sources):f}var tm={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Gp(e){return e.reduce((t,n)=>tm[t]>=tm[n.fetch]?t:n.fetch,"none")}function Ls(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${Gp(t).toUpperCase()}`,...n]}function Pb(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function Ss(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:Pb(o)};return e.sources.push(s),s}function Ob(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Ts(e){return` fetch: ${Ob(e)}`}function Lb(e,t){let n=py.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":z(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?up:lp).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 _b(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 Ay(e,t,n){let r=ee(e);if(r.type!=="PLAIN")return[];let i=[];if(t)t.items.forEach((o,a)=>{let s=r.allItems[a];s?.type==="FIELD_NAME"&&(o.kind==="PHYSICAL"?i.push(` group key ${s.name}: PHYSICAL (source=${o.sourceIndex}, field=${o.fieldCode})`):o.kind==="ALIAS_SAFE"?i.push(` group key ${s.name}: ALIAS_SAFE (column=${o.columnIndex})`):o.kind==="EXPRESSION"&&i.push(` group key ${s.name}: EXPRESSION`))});else if(n)for(let o of r.allItems)o.type==="FIELD_NAME"&&i.push(` group key ${o.name}: DEFERRED (temp table schema unavailable)`);return i}function Rt(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let u=n?.get(e)??(n?[...n].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),p=r?.get(e)??(r?[...r].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),c=i?.get(e)??(i?[...i].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),d=o&&u!==void 0&&km(e,u),f=d?"COUNT_TOTAL_COUNT":p?.kind==="CANONICAL_LOCAL"||u&&u.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":je(e),E=Mb(e);u&&u.capability!=="EXACT_PUSHDOWN"&&E.push(...u.reasons.map(h=>h.code));let R=[],m=bE(e,ro.get(e)?.allItems.length);t&&R.push(t),R.push(` mode: ${f}`);for(let h of xp.get(e)??[]){if(R.push(` cross join: ${h.leftLabel} \xD7 ${h.rightLabel}`),R.push(` left rows: ${h.leftRows??"runtime (left intermediate rows)"}`),R.push(` right rows: ${h.rightRows??`runtime (${h.rightRuntimeLabel})`}`),h.plan)R.push(` rows: ${h.plan.outputRows}`),R.push(` row guard: ${h.plan.outputRows} / ${h.plan.limit}`),R.push(" guard timing: before row materialization");else{let I=h.leftRows===null?"left rows":String(h.leftRows),b=h.rightRows===null?"right rows":String(h.rightRows);R.push(` rows: runtime (${I} \xD7 ${b})`),R.push(` row guard: runtime checked / ${xu}`),R.push(" guard timing: after complete source fetch, before row materialization")}R.push(" records API: none")}for(let h of Qc.get(e)??Am.get(e)??[])R.push(_b(h));m&&(R.push(` grouping source: ${m.source}`),R.push(` grouping sets: ${m.expandedSetCount} (limit: ${m.setLimit})`),R.push(` grouping items: ${m.groupingItemCount} (limit: ${m.itemLimit})`),R.push(` grouping output rows: runtime checked (limit: ${m.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),R.push(...Ay(e,c,[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(b=>b.type==="GROUPING_REF"?`GROUPING(${b.field.tableAlias?`${b.field.tableAlias}.`:""}${b.field.field})`:b.tableAlias?`${b.tableAlias}.${b.field}`:b.field).join(", ")}`),h.orderBy.length>0&&I.push(`ORDER BY ${h.orderBy.map(Sy).join(", ")}`),h.windowKind==="VALUE"?R.push(` window ${h.alias}: ${h.valueFunc}(offset=${h.offset}) OVER (${I.join(" ")})`):h.windowKind==="AGGREGATE"&&(R.push(` window ${h.alias}: ${h.aggFunc} OVER (${I.join(" ")})`),R.push(h.frame===null?" frame: PARTITION ENTIRE":` frame: ${h.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${h.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(d){let h=e.where===null?"":z(e.where);if(R.push(` app: APP${e.from.appId} (${e.from.appId})`),R.push(` kintone query: ${h}${h?" ":""}limit 1`),a){let I=Ss(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${h}${h?" ":""}limit 1`);R.push(Ts(I))}return R.push(" fields: $id"),R.push(" fetch API: GET records.json (totalCount=true)"),R.push(" REST execution: single GET"),R.push(" record limit: maxRecords/onLimitReached not applied"),R.push(" fallback: full record scan when totalCount is missing or invalid"),R.push(" search abort: fail-closed (SearchAbortedError)"),R}p?(R.push(` order plan: ${p.kind}`),p.reasonCodes.length>0&&R.push(` order reason: ${p.reasonCodes.join(", ")}`),p.kind==="KORDER_NATIVE"?(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" REST execution: single GET")):p.kind==="KORDER_CURSOR"&&(R.push(" order semantics: kintone native (not kSQL canonical)"),R.push(" fetch API: POST/GET/DELETE records/cursor.json"),R.push(" cursor page size: 500"),R.push(` scan rows: ${p.scanRows}`))):m&&R.push(" order plan: CANONICAL_LOCAL");let y=p&&!p.requiresCompleteInput?{...e,orderBy:[]}:e,g=Zt(y);p?.requiresCompleteInput&&g.add("LOCAL_ORDER");let A=mt(e.where);if(g.size>0&&(!A||m!==null)&&(R.push(" complete input: required (onLimit=truncate disabled)"),R.push(` complete input reason: ${[...g].join(", ")}`),R.push(" onLimit=truncate: disabled")),A)return R.push(" predicate: constant false"),R.push(" records API access: none"),R.push(` app: APP${e.from.appId} (${e.from.appId})`),R;if(f==="FULL_SCAN"&&E.length>0&&R.push(` reason: ${E.join(", ")}`),f==="SIMPLE"){let h=qo(p?.kind==="CANONICAL_REST_TOP_N"?Dm(e):e);R.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=p?.kind==="KORDER_CURSOR"?$u(e):h.query;if(R.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let b=I?"EXACT":"ALL";R.push(Ts(Ss(s,e.from.appId,e.from.alias,l,b,I)))}R.push(` fields: ${h.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.fields.join(", ")}`)}else{let h=ly.get(e),I=uy.get(e),b=I??Cn(e);if(e.joins.length>0)if(h){if(R.push(" join pushdown plan: applied (runtime metadata resolved)"),R.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),R.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),h.joinPlan.serverFunctionCandidate&&R.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${h.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),R.push(` client residual: ${h.joinPlan.residualWhere===null?"(none)":Fn(h.joinPlan.residualWhere)}`),R.push(` KLIKE applied nodes: ${h.joinPlan.appliedKlikes.size}`),R.push(` KLIKE unapplied nodes: ${h.joinPlan.allKlikes.length-h.joinPlan.appliedKlikes.size}`),h.joinPlan.residualWhere!==null)for(let S of h.joinPlan.rejections)R.push(` join pushdown not applied: ${S.reason}`)}else{let S=e.joins.some(w=>w.type!=="INNER"&&w.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(w=>w.table)].some(w=>w.cteName!==null||!!w.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";R.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),R.push(` join pushdown not applied: ${S}`)}let D=Nn(e,e.from,c),C=e.from.alias?` AS ${e.from.alias}`:"",M=b.mainCondition,v=Om(e),x=e.joins.length===0&&u?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!kt(e.where)?z(e.where):"",O=e.from.alias?h?.queriesByAlias.get(e.from.alias):void 0,_=O||(M!==null?z(M):x||"(\u5168\u4EF6\u53D6\u5F97)");R.push(` app: APP${e.from.appId}${C} (${e.from.appId})`),R.push(` kintone query: ${_}`);let N=h?.joinPlan.items.find(S=>S.targetAlias===e.from.alias),P=h?.joinPlan.serverFunctionConsumptions.find(S=>S.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let S=!I&&v!==null,w=_==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":S?"PREFILTERED":N?.relation==="exact"||P||x!==""?"EXACT":"PREFILTERED";R.push(Ts(Ss(s,e.from.appId,e.from.alias,l,w,_,S)))}N||P?(R.push(` pushdown applied: ${O}`),R.push(` relation: ${N?.relation??"exact"}`)):I&&M!==null?(R.push(` pushdown applied: ${_}`),R.push(` relation: ${b.mainRelation??"exact"}`)):v!==null&&(!I||qi(v))&&R.push(` pushdown candidate: ${z(v)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),R.push(` fields: ${D.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":D.join(", ")}`);for(let S of e.joins){let w=Nn(e,S.table,c),L=S.table.alias?` AS ${S.table.alias}`:"",F=S.type==="INNER"?"JOIN":`${S.type} JOIN`,K=S.table.alias?b.joinConditions.get(S.table.alias)??null:null,W=S.table.alias&&!S.table.subtableCode&&S.table.cteName===null&&e.where?Zr(e.where,{tableAlias:S.table.alias}):null,k=S.table.alias?h?.queriesByAlias.get(S.table.alias):void 0,G=S.table.alias?cy.get(e)?.get(S.table.alias):void 0,j=!I&&S.type==="INNER"&&S.table.cteName===null&&!S.table.subtableCode&&[e.from,...e.joins.map(se=>se.table)].some(se=>se.cteName!==null),$=k||(K!==null?z(K):G?.additionalQuery?G.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),B=j||G?.plan.kind==="RANGE_CANDIDATE"||G?.plan.kind==="FALLBACK"&&G.plan.reason==="JOIN_KEY_VALUES_RUNTIME",U=G&&G.queries.length>0?G.queries.map(se=>$!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${se}) and (${$})`:se):[B?"(runtime source keys)":$],H=U.join(" | ");R.push(` ${F}: APP${S.table.appId}${L} (${S.table.appId})`);for(let se of U)R.push(` kintone query: ${se}`);let ye=h?.joinPlan.items.find(se=>se.targetAlias===S.table.alias),We=h?.joinPlan.serverFunctionConsumptions.find(se=>se.targetAlias===S.table.alias);if(a&&S.table.cteName===null){let se=B||!G&&!I&&W!==null,Xt=H==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":se?"PREFILTERED":G?.plan.kind==="IN"&&ye?.relation!=="superset"&&G.additionalRelation!=="superset"||ye?.relation==="exact"||We?"EXACT":"PREFILTERED";R.push(Ts(Ss(s,S.table.appId,S.table.alias,"join",Xt,H,se)))}if(G)if(G.plan.kind==="RANGE"){R.push(" join key prefilter: range");for(let se of U)R.push(` pushdown applied: ${se}`);R.push(" relation: superset")}else if(G.plan.kind==="IN"){let se=ye?.relation==="superset"||G.additionalRelation==="superset"?"superset":"exact";R.push(" join key prefilter: in");for(let Xt of U)R.push(` pushdown applied: ${Xt}`);R.push(` relation: ${se}`)}else G.plan.kind==="RANGE_CANDIDATE"?(R.push(" join key prefilter: range candidate"),R.push(" relation: superset"),R.push(` join key prefilter reason: ${G.plan.reason}`)):G.plan.kind==="FALLBACK"&&(R.push(G.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),R.push(` join key prefilter reason: ${G.plan.reason}`));else j?(R.push(" join key prefilter: runtime candidate"),R.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),W!==null&&R.push(` pushdown candidate: ${z(W)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):ye||We?(R.push(` pushdown applied: ${k}`),R.push(` relation: ${ye?.relation??"exact"}`)):I&&K!==null?(R.push(` pushdown applied: ${$}`),R.push(` relation: ${b.joinRelations.get(S.table.alias)??"exact"}`)):W!==null&&(!I||qi(W))&&R.push(` pushdown candidate: ${z(W)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);R.push(` fields: ${w.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":w.join(", ")}`)}}return R.push(...kb(e,n,r,i,s)),R}function Db(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,u)=>{u>0&&s.push(""),s.push(...Rt(l,`[union:${u+1}]`,t,n,r,!0,!0,i,"union"))}),s}function vb(e){let t=new Map,n=a=>de(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Ce?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),u=[];for(let p of a.joins){let c=r(p.table),d=n(p.table);if(p.type==="CROSS"){let f=s!==null&&c!==null?Ci(s,c):null;u.push({leftLabel:l,rightLabel:d,leftRows:s,rightRows:c,plan:f,rightRuntimeLabel:p.table.cteName===null?`APP${p.table.appId} fetched rows`:`${d} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${d}`}else s=null,l=`${l} ${p.type} JOIN ${d}`}return u.length>0&&xp.set(a,u),mt(a.where)?s=0:a.where!==null&&(s=null),ee(a).type!=="NONE"||a.distinct||a.having!==null||Mt(a)||rt(a).length>0||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,ma(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 Ub(e,t,n,r,i={sources:[]},o=1e4,a=Ct({})){vb(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let u=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",u?` cycle: path-scoped on ${u.column}, mark ${u.markColumn} ('${u.markValue}'/'${u.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let p of $m(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let c=`APP${p.appId}${p.subtableCode?`$${p.subtableCode}`:""}`;s.push(` source ${c}: 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(...Rt(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let u=l.query,p=Ey.get(u);if(u.args.some(E=>E.type==="VARIABLE")){let E=R=>{let m=u.args[R];return m?m.type==="VARIABLE"?`@${m.name} (runtime)`:R<2?"literal":m.type==="NUMBER"?q(m):m.value:R===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${u.columnAlias}`," series type: deferred (variable)",` start: ${E(0)}`,` stop: ${E(1)}`,` step: ${E(2)}`," rows: runtime",` row guard: runtime / ${xt}`," records API: none","");continue}let d=ma(u),f=d.kind==="DATE"?`${d.step} ${String(d.dateUnit??"DAY").toLowerCase()}${Math.abs(d.step)===1?"":"s"}`:String(d.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${u.columnAlias}`,` series type: ${d.kind}${p?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${p?.variableNames.has(0)?`@${p.variableNames.get(0)} (DECLARE default; value hidden)`:d.start}`,` stop: ${p?.variableNames.has(1)?`@${p.variableNames.get(1)} (DECLARE default; value hidden)`:d.stop}`,` step: ${f}`,` rows: ${d.rowCount}${p?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${d.rowCount} / ${xt}`,...p?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...Js(e.query,"[main]",t,n,100,De,o,r,!1,i,"main",a)),an(e)){s.push("");let l=sn(e);s.push(...Rt(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function Mb(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.some(r=>r.type==="CROSS")&&t.push("CROSS JOIN \u3042\u308A"),e.joins.some(r=>r.type!=="CROSS")&&t.push("JOIN \u3042\u308A");let n=ee(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),as(e.columns)&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),rt(e).length>0&&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"),kt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),tn(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 kb(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(...Rt(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...Rt(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...Rt(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(...Rt(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function xb(e,t,n=Jt,r=De){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,...Kp(Wa(e,n,r))]:a}function Fb(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(...Rt(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Gb(e,t,n,r,i=100,o=De,a=1e4){if(e.applyBlocks?.length)return Kb(e,t,i,o,a);let s=Wf(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),u=La(e),p=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),c=[];if(t&&c.push(t),c.push(e.from?" [UPDATE FROM]":" [UPDATE]"),c.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${f} AS ${e.from.alias}`),c.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),c.push(` target filter: ${e.from.targetFilter?fo(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${fo(e.where)}`);e.subtableCode||(c.push(" selection: exact native pushdown; JS residual none"),c.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),c.push(mt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let d=[];if(s&&d.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&d.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),p&&d.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!u&&!p&&d.push("\u5358\u7D14 SET"),c.push(` set type: ${d.join(", ")}`),u){let f=Hb(e);f.length>0&&c.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let f of e.assignments)c.push(` ${jb(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...Rt(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return c}function Kb(e,t,n,r,i){let o=Wa(e,n,r),a=o.branches[0],u=e.applyBlocks.flatMap(E=>[...E.operations]).map(E=>{if(E.kind==="APPEND")return"APPEND";if(E.kind==="ADD"||E.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(E.selector.kind==="ALL_ROWS")return"ALL_ROWS";let R=E.selector.where;return R.type==="BINARY"&&R.op==="="&&R.left.type==="FIELD"&&R.left.tableAlias===null&&R.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),p=[...new Set(a.targets.flatMap(E=>E.operations.map(R=>R.kind)))],c=p.includes("REMOVE"),d=dy.get(e),f=d?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${d.prefilter===null?"(none; empty query)":z(d.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${d.appliedKlikes.size}`,`unapplied KLIKE: ${d.unappliedKlikes.length}${d.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${fo(e.where)}`,`parent cardinality: ${Ut(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${p.join(" | ")}`,`selector: ${u.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=${c?"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: ${c?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...Kp(o)]}function Bb(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${fo(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(mt(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function $b(e,t,n=Jt,r=De){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,...Kp(Wa(e,n,r))]:a}function Kp(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 Wb(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(...Rt(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Vb(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(Sy).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,mt(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: ${fo(e.where)}`),o}function Sy(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function fo(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return z(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function Hb(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Ks(n,t),n.type==="STRING_FUNC"&&Ks(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&to(n,t);return[...t]}function Ks(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"&&(Ks(e.left,t),Ks(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"&&to(n,t)}async function Ty(e,t,n,r,i){let o=Pp(e),a=await Ge(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(d=>[d,i?.get(s)?.columnMeta?.get(d)?.fieldType??(i?.get(s)?.columnMeta?.get(d)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ge(t.appId,n,r),u=new Set,p=new Set;for(let d of o){if(d.tableAlias!==null){if(d.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(d.field!=="$id"&&!a.has(d.field))throw _e(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);u.add(d.field)}else if(d.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(d.field!=="$id"&&!l.has(d.field))throw _e(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);p.add(d.field)}else throw _e(`CHECK \u306E\u4FEE\u98FE\u5B50 ${d.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=d.field==="$id"||a.has(d.field),E=d.field==="$id"||l.has(d.field);if(!f)throw _e(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${d.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw _e(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${d.field} \u306F\u66D6\u6627\u3067\u3059`);u.add(d.field)}let c=new Map;for(let[d,f]of a)c.set(d,f),c.set(`APP${e.appId}.${d}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[d,f]of l)c.set(`${t.alias}.${d}`,f);return{targetFields:[...u],sourceFields:[...p],evaluationTypes:c}}function Yb(e,t,n){if(!e)return{};let r=Ht(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 to(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"&&to(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(to(e.left,t),to(e.right,t))}function jb(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} = ${Iy(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 Iy(e){return`${nm(e.left)} ${e.op} ${nm(e.right)}`}function nm(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic formatting.`);return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?q(e):e.type==="ARITH"?`(${Iy(e)})`:"..."}var me=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var ve=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 Bp(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 ot(e){return new ve("READ_ONLY_VIOLATION",e)}function Mr(e,t){return new ve("PARSE_ERROR",e,t)}function wy(){let e=new Wn;return new ve("SEARCH_ABORTED",e.message,e)}function To(e){return e instanceof Error&&e.message.trim()!==""||e!==null&&typeof e=="object"&&typeof e.message=="string"?e.message:String(e)}function zb(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 jn(e){return e instanceof ve?e:e instanceof ke||e instanceof T?new ve("PARSE_ERROR",To(e),e):e instanceof Wn||e?.name==="SearchAbortedError"?new ve("SEARCH_ABORTED",To(e),e):e instanceof Ve||e?.name==="FetchAllLimitError"?new ve("FETCH_LIMIT_EXCEEDED",To(e),e):e instanceof Error&&e.name==="ClientOperationError"&&"cause"in e?new ve("CLIENT_ERROR",e.message,e.cause):zb(e)?new ve("CLIENT_ERROR",To(e),e):new ve("EXECUTION_ERROR",To(e),e)}function Xs(e,t){let n=jn(e);if(e instanceof oe){let r=t[e.statementIndex];if(r!==void 0)return Bp(n,e.statementIndex,r.type)}return n}var qb=2,Qs=5,Jb=3e4,Xb=10*6e4+3e4,Zs=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??qb;if(!Number.isSafeInteger(r)||r<1||r>Qs)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Qs}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??Jb,this.quarantineMs=n.quarantineMs??Xb}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 ts(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>Qs)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Qs}.`)}};function Qb(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function Zb(e,t=r=>new Promise(i=>setTimeout(i,r)),n=Qb){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 eN(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 by(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 u=await t.get();return u.next||(n=!0,t.onReleased?.()),u});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await eN(Zb(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Ny(e){return Cy(e,nN(e))}function Cy(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=rN(o.options),s=iN(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:el(o.minValue),maxValue:el(o.maxValue),minLength:el(o.minLength),maxLength:el(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)&&!tN.has(o.type)};l.semantics=ne(l),i.push(l),o.fields&&i.push(...Cy(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var tN=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function nN(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 el(e){return e==null||e===""?void 0:e}function rN(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 iN(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Py(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 oN="Filter aborted because of too many search results";function Oy(e){return e?.includes(oN)===!0}var Ly="/k/v1/records.json",tl="/k/v1/records/cursor.json",aN=4096,sN=2,$p=e=>kintone.api.url(e,!0);function lN(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(Ly,t,!0),i={"X-Requested-With":"XMLHttpRequest"};return new TextEncoder().encode(r).byteLength<=aN?{url:r,init:{method:"GET",credentials:"include",headers:i}}:{url:$p(Ly),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 Io(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 uN(e){try{let t=await e.json();if(t!==null&&typeof t=="object"){let r=t;return Io({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}),Io(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}),Io(n)}}function cN(e){let t=e;return t?.code==="GAIA_CN01"&&(t.status===404||t.status===void 0)}async function zn(e,t,n){try{return await kintone.api($p(e),t,n)}catch(r){throw Io(r)}}function pN(e){if(!Number.isSafeInteger(e)||e<1||e>5)throw new Error("ArgumentError: cursorMaxActive must be an integer from 1 to 5.")}function _y(e={}){let t=e.cursorMaxActive??sN;pN(t);let n=null,r=null,i=new Set;return{async getRecords(a){try{let s=lN(a),l=await fetch(s.url,s.init);if(!l.ok)throw await uN(l);let u=await l.json();return Oy(l.headers.get("X-Cybozu-Warning"))?{...u,searchAborted:!0}:u}catch(s){throw Io(s)}},async openCursor(a){let s=$p(tl),l=new URL(s,globalThis.location?.href).host.toLowerCase();if(r!==null&&r!==l)throw new Error(`CursorRouteError: factory route changed from ${r} to ${l}.`);if(r=l,n??=new Zs(l,{maxActive:t}),n.snapshot().active>=t){let R=new Error(`CursorCapacityError: host=${l} \u306E active cursor \u4E0A\u9650 ${t} \u306B\u9054\u3057\u3066\u3044\u307E\u3059\u3002`);throw R.name="CursorCapacityError",R}let u=await n.acquire(),p;try{p=await n.runCreate(()=>zn(tl,"POST",{app:a.app,query:a.query,size:a.size,fields:a.fields&&a.fields.length>0?a.fields:void 0}))}catch(R){throw typeof R?.code=="string"?(u.release(),R):(u.quarantine(),new ns(R))}let c=p.id,d=by(Number(p.totalCount),{get:()=>zn(tl,"GET",{id:c}),delete:()=>zn(tl,"DELETE",{id:c}),isAlreadyReleasedError:cN,onReleased:()=>u.release(),onReleaseUnknown:()=>u.quarantine()}),f=null,E={totalCount:d.totalCount,async nextPage(){let R=await d.nextPage();return R.next||i.delete(E),R},close(){return f||(f=d.close().finally(()=>{i.delete(E)}),f)}};return i.add(E),E},async getApps(){let s=[],l=0;for(;;){let u=await zn("/k/v1/apps.json","GET",{limit:100,offset:l});for(let p of u.apps)s.push({appId:Number(p.appId),name:p.name,description:p.description});if(u.apps.length<100)break;l+=100}return s},async getFields(a){let s=await zn("/k/v1/app/form/fields.json","GET",{app:a});return Ny(s.properties)},async getNumberPrecision(a){let s=await zn("/k/v1/app/settings.json","GET",{app:a});return lE(s)},async getProcessStatuses(a){let s=await zn("/k/v1/app/status.json","GET",{app:a,lang:"user"});return{enable:s.enable,states:Py(s.states)}}}}var Dy=new Set(["postRecords","putRecords","upsertRecords","deleteRecords"]),wo=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 Sn(e){try{return await e()}catch(t){throw new wo(t)}}function dN(e){return()=>{throw ot(`${String(e)} is blocked by the readonly client`)}}function kr(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 u=await Sn(()=>t(l));if(u.searchAborted===!0)throw wy();return u},openCursor:async l=>{let u=await Sn(()=>n(l)),p=u.nextPage.bind(u),c=u.close.bind(u);return{totalCount:u.totalCount,nextPage:()=>Sn(()=>p()),close:()=>Sn(()=>c())}},getApps:()=>Sn(()=>r()),getFields:l=>Sn(()=>i(l)),getNumberPrecision:l=>Sn(()=>o(l)),getProcessStatuses:l=>Sn(()=>a(l))});return new Proxy(s,{get(l,u,p){return Dy.has(u)?dN(u):Reflect.get(l,u,p)},has(l,u){return Dy.has(u)?!1:Reflect.has(l,u)}})}function fN(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 wo(o.reason)})(),n)}}}async function xr(e,t){let n=fN(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 EN="A-Za-z",RN="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Vp=`${EN}${RN}`,Uy=`${Vp}0-9_`,mN=new RegExp(`^[${Vp}]$`,"u"),yN=new RegExp(`^[${Uy}]$`,"u"),gN=new RegExp(`^[${Vp}][${Uy}]{0,63}$`,"u");function hN(e){return mN.test(e)}function AN(e){return yN.test(e)}function Hp(e){let t=e.normalize("NFC").toUpperCase();if(!gN.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 Wp(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 SN(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 TN(e,t){let n=t>0?e[t-1]:"";if(Wp(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,!hN(e[l]??""))return null;for(l++;l<e.length&&AN(e[l]);)l++;s=l;try{o=Hp(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&&Wp(e[l]);)l++;if(l===f)return null}let u=l,p=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&SN(e[l]);)l++;if(l===f)return null;p=e.slice(f,l)}let c=l<e.length?e[l]:"";if(Wp(c))return null;let d={profile:p,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:u,fullEnd:l};return r==="physical"?{...d,source:r,appId:i}:{...d,source:r,logicalName:o}}function Yp(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=TN(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function vy(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function My(e,t="dev",n){let r=Yp(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 A=n.resolveLogicalApp(m.logicalName,y);l.set(g,A),s.add(A)}let u=new Map,p=new Map;for(let[m,y]of o.entries()){let g=[...y].sort();if(!(g.length<=1))for(let A of g){let h=vy(s);u.set(`physical:${m}@${A}`,h),p.set(h,{source:"physical",mappedAppId:h,appId:m,profile:A})}}let c=[],d=[],f=0,E=0,R=(m,y,g,A)=>{if(!m&&y===g)return;let h=f;c.push(m),f+=m.length,d.push({normalizedStart:h,normalizedEnd:f,sourceStart:y,sourceEnd:g,...A===void 0?{}:{bindingMappedAppId:A}})};for(let m of r){let y=a(m.profile).toLowerCase(),g;if(m.source==="physical")g={source:"physical",mappedAppId:u.get(`physical:${m.appId}@${y}`)??m.appId,appId:m.appId,profile:y};else{let I=`logical:${m.logicalName}@${y}`,b=u.get(I);b===void 0&&(b=vy(s),u.set(I,b)),g={source:"logical",logicalName:m.logicalName,mappedAppId:b,appId:l.get(I),profile:y}}p.set(g.mappedAppId,g),R(e.slice(E,m.start),E,m.start);let A=e.slice(m.referenceValueEnd,m.appEnd),h=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${g.mappedAppId}${A}`:`APP${g.mappedAppId}${A}`;R(h,m.start,m.fullEnd,g.mappedAppId),E=m.fullEnd}return R(e.slice(E),E,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:p,rewriteSegments:d}}var ky=new Set(["client","logicalApps","maxRecords","recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions","fetchParallel","cursorMaxActive"]),xy=new Set([...ky,"onLimitReached"]),IN=new Set([...xy,"variables","tempTableMaxRows"]);function Fy(e){if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError("options must be an object")}function Fr(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive safe integer`)}function Gy(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 wN(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 Ky(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=Hp(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`);Fr(r,`logicalApps.${n}`),t[i]=r}return t}function By(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&&Fr(e.maxRecords,"maxRecords");for(let r of["recursiveCteMaxDepth","recursiveCteMaxRows","recursiveCteMaxExpansions"])e[r]!==void 0&&Fr(e[r],r);if(e.fetchParallel!==void 0&&Fr(e.fetchParallel,"fetchParallel"),e.cursorMaxActive!==void 0&&(Fr(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 jp(e,t){Fy(e);let n=t==="run"?xy:ky;Gy(e.client);let r=By(e,n,t==="run"?"runQuery":"explainQuery"),i=Ky(e.logicalApps);return{client:e.client,...i===void 0?{}:{logicalApps:i},executeOptions:r}}function $y(e){Fy(e),Gy(e.client),e.variables!==void 0&&wN(e.variables),e.tempTableMaxRows!==void 0&&Fr(e.tempTableMaxRows,"tempTableMaxRows");let t=By(e,IN,"runBatch"),n=Ky(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 nl(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,u)=>{let p=t.get(Number(l));return`${p.source==="logical"?r==="physical"?`LAPP_${p.logicalName} -> APP${p.appId}`:`LAPP_${p.logicalName}@${p.profile}`:r==="physical"?`APP${p.appId}`:`APP${p.appId}@${p.profile}`}${u??""}`})}return Array.isArray(e)?e.map(i=>nl(i,t,n)):e!==null&&typeof e=="object"?Object.fromEntries(Object.entries(e).map(([i,o])=>[i,nl(o,t,n)])):e}function bN(e,t,n){return e.slice(t,n)}function bo(e,t,n){let r=Yp(e),i=r.find(u=>u.profile!==null);if(i!==void 0)throw new Error(`ArgumentError: browser engine library does not support @profile suffixes (${bN(e,i.start,i.fullEnd)}).`);if(!r.some(u=>u.source==="logical"))return{sql:e,client:t,logicalBindings:[]};let o=My(e,"browser",{resolveLogicalApp(u){let p=n?.[u];if(p===void 0)throw new Error(`ArgumentError: logical app LAPP_${u} is not defined.`);return p}}),a=[...o.appBindingByMappedApp.values()].filter(u=>u.source==="logical"),s=u=>o.appBindingByMappedApp.get(u)?.appId??u,l={getRecords:u=>t.getRecords({...u,app:s(u.app)}),openCursor:u=>t.openCursor({...u,app:s(u.app)}),getApps:()=>t.getApps(),getFields:u=>t.getFields(s(u)),getNumberPrecision:u=>t.getNumberPrecision(s(u)),getProcessStatuses:u=>t.getProcessStatuses(s(u))};return{sql:o.normalizedSql,client:l,logicalBindings:a}}function No(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 Co(e,t){if(t.length===0)return e;let n=new Map(t.map(r=>[r.mappedAppId,r]));return nl(e,n,{logicalAppDisplay:"physical"})}function rl(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 NN(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,String(n)]))}function CN(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 il(e,t=e.metrics){let n=rm(e);return{type:"query",rows:e.rows.map(NN),columns:e.columns.map(r=>CN(r,n)),rowCount:e.rowCount,warnings:[...e.warnings??[]],...e.validateStats?{validateStats:e.validateStats}:{},metrics:rl(t)}}function zp(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 Wy(e){if(e instanceof he)return Mr(e.message,e);let t=jn(e);return t.code==="PARSE_ERROR"?t:Mr("SQL statement could not be parsed",e)}function PN(e){if(e.trim()==="")throw Mr("SQL statement is empty");try{return rR(e,{import:!0})}catch(t){let n=Wy(t);throw n.message.includes("\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")?Mr("This API accepts one statement; use runBatch for multiple statements",t):n}}function Vy(e){if(ko(e)==="UNKNOWN")throw ot("Unclassifiable statement is not allowed");return e}function Hy(e){if(e.trim()==="")throw Mr("SQL statement is empty");try{return tc(e,{import:!0})}catch(t){throw Wy(t)}}function ON(e){let t=Vy(e),n=t.type;if(n==="IMPORT")throw ot("IMPORT is disabled by default in engine library queries");if(!Qn(t))throw ot(`${n} statements are not read-only`);if(zp(t))throw ot("APPLY statements are not allowed in engine library queries");if(!sd(t))throw ot(`${n} does not return rows; use runBatch for batch-scoped or non-row-returning read-only statements`)}function Yy(e){let t=Vy(e),n=t.type==="EXPLAIN"?t.query:t;if(n.type==="IMPORT")throw ot("IMPORT is disabled by default in engine library batches");if(!Qn(n))throw ot(`${n.type} statements are not read-only`);if(zp(n))throw ot("APPLY statements are not allowed in engine library batches");if(en(n.type))throw ot("DML VALIDATE ONLY statements are not supported by runBatch")}function jy(e){let t=PN(e);return ON(t),t}function zy(e){let t=Hy(e);return t.forEach(Yy),t}function qy(e){let t=e.trim(),n=Hy(t);n.forEach(Yy);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 LN(e){let t=e.error,n=t?.cause!==void 0?jn(t.cause):new ve("EXECUTION_ERROR",t?.message??`Statement ${e.index} failed`);return Bp(n,e.index,e.type)}async function Jy(e,t){let n=[],r=[];try{let i=$y(t),o=bo(e,i.client,i.logicalApps);r=o.logicalBindings,n=zy(o.sql);let a=await xr(o.client,p=>Em(o.sql,kr(p),{...i.executeOptions,captureColumnMeta:!0})),s=a.statements.find(p=>p.status==="error");if(s!==void 0)throw LN(s);let l=[],u=a.statements.map(p=>{let c={index:p.index,type:p.type,status:p.status};if(p.tempTable!==void 0&&(c.tempTable=p.tempTable),p.rowCount!==void 0&&(c.rowCount=p.rowCount),p.error!==void 0&&(c.error={code:p.error.code,message:p.error.message}),p.skippedReason!==void 0&&(c.skippedReason=p.skippedReason),p.status==="success"&&p.result?.type==="SELECT"){c.resultIndex=l.length;let d=il(p.result,a.metrics);l.push(n[p.index]?.type==="EXPLAIN"?Co(d,r):d)}return c});return{type:"batch",batch:!0,statementCount:a.statementCount,statements:u,results:l,warnings:[]}}catch(i){throw No(Xs(i,n),r)}}function Xy(e){if(e===null||typeof e!="object"||e.type!=="SELECT")throw new Error("Engine returned a non-SELECT result")}async function Qy(e,t){let n=[];try{let r=jp(t,"run"),i=bo(e,r.client,r.logicalApps);n=i.logicalBindings;let a=jy(i.sql).type==="VALIDATE"?{...r.executeOptions,onLimitReached:"error"}:r.executeOptions,s=await xr(i.client,l=>op(i.sql,kr(l),{...a,captureColumnMeta:!0}));return Xy(s),il(s)}catch(r){throw No(jn(r),n)}}async function Zy(e,t){let n=[],r=[];try{let i=jp(t,"explain"),o=bo(e,i.client,i.logicalApps);r=o.logicalBindings;let a=qy(o.sql);if(n=a.statements,a.legacySql!==void 0){let p=await xr(o.client,f=>op(a.legacySql,kr(f),i.executeOptions));Xy(p);let c=Co(p.rows.map(f=>String(f.plan??"")),r),d=Fp(p)??{statements:[{index:0,fetch:"none",sources:[]}]};return{type:"explain",lines:c,text:c.join(`
20
20
  `),plan:d,metrics:rl(p.metrics)}}let s=await xr(o.client,p=>yy(o.sql,kr(p),void 0,"batch-explain",i.executeOptions.maxRecords,i.executeOptions.cursorMaxActive,!1,100,void 0,!0,i.executeOptions.recursiveCteMaxDepth,i.executeOptions.recursiveCteMaxRows,i.executeOptions.recursiveCteMaxExpansions,void 0,void 0,{surface:"DOCUMENT_ONLY"})),l=Co(s.statements.flatMap(p=>[...s.statementCount>1?[`[${p.index+1}] ${p.type}`]:[],...p.plan]),r),u=Fp(s)??{statements:s.statements.map(p=>({index:p.index,fetch:"none",sources:[]}))};return{type:"explain",lines:l,text:l.join(`
21
- `),plan:u,metrics:rl()}}catch(i){throw No(Xs(i,n),r)}}var _N="3.83.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runBatch,runQuery,version});
21
+ `),plan:u,metrics:rl()}}catch(i){throw No(Xs(i,n),r)}}var _N="3.84.0";0&&(module.exports={KsqlEngineError,createReadonlyKintoneClient,explainQuery,runBatch,runQuery,version});