@rex0220/kintone-sql-tools 3.80.0 → 3.81.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,22 +1,22 @@
1
- var ue={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 ly(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]===`
1
+ var ce={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 fy(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]===`
2
2
  `&&o+1<n&&o++,r++,i=1):a===`
3
- `?(r++,i=1):i++}return{line:r,column:i}}function je(e,t,n){return{...n,...ly(e,t)}}var Po=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),yn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Kr=new Set([...yn,...Po]),hn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",Ut="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function ne(e){return Po.has(e)}function Jn(e){return yn.has(e)}function dt(e){return Kr.has(e)}function Oo(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||!py(l,a)||o===null||!Yp(o,l))return null;let u={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:cy(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},f={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:u};return uy(f,e,l),f}function uy(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(!Yp(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"&&dt(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function cy(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&dt(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&dt(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 py(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Yp(e,t){let n=new Map;for(let r of t){if(!dt(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 jp="bare \u306E\u6642\u523B\u4F9D\u5B58\u95A2\u6570\u306F kintone \u30B5\u30FC\u30D0\u30FC\u8A55\u4FA1\u306E\u305F\u3081 as-of \u306E\u5BFE\u8C61\u5916\u3067\u3059\u3002\u518D\u73FE\u6027\u304C\u5FC5\u8981\u306A\u3089 @ \u4ED8\u304D\u95A2\u6570\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002";async function zp(e,t,n,r={}){if(t.dialect!==1)return[];let i=[];for(let o=0;o<e.length;o++){let a=e[o],s=(l,u,f)=>{i.push({severity:l,code:u,message:f,line:1,column:1,statementIndex:o})};if(dy(a)){for(let l of An(a))s(l.severity,l.code,l.message);if(n!==void 0&&a.keyFields.length===1){let l=await n(a.appId);for(let u of An(a,l))s(u.severity,u.code,u.message)}}(a.type==="INSERT"||a.type==="UPDATE"||a.type==="DELETE")&&a.subtableCode&&s("error",ue.SUBTABLE_DML_FORBIDDEN,"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\u3059\u308B\u304B dialect 0 \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DML \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002"),(a.type==="INSERT"||a.type==="INSERT_SELECT")&&s(r.strict===!0?"error":"warning",ue.BARE_INSERT_NOT_IDEMPOTENT,"dialect 1 \u306E\u7D20\u306E INSERT \u306F\u518D\u5B9F\u884C\u3067\u91CD\u8907\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u51AA\u7B49\u6027\u306E\u305F\u3081 UPSERT / MERGE \u3092\u63A8\u5968\u3057\u307E\u3059\u3002"),qp(a)&&s("warning",ue.SERVER_TIME_FUNCTION_NOT_AS_OF,jp)}return i}function An(e,t){if(t===void 0)return e.keyFields.length===1?[]:[{code:ue.UPDATE_KEY_COMPOSITE,severity:"error",message:"dialect 1 \u306E UPSERT / MERGE \u306E\u30AD\u30FC\u306F\u5358\u4E00\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u8907\u5408\u30AD\u30FC\u306E\u4EE3\u308F\u308A\u306B\u3001\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u4F8B: \u9867\u5BA2\u30B3\u30FC\u30C9_\u5E74\u6708\uFF09\u3092\u30A2\u30D7\u30EA\u5074\u306B\u7528\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}];if(e.keyFields.length!==1)return[];let n=e.keyFields[0],r=t.find(o=>o.code===n),i=[];return(r===void 0||r.fieldType!=="SINGLE_LINE_TEXT"&&r.fieldType!=="NUMBER")&&i.push({code:ue.UPDATE_KEY_FIELD_TYPE,severity:"error",message:r===void 0?`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C APP${e.appId} \u306E\u30D5\u30A9\u30FC\u30E0\u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u578B ${r.fieldType} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),r?.isUnique===!1?i.push({code:ue.UPDATE_KEY_NOT_UNIQUE,severity:"error",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306F\u91CD\u8907\u7981\u6B62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u8A2D\u5B9A\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}):r!==void 0&&r.isUnique===void 0&&i.push({code:ue.UPDATE_KEY_NOT_UNIQUE,severity:"warning",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u91CD\u8907\u7981\u6B62\u8A2D\u5B9A\u3092 schema resolver \u304B\u3089\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002isUnique \u3092\u8FD4\u3059 resolver \u3092\u4F7F\u7528\u3057\u3001\u30A2\u30D7\u30EA\u5074\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u304C\u6709\u52B9\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),i}function qp(e){let t=!1,n=r=>{if(t||r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r,o=i.where;if(o!==null&&typeof o=="object"&&Se(o).some(s=>s==="TODAY"||s==="NOW"||ne(s))){t=!0;return}Object.values(i).forEach(n)};return n(e),t}function dy(e){return e.type==="UPSERT"||e.type==="UPSERT_SELECT"}var fy="A-Za-z",Ey="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",sl=`${fy}${Ey}`,Xp=`${sl}0-9_`,my=new RegExp(`^[${sl}]$`,"u"),Ry=new RegExp(`^[${Xp}]$`,"u"),gy=new RegExp(`^[${sl}][${Xp}]{0,63}$`,"u");function yy(e){return my.test(e)}function hy(e){return Ry.test(e)}function Xn(e){let t=e.normalize("NFC").toUpperCase();if(!gy.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 al(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 Ay(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 Sy(e,t){let n=t>0?e[t-1]:"";if(al(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,!yy(e[l]??""))return null;for(l++;l<e.length&&hy(e[l]);)l++;s=l;try{o=Xn(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 d=l;for(;l<e.length&&al(e[l]);)l++;if(l===d)return null}let u=l,f=null;if(e[l]==="@"){l++;let d=l;for(;l<e.length&&Ay(e[l]);)l++;if(l===d)return null;f=e.slice(d,l)}let c=l<e.length?e[l]:"";if(al(c))return null;let p={profile:f,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:u,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function Qn(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]!==`
4
- `;)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=Sy(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function Jp(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function Lo(e,t="dev",n){let r=Qn(e),i=r.some(R=>R.profile!==null),o=new Map,a=R=>R??t;for(let R of r){if(R.source!=="physical")continue;let g=a(R.profile),y=o.get(R.appId);y||(y=new Set,o.set(R.appId,y)),y.add(g.toLowerCase())}let s=new Set(r.filter(R=>R.source==="physical").map(R=>R.appId)),l=new Map;for(let R of r){if(R.source!=="logical")continue;let g=a(R.profile).toLowerCase(),y=`logical:${R.logicalName}@${g}`;if(l.has(y))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${R.logicalName}@${g} requires logicalApps configuration.`);let S=n.resolveLogicalApp(R.logicalName,g);l.set(y,S),s.add(S)}let u=new Map,f=new Map;for(let[R,g]of o.entries()){let y=[...g].sort();if(!(y.length<=1))for(let S of y){let A=Jp(s);u.set(`physical:${R}@${S}`,A),f.set(A,{source:"physical",mappedAppId:A,appId:R,profile:S})}}let c=[],p=[],d=0,E=0,m=(R,g,y,S)=>{if(!R&&g===y)return;let A=d;c.push(R),d+=R.length,p.push({normalizedStart:A,normalizedEnd:d,sourceStart:g,sourceEnd:y,...S===void 0?{}:{bindingMappedAppId:S}})};for(let R of r){let g=a(R.profile).toLowerCase(),y;if(R.source==="physical")y={source:"physical",mappedAppId:u.get(`physical:${R.appId}@${g}`)??R.appId,appId:R.appId,profile:g};else{let I=`logical:${R.logicalName}@${g}`,b=u.get(I);b===void 0&&(b=Jp(s),u.set(I,b)),y={source:"logical",logicalName:R.logicalName,mappedAppId:b,appId:l.get(I),profile:g}}f.set(y.mappedAppId,y),m(e.slice(E,R.start),E,R.start);let S=e.slice(R.referenceValueEnd,R.appEnd),A=R.source==="physical"?`${e.slice(R.start,R.referenceValueStart)}${y.mappedAppId}${S}`:`APP${y.mappedAppId}${S}`;m(A,R.start,R.fullEnd,y.mappedAppId),E=R.fullEnd}return m(e.slice(E),E,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:f,rewriteSegments:p}}var _o=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 Fe=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"}},Mt=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(Zn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(ll(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Fe(`\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 Fe("\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 Fe("\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&&Zn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Zn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Zn(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||!Zn(this.input[this.pos]))throw new Fe("\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&&Zn(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&&Qp(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=_o.get(r)??"IDENT",o=i==="IDENT"?n:r;return this.makeToken(i,o,t)}readHashIdent(t){this.pos++;let n=this.input[this.pos]??"";if(!ll(n))throw new Fe("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Qp(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Fe(`@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 Fe("\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 Fe("\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===`
3
+ `?(r++,i=1):i++}return{line:r,column:i}}function je(e,t,n){return{...n,...fy(e,t)}}var Uo=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),wn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Vr=new Set([...wn,...Uo]),bn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",Mt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function re(e){return Uo.has(e)}function Zn(e){return wn.has(e)}function ft(e){return Vr.has(e)}function Mo(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=Te(t.where);if(l.length===0||!Ry(l,a)||o===null||!Zp(o,l))return null;let u={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:my(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},d={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:u};return Ey(d,e,l),d}function Ey(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(!Zp(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Te(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"&&ft(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function my(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&ft(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&ft(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 Ry(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Zp(e,t){let n=new Map;for(let r of t){if(!ft(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 ed="bare \u306E\u6642\u523B\u4F9D\u5B58\u95A2\u6570\u306F kintone \u30B5\u30FC\u30D0\u30FC\u8A55\u4FA1\u306E\u305F\u3081 as-of \u306E\u5BFE\u8C61\u5916\u3067\u3059\u3002\u518D\u73FE\u6027\u304C\u5FC5\u8981\u306A\u3089 @ \u4ED8\u304D\u95A2\u6570\u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002";async function td(e,t,n,r={}){if(t.dialect!==1)return[];let i=[];for(let o=0;o<e.length;o++){let a=e[o],s=(l,u,d)=>{i.push({severity:l,code:u,message:d,line:1,column:1,statementIndex:o})};if(gy(a)){for(let l of Nn(a))s(l.severity,l.code,l.message);if(n!==void 0&&a.keyFields.length===1){let l=await n(a.appId);for(let u of Nn(a,l))s(u.severity,u.code,u.message)}}(a.type==="INSERT"||a.type==="UPDATE"||a.type==="DELETE")&&a.subtableCode&&s("error",ce.SUBTABLE_DML_FORBIDDEN,"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\u3059\u308B\u304B dialect 0 \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DML \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\u3002"),(a.type==="INSERT"||a.type==="INSERT_SELECT")&&s(r.strict===!0?"error":"warning",ce.BARE_INSERT_NOT_IDEMPOTENT,"dialect 1 \u306E\u7D20\u306E INSERT \u306F\u518D\u5B9F\u884C\u3067\u91CD\u8907\u3059\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059\u3002\u51AA\u7B49\u6027\u306E\u305F\u3081 UPSERT / MERGE \u3092\u63A8\u5968\u3057\u307E\u3059\u3002"),nd(a)&&s("warning",ce.SERVER_TIME_FUNCTION_NOT_AS_OF,ed)}return i}function Nn(e,t){if(t===void 0)return e.keyFields.length===1?[]:[{code:ce.UPDATE_KEY_COMPOSITE,severity:"error",message:"dialect 1 \u306E UPSERT / MERGE \u306E\u30AD\u30FC\u306F\u5358\u4E00\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\u8907\u5408\u30AD\u30FC\u306E\u4EE3\u308F\u308A\u306B\u3001\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\uFF08\u4F8B: \u9867\u5BA2\u30B3\u30FC\u30C9_\u5E74\u6708\uFF09\u3092\u30A2\u30D7\u30EA\u5074\u306B\u7528\u610F\u3057\u3066\u304F\u3060\u3055\u3044\u3002"}];if(e.keyFields.length!==1)return[];let n=e.keyFields[0],r=t.find(o=>o.code===n),i=[];return(r===void 0||r.fieldType!=="SINGLE_LINE_TEXT"&&r.fieldType!=="NUMBER")&&i.push({code:ce.UPDATE_KEY_FIELD_TYPE,severity:"error",message:r===void 0?`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C APP${e.appId} \u306E\u30D5\u30A9\u30FC\u30E0\u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u578B ${r.fieldType} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u91CD\u8907\u7981\u6B62\u3092\u8A2D\u5B9A\u3057\u305F\u6587\u5B57\u5217\uFF081\u884C\uFF09\u307E\u305F\u306F\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u30AD\u30FC\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),r?.isUnique===!1?i.push({code:ce.UPDATE_KEY_NOT_UNIQUE,severity:"error",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306F\u91CD\u8907\u7981\u6B62\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u8A2D\u5B9A\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u3092\u6709\u52B9\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}):r!==void 0&&r.isUnique===void 0&&i.push({code:ce.UPDATE_KEY_NOT_UNIQUE,severity:"warning",message:`UPSERT / MERGE \u306E\u30AD\u30FC\u300C${n}\u300D\u306E\u91CD\u8907\u7981\u6B62\u8A2D\u5B9A\u3092 schema resolver \u304B\u3089\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002isUnique \u3092\u8FD4\u3059 resolver \u3092\u4F7F\u7528\u3057\u3001\u30A2\u30D7\u30EA\u5074\u3067\u300C\u5024\u306E\u91CD\u8907\u3092\u7981\u6B62\u3059\u308B\u300D\u304C\u6709\u52B9\u304B\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002`}),i}function nd(e){let t=!1,n=r=>{if(t||r===null||typeof r!="object")return;if(Array.isArray(r)){r.forEach(n);return}let i=r,o=i.where;if(o!==null&&typeof o=="object"&&Te(o).some(s=>s==="TODAY"||s==="NOW"||re(s))){t=!0;return}Object.values(i).forEach(n)};return n(e),t}function gy(e){return e.type==="UPSERT"||e.type==="UPSERT_SELECT"}var yy="A-Za-z",hy="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Rl=`${yy}${hy}`,id=`${Rl}0-9_`,Ay=new RegExp(`^[${Rl}]$`,"u"),Sy=new RegExp(`^[${id}]$`,"u"),Ty=new RegExp(`^[${Rl}][${id}]{0,63}$`,"u");function Iy(e){return Ay.test(e)}function wy(e){return Sy.test(e)}function er(e){let t=e.normalize("NFC").toUpperCase();if(!Ty.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 ml(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 by(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 Ny(e,t){let n=t>0?e[t-1]:"";if(ml(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,!Iy(e[l]??""))return null;for(l++;l<e.length&&wy(e[l]);)l++;s=l;try{o=er(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&&ml(e[l]);)l++;if(l===f)return null}let u=l,d=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&by(e[l]);)l++;if(l===f)return null;d=e.slice(f,l)}let c=l<e.length?e[l]:"";if(ml(c))return null;let p={profile:d,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:u,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function tr(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]!==`
4
+ `;)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=Ny(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function rd(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function ko(e,t="dev",n){let r=tr(e),i=r.some(R=>R.profile!==null),o=new Map,a=R=>R??t;for(let R of r){if(R.source!=="physical")continue;let g=a(R.profile),y=o.get(R.appId);y||(y=new Set,o.set(R.appId,y)),y.add(g.toLowerCase())}let s=new Set(r.filter(R=>R.source==="physical").map(R=>R.appId)),l=new Map;for(let R of r){if(R.source!=="logical")continue;let g=a(R.profile).toLowerCase(),y=`logical:${R.logicalName}@${g}`;if(l.has(y))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${R.logicalName}@${g} requires logicalApps configuration.`);let A=n.resolveLogicalApp(R.logicalName,g);l.set(y,A),s.add(A)}let u=new Map,d=new Map;for(let[R,g]of o.entries()){let y=[...g].sort();if(!(y.length<=1))for(let A of y){let h=rd(s);u.set(`physical:${R}@${A}`,h),d.set(h,{source:"physical",mappedAppId:h,appId:R,profile:A})}}let c=[],p=[],f=0,E=0,m=(R,g,y,A)=>{if(!R&&g===y)return;let h=f;c.push(R),f+=R.length,p.push({normalizedStart:h,normalizedEnd:f,sourceStart:g,sourceEnd:y,...A===void 0?{}:{bindingMappedAppId:A}})};for(let R of r){let g=a(R.profile).toLowerCase(),y;if(R.source==="physical")y={source:"physical",mappedAppId:u.get(`physical:${R.appId}@${g}`)??R.appId,appId:R.appId,profile:g};else{let I=`logical:${R.logicalName}@${g}`,b=u.get(I);b===void 0&&(b=rd(s),u.set(I,b)),y={source:"logical",logicalName:R.logicalName,mappedAppId:b,appId:l.get(I),profile:g}}d.set(y.mappedAppId,y),m(e.slice(E,R.start),E,R.start);let A=e.slice(R.referenceValueEnd,R.appEnd),h=R.source==="physical"?`${e.slice(R.start,R.referenceValueStart)}${y.mappedAppId}${A}`:`APP${y.mappedAppId}${A}`;m(h,R.start,R.fullEnd,y.mappedAppId),E=R.fullEnd}return m(e.slice(E),E,e.length),{normalizedSql:c.join(""),hasProfileSyntax:i,appBindingByMappedApp:d,rewriteSegments:p}}var Fo=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 Fe=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"}},kt=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(nr(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(gl(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Fe(`\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 Fe("\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 Fe("\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&&nr(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&nr(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&nr(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||!nr(this.input[this.pos]))throw new Fe("\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&&nr(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&&od(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=Fo.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(!gl(n))throw new Fe("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&od(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Fe(`@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 Fe("\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 Fe("\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===`
5
5
  `){this.pos++;continue}if(t==="-"&&this.input[this.pos+1]==="-"){for(;this.pos<this.input.length&&this.input[this.pos]!==`
6
- `;)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 Fe("\u30D6\u30ED\u30C3\u30AF\u30B3\u30E1\u30F3\u30C8\u304C\u9589\u3058\u3089\u308C\u3066\u3044\u307E\u305B\u3093",n,this.input,!0);continue}break}}makeToken(t,n,r){return{kind:t,value:n,pos:r,end:this.pos}}};function ll(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Ty(t)}function Qp(e){let t=e.codePointAt(0);return ll(e)||t>=48&&t<=57}function Zn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Ty(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Iy=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function wy(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 Ce(e){let t=Iy.exec(e.trim());if(t===null)return null;let n=wy(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 Zp(e){let t=Ce(e);return t===null?null:cl(t)}function by(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 vo(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=by(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Do(e,t){let n=Ce(e),r=Ce(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return vo(n,r)}var Le="__NO_FROM__";function pl(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function xo(e){return e.windowKind==="AGGREGATE"}function dl(e){return e.windowKind==="VALUE"}function Pe(e){return{type:"NUMBER",value:Number(e),raw:e}}function q(e){let t=e.raw??String(e.value);return Zp(t)??t}function ed(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 Ny(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=Ny(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 td(e){return ee(e).type!=="NONE"}function nd(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 f={...l,field:s};return r.set(f.canonicalId,f),f},o=n.allItems.map(i).filter((s,l,u)=>u.findIndex(f=>f.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}}var Mo=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],ml="\0as-of:";function Gr(e){return`${ml}${e}`}function er(e){if(!e.startsWith(ml))return null;let t=e.slice(ml.length);return $r(t)?t:null}function $r(e){return Mo.includes(e)}function Rl(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=fl(r,"year"),o=fl(r,"month"),a=fl(r,"day"),s=`${El(i)}-${Uo(o)}-${Uo(a)}`,l=`${El(i)}-${Uo(o)}-01`,u=o===12?i+1:i,f=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:`${El(u)}-${Uo(f)}-01`}}}function fl(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 Uo(e){return String(e).padStart(2,"0")}function El(e){return String(e).padStart(4,"0")}function ko(e){return`'${e.replace(/'/g,"''")}'`}function tr(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=`${tr(e.left)}${e.op}${tr(e.right)}`;return t?n:`(${n})`}function rd(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 It(e.expr);if(e.type==="ARITH_FIELD")return tr(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return gl(e.expr)}function od(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(od).join(",")})`;case"ARITH_VALUE":return tr(e.expr);case"CASE_VALUE":return gl(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Br(e){switch(e.type){case"BINARY":return`${rd(e.left)} ${e.op.replace("_"," ")} ${od(e.right)}`;case"NULL_CHECK":return`${rd(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Br(e.left)} ${e.op} ${Br(e.right)})`;case"NOT":return`NOT (${Br(e.expr)})`;case"GROUP":return`(${Br(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function id(e){return e.type==="ARRAY"?`[${e.elements.map(t=>ko(t.value)).join(",")}]`:e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?It(e):e.type==="FIELD_REF"||e.type==="ARITH"?tr(e):Sn(e)}function gl(e){let t=e.branches.map(r=>`WHEN ${Br(r.condition)} THEN ${id(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${id(e.elseResult)}`;return`CASE ${t}${n} END`}function Cy(e){return e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?It(e):Sn(e)}function yl(e){return`${e.func}(${e.args.map(Cy).join(",")})`}function Sn(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 gl(e);case"SCALAR_ARITH":return`(${Sn(e.left)}${e.op}${Sn(e.right)})`;case"CONCAT_OP":return`(${Sn(e.left)}||${Sn(e.right)})`}}function Py(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?tr(e,!0):Sn(e)}function fe(e,t,n){let r=Py(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function It(e){return e.type==="NUMBER"?q(e):e.type==="AGG_REF"?fe(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${It(e.left)}${e.op}${It(e.right)}`}var ad=20,Al=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"}),ld=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Vr=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"}),hC=Object.freeze(Object.values(Vr).filter(e=>e!==void 0)),Oy=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Ly=new Set(Oy);function _y(e){return Ly.has(e)}var ud=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Wr=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function sd(e){return Wr[e]!==void 0}var vy=Object.freeze([...Po]),Dy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),xy=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Uy(e){return Dy.has(e)}function My(e){return xy.has(e)}function ky(e){return Number.isInteger(e)&&e>=1&&e<=31}var AC=Object.freeze(Array.from(new Set([...Object.keys(Al),...ld,...Object.keys(Vr),...Object.keys(ud),...Object.keys(Wr),...vy,"IF"]))),Fy=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 Ky(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Fy.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"}},hl=["\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(`
7
- `),en=class{constructor(t,n={}){this.tokens=t;this.capabilities=n;this.allowUnaryPlusNumber=!1;this.scalarAllowsAggregateArgs=!0;this.scalarAllowsCase=!0;this.pos=0;this.insideAggregateArg=0;this.groupingFieldContext="FORBIDDEN";this.allowRelativeDateFunctions=!1;this.cteNames=new Set;this.bareTempTableNames=new Set;this.tempTableRefs=[];this.aggregateGroupKeyTokens=new WeakMap;this.activeCteDefinition=null;this.provisionalRecursiveCte=null;this.allowSelectArithVariable=!1;if(n.dialect1)for(let r=0;r+1<t.length;r++){let i=t[r];if(i.kind!=="VARIABLE"||t[r+1].kind!=="(")continue;let o=i.value.slice(1).toUpperCase();if(!$r(o))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${Mo.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>ad)throw new T(`batch exceeds ${ad} 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=Wr[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new T("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE"){if(this.peekAt(1).kind==="("&&this.capabilities.dialect1)return this.advance(),this.finishVariableReference(r);throw new T(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r)}if(r.kind==="NULL")throw new T(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new T("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new T("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Wr[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}=wt(t,this.prev());if(r)throw new T("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new T("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new T("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new T("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=wt(n,this.prev());if(i)throw new T("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let 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 v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new T(`IMPORT subtable ${b} contains duplicate child declarations.`,this.prev());let C;if(this.isSoftKeyword("ROW")){this.advance();for(let k of["ID","SOURCE"]){if(!this.isSoftKeyword(k))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:v,...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(),f,c=!0,p;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let b=this.parseIdentifier().toUpperCase();if(b!=="UTF8"&&b!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());f=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("("),p=this.parseIdentList(),this.expect(")")}let d;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(d=this.parseSelect(),d.from.cteName!==Le||d.joins.length>0)throw new T("IMPORT projection cannot use FROM or JOIN.",this.prev());if(d.where||d.groupBy.length||d.grouping!==void 0||d.having||d.orderBy.length||d.limit!==null||d.offset!==null)throw new T("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(d,this.prev()),o.some(b=>b.kind==="SUBTABLE"))throw new T("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(d.columns.length!==a.length)throw new T(`IMPORT projection has ${d.columns.length} columns; target has ${a.length}.`,this.prev())}let E="POSITION",m=!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(d)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(),m=!0}}let R,g;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()}g=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(R=this.parseOnDuplicate());let y;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("("),y=this.parseIdentList(),this.expect(")"),new Set(y).size!==y.length)throw new T("REPLACE SUBTABLES contains duplicates.",this.prev())}let S=o.filter(b=>b.kind==="SUBTABLE");if(S.length){if(d)throw new T("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(S.some(b=>b.rowIdSourceHeader))throw new T("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(y)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!g)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(!y)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let b=new Set(y);for(let v of S){if(!v.rowIdSourceHeader)throw new T(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!b.has(v.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of b)if(!S.some(C=>C.subtableCode===v))throw new T(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(y)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(!g)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(R)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(g)throw new T("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let A=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:u}:{kind:"CSV",sourceName:u,encoding:f,hasHeader:c,mappingMode:E,ignoreUnknownColumns:m,...p?{columns:p}:{},...d?{projection:d}:{}},...t?{writeMode:t,recordNumberSourceHeader:g}:{},...y?{replaceSubtables:y}:{},...R?{keyFields:R}:{},...A,...I}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new T("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new T("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=wt(n,this.prev());if(i)throw new T(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let c=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:p})}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 f={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...u?{errorTable:u}:{}};return this.assertValidateExpressions(f,t),f}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(!$r(r))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${Mo.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:Gr(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&&Ky(this.tokens[i-1],o)&&(r+=" "),r+=a}return r}parseSelect(t=!1){this.expect("SELECT");let n=this.consume("DISTINCT"),r=this.parseSelectColumns(),i=this.consume("FROM"),o=i?this.parseTableRef():{appId:0,alias:null,cteName:Le},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],u,f=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()?u=this.parseGroupingSetsClause():this.isRollupStart()?u=this.parseRollupClause():this.isCubeStart()?u=this.parseCubeClause():l=this.parseGroupByKeys(),u&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(f=this.parseWhereExpr("HAVING"))}let c="CANONICAL",p=[];if(this.consume("ORDER"))this.expect("BY"),p=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new T("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());c="KINTONE_NATIVE",this.expect("BY"),p=this.parseOrderBy()}let d=this.consume("LIMIT")?this.parseUnsignedInt():null,E=this.consume("OFFSET")?this.parseUnsignedInt():null,m=r.some(g=>g.type==="WINDOW_COL"),R=r.some(g=>this.selectColumnHasAggregate(g));if(m&&(l.length>0||u!==void 0||R))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(u&&c==="KINTONE_NATIVE")throw new T("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,f,l,u),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...u?{grouping:u}:{},having:f,orderMode:c,orderBy:p,limit:d,offset:E}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,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 p=this.parseRecursiveCteCandidate(o);s=p.query,l=p.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let f=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(f&&!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:f},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(f=>f.type==="WILDCARD"||f.type==="PARENT_WILDCARD")||a.columns.some(f=>f.type==="WILDCARD"||f.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(f=>f===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(f=>this.selectColumnOutputName(f));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(Pe(`${o}${a.value}`))}while(this.consume(","));this.expect(")");let r=this.consume("AS")?this.parseIdentifier():"generate_series";return{type:"GENERATE_SERIES",args:n,columnAlias:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new T("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new T(hl,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.finishVariableReference(this.advance()),s=er(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);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);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 ud[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(Vr[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}if(this.tryValueWindowFunc(n)!==null)return!0;r.kind==="("?t++:r.kind===")"&&t--}return!1}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new T(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseValueWindowColumn(t){this.advance(),this.expect("(");let n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}),r=1;if(this.consume(",")){let s=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(r=Number(s.value),!Number.isSafeInteger(r)||r<0)throw new T(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,s)}this.expect(")",`${t} \u306F expr \u3068\u7701\u7565\u53EF\u80FD\u306A offset \u306E 2 \u5F15\u6570\u307E\u3067\u3067\u3059`),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();i.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}if(!this.consume("ORDER"))throw new T(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let o=this.parseOrderBy(!1);if(this.expect(")"),this.isArithOp(this.peek().kind)||this.peek().kind==="||")throw new T(hl,this.peek());if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:n,offset:r,partitionBy:i,orderBy:o,alias:a.alias},a)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new T(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new T("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new T("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new T(hl,this.peek());if(!this.consume("AS"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Pe(`-${q(n)}`):{type:"AGG_ARITH",left:Pe("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Pe(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),Vr[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=f=>{if(Array.isArray(f)){f.forEach(a);return}if(f===null||typeof f!="object")return;let c=f;if(!(c.type==="SELECT"||c.type==="SCALAR_SUBQUERY")){if(c.type==="AGG_GROUP_KEY"){o.push(f);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(f=>f.type==="FIELD_NAME").map(f=>f.name));for(let f of o){let c=this.aggregateGroupKeyDisplay(f);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(f)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Pe(`${n.kind==="-"?"-":"+"}${q(r)}`);if(n.kind==="+")throw new T("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Pe("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Pe(n.value);if(n.kind==="VARIABLE")return this.advance(),this.finishVariableReference(n);if(n.kind==="CASE"){if(!t)throw new T("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new T(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Pe(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new T("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Pe(`-${q(n)}`):{type:"ARITH",left:Pe("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Pe(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new T("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult(t);this.expect(",");let i=this.parseCaseResult(t);return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult(t);n.push({condition:i,result:o})}if(n.length===0)throw new T("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Al[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Al[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(ld.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=Gy(n);if(r===null)throw new T(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return Vr[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new T("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!_y(t))throw new T(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new T("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof T){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new T("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek();if(t.kind==="IDENT"&&t.value.toUpperCase()==="GENERATE_SERIES"&&this.peekAt(1).kind==="(")throw new T("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let n=this.parseTableName();if(this.capabilities.dialect1&&this.bareTempTableNames.has(n)){let s=`#${n}`;return this.tempTableRefs.push({...this.prev(),value:s}),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:s}}if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new T(s,t)}let{appId:r,subtableCode:i}=wt(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"||t==="IDENT"&&this.peek().value.toUpperCase()==="KEY"&&this.peekAt(1).kind==="("?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();if(n==="CROSS"){if(this.peek().kind==="ON")throw new T("CROSS JOIN \u306B ON \u53E5\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());t.push({type:"CROSS",table:r,on:null});continue}this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){if(this.consume("INNER")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B INNER \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"INNER"}if(this.consume("LEFT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"LEFT"}if(this.consume("RIGHT")){if(this.peek().kind==="CROSS")throw new T("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"RIGHT"}return this.consume("CROSS")?(this.expect("JOIN"),"CROSS"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new T("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new T("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue(n!=="LIKE");return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new T("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);throw new T("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new T(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new T("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new T("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:fe(r.func,r.distinct,r.arg),...this.groupingFieldContext==="SELECT_CASE"||this.groupingFieldContext==="HAVING"?{aggregateRef:r}:{}}}if(this.peek().kind==="CASE")return{type:"CASE_FIELD",expr:this.parseCaseWhenExpr()};if(this.peek().kind==="IF")return{type:"CASE_FIELD",expr:this.parseIfExpr()};if(this.peek().kind==="("){this.advance();let r=this.parseArithAddSub();return this.expect(")"),{type:"ARITH_FIELD",expr:this.continueArith(r)}}if(this.peek().kind==="-")return{type:"ARITH_FIELD",expr:this.parseArithAddSub()};let n=this.parseQualifiedIdent();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:n.tableAlias?`${n.tableAlias}.${n.field}`:n.field};return{type:"ARITH_FIELD",expr:this.continueArith(i)}}return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseWhereSqlValue(t=!0){let n=this.peek();if(t&&n.kind==="+"){this.advance();let r=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Pe(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&ne(n.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new T("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new T("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new T("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!Uy(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(!My(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(!ky(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(sd(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Wr[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(Pe(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(Pe(`${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=ed(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new T("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new T("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}if(this.isUnsupportedGroupingIdStart())throw new T("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new T("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=wt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let f=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(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:f,...c,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let f=this.parseInsertRow(i.length,!0);this.expect(")"),o.push(f)}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}=wt(t,this.prev());if(r)throw new T("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let c=this.parseSelect(),p=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let d=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:p,...d,...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(),f=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,...f}}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}=wt(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 f=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(f.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 p=null,d=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"),d!==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"),d=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(")"),d.length!==E.length)throw new T("MERGE INSERT \u306E\u5217\u6570\u3068 VALUES \u306E\u5024\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",I)}else{if(this.expectSoftKeyword("MATCHED","WHEN \u306E\u5F8C\u306B\u306F MATCHED \u307E\u305F\u306F NOT MATCHED \u304C\u5FC5\u8981\u3067\u3059"),p!==null)throw new T("WHEN MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);this.expect("THEN","WHEN MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("UPDATE","WHEN MATCHED THEN \u306E\u5F8C\u306B\u306F UPDATE \u304C\u5FC5\u8981\u3067\u3059"),this.expect("SET","WHEN MATCHED THEN UPDATE \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059"),p=this.parseMergeAssignments(o)}}if(p===null||d===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(!d.some(I=>I.toLowerCase()===f.field.toLowerCase()))throw new T(`MERGE \u306E ON \u30AD\u30FC ${f.field} \u306F INSERT \u5217\u30EA\u30B9\u30C8\u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044`,t);let m=new Map;d.forEach((I,b)=>m.set(I.toLowerCase(),E[b]));for(let I of p){let b=I.field.toLowerCase(),v=m.get(b);if(v!==void 0&&!this.mergeExpressionsEqual(v,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);v===void 0&&(d.push(I.field),E.push(I.value),m.set(b,I.value))}let R=E.map(I=>this.mergeValueToSelectColumn(I,u,t)),g=s.cteName!==null?{...s,alias:null}:{...s,alias:`APP${s.appId}${s.subtableCode?`$${s.subtableCode}`:""}`},y={type:"SELECT",distinct:!1,columns:R,from:g,joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null},S=this.parseCheckGroups(),A=this.parseDmlControlSuffix();return{type:"UPSERT_SELECT",appId:r,fields:d,select:y,keyFields:[f.field],...S,...A}}parseMergeQualifiedField(t){let n=this.peek(),r=this.parseFieldPath(),i=this.splitQualifiedField(r);if(i.alias===null)throw new T(t,n);return{alias:i.alias,field:i.field}}parseMergeAssignments(t){let n=[];do{let r=this.peek(),i=this.parseFieldPath(),o=this.splitQualifiedField(i);if(o.alias!==null&&o.alias.toLowerCase()!==t.toLowerCase())throw new T(`MERGE UPDATE SET \u306E\u5DE6\u8FBA\u306F target alias ${t} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);this.expect("="),n.push({field:o.field,value:this.parseAssignmentValue()})}while(this.consume(","));return n}parseMergeValueList(){let t=[];if(this.peek().kind===")")return t;do t.push(this.parseAssignmentValue());while(this.consume(","));return t}mergeExpressionsEqual(t,n,r){return this.mergeNormalizedValueEqual(this.normalizeMergeValue(t,r,!0),this.normalizeMergeValue(n,r,!0))}normalizeMergeValue(t,n,r=!1){if(Array.isArray(t))return t.map(o=>this.normalizeMergeValue(o,n,r));if(t===null||typeof t!="object")return t;let i=t;if(r&&i.type==="NUMBER")return{type:"NUMBER",value:i.value};if(i.type==="SOURCE_FIELD")return String(i.alias).toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{type:"FIELD_REF",field:i.field};if(i.type==="FIELD_REF"&&typeof i.field=="string"){let o=this.splitQualifiedField(i.field);return o.alias!==null&&o.alias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,field:o.field}}return i.type==="FIELD"&&typeof i.tableAlias=="string"?i.tableAlias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,tableAlias:null}:Object.fromEntries(Object.entries(i).map(([o,a])=>[o,this.normalizeMergeValue(a,n,r)]))}mergeNormalizedValueEqual(t,n){if(t===n)return!0;if(Array.isArray(t)||Array.isArray(n))return Array.isArray(t)&&Array.isArray(n)&&t.length===n.length&&t.every((s,l)=>this.mergeNormalizedValueEqual(s,n[l]));if(t===null||n===null||typeof t!="object"||typeof n!="object")return!1;let r=t,i=n,o=Object.keys(r),a=Object.keys(i);return o.length===a.length&&o.every(s=>Object.prototype.hasOwnProperty.call(i,s)&&this.mergeNormalizedValueEqual(r[s],i[s]))}mergeValueToSelectColumn(t,n,r){let i=this.normalizeMergeValue(t,n);if(this.mergeValueContainsInvalidSource(i))throw new T(`MERGE \u306E\u5F0F\u306F source alias ${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044`,r);let o=i;switch(o.type){case"FIELD_REF":return{type:"FIELD",field:String(o.field),alias:null};case"STRING":return{type:"LITERAL_COL",value:String(o.value),alias:null};case"NUMBER":return{type:"ARITH_COL",expr:o,alias:null};case"ARITH":return{type:"ARITH_COL",expr:o,alias:null};case"STRING_FUNC":return{type:"STRFUNC_COL",expr:o,alias:null};case"CASE_VALUE":return{type:"CASE_COL",expr:o.expr,alias:null};default:throw new T("MERGE \u306E\u4EE3\u5165\u5F0F\u306F\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9\u30FB\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u6587\u5B57\u5217\u95A2\u6570\u30FBCASE \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",r)}}mergeValueContainsInvalidSource(t){if(Array.isArray(t))return t.some(r=>this.mergeValueContainsInvalidSource(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="INVALID_SOURCE"||Object.values(n).some(r=>this.mergeValueContainsInvalidSource(r))}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new T(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new T(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new T("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t,n){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let i=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="IF"){let i=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let i=this.advance(),o=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");r.push(Pe(`${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(Pe(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"&&$r(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}=wt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(p=>p.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let p=this.parseTableRef();if(p.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(p.cteName!==null&&!p.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!p.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(p.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:p.appId,cteName:p.cteName,alias:p.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let p=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=p.targetJoinField,o.joinKeyField=p.joinKeyField,o.targetFilter=p.targetFilter}else{if(i.some(p=>p.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(p=>p.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(p.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let u=this.parseCheckGroups(),f=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&&(f.validateOnly||f.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,...f}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...u,...f}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...u,...f}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length,!1)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new T(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new T("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new T("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((f,c)=>{let p=this.matchUpdateFromJoin(f,n,r);p!==null&&a.push({index:c,...p})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let f=0;f<o.length;f++){if(f!==s.index&&this.nodeContainsQualifiedField(o[f],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(f!==s.index&&this.nodeContainsForeignQualifier(o[f],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((f,c)=>c!==s.index).reduce((f,c)=>f===null?c:{type:"LOGICAL",op:"AND",left:f,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(sd(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=wt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new T("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=wt(n,this.prev());if(!i)throw new T("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new T("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new T("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new T("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new T(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new T("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new T("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}tryParseDigitPrefixedIdentifier(){let t=this.peek(),n=this.peekAt(1);return t.kind!=="NUMBER"||!/^\d+$/.test(t.value)||n.kind!=="IDENT"||n.pos!==t.pos+t.value.length?null:(this.advance(),this.advance(),t.value+n.value)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new T(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new T("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||_o.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 Gy(e){let t=e.toUpperCase(),n=new Set(["TEXT","VARCHAR","CHAR","NCHAR","NVARCHAR","STRING"]),r=new Set(["NUMBER","INT","INTEGER","NUMERIC","DECIMAL","FLOAT","DOUBLE","REAL","BIGINT","SMALLINT"]);return n.has(t)?"TEXT":r.has(t)?"NUMBER":null}function wt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new T(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}function Hr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=$y(e.op);if(t===null)throw new Ee(`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:Hr(e.left),right:Hr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Hr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function $y(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 cd(e){return e.includes("%")||e.includes("_")}function Yr(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(Yr(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 _e(e){if(e===null)return!1;if(nn(e))return!0;switch(e.type){case"LOGICAL":return _e(e.left)||_e(e.right);case"NOT":case"GROUP":return _e(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function z(e){switch(e.type){case"BINARY":return By(e);case"NULL_CHECK":return Wy(e);case"LOGICAL":return Hy(e);case"NOT":return Yy(e);case"GROUP":return jy(e);case"EXISTS":throw new Ee("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new Ee("internal error: BOOLEAN predicate reached kintone query conversion")}}function By(e){if(Yr(e))throw new Ee("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=dd(e.left),n=Vy(e.op),r=zy(e.right,e.op);return`${t} ${n} ${r}`}function Vy(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 Wy(e){let t=dd(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Hy(e){let t=z(e.left),n=z(e.right),r=e.op==="AND"?"and":"or",i=pd(e.left)?`(${t})`:t,o=pd(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function Yy(e){return z(Hr(e.expr))}function jy(e){return`(${z(e.expr)})`}function dd(e){if(e.type==="FUNC_FIELD")throw new Ee(`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 Ee("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 Ee("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 Ee("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 Ee("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return nh(e.field)}function zy(e,t){switch(e.type){case"VARIABLE":throw new Ee(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new Ee(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return fd(e);case"NUMBER":return q(e);case"KINTONE_FUNC":return Ed(e);case"IN_LIST":return eh(e,t);case"ARITH_VALUE":throw new Ee("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 Ee("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 Ee("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new Ee("\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 Ee("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function fd(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Ed(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return qy(e)}function qy(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?jr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!Qy(e.args.offset,e.args.offsetText)||!Jy.has(e.args.unit)?jr():`${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&&!Xy.has(e.args.weekday)?jr():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"||!Zy(e.args.day)?jr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return jr()}var Jy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Xy=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Qy(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function Zy(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function jr(){throw new Ee("internal error: invalid relative date function AST reached kintone query conversion")}function eh(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new Ee("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return th(e.values),`(${e.values.map(r=>r.type==="STRING"?fd(r):r.type==="NUMBER"?q(r):Ed(r)).join(",")})`}function th(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Ee(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function nh(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function pd(e){return e.type==="LOGICAL"}var Ee=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};var md=Symbol("ksql.groupingRowMeta"),Rd=new WeakMap;function Sl(e,t){return Object.defineProperty(e,md,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Tl(e){return e[md]}function rh(e){return Tl(e)?.includedCanonicalIds}function gd(e,t){Rd.set(e,t)}function nr(e,t){let n=rh(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Rd.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Fo=["$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 Ko(e){return e.startsWith("_")||e.startsWith("$")}var ih=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function wl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(wl);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"?ih.test(t.field):Object.values(t).some(wl)}function oh(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 Ie(e)||wl(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var ah=["_pid","_rid","_idx"];function Il(e){return[...new Set(e)]}function sh(e){switch(e.kind){case"APP":return Il([...e.fieldCodes,...Fo]);case"SUBTABLE":return Il([...e.childFieldCodes,...ah,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Il(e.columns)}}function yd(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:sh(t(r,i))}))}function hd(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 Ad(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Sd(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?hd(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:Ad(a,r.fieldCode)}}function lh(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function uh(e,t,n){let r=hd(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:Ad(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,u)=>lh(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=oh(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&&fe(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Td(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?uh(r.name,t,n):{kind:"EXPRESSION"})}}function ve(e,t){let n=[...t];if(n.includes(e))return e;let r=e.toLowerCase();return n.find(i=>i===r)}var ch="B65_NON_GROUPED_DEPENDENCY",Nl=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 Go(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 Cl(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return Go(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?Go(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function Pl(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function wd(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function bd(e){return e.type==="WINDOW_COL"}function ph(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(f=>rn(f,t));return u.some(f=>f===null)?null:`[${u.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||Pl(n))return null;if(r==="GROUP"&&n.expr!==void 0)return rn(n.expr,t);let i=typeof r=="string"?Nl.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:${ph(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Cl(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 f=rn(n[u],t);if(f===null)return null;s.push(`${u}=${f}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function dh(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function fh(e){let t=new Map;for(let n of e){let r=dh(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function Ol(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var Eh=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function $o(e){if(e&&typeof e=="object"){let t=e,n=Cl(t);if(n!==null)return Ol(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"?Nl.get(t.type):void 0;if(i!==void 0){let a=$o(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Id(e,t,n,r){let i=n==="WILDCARD"?"wildcard":Ol(n),o=$o(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=${ch})`)}function Tn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)Tn(a,t);return}let n=e;if(Pl(n)||wd(n)||bd(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 Id(t.clause,t.expression,"WILDCARD",t.policy);let r=Cl(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&Eh.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=ve(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 f=new Set(t.resolvingAliases);f.add(l),Tn(u[0],{...t,resolvingAliases:f});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 Id(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"?Nl.get(n.type):void 0;if(o!==void 0){Tn(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||Tn(n[a],t)}function zr(e,t){let n=fh(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&Tn(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&Tn(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"?Go(r.key.name):r.key;Tn(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function bl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(bl);let t=e;return Pl(t)||bd(t)?!1:wd(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(bl)}function kt(e){return ee(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&bl(t))}function mh(e){return e.type==="FIELD_NAME"?Go(e.name):e.expr}function Nd(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=d=>{let E=Sd(d,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((d,E)=>{if(d.kind==="PHYSICAL"){a.add(`FIELD:source:${d.sourceIndex}:${d.fieldCode}`);return}if(d.kind==="ALIAS_SAFE"){let m=rn(e.columns[d.columnIndex],o);m!==null&&a.add(m);return}if(d.kind==="EXPRESSION"){let m=rn(mh(i[E]),o);m!==null&&a.add(m)}});let s=[e.from,...e.joins.map(d=>d.table)],l=d=>`APP${d.appId}${d.subtableCode!=null?`$${d.subtableCode}`:""}`,u=s.map(d=>d.cteName??l(d)).join(" / "),f=`GROUP BY ${i.map(d=>d.type==="FIELD_NAME"?d.name:$o(d)).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,p=i.every((d,E)=>d.type==="FIELD_NAME"&&t.items[E]?.kind==="PHYSICAL")?i.map(d=>d.name):void 0;return{identities:a,resolveField:o,sourceLabel:u,groupingLabel:f,migrationSourceSql:c,migrationGroupingFields:p}}function Bo(e){if(ee(e).type!=="NONE"||!kt(e))return;let t={identities:new Set,resolveField:n=>`ast:${Ol(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};zr(e,t)}function Cd(e){return`FIELD:${e}`}var Pd=e=>{if(e.expandedSetCount>64)throw new Error(`ArgumentError: expanded grouping set count ${e.expandedSetCount} exceeds limit ${64} (reason=GROUPING_SET_LIMIT_EXCEEDED).`);if(e.canonicalItemCount>16)throw new Error(`ArgumentError: canonical grouping item count ${e.canonicalItemCount} exceeds limit ${16} (reason=GROUPING_ITEM_LIMIT_EXCEEDED).`)};function Ll(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Xe(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Xe(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=>Xe(r,t))}}function Ho(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Ho(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){Xe(n.arg,t);return}Object.values(n).forEach(r=>Ho(r,t))}}function Ie(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ie);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(Ie)}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"?Ie(e):!1}function gh(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${Ll(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${Ll(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);gd(e,r.canonicalId)}function _l(e){let t=ee(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&Xe(i,n);Xe(e.having,n),Xe(e.orderBy,n);let r=[];Xe(e.where,r),Xe(e.joins,r),Ho(e.columns,r),Ho(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&Xe(i,r);if(r.length>0)throw new Error("ArgumentError: GROUPING() is not allowed in WHERE, JOIN, window, aggregate arguments, or DML expressions.");if(t.type!=="GROUPING_SETS"){if(n.length>0)throw new Error("ArgumentError: GROUPING() requires GROUP BY ROLLUP or GROUPING SETS.");Bo(e);return}if(e.orderMode==="KINTONE_NATIVE")throw new Error("ArgumentError: KORDER BY is not supported with extended grouping.");if(e.columns.some(i=>i.type==="WINDOW_COL"))throw new Error("ArgumentError: window functions are not supported with extended grouping.");if(e.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: SELECT wildcard \u306F\u96C6\u8A08 query \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044 (reason=B65_NON_GROUPED_DEPENDENCY).")}function Od(e,t,n=()=>{}){_l(e);let r=ee(e),i=[];for(let u of e.columns)u.type!=="WINDOW_COL"&&Xe(u,i);if(Xe(e.having,i),Xe(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=nd(e,t),a=new Set,s=[];for(let u of o.allItems){let f=u;if(!f.physical)throw new Error(`ArgumentError: grouping item ${Ll(u.field)} must resolve to a physical APP field.`);a.has(f.canonicalId)||(a.add(f.canonicalId),s.push(f))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let u of i)gh(u,t,a);zr(e,{identities:new Set([...a].map(Cd)),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 f="alias"in u?u.alias:null;if(f!==null&&l.has(f))throw new Error(`ArgumentError: aggregate alias ${f} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function yh(e){return e.some(t=>t.type==="WINDOW_COL")}function Qe(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ee(e).type!=="NONE"||e.distinct||yh(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&Ie(t.expr)||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Ie(t.expr)||t.type==="STRFUNC_COL"&&xd(t.expr)||t.type==="SCALAR_VALUE_COL"&&Jr(t.expr))||Ft(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Ft(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Ld(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Yr(e);case"NULL_CHECK":return Ld(e.field);case"LOGICAL":return Ft(e.left)||Ft(e.right);case"NOT":case"GROUP":return Ft(e.expr);case"EXISTS":return!0}}function Ld(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function jo(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(hh).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:Ah(e.columns),totalCount:!1}}function Dd(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Ft(e.where)&&n.push(z(e.where)),{app:t,query:n.join(" "),fields:[]}}function In(e,t,n){let i=Md(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 hh(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 Ah(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="ARITH_COL"&&Ie(r.expr)||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(zo(r.field)):r.type==="ARITH_COL"?qr(r.expr,n):r.type==="STRFUNC_COL"?vl(r.expr,n):r.type==="SCALAR_VALUE_COL"&&rr(r.expr,n);return[...new Set(n)]}function Sh(e,t){qr(e.left,t),qr(e.right,t)}function qr(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(zo(e.field)):e.type==="ARITH"?Sh(e,t):e.type==="STRING_FUNC"&&vl(e,t)}function zo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function vl(e,t){for(let n of e.args)Th(n,t)}function Th(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Yo(e,t);return}rr(e,t)}function rr(e,t){if(e.type==="FIELD"){t.push(zo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){vl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){rr(e.left,t),rr(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)_d(n.result,t);e.elseResult&&_d(e.elseResult,t)}}function _d(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Yo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){qr(e,t);return}rr(e,t)}}function Yo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Ih(e.arg,t);return}e.type==="AGG_ARITH"&&(Yo(e.left,t),Yo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(zo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function Ih(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?qr(e,t):rr(e,t)}function xd(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Jr(t))}function Jr(e){return e.type==="STRING_FUNC"?xd(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Jr(e.left)||Jr(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:Jr(e)}function Ud(e,t){let n=new Set,r=Md(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Md(e,t,n){let r=[e.from,...e.joins.map(h=>h.table)],i=[e.from,...e.joins.map(h=>h.table)].filter(h=>h.cteName===null),o=n?r:i,a=new Map;for(let h of o)a.set(h,{table:h,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(h=>!!h.subtableCode)??null,u=new Map;for(let h of o)h.alias&&u.set(h.alias,h),h.cteName!==null?u.set(h.cteName,h):h.subtableCode||(u.set(`APP${h.appId}`,h),u.set(`app${h.appId}`,h));let f=wh(e.columns),c=h=>{let w=a.get(h);w&&(w.allFields=!0,w.fields.clear())},p=()=>{for(let h of o)c(h)},d=()=>{for(let h of o)h.subtableCode&&c(h)},E=(h,w)=>{let _=a.get(h);if(!(!_||_.allFields)){if(h.subtableCode){if(w.startsWith("_p.")){let L=w.slice(3);L&&L!=="*"&&_.fields.add(L);return}return void 0}w&&_.fields.add(w)}},m=(h,w="select",_)=>{if(!h||h==="*")return;if(h==="_p.*"){d();return}if(h.endsWith(".*")){let F=h.slice(0,-2);if(!F){p();return}if(F==="_p"){d();return}let W=u.get(F);if(W){c(W);return}return}if(w==="groupBy"&&_!==void 0){if(_.kind==="PHYSICAL"){let F=r[_.sourceIndex];F&&(n||F.cteName===null)&&E(F,_.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&ve(h,f)!==void 0||(w==="orderBy"||w==="having"||w==="groupBy")&&bh(h))return;let L=h.indexOf(".");if(L>0){let F=h.slice(0,L),W=h.slice(L+1);if(F==="_p"){l&&E(l,`_p.${W}`);return}let $=u.get(F);if($){E($,W);return}if(n)return}n?n.unqualified.add(h):s&&E(s,h)},R=(h,w,_="select")=>{if(w){if(w==="_p"){l&&E(l,`_p.${h}`);return}let L=u.get(w);if(L){E(L,h);return}if(n)return}m(h,_)},g=(h,w="select")=>{if(h.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${h.name} reached source-aware field collection.`);if(h.type==="FIELD_REF"){m(h.field,w);return}if(h.type==="ARITH"){g(h.left,w),g(h.right,w);return}if(h.type==="STRING_FUNC"){A(h,w);return}},y=(h,w="select")=>{if(h.type==="AGG_REF"){h.arg.type!=="WILDCARD"&&b(h.arg,w);return}h.type==="AGG_ARITH"&&(y(h.left,w),y(h.right,w)),h.type==="AGG_GROUP_KEY"&&R(h.field,h.tableAlias??null,w)},S=(h,w="select")=>{if(h.type==="AGG_REF"||h.type==="AGG_ARITH"||h.type==="AGG_GROUP_KEY"||h.type==="VARIABLE"){y(h,w);return}I(h,w)},A=(h,w="select")=>{for(let _ of h.args)S(_,w)},I=(h,w="select")=>{if(h.type==="FIELD"){R(h.field,h.tableAlias,w);return}if(h.type==="STRING_FUNC"){A(h,w);return}if(h.type==="SCALAR_ARITH"||h.type==="CONCAT_OP"){I(h.left,w),I(h.right,w);return}h.type==="CASE_WHEN"&&C(h,w)},b=(h,w="select")=>{if(h.type==="FIELD_REF"||h.type==="ARITH"){g(h,w);return}I(h,w)},v=(h,w="select")=>{if(h.type!=="ARRAY"){if(h.type==="AGG_REF"||h.type==="AGG_ARITH"){y(h,w);return}if(h.type==="FIELD_REF"||h.type==="ARITH"){g(h,w);return}I(h,w)}},C=(h,w="select")=>{for(let _ of h.branches)U(_.condition,w),v(_.result,w);h.elseResult&&v(h.elseResult,w)},k=(h,w="select")=>{if(h.type==="FIELD"){if(h.aggregateRef){y(h.aggregateRef,w);return}R(h.field,h.tableAlias,w);return}if(h.type==="FUNC_FIELD"){A(h.expr,w);return}if(h.type==="AGG_FIELD"){y(h.expr,w);return}if(h.type==="ARITH_FIELD"){g(h.expr,w);return}h.type!=="GROUPING_FIELD"&&C(h.expr,w)},x=(h,w="select")=>{if(h.type==="ARITH_VALUE"){g(h.expr,w);return}if(h.type==="CASE_VALUE"){C(h.expr,w);return}},U=(h,w="where")=>{if(h)switch(h.type){case"BINARY":k(h.left,w),x(h.right,w);return;case"NULL_CHECK":k(h.field,w);return;case"LOGICAL":U(h.left,w),U(h.right,w);return;case"NOT":case"GROUP":U(h.expr,w);return;case"EXISTS":case"BOOLEAN":return}},O=(h,w)=>{if(h.type==="FIELD_NAME"){m(h.name,"groupBy",w);return}if(h.type==="ARITH_KEY"){g(h.expr,"groupBy");return}A(h.expr,"groupBy")},P=(h,w="orderBy")=>{if(h.type==="FIELD_NAME"){m(h.name,w);return}if(h.type==="ARITH_KEY"){g(h.expr,w);return}h.type!=="GROUPING_KEY"&&A(h.expr,w)};for(let h of e.columns)switch(h.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":d();break;case"FIELD":m(h.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${h.name}`);case"AGGREGATE":h.arg.type!=="WILDCARD"&&b(h.arg,"select");break;case"ARITH_AGG_COL":y(h.expr,"select");break;case"ARITH_COL":g(h.expr,"select");break;case"CASE_COL":C(h.expr,"select");break;case"STRFUNC_COL":A(h.expr,"select");break;case"SCALAR_VALUE_COL":I(h.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(h.windowKind==="AGGREGATE"||h.windowKind==="VALUE")&&h.arg.type!=="WILDCARD"&&b(h.arg,"select");for(let w of h.partitionBy)R(w.field,w.tableAlias,"select");for(let w of h.orderBy)P(w.key,"select");break}for(let h of e.joins)h.type!=="CROSS"&&(R(h.on.left.field,h.on.left.tableAlias,"where"),R(h.on.right.field,h.on.right.tableAlias,"where"));U(e.where,"where");let N=ee(e);if(N.type==="PLAIN")N.allItems.forEach((h,w)=>O(h,t?.items[w]));else if(N.type==="GROUPING_SETS")for(let h of N.allItems)R(h.field,h.tableAlias,"select");U(e.having,"having");for(let h of e.orderBy)P(h.key);return a}function wh(e){let t=new Set;for(let n of e){if(n.type==="FIELD"&&n.alias){t.add(n.alias);continue}if(n.type==="LITERAL_COL"){t.add(n.alias??`'${n.value}'`);continue}if(n.type==="AGGREGATE"){n.alias?t.add(n.alias):t.add(fe(n.func,n.distinct,n.arg));continue}if(n.type==="ARITH_AGG_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="ARITH_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="CASE_COL"){t.add(n.alias??"case");continue}if(n.type==="STRFUNC_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="SCALAR_VALUE_COL"){n.alias&&t.add(n.alias);continue}if(n.type==="GROUPING_COL"){t.add(n.alias??`GROUPING(${n.ref.field.tableAlias?`${n.ref.field.tableAlias}.`:""}${n.ref.field.field})`);continue}if(n.type==="SCALAR_SUBQUERY_COL"){t.add(n.alias??"(subquery)");continue}n.type==="WINDOW_COL"&&t.add(n.alias)}return t}function bh(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function on(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||Qe(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||td(n)||n.distinct?!1:!kt(n)}function an(e){let t=e.ctes[0].query,n=e.query,r=qo(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 qo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:kd(e.left,t)};case"NULL_CHECK":return{...e,field:kd(e.field,t)};case"LOGICAL":return{...e,left:qo(e.left,t),right:qo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:qo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function kd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var Nh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Ch=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function te(e){let t;e.fieldType==="RECORD_NUMBER"||e.fieldType==="__ID__"?t="recordNumber":e.fieldType==="NUMBER"?t="number":e.fieldType==="CALC"?t=e.sortKind==="number"?"number":"string":Ch.has(e.fieldType)?t="option":Nh.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 ir(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Jo(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=["=","!=",">","<",">=","<="],Ph=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Oh=new Set(Ze),Lh=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"])]]),_h=new Map([["TODAY",new Set(Ze)],["NOW",new Set(Ze)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),vh=["=","!=","in","not in"],Dh=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(vh)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),xh=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"])]]),xl=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"]),Gd=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Qo(e){return Dh.get(e)??new Set}function $d(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"&&xl.has(o.fieldType)&&Qo(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 we(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 Uh(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Dl():Fh(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Dl();case"GROUP":return Qr(e.expr,t);case"NOT":{let n=Qr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Vd(n.reasons)?ei({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 Gh(e.op,n,r)}}}function Uh(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ne(n.name))return Mh(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Fd(n))return Kd(e,t,n,r);if(n.type==="IN_LIST"){let f=n.values.filter(c=>c.type==="KINTONE_FUNC");if(f.length>0)return n.values.length===1&&f.length===1?Kd(e,t,f[0],r):Xo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",f[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Zr(e))}if(t.type!=="FIELD")return Dl();let i=r(t);if(!i)return or("WHERE_FIELD_UNRESOLVED",t.field,void 0,Zr(e));let o=Zr(e);if(!Bd(i.fieldType,o))return or("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Kh(i.fieldType,e))return or("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Qo(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Fd(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 Fd(e){return e.type==="KINTONE_FUNC"&&yn.has(e.name)}function Kd(e,t,n,r){let i=Zr(e),o=n.name;if(!yn.has(o)||t.type!=="FIELD")return Xo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Lh.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Xo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):_h.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Xo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function Mh(e,t,n,r){let i=Zr(e),o=n.name;if(t.type!=="FIELD")return Xr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?kh(n)?Oh.has(i)?!Ph.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Xr("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}]}:Xr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Xr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Xr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function kh(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 Fh(e,t,n){let r=n(e);return r?Bd(r.fieldType,t)?!xl.has(r.fieldType)&&!Gd.has(r.fieldType)?or("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:or("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):or("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Bd(e,t){let n=xh.get(e);return n===void 0||n.has(t)}function Kh(e,t){return xl.has(e)?!0:Gd.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Zr(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 Gh(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?ei({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")?ei({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):ei({capability:"LOCAL_ONLY",reasons:r})}function Dl(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function or(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Xo(e,t,n,r,i){return ei({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Xr(e,t,n,r,i){return Wd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Vd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ne(t.functionName))}function $h(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&yn.has(t.functionName))}function Wd(e){if(e.capability==="EXACT_PUSHDOWN"||!Vd(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&ne(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function Bh(e){if(e.capability==="EXACT_PUSHDOWN"||!$h(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&&yn.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 ei(e){return Bh(Wd(e))}function ti(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function Zo(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function ea(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!ti(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function ta(e){let t=e.raw??String(e.value),n=Ce(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 Vh=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Wh=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Hh=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Yh=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function na(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"?Hh.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?zh(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?jh(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"&&ta(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&ta(e.right)?"exact":"unsafe":Wh.has(r)?Ul(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?Ul(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Yh.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?ti(e.right.value)?"exact":"unsafe":r==="TIME"?Zo(e.right.value)?"exact":"unsafe":ea(e.right.value)?"exact":"unsafe":Vh.has(r)?!Ul(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 Hd(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 Ul(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 jh(e){let t=n=>n.type==="NUMBER"&&ta(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 zh(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function Ml(e,t={}){return aa(e,t).condition}function aa(e,t={}){return ra(e,n=>qh(n,t))}function ni(e,t={}){return ia(e,n=>Hd(n,r=>oa(r,t)))}function ra(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=ra(e.left,t),r=ra(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 ra(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function ia(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=ia(e.left,t),r=ia(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return ia(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function qh(e,t){if(Jh(e,t)||Xh(e,t))return"exact";if(e.left.type!=="FIELD"||!oa(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||we(e,i=>{if(!oa(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:te({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":na(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function Jh(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!oa(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function Xh(e,t){return!Qh(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function Qh(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 oa(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function ri(e,t={}){let n=e!==null&&t.extractCondition!==!1?aa(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;ar(r,o);let a=new Set;return ar(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function wn(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=ri(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 p=aa(e.where,{...r,tableAlias:c.table.alias,fieldTypes:t.fieldTypesByApp?.get(c.table.appId),fieldOptions:t.fieldOptionsByApp?.get(c.table.appId)});p.condition!==null&&p.relation!==null&&(l.set(c.table.alias,p.condition),u.set(c.table.alias,p.relation))}let f=new Set(a.appliedKlikes);for(let c of l.values())ar(c,f);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:u,appliedKlikes:f,allKlikes:a.allKlikes}}function kl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function ar(e,t){if(e!==null){if(nn(e)){t.add(e);return}switch(e.type){case"LOGICAL":ar(e.left,t),ar(e.right,t);return;case"NOT":case"GROUP":ar(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var Zh=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})}),Gl=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})}),ii="v1";function J(e){throw new Error(`UnsupportedError: APPLY ${ii} scope does not support ${e}`)}function eA(e,t){let n=ii;ii=e;try{return t()}finally{ii=n}}function tA(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 ur(e,t){return eA(e,()=>nA(t,Zh[e]))}function nA(e,t){let n=tA(e);if(n===null)return;if(n.type==="UPSERT"){iA(n,t);return}let r=n.applyBlocks;if(Fl(r),!t.multipleBlocks&&r.length!==1&&J("multiple APPLY blocks in this phase"),n.type==="INSERT"){oA(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"),aA(i.where,t.multipleParents),jd(r,t)}function jd(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||J(`${r.kind} in this phase`);zd(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)sa(i,"APPEND targets");lr(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Yd(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")}lr(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Yd(r.selector.where,t.idxSelectors)}}}}function zd(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 rA=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function qd(e,t){if(zd(e),e.targetKind==="MULTI_VALUE"){if(!rA.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 Fl(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${ii} scope allows only one block for table ${n.field}`);t.add(n.field)}}function iA(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??[];Fl(n),Fl(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&J("multiple APPLY blocks in this phase"),Jd(n,"UPSERT ON INSERT"),jd(r,{...t,idxSelectors:!1,expectRows:!1})}function Jd(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)sa(i,"APPEND targets");lr(r.values,"APPEND values")}}function oA(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"),Jd(t,"INSERT")}function Kt(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 oi(e,t){let n=Gl[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&$l(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${sr(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 ${sr(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 ${sr(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Kt(t.where))throw new Error(`UnsupportedError: APPLY ${sr(e)} execution does not support multiple-parent APPLY`)}function $l(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 Xd(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Kt(t.where))&&!Gl[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${sr(e)} public multiple-parent write is not connected`)}function cr(e){if(!Gl[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${sr(e)} internal prepared write is not available`)}function sr(e){return`Phase ${e.slice(5)}`}function aA(e,t){Kt(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"),Kl(e,t))}function Kl(e,t){if(Array.isArray(e)){for(let o of e)Kl(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&J("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&J("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&J("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&J("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&ne(n.name))&&J("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))Kl(o,t)}function Yd(e,t){lr(e,"child row selectors",t)}function lr(e,t,n=!1){if(Array.isArray(e)){for(let s of e)lr(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&J(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&J(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&J(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&ne(r.name))&&J(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&J(`qualified or parent field references in ${t}`),sa(l,t,n)}if(i==="FIELD_REF"&&sa(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))lr(s,t,n)}function sa(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}`)}var Te=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function Qd(e){Zd(e)}function Vl(e){if(kl(e).length>0)throw new Te("FULL_SCAN \u306E KLIKE / NOT KLIKE \u3092\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u307E\u305B\u3093\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044")}function Zd(e){switch(e.type){case"SELECT":pr(e);return;case"UNION":Hl(e);return;case"WITH":ef(e);return;case"EXPLAIN":Zd(e.query);return;case"CREATE_TEMP_TABLE":Wl(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":bn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!Kt(e.where)&&_e(e.where)){Bl(e.where),bn(e);return}if(sn(e)&&e.subtableCode)throw new Te("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&&_e(e.where)&&!uA(e,e.where)){Bl(e.where),bn(e);return}if(sn(e))throw new Te("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(sn(e)&&e.subtableCode)throw new Te("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&&_e(e.where)){Bl(e.where),bn(e);return}if(sn(e))throw new Te("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(sn(e))throw new Te("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(sn(e))throw new Te("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(sn(e))throw new Te("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(sn(e))throw new Te("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 Bl(e){ua(e,t=>{if(!nn(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new Te("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 Te("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 Wl(e){e.type==="SELECT"?pr(e):e.type==="UNION"?Hl(e):ef(e)}function Hl(e){Wl(e.left),pr(e.right)}function ef(e){if(on(e)){pr(an(e));return}for(let t of e.ctes)t.query.type==="SELECT"?pr(t.query):t.query.type==="UNION"&&Hl(t.query);Wl(e.query)}function pr(e){if(lA(e),_e(e.where)&&!(Qe(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=wn(e,{allowUnresolvedVariables:!0});if(kl(n).length===0){bn(e);return}if(sA(e)){bn(e);return}throw new Te("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")}bn(e)}function sA(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 lA(e){ua(e,t=>{if(!nn(t))return;if(!la(e.where,t))throw new Te("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 Te("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 Te("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 bn(e){ca(e,t=>{t.type==="SELECT"&&pr(t)},!0)}function sn(e){let t=!1;return ca(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function uA(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 la(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return la(e.left,t)||la(e.right,t);case"NOT":case"GROUP":return la(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function ua(e,t){if(Array.isArray(e)){for(let r of e)ua(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&&cA(r)||ua(r,t)}function ca(e,t,n=!1){if(Array.isArray(e)){for(let i of e)ca(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))ca(i,t)}function cA(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var ai=class extends Error{constructor(){super("ArgumentError: PRIMARY_ORGANIZATION() \u306F DML \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093"),this.name="ArgumentError"}};function tf(e){let t=e.type==="EXPLAIN"?e.query:e;switch(t.type){case"UPDATE":case"DELETE":case"UPSERT":case"UPSERT_SELECT":case"INSERT_SELECT":if(pA(t))throw new ai;return;default:return}}function pA(e){let t=!1;return pa(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||dA(n.where)&&(t=!0)}),t}function dA(e){let t=!1;return pa(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}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;t(n);for(let r of Object.values(n))pa(r,t)}function ln(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 da(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 ln(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return ln(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 ln(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return ln(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return ln(e,t,3,3);case"REGEXP_REPLACE":return ln(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return ln(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return ln(e,t,0,0)}}var zl=1e4,Gt=zl,Z=e=>new Error(`ArgumentError: ${e}`),fA=e=>e.type==="VARIABLE",un=e=>e?.type==="STRING"&&e.fromVariable===!0;function EA(e){return e.type==="NUMBER"?Number(q(e)):e.value}function dr(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 Yl(e){let t=dr(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 mA(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(n).padStart(4,"0")}-${String(t.getUTCMonth()+1).padStart(2,"0")}-${String(t.getUTCDate()).padStart(2,"0")}`}function nf(e){let t=e.trim(),n=/^([+-]?\d+)\s+(day|days|month|months|year|years)$/i.exec(t);if(!n)throw/^\S+\s+(?:day|days|month|months|year|years)$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"):/^[+-]?\d+\s+\S+$/i.test(t)?Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let r=Number(n[1]);if(!Number.isSafeInteger(r))throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let i=n[2].toLowerCase(),o=i.startsWith("month")?"MONTH":i.startsWith("year")?"YEAR":"DAY";if(r===0)throw Z(`GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306B 0 ${o.toLowerCase()} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);return{coefficient:r,unit:o}}function si(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 li(e){let t=Ce(e.raw??String(e.value));if(t===null||t.scale>0)return null;if(t.sign===0)return 0;if(t.coefficient.length-t.scale>16)return null;let r=`${t.coefficient}${"0".repeat(-t.scale)}`;if(r.length===16&&r>"9007199254740991")return null;let i=Number(r)*t.sign;return Number.isSafeInteger(i)?i:null}function rf(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function fa(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 jl(e){return e.year*12+e.month-1}function of(e,t){if(t==="MONTH"&&e.day!==1)throw Z("GENERATE_SERIES \u306E month step \u3067\u306F start \u306B\u6708\u521D\uFF08YYYY-MM-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(t==="YEAR"&&(e.month!==1||e.day!==1))throw Z("GENERATE_SERIES \u306E year step \u3067\u306F start \u306B\u5E74\u521D\uFF08YYYY-01-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}function RA(e,t,n){let r=Yl(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=Yl(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return fa(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=jl(t)+(n.coefficient<0&&t.day!==1?1:0);return fa(jl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return fa(e.year,a,n.coefficient)}function af(e,t,n){if(e<1||e>9999)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-${String(n).padStart(2,"0")}`}function gA(e){let t=Math.floor(e/12),n=e-t*12+1;return af(t,n,1)}function sf(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(y=>EA(y));["start","stop","step"].forEach((y,S)=>{if(t[S]==="")throw Z(`GENERATE_SERIES \u306E ${y} \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"?dr(n):null,u=typeof r=="string"?dr(r):null,f=typeof n=="string"&&/^\d{4}-/.test(n),c=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(rf))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||u||f||c||typeof n=="string"&&typeof r=="string"&&!(un(o)&&un(a)&&si(n)!==null&&si(r)!==null)){if(!l||!u)throw Z(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 Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let y=i===void 0?{coefficient:1,unit:"DAY"}:nf(i);return of(l,y.unit),{kind:"DATE",start:n,stop:r,step:y.coefficient,dateUnit:y.unit,rowCount:RA(l,u,y)}}let p=o.type==="NUMBER"?li(o):un(o)?si(n):null,d=a.type==="NUMBER"?li(a):un(a)?si(r):null;if(p===null||d===null)throw(o.type==="NUMBER"||un(o))&&(a.type==="NUMBER"||un(a))?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=i===void 0?1:s?.type==="NUMBER"?li(s):un(s)?si(i):null;if(E===null)throw s?.type==="NUMBER"||un(s)?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let m=p,R=d,g=E;if(g===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:m,stop:R,step:g,rowCount:fa(m,R,g)}}function yA(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(e.args.some(fA)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw Z(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&li(o)===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(i<2&&o?.type==="STRING"){if(rf(o.value))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(/^\d{4}-/.test(o.value)&&dr(o.value)===null)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}});let n=e.args[2];if(n?.type==="NUMBER"){let r=li(n);if(r===null)throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(r===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=nf(n.value),i=e.args[0];if(i?.type==="STRING"){let o=dr(i.value);o&&of(o,r.unit)}}return null}let t=sf(e);if(t.rowCount>Gt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Gt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function lf(e){let t=n=>{if(n===null||typeof n!="object")return;if(Array.isArray(n)){n.forEach(t);return}let r=n;if(r.type==="WITH"){let i=0,o=!0;for(let a of r.ctes)if(a.query.type==="GENERATE_SERIES"){let s=yA(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>Gt)throw Z(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${Gt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Ea(e){let t=sf(e);if(t.rowCount>Gt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Gt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let n=[];if(t.kind==="INTEGER"){let r=t.start;for(let i=0;i<t.rowCount;i++)if(n.push(String(r)),i+1<t.rowCount){let o=r+t.step;if(!Number.isSafeInteger(o))throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");r=o}}else{let r=dr(t.start);if(t.dateUnit==="MONTH"){let i=jl(r);for(let o=0;o<t.rowCount;o++)n.push(gA(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(af(r.year+i*t.step,1,1));else{let i=Yl(t.start);for(let o=0;o<t.rowCount;o++)n.push(mA(i+o*t.step))}}return{...t,values:n}}function et(e){hA(e),tf(e),Qd(e),lf(e)}function hA(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;da(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var AA=/^(\s*)--\s*@ksql\s+([^:\s]+)\s*:\s*(.*)$/i;function ma(e){let t={name:null,dependsOn:[],timeout:null,dialect:0},n=[],r=new Set,i=!1,o=e.charCodeAt(0)===65279?1:0,a=o;for(;o<e.length;){let s=IA(e,o),l=e.slice(o,s.contentEnd);if(!/^\s*--/.test(l))break;a=s.next;let u=AA.exec(l);if(u){i=!0;let f=u[2],c=f.toLowerCase(),p=u[3],d=p.indexOf("#"),E=d<0?p:p.slice(0,d),m=E.match(/^\s*/)?.[0].length??0,R=E.trim(),g=o+u.index+u[0].length-p.length+m;SA(c)?r.has(c)?n.push(je(e,g,{severity:"warning",code:ue.HEADER_DUPLICATE_KEY,message:`Duplicate @ksql header key "${c}" was ignored; the first value is retained.`})):(r.add(c),TA(t,c,R,e,g,n)):n.push(je(e,g,{severity:"warning",code:ue.HEADER_UNKNOWN_KEY,message:`Unknown @ksql header key "${f}" was ignored.`}))}o=s.next}return{meta:t,diagnostics:n,hasDirectives:i,headerEnd:a}}function SA(e){return e==="name"||e==="depends_on"||e==="timeout"||e==="dialect"}function TA(e,t,n,r,i,o){if(t==="name"){n?e.name=n:o.push(je(r,i,{severity:"error",code:ue.HEADER_INVALID_NAME,message:"@ksql name must not be empty."}));return}if(t==="depends_on"){let a=n.split(",").map(s=>s.trim());!n||a.some(s=>!s)?o.push(je(r,i,{severity:"error",code:ue.HEADER_INVALID_DEPENDS_ON,message:"@ksql depends_on must be a comma-separated list without empty items."})):e.dependsOn=a;return}if(t==="timeout"){!/^[1-9]\d*$/.test(n)||!Number.isSafeInteger(Number(n))?o.push(je(r,i,{severity:"error",code:ue.HEADER_INVALID_TIMEOUT,message:"@ksql timeout must be a positive integer."})):e.timeout=Number(n);return}n!=="0"&&n!=="1"?o.push(je(r,i,{severity:"error",code:ue.HEADER_INVALID_DIALECT,message:"@ksql dialect must be 0 or 1."})):e.dialect=Number(n)}function IA(e,t){let n=t;for(;n<e.length&&e[n]!=="\r"&&e[n]!==`
6
+ `;)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 Fe("\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 gl(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Cy(t)}function od(e){let t=e.codePointAt(0);return gl(e)||t>=48&&t<=57}function nr(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Cy(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Py=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Oy(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 Ce(e){let t=Py.exec(e.trim());if(t===null)return null;let n=Oy(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 hl(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 ad(e){let t=Ce(e);return t===null?null:hl(t)}function Ly(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 Ko(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Ly(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Go(e,t){let n=Ce(e),r=Ce(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return Ko(n,r)}var Le="__NO_FROM__";function $o(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function rr(e){return e.windowKind==="AGGREGATE"}function Bo(e){return e.windowKind==="VALUE"}function Pe(e){return{type:"NUMBER",value:Number(e),raw:e}}function q(e){let t=e.raw??String(e.value);return ad(t)??t}function sd(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 _y(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=_y(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 ld(e){return ee(e).type!=="NONE"}function ud(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 d={...l,field:s};return r.set(d.canonicalId,d),d},o=n.allItems.map(i).filter((s,l,u)=>u.findIndex(d=>d.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}var Vo=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],Tl="\0as-of:";function Hr(e){return`${Tl}${e}`}function ir(e){if(!e.startsWith(Tl))return null;let t=e.slice(Tl.length);return Yr(t)?t:null}function Yr(e){return Vo.includes(e)}function Il(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=Al(r,"year"),o=Al(r,"month"),a=Al(r,"day"),s=`${Sl(i)}-${Wo(o)}-${Wo(a)}`,l=`${Sl(i)}-${Wo(o)}-01`,u=o===12?i+1:i,d=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${Sl(u)}-${Wo(d)}-01`}}}function Al(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 Wo(e){return String(e).padStart(2,"0")}function Sl(e){return String(e).padStart(4,"0")}function Ho(e){return`'${e.replace(/'/g,"''")}'`}function or(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 bl(e);let n=`${or(e.left)}${e.op}${or(e.right)}`;return t?n:`(${n})`}function cd(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return bl(e.expr);if(e.type==="AGG_FIELD")return wt(e.expr);if(e.type==="ARITH_FIELD")return or(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return wl(e.expr)}function dd(e){switch(e.type){case"STRING":return Ho(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=>Ho(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(dd).join(",")})`;case"ARITH_VALUE":return or(e.expr);case"CASE_VALUE":return wl(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function jr(e){switch(e.type){case"BINARY":return`${cd(e.left)} ${e.op.replace("_"," ")} ${dd(e.right)}`;case"NULL_CHECK":return`${cd(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${jr(e.left)} ${e.op} ${jr(e.right)})`;case"NOT":return`NOT (${jr(e.expr)})`;case"GROUP":return`(${jr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function pd(e){return e.type==="ARRAY"?`[${e.elements.map(t=>Ho(t.value)).join(",")}]`:e.type==="AGG_REF"?ie(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?wt(e):e.type==="FIELD_REF"||e.type==="ARITH"?or(e):Cn(e)}function wl(e){let t=e.branches.map(r=>`WHEN ${jr(r.condition)} THEN ${pd(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${pd(e.elseResult)}`;return`CASE ${t}${n} END`}function vy(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"?wt(e):Cn(e)}function bl(e){return`${e.func}(${e.args.map(vy).join(",")})`}function Cn(e){switch(e.type){case"STRING":return Ho(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 bl(e);case"CASE_WHEN":return wl(e);case"SCALAR_ARITH":return`(${Cn(e.left)}${e.op}${Cn(e.right)})`;case"CONCAT_OP":return`(${Cn(e.left)}||${Cn(e.right)})`}}function Dy(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?or(e,!0):Cn(e)}function ie(e,t,n){let r=Dy(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function wt(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}`:`${wt(e.left)}${e.op}${wt(e.right)}`}var fd=20,Nl=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"}),md=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),zr=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"}),bC=Object.freeze(Object.values(zr).filter(e=>e!==void 0)),xy=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Uy=new Set(xy);function My(e){return Uy.has(e)}var Cl=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),qr=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function Ed(e){return qr[e]!==void 0}var ky=Object.freeze([...Uo]),Fy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Ky=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Gy(e){return Fy.has(e)}function $y(e){return Ky.has(e)}function By(e){return Number.isInteger(e)&&e>=1&&e<=31}var NC=Object.freeze(Array.from(new Set([...Object.keys(Nl),...md,...Object.keys(zr),...Object.keys(Cl),...Object.keys(qr),...ky,"IF"]))),Wy=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 Vy(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Wy.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(`
7
+ `),rn=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(!Yr(o))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${Vo.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>fd)throw new T(`batch exceeds ${fd} 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=qr[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=qr[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}=bt(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}=bt(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 v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new T(`IMPORT subtable ${b} contains duplicate child declarations.`,this.prev());let P;if(this.isSoftKeyword("ROW")){this.advance();for(let k of["ID","SOURCE"]){if(!this.isSoftKeyword(k))throw new T("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}P=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:b,children:v,...P?{rowIdSourceHeader:P}:{}})}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(),d,c=!0,p;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new T("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let b=this.parseIdentifier().toUpperCase();if(b!=="UTF8"&&b!=="SJIS")throw new T("ENCODING must be UTF8 or SJIS.",this.prev());d=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("("),p=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new T("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Le||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",m=!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(),m=!0}}let R,g;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()}g=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(R=this.parseOnDuplicate());let y;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("("),y=this.parseIdentList(),this.expect(")"),new Set(y).size!==y.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(y)throw new T("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!g)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(!y)throw new T("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let b=new Set(y);for(let v of A){if(!v.rowIdSourceHeader)throw new T(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!b.has(v.subtableCode))throw new T(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of b)if(!A.some(P=>P.subtableCode===v))throw new T(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(y)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(!g)throw new T("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(R)throw new T("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(g)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:d,hasHeader:c,mappingMode:E,ignoreUnknownColumns:m,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:g}:{},...y?{replaceSubtables:y}:{},...R?{keyFields:R}:{},...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}=bt(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 p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:c,children:p})}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 d={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...u?{errorTable:u}:{}};return this.assertValidateExpressions(d,t),d}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new T("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new T("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.peek(),n=this.isSoftKeyword("WARN");n&&(this.requireDialect1(t),this.advance());let r=this.parseAssertCondition(),i=this.parseFlowMessage();return{type:"ASSERT",...r,...n?{warn:!0}:{},...i!==void 0?{message:i}:{}}}parseExit(){let t=this.advance();if(this.requireDialect1(t),!this.isSoftKeyword("SUCCESS"))throw new T("EXIT \u306E\u5F8C\u306B\u306F SUCCESS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.peek().kind!=="IF"&&!this.isSoftKeyword("IF"))throw new T("EXIT SUCCESS \u306E\u5F8C\u306B\u306F IF \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=this.parseAssertCondition();if(!this.consume(","))throw new T("EXIT SUCCESS IF \u306B\u306F\u672B\u5C3E\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u6587\u5B57\u5217\u304C\u5FC5\u8981\u3067\u3059",this.peek());let r=this.expect("STRING","EXIT SUCCESS IF \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return{type:"EXIT",...n,message:r.value}}parseAssertCondition(){let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new T("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseFlowMessage(){if(this.consume(","))return this.requireDialect1(this.prev()),this.expect("STRING","ASSERT \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}requireDialect1(t){if(!this.capabilities.dialect1)throw new T("\u3053\u306E\u69CB\u6587\u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t)}finishVariableReference(t){let n={type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(this.peek().kind!=="("||!this.capabilities.dialect1)return n;let r=t.value.slice(1).toUpperCase();if(!Yr(r))throw new T(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${Vo.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:Hr(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&&Vy(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:Le},l=a?this.parseJoins():[],u=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,d=[],c,p=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new T("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?c=this.parseGroupingSetsClause():this.isRollupStart()?c=this.parseRollupClause():this.isCubeStart()?c=this.parseCubeClause():d=this.parseGroupByKeys(),c&&this.peek().kind===",")throw new T("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(p=this.parseWhereExpr("HAVING"))}let 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 m=this.consume("LIMIT")?this.parseUnsignedInt():null,R=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,p,d,c),{type:"SELECT",distinct:n,columns:i,...o.length>0?{hiddenWindows:o}:{},from:s,joins:l,where:u,groupBy:d,...c?{grouping:c}:{},having:p,orderMode:f,orderBy:E,limit:m,offset:R}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,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 p=this.parseRecursiveCteCandidate(o);s=p.query,l=p.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let d=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(d&&!l)throw new T("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:d},this.validateRecursiveCte(o,a,l),r++,r>1))throw new T("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new T("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let 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(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD")||a.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD"))throw new T("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new T("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new T("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(d=>d===t).length!==1)throw new T("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new T("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let u=n??o.columns.map(d=>this.selectColumnOutputName(d));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(Pe(`${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=ir(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 Cl[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(zr[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(Cl[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"?Pe(`-${q(n)}`):{type:"AGG_ARITH",left:Pe("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Pe(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),zr[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=d=>{if(Array.isArray(d)){d.forEach(a);return}if(d===null||typeof d!="object")return;let c=d;if(!(c.type==="SELECT"||c.type==="SCALAR_SUBQUERY")){if(c.type==="AGG_GROUP_KEY"){o.push(d);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(d=>d.type==="FIELD_NAME").map(d=>d.name));for(let d of o){let c=this.aggregateGroupKeyDisplay(d);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(d)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new T("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek(),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 Pe(`${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:Pe("0"),op:"-",right:i}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Pe(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 Pe(`+${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"?Pe(`-${q(r)}`):{type:"ARITH",left:Pe("0"),op:"-",right:r}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let n=this.peek();if(n.kind==="NUMBER")return this.advance(),Pe(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=Nl[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Nl[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(md.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=Hy(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 zr[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(!My(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}=bt(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 Pe(`+${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(!Gy(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(!$y(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(!By(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(Ed(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:qr[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(Pe(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(Pe(`${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=sd(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}=bt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let d=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new T("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new T("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let c=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:d,...c,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let d=this.parseInsertRow(i.length,!0);this.expect(")"),o.push(d)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new T("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let 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}=bt(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(),p=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),E=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:c,keyFields:p,...f,...E}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length,!1)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let u=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new T("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...u,...d}}parseOnDuplicate(){if(this.capabilities.dialect1&&this.consumeSoftKeyword("KEY")){this.expect("(","KEY \u306E\u5F8C\u306B\u306F (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentList();if(this.expect(")"),n.length===0)throw new T("KEY \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return n}if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new T("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new T("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}parseMergeAsUpsert(){let t=this.advance();this.expect("INTO","MERGE \u306E\u5F8C\u306B\u306F INTO \u304C\u5FC5\u8981\u3067\u3059"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=bt(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 d=this.parseMergeQualifiedField("MERGE \u306E ON \u5DE6\u8FBA\u306F targetAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(!this.consume("="))throw new T("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\uFF08t.key = s.key\uFF09\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u3084\u975E\u7B49\u5024\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let c=this.parseMergeQualifiedField("MERGE \u306E ON \u53F3\u8FBA\u306F sourceAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(d.alias.toLowerCase()!==o.toLowerCase()||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 p=null,f=null,E=null;for(;this.peek().kind==="WHEN";){let I=this.advance();if(this.consume("NOT")){if(this.expectSoftKeyword("MATCHED","WHEN NOT \u306E\u5F8C\u306B\u306F MATCHED \u304C\u5FC5\u8981\u3067\u3059"),f!==null)throw new T("WHEN NOT MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);if(this.expect("THEN","WHEN NOT MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("INSERT","WHEN NOT MATCHED THEN \u306E\u5F8C\u306B\u306F INSERT \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT \u306B\u306F\u5217\u30EA\u30B9\u30C8\u304C\u5FC5\u8981\u3067\u3059"),f=this.parseIdentList(),this.expect(")"),this.expect("VALUES","MERGE INSERT \u306E\u5217\u30EA\u30B9\u30C8\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT VALUES \u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),E=this.parseMergeValueList(),this.expect(")"),f.length!==E.length)throw new T("MERGE INSERT \u306E\u5217\u6570\u3068 VALUES \u306E\u5024\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",I)}else{if(this.expectSoftKeyword("MATCHED","WHEN \u306E\u5F8C\u306B\u306F MATCHED \u307E\u305F\u306F NOT MATCHED \u304C\u5FC5\u8981\u3067\u3059"),p!==null)throw new T("WHEN MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);this.expect("THEN","WHEN MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("UPDATE","WHEN MATCHED THEN \u306E\u5F8C\u306B\u306F UPDATE \u304C\u5FC5\u8981\u3067\u3059"),this.expect("SET","WHEN MATCHED THEN UPDATE \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059"),p=this.parseMergeAssignments(o)}}if(p===null||f===null||E===null)throw new T("WHEN MATCHED / WHEN NOT MATCHED \u306E\u4E21\u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u66F4\u65B0\u306E\u307F\u306F UPDATE ... FROM\u3001\u633F\u5165\u306E\u307F\u306F INSERT ... SELECT \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(!f.some(I=>I.toLowerCase()===d.field.toLowerCase()))throw new T(`MERGE \u306E ON \u30AD\u30FC ${d.field} \u306F INSERT \u5217\u30EA\u30B9\u30C8\u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044`,t);let m=new Map;f.forEach((I,b)=>m.set(I.toLowerCase(),E[b]));for(let I of p){let b=I.field.toLowerCase(),v=m.get(b);if(v!==void 0&&!this.mergeExpressionsEqual(v,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);v===void 0&&(f.push(I.field),E.push(I.value),m.set(b,I.value))}let R=E.map(I=>this.mergeValueToSelectColumn(I,u,t)),g=s.cteName!==null?{...s,alias:null}:{...s,alias:`APP${s.appId}${s.subtableCode?`$${s.subtableCode}`:""}`},y={type:"SELECT",distinct:!1,columns:R,from:g,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:y,keyFields:[d.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(Pe(`${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(Pe(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"&&Yr(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}=bt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(p=>p.value.type==="STRING_FUNC"))throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let p=this.parseTableRef();if(p.subtableCode)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(p.cteName!==null&&!p.cteName.startsWith("#"))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!p.alias)throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(p.alias.toLowerCase()===`app${n}`.toLowerCase())throw new T(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:p.appId,cteName:p.cteName,alias:p.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new T("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new T("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new T("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new T("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let p=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=p.targetJoinField,o.joinKeyField=p.joinKeyField,o.targetFilter=p.targetFilter}else{if(i.some(p=>p.value.type==="SOURCE_FIELD"))throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(p=>p.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(p.value)))throw new T("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new T("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let u=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new T("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&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&&(d.validateOnly||d.onErrorSkip))throw new T("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...c,...u,...d}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...c,...u,...d}:{type:"UPDATE",appId:n,assignments:i,where:s,...c,...u,...d}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new T("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new T("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new T("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length,!1)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new T("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new T("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new T("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new T("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new T("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new T("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new T("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new T("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new T("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new T("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new T("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new T("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new T("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new T("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new T("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new T("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new T("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new T(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((d,c)=>{let p=this.matchUpdateFromJoin(d,n,r);p!==null&&a.push({index:c,...p})}),a.length!==1)throw new T("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let d=0;d<o.length;d++){if(d!==s.index&&this.nodeContainsQualifiedField(o[d],r))throw new T("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(d!==s.index&&this.nodeContainsForeignQualifier(o[d],n))throw new T(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let u=o.filter((d,c)=>c!==s.index).reduce((d,c)=>d===null?c:{type:"LOGICAL",op:"AND",left:d,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(Ed(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new T("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new T("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=bt(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}=bt(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"||Fo.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 Hy(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 bt(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 Jr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Yy(e.op);if(t===null)throw new Ee(`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:Jr(e.left),right:Jr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Jr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Yy(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 Rd(e){return e.includes("%")||e.includes("_")}function Xr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function an(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function on(e){if(e===null)return!1;if(Xr(e))return!0;switch(e.type){case"LOGICAL":return on(e.left)||on(e.right);case"NOT":case"GROUP":return on(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function _e(e){if(e===null)return!1;if(an(e))return!0;switch(e.type){case"LOGICAL":return _e(e.left)||_e(e.right);case"NOT":case"GROUP":return _e(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function z(e){switch(e.type){case"BINARY":return jy(e);case"NULL_CHECK":return qy(e);case"LOGICAL":return Jy(e);case"NOT":return Xy(e);case"GROUP":return Qy(e);case"EXISTS":throw new Ee("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new Ee("internal error: BOOLEAN predicate reached kintone query conversion")}}function jy(e){if(Xr(e))throw new Ee("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=yd(e.left),n=zy(e.op),r=Zy(e.right,e.op);return`${t} ${n} ${r}`}function zy(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 qy(e){let t=yd(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Jy(e){let t=z(e.left),n=z(e.right),r=e.op==="AND"?"and":"or",i=gd(e.left)?`(${t})`:t,o=gd(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function Xy(e){return z(Jr(e.expr))}function Qy(e){return`(${z(e.expr)})`}function yd(e){if(e.type==="FUNC_FIELD")throw new Ee(`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 Ee("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 Ee("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 Ee("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 Ee("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return sh(e.field)}function Zy(e,t){switch(e.type){case"VARIABLE":throw new Ee(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new Ee(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return hd(e);case"NUMBER":return q(e);case"KINTONE_FUNC":return Ad(e);case"IN_LIST":return oh(e,t);case"ARITH_VALUE":throw new Ee("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 Ee("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 Ee("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new Ee("\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 Ee("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function hd(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Ad(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return eh(e)}function eh(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Qr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!rh(e.args.offset,e.args.offsetText)||!th.has(e.args.unit)?Qr():`${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&&!nh.has(e.args.weekday)?Qr():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"||!ih(e.args.day)?Qr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Qr()}var th=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),nh=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function rh(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function ih(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Qr(){throw new Ee("internal error: invalid relative date function AST reached kintone query conversion")}function oh(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new Ee("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return ah(e.values),`(${e.values.map(r=>r.type==="STRING"?hd(r):r.type==="NUMBER"?q(r):Ad(r)).join(",")})`}function ah(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Ee(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function sh(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function gd(e){return e.type==="LOGICAL"}var Ee=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};var Sd=Symbol("ksql.groupingRowMeta"),Td=new WeakMap;function Pl(e,t){return Object.defineProperty(e,Sd,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Ol(e){return e[Sd]}function lh(e){return Ol(e)?.includedCanonicalIds}function Id(e,t){Td.set(e,t)}function Pn(e,t){let n=lh(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Td.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var Yo=["$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 jo(e){return e.startsWith("_")||e.startsWith("$")}var uh=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function _l(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(_l);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"?uh.test(t.field):Object.values(t).some(_l)}function ch(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 he(e)||_l(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var ph=["_pid","_rid","_idx"];function Ll(e){return[...new Set(e)]}function dh(e){switch(e.kind){case"APP":return Ll([...e.fieldCodes,...Yo]);case"SUBTABLE":return Ll([...e.childFieldCodes,...ph,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Ll(e.columns)}}function wd(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:dh(t(r,i))}))}function bd(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 Nd(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Cd(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?bd(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:Nd(a,r.fieldCode)}}function fh(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Eh(e,t,n){let r=bd(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:Nd(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,u)=>fh(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=ch(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 Pd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Eh(r.name,t,n):{kind:"EXPRESSION"})}}function ve(e,t){let n=[...t];if(n.includes(e))return e;let r=e.toLowerCase();return n.find(i=>i===r)}var mh="B65_NON_GROUPED_DEPENDENCY",Dl=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 Zr(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 xl(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return Zr(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?Zr(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function Ul(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function Ld(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function _d(e){return e.type==="WINDOW_COL"}function Rh(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function sn(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(d=>sn(d,t));return u.some(d=>d===null)?null:`[${u.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||Ul(n))return null;if(r==="GROUP"&&n.expr!==void 0)return sn(n.expr,t);let i=typeof r=="string"?Dl.get(r):void 0;if(i!==void 0)return sn(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:${Rh(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=xl(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 d=sn(n[u],t);if(d===null)return null;s.push(`${u}=${d}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function gh(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function yh(e){let t=new Map;for(let n of e){let r=gh(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function Ml(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var hh=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function zo(e){if(e&&typeof e=="object"){let t=e,n=xl(t);if(n!==null)return Ml(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"?Dl.get(t.type):void 0;if(i!==void 0){let a=zo(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Od(e,t,n,r){let i=n==="WILDCARD"?"wildcard":Ml(n),o=zo(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=${mh})`)}function ln(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)ln(a,t);return}let n=e;if(n.hiddenWindowRef===!0||Ul(n)||Ld(n)||_d(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 Od(t.clause,t.expression,"WILDCARD",t.policy);let r=xl(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&hh.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=ve(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 d=new Set(t.resolvingAliases);d.add(l),ln(u[0],{...t,resolvingAliases:d});return}}let a=sn(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 Od(t.clause,t.expression,r,t.policy);return}let i=sn(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?Dl.get(n.type):void 0;if(o!==void 0){ln(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||ln(n[a],t)}function ei(e,t){let n=yh(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??Zr(o.key.name):o.key),...r.windowKind==="AGGREGATE"||r.windowKind==="VALUE"?[r.arg]:[]];for(let o of i)ln(o,{clause:"ORDER BY",expression:o,policy:t,aliases:n,resolvingAliases:new Set});continue}ln(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set})}e.having!==null&&ln(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"?Zr(r.key.name):r.key;ln(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function vl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(vl);let t=e;return Ul(t)||_d(t)?!1:Ld(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(vl)}function Kt(e){return ee(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&vl(t))}function Ah(e){return e.type==="FIELD_NAME"?Zr(e.name):e.expr}function vd(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=Cd(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 m=sn(e.columns[f.columnIndex],o);m!==null&&a.add(m);return}if(f.kind==="EXPRESSION"){let m=sn(Ah(i[E]),o);m!==null&&a.add(m)}});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(" / "),d=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:zo(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,p=i.every((f,E)=>f.type==="FIELD_NAME"&&t.items[E]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:u,groupingLabel:d,migrationSourceSql:c,migrationGroupingFields:p}}function qo(e){if(ee(e).type!=="NONE"||!Kt(e))return;let t={identities:new Set,resolveField:n=>`ast:${Ml(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};ei(e,t)}function Dd(e){return`FIELD:${e}`}var xd=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 kl(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function Et(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Et(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=>Et(r,t))}}function Qo(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Qo(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){Et(n.arg,t);return}Object.values(n).forEach(r=>Qo(r,t))}}function he(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(he);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(he)}function Sh(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"?he(e):!1}function Th(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${kl(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${kl(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Id(e,r.canonicalId)}function Fl(e){let t=ee(e),n=[];for(let i of e.columns)Et(i,n);Et(e.having,n),Et(e.orderBy,n);let r=[];if(Et(e.where,r),Et(e.joins,r),Qo(e.columns,r),Qo(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.");qo(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 Ud(e,t,n=()=>{}){Fl(e);let r=ee(e),i=[];for(let u of e.columns)Et(u,i);if(Et(e.having,i),Et(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=ud(e,t),a=new Set,s=[];for(let u of o.allItems){let d=u;if(!d.physical)throw new Error(`ArgumentError: grouping item ${kl(u.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let u of i)Th(u,t,a);ei(e,{identities:new Set([...a].map(Dd)),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(!Sh(u))continue;let d="alias"in u?u.alias:null;if(d!==null&&l.has(d))throw new Error(`ArgumentError: aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function Ih(e){return e.some(t=>t.type==="WINDOW_COL")}function Xe(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ee(e).type!=="NONE"||e.distinct||Ih(e.columns)||(e.hiddenWindows?.length??0)>0||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&he(t.expr)||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&he(t.expr)||t.type==="STRFUNC_COL"&&Gl(t.expr)||t.type==="SCALAR_VALUE_COL"&&sr(t.expr))||Gt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Gt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Md(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Xr(e);case"NULL_CHECK":return Md(e.field);case"LOGICAL":return Gt(e.left)||Gt(e.right);case"NOT":case"GROUP":return Gt(e.expr);case"EXISTS":return!0}}function Md(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function ea(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(wh).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:bh(e.columns),totalCount:!1}}function Kd(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Gt(e.where)&&n.push(z(e.where)),{app:t,query:n.join(" "),fields:[]}}function On(e,t,n){let i=$d(e,n).get(t);if(!i)return[];if(i.allFields)return[];let o=new Set(i.fields);return i.table.subtableCode&&o.add(i.table.subtableCode),o.size===0&&o.add("$id"),[...o]}function wh(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 bh(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="ARITH_COL"&&he(r.expr)||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(ta(r.field)):r.type==="ARITH_COL"?ti(r.expr,n):r.type==="STRFUNC_COL"?Kl(r.expr,n):r.type==="SCALAR_VALUE_COL"&&ar(r.expr,n);return[...new Set(n)]}function Nh(e,t){ti(e.left,t),ti(e.right,t)}function ti(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(ta(e.field)):e.type==="ARITH"?Nh(e,t):e.type==="STRING_FUNC"&&Kl(e,t)}function ta(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Kl(e,t){for(let n of e.args)Ch(n,t)}function Ch(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Zo(e,t);return}ar(e,t)}function ar(e,t){if(e.type==="FIELD"){t.push(ta(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Kl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){ar(e.left,t),ar(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)kd(n.result,t);e.elseResult&&kd(e.elseResult,t)}}function kd(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Zo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){ti(e,t);return}ar(e,t)}}function Zo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Ph(e.arg,t);return}e.type==="AGG_ARITH"&&(Zo(e.left,t),Zo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(ta(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function Ph(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?ti(e,t):ar(e,t)}function Gl(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:sr(t))}function sr(e){return e.type==="STRING_FUNC"?Gl(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?sr(e.left)||sr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>Fd(t.result))||e.elseResult!==null&&Fd(e.elseResult):!1}function Fd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:sr(e)}function Gd(e,t){let n=new Set,r=$d(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function $d(e,t,n){let r=[e.from,...e.joins.map(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 d=Lh(e.columns),c=Oh(e.columns),p=S=>{let w=a.get(S);w&&(w.allFields=!0,w.fields.clear())},f=()=>{for(let S of o)p(S)},E=()=>{for(let S of o)S.subtableCode&&p(S)},m=(S,w)=>{let O=a.get(S);if(!(!O||O.allFields)){if(S.subtableCode){if(w.startsWith("_p.")){let F=w.slice(3);F&&F!=="*"&&O.fields.add(F);return}return void 0}w&&O.fields.add(w)}},R=(S,w="select",O)=>{if(!S||S==="*")return;if(S==="_p.*"){E();return}if(S.endsWith(".*")){let W=S.slice(0,-2);if(!W){f();return}if(W==="_p"){E();return}let $=u.get(W);if($){p($);return}return}if(w==="groupBy"&&O!==void 0){if(O.kind==="PHYSICAL"){let W=r[O.sourceIndex];W&&(n||W.cteName===null)&&m(W,O.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&ve(S,d)!==void 0||(w==="orderBy"||w==="having"||w==="groupBy")&&_h(S))return;let F=S.indexOf(".");if(F>0){let W=S.slice(0,F),$=S.slice(F+1);if(W==="_p"){l&&m(l,`_p.${$}`);return}let U=u.get(W);if(U){m(U,$);return}if(n)return}n?n.unqualified.add(S):s&&m(s,S)},g=(S,w,O="select")=>{if(w){if(w==="_p"){l&&m(l,`_p.${S}`);return}let F=u.get(w);if(F){m(F,S);return}if(n)return}R(S,O)},y=(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;R(S.field,w);return}if(S.type==="ARITH"){y(S.left,w),y(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"&&v(S.arg,w);return}S.type==="AGG_ARITH"&&(A(S.left,w),A(S.right,w)),S.type==="AGG_GROUP_KEY"&&g(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 O of S.args)h(O,w)},b=(S,w="select")=>{if(S.type==="FIELD"){if(S.hiddenWindowRef)return;if(S.aggregateRef){A(S.aggregateRef,w);return}g(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"&&k(S,w)},v=(S,w="select")=>{if(S.type==="FIELD_REF"||S.type==="ARITH"){y(S,w);return}b(S,w)},P=(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"){y(S,w);return}b(S,w)}},k=(S,w="select")=>{for(let O of S.branches)L(O.condition,w),P(O.result,w);S.elseResult&&P(S.elseResult,w)},x=(S,w="select")=>{if(S.type==="FIELD"){if(S.aggregateRef){A(S.aggregateRef,w);return}g(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"){y(S.expr,w);return}S.type!=="GROUPING_FIELD"&&k(S.expr,w)},M=(S,w="select")=>{if(S.type==="ARITH_VALUE"){y(S.expr,w);return}if(S.type==="CASE_VALUE"){k(S.expr,w);return}},L=(S,w="where")=>{if(S)switch(S.type){case"BINARY":x(S.left,w),M(S.right,w);return;case"NULL_CHECK":x(S.field,w);return;case"LOGICAL":L(S.left,w),L(S.right,w);return;case"NOT":case"GROUP":L(S.expr,w);return;case"EXISTS":case"BOOLEAN":return}},_=(S,w)=>{if(S.type==="FIELD_NAME"){R(S.name,"groupBy",w);return}if(S.type==="ARITH_KEY"){y(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}R(S.name,w);return}if(S.type==="ARITH_KEY"){y(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":R(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"&&v(S.arg,"select");break;case"ARITH_AGG_COL":A(S.expr,"select");break;case"ARITH_COL":y(S.expr,"select");break;case"CASE_COL":k(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"&&v(S.arg,"select");for(let w of S.partitionBy)w.type==="FIELD"&&g(w.field,w.tableAlias,"select");for(let w of S.orderBy){let O=w.key.type==="FIELD_NAME"&&(w.key.aggregateRef!==void 0||c.has(w.key.name));N(w.key,O?"orderBy":"select")}break}for(let S of e.joins)S.type!=="CROSS"&&(g(S.on.left.field,S.on.left.tableAlias,"where"),g(S.on.right.field,S.on.right.tableAlias,"where"));L(e.where,"where");let C=ee(e);if(C.type==="PLAIN")C.allItems.forEach((S,w)=>_(S,t?.items[w]));else if(C.type==="GROUPING_SETS")for(let S of C.allItems)g(S.field,S.tableAlias,"select");L(e.having,"having");for(let S of e.orderBy)N(S.key);return a}function Oh(e){let t=new Set;for(let n of e)(n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL"||n.type==="ARITH_COL"&&he(n.expr)||n.type==="CASE_COL"&&he(n.expr)||n.type==="STRFUNC_COL"&&Gl(n.expr)||n.type==="SCALAR_VALUE_COL"&&sr(n.expr))&&(n.alias&&t.add(n.alias),n.type==="AGGREGATE"&&t.add(ie(n.func,n.distinct,n.arg)));return t}function Lh(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 _h(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function un(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||Xe(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||ld(n)||n.distinct?!1:!Kt(n)}function cn(e){let t=e.ctes[0].query,n=e.query,r=na(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 na(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Bd(e.left,t)};case"NULL_CHECK":return{...e,field:Bd(e.field,t)};case"LOGICAL":return{...e,left:na(e.left,t),right:na(e.right,t)};case"NOT":case"GROUP":return{...e,expr:na(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Bd(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var vh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Dh=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":Dh.has(e.fieldType)?t="option":vh.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function lr(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function ra(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}var Qe=["=","!=",">","<",">=","<="],xh=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Uh=new Set(Qe),Mh=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"])]]),kh=new Map([["TODAY",new Set(Qe)],["NOW",new Set(Qe)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Fh=["=","!=","in","not in"],Kh=new Map([["RECORD_NUMBER",new Set([...Qe,"in","not in"])],["__ID__",new Set([...Qe,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(Qe)],["UPDATED_TIME",new Set(Qe)],["DATE",new Set(Qe)],["TIME",new Set(Qe)],["DATETIME",new Set(Qe)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...Qe,"in","not in"])],["CALC",new Set([...Qe,"in","not in"])],["MULTI_LINE_TEXT",new Set(["like","not like"])],["RICH_TEXT",new Set(["like","not like"])],["CHECK_BOX",new Set(["in","not in"])],["RADIO_BUTTON",new Set(["in","not in"])],["DROP_DOWN",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])],["FILE",new Set(["like","not like"])],["USER_SELECT",new Set(["in","not in"])],["ORGANIZATION_SELECT",new Set(["in","not in"])],["GROUP_SELECT",new Set(["in","not in"])],["STATUS",new Set(Fh)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Gh=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"])]]),Bl=new Set(["RECORD_NUMBER","__ID__","CREATOR","MODIFIER","CREATED_TIME","UPDATED_TIME","DATE","TIME","DATETIME","SINGLE_LINE_TEXT","LINK","NUMBER","CALC","MULTI_LINE_TEXT","RICH_TEXT","RADIO_BUTTON","DROP_DOWN","STATUS","KSQL_STRING","KSQL_NUMBER","KSQL_BOOLEAN"]),Hd=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function oa(e){return Kh.get(e)??new Set}function Yd(e,t){let n=[],r=i=>{if(i.type==="BINARY"){if((i.op==="="||i.op==="!="||i.op==="<>")&&i.left.type==="FIELD"&&i.right.type==="STRING"&&i.right.value!==""){let o=t(i.left);if(o!==void 0&&o.compareMode==="option"&&Bl.has(o.fieldType)&&oa(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 we(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:ri(e,t)}function ri(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return $h(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?$l():Vh(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return $l();case"GROUP":return ri(e.expr,t);case"NOT":{let n=ri(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:zd(n.reasons)?oi({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=ri(e.left,t),r=ri(e.right,t);return Yh(e.op,n,r)}}}function $h(e,t,n,r){if(n.type==="KINTONE_FUNC"&&re(n.name))return Bh(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Wd(n))return Vd(e,t,n,r);if(n.type==="IN_LIST"){let d=n.values.filter(c=>c.type==="KINTONE_FUNC");if(d.length>0)return n.values.length===1&&d.length===1?Vd(e,t,d[0],r):ia("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",d[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,ii(e))}if(t.type!=="FIELD")return $l();let i=r(t);if(!i)return ur("WHERE_FIELD_UNRESOLVED",t.field,void 0,ii(e));let o=ii(e);if(!jd(i.fieldType,o))return ur("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Hh(i.fieldType,e))return ur("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=oa(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Wd(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 Wd(e){return e.type==="KINTONE_FUNC"&&wn.has(e.name)}function Vd(e,t,n,r){let i=ii(e),o=n.name;if(!wn.has(o)||t.type!=="FIELD")return ia("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Mh.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?ia("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):kh.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:ia("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function Bh(e,t,n,r){let i=ii(e),o=n.name;if(t.type!=="FIELD")return ni("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Wh(n)?Uh.has(i)?!xh.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?ni("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}]}:ni("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):ni("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):ni("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Wh(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 Vh(e,t,n){let r=n(e);return r?jd(r.fieldType,t)?!Bl.has(r.fieldType)&&!Hd.has(r.fieldType)?ur("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:ur("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):ur("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function jd(e,t){let n=Gh.get(e);return n===void 0||n.has(t)}function Hh(e,t){return Bl.has(e)?!0:Hd.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function ii(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 Yh(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?oi({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")?oi({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):oi({capability:"LOCAL_ONLY",reasons:r})}function $l(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function ur(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function ia(e,t,n,r,i){return oi({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function ni(e,t,n,r,i){return qd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function zd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&re(t.functionName))}function jh(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&wn.has(t.functionName))}function qd(e){if(e.capability==="EXACT_PUSHDOWN"||!zd(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&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 zh(e){if(e.capability==="EXACT_PUSHDOWN"||!jh(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&&wn.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 oi(e){return zh(qd(e))}function ai(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 aa(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function sa(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!ai(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function la(e){let t=e.raw??String(e.value),n=Ce(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=hl(n);return q(e)===o}var qh=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Jh=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Xh=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Qh=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function ua(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"?Xh.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?eA(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Zh(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"&&la(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&la(e.right)?"exact":"unsafe":Jh.has(r)?Wl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?Wl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Qh.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?ai(e.right.value)?"exact":"unsafe":r==="TIME"?aa(e.right.value)?"exact":"unsafe":sa(e.right.value)?"exact":"unsafe":qh.has(r)?!Wl(e)||i===void 0?"unsafe":e.right.type==="IN_LIST"&&e.right.values.every(o=>o.type==="STRING"&&i.has(o.value))?"exact":"unsafe":"unsafe"}function Jd(e,t){if(e.left.type!=="FIELD"||e.left.field==="$id"||!t(e.left))return!1;if(e.op==="IN"||e.op==="NOT_IN"){if(e.right.type!=="IN_LIST"||e.right.values.length===0)return!1;let n=e.right.values[0].type;return n!=="NUMBER"&&n!=="STRING"?!1:e.right.values.every(r=>r.type===n&&(r.type!=="STRING"||r.value!==""))}return e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="?!1:e.right.type==="NUMBER"||e.right.type==="STRING"&&e.right.value!==""}function Wl(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 Zh(e){let t=n=>n.type==="NUMBER"&&la(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 eA(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function Vl(e,t={}){return fa(e,t).condition}function fa(e,t={}){return ca(e,n=>tA(n,t))}function si(e,t={}){return pa(e,n=>Jd(n,r=>da(r,t)))}function ca(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=ca(e.left,t),r=ca(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 ca(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function pa(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=pa(e.left,t),r=pa(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return pa(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function tA(e,t){if(nA(e,t)||rA(e,t))return"exact";if(e.left.type!=="FIELD"||!da(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||we(e,i=>{if(!da(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ne({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":ua(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function nA(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!da(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function rA(e,t){return!iA(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function iA(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 da(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function li(e,t={}){let n=e!==null&&t.extractCondition!==!1?fa(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;cr(r,o);let a=new Set;return cr(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function Ln(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=li(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 p=fa(e.where,{...r,tableAlias:c.table.alias,fieldTypes:t.fieldTypesByApp?.get(c.table.appId),fieldOptions:t.fieldOptionsByApp?.get(c.table.appId)});p.condition!==null&&p.relation!==null&&(l.set(c.table.alias,p.condition),u.set(c.table.alias,p.relation))}let d=new Set(a.appliedKlikes);for(let c of l.values())cr(c,d);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:u,appliedKlikes:d,allKlikes:a.allKlikes}}function Hl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function cr(e,t){if(e!==null){if(an(e)){t.add(e);return}switch(e.type){case"LOGICAL":cr(e.left,t),cr(e.right,t);return;case"NOT":case"GROUP":cr(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var oA=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})}),zl=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})}),ui="v1";function J(e){throw new Error(`UnsupportedError: APPLY ${ui} scope does not support ${e}`)}function aA(e,t){let n=ui;ui=e;try{return t()}finally{ui=n}}function sA(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 fr(e,t){return aA(e,()=>lA(t,oA[e]))}function lA(e,t){let n=sA(e);if(n===null)return;if(n.type==="UPSERT"){cA(n,t);return}let r=n.applyBlocks;if(Yl(r),!t.multipleBlocks&&r.length!==1&&J("multiple APPLY blocks in this phase"),n.type==="INSERT"){pA(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"),dA(i.where,t.multipleParents),Qd(r,t)}function Qd(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||J(`${r.kind} in this phase`);Zd(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Ea(i,"APPEND targets");dr(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Xd(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")}dr(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Xd(r.selector.where,t.idxSelectors)}}}}function Zd(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 uA=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ef(e,t){if(Zd(e),e.targetKind==="MULTI_VALUE"){if(!uA.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 Yl(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${ui} scope allows only one block for table ${n.field}`);t.add(n.field)}}function cA(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??[];Yl(n),Yl(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&J("multiple APPLY blocks in this phase"),tf(n,"UPSERT ON INSERT"),Qd(r,{...t,idxSelectors:!1,expectRows:!1})}function tf(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)Ea(i,"APPEND targets");dr(r.values,"APPEND values")}}function pA(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"),tf(t,"INSERT")}function $t(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 ci(e,t){let n=zl[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&ql(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${pr(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 ${pr(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 ${pr(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!$t(t.where))throw new Error(`UnsupportedError: APPLY ${pr(e)} execution does not support multiple-parent APPLY`)}function ql(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 nf(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||$t(t.where))&&!zl[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${pr(e)} public multiple-parent write is not connected`)}function Er(e){if(!zl[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${pr(e)} internal prepared write is not available`)}function pr(e){return`Phase ${e.slice(5)}`}function dA(e,t){$t(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"),jl(e,t))}function jl(e,t){if(Array.isArray(e)){for(let o of e)jl(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))jl(o,t)}function Xd(e,t){dr(e,"child row selectors",t)}function dr(e,t,n=!1){if(Array.isArray(e)){for(let s of e)dr(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}`),Ea(l,t,n)}if(i==="FIELD_REF"&&Ea(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))dr(s,t,n)}function Ea(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}`)}var Ie=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function rf(e){of(e)}function Xl(e){if(Hl(e).length>0)throw new Ie("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 of(e){switch(e.type){case"SELECT":mr(e);return;case"UNION":Zl(e);return;case"WITH":af(e);return;case"EXPLAIN":of(e.query);return;case"CREATE_TEMP_TABLE":Ql(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":_n(e);return;case"UPDATE":if(e.applyBlocks?.length&&!$t(e.where)&&_e(e.where)){Jl(e.where),_n(e);return}if(pn(e)&&e.subtableCode)throw new Ie("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&&_e(e.where)&&!mA(e,e.where)){Jl(e.where),_n(e);return}if(pn(e))throw new Ie("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(pn(e)&&e.subtableCode)throw new Ie("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&&_e(e.where)){Jl(e.where),_n(e);return}if(pn(e))throw new Ie("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(pn(e))throw new Ie("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(pn(e))throw new Ie("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(pn(e))throw new Ie("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(pn(e))throw new Ie("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 Jl(e){Ra(e,t=>{if(!an(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new Ie("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 Ie("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 Ql(e){e.type==="SELECT"?mr(e):e.type==="UNION"?Zl(e):af(e)}function Zl(e){Ql(e.left),mr(e.right)}function af(e){if(un(e)){mr(cn(e));return}for(let t of e.ctes)t.query.type==="SELECT"?mr(t.query):t.query.type==="UNION"&&Zl(t.query);Ql(e.query)}function mr(e){if(EA(e),_e(e.where)&&!(Xe(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Ln(e,{allowUnresolvedVariables:!0});if(Hl(n).length===0){_n(e);return}if(fA(e)){_n(e);return}throw new Ie("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")}_n(e)}function fA(e){return e.where!==null&&Te(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 EA(e){Ra(e,t=>{if(!an(t))return;if(!ma(e.where,t))throw new Ie("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 Ie("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 Ie("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 _n(e){ga(e,t=>{t.type==="SELECT"&&mr(t)},!0)}function pn(e){let t=!1;return ga(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function mA(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 ma(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return ma(e.left,t)||ma(e.right,t);case"NOT":case"GROUP":return ma(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Ra(e,t){if(Array.isArray(e)){for(let r of e)Ra(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&&RA(r)||Ra(r,t)}function ga(e,t,n=!1){if(Array.isArray(e)){for(let i of e)ga(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))ga(i,t)}function RA(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var pi=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 sf(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(gA(t))throw new pi;return;default:return}}function gA(e){let t=!1;return ya(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||yA(n.where)&&(t=!0)}),t}function yA(e){let t=!1;return ya(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function ya(e,t){if(Array.isArray(e)){for(let r of e)ya(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))ya(r,t)}function dn(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 ha(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 dn(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return dn(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 dn(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return dn(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return dn(e,t,3,3);case"REGEXP_REPLACE":return dn(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return dn(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return dn(e,t,0,0)}}var nu=1e4,Bt=nu,te=e=>new Error(`ArgumentError: ${e}`),hA=e=>e.type==="VARIABLE",fn=e=>e?.type==="STRING"&&e.fromVariable===!0;function AA(e){return e.type==="NUMBER"?Number(q(e)):e.value}function Rr(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 eu(e){let t=Rr(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 SA(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 lf(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 di(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 fi(e){let t=Ce(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 uf(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Aa(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 tu(e){return e.year*12+e.month-1}function cf(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 TA(e,t,n){let r=eu(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=eu(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return Aa(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=tu(t)+(n.coefficient<0&&t.day!==1?1:0);return Aa(tu(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return Aa(e.year,a,n.coefficient)}function pf(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 IA(e){let t=Math.floor(e/12),n=e-t*12+1;return pf(t,n,1)}function df(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(y=>AA(y));["start","stop","step"].forEach((y,A)=>{if(t[A]==="")throw te(`GENERATE_SERIES \u306E ${y} \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"?Rr(n):null,u=typeof r=="string"?Rr(r):null,d=typeof n=="string"&&/^\d{4}-/.test(n),c=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(uf))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||d||c||typeof n=="string"&&typeof r=="string"&&!(fn(o)&&fn(a)&&di(n)!==null&&di(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 y=i===void 0?{coefficient:1,unit:"DAY"}:lf(i);return cf(l,y.unit),{kind:"DATE",start:n,stop:r,step:y.coefficient,dateUnit:y.unit,rowCount:TA(l,u,y)}}let p=o.type==="NUMBER"?fi(o):fn(o)?di(n):null,f=a.type==="NUMBER"?fi(a):fn(a)?di(r):null;if(p===null||f===null)throw(o.type==="NUMBER"||fn(o))&&(a.type==="NUMBER"||fn(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"?fi(s):fn(s)?di(i):null;if(E===null)throw s?.type==="NUMBER"||fn(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 m=p,R=f,g=E;if(g===0)throw te("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:m,stop:R,step:g,rowCount:Aa(m,R,g)}}function wA(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(hA)){["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"&&fi(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(uf(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)&&Rr(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=fi(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=lf(n.value),i=e.args[0];if(i?.type==="STRING"){let o=Rr(i.value);o&&cf(o,r.unit)}}return null}let t=df(e);if(t.rowCount>Bt)throw te(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Bt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function ff(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=wA(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>Bt)throw te(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${Bt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Sa(e){let t=df(e);if(t.rowCount>Bt)throw te(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Bt} \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=Rr(t.start);if(t.dateUnit==="MONTH"){let i=tu(r);for(let o=0;o<t.rowCount;o++)n.push(IA(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(pf(r.year+i*t.step,1,1));else{let i=eu(t.start);for(let o=0;o<t.rowCount;o++)n.push(SA(i+o*t.step))}}return{...t,values:n}}function Ze(e){bA(e),sf(e),rf(e),ff(e)}function bA(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;ha(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var NA=/^(\s*)--\s*@ksql\s+([^:\s]+)\s*:\s*(.*)$/i;function Ta(e){let t={name:null,dependsOn:[],timeout:null,dialect:0},n=[],r=new Set,i=!1,o=e.charCodeAt(0)===65279?1:0,a=o;for(;o<e.length;){let s=OA(e,o),l=e.slice(o,s.contentEnd);if(!/^\s*--/.test(l))break;a=s.next;let u=NA.exec(l);if(u){i=!0;let d=u[2],c=d.toLowerCase(),p=u[3],f=p.indexOf("#"),E=f<0?p:p.slice(0,f),m=E.match(/^\s*/)?.[0].length??0,R=E.trim(),g=o+u.index+u[0].length-p.length+m;CA(c)?r.has(c)?n.push(je(e,g,{severity:"warning",code:ce.HEADER_DUPLICATE_KEY,message:`Duplicate @ksql header key "${c}" was ignored; the first value is retained.`})):(r.add(c),PA(t,c,R,e,g,n)):n.push(je(e,g,{severity:"warning",code:ce.HEADER_UNKNOWN_KEY,message:`Unknown @ksql header key "${d}" was ignored.`}))}o=s.next}return{meta:t,diagnostics:n,hasDirectives:i,headerEnd:a}}function CA(e){return e==="name"||e==="depends_on"||e==="timeout"||e==="dialect"}function PA(e,t,n,r,i,o){if(t==="name"){n?e.name=n:o.push(je(r,i,{severity:"error",code:ce.HEADER_INVALID_NAME,message:"@ksql name must not be empty."}));return}if(t==="depends_on"){let a=n.split(",").map(s=>s.trim());!n||a.some(s=>!s)?o.push(je(r,i,{severity:"error",code:ce.HEADER_INVALID_DEPENDS_ON,message:"@ksql depends_on must be a comma-separated list without empty items."})):e.dependsOn=a;return}if(t==="timeout"){!/^[1-9]\d*$/.test(n)||!Number.isSafeInteger(Number(n))?o.push(je(r,i,{severity:"error",code:ce.HEADER_INVALID_TIMEOUT,message:"@ksql timeout must be a positive integer."})):e.timeout=Number(n);return}n!=="0"&&n!=="1"?o.push(je(r,i,{severity:"error",code:ce.HEADER_INVALID_DIALECT,message:"@ksql dialect must be 0 or 1."})):e.dialect=Number(n)}function OA(e,t){let n=t;for(;n<e.length&&e[n]!=="\r"&&e[n]!==`
8
8
  `;)n++;let r=n;return e[n]==="\r"&&e[n+1]===`
9
- `?n+=2:n<e.length&&n++,{contentEnd:r,next:n}}function cf(e,t={}){let n=ma(e),r=[...n.diagnostics],i=e,o=[],a=Qn(e).filter(l=>l.source==="logical"),s=wA(t.apps);for(let l of a)s?.has(l.logicalName)||r.push(je(e,l.start,{severity:"error",code:ue.LOGICAL_APP_UNRESOLVED,message:t.apps===void 0?`Logical app LAPP_${l.logicalName} requires parseScript option apps.`:`Logical app LAPP_${l.logicalName} is not defined in parseScript option apps.`}));if(a.length>0&&!r.some(l=>l.code===ue.LOGICAL_APP_UNRESOLVED)){let l=Lo(e,"flow",{resolveLogicalApp(u){return s.get(u)}});i=l.normalizedSql,o=l.rewriteSegments}if(a.length>0&&r.some(l=>l.code===ue.LOGICAL_APP_UNRESOLVED))return{meta:n.meta,statements:[],statementRanges:[],diagnostics:r};try{let l=new en(new Mt(i).tokenize(),{dialect1:n.meta.dialect===1,import:t.enableImport===!0}).parseStatementsWithRanges(),u=l.statementRanges.map(f=>({start:ql(f.start,o,"start"),end:ql(f.end,o,"end")}));return l.statements.forEach((f,c)=>{try{et(f)}catch(p){r.push(je(e,u[c]?.start??0,{severity:"error",code:ue.PARSE_ERROR,message:uf(p),statementIndex:c}))}}),{meta:n.meta,statements:l.statements,statementRanges:u,diagnostics:r}}catch(l){let u=l instanceof T?l.token.pos:l instanceof Fe?l.pos:0,f=ql(u,o,"start");return r.push(je(e,f,{severity:"error",code:l instanceof Fe?ue.LEX_ERROR:l instanceof T&&l.rawMessage.includes("-- @ksql dialect: 1")?ue.DIALECT1_REQUIRED:ue.PARSE_ERROR,message:l instanceof T?l.rawMessage:uf(l),statementIndex:bA(e,f)})),{meta:n.meta,statements:[],statementRanges:[],diagnostics:r}}}function wA(e){if(e===void 0)return;let t=new Map;for(let[n,r]of Object.entries(e))try{t.set(Xn(n),r)}catch{}return t}function uf(e){return e instanceof Error?e.message:String(e)}function bA(e,t){try{let n=new Mt(e.slice(0,t)).tokenize(),r=0,i=!1;for(let o of n){if(o.kind==="EOF")break;o.kind===";"?(i&&r++,i=!1):i=!0}return r}catch{return 0}}function ql(e,t,n){if(t.length===0)return e;for(let r of t){if(e<r.normalizedStart||e>r.normalizedEnd)continue;let i=r.normalizedEnd-r.normalizedStart,o=r.sourceEnd-r.sourceStart;return i===o?r.sourceStart+Math.min(e-r.normalizedStart,o):e===r.normalizedStart?r.sourceStart:e===r.normalizedEnd?r.sourceEnd:n==="start"?r.sourceStart:r.sourceEnd}return t[t.length-1].sourceEnd}function pf(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function mr(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function NA(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 Jl(e){return mr(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function df(e){return!Jl(e)&&(NA(e.type)||mr(e.type))}var ff=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Ke(e,t){for(let n of t)e.add(n)}function Ra(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"&&ff.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=>Ra(i,t)):Ra(r,t))}function ga(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"&&!ff.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=>ga(i,t)):ga(r,t))}function cn(e){let t=new Set;if(mr(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Ke(t,Er(e));break;case"UNION":Ke(t,mf(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Ke(t,cn(n.query));Ke(t,cn(e.query));break;case"CREATE_TEMP_TABLE":Ke(t,cn(e.query));break;default:break}return Ra(e)&&t.add("STATISTICAL_AGGREGATE"),ga(e)&&t.add("AGGREGATE"),t}function Ef(e){return cn(e).size>0}function mf(e){let t=e.left.type==="SELECT"?Er(e.left):mf(e.left);return Ke(t,Er(e.right)),e.all||t.add("DISTINCT"),t}function Er(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=ee(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&Ke(t,Er(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Ke(t,fr(i.condition));return Ke(t,fr(e.where)),Ke(t,fr(e.having)),Ra(e)&&t.add("STATISTICAL_AGGREGATE"),ga(e)&&t.add("AGGREGATE"),t}function fr(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")&&Ke(t,Er(e.right.query));break;case"LOGICAL":Ke(t,fr(e.left)),Ke(t,fr(e.right));break;case"NOT":case"GROUP":Ke(t,fr(e.expr));break;case"EXISTS":Ke(t,Er(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Rf(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function gf(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 ya=16,yf=64,le=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function ui(e,t,n){if(Array.isArray(e)){for(let r of e)ui(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))ui(a,t,n)}}var CA=new Set(["=","!=","<>",">","<",">=","<="]);function Xl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Xl(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(er(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&&CA.has(String(r.op));Xl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?u:o?n:!1)}}}function PA(e){let t=e.type==="EXPLAIN"?e.query:e;return mr(t.type)||t.type==="VALIDATE"}function Ql(e){if(Array.isArray(e)){for(let t of e)Ql(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&_l(e);for(let n of Object.values(t))Ql(n)}}function ci(e){if(e.length===0)throw new le("ArgumentError: SQL is empty.",0);if(e.forEach((c,p)=>{try{Ql(c)}catch(d){throw d instanceof Error?new le(d.message,p):d}try{ur("phase15b",c),et(c)}catch(d){throw d instanceof Te||d instanceof ai?new le(d.message,p):d instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(d.message)?new le(d.message,p):d}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let p=c==="SET_VARIABLE"?"SET":"DECLARE";throw new le(`ArgumentError: ${p} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let p=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new le(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,p)=>{let d=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&&d){let v=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 le(v,p)}let E=pf(c),m=[],R=[],g=new Set,y=new Set,S=new Set,A=[];Xl(c,A);let I=new Set;for(let v of A){let C=o.get(v.name);if(C===void 0)throw new le(`ParseError: variable @${v.name} is not defined before statement ${p+1}.`,p);if(C.kind==="scalar"&&v.kind==="array-in-list")throw new le(`ParseError: scalar variable @${v.name} cannot be used as IN @${v.name}; use IN (@${v.name}) instead.`,p);if(C.kind==="array"&&v.kind!=="array-in-list")throw new le(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,p);if(C.relativeDate&&PA(c))throw new le(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,p);if(C.relativeDate&&!v.relativeDateAllowed)throw new le(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(v.name)||(C.referencedBy.push(p),I.add(v.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new le(`ParseError: variable @${c.name} is already defined.`,p);if(o.set(c.name,{index:p,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>yf)throw new le(`ParseError: batch exceeds ${yf} variables.`,p)}c.type==="CREATE_TEMP_TABLE"?ui(c.query,g,y):c.type==="DROP_TEMP_TABLE"||ui(c,g,y);let b=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let v=new Set,C=new Set;ui(c.select,v,C),b=v.size>0&&C.size===0}for(let v of g){let C=t.get(v);if(C===void 0)throw new le(`ParseError: temp table ${v} is not defined in this batch.`,p);S.add(C)}if(d){let v=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(x=>x.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(x=>x.field)]:"fields"in c?c.fields:[],C=JSON.stringify(v),k=t.get(d);if(k===void 0){if(t.set(d,p),n.set(d,C),r.push(d),m.push(d),t.size>ya)throw new le(`ParseError: batch exceeds ${ya} temp tables.`,p)}else{if(n.get(d)!==C)throw new le(`ParseError: validation error table ${d} has a different payload schema.`,p);S.add(k)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new le(`ParseError: temp table ${c.name} is already defined.`,p);if(t.set(c.name,p),r.push(c.name),m.push(c.name),t.size>ya)throw new le(`ParseError: batch exceeds ${ya} temp tables.`,p)}if(c.type==="DROP_TEMP_TABLE"){let v=t.get(c.name);if(v===void 0)throw new le(`ParseError: temp table ${c.name} is not defined in this batch.`,p);S.add(v),R.push(c.name),t.delete(c.name)}i.push({index:p,statementType:E,isDml:Jl(c),isReadOnly:df(c),hasWhere:Rf(c),insertValuesCount:gf(c),appIds:[...y].sort((v,C)=>v-C),tempTablesCreated:m,tempTablesReferenced:[...g],tempTablesDropped:R,dependsOn:[...S].sort((v,C)=>v-C),tempOnlySource:b,targetAppId:mr(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:Ef(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),u=i.some(c=>c.requiresCompleteInput),f=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:f,warnings:f.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}function pn(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 OA(e,t){return e<t?-1:e>t?1:0}function hf(e){if(e==="")return{band:0};let t=Ce(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 LA(e,t){let n=hf(e),r=hf(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?vo(n.value,r.value):n.band===5&&r.band===5?pn(n.value,r.value):0}function Af(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 _A(e,t,n){let r=Af(e,n),i=Af(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=pn(r.normalizedId,i.normalizedId);return o!==0?o:pn(r.display,i.display)}function vA(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 Sf(e,t){let n=t.optionOrder??new Map,i=[...new Set(vA(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(Tf),i}function Tf(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:pn(e.label,t.label)}function DA(e,t,n){let r=Sf(e,n),i=Sf(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=Tf(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function ft(e,t,n){switch(n.compareMode){case"string":return pn(e,t);case"number":return LA(e,t);case"recordNumber":return _A(e,t,n.fieldType==="RECORD_NUMBER");case"option":return DA(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function $t(e,t,n,r=V("string")){let i=ft(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 If(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=Ce(o),l=Ce(a),u=s!==null&&l!==null?vo(s,l):OA(Number(o),Number(a));if(u!==0)return u}return pn(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function me(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(he(e,t,void 0,void 0,n));let r=me(e.left,t,n),i=me(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 De(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 he(e,t,n,r,i);case"CASE_WHEN":return ze(e,t,n,r,i);case"CONCAT_OP":return he({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r,i);case"SCALAR_ARITH":{let o=Number(De(e.left,t,n,r,i)),a=Number(De(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 Bt(e,t,n,r,i={}){switch(e.type){case"CASE_WHEN":return Cf(e,t,n,r,i);case"SCALAR_ARITH":{let o=Bt(e.left,t,n,r,i),a=Bt(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=Bt(e.left,t,n,r,i),a=Bt(e.right,t,n,r,i);return`${o??""}${a??""}`}default:return De(e,t,n,r,i)}}function ha(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 xA(e){return e>=55296&&e<=56319}function UA(e){return e>=56320&&e<=57343}function Sa(e,t){return t>0&&t<e.length&&xA(e.charCodeAt(t-1))&&UA(e.charCodeAt(t))}function wf(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 Sa(e,n)&&(n-=1),e.slice(0,n)}function MA(e,t){let n=Math.max(0,e.length-t);return Sa(e,n)&&(n+=1),e.slice(n)}function kA(e,t,n){let r=wf(t,e.length),i=wf(n,e.length);return i<=r?"":(Sa(e,r)&&(r+=1),Sa(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function FA(e,t){let n=e.repeat(Math.ceil(t/e.length));return eu(n,t)}var KA=200,pi=new Map;function GA(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=GA(t)+(n?"g":""),i=`${e}\0${r}`,o=pi.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(pi.size>=KA){let s=pi.keys().next().value;s!==void 0&&pi.delete(s)}return pi.set(i,a),a}function $A(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function BA(e){if(e===void 0)return 0;if(!/^\d+$/.test(e))throw new Error("ArgumentError: REGEXP_REPLACE occurrence must be a non-negative integer.");return Number(e)}function VA(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 f=Number(s+l);if(f>=1&&f<=n.length){i+=n[f-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 WA(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),f=a.slice(0,u);return VA(n,o,f,l?s:void 0)})}function he(e,t,n,r,i={}){da(e.func,e.args);let o=e.args.map(a=>QA(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 kA(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?"":MA(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=FA(l,s-a.length);return e.func==="LPAD"?u+a:a+u}case"GREATEST":case"LEAST":return If(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":{$A(o[2]);let a=BA(o[4]),s=Zl(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):WA(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,f)=>{l.has(u)||l.set(u,s[f])}),[...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 ha("round",Number(o[0]??"0"),Number(o[1]??"0"));case"FLOOR":return ha("floor",Number(o[0]??"0"),Number(o[1]??"0"));case"CEIL":return ha("ceil",Number(o[0]??"0"),Number(o[1]??"0"));case"TRUNCATE":return ha("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 JA(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 Aa(o[0])?String(tu(o[0])+1):"";case"QUARTER":return Aa(o[0])?String(Math.ceil(Number(o[0].slice(5,7))/3)):"";case"WEEK":return Aa(o[0])?String(Nf(o[0])):"";case"DATE_FORMAT":return YA(o[0]??"",o[1]??"");case"DATEDIFF":return jA(o[0]??"",o[1]??"");case"DATE_ADD":return zA(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return qA(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 di(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 Ta(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 Aa(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Ta(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 Ta(e).getUTCDay()}function bf(e){let t=Ta(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function HA(e){return bf(e).getUTCFullYear()}function Nf(e){let t=bf(e),n=t.getUTCFullYear(),r=Ta(`${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 YA(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=di(e),l=Aa(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(Nf(e)).padStart(2,"0"):"";case"%G":return l?String(HA(e)).padStart(4,"0"):"";default:return u}})}function jA(e,t){if(e.length<10||t.length<10)return"0";let n=di(e),r=di(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 zA(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}=di(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=c=>{let p=a.getUTCDate();a.setUTCDate(1),c();let d=new Date(a.getTime());d.setUTCMonth(d.getUTCMonth()+1),d.setUTCDate(0),a.setUTCDate(Math.min(p,d.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"),f=String(a.getUTCDate()).padStart(2,"0");return`${l}-${u}-${f}`}function qA(e){if(!e||e.length<10)return e;let{y:t,mo:n}=di(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 JA(e,t){if(/^-?\d+$/.test(t.trim()))return XA(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,f=i.toFixed(u),[c,p=""]=f.split(".");l>0&&(p=p.replace(/0+$/,""));let d=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=p?`${d}.${p}`:d;return n?E+"%":E}function XA(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 QA(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(fi(e,t)):e.type==="NUMBER"?q(e):String(De(e,t,n,r,i))}function fi(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[fe(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Be(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(fi(e.left,t)),r=Number(fi(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 ZA=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]),eS=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 tS(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 nS(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":ru(e.arg,t)}function bt(e,t){if(e.func==="CAST"){let n=e.args[1];return n?.type==="STRING"&&n.value==="NUMBER"?"number":"string"}return ZA.has(e.func)||eS.has(e.func)&&e.args.length>0&&e.args.every(n=>ru(n,t)==="number")?"number":"string"}function ru(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 bt(e,t);case"AGG_REF":return nS(e,t);case"FIELD":return nu(t?.(e));case"FIELD_REF":return nu(t?.(tS(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=>ru(a,t)==="number")?"number":"string"}default:return"string"}}function ce(e,t,n,r,i,o={}){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return rS(e,t,n,r,i,o);case"NULL_CHECK":return uS(e,t);case"LOGICAL":return cS(e,t,n,r,i,o);case"NOT":return!ce(e.expr,t,n,r,i,o);case"GROUP":return ce(e.expr,t,n,r,i,o);case"EXISTS":{let a=e.resolved;return e.not?!a:a}}}function rS(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=xf(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=oS(e.left,s,i);return iS(e.op,a,e.right,t,s,n,l,i,o)}function iS(e,t,n,r,i,o,a=V("string"),s,l={}){if(e==="IN"||e==="NOT_IN"){let f=null;if(n.type==="IN_LIST"&&(lS(n.values),f=new Set(n.values.map(p=>p.type==="NUMBER"?i==="NUMBER"?q(p):String(p.value):p.value))),n.type==="SUBQUERY_IN_LIST"&&(f=n.resolved),f===null)return e==="NOT_IN";let c=sS(t,f,i);return e==="IN"?c:!c}if(e==="LIKE"){let f=iu(n,r,o,void 0,l);return Df(t,f)}if(e==="NOT_LIKE"){let f=iu(n,r,o,void 0,l);return!Df(t,f)}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=iu(n,r,o,s,l);return $t(e,t,u,a)}function oS(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?te({fieldType:t}):V("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return V("number");if(e.type==="FUNC_FIELD")return V(bt(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(bt(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 Pf=new Set(["CHECK_BOX","MULTI_SELECT"]),Of=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),aS=new Set(["CREATOR","MODIFIER"]);function sS(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=>$t("=",e,a,o))}let i;if(Pf.has(n)||Of.has(n)||aS.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Pf.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Of.has(n)?!Array.isArray(i)||!i.every(Lf)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Lf(i)?t.has(i.code):r()}function Lf(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function lS(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}: ${Ut}`)}function uS(e,t){let n=xf(e.field,t);return e.not?n!=="":n===""}function cS(e,t,n,r,i,o={}){return e.op==="AND"?ce(e.left,t,n,r,i,o)&&ce(e.right,t,n,r,i,o):ce(e.left,t,n,r,i,o)||ce(e.right,t,n,r,i,o)}function xf(e,t,n,r,i={}){if(e.type==="FUNC_FIELD")return he(e.expr,t,void 0,void 0,i);if(e.type==="AGG_FIELD")return String(fi(e.expr,t));if(e.type==="ARITH_FIELD")return String(me(e.expr,t,i));if(e.type==="CASE_FIELD")return ze(e.expr,t,n,r,i);if(e.type==="GROUPING_FIELD")return nr(e.ref,t);if(e.aggregateRef){let a=e.aggregateRef;return Be(t,fe(a.func,a.distinct,a.arg))}let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Be(t,o)}function iu(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 pS(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"?he(e.expr,t,void 0,void 0,i):String(me(e.expr,t,i));case"CASE_VALUE":return ze(e.expr,t,n,r,i);case"ARRAY":return e.elements.map(o=>o.value).join(",")}}function ze(e,t,n,r,i={}){for(let o of e.branches)if(ce(o.condition,t,n,void 0,r,i))return vf(o.result,t,n,r,i);return e.elseResult!==null?vf(e.elseResult,t,n,r,i):""}function Cf(e,t,n,r,i={}){for(let o of e.branches)if(ce(o.condition,t,n,void 0,r,i))return _f(o.result,t,n,r,i);return e.elseResult===null?null:_f(e.elseResult,t,n,r,i)}function _f(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[fe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[It(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?me(e,t,i):Bt(e,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[fe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[It(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(me(e,t,i)):String(De(e,t,n,r,i))}function Uf(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 pS(e){throw ne(e)?new Error(`${e}: ${hn}`):Jn(e)?new Error(`${e}: ${Ut}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Ia=new Map,dS=200;function Df(e,t){if(!cd(t))return e.includes(t);let n=Ia.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"),Ia.size>=dS&&Ia.clear(),Ia.set(t,n)}return n.test(e)}function Rr(e){return kf(e)}function Mf(e){return kf(e.flatMap(t=>t.rules.map(n=>n.condition)))}function kf(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 xe("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 xe("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 xe(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function wa(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ce(a.condition,t,n))continue;let s=De(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function ou(e){if(tn(e))throw new oe("UPDATE / DELETE \u306E WHERE \u306B LIKE / NOT LIKE \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002LIKE \u306F kSQL \u306E\u610F\u5473\u8AD6\u306B\u5F93\u3063\u3066 JS \u3067\u8A55\u4FA1\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u304C\u3001\u89AA\u30EC\u30B3\u30FC\u30C9 DML \u306B\u306F JS \u8A55\u4FA1\u7D4C\u8DEF\u304C\u306A\u3044\u305F\u3081\u3001\u5B89\u5168\u4E0A\u62D2\u5426\u3057\u307E\u3057\u305F\u3002SELECT \u3067\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u3092\u78BA\u8A8D\u3057\u3001IN \u307E\u305F\u306F\u5B8C\u5168\u4E00\u81F4\u3067\u5BFE\u8C61\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}var fS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),ES=new Set(["CHECK_BOX","MULTI_SELECT"]);function mi(e,t=new Map,n={}){let r=e.values.map(i=>mS(e.fields,i,t,n));return yi(r,100).map(i=>({app:e.appId,records:i}))}function mS(e,t,n,r){let i={};return e.forEach((o,a)=>{let s=t[a];s.type==="CASE_VALUE"?i[o]={value:Vt(s.expr,{},n.get(o),r)}:i[o]={value:Nt(s,n.get(o))}}),i}function Ri(e){ou(e.where);let t=qf(e);return{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function gi(e,t,n=new Map){let r=RS(e.assignments,n);return yi(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function RS(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:Nt(i,t.get(r))});return n}function $f(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 Ca(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 au(e){ou(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Bf(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?gr(n,t):n.type==="STRING_FUNC"?su(n,t):n.type==="CASE_VALUE"&&Vf(n.expr,t);return qf(e).forEach(n=>t.add(n)),{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function Bf(e,t){Ei(e.left,t),Ei(e.right,t)}function Ei(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Bf(e,t):e.type==="STRING_FUNC"&&su(e,t)}function su(e,t){for(let n of e.args)gS(n,t)}function gS(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Na(e,t);return}gr(e,t)}function gr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){su(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){gr(e.left,t),gr(e.right,t);return}e.type==="CASE_WHEN"&&Vf(e,t)}function Na(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&yS(e.arg,t);return}e.type==="AGG_ARITH"&&(Na(e.left,t),Na(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function yS(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Ei(e,t):gr(e,t)}function Ff(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Na(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Ei(e,t);return}gr(e,t)}}function Vf(e,t){for(let n of e.branches)ba(n.condition,t),Ff(n.result,t);e.elseResult!==null&&Ff(e.elseResult,t)}function ba(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&Ei(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":ba(e.left,t),ba(e.right,t);break;case"NOT":case"GROUP":ba(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function lu(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=Wf(o),l={};for(let{field:u,value:f}of e.assignments)l[u]={value:uu(f,s,n.get(u),o,r)};return{id:a,record:l}});return yi(i,100).map(o=>({app:e.appId,records:o}))}function uu(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?pu(e,r):me(e,t,i));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(De(e,t,void 0,void 0,i));if(e.type==="STRING_FUNC")return he(e,t,void 0,void 0,i);if(e.type==="CASE_VALUE")return Vt(e.expr,t,n,i);if(e.type==="SOURCE_FIELD")throw new oe("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Nt(e,n)}function Pa(e,t,n,r={}){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return q(e);if(e.type==="ARITH")return String(me(e,t,r));if(e.type==="CASE_VALUE")return ze(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 hS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function cu(e,t,n=new Map,r={}){let i=t.map(({target:o,source:a})=>{let s=Number(o.$id?.value);if(!Number.isSafeInteger(s)||s<=0)throw new oe("UPDATE ... FROM \u306E\u5BFE\u8C61\u30EC\u30B3\u30FC\u30C9\u756A\u53F7\u304C\u4E0D\u6B63\u3067\u3059");let l=Wf(o),u={};for(let{field:f,value:c}of e.assignments){let p=n.get(f);if(c.type==="SOURCE_FIELD"){if(hS.has(p??""))throw new oe(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${p} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${f}\uFF09`);if(!Object.prototype.hasOwnProperty.call(a,c.field))throw new oe(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${c.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let d=a[c.field];if(typeof d!="string")throw new oe(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${c.field}\uFF09`);if((p==="NUMBER"||p==="CALC")&&d!==""&&!Number.isFinite(Number(d)))throw new oe(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${f} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${d}`);u[f]={value:Nt({type:"STRING",value:d},p)}}else{if(c.type==="STRING_FUNC")throw new oe("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");c.type==="ARITH"?u[f]={value:String(pu(c,o))}:c.type==="SCALAR_ARITH"||c.type==="CONCAT_OP"?u[f]={value:String(De(c,l,void 0,void 0,r))}:c.type==="CASE_VALUE"?u[f]={value:Vt(c.expr,l,p,r)}:u[f]={value:Nt(c,p)}}}return{id:s,record:u}});return yi(i,100).map(o=>({app:e.appId,records:o}))}function Wf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function pu(e,t){let n=Kf(e.left,t),r=Kf(e.right,t);switch(e.op){case"+":return n+r;case"-":return n-r;case"*":return n*r;case"/":if(r===0)throw new oe("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n/r;case"%":if(r===0)throw new oe("\u7B97\u8853\u5F0F\u3067\u30BC\u30ED\u9664\u7B97\u304C\u767A\u751F\u3057\u307E\u3057\u305F");return n%r}}function Kf(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML evaluation.`);if(e.type==="NUMBER")return e.value;if(e.type==="ARITH")return pu(e,t);if(e.type==="STRING_FUNC")throw new oe("UPDATE SET \u306E\u7B97\u8853\u5F0F\u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093");let n=t[e.field]?.value??"",r=Number(n);if(Number.isNaN(r))throw new oe(`\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9 "${e.field}" \u306E\u5024 "${n}" \u306F\u6570\u5024\u3067\u306F\u3042\u308A\u307E\u305B\u3093`);return r}function du(e){return ou(e.where),{app:e.appId,query:z(e.where),fields:["$id"],totalCount:!1}}function Hf(e,t){return yi(t,100).map(n=>({app:e,ids:n}))}function Yf(e){return fS.has(e??"")}function AS(e){return ES.has(e??"")}function SS(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 TS(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function jf(e,t){return Yf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):AS(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?SS(e):t==="DATE"?TS(e):e}function zf(e,t){return Yf(t)?e.map(n=>({code:n})):e}function Gf(e,t,n,r){if(e.type==="ARRAY")return zf(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"?he(e,t,void 0,void 0,r):e.type==="FIELD_REF"||e.type==="ARITH"?String(me(e,t,r)):String(De(e,t,void 0,void 0,r))}function qf(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Rr(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Vt(e,t,n,r={}){for(let i of e.branches)if(ce(i.condition,t,void 0,void 0,void 0,r))return Gf(i.result,t,n,r);return e.elseResult!==null?Gf(e.elseResult,t,n,r):""}function Nt(e,t){let n=fu(e,t);if(!n.ok)throw new oe(n.message);return n.value}function fu(e,t){try{return{ok:!0,value:IS(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function IS(e,t){switch(e.type){case"VARIABLE":throw new oe(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new oe(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return jf(e.value,t);case"NUMBER":return q(e);case"ARRAY":return zf(e.elements.map(n=>n.value),t);case"KINTONE_FUNC":throw new oe(`${e.name}() \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);case"IN_LIST":throw new oe("IN_LIST \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"ARITH_VALUE":throw new oe("\u7B97\u8853\u5F0F\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"CASE_VALUE":throw new oe("CASE WHEN \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SUBQUERY_IN_LIST":throw new oe("IN (SELECT ...) \u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new oe("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F INSERT / UPDATE \u306E\u5024\u3068\u3057\u3066\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function yi(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var oe=class extends Error{constructor(t){super(t),this.name="DmlConvertError"}};var Eu=new Set(["CHECK_BOX","MULTI_SELECT"]),wS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function hi(e){throw new Error(`ArgumentError: ${e}`)}function Jf(e,t,n){let r=bS(n.fieldType,e.field),i=NS(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let g of e.operations){let y=g.value;y!==""&&(g.kind==="ADD"?(s.has(y)||a.push(y),s.add(y)):l.add(y))}for(let g of s)l.has(g)&&hi(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(g)}.`);let u=i.filter(g=>!l.has(g)),f=a.filter(g=>!o.has(g)),c=[...u,...f],p=new Set(i.filter(g=>l.has(g))).size,d=new Set,E=new Set,m=e.operations.map(g=>{let y=g.kind==="ADD"?d:E,S=!y.has(g.value);return y.add(g.value),{kind:g.kind,value:g.value,changed:g.value!==""&&S&&(g.kind==="ADD"?!o.has(g.value):o.has(g.value))}}),R=Eu.has(r)?c:c.map(g=>({code:g}));return{field:e.field,fieldType:r,operations:m,postImageValue:R,addedValues:f.length,removedValues:p,changedValues:f.length+p}}function bS(e,t){return Eu.has(e)||wS.has(e)?e:hi(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function NS(e,t,n){if(!Array.isArray(e))return hi(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Eu.has(t)?typeof i!="string"?hi(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?hi(`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 gu(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 Wt(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)mu(s.field,null,r),CS(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&X(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(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(qd(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,f=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,f);for(let c of s.operations)if(c.kind==="PATCH"){for(let p of c.assignments)mu(p.field,s.field,r,f),Ru(p.value,s.field,r,f);c.selector.kind==="WHERE"&&Ru(c.selector.where,s.field,r,f)}else if(c.kind==="APPEND"){let p=new Set;for(let d of c.fields)p.has(d)&&X(`APPLY APPEND specifies child ${d} more than once.`),p.add(d),mu(d,s.field,r,f)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&Ru(c.selector.where,s.field,r,f)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function CS(e,t){Ai(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 mu(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 Ru(e,t,n,r){Ai(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 Oa(e,t){let n=Wt(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)Ai(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function La(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=nE(i?.value);return n}function Qf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Wt(t,r),o=Au(n.$id?.value,"APPLY snapshot $id"),a=gu(t);return o!==a&&X(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),eE(t,n,i,o,e.evaluationContext)}function Zf(e,t,n,r=Wt(e,n),i={}){let o=new Set;return t.map(a=>{let s=Au(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&X(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),eE(e,a,r,s,i)})}function eE(e,t,n,r,i={}){let o=Au(t.$revision?.value,"APPLY snapshot $revision"),a=[],s=[];for(let c of e.applyBlocks){if(c.targetKind==="MULTI_VALUE"){let U=n.targetMultiValueFields.get(c.field);U||X(`APPLY multi-value metadata for ${c.field} is missing.`),s.push(Jf(c,t[c.field]?.value,U));continue}let p=n.childrenByTable.get(c.field),d=DS(t,c.field),E=new Set;for(let U of d)U.id||X(`APPLY snapshot for ${c.field} contains a row without _rid.`),E.has(U.id)&&X(`APPLY snapshot for ${c.field} contains duplicate _rid ${U.id}.`),E.add(U.id);let m=U=>U.field==="_rid"?"SINGLE_LINE_TEXT":U.field==="_idx"?"NUMBER":p.get(U.field)?.fieldType,R=[],g=[],y=[],S=new Set,A=new Set,I=new Set,b=c.operations.some(U=>U.kind==="REMOVE");for(let[U,O]of c.operations.entries()){if(O.kind==="APPEND"){let N=yu(O,p,c.field,i);y.push({kind:"APPEND",addedRows:N.length}),g.push(...N);continue}if(O.kind==="REMOVE"){let N=LS(O,d,m,c.field,i);O.expectRows&&Xf(O.expectRows,N.length,r,c.field,U,O.kind),y.push({kind:"REMOVE",removedRows:N.length});for(let h of N){let w=d[h].id;A.has(h)&&X(`APPLY row ${w} is selected by both PATCH and REMOVE.`),I.has(h)&&X(`APPLY removes row ${w} more than once.`),I.add(h)}continue}if(O.kind!=="PATCH")continue;let P=OS(O,d,m,c.field,i);O.expectRows&&Xf(O.expectRows,P.length,r,c.field,U,O.kind),y.push({kind:"PATCH",matchedRows:P.length,changedRows:P.length});for(let N of P){let h=d[N];I.has(N)&&X(`APPLY row ${h.id} is selected by both PATCH and REMOVE.`),A.add(N);let w=La(h,N);for(let _ of O.assignments){let L=`${h.id}\0${_.field}`;S.has(L)&&X(`APPLY patches cell ${h.id}.${_.field} more than once.`),S.add(L),R.push({rowIndex:N,field:_.field,value:Pa(_.value,w,m,i)})}}}let v=new Map;for(let U of R){let O=v.get(U.rowIndex)??{};O[U.field]={value:U.value},v.set(U.rowIndex,O)}let k=[...d.flatMap((U,O)=>I.has(O)?[]:[{id:U.id,value:{...U.value,...v.get(O)??{}}}]),...g],x={table:c.field,operations:y,changedSubtableRows:v.size+I.size+g.length,deletedRows:I.size,snapshotRowIds:d.map(U=>U.id),postImageRows:k};b?a.push({...x,payloadShape:"FULL_SURVIVORS",removedRowIds:d.flatMap((U,O)=>I.has(O)?[U.id]:[]),payloadRows:k.map(U=>({...U.id===void 0?{}:{id:U.id},value:U.value}))}):a.push({...x,payloadShape:"PATCH_ONLY",payloadRows:[...d.map((U,O)=>{let P=v.get(O);return P?{id:U.id,value:P}:{id:U.id}}),...g.map(U=>({value:U.value}))]})}let l=xS(t),u={};for(let c of e.assignments){let p=n.fieldsByCode.get(c.field)?.fieldType;u[c.field]={value:uu(c.value,l,p,t,i)}}let f={...t};Object.assign(f,u);for(let c of a)f[c.table]={value:c.postImageRows};for(let c of s)f[c.field]={value:c.postImageValue};return{app:e.appId,parentId:r,revision:o,parentRows:1,changedSubtableRows:a.reduce((c,p)=>c+p.changedSubtableRows,0),parentValues:u,postImage:f,tables:a,multiValues:s}}function Xf(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 _a(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 f=a[u];return f?.value?l.id===void 0?{value:f.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,f.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 yu(e,t,n,r={}){return e.values.map(i=>({value:PS(e,i,t,n,r)}))}function PS(e,t,n,r,i){if(t.length!==e.fields.length)return X(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let o=new Map(e.fields.map((s,l)=>[s,t[l]])),a={};for(let s of n.values()){if(s.fieldType==="FILE"||s.writable===!1)continue;let l=o.get(s.code);a[s.code]={value:l===void 0?hu(s):l.type==="CASE_VALUE"?Vt(l.expr,{},s.fieldType,i):Nt(l,s.fieldType)}}return a}function hu(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 OS(e,t,n,r,i={}){return tE(e.selector,t,n,r,i)}function LS(e,t,n,r,i={}){return tE(e.selector,t,n,r,i)}function tE(e,t,n,r,i={}){if(e.kind==="ALL_ROWS")return t.map((u,f)=>f);let o=e.where,a=t.flatMap((u,f)=>ce(o,La(u,f),n,void 0,void 0,i)?[f]:[]),s=_S(o);s!==null&&a.length===0&&X(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=vS(o);return l!==null&&a.length===0&&X(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function _S(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 vS(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 DS(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 Au(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&X(`${t} must be a positive integer.`),n}function xS(e){let t={};for(let[n,r]of Object.entries(e))t[n]=nE(r?.value);return t}function nE(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function Ai(e,t){if(Array.isArray(e)){e.forEach(r=>Ai(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))Ai(r,t)}function Re(e){throw new Error(`ArgumentError: ${e}`)}function Da(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?Re("APPLY snapshot $revision must be a positive integer."):t}function Si(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),US(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function rE(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 US(e){let t=Su(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(f=>f.id===void 0?[]:[f.id]);for(let f of e.payloadRows)f.id===void 0&&f.value===void 0&&Re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Su(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&Re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let f=e.payloadRows.slice(0,t.length).map(p=>p.id??"");va(t,f,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(p=>p.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(p=>p.id??"");va(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(p=>p.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(f=>f.kind==="REMOVE")||Re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Su(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(f=>f.id===void 0?[]:[f.id]),o=new Set(r),a=new Set(i);for(let f of r)a.has(f)&&Re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${f}.`);let s=t.filter(f=>!o.has(f));va(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(f=>f.id??"");va(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(f=>f.id!==void 0)||e.postImageRows.slice(i.length).some(f=>f.id!==void 0))&&Re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(f=>f.value===void 0)&&Re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((f,c)=>!Tu(f.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(f=>!u.has(f)))&&Re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Su(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 va(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&Re(n)}function Tu(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)=>Tu(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)&&Tu(n[a],r[a]))}function iE(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 oE(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=iE(t.digits,"digits",1,30),r=iE(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 aE(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 MS=new Set(["CHECK_BOX","MULTI_SELECT"]),kS=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function qe(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=FS(e);if(i!==""&&!KS(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=Ti(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:GS(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=Ce(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&&Do(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&&Do(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}=aE(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")&&!Nn(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)&&kS.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 FS(e){return e==null?"":Ua(e)&&e.type==="NUMBER"?q(e):Ua(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function KS(e,t){if(t==="DATE")return Nn(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return Nn(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)?Nn(n.slice(0,10),"DATE")&&Nn(n.slice(11),"TIME"):Nn(n,"DATETIME")}function Ti(e,t){if(Ua(e)){let r=fu(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(MS.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 Ua(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Cn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Ua(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 GS(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function Nn(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)&&Nn(l,"TIME")}var yr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Iu(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(f=>typeof f=="object"&&f!==null&&"code"in f),u=a;try{u=Ti(a,s)}catch{}i.record[o]={value:l?a:u}}}}function wu(e,t,n,r,i,o,a,s=[],l=!0,u=!0,f={}){let c=new Map(i.map(R=>[R.code,R])),p=[],d=new Set,E=[];f.validateUpdateBuiltIns===!1&&Iu(e,r,i);let m;for(let R of e){R.record??(R.record={});let g=u?[...R.preErrors]:[],y=[],S=[],A=R.mode==="create"||f.validateUpdateBuiltIns!==!1;for(let C of r){if(!R.payload.has(C))continue;let k=R.payload.get(C),x=c.get(C).fieldType,U=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(x)&&Array.isArray(k)&&k.every(P=>typeof P=="object"&&P!==null&&"code"in P);if(!A)continue;let O=qe(k,c.get(C),a);O.ok?R.record[C]={value:U?k:O.value}:y.push({field:C,code:O.code,message:O.message})}if(l&&R.mode==="create")for(let C of i){if(C.inSubtable||R.payload.has(C.code))continue;if(Cn(C.defaultValue)){let x=qe("",C,a);x.ok?C.required&&y.push({field:C.code,code:"ERR_REQUIRED",message:`${C.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:C.code,code:x.code,message:x.message})}else{let x=qe(C.defaultValue,C,a);x.ok||y.push({field:C.code,code:x.code,message:`\u65E2\u5B9A\u5024: ${x.message}`})}}if(s.length>0){let C=R.evaluationRow??Object.fromEntries([...R.payload].map(([U,O])=>[U,tt(O)])),k=R.evaluationFieldTypes,x=U=>{let O=U.tableAlias?`${U.tableAlias}.${U.field}`:U.field;return k?.get(O)??k?.get(U.field)};try{for(let U of wa(s,C,x))S.push({field:"",code:"ERR_CHECK",message:U.message})}catch(U){m??(m=U)}}let I=C=>C.map(k=>{let x={};for(let U of n)x[U]=tt(R.payload.get(U));return x.$err_statement=String(o),x.$err_operation=t,x.$err_row=String(R.rowNumber),x.$err_field=k.field,x.$err_code=k.code,x.$err_message=k.message,x.$err_value="",x.$err_subtable="",x.$err_subrow="",x.$err_subrow_id="",x}),b={rowNumber:R.rowNumber,preErrors:I(g),builtInErrors:I(y),checkErrors:I(S)};E.push(b);let v=[...b.preErrors,...b.builtInErrors,...b.checkErrors];v.length>0&&d.add(R.rowNumber),p.push(...v)}if(m!==void 0)throw m;return{errors:p,invalidRows:d.size,invalidRowNumbers:d,candidateResults:E}}function tt(e){if(e==null)return"";if(typeof e=="object"&&"type"in e){let t=e;if(t.type==="NUMBER")return t.raw??String(t.value??"");if(t.type==="STRING")return String(t.value??"");if(t.type==="ARRAY")return JSON.stringify(t.elements?.map(n=>n.value)??[])}return Array.isArray(e)?JSON.stringify(e):String(e)}var bu=["required","length","range","choice"];function Nu(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 Cu(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 $S(e){return Nu(e).length>0}function BS(e){return e.fieldType==="NUMBER"||$S(e)}function Ma(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Pu(e,t){let{topByCode:n,childrenByTable:r}=Cu(t),i=BS;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,u)=>{let f=u?`${u}\0${l.code}`:l.code;if(a.has(f))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(f),!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 p of l.children){let d=c.find(E=>E.code===p);if(!d){let E=[...r.entries()].some(([m,R])=>m!==l.subtableCode&&R.some(g=>g.code===p));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(d,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 f=n.get(u);if(f?.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(p=>s(p,u));continue}if(f){s(f);continue}throw[...r.values()].some(c=>c.some(p=>p.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 Ii(e,t){return Cn(e)?"":tt(Ti(e,t))}var VS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),wi=yr;function Ct(e,t=["$id"]){let n=Cu(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!VS.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 Pn(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 On(e,t,n,r,i=1,o="UPDATE"){let a=WS(e),s=[],l=new Set,u=[...t.payloadFields,...wi],f=tt(e.$id?.value),c=(p,d,E,m)=>{l.add(i);let R={};for(let g of t.payloadFields)R[g]=g==="$id"?f:tt(e[g]?.value);R.$err_statement=String(r),R.$err_operation=o,R.$err_row=String(i),R.$err_field=p.code,R.$err_code=E.code,R.$err_message=E.message,R.$err_value=Ii(d,p.fieldType),R.$err_subtable=m?.subtable??"",R.$err_subrow=m?String(m.subrow):"",R.$err_subrow_id=m?.subrowId??"",s.push(R)};for(let p of t.topLevel){let d=e[p.code]?.value,E=qe(d,p,n);E.ok?a[p.code]={value:sE(d,p.fieldType,E.value)}:c(p,d,E)}for(let[p,d]of t.subtables){let E=e[p]?.value;if(!Array.isArray(E))continue;let m=a[p]?.value;for(let R=0;R<E.length;R++){let g=E[R],y=m[R];for(let S of d){let A=g.value?.[S.code]?.value,I=qe(A,S,n);I.ok?(y.value??(y.value={}),y.value[S.code]={value:sE(A,S.fieldType,I.value)}):c(S,A,I,Ma(p,R,g))}}}return{normalizedRecord:a,errors:s,columns:u,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function sE(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 WS(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;lE(o,"dmlMaxRows"),lE(a,"dmlMaxSubtableRows");for(let S of n)Da(S);let l=Zf(t,n,r,i),u=Ct(r,t.assignments.map(S=>S.field)),f=l.some(S=>Pn(S.postImage,u));if(f&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=f?await e.loadNumberPrecision():void 0,p=l.map((S,A)=>On(S.postImage,u,c,s,e.parentRowNumbers?.[A]??A+1));if(!t.validateOnly){let S=p.flatMap(A=>A.errors);if(S.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:S})}`)}let d=l.length,E=l.reduce((S,A)=>S+A.changedSubtableRows,0),m=d>o||E>a;if(!t.validateOnly&&d>o)throw new Error(`ArgumentError: APPLY parent rows (${d}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&E>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${a}).`);let R=l.map((S,A)=>_a(S,p[A].normalizedRecord)),g=R.flatMap(S=>Si(S).records),y=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return uE({plans:R,records:g,validations:y,guards:{revisionRequired:!0,parentRows:d,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:m}})}function lE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function uE(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))uE(n,t);return Object.freeze(e)}var Ou=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Fa(e,t){if(new Set(e.fields).size!==e.fields.length)return Pt("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)cE(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Pt(`APPLY has more than one block for table ${o.field}.`);let a=t.find(l=>l.code===o.field&&!l.inSubtable);if(!a||a.fieldType!=="SUBTABLE")return Pt(`APPLY target ${o.field} is not a SUBTABLE.`);let s=new Map(t.filter(l=>l.inSubtable&&l.subtableCode===o.field).map(l=>[l.code,l]));r.set(o.field,a),i.set(o.field,s);for(let l of o.operations){if(l.kind!=="APPEND")return Pt(`APPLY INSERT supports APPEND only (${l.kind}).`);let u=new Set;for(let f of l.fields){if(u.has(f))return Pt(`APPLY APPEND specifies child ${f} more than once.`);u.add(f),cE(f,o.field,n,s)}for(let f of l.values)if(f.length!==l.fields.length)return Pt(`APPLY APPEND for ${o.field} has ${f.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function HS(e,t,n=Fa(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=mi(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(f=>yu(f,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||Ou.has(c.fieldType)||(u[c.code]=s[c.code]??{value:hu(c)});let f={...s};for(let c of a){let p=c.rows.map(d=>({value:d.value}));u[c.table]={value:p},f[c.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:u,record:f}})}async function bi(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;pE(r,"dmlMaxRows"),pE(i,"dmlMaxSubtableRows");let a=e.metadata??Fa(t,n),s=HS(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!Ou.has(A.fieldType)),u=Ct(l,t.fields),f=s.some(A=>Pn(A.postImage,u));if(f&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=f?await e.loadNumberPrecision():void 0,p=s.map(A=>On(A.postImage,u,c,o,A.parentRowNumber,"INSERT"));if(!t.validateOnly){let A=p.flatMap(I=>I.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:A})}`)}let d=s.length,E=s.reduce((A,I)=>A+I.tables.reduce((b,v)=>b+v.addedRows,0),0),m=d>r||E>i;if(!t.validateOnly&&d>r)throw new Error(`ArgumentError: APPLY parent rows (${d}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${i}).`);let R=s.map((A,I)=>{let b=p[I].normalizedRecord,v={};for(let C of t.fields)v[C]=b[C];for(let C of A.tables){let k=b[C.table]?.value;v[C.table]={value:C.rows.map((x,U)=>({value:Object.fromEntries(Object.keys(x.value).map(O=>[O,k[U]?.value?.[O]??x.value[O]]))}))}}return{...A,postImage:b,record:v}}),g=R.map(A=>A.record),y=[];for(let A=0;A<g.length;A+=100)y.push({app:t.appId,records:g.slice(A,A+100)});let S=p.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return dE({applyBlocks:t.applyBlocks??[],candidates:R,records:g,batches:y,validations:S,guards:{revisionRequired:!1,parentRows:d,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:m}})}function cE(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Pt(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);return t!==null&&o?.inSubtable?Pt(`APPLY child ${e} does not belong to subtable ${t}.`):Pt(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Ou.has(i.fieldType))return Pt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function pE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Pt(e){throw new Error(`ArgumentError: ${e}`)}function 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)}async function EE(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;fE(i,"dmlMaxRows"),fE(o,"dmlMaxSubtableRows"),JS(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),u=YS(t,s.map(g=>g.sourceRowIndex)),f=await bi({statement:u,fieldInfos:r,metadata:Fa(u,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(g=>g.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],p=new Set;for(let g of l){let y=g.targetId;p.has(y)&&Lu(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),p.add(y),g.snapshot||Lu(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let S=Number(g.snapshot.$id?.value);S!==y&&Lu(`UPSERT APPLY snapshot $id ${S} does not match target $id ${y}.`);let A=jS(t,g.sourceRowIndex,y),I=A.applyBlocks?.length?Wt(A,r):zS(r);c.push(await ka({statement:A,snapshots:[g.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[g.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let d=qS(c,i,o),E=f.guards.parentRows+d.guards.parentRows,m=f.guards.subtableRows+d.guards.subtableRows,R=E>i||m>o;if(!t.validateOnly){let g=[...f.validations.flatMap(y=>y.errors),...d.validations.flatMap(y=>y.errors)];if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:f.validations[0]?.columns??d.validations[0]?.columns??[],errors:g})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&m>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${m}) exceed dmlMaxSubtableRows (${o}).`);return _u({create:f,update:d,createBatches:f.batches,updateBatches:XS(d.records,t.appId),guards:{revisionRequired:d.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:m,dmlMaxSubtableRows:o,wouldExceed:R,create:f.guards,update:d.guards}})}function YS(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function jS(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 zS(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function qS(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 _u({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 JS(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 XS(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 fE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Lu(e){throw new Error(`ArgumentError: ${e}`)}function _u(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))_u(n,t);return Object.freeze(e)}function Ci(e){return hr("UPDATE",[gE(e)])}function vu(e){return hr("INSERT",[RE(e)])}function Du(e){return hr("UPSERT",[RE(e.create),gE(e.update)])}function nt(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 Ga(e,t,n){return e.type==="UPDATE"?hr("UPDATE",[Ka("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?hr("INSERT",[Ka("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):hr("UPSERT",[Ka("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Ka("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function hr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function RE(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 gE(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:mE(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:mE(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 mE(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:Ni(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:Ni(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:Ni(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:Ni(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:Ni(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function Ni(e,t){return e==null||t===null?null:e+t}function Ka(e,t,n,r,i,o){let a=t.map(f=>{let c=f.operations.map(d=>QS(d,n)),p=c.every(d=>d.count!==null)?c.reduce((d,E)=>d+E.count,0):null;return{targetKind:f.targetKind,field:f.field,operations:c,changedCount:p}}),s=a.filter(f=>f.targetKind==="SUBTABLE"),l=s.every(f=>f.changedCount!==null)?s.reduce((f,c)=>f+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 QS(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 Ot=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 yE(e,t,n){cr("phase10c");let r=rE(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 Ot({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:nt(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 hE(e,t,n){cr("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 Ot({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:nt(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 AE(e,t,n){cr("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 f=await t.postRecords({app:u.app,records:[...u.records]});r.push(f.ids)}catch(f){throw new Ot({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:nt(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},f)}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(f){throw new Ot({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:nt(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},f)}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 ZS=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function eT(e){if(!ZS.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 tT(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=eT(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 xu(e,t){let n=tT(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 nT(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 SE(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 nT(i)?!0:Object.values(i).some(n)};return n(e)}function TE(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 Ht(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 Pi=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)}},$a=class{constructor(t,n=Ht({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new Pi("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new Pi("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new Pi("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var Ba=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+=Ba){let o=e.values.slice(i,i+Ba);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Uu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),rT=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function iT(e,t){return e==="DATE"?ti(t):e==="TIME"?Zo(t):Uu.has(e)?ea(t):!1}function oT(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=Qo(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!rT.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(!oT(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=>!iT(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];ft(s,i,n)<0&&(i=s),ft(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Fu=zl;function Oi(e,t,n=Fu){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function IE(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 Lt(e){if(e===null)return!1;switch(e.type){case"BINARY":return Va(e.left);case"NULL_CHECK":return Va(e.field);case"LOGICAL":return Lt(e.left)||Lt(e.right);case"NOT":case"GROUP":return Lt(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Va(e){if(Array.isArray(e))return e.some(Va);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(Va)}async function Ve(e,t,n,r,i={}){let o=i.pageSize??aT,a=Math.max(1,i.parallel??sT),s=i.maxRecords??lT,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 f=u??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],d=!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`,m=0,R=0,g=NE(n,m),y=await bE(e,t,g,c,o,R);if(wE(y,i),p.push(...y.records),u!==void 0&&p.length>=u)return p.slice(0,u);if(p.length>s){if(l==="truncate")return!d&&i.onTruncate&&(i.onTruncate(s),d=!0),p.slice(0,s);throw new Et(E)}if(y.records.length<o)return p;for(R+=o,R>=Gu&&(m=CE(y.records),R=0);;){if(u!==void 0&&p.length>=u)return p.slice(0,u);if(p.length>=s){if(l==="truncate")return!d&&i.onTruncate&&(i.onTruncate(s),d=!0),p.slice(0,s);throw new Et(E)}let S=f-p.length,A=Math.ceil(S/o),I=Math.max(1,Math.min(a,A)),b=[];for(let x=0;x<I;x++){let U=R+x*o;if(U>=Gu)break;b.push(U)}let v=NE(n,m),C=await Promise.all(b.map(x=>bE(e,t,v,c,o,x)));for(let x of C)wE(x,i);let k=!1;for(let x of C){if(p.push(...x.records),u!==void 0&&p.length>=u)return p.slice(0,u);if(p.length>s){if(l==="truncate")return!d&&i.onTruncate&&(i.onTruncate(s),d=!0),p.slice(0,s);throw new Et(E)}if(x.records.length<o){k=!0;break}}if(k)break;if(R+=o*b.length,R>=Gu){let x=C[C.length-1];m=CE(x.records),R=0}}return p}function wE(e,t){e.searchAborted&&t.onSearchAborted?.()}function PE(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 aT=500,sT=1,lT=1e4,Gu=1e4;async function bE(e,t,n,r,i,o){let a=uT(n,i,o);return e({app:t,query:a,fields:r})}function NE(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 uT(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function CE(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 Et=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};async function mt(e,t,n,r,i){let o=await Ve(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 Li(e,t,n,r){let{records:i,metrics:o}=await mt(e,t,n,["$id"],r);return{ids:PE(i),metrics:o}}function Sr(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)?LE(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"}):LE(n[0],e.field)}function Bu(e,t){if(e.left.type!=="FIELD")return _i();let n=Sr(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return _i();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||we(e,a=>{let s=Sr(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:te({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return _i();let o=na(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?_i():Object.freeze({relation:o,owner:n})}function _E(e,t){let n=Se(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Sr(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):we(e,o=>{let a=Sr(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:te({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function vE(e,t){let n=new Set;Ln(e,n);let i=(e===null?[]:UE(Ar(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=cT(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)Ln(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(fT(e,t)),fetchQueriesByAlias:new Map,...o})}function DE(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!_n(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,Tr(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=Tr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!_n(qa(l),a.functionOccurrences))return e;r(a.targetAlias,l)}}catch{return e}let i=new Map;for(let[a,s]of n)i.set(a,s.length===1?s[0]:s.map(l=>`(${l})`).join(" and "));let o=e.serverFunctionConsumptions.map(a=>{let s=i.get(a.targetAlias);return s?Object.freeze({...a,fetchBinding:Object.freeze({status:"BOUND_TO_TARGET_FETCH",targetAlias:a.targetAlias,appId:a.appId,query:s})}):null});return o.some(a=>a===null)?e:Object.freeze({...e,serverFunctionCandidate:Object.freeze({...e.serverFunctionCandidate,fetchContract:"CONFIRMED"}),serverFunctionConsumptions:Object.freeze(o),fetchQueriesByAlias:i})}function Ir(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!_n(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&&!_n(qa(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))||xE(dT(e))!==e.allKlikes.length))}function cT(e,t){if(e===null)return OE(null);let n=Object.freeze([...Se(e)]);if(n.length===0)return OE(e);let r=pT(e,t,n);if(r!==null)return r;let i=Ya(e),o=[],a=new Set;for(let c of i){let p=_E(c,t);if(p.relation!=="function-leaf-exact")continue;let d={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:c,relation:"exact"},E;try{E=Tr(d,t)}catch{continue}let m=qa(E);_n(m,p.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),functionOccurrences:p.functionOccurrences,relation:p.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=ja(e,a),l=Object.freeze(s===null?[]:[...Se(s)]),u=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),f=_n(n,u)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:f,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:u,residualWhere:s,residualServerFunctionOccurrences:l}}function pT(e,t,n){let r=Wa(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Tr(i,t)}catch{return null}if(!_n(qa(o),n))return null;let a=new Set;if(Ln(e,a),xE(o)!==a.size)return null;let s=Object.freeze(Ha(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 Wa(e,t){switch(e.type){case"BINARY":{if(Se(e).length>0){let i=_E(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Bu(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=Wa(e.left,t),r=Wa(e.right,t);return n!==null&&r!==null&&Ja(n,r)?n:null}case"GROUP":case"NOT":return Wa(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Ha(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return[...Ha(e.left),...Ha(e.right)];case"GROUP":case"NOT":return Ha(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function OE(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 Ya(e){switch(e.type){case"BINARY":return Se(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Ya(e.left),...Ya(e.right)]:[];case"GROUP":return Ya(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function ja(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=ja(e.left,t),r=ja(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=ja(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function qa(e){let t=[];for(let n of Kr){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 _n(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 xE(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function dT(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function fT(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=Sr(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(za(i.right)){n.add("CROSS_TABLE_BINARY");return}Bu(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(kE(i)){n.add("KLIKE_OR");return}let o=Ar(i.left,t),a=Ar(i.right,t);if(o.length!==1||a.length!==1||!Ja(o[0].owner,a[0].owner)){n.add("CROSS_ALIAS_OR");return}}r(i.left),r(i.right);return}if(i.type==="GROUP"){r(i.expr);return}if(i.type==="NOT"){n.add("NOT");return}n.add("UNSAFE_RELATION")};return r(e),[...n].map(i=>Object.freeze({reason:i}))}function Tr(e,t){return vi(e.predicate,e,t),z(e.predicate)}function vi(e,t,n){switch(e.type){case"LOGICAL":vi(e.left,t,n),vi(e.right,t,n);return;case"GROUP":vi(e.expr,t,n);return;case"NOT":vi(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||za(e.right))throw $u(t,"predicate contains a non-target or RHS field reference");let r=Sr(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw $u(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw $u(t,"predicate shape is outside the Phase A serializer contract")}}function $u(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function Ar(e,t){switch(e.type){case"BINARY":{let n=Bu(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=Ar(e.left,t),r=Ar(e.right,t);if(e.op==="AND")return UE([...n,...r]);if(kE(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return Ja(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:ME(i.relation,o.relation)}]:[]}case"GROUP":return Ar(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function UE(e){let t=[];for(let n of e){let r=t.findIndex(o=>Ja(o.owner,n.owner));if(r<0){t.push(n);continue}let i=t[r];t[r]={owner:i.owner,predicate:{type:"LOGICAL",op:"AND",left:i.predicate,right:n.predicate},relation:ME(i.relation,n.relation)}}return t}function LE(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function _i(){return Object.freeze({relation:"unsafe"})}function Ja(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function ME(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Ln(e,t){if(e!==null){if(nn(e)){t.add(e);return}switch(e.type){case"LOGICAL":Ln(e.left,t),Ln(e.right,t);return;case"NOT":case"GROUP":Ln(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function kE(e){let t=new Set;return Ln(e,t),t.size>0}function za(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(za);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(za)}function Vu(e,t){let n=ri(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 ET=1e4,mT=500;function RT(e,t){if(e.key.type!=="FIELD_NAME")return;let n=ve(e.key.name,t.keys());return n===void 0?void 0:t.get(n)}function gT(e,t){let n=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]);return ve(t,n)!==void 0}function Di(e){let{stmt:t}=e,n=[],r=t.columns.flatMap(a=>a.type==="WINDOW_COL"?a.orderBy:[]),i=[...t.orderBy,...r];for(let a of i){if(a.key.type!=="FIELD_NAME")continue;let s=RT(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"&&!gT(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>mT)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>ET)&&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 yT=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 hT(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function xi(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(hT(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}yT.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 Xa=class extends Error{constructor(t,n,r){super(`CursorCapacityError: host=${t} \u306E active cursor \u4E0A\u9650 ${n} \u306B ${r}ms \u4EE5\u5185\u3067\u7A7A\u304D\u304C\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002`),this.name="CursorCapacityError"}},Qa=class extends Error{constructor(t){super("CursorCreateOutcomeUnknownError: Create Cursor \u306E\u6210\u5426\u3092\u78BA\u8A8D\u3067\u304D\u307E\u305B\u3093\u3002\u81EA\u52D5\u518D\u8A66\u884C\u305B\u305A\u3001\u6700\u592710\u5206+\u5B89\u5168\u4F59\u88D5\u306E\u9593\u306F\u67A0\u3092\u9694\u96E2\u3057\u307E\u3059\u3002"),this.name="CursorCreateOutcomeUnknownError",this.cause=t}},Za=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 FE(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 Za(a).message}}return{records:n,cleanupWarning:o}}function Wu(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 AT={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=AT[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 GE(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 wr=new WeakMap,Yu=new WeakMap,ST="\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 Xu(e){if(Yu.has(e))return e;let t;return t=new Proxy(e,{get(n,r,i){return typeof r!="string"||Object.prototype.hasOwnProperty.call(n,r)?Reflect.get(n,r,i):be(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&be(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=be(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),Yu.set(t,e),t}function Rt(e){return Yu.get(e)??e}function XE(e){let t=wr.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},wr.set(e,t)),t}function gt(e,t,n,r=[]){let i=XE(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function We(e,t){return wr.get(e)?.byColumn.get(t)}function be(e,t){return wr.get(e)?.byLookupKey.get(t)}function Yt(e,t){return wr.has(e)?void 0:e[t]}function $E(e,t,n){if(!n||t.length===0)return;let r=new Set,i=o=>{if(o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="FIELD"&&a.aggregateRef!==void 0){let s=a.aggregateRef;r.add(fe(s.func,s.distinct,s.arg));return}a.type==="SELECT"||a.type==="SCALAR_SUBQUERY"||Object.values(a).forEach(i)};i(e),[...r].some(o=>t.some(a=>be(a,o)===void 0&&a[o]===void 0))&&n.add(ST)}function TT(e){let t=wr.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=Tl(e);return r&&Sl(n,r.includedCanonicalIds),n}function jt(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 IT(e,t,n,r={}){if(n.type==="CROSS"){let p=Oi(e.length,t.length);if(!p.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${p.outputRows} \u884C\uFF08\u5DE6 ${p.leftRows} \u884C \xD7 \u53F3 ${p.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${p.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let d=[];for(let E of e)for(let m of t)d.push({...E,...m});return d}let{on:i,type:o}=n,a=wT(i,e,t,r.leftColumns,r.rightColumns),s=ju(a.left),l=ju(a.right);if(VE(e,s,r.leftColumns),VE(t,l,r.rightColumns),o==="RIGHT"){let p=new Map;for(let m of e){let R=m[s]??"",g=p.get(R);g?g.push(m):p.set(R,[m])}let d={};for(let m of r.leftColumns??Object.keys(e[0]??{}))d[m]="";let E=[];for(let m of t){let R=m[l]??"",g=p.get(R)??[];if(g.length>0)for(let y of g)E.push({...y,...m});else E.push({...d,...m})}return E}let u=new Map;for(let p of t){let d=p[l]??"",E=u.get(d);E?E.push(p):u.set(d,[p])}let f=[],c={};for(let p of r.rightColumns??Object.keys(t[0]??{}))c[p]="";for(let p of e){let d=p[s]??"",E=u.get(d)??[];if(E.length>0)for(let m of E)f.push({...p,...m});else o==="LEFT"&&f.push({...p,...c})}return f}function ju(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function wT(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=BE(o),l=BE(a),u=p=>{if(p.tableAlias){let R=s.has(p.tableAlias),g=l.has(p.tableAlias);if(R!==g)return R?"LEFT":"RIGHT"}let d=ju(p),E=o.includes(d),m=a.includes(d);return E!==m?E?"LEFT":"RIGHT":"UNKNOWN"},f=u(e.left),c=u(e.right);return f==="RIGHT"&&c==="LEFT"?{left:e.right,right:e.left}:e}function BE(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 VE(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 bT(e,t,n,r,i,o={}){return t===null?e:e.filter(a=>ce(t,a,n,r,i,o))}function ts(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&Ie(t.expr)||t.type==="CASE_COL"&&Ie(t.expr)||t.type==="STRFUNC_COL"&&$i(t.expr)||t.type==="SCALAR_VALUE_COL"&&dn(t.expr))}function NT(e,t,n,r,i,o={},a=null){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let s=new Map;for(let u of e){let f=t.map((p,d)=>PT(p,u,i?.items[d],n,o)).join("\0"),c=s.get(f);c?c.push(u):s.set(f,[u])}s.size===0&&t.length===0&&ts(n)&&s.set("",[]);let l=[];for(let u of s.values()){let f=Xu({...u[0]});for(let c of t)c.type==="ARITH_KEY"?f[Gi(c.expr)]=String(me(c.expr,u[0],o.evaluationContext)):c.type==="FUNC_KEY"&&(f[fn(c.expr)]=he(c.expr,u[0],void 0,void 0,o.evaluationContext));QE(f,u,n,r,o.evaluationContext),vn(f,u,a,r,o.evaluationContext),l.push(f)}return l}function CT(e,t,n,r,i={},o=null){let a=[],s=0,l=()=>{if(s++,i.maxGeneratedRows!==void 0&&s>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${s} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let u of t.sets){let f={children:new Map},c=[];for(let d of e){let E=f;for(let m of u.items){let R=WE(m,d),g=E.children.get(R);g||(g={children:new Map},E.children.set(R,g)),E=g}E.rows||(l(),E.rows=[],c.push(E.rows)),E.rows.push(d)}e.length===0&&u.items.length===0&&(l(),f.rows=[],c.push(f.rows));let p=new Set(u.items.map(d=>d.canonicalId));for(let d of c){let E=Xu({...d[0]}),m=new Map;for(let R of u.items)m.has(R.canonicalId)||m.set(R.canonicalId,WE(R,d[0]));for(let R of t.allItems){let g=m.get(R.canonicalId)??"";E[R.directKey]=g,R.unqualifiedBridgeKey!==null&&(E[R.unqualifiedBridgeKey]=g)}QE(E,d,n,r,i.evaluationContext),vn(E,d,o,r,i.evaluationContext),Sl(E,p),a.push(E)}}return a}function WE(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(a.type==="AGGREGATE"){let s=fe(a.func,a.distinct,a.arg),l=String(ki(a.func,a.distinct,a.arg,a.separator,t,r,i));gt(e,o,l,a.alias?[a.alias,s]:[s])}else if(a.type==="ARITH_AGG_COL"){vn(e,t,a.expr,r,i);let s=a.alias??Fi(a.expr);gt(e,o,String(Ui(a.expr,t,r,i)),[s])}else if(a.type==="ARITH_COL"&&Ie(a.expr)){vn(e,t,a.expr,r,i);let s=a.alias??Gi(a.expr),l=Ju(a.expr,t,r);gt(e,o,String(me(l,e,i)),[s])}else if(a.type==="STRFUNC_COL"&&$i(a.expr)){vn(e,t,a.expr,r,i);let s=a.alias??fn(a.expr),l=rs(a.expr,t,r);gt(e,o,he(l,e,void 0,void 0,i),[s])}else if(a.type==="SCALAR_VALUE_COL"&&dn(a.expr)){vn(e,t,a.expr,r,i);let s=a.alias??_t(a.expr),l=Mi(a.expr,t,r);gt(e,o,String(De(l,e,void 0,void 0,i)),[s])}else if(a.type==="CASE_COL"&&Ie(a.expr)){vn(e,t,a.expr,r,i);let s=rm(a.expr,t,r),u=ze(s,e,void 0,f=>f.aggregateRef?em(f.aggregateRef,r):void 0,i);gt(e,o,u,[zu(a.alias,o)])}}function zu(e,t){return e??`__ksql_case_column_${t}`}function qu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>qu(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=>qu(r,t))}function vn(e,t,n,r,i={}){let o=[];qu(n,o);for(let a of o){let s=fe(a.func,a.distinct,a.arg);if(be(e,s)!==void 0)continue;let l=String(ki(a.func,a.distinct,a.arg,a.separator,t,r,i));XE(e).byLookupKey.set(s,l)}}function PT(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=es(o,t,n.columnIndex,i);if(typeof a!="string")throw new Error("InternalError: GROUP BY alias resolved to an expanded SELECT column.");return a}throw new Error(`InternalError: unresolved plain GROUP BY item ${n.kind} reached evaluation.`)}return e.type==="FUNC_KEY"?he(e.expr,t,void 0,void 0,i.evaluationContext):String(me(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=ZE(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 m=Number(E);if(!Number.isFinite(m))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 m}):null,f=t?l?[...new Set(u)]:[...new Set(s)]:l?u:s;if(e==="COUNT")return f.length;if(e==="GROUP_CONCAT")return f.join(r??",");let c=e==="MIN"||e==="MAX"||e==="MODE"?Ki(n,o):void 0,p=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 g of s)E.set(g,(E.get(g)??0)+1);let m="",R=0;for(let[g,y]of E){if(y>R){m=g,R=y;continue}if(y!==R)continue;let S=ft(g,m,p);(S<0||S===0&&pn(g,m)<0)&&(m=g)}return m}if(e==="MIN"||e==="MAX"){let E=f;if(E.length===0)return"";let m=E[0];for(let R of E.slice(1)){let g=ft(R,m,p);(e==="MAX"&&g>0||e==="MIN"&&g<0)&&(m=R)}return m}let d=l?f:f.map(Number);switch(e){case"SUM":return d.reduce((E,m)=>E+m,0);case"AVG":return d.length===0?0:d.reduce((E,m)=>E+m,0)/d.length;case"MEDIAN":{if(d.length===0)return"";let E=[...d].sort((R,g)=>R-g),m=Math.floor(E.length/2);return E.length%2===1?E[m]:(E[m-1]+E[m])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let E=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(d.length===0||E&&d.length<2)return"";let m=d[0],R=0,g=0,y=0;for(let A of d){let I=A-m;R++;let b=I-g;g+=b/R,y+=b*(I-g)}let S=Math.max(0,y/(E?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(S):S}}}function ZE(e,t,n,r={}){return n.map(i=>{let o=Rt(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=me(t,o,r);if(isNaN(s))return null;a=String(s)}else{let s=Bt(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 OT(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 Ui(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=Ui(e.left,t,n,r),o=Ui(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 Fi(e){return It(e)}function Ki(e,t){if(e.type==="FIELD_REF")return t?.(OT(e.field))??"string";if(e.type==="FIELD")return t?.(e)??"string";if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return"number";if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return"string";if(e.type==="STRING_FUNC")return bt(e,o=>t?.(o));let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Ki(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 em(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":Ki(e.arg,t)??"string";return typeof n=="string"?V(n):n}function LT(e,t,n,r,i={}){return t===null?e:e.filter(o=>ce(t,TT(o),n,void 0,r,i))}function _T(e,t,n,r,i,o={}){if(e.length===0)return e;let a=vT(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 vT(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(GT(t,a,o))}function Qu(e,t,n,r,i,o,a={}){return t.length===0?e:tm(e,t,n,r,i,o,a).rows.map(s=>s.row)}function tm(e,t,n,r,i,o,a={}){let s=t.map(({key:f})=>{if(f.type==="ARITH_KEY")return{semantics:V("number")};if(f.type==="FUNC_KEY")return{semantics:V(bt(f.expr,d=>i?.get(d.tableAlias?`${d.tableAlias}.${d.field}`:d.field)))};if(f.type==="GROUPING_KEY")return{semantics:V("number")};let c=i?.get(f.name);if(c)return{semantics:c};let p=n?.get(f.name);return p?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:p}}:{semantics:V(r?.get(f.name)??"string")}}),l=e.map(f=>({row:f,keys:t.map(({key:c},p)=>({s:UT(c,f,o,a)}))})),u=(f,c)=>DT(f,c,t,s);return l.sort(u),{rows:l,compare:u}}function DT(e,t,n,r){for(let i=0;i<n.length;i++){let o=xT(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function xT(e,t,n){return ft(e.s,t.s,n.semantics)}function UT(e,t,n,r={}){let i=Rt(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??be(t,e.name)??i[e.name]??"";case"ARITH_KEY":return String(me(e.expr,i,r));case"FUNC_KEY":return he(e.expr,i,void 0,void 0,r);case"GROUPING_KEY":return nr(e.ref,t)}}function Zu(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(Rt(u),s.field));break;case"LITERAL_COL":o.set(l,()=>s.value);break;case"AGGREGATE":{o.set(l,u=>We(u,a)??"0");break}case"ARITH_AGG_COL":{o.set(l,u=>We(u,a)??"0");break}case"WINDOW_COL":o.set(l,u=>We(u,a)??"");break;case"ARITH_COL":o.set(l,u=>Ie(s.expr)?We(u,a)??"":String(me(s.expr,Rt(u),i)));break;case"STRFUNC_COL":{let u=fn(s.expr);o.set(l,f=>$i(s.expr)?We(f,a)??be(f,u)??he(s.expr,Rt(f),n,r,i):he(s.expr,Rt(f),n,r,i));break}case"CASE_COL":o.set(l,u=>Ie(s.expr)?We(u,a)??"":ze(s.expr,Rt(u),n,r,i));break;case"SCALAR_VALUE_COL":{let u=_t(s.expr);o.set(l,f=>dn(s.expr)?We(f,a)??be(f,u)??"":String(De(s.expr,Rt(f),n,r,i)));break}case"SCALAR_SUBQUERY_COL":o.set(l,()=>t?.get(a)??"");break;case"GROUPING_COL":o.set(l,u=>nr(s.ref,u));break;case"VARIABLE_COL":break}}return(a,s)=>{let l=ve(a,o.keys());return l===void 0?void 0:o.get(l)?.(s)}}function ec(e,t,n,r,i,o,a={}){let s=t.map((l,u)=>({column:l,columnIndex:u})).filter(l=>l.column.type==="WINDOW_COL");if(e.length===0||s.length===0)return e;for(let l=0;l<e.length;l++)e[l]=Xu(e[l]);for(let{column:l,columnIndex:u}of s){let f=new Map;for(let c of e){let p=JSON.stringify(l.partitionBy.map(E=>KT(c,E))),d=f.get(p);d?d.push(c):f.set(p,[c])}for(let c of f.values()){let p=tm(c,l.orderBy,n,r,i,void 0,a),d=p.rows;if(xo(l)){FT(l,u,p,o,a);continue}if(dl(l)){kT(l,u,d,a);continue}if(!pl(l))throw new Error(`InternalError: unknown window kind ${l.windowKind??"undefined"}`);let E=1,m=1;for(let R=0;R<d.length;R++){R>0&&p.compare(d[R-1],d[R])!==0&&(E=R+1,m++);let g=l.func==="ROW_NUMBER"?R+1:l.func==="RANK"?E:m;gt(d[R].row,u,String(g),[l.alias])}}}return e}function MT(e,t,n={}){let r=Bt(e,Rt(t),void 0,void 0,n);return r==null||typeof r=="number"&&!Number.isFinite(r)?"":String(r)}function kT(e,t,n,r={}){let i=n.map(a=>MT(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;gt(n[a].row,t,s>=0&&s<i.length?i[s]:"",[e.alias])}}function FT(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:ZE(e.aggFunc,e.arg,o.map(d=>d.row),i),s=e.arg.type==="WILDCARD"?void 0:Ki(e.arg,r),l=typeof s=="string"?V(s):s??V("string"),u=[],f=0,c=0,p;for(let d=0;d<o.length;d++){let E=a?.[d]??null;if(e.arg.type==="WILDCARD")f++;else if(E!==null)if(e.aggFunc==="COUNT")f++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")c+=Number(E),f++;else if(p===void 0)p=E;else{let R=ft(E,p,l);(e.aggFunc==="MAX"&&R>0||e.aggFunc==="MIN"&&R<0)&&(p=E)}let m=e.aggFunc==="COUNT"?f:e.aggFunc==="SUM"?c:e.aggFunc==="AVG"?f===0?0:c/f:p??0;u.push(String(m))}if(e.frame===null){let d=u[u.length-1];for(let E of o)gt(E.row,t,d,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let d=0;d<o.length;){let E=d;for(;E+1<o.length&&n.compare(o[E],o[E+1])===0;)E++;for(let m=d;m<=E;m++)gt(o[m].row,t,u[E],[e.alias]);d=E+1}return}for(let d=0;d<o.length;d++)gt(o[d].row,t,u[d],[e.alias])}function KT(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Be(Rt(e),n)}function ns(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function es(e,t,n,r={}){let i=Rt(t);switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"WILDCARD":return{kind:"EXPANDED",entries:(r.wildcardKeys??Object.keys(i)).map(a=>[a,i[a]!==void 0?i[a]:null])};case"PARENT_WILDCARD":return{kind:"EXPANDED",entries:(r.parentWildcardKeys??Object.keys(i).filter(a=>a.startsWith("_p.")).sort()).map(a=>[a,i[a]!==void 0?i[a]:null])};case"FIELD":return Be(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=fe(e.func,e.distinct,e.arg);return We(t,n)??be(t,e.alias??o)??be(t,o)??Yt(t,e.alias??o)??Yt(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??Fi(e.expr);return We(t,n)??be(t,o)??Yt(t,o)??"0"}case"ARITH_COL":return Ie(e.expr)?We(t,n)??be(t,e.alias??Gi(e.expr))??"":String(me(e.expr,i,r.evaluationContext));case"CASE_COL":return Ie(e.expr)?We(t,n)??be(t,zu(e.alias,n))??Yt(t,zu(e.alias,n))??"":ze(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return nr(e.ref,t);case"STRFUNC_COL":{let o=fn(e.expr);return $i(e.expr)?We(t,n)??be(t,e.alias??o)??be(t,o)??Yt(t,e.alias??o)??Yt(t,o)??he(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext):he(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext)}case"SCALAR_VALUE_COL":{let o=_t(e.expr);return dn(e.expr)?We(t,n)??be(t,e.alias??o)??be(t,o)??Yt(t,e.alias??o)??Yt(t,o)??"":String(De(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return We(t,n)??be(t,e.alias)??Yt(t,e.alias)??""}}function GT(e,t,n={}){return e.map((r,i)=>{let o=es(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Dn(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let E=e.map(R=>{let g=qE(YE(R),a),y=es(t[0],R,0,{wildcardKeys:Object.keys(g)}),S={};if(typeof y!="string")for(let[A,I]of y.entries)I!==null&&(S[A]=I);return S}),m=E.length>0?Object.keys(E[0]):[...i??[]];return{rows:E,columns:m}}let l=WT(t),u=VT(t),f=t.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD"),c=f?null:$T(t,l,u),p=c??[];return f&&e.length===0?{rows:[],columns:BT(t,l,u)}:{rows:e.map((E,m)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys(qE(YE(E),a)),parentWildcardKeys:Object.keys(E).filter(y=>y.startsWith("_p.")).sort()};for(let[y,S]of t.entries()){let A=es(S,E,y,g);switch(S.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof A!="string")for(let[I,b]of A.entries)b!==null&&(R[I]=b);break;case"PARENT_WILDCARD":{if(typeof A!="string")for(let[I,b]of A.entries)b!==null&&(R[I]=b),m===0&&p.push(I);break}case"FIELD":{let I=c?.[y]??S.alias??l.get(y)??S.field;R[I]=A,c===null&&m===0&&p.push(I);break}case"LITERAL_COL":{let I=c?.[y]??S.alias??`'${S.value}'`;R[I]=A,c===null&&m===0&&p.push(I);break}case"AGGREGATE":{let I=fe(S.func,S.distinct,S.arg),b=c?.[y]??S.alias??I;R[b]=A,c===null&&m===0&&p.push(b);break}case"ARITH_AGG_COL":{let I=c?.[y]??S.alias??Fi(S.expr);R[I]=A,c===null&&m===0&&p.push(I);break}case"ARITH_COL":{let I=c?.[y]??S.alias??Gi(S.expr);R[I]=A,c===null&&m===0&&p.push(I);break}case"CASE_COL":{let I=c?.[y]??S.alias??u.get(y)??"case";R[I]=A,c===null&&m===0&&p.push(I);break}case"GROUPING_COL":{let I=c?.[y]??S.alias??`GROUPING(${S.ref.field.tableAlias?`${S.ref.field.tableAlias}.`:""}${S.ref.field.field})`;R[I]=A,c===null&&m===0&&p.push(I);break}case"STRFUNC_COL":{let I=c?.[y]??S.alias??fn(S.expr);R[I]=A,c===null&&m===0&&p.push(I);break}case"SCALAR_VALUE_COL":{let I=c?.[y]??S.alias??_t(S.expr);R[I]=A,c===null&&m===0&&p.push(I);break}case"SCALAR_SUBQUERY_COL":{let I=c?.[y]??S.alias??"(subquery)";R[I]=A,c===null&&m===0&&p.push(I);break}case"WINDOW_COL":{let I=c?.[y]??S.alias;R[I]=A,c===null&&m===0&&p.push(I);break}}}return R}),columns:p}}function $T(e,t,n){return e.map((r,i)=>nm(r,i,t,n))}function BT(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=nm(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function nm(e,t,n,r){switch(e.type){case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${e.name}`);case"FIELD":return e.alias??n.get(t)??e.field;case"LITERAL_COL":return e.alias??`'${e.value}'`;case"AGGREGATE":return e.alias??fe(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Fi(e.expr);case"ARITH_COL":return e.alias??Gi(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??fn(e.expr);case"SCALAR_VALUE_COL":return e.alias??_t(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 VT(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 WT(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=HE(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=HE(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 HE(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function YE(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Gi(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"?fn(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function fn(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Fi(n):n.type==="VARIABLE"?`@${n.name}`:_t(n));return`${e.func}(${t.join(",")})`}function _t(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 fn(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${_t(e.left)}${e.op}${_t(e.right)}`;case"CONCAT_OP":return`${_t(e.left)}||${_t(e.right)}`}}function HT(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:dn(e)}function dn(e){return e.type==="STRING_FUNC"?$i(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?dn(e.left)||dn(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>jE(t.result))||e.elseResult!==null&&jE(e.elseResult):!1}function jE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:dn(e)}function $i(e){return e.args.some(t=>HT(t))}function YT(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=Ui(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"?rs(e,t,n):Mi(e,t,n)}function Mi(e,t,n){return e.type==="STRING_FUNC"?rs(e,t,n):e.type==="CASE_WHEN"?rm(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Mi(e.left,t,n),right:Mi(e.right,t,n)}:e}function Ju(e,t,n){return e.type==="STRING_FUNC"?rs(e,t,n):e.type==="ARITH"?{...e,left:Ju(e.left,t,n),right:Ju(e.right,t,n)}:e}function zE(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=Ui(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:Mi(e,t,n)}function rm(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:zE(r.result,t,n)})),elseResult:e.elseResult===null?null:zE(e.elseResult,t,n)}}function rs(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>YT(r,t,n))}}function qE(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 Hu(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function jT(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,V("number"));else if(r.type==="WINDOW_COL"){if(pl(r)||xo(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,V("number"));else if((xo(r)||dl(r))&&r.arg.type!=="WILDCARD"){let i=Ki(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?V(i):i)}}else r.type==="AGGREGATE"?r.func==="COUNT"||r.func==="SUM"||r.func==="AVG"||r.func==="STDDEV_POP"||r.func==="STDDEV_SAMP"||r.func==="VAR_POP"||r.func==="VAR_SAMP"||r.func==="MEDIAN"?n.set(r.alias,V("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,V("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,V("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,V(bt(r.expr,i=>t?.(i))));return n}function tc(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:u,havingFieldSemanticsResolver:f,aggregateSortKindResolver:c,appliedKlikes:p,sourceColumns:d,tableColumns:E,hiddenQualifiedAliases:m,resolvedGroupingSpec:R,plainGroupByPlan:g,warnings:y,evaluationContext:S}=e,A=jT(t.columns,c);for(let[O,P]of a??[])A.set(O,P);let I=[],b=t.from.alias;I=(n.get(b)??n.get(null)??[]).map(O=>jt(O,b));let C=Hu(JE(E?.get(b),b),void 0,I);for(let O of t.joins){let P=O.table.alias,h=(n.get(P)??[]).map(_=>jt(_,P)),w=Hu(JE(E?.get(P),P),void 0,h);I=IT(I,h,O,{leftColumns:C,rightColumns:w}),C=Hu(C,w,I)}let k=e.residualWhere!==void 0?e.residualWhere:t.where;I=bT(I,k,s,p,l,S);let x=ee(t);if(x.type==="GROUPING_SETS"){if(!R)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");I=CT(I,R,t.columns,c,{maxGeneratedRows:5e4,evaluationContext:S},t.having)}else(x.type==="PLAIN"||ts(t.columns))&&(I=NT(I,x.type==="PLAIN"?x.allItems:[],t.columns,c,x.type==="PLAIN"?g:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:S},t.having));$E(t.columns,I,y);let U=O=>O.aggregateRef?em(O.aggregateRef,c):f?.(O);return $E(t.having,I,y),I=LT(I,t.having,u,U,S),I=ec(I,t.columns,i,o,A,c,S),t.distinct&&(I=_T(I,t.columns,r,s,l,S)),I=Qu(I,t.orderBy,i,o,A,Zu(t.columns,r,s,l,S),S),I=ns(I,t.limit,t.offset),Dn(I,t.columns,r,s,d,l,m,S)}function im(e,t){let n=[];for(let r of e){let i=nc(r.$id?.value),o=zT(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,f]of Object.entries(r)){if(u===t)continue;let c=nc(f?.value);l[`_p.${u}`]={value:c}}for(let[u,f]of Object.entries(s.value??{}))l[u]={value:nc(f?.value)};n.push(l)}}return n}function zT(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function nc(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 qT(e,t={}){let n=new Mt(e).tokenize(),r=new en(n,t).parseStatements();return r.forEach(et),r}function om(e,t={}){let n=ma(e),r=n.diagnostics.find(a=>a.severity==="error");if(n.hasDirectives&&r)throw new Error(`${r.code}: ${r.message} (${r.line}:${r.column})`);let i=n.hasDirectives?e.slice(n.headerEnd):e,o=n.hasDirectives?{...t,dialect1:n.meta.dialect===1}:t;return{statements:qT(i,o),meta:n.meta}}function am(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function sm(e,t){let n=Bi(e);for(let[r,i]of Object.entries(t))n[r]=Bi(i);return n}function lm(e){let t=[...e.preErrors.map(i=>rc(i)),...e.postImageErrors.map(i=>rc(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>rc(i))],n=new Set;t.length>0&&n.add(e.rowNumber);let r={};for(let i of new Set(e.setFields)){if(!Object.prototype.hasOwnProperty.call(e.normalizedPostImage,i))throw new Error(`InternalError: normalized post-image is missing SET field: ${i}`);r[i]=Bi(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function rc(e,t=!1){return{...e,$err_value:t?e.$err_value??"":"",$err_subtable:t?e.$err_subtable??"":"",$err_subrow:t?e.$err_subrow??"":"",$err_subrow_id:t?e.$err_subrow_id??"":""}}function Bi(e,t=new Map){if(e===null||typeof e!="object")return e;let n=e,r=t.get(n);if(r!==void 0)return r;if(Array.isArray(e)){let o=[];t.set(n,o);for(let a of e)o.push(Bi(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=Bi(a,t);return i}function cm(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="KINTONE_FUNC"&&typeof a.name=="string"&&dt(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function oc(e){return cm(e,!0)}function is(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function yt(e,t,n,r,i=!0,o=!0,a=r){let s=oc(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:Se(e.where)}),is(e,e).forEach((l,u)=>yt(l,`${t}.select-source[${u}]`,n,a,a?!1:i,a?!1:o,a))}function Vi(e,t,n,r,i=!0){e.left.type==="UNION"?Vi(e.left,`${t}.left`,n,r,i):yt(e.left,`${t}.left`,n,r,!0,i),yt(e.right,`${t}.right`,n,r,!0,i)}function um(e,t,n,r){if(!r&&on(e)){yt(an(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?yt(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Vi(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?yt(e.query,`${t}.main`,n,r,!1,!r,!0):Vi(e.query,`${t}.main`,n,!0,!1)}function pm(e,t,n,r=!1){switch(e.type){case"SELECT":yt(e,t,n,r);return;case"UNION":Vi(e,t,n,r);return;case"WITH":um(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?um(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Vi(e.query,`${t}.query`,n,!0,!1):yt(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":pm(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=oc(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Se(e.where)}),is(e,e).forEach((o,a)=>yt(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=oc(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Se(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=cm(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}is(e,e).forEach((o,a)=>yt(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:is(e,e).forEach((i,o)=>yt(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function os(e,t){let n=new Map;for(let r of t){if(!dt(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function ac(e,t){return t.eligible===!0&&Qe(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function JT(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER"||n.type==="CROSS")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&Ir(t)}function XT(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function QT(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return Jn(e)?(n.some(r=>r!==Ut)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(Ut)||n.push(Ut)):n.includes(hn)||n.push(hn),[...new Set(n)]}function ic(e,t){let n=e.functionNames[0],r=Jn(n)?Ut:hn,i=QT(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function dm(e,t){let n=[];pm(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let f=XT(i);return r.push(f),{hasRelativeDate:i.functionNames.some(ne),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ic(i)}}if(i.kind==="SELECT"){let f=i.source,c=f.from.cteName===null&&!f.from.subtableCode&&f.joins.length===0,p=Qe(f),d=await t.select(f),E="";try{E=i.where===null?"":z(i.where)}catch{E=""}let m=c&&p==="SIMPLE"&&(f.orderBy.length===0||f.orderMode==="KINTONE_NATIVE")&&d.capability==="EXACT_PUSHDOWN"&&os(E,i.relativeFunctionOccurrences),R,g;if(!m&&i.allowPhase2Prefilter!==!1&&d.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(f);I?.eligible===!0&&ac(f,I)&&(R=I.plan,g=!0,m=!0)}let y;!m&&d.capability==="EXACT_PUSHDOWN"&&(y=Oo({select:f,selectMode:p,capability:d,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,y&&(R=y.prefilterPlan,m=!0));let S;if(!m&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(f);I!==null&&JT(f,I)&&(S=I,m=!0)}let A={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:d,restQuery:E,...R?{prefilterPlan:R,phase2PrefilterEligible:g}:{},...y?{fullScanExactPlan:y,allowForm:y.allowForm}:{},...S?{joinServerFunctionPlan:S,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:S.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!m,allowed:m};if(r.push(A),!m)return{hasRelativeDate:n.some(I=>I.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ic(i,d)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":z(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&os(s,i.relativeFunctionOccurrences),u={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(u),!l)return{hasRelativeDate:n.some(f=>f.functionNames.some(ne)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:ic(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ne)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function sc(e){if(!e.allowed&&e.rejection){let t=Jn(e.rejection.functionName)?Ut:hn,n=e.rejection.reasonCodes.filter(r=>r!==t);throw new Error(`${e.rejection.functionName}: ${t}${n.length>0?` (reason=${n.join(", ")})`:""} (path=${e.rejection.path})`)}}function lc(e,t,n={}){let r=we(e.where,t),i=(S,A="INELIGIBLE")=>({eligible:!1,disposition:A,reasonCodes:S,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=Hi(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=ZT(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!eI(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(r.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(r.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=nI(e.where,t),l=ri(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),u=n.serialize??z,f=n.containsFunctions??os,c=[];for(let S of a.leaves){let A=us(S);if(A===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let I;try{I=u(S)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!f(I,[A]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(S)}let p=tI(l.condition),d=new Set(c),E=ss(e.where,d,p);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let m;try{m=u(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let R=c.map(S=>us(S));if(!f(m,[...new Set(R)])||!rI(m,R))return i(["PREFILTER_FUNCTION_MISSING"]);let g=n.rewriteResidual?n.rewriteResidual(e.where,d):ls(e.where,d);if(g!==null&&Hi(g).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(g===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let y=new Set;for(let S of R)y.add(S);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:g,exactRelativeLeaves:c,relativeFunctionNames:y,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function ZT(e,t){let n=[],r=null,i=o=>{if(r===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}Hi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Hi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(us(o)===null)return;if(we(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Hi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function us(e){return e.right.type==="KINTONE_FUNC"&&dt(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&dt(e.right.values[0].name)?e.right.values[0].name:null}function Hi(e){let t=[],n=r=>{if(r.type==="BINARY"&&us(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function eI(e,t){if(e.length!==t.length)return!1;let n=new Set(t);for(let r of e)if(!n.delete(r))return!1;return n.size===0}function tI(e){let t=new Set,n=r=>{switch(r.type){case"BINARY":t.add(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&n(e),t}function ss(e,t,n){switch(e.type){case"BINARY":return t.has(e)||n.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=ss(e.left,t,n),i=ss(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=ss(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Wi={type:"BOOLEAN",value:!0};function ls(e,t){if(e.type==="BINARY"&&t.has(e))return Wi;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=ls(e.left,t)??Wi,r=ls(e.right,t)??Wi;return as(n)?as(r)?null:r:as(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=ls(e.expr,t)??Wi;return as(n)?Wi:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function as(e){return e.type==="BOOLEAN"&&e.value}function nI(e,t){let n=new Map,r=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(r);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){n.set(s.field,a);return}Object.values(s).forEach(r)}};r(e);let i=new Map,o=new Map;for(let[a,s]of n){let l=t(s);l&&(i.set(a,l.fieldType),l.optionOrder&&o.set(a,new Set(l.optionOrder.keys())))}return{fieldTypes:i,fieldOptions:o}}function rI(e,t){let n=new Map;for(let r of t){if(!Kr.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var Y=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}},rt=class extends Error{constructor(t,n,r){super(`${t}: ${n}`),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}};function fm(e){if(e===null||typeof e!="object")return;let t=e,n=t.code==="ImportSourceReadError"||t.code==="ImportSourceNotRegularFileError"?t.code:t.name==="ImportSourceReadError"||t.name==="ImportSourceNotRegularFileError"?t.name:void 0;if(!n)return;let r=n==="ImportSourceReadError"?"IMPORT source could not be read.":"IMPORT source is not a regular file.";return new rt(n,typeof t.message=="string"&&t.message.length>0?t.message:r,e)}function iI(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function Em(e,t){if(!t)throw new rt("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);try{let n=t(e);if(!n)throw new rt("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);if(typeof n!="object"||typeof n.load!="function")throw new rt("ImportSourceInvalidPayloadError","resolver must return a handle with a load function.");return n}catch(n){throw n instanceof rt?n:fm(n)??new rt("ImportSourceReadError","IMPORT source resolution failed.",n)}}async function cs(e,t){let n=t.get(e);return n||(n=Promise.resolve().then(()=>e.load()).catch(r=>{throw fm(r)??new rt("ImportSourceReadError","IMPORT source could not be read.",r)}).then(r=>{if(r===null||typeof r!="object"||!iI(r.bytes))throw new rt("ImportSourceInvalidPayloadError","loader must return Uint8Array bytes.");if(r.encoding!==void 0&&r.encoding!=="utf8"&&r.encoding!=="sjis")throw new rt("ImportSourceInvalidPayloadError","loader returned an unsupported encoding.");if(r.bytes.byteLength>10485760)throw new rt("ImportSourceTooLargeError","source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function oI(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new Y(`invalid ${t.toUpperCase()} byte sequence.`)}}function aI(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let u=e[a];if(i){if(u==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=u,a++;continue}if(o&&u!==","&&u!=="\r"&&u!==`
9
+ `?n+=2:n<e.length&&n++,{contentEnd:r,next:n}}function mf(e,t={}){let n=Ta(e),r=[...n.diagnostics],i=e,o=[],a=tr(e).filter(l=>l.source==="logical"),s=LA(t.apps);for(let l of a)s?.has(l.logicalName)||r.push(je(e,l.start,{severity:"error",code:ce.LOGICAL_APP_UNRESOLVED,message:t.apps===void 0?`Logical app LAPP_${l.logicalName} requires parseScript option apps.`:`Logical app LAPP_${l.logicalName} is not defined in parseScript option apps.`}));if(a.length>0&&!r.some(l=>l.code===ce.LOGICAL_APP_UNRESOLVED)){let l=ko(e,"flow",{resolveLogicalApp(u){return s.get(u)}});i=l.normalizedSql,o=l.rewriteSegments}if(a.length>0&&r.some(l=>l.code===ce.LOGICAL_APP_UNRESOLVED))return{meta:n.meta,statements:[],statementRanges:[],diagnostics:r};try{let l=new rn(new kt(i).tokenize(),{dialect1:n.meta.dialect===1,import:t.enableImport===!0}).parseStatementsWithRanges(),u=l.statementRanges.map(d=>({start:ru(d.start,o,"start"),end:ru(d.end,o,"end")}));return l.statements.forEach((d,c)=>{try{Ze(d)}catch(p){r.push(je(e,u[c]?.start??0,{severity:"error",code:ce.PARSE_ERROR,message:Ef(p),statementIndex:c}))}}),{meta:n.meta,statements:l.statements,statementRanges:u,diagnostics:r}}catch(l){let u=l instanceof T?l.token.pos:l instanceof Fe?l.pos:0,d=ru(u,o,"start");return r.push(je(e,d,{severity:"error",code:l instanceof Fe?ce.LEX_ERROR:l instanceof T&&l.rawMessage.includes("-- @ksql dialect: 1")?ce.DIALECT1_REQUIRED:ce.PARSE_ERROR,message:l instanceof T?l.rawMessage:Ef(l),statementIndex:_A(e,d)})),{meta:n.meta,statements:[],statementRanges:[],diagnostics:r}}}function LA(e){if(e===void 0)return;let t=new Map;for(let[n,r]of Object.entries(e))try{t.set(er(n),r)}catch{}return t}function Ef(e){return e instanceof Error?e.message:String(e)}function _A(e,t){try{let n=new kt(e.slice(0,t)).tokenize(),r=0,i=!1;for(let o of n){if(o.kind==="EOF")break;o.kind===";"?(i&&r++,i=!1):i=!0}return r}catch{return 0}}function ru(e,t,n){if(t.length===0)return e;for(let r of t){if(e<r.normalizedStart||e>r.normalizedEnd)continue;let i=r.normalizedEnd-r.normalizedStart,o=r.sourceEnd-r.sourceStart;return i===o?r.sourceStart+Math.min(e-r.normalizedStart,o):e===r.normalizedStart?r.sourceStart:e===r.normalizedEnd?r.sourceEnd:n==="start"?r.sourceStart:r.sourceEnd}return t[t.length-1].sourceEnd}function Rf(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function hr(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function vA(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 iu(e){return hr(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function gf(e){return!iu(e)&&(vA(e.type)||hr(e.type))}var yf=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function Ke(e,t){for(let n of t)e.add(n)}function Ia(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"&&yf.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=>Ia(i,t)):Ia(r,t))}function wa(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"&&!yf.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=>wa(i,t)):wa(r,t))}function En(e){let t=new Set;if(hr(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Ke(t,yr(e));break;case"UNION":Ke(t,Af(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&Ke(t,En(n.query));Ke(t,En(e.query));break;case"CREATE_TEMP_TABLE":Ke(t,En(e.query));break;default:break}return Ia(e)&&t.add("STATISTICAL_AGGREGATE"),wa(e)&&t.add("AGGREGATE"),t}function hf(e){return En(e).size>0}function Af(e){let t=e.left.type==="SELECT"?yr(e.left):Af(e.left);return Ke(t,yr(e.right)),e.all||t.add("DISTINCT"),t}function yr(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"&&Ke(t,yr(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Ke(t,gr(i.condition));return Ke(t,gr(e.where)),Ke(t,gr(e.having)),Ia(e)&&t.add("STATISTICAL_AGGREGATE"),wa(e)&&t.add("AGGREGATE"),t}function gr(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")&&Ke(t,yr(e.right.query));break;case"LOGICAL":Ke(t,gr(e.left)),Ke(t,gr(e.right));break;case"NOT":case"GROUP":Ke(t,gr(e.expr));break;case"EXISTS":Ke(t,yr(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Sf(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Tf(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 ba=16,If=64,ue=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function Ei(e,t,n){if(Array.isArray(e)){for(let r of e)Ei(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.cteName;typeof i=="string"&&i.startsWith("#")&&t.add(i);let o=r.appId;typeof o=="number"&&o>0&&n.add(o);for(let a of Object.values(r))Ei(a,t,n)}}var DA=new Set(["=","!=","<>",">","<",">=","<="]);function ou(e,t,n=!1){if(Array.isArray(e)){for(let r of e)ou(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(ir(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&&DA.has(String(r.op));ou(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?u:o?n:!1)}}}function xA(e){let t=e.type==="EXPLAIN"?e.query:e;return hr(t.type)||t.type==="VALIDATE"}function au(e){if(Array.isArray(e)){for(let t of e)au(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&Fl(e);for(let n of Object.values(t))au(n)}}function mi(e){if(e.length===0)throw new ue("ArgumentError: SQL is empty.",0);if(e.forEach((c,p)=>{try{au(c)}catch(f){throw f instanceof Error?new ue(f.message,p):f}try{fr("phase15b",c),Ze(c)}catch(f){throw f instanceof Ie||f instanceof pi?new ue(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new ue(f.message,p):f}}),e.length===1){let c=e[0].type;if(c==="SET_VARIABLE"||c==="DECLARE_VARIABLE"){let p=c==="SET_VARIABLE"?"SET":"DECLARE";throw new ue(`ArgumentError: ${p} variable requires a batch.`,0)}if(c==="CREATE_TEMP_TABLE"||c==="DROP_TEMP_TABLE"){let p=c==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new ue(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((c,p)=>{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 v=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 ue(v,p)}let E=Rf(c),m=[],R=[],g=new Set,y=new Set,A=new Set,h=[];ou(c,h);let I=new Set;for(let v of h){let P=o.get(v.name);if(P===void 0)throw new ue(`ParseError: variable @${v.name} is not defined before statement ${p+1}.`,p);if(P.kind==="scalar"&&v.kind==="array-in-list")throw new ue(`ParseError: scalar variable @${v.name} cannot be used as IN @${v.name}; use IN (@${v.name}) instead.`,p);if(P.kind==="array"&&v.kind!=="array-in-list")throw new ue(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,p);if(P.relativeDate&&xA(c))throw new ue(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,p);if(P.relativeDate&&!v.relativeDateAllowed)throw new ue(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(v.name)||(P.referencedBy.push(p),I.add(v.name))}if(c.type==="SET_VARIABLE"||c.type==="DECLARE_VARIABLE"){if(o.has(c.name))throw new ue(`ParseError: variable @${c.name} is already defined.`,p);if(o.set(c.name,{index:p,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>If)throw new ue(`ParseError: batch exceeds ${If} variables.`,p)}c.type==="CREATE_TEMP_TABLE"?Ei(c.query,g,y):c.type==="DROP_TEMP_TABLE"||Ei(c,g,y);let b=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let v=new Set,P=new Set;Ei(c.select,v,P),b=v.size>0&&P.size===0}for(let v of g){let P=t.get(v);if(P===void 0)throw new ue(`ParseError: temp table ${v} is not defined in this batch.`,p);A.add(P)}if(f){let v=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(x=>x.kind==="SUBTABLE")?[...new Set(c.targets.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children)),"$err_subtable","$err_subrow","$err_source_row"]:c.type==="UPDATE"?["$id",...c.assignments.map(x=>x.field)]:"fields"in c?c.fields:[],P=JSON.stringify(v),k=t.get(f);if(k===void 0){if(t.set(f,p),n.set(f,P),r.push(f),m.push(f),t.size>ba)throw new ue(`ParseError: batch exceeds ${ba} temp tables.`,p)}else{if(n.get(f)!==P)throw new ue(`ParseError: validation error table ${f} has a different payload schema.`,p);A.add(k)}}if(c.type==="CREATE_TEMP_TABLE"){if(t.has(c.name))throw new ue(`ParseError: temp table ${c.name} is already defined.`,p);if(t.set(c.name,p),r.push(c.name),m.push(c.name),t.size>ba)throw new ue(`ParseError: batch exceeds ${ba} temp tables.`,p)}if(c.type==="DROP_TEMP_TABLE"){let v=t.get(c.name);if(v===void 0)throw new ue(`ParseError: temp table ${c.name} is not defined in this batch.`,p);A.add(v),R.push(c.name),t.delete(c.name)}i.push({index:p,statementType:E,isDml:iu(c),isReadOnly:gf(c),hasWhere:Sf(c),insertValuesCount:Tf(c),appIds:[...y].sort((v,P)=>v-P),tempTablesCreated:m,tempTablesReferenced:[...g],tempTablesDropped:R,dependsOn:[...A].sort((v,P)=>v-P),tempOnlySource:b,targetAppId:hr(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:hf(c)})});let s=i.some(c=>c.isDml),l=i.some(c=>c.isValidationOnly),u=i.some(c=>c.requiresCompleteInput),d=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:d,warnings:d.filter(c=>c.referencedBy.length===0).map(c=>`variable @${c.name} is never used.`),statements:i}}function mn(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 UA(e,t){return e<t?-1:e>t?1:0}function wf(e){if(e==="")return{band:0};let t=Ce(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 MA(e,t){let n=wf(e),r=wf(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?Ko(n.value,r.value):n.band===5&&r.band===5?mn(n.value,r.value):0}function bf(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 kA(e,t,n){let r=bf(e,n),i=bf(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=mn(r.normalizedId,i.normalizedId);return o!==0?o:mn(r.display,i.display)}function FA(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 Nf(e,t){let n=t.optionOrder??new Map,i=[...new Set(FA(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(Cf),i}function Cf(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:mn(e.label,t.label)}function KA(e,t,n){let r=Nf(e,n),i=Nf(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=Cf(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function mt(e,t,n){switch(n.compareMode){case"string":return mn(e,t);case"number":return MA(e,t);case"recordNumber":return kA(e,t,n.fieldType==="RECORD_NUMBER");case"option":return KA(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Wt(e,t,n,r=B("string")){let i=mt(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 Pf(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=Ce(o),l=Ce(a),u=s!==null&&l!==null?Ko(s,l):UA(Number(o),Number(a));if(u!==0)return u}return mn(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function me(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=me(e.left,t,n),i=me(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 De(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 ze(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(De(e.left,t,n,r,i)),a=Number(De(e.right,t,n,r,i));switch(e.op){case"+":return o+a;case"-":return o-a;case"*":return o*a;case"/":return a!==0?o/a:NaN;case"%":return a!==0?o%a:NaN}}}}function Vt(e,t,n,r,i={}){switch(e.type){case"CASE_WHEN":return vf(e,t,n,r,i);case"SCALAR_ARITH":{let o=Vt(e.left,t,n,r,i),a=Vt(e.right,t,n,r,i);if(o===null||a===null)return null;let s=Number(o),l=Number(a);switch(e.op){case"+":return s+l;case"-":return s-l;case"*":return s*l;case"/":return l!==0?s/l:NaN;case"%":return l!==0?s%l:NaN}}case"CONCAT_OP":{let o=Vt(e.left,t,n,r,i),a=Vt(e.right,t,n,r,i);return`${o??""}${a??""}`}default:return De(e,t,n,r,i)}}function Na(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 GA(e){return e>=55296&&e<=56319}function $A(e){return e>=56320&&e<=57343}function Pa(e,t){return t>0&&t<e.length&&GA(e.charCodeAt(t-1))&&$A(e.charCodeAt(t))}function Of(e,t){if(Number.isNaN(e)||e===Number.NEGATIVE_INFINITY)return 0;if(e===Number.POSITIVE_INFINITY)return t;let n=Math.trunc(e);return n<0?Math.max(t+n,0):Math.min(n,t)}function lu(e,t){let n=Math.min(Math.max(0,t),e.length);return Pa(e,n)&&(n-=1),e.slice(0,n)}function BA(e,t){let n=Math.max(0,e.length-t);return Pa(e,n)&&(n+=1),e.slice(n)}function WA(e,t,n){let r=Of(t,e.length),i=Of(n,e.length);return i<=r?"":(Pa(e,r)&&(r+=1),Pa(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function VA(e,t){let n=e.repeat(Math.ceil(t/e.length));return lu(n,t)}var HA=200,Ri=new Map;function YA(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 su(e,t,n=!1){let r=YA(t)+(n?"g":""),i=`${e}\0${r}`,o=Ri.get(i);if(o!==void 0)return o.lastIndex=0,o;let a;try{a=new RegExp(e,r)}catch(s){let l=s instanceof Error?s.message:String(s);throw new Error(`ArgumentError: invalid regular expression: ${l}`)}if(Ri.size>=HA){let s=Ri.keys().next().value;s!==void 0&&Ri.delete(s)}return Ri.set(i,a),a}function jA(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function zA(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 qA(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let d=Number(s+l);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=2;continue}}let u=Number(s);if(u>=1&&u<=n.length){i+=n[u-1]??"",o+=1;continue}}i+="$"}return i}function JA(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),d=a.slice(0,u);return qA(n,o,d,l?s:void 0)})}function Ae(e,t,n,r,i={}){ha(e.func,e.args);let o=e.args.map(a=>iS(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 WA(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?"":lu(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 lu(a,s);let l=o[2]??" ";if(l==="")return a;let u=VA(l,s-a.length);return e.func==="LPAD"?u+a:a+u}case"GREATEST":case"LEAST":return Pf(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 su(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{jA(o[2]);let a=zA(o[4]),s=su(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):JA(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return su(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,d)=>{l.has(u)||l.set(u,s[d])}),[...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 Na("round",Number(o[0]??"0"),Number(o[1]??"0"));case"FLOOR":return Na("floor",Number(o[0]??"0"),Number(o[1]??"0"));case"CEIL":return Na("ceil",Number(o[0]??"0"),Number(o[1]??"0"));case"TRUNCATE":return Na("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 nS(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 Ca(o[0])?String(uu(o[0])+1):"";case"QUARTER":return Ca(o[0])?String(Math.ceil(Number(o[0].slice(5,7))/3)):"";case"WEEK":return Ca(o[0])?String(_f(o[0])):"";case"DATE_FORMAT":return QA(o[0]??"",o[1]??"");case"DATEDIFF":return ZA(o[0]??"",o[1]??"");case"DATE_ADD":return eS(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return tS(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 gi(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 Oa(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 Ca(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=Oa(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 uu(e){return Oa(e).getUTCDay()}function Lf(e){let t=Oa(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function XA(e){return Lf(e).getUTCFullYear()}function _f(e){let t=Lf(e),n=t.getUTCFullYear(),r=Oa(`${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 QA(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=gi(e),l=Ca(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(uu(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][uu(e)]:"";case"%v":return l?String(_f(e)).padStart(2,"0"):"";case"%G":return l?String(XA(e)).padStart(4,"0"):"";default:return u}})}function ZA(e,t){if(e.length<10||t.length<10)return"0";let n=gi(e),r=gi(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 eS(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}=gi(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=c=>{let p=a.getUTCDate();a.setUTCDate(1),c();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(p,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),u=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${l}-${u}-${d}`}function tS(e){if(!e||e.length<10)return e;let{y:t,mo:n}=gi(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 nS(e,t){if(/^-?\d+$/.test(t.trim()))return rS(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,d=i.toFixed(u),[c,p=""]=d.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?c.replace(/\B(?=(\d{3})+(?!\d))/g,","):c,E=p?`${f}.${p}`:f;return n?E+"%":E}function rS(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 iS(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(yi(e,t)):e.type==="NUMBER"?q(e):String(De(e,t,n,r,i))}function yi(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(yi(e.left,t)),r=Number(yi(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 oS=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]),aS=new Set(["COALESCE","ISNULL","NULLIF","GREATEST","LEAST"]);function cu(e){return e==="number"||e==="string"?e:e?.compareMode==="number"||e?.compareMode==="recordNumber"?"number":"string"}function sS(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function lS(e,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":hi(e.arg,t)}function Nt(e,t){if(e.func==="CAST"){let n=e.args[1];return n?.type==="STRING"&&n.value==="NUMBER"?"number":"string"}return oS.has(e.func)||aS.has(e.func)&&e.args.length>0&&e.args.every(n=>hi(n,t)==="number")?"number":"string"}function hi(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 Nt(e,t);case"AGG_REF":return lS(e,t);case"FIELD":return cu(t?.(e));case"FIELD_REF":return cu(t?.(sS(n.field)));case"AGG_GROUP_KEY":return cu(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=>hi(a,t)==="number")?"number":"string"}default:return"string"}}function pe(e,t,n,r,i,o={}){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return uS(e,t,n,r,i,o);case"NULL_CHECK":return mS(e,t);case"LOGICAL":return RS(e,t,n,r,i,o);case"NOT":return!pe(e.expr,t,n,r,i,o);case"GROUP":return pe(e.expr,t,n,r,i,o);case"EXISTS":{let a=e.resolved;return e.not?!a:a}}}function uS(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=pS(e.left,s,i);return cS(e.op,a,e.right,t,s,n,l,i,o)}function cS(e,t,n,r,i,o,a=B("string"),s,l={}){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(ES(n.values),d=new Set(n.values.map(p=>p.type==="NUMBER"?i==="NUMBER"?q(p):String(p.value):p.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let c=fS(t,d,i);return e==="IN"?c:!c}if(e==="LIKE"){let d=pu(n,r,o,void 0,l);return Ff(t,d)}if(e==="NOT_LIKE"){let d=pu(n,r,o,void 0,l);return!Ff(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let u=pu(n,r,o,s,l);return Wt(e,t,u,a)}function pS(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?ne({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(Nt(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 B("number");if(o.type==="STRING_FUNC")return B(Nt(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)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var Df=new Set(["CHECK_BOX","MULTI_SELECT"]),xf=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),dS=new Set(["CREATOR","MODIFIER"]);function fS(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>Wt("=",e,a,o))}let i;if(Df.has(n)||xf.has(n)||dS.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Df.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):xf.has(n)?!Array.isArray(i)||!i.every(Uf)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Uf(i)?t.has(i.code):r()}function Uf(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function ES(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}: ${Mt}`)}function mS(e,t){let n=Kf(e.field,t);return e.not?n!=="":n===""}function RS(e,t,n,r,i,o={}){return e.op==="AND"?pe(e.left,t,n,r,i,o)&&pe(e.right,t,n,r,i,o):pe(e.left,t,n,r,i,o)||pe(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(yi(e.expr,t));if(e.type==="ARITH_FIELD")return String(me(e.expr,t,i));if(e.type==="CASE_FIELD")return ze(e.expr,t,n,r,i);if(e.type==="GROUPING_FIELD")return Pn(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 pu(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 gS(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(me(e.expr,t,i));case"CASE_VALUE":return ze(e.expr,t,n,r,i);case"ARRAY":return e.elements.map(o=>o.value).join(",")}}function ze(e,t,n,r,i={}){for(let o of e.branches)if(pe(o.condition,t,n,void 0,r,i))return kf(o.result,t,n,r,i);return e.elseResult!==null?kf(e.elseResult,t,n,r,i):""}function vf(e,t,n,r,i={}){for(let o of e.branches)if(pe(o.condition,t,n,void 0,r,i))return Mf(o.result,t,n,r,i);return e.elseResult===null?null:Mf(e.elseResult,t,n,r,i)}function Mf(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[wt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?me(e,t,i):Vt(e,t,n,r,i)}function kf(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[wt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(me(e,t,i)):String(De(e,t,n,r,i))}function Gf(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 gS(e){throw re(e)?new Error(`${e}: ${bn}`):Zn(e)?new Error(`${e}: ${Mt}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var La=new Map,yS=200;function Ff(e,t){if(!Rd(t))return e.includes(t);let n=La.get(t);if(!n){let r="^";for(let i=0;i<t.length;i++){let o=t[i];o==="%"?r+=".*":o==="_"?r+=".":r+=o.replace(/[.+*?^${}()|[\]\\]/g,"\\$&")}r+="$",n=new RegExp(r,"u"),La.size>=yS&&La.clear(),La.set(t,n)}return n.test(e)}function Ar(e){return Bf(e)}function $f(e){return Bf(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Bf(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 xe("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 xe("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 xe(e){return new T(e,{kind:"EOF",value:"CHECK",pos:0})}function _a(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!pe(a.condition,t,n))continue;let s=De(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function du(e){if(on(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 hS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),AS=new Set(["CHECK_BOX","MULTI_SELECT"]);function Si(e,t=new Map,n={}){let r=e.values.map(i=>SS(e.fields,i,t,n));return wi(r,100).map(i=>({app:e.appId,records:i}))}function SS(e,t,n,r){let i={};return e.forEach((o,a)=>{let s=t[a];s.type==="CASE_VALUE"?i[o]={value:Ht(s.expr,{},n.get(o),r)}:i[o]={value:Ct(s,n.get(o))}}),i}function Ti(e){du(e.where);let t=eE(e);return{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function Ii(e,t,n=new Map){let r=TS(e.assignments,n);return wi(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function TS(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:Ct(i,t.get(r))});return n}function Yf(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 xa(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 fu(e){du(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?jf(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Sr(n,t):n.type==="STRING_FUNC"?Eu(n,t):n.type==="CASE_VALUE"&&zf(n.expr,t);return eE(e).forEach(n=>t.add(n)),{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function jf(e,t){Ai(e.left,t),Ai(e.right,t)}function Ai(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?jf(e,t):e.type==="STRING_FUNC"&&Eu(e,t)}function Eu(e,t){for(let n of e.args)IS(n,t)}function IS(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Da(e,t);return}Sr(e,t)}function Sr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Eu(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Sr(e.left,t),Sr(e.right,t);return}e.type==="CASE_WHEN"&&zf(e,t)}function Da(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&wS(e.arg,t);return}e.type==="AGG_ARITH"&&(Da(e.left,t),Da(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function wS(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Ai(e,t):Sr(e,t)}function Wf(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){Da(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Ai(e,t);return}Sr(e,t)}}function zf(e,t){for(let n of e.branches)va(n.condition,t),Wf(n.result,t);e.elseResult!==null&&Wf(e.elseResult,t)}function va(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&Ai(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":va(e.left,t),va(e.right,t);break;case"NOT":case"GROUP":va(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function mu(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=qf(o),l={};for(let{field:u,value:d}of e.assignments)l[u]={value:Ru(d,s,n.get(u),o,r)};return{id:a,record:l}});return wi(i,100).map(o=>({app:e.appId,records:o}))}function Ru(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?yu(e,r):me(e,t,i));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(De(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 Ht(e.expr,t,n,i);if(e.type==="SOURCE_FIELD")throw new ae("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return Ct(e,n)}function Ua(e,t,n,r={}){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return q(e);if(e.type==="ARITH")return String(me(e,t,r));if(e.type==="CASE_VALUE")return ze(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 bS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function gu(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=qf(o),u={};for(let{field:d,value:c}of e.assignments){let p=n.get(d);if(c.type==="SOURCE_FIELD"){if(bS.has(p??""))throw new ae(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F ${p} \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(a,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((p==="NUMBER"||p==="CALC")&&f!==""&&!Number.isFinite(Number(f)))throw new ae(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${f}`);u[d]={value:Ct({type:"STRING",value:f},p)}}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[d]={value:String(yu(c,o))}:c.type==="SCALAR_ARITH"||c.type==="CONCAT_OP"?u[d]={value:String(De(c,l,void 0,void 0,r))}:c.type==="CASE_VALUE"?u[d]={value:Ht(c.expr,l,p,r)}:u[d]={value:Ct(c,p)}}}return{id:s,record:u}});return wi(i,100).map(o=>({app:e.appId,records:o}))}function qf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function yu(e,t){let n=Vf(e.left,t),r=Vf(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 Vf(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 yu(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 hu(e){return du(e.where),{app:e.appId,query:z(e.where),fields:["$id"],totalCount:!1}}function Jf(e,t){return wi(t,100).map(n=>({app:e,ids:n}))}function Xf(e){return hS.has(e??"")}function NS(e){return AS.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 Qf(e,t){return Xf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):NS(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?CS(e):t==="DATE"?PS(e):e}function Zf(e,t){return Xf(t)?e.map(n=>({code:n})):e}function Hf(e,t,n,r){if(e.type==="ARRAY")return Zf(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"?Qf(e.value,n):e.type==="STRING_FUNC"?Ae(e,t,void 0,void 0,r):e.type==="FIELD_REF"||e.type==="ARITH"?String(me(e,t,r)):String(De(e,t,void 0,void 0,r))}function eE(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(Ar(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Ht(e,t,n,r={}){for(let i of e.branches)if(pe(i.condition,t,void 0,void 0,void 0,r))return Hf(i.result,t,n,r);return e.elseResult!==null?Hf(e.elseResult,t,n,r):""}function Ct(e,t){let n=Au(e,t);if(!n.ok)throw new ae(n.message);return n.value}function Au(e,t){try{return{ok:!0,value:OS(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function OS(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 Qf(e.value,t);case"NUMBER":return q(e);case"ARRAY":return Zf(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 wi(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 Su=new Set(["CHECK_BOX","MULTI_SELECT"]),LS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function bi(e){throw new Error(`ArgumentError: ${e}`)}function tE(e,t,n){let r=_S(n.fieldType,e.field),i=vS(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let g of e.operations){let y=g.value;y!==""&&(g.kind==="ADD"?(s.has(y)||a.push(y),s.add(y)):l.add(y))}for(let g of s)l.has(g)&&bi(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(g)}.`);let u=i.filter(g=>!l.has(g)),d=a.filter(g=>!o.has(g)),c=[...u,...d],p=new Set(i.filter(g=>l.has(g))).size,f=new Set,E=new Set,m=e.operations.map(g=>{let y=g.kind==="ADD"?f:E,A=!y.has(g.value);return y.add(g.value),{kind:g.kind,value:g.value,changed:g.value!==""&&A&&(g.kind==="ADD"?!o.has(g.value):o.has(g.value))}}),R=Su.has(r)?c:c.map(g=>({code:g}));return{field:e.field,fieldType:r,operations:m,postImageValue:R,addedValues:d.length,removedValues:p,changedValues:d.length+p}}function _S(e,t){return Su.has(e)||LS.has(e)?e:bi(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function vS(e,t,n){if(!Array.isArray(e))return bi(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Su.has(t)?typeof i!="string"?bi(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?bi(`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 wu(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 Yt(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)Tu(s.field,null,r),DS(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(ef(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,d=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,d);for(let c of s.operations)if(c.kind==="PATCH"){for(let p of c.assignments)Tu(p.field,s.field,r,d),Iu(p.value,s.field,r,d);c.selector.kind==="WHERE"&&Iu(c.selector.where,s.field,r,d)}else if(c.kind==="APPEND"){let p=new Set;for(let f of c.fields)p.has(f)&&X(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),Tu(f,s.field,r,d)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&Iu(c.selector.where,s.field,r,d)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function DS(e,t){Ni(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 Tu(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 Iu(e,t,n,r){Ni(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 Ma(e,t){let n=Yt(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)Ni(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function ka(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=sE(i?.value);return n}function rE(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Yt(t,r),o=Cu(n.$id?.value,"APPLY snapshot $id"),a=wu(t);return o!==a&&X(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),oE(t,n,i,o,e.evaluationContext)}function iE(e,t,n,r=Yt(e,n),i={}){let o=new Set;return t.map(a=>{let s=Cu(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&X(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),oE(e,a,r,s,i)})}function oE(e,t,n,r,i={}){let o=Cu(t.$revision?.value,"APPLY snapshot $revision"),a=[],s=[];for(let c of e.applyBlocks){if(c.targetKind==="MULTI_VALUE"){let M=n.targetMultiValueFields.get(c.field);M||X(`APPLY multi-value metadata for ${c.field} is missing.`),s.push(tE(c,t[c.field]?.value,M));continue}let p=n.childrenByTable.get(c.field),f=KS(t,c.field),E=new Set;for(let M of f)M.id||X(`APPLY snapshot for ${c.field} contains a row without _rid.`),E.has(M.id)&&X(`APPLY snapshot for ${c.field} contains duplicate _rid ${M.id}.`),E.add(M.id);let m=M=>M.field==="_rid"?"SINGLE_LINE_TEXT":M.field==="_idx"?"NUMBER":p.get(M.field)?.fieldType,R=[],g=[],y=[],A=new Set,h=new Set,I=new Set,b=c.operations.some(M=>M.kind==="REMOVE");for(let[M,L]of c.operations.entries()){if(L.kind==="APPEND"){let N=bu(L,p,c.field,i);y.push({kind:"APPEND",addedRows:N.length}),g.push(...N);continue}if(L.kind==="REMOVE"){let N=MS(L,f,m,c.field,i);L.expectRows&&nE(L.expectRows,N.length,r,c.field,M,L.kind),y.push({kind:"REMOVE",removedRows:N.length});for(let C of N){let S=f[C].id;h.has(C)&&X(`APPLY row ${S} is selected by both PATCH and REMOVE.`),I.has(C)&&X(`APPLY removes row ${S} more than once.`),I.add(C)}continue}if(L.kind!=="PATCH")continue;let _=US(L,f,m,c.field,i);L.expectRows&&nE(L.expectRows,_.length,r,c.field,M,L.kind),y.push({kind:"PATCH",matchedRows:_.length,changedRows:_.length});for(let N of _){let C=f[N];I.has(N)&&X(`APPLY row ${C.id} is selected by both PATCH and REMOVE.`),h.add(N);let S=ka(C,N);for(let w of L.assignments){let O=`${C.id}\0${w.field}`;A.has(O)&&X(`APPLY patches cell ${C.id}.${w.field} more than once.`),A.add(O),R.push({rowIndex:N,field:w.field,value:Ua(w.value,S,m,i)})}}}let v=new Map;for(let M of R){let L=v.get(M.rowIndex)??{};L[M.field]={value:M.value},v.set(M.rowIndex,L)}let k=[...f.flatMap((M,L)=>I.has(L)?[]:[{id:M.id,value:{...M.value,...v.get(L)??{}}}]),...g],x={table:c.field,operations:y,changedSubtableRows:v.size+I.size+g.length,deletedRows:I.size,snapshotRowIds:f.map(M=>M.id),postImageRows:k};b?a.push({...x,payloadShape:"FULL_SURVIVORS",removedRowIds:f.flatMap((M,L)=>I.has(L)?[M.id]:[]),payloadRows:k.map(M=>({...M.id===void 0?{}:{id:M.id},value:M.value}))}):a.push({...x,payloadShape:"PATCH_ONLY",payloadRows:[...f.map((M,L)=>{let _=v.get(L);return _?{id:M.id,value:_}:{id:M.id}}),...g.map(M=>({value:M.value}))]})}let l=GS(t),u={};for(let c of e.assignments){let p=n.fieldsByCode.get(c.field)?.fieldType;u[c.field]={value:Ru(c.value,l,p,t,i)}}let d={...t};Object.assign(d,u);for(let c of a)d[c.table]={value:c.postImageRows};for(let c of s)d[c.field]={value:c.postImageValue};return{app:e.appId,parentId:r,revision:o,parentRows:1,changedSubtableRows:a.reduce((c,p)=>c+p.changedSubtableRows,0),parentValues:u,postImage:d,tables:a,multiValues:s}}function nE(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 Fa(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 d=a[u];return d?.value?l.id===void 0?{value:d.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(c=>[c,d.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 bu(e,t,n,r={}){return e.values.map(i=>({value:xS(e,i,t,n,r)}))}function xS(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?Nu(s):l.type==="CASE_VALUE"?Ht(l.expr,{},s.fieldType,i):Ct(l,s.fieldType)}}return a}function Nu(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 US(e,t,n,r,i={}){return aE(e.selector,t,n,r,i)}function MS(e,t,n,r,i={}){return aE(e.selector,t,n,r,i)}function aE(e,t,n,r,i={}){if(e.kind==="ALL_ROWS")return t.map((u,d)=>d);let o=e.where,a=t.flatMap((u,d)=>pe(o,ka(u,d),n,void 0,void 0,i)?[d]:[]),s=kS(o);s!==null&&a.length===0&&X(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=FS(o);return l!==null&&a.length===0&&X(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function kS(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 FS(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 KS(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 Cu(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&X(`${t} must be a positive integer.`),n}function GS(e){let t={};for(let[n,r]of Object.entries(e))t[n]=sE(r?.value);return t}function sE(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 Ni(e,t){if(Array.isArray(e)){e.forEach(r=>Ni(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))Ni(r,t)}function Re(e){throw new Error(`ArgumentError: ${e}`)}function Ga(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?Re("APPLY snapshot $revision must be a positive integer."):t}function Ci(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),$S(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function lE(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 $S(e){let t=Pu(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(d=>d.id===void 0?[]:[d.id]);for(let d of e.payloadRows)d.id===void 0&&d.value===void 0&&Re(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Pu(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&Re(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let d=e.payloadRows.slice(0,t.length).map(p=>p.id??"");Ka(t,d,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(p=>p.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let c=e.postImageRows.slice(0,t.length).map(p=>p.id??"");Ka(t,c,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(p=>p.id!==void 0)&&Re(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(d=>d.kind==="REMOVE")||Re(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Pu(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&Re(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&Re(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(d=>d.id===void 0?[]:[d.id]),o=new Set(r),a=new Set(i);for(let d of r)a.has(d)&&Re(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${d}.`);let s=t.filter(d=>!o.has(d));Ka(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(d=>d.id??"");Ka(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(d=>d.id!==void 0)||e.postImageRows.slice(i.length).some(d=>d.id!==void 0))&&Re(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(d=>d.value===void 0)&&Re(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((d,c)=>!Ou(d.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(d=>!u.has(d)))&&Re(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Pu(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 Ka(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&Re(n)}function Ou(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)=>Ou(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)&&Ou(n[a],r[a]))}function uE(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 cE(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=uE(t.digits,"digits",1,30),r=uE(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 pE(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"]),WS=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function qe(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=VS(e);if(i!==""&&!HS(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=Pi(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:YS(t.fieldType),message:o}}if(t.required&&$a(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!$a(r)&&t.fieldType==="NUMBER"){let i=String(r),o=Ce(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&&Go(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&&Go(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}=pE(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(!$a(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!vn(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!$a(r)&&WS.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 VS(e){return e==null?"":Ba(e)&&e.type==="NUMBER"?q(e):Ba(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function HS(e,t){if(t==="DATE")return vn(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return vn(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)?vn(n.slice(0,10),"DATE")&&vn(n.slice(11),"TIME"):vn(n,"DATETIME")}function Pi(e,t){if(Ba(e)){let r=Au(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 Ba(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function Dn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Ba(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function $a(e){return e===""||Array.isArray(e)&&e.length===0}function YS(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function vn(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)&&vn(l,"TIME")}var Tr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Lu(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??(i.record={});for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(d=>typeof d=="object"&&d!==null&&"code"in d),u=a;try{u=Pi(a,s)}catch{}i.record[o]={value:l?a:u}}}}function _u(e,t,n,r,i,o,a,s=[],l=!0,u=!0,d={}){let c=new Map(i.map(R=>[R.code,R])),p=[],f=new Set,E=[];d.validateUpdateBuiltIns===!1&&Lu(e,r,i);let m;for(let R of e){R.record??(R.record={});let g=u?[...R.preErrors]:[],y=[],A=[],h=R.mode==="create"||d.validateUpdateBuiltIns!==!1;for(let P of r){if(!R.payload.has(P))continue;let k=R.payload.get(P),x=c.get(P).fieldType,M=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(x)&&Array.isArray(k)&&k.every(_=>typeof _=="object"&&_!==null&&"code"in _);if(!h)continue;let L=qe(k,c.get(P),a);L.ok?R.record[P]={value:M?k:L.value}:y.push({field:P,code:L.code,message:L.message})}if(l&&R.mode==="create")for(let P of i){if(P.inSubtable||R.payload.has(P.code))continue;if(Dn(P.defaultValue)){let x=qe("",P,a);x.ok?P.required&&y.push({field:P.code,code:"ERR_REQUIRED",message:`${P.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:P.code,code:x.code,message:x.message})}else{let x=qe(P.defaultValue,P,a);x.ok||y.push({field:P.code,code:x.code,message:`\u65E2\u5B9A\u5024: ${x.message}`})}}if(s.length>0){let P=R.evaluationRow??Object.fromEntries([...R.payload].map(([M,L])=>[M,et(L)])),k=R.evaluationFieldTypes,x=M=>{let L=M.tableAlias?`${M.tableAlias}.${M.field}`:M.field;return k?.get(L)??k?.get(M.field)};try{for(let M of _a(s,P,x))A.push({field:"",code:"ERR_CHECK",message:M.message})}catch(M){m??(m=M)}}let I=P=>P.map(k=>{let x={};for(let M of n)x[M]=et(R.payload.get(M));return x.$err_statement=String(o),x.$err_operation=t,x.$err_row=String(R.rowNumber),x.$err_field=k.field,x.$err_code=k.code,x.$err_message=k.message,x.$err_value="",x.$err_subtable="",x.$err_subrow="",x.$err_subrow_id="",x}),b={rowNumber:R.rowNumber,preErrors:I(g),builtInErrors:I(y),checkErrors:I(A)};E.push(b);let v=[...b.preErrors,...b.builtInErrors,...b.checkErrors];v.length>0&&f.add(R.rowNumber),p.push(...v)}if(m!==void 0)throw m;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:E}}function et(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 vu=["required","length","range","choice"];function Du(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 xu(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 jS(e){return Du(e).length>0}function zS(e){return e.fieldType==="NUMBER"||jS(e)}function Wa(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Uu(e,t){let{topByCode:n,childrenByTable:r}=xu(t),i=zS;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 d=u?`${u}\0${l.code}`:l.code;if(a.has(d))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(d),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...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 p of l.children){let f=c.find(E=>E.code===p);if(!f){let E=[...r.entries()].some(([m,R])=>m!==l.subtableCode&&R.some(g=>g.code===p));throw new Error(E?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let 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 d=n.get(u);if(d?.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(p=>s(p,u));continue}if(d){s(d);continue}throw[...r.values()].some(c=>c.some(p=>p.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 Oi(e,t){return Dn(e)?"":et(Pi(e,t))}var qS=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Li=Tr;function Pt(e,t=["$id"]){let n=xu(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!qS.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 xn(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 Un(e,t,n,r,i=1,o="UPDATE"){let a=JS(e),s=[],l=new Set,u=[...t.payloadFields,...Li],d=et(e.$id?.value),c=(p,f,E,m)=>{l.add(i);let R={};for(let g of t.payloadFields)R[g]=g==="$id"?d:et(e[g]?.value);R.$err_statement=String(r),R.$err_operation=o,R.$err_row=String(i),R.$err_field=p.code,R.$err_code=E.code,R.$err_message=E.message,R.$err_value=Oi(f,p.fieldType),R.$err_subtable=m?.subtable??"",R.$err_subrow=m?String(m.subrow):"",R.$err_subrow_id=m?.subrowId??"",s.push(R)};for(let p of t.topLevel){let f=e[p.code]?.value,E=qe(f,p,n);E.ok?a[p.code]={value:dE(f,p.fieldType,E.value)}:c(p,f,E)}for(let[p,f]of t.subtables){let E=e[p]?.value;if(!Array.isArray(E))continue;let m=a[p]?.value;for(let R=0;R<E.length;R++){let g=E[R],y=m[R];for(let A of f){let h=g.value?.[A.code]?.value,I=qe(h,A,n);I.ok?(y.value??(y.value={}),y.value[A.code]={value:dE(h,A.fieldType,I.value)}):c(A,h,I,Wa(p,R,g))}}}return{normalizedRecord:a,errors:s,columns:u,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function dE(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 JS(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 Va(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;fE(o,"dmlMaxRows"),fE(a,"dmlMaxSubtableRows");for(let A of n)Ga(A);let l=iE(t,n,r,i),u=Pt(r,t.assignments.map(A=>A.field)),d=l.some(A=>xn(A.postImage,u));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=d?await e.loadNumberPrecision():void 0,p=l.map((A,h)=>Un(A.postImage,u,c,s,e.parentRowNumbers?.[h]??h+1));if(!t.validateOnly){let A=p.flatMap(h=>h.errors);if(A.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:A})}`)}let f=l.length,E=l.reduce((A,h)=>A+h.changedSubtableRows,0),m=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 R=l.map((A,h)=>Fa(A,p[h].normalizedRecord)),g=R.flatMap(A=>Ci(A).records),y=p.map(A=>({errors:A.errors,columns:A.columns,invalidRows:A.invalidRows,errorCount:A.errorCount}));return EE({plans:R,records:g,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:m}})}function fE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function EE(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))EE(n,t);return Object.freeze(e)}var Mu=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Ha(e,t){if(new Set(e.fields).size!==e.fields.length)return Ot("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)mE(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return Ot(`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 Ot(`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 Ot(`APPLY INSERT supports APPEND only (${l.kind}).`);let u=new Set;for(let d of l.fields){if(u.has(d))return Ot(`APPLY APPEND specifies child ${d} more than once.`);u.add(d),mE(d,o.field,n,s)}for(let d of l.values)if(d.length!==l.fields.length)return Ot(`APPLY APPEND for ${o.field} has ${d.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function XS(e,t,n=Ha(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Si(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(d=>bu(d,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||Mu.has(c.fieldType)||(u[c.code]=s[c.code]??{value:Nu(c)});let d={...s};for(let c of a){let p=c.rows.map(f=>({value:f.value}));u[c.table]={value:p},d[c.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:u,record:d}})}async function _i(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;RE(r,"dmlMaxRows"),RE(i,"dmlMaxSubtableRows");let a=e.metadata??Ha(t,n),s=XS(t,n,a,e.parentRowNumbers),l=n.filter(h=>h.fieldType==="SUBTABLE"||h.fieldType!=="FILE"&&h.writable!==!1&&!Mu.has(h.fieldType)),u=Pt(l,t.fields),d=s.some(h=>xn(h.postImage,u));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let c=d?await e.loadNumberPrecision():void 0,p=s.map(h=>Un(h.postImage,u,c,o,h.parentRowNumber,"INSERT"));if(!t.validateOnly){let h=p.flatMap(I=>I.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:h})}`)}let f=s.length,E=s.reduce((h,I)=>h+I.tables.reduce((b,v)=>b+v.addedRows,0),0),m=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 R=s.map((h,I)=>{let b=p[I].normalizedRecord,v={};for(let P of t.fields)v[P]=b[P];for(let P of h.tables){let k=b[P.table]?.value;v[P.table]={value:P.rows.map((x,M)=>({value:Object.fromEntries(Object.keys(x.value).map(L=>[L,k[M]?.value?.[L]??x.value[L]]))}))}}return{...h,postImage:b,record:v}}),g=R.map(h=>h.record),y=[];for(let h=0;h<g.length;h+=100)y.push({app:t.appId,records:g.slice(h,h+100)});let A=p.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return gE({applyBlocks:t.applyBlocks??[],candidates:R,records:g,batches:y,validations:A,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:E,dmlMaxSubtableRows:i,wouldExceed:m}})}function mE(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return Ot(`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?Ot(`APPLY child ${e} does not belong to subtable ${t}.`):Ot(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||Mu.has(i.fieldType))return Ot(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function RE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Ot(e){throw new Error(`ArgumentError: ${e}`)}function gE(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))gE(n,t);return Object.freeze(e)}async function hE(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;yE(i,"dmlMaxRows"),yE(o,"dmlMaxSubtableRows"),nT(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),u=QS(t,s.map(g=>g.sourceRowIndex)),d=await _i({statement:u,fieldInfos:r,metadata:Ha(u,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(g=>g.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),c=[],p=new Set;for(let g of l){let y=g.targetId;p.has(y)&&ku(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),p.add(y),g.snapshot||ku(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let A=Number(g.snapshot.$id?.value);A!==y&&ku(`UPSERT APPLY snapshot $id ${A} does not match target $id ${y}.`);let h=ZS(t,g.sourceRowIndex,y),I=h.applyBlocks?.length?Yt(h,r):eT(r);c.push(await Va({statement:h,snapshots:[g.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[g.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=tT(c,i,o),E=d.guards.parentRows+f.guards.parentRows,m=d.guards.subtableRows+f.guards.subtableRows,R=E>i||m>o;if(!t.validateOnly){let g=[...d.validations.flatMap(y=>y.errors),...f.validations.flatMap(y=>y.errors)];if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d.validations[0]?.columns??f.validations[0]?.columns??[],errors:g})}`)}if(!t.validateOnly&&E>i)throw new Error(`ArgumentError: APPLY parent rows (${E}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&m>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${m}) exceed dmlMaxSubtableRows (${o}).`);return Fu({create:d,update:f,createBatches:d.batches,updateBatches:rT(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:E,dmlMaxRows:i,subtableRows:m,dmlMaxSubtableRows:o,wouldExceed:R,create:d.guards,update:f.guards}})}function QS(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function ZS(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 eT(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function tT(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 Fu({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 nT(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 rT(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 yE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function ku(e){throw new Error(`ArgumentError: ${e}`)}function Fu(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))Fu(n,t);return Object.freeze(e)}function Di(e){return Ir("UPDATE",[TE(e)])}function Ku(e){return Ir("INSERT",[SE(e)])}function Gu(e){return Ir("UPSERT",[SE(e.create),TE(e.update)])}function tt(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 ja(e,t,n){return e.type==="UPDATE"?Ir("UPDATE",[Ya("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?Ir("INSERT",[Ya("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):Ir("UPSERT",[Ya("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Ya("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function Ir(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function SE(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 TE(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:AE(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||(i=o.deletedRows>0)}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:AE(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 AE(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:vi(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:vi(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:vi(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:vi(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:vi(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function vi(e,t){return e==null||t===null?null:e+t}function Ya(e,t,n,r,i,o){let a=t.map(d=>{let c=d.operations.map(f=>iT(f,n)),p=c.every(f=>f.count!==null)?c.reduce((f,E)=>f+E.count,0):null;return{targetKind:d.targetKind,field:d.field,operations:c,changedCount:p}}),s=a.filter(d=>d.targetKind==="SUBTABLE"),l=s.every(d=>d.changedCount!==null)?s.reduce((d,c)=>d+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 iT(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 Lt=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 IE(e,t,n){Er("phase10c");let r=lE(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 Lt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:tt(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 wE(e,t,n){Er("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 Lt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:tt(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 bE(e,t,n){Er("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 d=await t.postRecords({app:u.app,records:[...u.records]});r.push(d.ids)}catch(d){throw new Lt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:tt(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},d)}i+=1,a+=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(d){throw new Lt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:tt(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},d)}o+=1,s+=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 oT=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function aT(e){if(!oT.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 sT(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=aT(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 $u(e,t){let n=sT(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 lT(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 NE(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 lT(i)?!0:Object.values(i).some(n)};return n(e)}function CE(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 jt(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 xi=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)}},za=class{constructor(t,n=jt({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new xi("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new xi("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new xi("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var qa=50;function Wu(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+=qa){let o=e.values.slice(i,i+qa);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var Bu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),uT=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function cT(e,t){return e==="DATE"?ai(t):e==="TIME"?aa(t):Bu.has(e)?sa(t):!1}function pT(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Bu.has(e)?Bu.has(t.fieldType):!1}function Vu(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=oa(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!uT.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(!pT(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=>!cT(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];mt(s,i,n)<0&&(i=s),mt(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var Hu=nu;function Ui(e,t,n=Hu){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function PE(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 _t(e){if(e===null)return!1;switch(e.type){case"BINARY":return Ja(e.left);case"NULL_CHECK":return Ja(e.field);case"LOGICAL":return _t(e.left)||_t(e.right);case"NOT":case"GROUP":return _t(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Ja(e){if(Array.isArray(e))return e.some(Ja);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(Ja)}async function We(e,t,n,r,i={}){let o=i.pageSize??dT,a=Math.max(1,i.parallel??fT),s=i.maxRecords??ET,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 d=u??s,c=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],f=!1,E=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,m=0,R=0,g=_E(n,m),y=await LE(e,t,g,c,o,R);if(OE(y,i),p.push(...y.records),u!==void 0&&p.length>=u)return p.slice(0,u);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Rt(E)}if(y.records.length<o)return p;for(R+=o,R>=ju&&(m=vE(y.records),R=0);;){if(u!==void 0&&p.length>=u)return p.slice(0,u);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Rt(E)}let A=d-p.length,h=Math.ceil(A/o),I=Math.max(1,Math.min(a,h)),b=[];for(let x=0;x<I;x++){let M=R+x*o;if(M>=ju)break;b.push(M)}let v=_E(n,m),P=await Promise.all(b.map(x=>LE(e,t,v,c,o,x)));for(let x of P)OE(x,i);let k=!1;for(let x of P){if(p.push(...x.records),u!==void 0&&p.length>=u)return p.slice(0,u);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new Rt(E)}if(x.records.length<o){k=!0;break}}if(k)break;if(R+=o*b.length,R>=ju){let x=P[P.length-1];m=vE(x.records),R=0}}return p}function OE(e,t){e.searchAborted&&t.onSearchAborted?.()}function DE(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 dT=500,fT=1,ET=1e4,ju=1e4;async function LE(e,t,n,r,i,o){let a=mT(n,i,o);return e({app:t,query:a,fields:r})}function _E(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 mT(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function vE(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 Rt=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};async function gt(e,t,n,r,i){let o=await We(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 Mi(e,t,n,r){let{records:i,metrics:o}=await gt(e,t,n,["$id"],r);return{ids:DE(i),metrics:o}}function br(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)?UE(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"}):UE(n[0],e.field)}function qu(e,t){if(e.left.type!=="FIELD")return ki();let n=br(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return ki();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||we(e,a=>{let s=br(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 ki();let o=ua(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?ki():Object.freeze({relation:o,owner:n})}function ME(e,t){let n=Te(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=br(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):we(e,o=>{let a=br(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 kE(e,t){let n=new Set;Mn(e,n);let i=(e===null?[]:GE(wr(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=RT(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)Mn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(hT(e,t)),fetchQueriesByAlias:new Map,...o})}function FE(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!kn(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,Nr(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=Nr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!kn(ns(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 Cr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!kn(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&&!kn(ns(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))||KE(yT(e))!==e.allKlikes.length))}function RT(e,t){if(e===null)return xE(null);let n=Object.freeze([...Te(e)]);if(n.length===0)return xE(e);let r=gT(e,t,n);if(r!==null)return r;let i=Za(e),o=[],a=new Set;for(let c of i){let p=ME(c,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:c,relation:"exact"},E;try{E=Nr(f,t)}catch{continue}let m=ns(E);kn(m,p.functionOccurrences)&&(a.add(c),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:c,functionLeaves:Object.freeze([c]),functionOccurrences:p.functionOccurrences,relation:p.relation,consumption:"leaf",serializedPredicate:E,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=es(e,a),l=Object.freeze(s===null?[]:[...Te(s)]),u=Object.freeze(o.flatMap(c=>[...c.functionOccurrences])),d=kn(n,u)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:d,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:u,residualWhere:s,residualServerFunctionOccurrences:l}}function gT(e,t,n){let r=Xa(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=Nr(i,t)}catch{return null}if(!kn(ns(o),n))return null;let a=new Set;if(Mn(e,a),KE(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 Xa(e,t){switch(e.type){case"BINARY":{if(Te(e).length>0){let i=ME(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=qu(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=Xa(e.left,t),r=Xa(e.right,t);return n!==null&&r!==null&&rs(n,r)?n:null}case"GROUP":case"NOT":return Xa(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Qa(e){switch(e.type){case"BINARY":return Te(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 xE(e){let t=e===null?[]:Te(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Za(e){switch(e.type){case"BINARY":return Te(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Za(e.left),...Za(e.right)]:[];case"GROUP":return Za(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function es(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=es(e.left,t),r=es(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=es(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function ns(e){let t=[];for(let n of Vr){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 kn(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 KE(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function yT(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function hT(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=br(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(ts(i.right)){n.add("CROSS_TABLE_BINARY");return}qu(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(BE(i)){n.add("KLIKE_OR");return}let o=wr(i.left,t),a=wr(i.right,t);if(o.length!==1||a.length!==1||!rs(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 Nr(e,t){return Fi(e.predicate,e,t),z(e.predicate)}function Fi(e,t,n){switch(e.type){case"LOGICAL":Fi(e.left,t,n),Fi(e.right,t,n);return;case"GROUP":Fi(e.expr,t,n);return;case"NOT":Fi(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||ts(e.right))throw zu(t,"predicate contains a non-target or RHS field reference");let r=br(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw zu(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw zu(t,"predicate shape is outside the Phase A serializer contract")}}function zu(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function wr(e,t){switch(e.type){case"BINARY":{let n=qu(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=wr(e.left,t),r=wr(e.right,t);if(e.op==="AND")return GE([...n,...r]);if(BE(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return rs(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:$E(i.relation,o.relation)}]:[]}case"GROUP":return wr(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function GE(e){let t=[];for(let n of e){let r=t.findIndex(o=>rs(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:$E(i.relation,n.relation)}}return t}function UE(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function ki(){return Object.freeze({relation:"unsafe"})}function rs(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function $E(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Mn(e,t){if(e!==null){if(an(e)){t.add(e);return}switch(e.type){case"LOGICAL":Mn(e.left,t),Mn(e.right,t);return;case"NOT":case"GROUP":Mn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function BE(e){let t=new Set;return Mn(e,t),t.size>0}function ts(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ts);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(ts)}function Ju(e,t){let n=li(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 AT=1e4,ST=500;function TT(e,t){if(e.key.type!=="FIELD_NAME")return;let n=ve(e.key.name,t.keys());return n===void 0?void 0:t.get(n)}function IT(e,t){let n=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]);return ve(t,n)!==void 0}function Ki(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"&&!IT(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>ST)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>AT)&&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 wT=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 bT(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Gi(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,u=e.orderSemantics.get(l);if(!u){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(bT(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}wT.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 is=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"}},os=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}},as=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 WE(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 as(a).message}}return{records:n,cleanupWarning:o}}function Xu(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 NT={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 VE(e,t){let n=NT[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 HE(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=>VE(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=VE(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var Pr=new WeakMap,Zu=new WeakMap,CT="\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 ic(e){if(Zu.has(e))return e;let t;return t=new Proxy(e,{get(n,r,i){return typeof r!="string"||Object.prototype.hasOwnProperty.call(n,r)?Reflect.get(n,r,i):be(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&be(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=be(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),Zu.set(t,e),t}function qt(e){return Zu.get(e)??e}function nm(e){let t=Pr.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},Pr.set(e,t)),t}function yt(e,t,n,r=[]){let i=nm(e);t!==null&&i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function Ve(e,t){return Pr.get(e)?.byColumn.get(t)}function be(e,t){return Pr.get(e)?.byLookupKey.get(t)}function zt(e,t){return Pr.has(e)?void 0:e[t]}function YE(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=>be(a,o)===void 0&&a[o]===void 0))&&n.add(CT)}function Vi(e){let t=Pr.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=Ol(e);return r&&Pl(n,r.includedCanonicalIds),n}function Jt(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 PT(e,t,n,r={}){if(n.type==="CROSS"){let p=Ui(e.length,t.length);if(!p.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${p.outputRows} \u884C\uFF08\u5DE6 ${p.leftRows} \u884C \xD7 \u53F3 ${p.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${p.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let E of e)for(let m of t)f.push({...E,...m});return f}let{on:i,type:o}=n,a=OT(i,e,t,r.leftColumns,r.rightColumns),s=ec(a.left),l=ec(a.right);if(zE(e,s,r.leftColumns),zE(t,l,r.rightColumns),o==="RIGHT"){let p=new Map;for(let m of e){let R=m[s]??"",g=p.get(R);g?g.push(m):p.set(R,[m])}let f={};for(let m of r.leftColumns??Object.keys(e[0]??{}))f[m]="";let E=[];for(let m of t){let R=m[l]??"",g=p.get(R)??[];if(g.length>0)for(let y of g)E.push({...y,...m});else E.push({...f,...m})}return E}let u=new Map;for(let p of t){let f=p[l]??"",E=u.get(f);E?E.push(p):u.set(f,[p])}let d=[],c={};for(let p of r.rightColumns??Object.keys(t[0]??{}))c[p]="";for(let p of e){let f=p[s]??"",E=u.get(f)??[];if(E.length>0)for(let m of E)d.push({...p,...m});else o==="LEFT"&&d.push({...p,...c})}return d}function ec(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function OT(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=jE(o),l=jE(a),u=p=>{if(p.tableAlias){let R=s.has(p.tableAlias),g=l.has(p.tableAlias);if(R!==g)return R?"LEFT":"RIGHT"}let f=ec(p),E=o.includes(f),m=a.includes(f);return E!==m?E?"LEFT":"RIGHT":"UNKNOWN"},d=u(e.left),c=u(e.right);return d==="RIGHT"&&c==="LEFT"?{left:e.right,right:e.left}:e}function jE(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 zE(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 LT(e,t,n,r,i,o={}){return t===null?e:e.filter(a=>pe(t,a,n,r,i,o))}function us(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="ARITH_COL"&&he(t.expr)||t.type==="CASE_COL"&&he(t.expr)||t.type==="STRFUNC_COL"&&zi(t.expr)||t.type==="SCALAR_VALUE_COL"&&Rn(t.expr)||t.type==="WINDOW_COL"&&((t.windowKind==="AGGREGATE"||t.windowKind==="VALUE")&&he(t.arg)||t.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.aggregateRef!==void 0)))}function _T(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 d of e){let c=t.map((f,E)=>DT(f,d,i?.items[E],n,o)).join("\0"),p=l.get(c);p?p.push(d):l.set(c,[d])}l.size===0&&t.length===0&&us(n)&&l.set("",[]);let u=[];for(let d of l.values()){let c=ic({...d[0]});for(let p of t)p.type==="ARITH_KEY"?c[ji(p.expr)]=String(me(p.expr,d[0],o.evaluationContext)):p.type==="FUNC_KEY"&&(c[gn(p.expr)]=Ae(p.expr,d[0],void 0,void 0,o.evaluationContext));rm(c,d,n,r,o.evaluationContext),nt(c,d,a,r,o.evaluationContext),nt(c,d,n.filter(p=>p.type==="WINDOW_COL"),r,o.evaluationContext),nt(c,d,s,r,o.evaluationContext),u.push(c)}return u}function vT(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 d of t.sets){let c={children:new Map},p=[];for(let E of e){let m=c;for(let R of d.items){let g=qE(R,E),y=m.children.get(g);y||(y={children:new Map},m.children.set(g,y)),m=y}m.rows||(u(),m.rows=[],p.push(m.rows)),m.rows.push(E)}e.length===0&&d.items.length===0&&(u(),c.rows=[],p.push(c.rows));let f=new Set(d.items.map(E=>E.canonicalId));for(let E of p){let m=ic({...E[0]}),R=new Map;for(let g of d.items)R.has(g.canonicalId)||R.set(g.canonicalId,qE(g,E[0]));for(let g of t.allItems){let y=R.get(g.canonicalId)??"";m[g.directKey]=y,g.unqualifiedBridgeKey!==null&&(m[g.unqualifiedBridgeKey]=y)}rm(m,E,n,r,i.evaluationContext),nt(m,E,o,r,i.evaluationContext),nt(m,E,a,r,i.evaluationContext),nt(m,E,n.filter(g=>g.type==="WINDOW_COL"),r,i.evaluationContext),Pl(m,f),s.push(m)}}return s}function qE(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function rm(e,t,n,r,i={}){for(let[o,a]of n.entries()){if(ss(a)){nt(e,t,a,r,i);continue}if(a.type==="AGGREGATE"){let s=ie(a.func,a.distinct,a.arg),l=String(Hi(a.func,a.distinct,a.arg,a.separator,t,r,i));yt(e,o,l,a.alias?[a.alias,s]:[s])}else if(a.type==="ARITH_AGG_COL"){nt(e,t,a.expr,r,i);let s=a.alias??Yi(a.expr);yt(e,o,String($i(a.expr,t,r,i)),[s])}else if(a.type==="ARITH_COL"&&he(a.expr)){nt(e,t,a.expr,r,i);let s=a.alias??ji(a.expr),l=rc(a.expr,t,r);yt(e,o,String(me(l,e,i)),[s])}else if(a.type==="STRFUNC_COL"&&zi(a.expr)){nt(e,t,a.expr,r,i);let s=a.alias??gn(a.expr),l=ps(a.expr,t,r);yt(e,o,Ae(l,e,void 0,void 0,i),[s])}else if(a.type==="SCALAR_VALUE_COL"&&Rn(a.expr)){nt(e,t,a.expr,r,i);let s=a.alias??vt(a.expr),l=Wi(a.expr,t,r);yt(e,o,String(De(l,e,void 0,void 0,i)),[s])}else if(a.type==="CASE_COL"&&he(a.expr)){nt(e,t,a.expr,r,i);let s=sm(a.expr,t,r),u=ze(s,e,void 0,d=>d.aggregateRef?Bi(d.aggregateRef,r):void 0,i);yt(e,o,u,[tc(a.alias,o)])}}}function ss(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(ss);let t=e;return t.hiddenWindowRef===!0?!0:t.type==="SELECT"||t.type==="SCALAR_SUBQUERY"?!1:Object.values(t).some(ss)}function tc(e,t){return e??`__ksql_case_column_${t}`}function nc(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>nc(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=>nc(r,t))}function nt(e,t,n,r,i={}){let o=[];nc(n,o);for(let a of o){let s=ie(a.func,a.distinct,a.arg);if(be(e,s)!==void 0)continue;let l=String(Hi(a.func,a.distinct,a.arg,a.separator,t,r,i));nm(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=ls(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(me(e.expr,t,i.evaluationContext))}function Hi(e,t,n,r,i,o,a={}){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let s=im(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 m=Number(E);if(!Number.isFinite(m))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 m}):null,d=t?l?[...new Set(u)]:[...new Set(s)]:l?u:s;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let c=e==="MIN"||e==="MAX"||e==="MODE"?Or(n,o):void 0,p=typeof c=="string"?B(c):c??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(s.length===0)return"";let E=new Map;for(let g of s)E.set(g,(E.get(g)??0)+1);let m="",R=0;for(let[g,y]of E){if(y>R){m=g,R=y;continue}if(y!==R)continue;let A=mt(g,m,p);(A<0||A===0&&mn(g,m)<0)&&(m=g)}return m}if(e==="MIN"||e==="MAX"){let E=d;if(E.length===0)return"";let m=E[0];for(let R of E.slice(1)){let g=mt(R,m,p);(e==="MAX"&&g>0||e==="MIN"&&g<0)&&(m=R)}return m}let f=l?d:d.map(Number);switch(e){case"SUM":return f.reduce((E,m)=>E+m,0);case"AVG":return f.length===0?0:f.reduce((E,m)=>E+m,0)/f.length;case"MEDIAN":{if(f.length===0)return"";let E=[...f].sort((R,g)=>R-g),m=Math.floor(E.length/2);return E.length%2===1?E[m]:(E[m-1]+E[m])/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 m=f[0],R=0,g=0,y=0;for(let h of f){let I=h-m;R++;let b=I-g;g+=b/R,y+=b*(I-g)}let A=Math.max(0,y/(E?R-1:R));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(A):A}}}function im(e,t,n,r={}){return n.map(i=>{let o=qt(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=me(t,o,r);if(isNaN(s))return null;a=String(s)}else{let s=Vt(t,o,void 0,void 0,r);if(s===null||s===""&&e!=="MIN"&&e!=="MAX"||typeof s=="number"&&Number.isNaN(s))return null;a=String(s)}return a})}function xT(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 $i(e,t,n,r={}){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Hi(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=$i(e.left,t,n,r),o=$i(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 Yi(e){return wt(e)}function Or(e,t){if(e.type==="FIELD_REF")return t?.(xT(e.field))??"string";if(e.type==="FIELD")return e.aggregateRef?Bi(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 Nt(e,o=>t?.(o));let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Or(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 Bi(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return B("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return B("string");let n=e.arg.type==="WILDCARD"?"string":Or(e.arg,t)??"string";return typeof n=="string"?B(n):n}function UT(e,t,n,r,i={}){return t===null?e:e.filter(o=>pe(t,Vi(o),n,void 0,r,i))}function MT(e,t,n,r,i,o={}){if(e.length===0)return e;let a=kT(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 kT(e,t,n){let r=[];if(t.some(a=>a.type==="WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))a.add(l);r=[...a].sort()}let i=[];if(t.some(a=>a.type==="PARENT_WILDCARD")){let a=new Set;for(let s of e)for(let l of Object.keys(s))l.startsWith("_p.")&&a.add(l);i=[...a].sort()}let o={...n,wildcardKeys:r,parentWildcardKeys:i};return a=>JSON.stringify(HT(t,a,o))}function oc(e,t,n,r,i,o,a={}){return t.length===0?e:om(e,t,n,r,i,o,a).rows.map(s=>s.row)}function om(e,t,n,r,i,o,a={}){let s=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(Nt(d.expr,f=>i?.get(f.tableAlias?`${f.tableAlias}.${f.field}`:f.field)))};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let c=i?.get(d.name);if(c)return{semantics:c};let p=n?.get(d.name);return p?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:p}}:{semantics:B(r?.get(d.name)??"string")}}),l=e.map(d=>({row:d,keys:t.map(({key:c},p)=>({s:GT(c,d,o,a)}))})),u=(d,c)=>FT(d,c,t,s);return l.sort(u),{rows:l,compare:u}}function FT(e,t,n,r){for(let i=0;i<n.length;i++){let o=KT(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function KT(e,t,n){return mt(e.s,t.s,n.semantics)}function GT(e,t,n,r={}){let i=qt(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??be(t,e.name)??i[e.name]??"";case"ARITH_KEY":return String(me(e.expr,i,r));case"FUNC_KEY":return Ae(e.expr,i,void 0,void 0,r);case"GROUPING_KEY":return Pn(e.ref,t)}}function ac(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(qt(u),s.field));break;case"LITERAL_COL":o.set(l,()=>s.value);break;case"AGGREGATE":{o.set(l,u=>Ve(u,a)??"0");break}case"ARITH_AGG_COL":{o.set(l,u=>Ve(u,a)??"0");break}case"WINDOW_COL":o.set(l,u=>Ve(u,a)??"");break;case"ARITH_COL":o.set(l,u=>he(s.expr)?Ve(u,a)??"":String(me(s.expr,qt(u),i)));break;case"STRFUNC_COL":{let u=gn(s.expr);o.set(l,d=>zi(s.expr)?Ve(d,a)??be(d,u)??Ae(s.expr,qt(d),n,r,i):Ae(s.expr,qt(d),n,r,i));break}case"CASE_COL":o.set(l,u=>he(s.expr)?Ve(u,a)??"":ze(s.expr,qt(u),n,r,i));break;case"SCALAR_VALUE_COL":{let u=vt(s.expr);o.set(l,d=>Rn(s.expr)?Ve(d,a)??be(d,u)??"":String(De(s.expr,qt(d),n,r,i)));break}case"SCALAR_SUBQUERY_COL":o.set(l,()=>t?.get(a)??"");break;case"GROUPING_COL":o.set(l,u=>Pn(s.ref,u));break;case"VARIABLE_COL":break}}return(a,s)=>{let l=ve(a,o.keys());return l===void 0?void 0:o.get(l)?.(s)}}function sc(e,t,n,r,i,o,a={},s=[]){let l=t.map((u,d)=>({column:u,columnIndex:d})).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]=ic(e[u]);for(let{column:u,columnIndex:d}of l){let c=new Map;for(let p of e){let f=JSON.stringify(u.partitionBy.map(m=>VT(p,m))),E=c.get(f);E?E.push(p):c.set(f,[p])}for(let p of c.values()){let f=om(p,u.orderBy,n,r,i,void 0,a),E=f.rows;if(rr(u)){WT(u,d,f,o,a);continue}if(Bo(u)){BT(u,d,E,a);continue}if(!$o(u))throw new Error(`InternalError: unknown window kind ${u.windowKind??"undefined"}`);let m=1,R=1;for(let g=0;g<E.length;g++){g>0&&f.compare(E[g-1],E[g])!==0&&(m=g+1,R++);let y=u.func==="ROW_NUMBER"?g+1:u.func==="RANK"?m:R;yt(E[g].row,d,String(y),[u.alias])}}}return e}function $T(e,t,n={}){let r=Vt(e,Vi(t),void 0,void 0,n);return r==null||typeof r=="number"&&!Number.isFinite(r)?"":String(r)}function BT(e,t,n,r={}){let i=n.map(a=>$T(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;yt(n[a].row,t,s>=0&&s<i.length?i[s]:"",[e.alias])}}function WT(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:im(e.aggFunc,e.arg,o.map(f=>Vi(f.row)),i),s=e.arg.type==="WILDCARD"?void 0:Or(e.arg,r),l=typeof s=="string"?B(s):s??B("string"),u=[],d=0,c=0,p;for(let f=0;f<o.length;f++){let E=a?.[f]??null;if(e.arg.type==="WILDCARD")d++;else if(E!==null)if(e.aggFunc==="COUNT")d++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")c+=Number(E),d++;else if(p===void 0)p=E;else{let R=mt(E,p,l);(e.aggFunc==="MAX"&&R>0||e.aggFunc==="MIN"&&R<0)&&(p=E)}let m=e.aggFunc==="COUNT"?d:e.aggFunc==="SUM"?c:e.aggFunc==="AVG"?d===0?0:c/d:p??0;u.push(String(m))}if(e.frame===null){let f=u[u.length-1];for(let E of o)yt(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 m=f;m<=E;m++)yt(o[m].row,t,u[E],[e.alias]);f=E+1}return}for(let f=0;f<o.length;f++)yt(o[f].row,t,u[f],[e.alias])}function VT(e,t){if(t.type==="GROUPING_REF")return Pn(t,e);let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Be(Vi(e),n)}function cs(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function ls(e,t,n,r={}){let i=ss(e),o=i?Vi(t):qt(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 Ve(t,n)??be(t,e.alias??a)??be(t,a)??zt(t,e.alias??a)??zt(t,a)??"0"}case"ARITH_AGG_COL":{let a=e.alias??Yi(e.expr);return Ve(t,n)??be(t,a)??zt(t,a)??"0"}case"ARITH_COL":return he(e.expr)&&!i?Ve(t,n)??be(t,e.alias??ji(e.expr))??"":String(me(e.expr,o,r.evaluationContext));case"CASE_COL":return he(e.expr)&&!i?Ve(t,n)??be(t,tc(e.alias,n))??zt(t,tc(e.alias,n))??"":ze(e.expr,o,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return Pn(e.ref,t);case"STRFUNC_COL":{let a=gn(e.expr);return zi(e.expr)&&!i?Ve(t,n)??be(t,e.alias??a)??be(t,a)??zt(t,e.alias??a)??zt(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=vt(e.expr);return Rn(e.expr)&&!i?Ve(t,n)??be(t,e.alias??a)??be(t,a)??zt(t,e.alias??a)??zt(t,a)??"":String(De(e.expr,o,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return Ve(t,n)??be(t,e.alias)??zt(t,e.alias)??""}}function HT(e,t,n={}){return e.map((r,i)=>{let o=ls(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function Fn(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let E=e.map(R=>{let g=em(XE(R),a),y=ls(t[0],R,0,{wildcardKeys:Object.keys(g)}),A={};if(typeof y!="string")for(let[h,I]of y.entries)I!==null&&(A[h]=I);return A}),m=E.length>0?Object.keys(E[0]):[...i??[]];return{rows:E,columns:m}}let l=qT(t),u=zT(t),d=t.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD"),c=d?null:YT(t,l,u),p=c??[];return d&&e.length===0?{rows:[],columns:jT(t,l,u)}:{rows:e.map((E,m)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys(em(XE(E),a)),parentWildcardKeys:Object.keys(E).filter(y=>y.startsWith("_p.")).sort()};for(let[y,A]of t.entries()){let h=ls(A,E,y,g);switch(A.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[I,b]of h.entries)b!==null&&(R[I]=b);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[I,b]of h.entries)b!==null&&(R[I]=b),m===0&&p.push(I);break}case"FIELD":{let I=c?.[y]??A.alias??l.get(y)??A.field;R[I]=h,c===null&&m===0&&p.push(I);break}case"LITERAL_COL":{let I=c?.[y]??A.alias??`'${A.value}'`;R[I]=h,c===null&&m===0&&p.push(I);break}case"AGGREGATE":{let I=ie(A.func,A.distinct,A.arg),b=c?.[y]??A.alias??I;R[b]=h,c===null&&m===0&&p.push(b);break}case"ARITH_AGG_COL":{let I=c?.[y]??A.alias??Yi(A.expr);R[I]=h,c===null&&m===0&&p.push(I);break}case"ARITH_COL":{let I=c?.[y]??A.alias??ji(A.expr);R[I]=h,c===null&&m===0&&p.push(I);break}case"CASE_COL":{let I=c?.[y]??A.alias??u.get(y)??"case";R[I]=h,c===null&&m===0&&p.push(I);break}case"GROUPING_COL":{let I=c?.[y]??A.alias??`GROUPING(${A.ref.field.tableAlias?`${A.ref.field.tableAlias}.`:""}${A.ref.field.field})`;R[I]=h,c===null&&m===0&&p.push(I);break}case"STRFUNC_COL":{let I=c?.[y]??A.alias??gn(A.expr);R[I]=h,c===null&&m===0&&p.push(I);break}case"SCALAR_VALUE_COL":{let I=c?.[y]??A.alias??vt(A.expr);R[I]=h,c===null&&m===0&&p.push(I);break}case"SCALAR_SUBQUERY_COL":{let I=c?.[y]??A.alias??"(subquery)";R[I]=h,c===null&&m===0&&p.push(I);break}case"WINDOW_COL":{let I=c?.[y]??A.alias;R[I]=h,c===null&&m===0&&p.push(I);break}}}return R}),columns:p}}function YT(e,t,n){return e.map((r,i)=>am(r,i,t,n))}function jT(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=am(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function am(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??Yi(e.expr);case"ARITH_COL":return e.alias??ji(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??gn(e.expr);case"SCALAR_VALUE_COL":return e.alias??vt(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 zT(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 qT(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=JE(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=JE(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 JE(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function XE(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function ji(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"?gn(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function gn(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Yi(n):n.type==="VARIABLE"?`@${n.name}`:vt(n));return`${e.func}(${t.join(",")})`}function vt(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 gn(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${vt(e.left)}${e.op}${vt(e.right)}`;case"CONCAT_OP":return`${vt(e.left)}||${vt(e.right)}`}}function JT(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:Rn(e)}function Rn(e){return e.type==="STRING_FUNC"?zi(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Rn(e.left)||Rn(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>QE(t.result))||e.elseResult!==null&&QE(e.elseResult):!1}function QE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Rn(e)}function zi(e){return e.args.some(t=>JT(t))}function XT(e,t,n){if(e.type==="AGG_REF"){let r=Hi(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=$i(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"?ps(e,t,n):Wi(e,t,n)}function Wi(e,t,n){return e.type==="STRING_FUNC"?ps(e,t,n):e.type==="CASE_WHEN"?sm(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Wi(e.left,t,n),right:Wi(e.right,t,n)}:e}function rc(e,t,n){return e.type==="STRING_FUNC"?ps(e,t,n):e.type==="ARITH"?{...e,left:rc(e.left,t,n),right:rc(e.right,t,n)}:e}function ZE(e,t,n){if(e.type==="AGG_REF"){let r=Hi(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=$i(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:Wi(e,t,n)}function sm(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:ZE(r.result,t,n)})),elseResult:e.elseResult===null?null:ZE(e.elseResult,t,n)}}function ps(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>XT(r,t,n))}}function em(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 tm(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Qu(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function QT(e,t,n=[]){let r=new Map,i=new Map(n.map(a=>[a.alias,lm(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),Bi({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,Bi(s.key.aggregateRef,t));if(!(!("alias"in a)||!a.alias))if(a.type==="ARITH_COL"||a.type==="ARITH_AGG_COL")r.set(a.alias,B("number"));else if(a.type==="WINDOW_COL"){if($o(a)||rr(a)&&(a.aggFunc==="COUNT"||a.aggFunc==="SUM"||a.aggFunc==="AVG"))r.set(a.alias,B("number"));else if((rr(a)||Bo(a))&&a.arg.type!=="WILDCARD"){let s=Or(a.arg,t)??"string";r.set(a.alias,typeof s=="string"?B(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,B("number")):a.func==="GROUP_CONCAT"&&r.set(a.alias,B("string")):a.type==="LITERAL_COL"||a.type==="SCALAR_SUBQUERY_COL"?r.set(a.alias,B("string")):a.type==="CASE_COL"||a.type==="SCALAR_VALUE_COL"?r.set(a.alias,B(hi(a.expr,o))):a.type==="STRFUNC_COL"&&r.set(a.alias,B(Nt(a.expr,o)))}return r}function lm(e,t){if($o(e)||rr(e)&&(e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"))return B("number");if((rr(e)||Bo(e))&&e.arg.type!=="WILDCARD"){let n=Or(e.arg,t)??"string";return typeof n=="string"?B(n):n}return B("string")}function lc(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:u,havingFieldSemanticsResolver:d,aggregateSortKindResolver:c,appliedKlikes:p,sourceColumns:f,tableColumns:E,hiddenQualifiedAliases:m,resolvedGroupingSpec:R,plainGroupByPlan:g,warnings:y,evaluationContext:A}=e,h=QT(t.columns,c,t.hiddenWindows);for(let[N,C]of a??[])h.set(N,C);let I=new Map((t.hiddenWindows??[]).map(N=>[N.alias,lm(N,c)])),b=N=>I.get(N.field)??l?.(N),v=[],P=t.from.alias;v=(n.get(P)??n.get(null)??[]).map(N=>Jt(N,P));let x=Qu(tm(E?.get(P),P),void 0,v);for(let N of t.joins){let C=N.table.alias,w=(n.get(C)??[]).map(F=>Jt(F,C)),O=Qu(tm(E?.get(C),C),void 0,w);v=PT(v,w,N,{leftColumns:x,rightColumns:O}),x=Qu(x,O,v)}let M=e.residualWhere!==void 0?e.residualWhere:t.where;v=LT(v,M,s,p,l,A);let L=ee(t);if(L.type==="GROUPING_SETS"){if(!R)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");v=vT(v,R,t.columns,c,{maxGeneratedRows:5e4,evaluationContext:A},t.having,t.hiddenWindows)}else(L.type==="PLAIN"||us([...t.columns,...t.hiddenWindows??[]]))&&(v=_T(v,L.type==="PLAIN"?L.allItems:[],t.columns,c,L.type==="PLAIN"?g:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:A},t.having,t.hiddenWindows));YE(t.columns,v,y);let _=N=>N.aggregateRef?Bi(N.aggregateRef,c):d?.(N);return YE(t.having,v,y),v=UT(v,t.having,u,_,A),v=sc(v,t.columns,i,o,h,c,A,t.hiddenWindows),t.distinct&&(v=MT(v,t.columns,r,s,b,A)),v=oc(v,t.orderBy,i,o,h,ac(t.columns,r,s,b,A),A),v=cs(v,t.limit,t.offset),Fn(v,t.columns,r,s,f,b,m,A)}function um(e,t){let n=[];for(let r of e){let i=uc(r.$id?.value),o=ZT(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,d]of Object.entries(r)){if(u===t)continue;let c=uc(d?.value);l[`_p.${u}`]={value:c}}for(let[u,d]of Object.entries(s.value??{}))l[u]={value:uc(d?.value)};n.push(l)}}return n}function ZT(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function uc(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 eI(e,t={}){let n=new kt(e).tokenize(),r=new rn(n,t).parseStatements();return r.forEach(Ze),r}function cm(e,t={}){let n=Ta(e),r=n.diagnostics.find(a=>a.severity==="error");if(n.hasDirectives&&r)throw new Error(`${r.code}: ${r.message} (${r.line}:${r.column})`);let i=n.hasDirectives?e.slice(n.headerEnd):e,o=n.hasDirectives?{...t,dialect1:n.meta.dialect===1}:t;return{statements:eI(i,o),meta:n.meta}}function pm(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function dm(e,t){let n=qi(e);for(let[r,i]of Object.entries(t))n[r]=qi(i);return n}function fm(e){let t=[...e.preErrors.map(i=>cc(i)),...e.postImageErrors.map(i=>cc(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>cc(i))],n=new Set;t.length>0&&n.add(e.rowNumber);let r={};for(let i of new Set(e.setFields)){if(!Object.prototype.hasOwnProperty.call(e.normalizedPostImage,i))throw new Error(`InternalError: normalized post-image is missing SET field: ${i}`);r[i]=qi(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function cc(e,t=!1){return{...e,$err_value:t?e.$err_value??"":"",$err_subtable:t?e.$err_subtable??"":"",$err_subrow:t?e.$err_subrow??"":"",$err_subrow_id:t?e.$err_subrow_id??"":""}}function qi(e,t=new Map){if(e===null||typeof e!="object")return e;let n=e,r=t.get(n);if(r!==void 0)return r;if(Array.isArray(e)){let o=[];t.set(n,o);for(let a of e)o.push(qi(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=qi(a,t);return i}function mm(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object")return;let a=o;if(a.type==="KINTONE_FUNC"&&typeof a.name=="string"&&ft(a.name)&&!r.has(a.name)){r.add(a.name),n.push(a.name);return}t&&a.type==="SELECT"||Object.values(a).forEach(i)};return i(e),n}function dc(e){return mm(e,!0)}function ds(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function ht(e,t,n,r,i=!0,o=!0,a=r){let s=dc(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:Te(e.where)}),ds(e,e).forEach((l,u)=>ht(l,`${t}.select-source[${u}]`,n,a,a?!1:i,a?!1:o,a))}function Ji(e,t,n,r,i=!0){e.left.type==="UNION"?Ji(e.left,`${t}.left`,n,r,i):ht(e.left,`${t}.left`,n,r,!0,i),ht(e.right,`${t}.right`,n,r,!0,i)}function Em(e,t,n,r){if(!r&&un(e)){ht(cn(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?ht(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Ji(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?ht(e.query,`${t}.main`,n,r,!1,!r,!0):Ji(e.query,`${t}.main`,n,!0,!1)}function Rm(e,t,n,r=!1){switch(e.type){case"SELECT":ht(e,t,n,r);return;case"UNION":Ji(e,t,n,r);return;case"WITH":Em(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?Em(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Ji(e.query,`${t}.query`,n,!0,!1):ht(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":Rm(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=dc(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Te(e.where)}),ds(e,e).forEach((o,a)=>ht(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=dc(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Te(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=mm(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}ds(e,e).forEach((o,a)=>ht(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:ds(e,e).forEach((i,o)=>ht(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function fs(e,t){let n=new Map;for(let r of t){if(!ft(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function fc(e,t){return t.eligible===!0&&Xe(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function tI(e,t){return e.where!==null&&e.joins.length>0&&e.joins.every(n=>n.type==="INNER"||n.type==="CROSS")&&[e.from,...e.joins.map(n=>n.table)].every(n=>n.alias!==null&&n.cteName===null&&!n.subtableCode)&&Cr(t)}function nI(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function rI(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return Zn(e)?(n.some(r=>r!==Mt)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(Mt)||n.push(Mt)):n.includes(bn)||n.push(bn),[...new Set(n)]}function pc(e,t){let n=e.functionNames[0],r=Zn(n)?Mt:bn,i=rI(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function gm(e,t){let n=[];Rm(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let d=nI(i);return r.push(d),{hasRelativeDate:i.functionNames.some(re),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:pc(i)}}if(i.kind==="SELECT"){let d=i.source,c=d.from.cteName===null&&!d.from.subtableCode&&d.joins.length===0,p=Xe(d),f=await t.select(d),E="";try{E=i.where===null?"":z(i.where)}catch{E=""}let m=c&&p==="SIMPLE"&&(d.orderBy.length===0||d.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&fs(E,i.relativeFunctionOccurrences),R,g;if(!m&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(d);I?.eligible===!0&&fc(d,I)&&(R=I.plan,g=!0,m=!0)}let y;!m&&f.capability==="EXACT_PUSHDOWN"&&(y=Mo({select:d,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:E||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,y&&(R=y.prefilterPlan,m=!0));let A;if(!m&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(d);I!==null&&tI(d,I)&&(A=I,m=!0)}let h={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:f,restQuery:E,...R?{prefilterPlan:R,phase2PrefilterEligible:g}:{},...y?{fullScanExactPlan:y,allowForm:y.allowForm}:{},...A?{joinServerFunctionPlan:A,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:A.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!m,allowed:m};if(r.push(h),!m)return{hasRelativeDate:n.some(I=>I.functionNames.some(re)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:pc(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":z(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&fs(s,i.relativeFunctionOccurrences),u={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(u),!l)return{hasRelativeDate:n.some(d=>d.functionNames.some(re)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:pc(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(re)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function Ec(e){if(!e.allowed&&e.rejection){let t=Zn(e.rejection.functionName)?Mt:bn,n=e.rejection.reasonCodes.filter(r=>r!==t);throw new Error(`${e.rejection.functionName}: ${t}${n.length>0?` (reason=${n.join(", ")})`:""} (path=${e.rejection.path})`)}}function mc(e,t,n={}){let r=we(e.where,t),i=(A,h="INELIGIBLE")=>({eligible:!1,disposition:h,reasonCodes:A,capability:r.capability,reasons:r.reasons});if(e.where===null)return i(["NO_WHERE"]);if(e.from.subtableCode)return i(["SUBTABLE_UNSUPPORTED"]);if(e.joins.length>0)return i(["JOIN_UNSUPPORTED"]);if(e.from.cteName!==null||e.from.appId<=0)return i(["NOT_DIRECT_PHYSICAL_APP"]);let o=Qi(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=iI(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!oI(o,a.leaves))return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);if(r.capability==="EXACT_PUSHDOWN")return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");if(r.capability!=="SUPERSET_PREFILTER")return i(["CAPABILITY_NOT_SUPERSET_PREFILTER"]);let s=sI(e.where,t),l=li(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),u=n.serialize??z,d=n.containsFunctions??fs,c=[];for(let A of a.leaves){let h=gs(A);if(h===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let I;try{I=u(A)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!d(I,[h]))return i(["PREFILTER_FUNCTION_MISSING"]);c.push(A)}let p=aI(l.condition),f=new Set(c),E=ms(e.where,f,p);if(E===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let m;try{m=u(E)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let R=c.map(A=>gs(A));if(!d(m,[...new Set(R)])||!lI(m,R))return i(["PREFILTER_FUNCTION_MISSING"]);let g=n.rewriteResidual?n.rewriteResidual(e.where,f):Rs(e.where,f);if(g!==null&&Qi(g).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(g===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let y=new Set;for(let A of R)y.add(A);return{eligible:!0,plan:{prefilterWhere:E,residualWhere:g,exactRelativeLeaves:c,relativeFunctionNames:y,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function iI(e,t){let n=[],r=null,i=o=>{if(r===null)switch(o.type){case"GROUP":i(o.expr);return;case"LOGICAL":if(o.op==="AND"){i(o.left),i(o.right);return}Qi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Qi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(gs(o)===null)return;if(we(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Qi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NULL_CHECK":case"BOOLEAN":return}};return i(e),r===null?{ok:!0,leaves:n}:{ok:!1,reasonCodes:[r]}}function gs(e){return e.right.type==="KINTONE_FUNC"&&ft(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&ft(e.right.values[0].name)?e.right.values[0].name:null}function Qi(e){let t=[],n=r=>{if(r.type==="BINARY"&&gs(r)!==null){t.push(r);return}switch(r.type){case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":r.query.where!==null&&n(r.query.where);return;case"BINARY":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function oI(e,t){if(e.length!==t.length)return!1;let n=new Set(t);for(let r of e)if(!n.delete(r))return!1;return n.size===0}function aI(e){let t=new Set,n=r=>{switch(r.type){case"BINARY":t.add(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}};return e!==null&&n(e),t}function ms(e,t,n){switch(e.type){case"BINARY":return t.has(e)||n.has(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let r=ms(e.left,t,n),i=ms(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=ms(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Xi={type:"BOOLEAN",value:!0};function Rs(e,t){if(e.type==="BINARY"&&t.has(e))return Xi;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Rs(e.left,t)??Xi,r=Rs(e.right,t)??Xi;return Es(n)?Es(r)?null:r:Es(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Rs(e.expr,t)??Xi;return Es(n)?Xi:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Es(e){return e.type==="BOOLEAN"&&e.value}function sI(e,t){let n=new Map,r=a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){a.forEach(r);return}let s=a;if(s.type!=="SELECT"){if(s.type==="FIELD"&&typeof s.field=="string"&&typeof s.tableAlias<"u"){n.set(s.field,a);return}Object.values(s).forEach(r)}};r(e);let i=new Map,o=new Map;for(let[a,s]of n){let l=t(s);l&&(i.set(a,l.fieldType),l.optionOrder&&o.set(a,new Set(l.optionOrder.keys())))}return{fieldTypes:i,fieldOptions:o}}function lI(e,t){let n=new Map;for(let r of t){if(!Vr.has(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}var Y=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}},rt=class extends Error{constructor(t,n,r){super(`${t}: ${n}`),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}};function ym(e){if(e===null||typeof e!="object")return;let t=e,n=t.code==="ImportSourceReadError"||t.code==="ImportSourceNotRegularFileError"?t.code:t.name==="ImportSourceReadError"||t.name==="ImportSourceNotRegularFileError"?t.name:void 0;if(!n)return;let r=n==="ImportSourceReadError"?"IMPORT source could not be read.":"IMPORT source is not a regular file.";return new rt(n,typeof t.message=="string"&&t.message.length>0?t.message:r,e)}function uI(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function hm(e,t){if(!t)throw new rt("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);try{let n=t(e);if(!n)throw new rt("ImportSourceNotSuppliedError",`the named IMPORT source ${JSON.stringify(e)} was not supplied.`);if(typeof n!="object"||typeof n.load!="function")throw new rt("ImportSourceInvalidPayloadError","resolver must return a handle with a load function.");return n}catch(n){throw n instanceof rt?n:ym(n)??new rt("ImportSourceReadError","IMPORT source resolution failed.",n)}}async function ys(e,t){let n=t.get(e);return n||(n=Promise.resolve().then(()=>e.load()).catch(r=>{throw ym(r)??new rt("ImportSourceReadError","IMPORT source could not be read.",r)}).then(r=>{if(r===null||typeof r!="object"||!uI(r.bytes))throw new rt("ImportSourceInvalidPayloadError","loader must return Uint8Array bytes.");if(r.encoding!==void 0&&r.encoding!=="utf8"&&r.encoding!=="sjis")throw new rt("ImportSourceInvalidPayloadError","loader returned an unsupported encoding.");if(r.bytes.byteLength>10485760)throw new rt("ImportSourceTooLargeError","source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function cI(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new Y(`invalid ${t.toUpperCase()} byte sequence.`)}}function pI(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let u=e[a];if(i){if(u==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=u,a++;continue}if(o&&u!==","&&u!=="\r"&&u!==`
10
10
  `)throw new Y(`unexpected character after closing quote at offset ${a}.`);if(u==='"'){if(r.length!==0)throw new Y(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(u===","){s(),a++;continue}if(u==="\r"||u===`
11
11
  `){u==="\r"&&e[a+1]===`
12
- `&&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 sI(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 ps(e,t){let n=aI(oI(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}`)),sI(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 lI=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),uI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Yi=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 mm(e,t,n){if(!lI.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Yi;return uI.has(t??"")?r.map(i=>({code:i})):r}function zt(e,t,n,r){throw new Y(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function Rm(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new Y("JSON source is not valid UTF-8.")}}function gm(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
12
+ `&&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 dI(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 hs(e,t){let n=pI(cI(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}`)),dI(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 fI=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),EI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Zi=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 Am(e,t,n){if(!fI.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Zi;return EI.has(t??"")?r.map(i=>({code:i})):r}function Xt(e,t,n,r){throw new Y(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function Sm(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new Y("JSON source is not valid UTF-8.")}}function Tm(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
13
13
  `?(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===`
14
- `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",d=!1;for(;n<e.length;){let E=o();if(E==='"'){d=!0;break}if(E.charCodeAt(0)<32&&zt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){p+=E;continue}n>=e.length&&zt("string has an unterminated escape",l.offset,l.line,l.column);let m=o(),R={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
15
- `,r:"\r",t:" "};if(m in R){p+=R[m];continue}m!=="u"&&zt(`has invalid escape \\${m}`,n-2,r,Math.max(1,i-2));let g=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(g)||zt("has invalid unicode escape",n,r,i);for(let S=0;S<4;S++)o();let y=Number.parseInt(g,16);if(y>=55296&&y<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&zt("has an unpaired high surrogate",n,r,i),o(),o();let S=e.slice(n,n+4);for(let I=0;I<4;I++)o();let A=Number.parseInt(S,16);(A<56320||A>57343)&&zt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(y-55296<<10)+A-56320)}else y>=56320&&y<=57343?zt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(y)}d||zt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let u=e.slice(n),f=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(u)?.[0];if(f){for(let p=0;p<f.length;p++)o();t.push({kind:"number",lexeme:f,...l});continue}let c=/^(true|false|null)/.exec(u)?.[0];if(c){for(let p=0;p<c.length;p++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}zt(`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 ds(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function fs(e){if(e.byteLength===0)throw new Y("JSON source is empty.");let t=gm(Rm(e)),n=0,r=(u,f=t[n])=>{throw new Y(`JSON ${u} (offset=${f.offset}, line=${f.line}, column=${f.column}).`)},i=(u,f)=>u.kind==="punct"&&u.value===f,o=u=>{let f=t[n];(f.kind!=="punct"||f.value!==u)&&r(`expected ${u}; found ${ds(f)}`,f),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 f=new Map;if(i(t[n],"}"))return n++,f;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${ds(c)}`,c);let p=c.value;f.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,c),o(":"),f.set(p,a());let d=t[n];if(i(d,"}")){n++;break}o(",")}return f}if(u.kind==="punct"&&u.value==="["){let f=[];if(i(t[n],"]"))return n++,f;for(;;){f.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return f}return r(`expected a value; found ${ds(u)}`,u)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${ds(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,f)=>{if(!(u instanceof Map))throw new Y(`JSON record ${f+1} must be an object.`)}),l}var cI=new Set(["CHECK_BOX","MULTI_SELECT"]),ym=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function vt(e,t,n){throw new Y(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function pI(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function dI(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&vt(n,t.code,"boolean is not accepted."),pI(e)){t.fieldType==="NUMBER"&&vt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&vt(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)||vt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&vt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||vt(n,t.code,"unsupported value type."),!cI.has(t.fieldType)&&!ym.has(t.fieldType)&&vt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&vt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&vt(n,t.code,"array elements must not contain duplicates."),ym.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function uc(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let i=fs(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 p of l.keys())o.has(p)||vt(u+1,p,"unknown key (not declared in INTO).");let f={},c=new Set;for(let p of n)l.has(p.code)&&(c.add(p.code),f[p.code]=dI(l.get(p.code),p,u+1));a.push(f),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 cc(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ps(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((y,S)=>[y,S]));for(let y of r)if(!u.has(y))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let f=new Map(i.map(y=>[y.code,y])),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 p=[],d=[],E=y=>s.rows.filter(S=>S[y]!=="").length,m=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,S]of s.columns.entries()){if(c.has(S)||S===o)continue;let A=f.get(S);if(A)p.push({column:S,reason:m(A),nonEmptyCells:E(y)});else if(e.ignoreUnknownColumns)d.push({column:S,reason:"unknown column ignored by explicit policy",nonEmptyCells:E(y)});else throw new Y(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${S}".`)}for(let y of r){let S=f.get(y);if(!S)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(S.inSubtable||S.writable===!1||S.fieldType==="FILE"||S.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${S.fieldType}).`)}let R=[],g=s.rows.map(y=>{let S=[],A={};for(let I of r){let b=y[u.get(I)];try{A[I]=mm(b,f.get(I)?.fieldType,{cliKintone:!0})}catch(v){if(!(v instanceof Yi))throw v;A[I]=b,S.push({field:I,code:v.code,message:v.message})}}return R.push(S),A});return{receipt:{rows:s.rows.length,encoding:a},rows:g,columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:f.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:s.rows.map(y=>y[u.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:p,ignoredUnknownColumns:d}}}let l=s.rows.map(u=>Object.fromEntries(s.columns.map((f,c)=>[f,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 ji=(e,t,n)=>{throw new Y(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function hm(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let o=fs(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 f=u+1;for(let E of l.keys())a.has(E)||ji(f,E,"unknown key (not declared in INTO).");let c=new Map,p=new Map,d=new Set;for(let E of n){let m=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(m))continue;let R=l.get(m);if(E.kind==="FIELD"){R instanceof Map&&ji(f,m,"object is not accepted for a top-level field."),c.set(m,R);continue}Array.isArray(R)||ji(f,m,"subtable value must be an array."),d.add(m);let g=new Set(E.children),y=R.map((S,A)=>{S instanceof Map||ji(f,m,`childRow=${A+1} must be an object.`);let I=S;for(let b of I.keys())g.has(b)||ji(f,b,`unknown child key in subtable ${m} at childRow=${A+1}.`);if(s++,s>i)throw new Y(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:A+1,values:I}});p.set(m,y)}return{rowNumber:f,top:c,subtables:p,replacementTables:d}})}}function Am(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=ps(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((d,E)=>[d,E]));if(o&&!l.has(o))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=n.filter(d=>d.kind==="FIELD"),f=n.filter(d=>d.kind==="SUBTABLE");for(let d of u)if(!l.has(d.field))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${d.field}" is missing.`);for(let d of f){if(!d.rowIdSourceHeader||!l.has(d.rowIdSourceHeader))throw new Y(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${d.subtableCode} is missing.`);for(let E of d.children)if(!l.has(E))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required child header "${E}" is missing.`)}let c=[],p;if(s.rows.forEach((d,E)=>{let m=E+2,R=d[0];if(R!==""&&R!=="*")throw new Y(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${m}.`);if(R==="*"){if(c.length>=i)throw new Y(`source parent rows exceed maxRecords (${i}).`);p={rowNumber:c.length+1,markerRowNumber:m,top:new Map(u.map(g=>[g.field,d[l.get(g.field)]])),subtables:new Map(f.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:d[l.get(o)]}:{}},c.push(p)}else if(p){for(let g of u){let y=d[l.get(g.field)];if(y!==""&&y!==p.top.get(g.field))throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${m}.`)}if(o){let g=d[l.get(o)];if(g!==""&&g!==p.recordNumberSourceValue)throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${m}.`)}}else throw new Y(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${m}).`);for(let g of f){let y=d[l.get(g.rowIdSourceHeader)],S=new Map(g.children.map(I=>[I,d[l.get(I)]]));if(y===""&&[...S.values()].every(I=>I===""))continue;let A=p.subtables.get(g.subtableCode);A.push({childRowNumber:A.length+1,sourceRowNumber:m,...y?{rowId:y}:{},values:S})}}),c.length===0)throw new Y("CSV has no parent rows.");return{receipt:{rows:s.rows.length,encoding:a},records:c}}var fI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),EI=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function fc(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function wm(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let d=a.get(p.subtableCode);d||a.set(p.subtableCode,d=new Map),d.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)Sm(p.field,o.get(p.field),void 0);for(let p of l){let d=o.get(p.subtableCode);if(!d||d.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let E=a.get(p.subtableCode)??new Map;for(let m of p.children)Sm(m,E.get(m),p.subtableCode)}let u=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),f=e.records.map(p=>mI(p,s,l,o,a,r,i,u)),c=f.flatMap(p=>[...p.errors]);return{parents:f,errors:c,invalidParentRows:new Set(f.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:u}}function mI(e,t,n,r,i,o,a,s){let l=[],u={};for(let p of t)e.top.has(p.field)&&dc(e.top.get(p.field),r.get(p.field),o,u,p.field,l,pc(e,a,p.field));let f={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||Tm(p,o,f,l,pc(e,a,p.code));let c=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let d=s.get(p.subtableCode);d.parentsPresent++;let E=[];for(let m of e.subtables.get(p.subtableCode)){d.childRows++;let R=l.length,g={},y=i.get(p.subtableCode);for(let S of p.children){let A=y.get(S),I=pc(e,a,S,p.subtableCode,m.childRowNumber,m.sourceRowNumber??e.markerRowNumber);m.values.has(S)?dc(m.values.get(S),A,o,g,S,l,I):Tm(A,o,g,l,I)}l.length===R?(d.validChildRows++,E.push(g)):d.invalidChildRows++}c.set(p.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:u,subtables:c,replacementTables:e.replacementTables,errors:l}}function Sm(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&&EI.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Tm(e,t,n,r,i){let o=Cn(e.defaultValue)?"":e.defaultValue;dc(o,e,t,n,e.code,r,i,!Cn(e.defaultValue))}function dc(e,t,n,r,i,o,a,s=!1){let l=RI(e),u=qe(l,t,n);u.ok?r[i]={value:gI(l,t)?l:u.value}:o.push({...a,code:u.code,message:s?`\u65E2\u5B9A\u5024: ${u.message}`:u.message})}function RI(e){return Im(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Im(t)?t.lexeme:t):e}function Im(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function gI(e,t){return fI.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function pc(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 Ec=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function mc(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":yI(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 yI(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 Rc(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 bm(e,t){return Rc(e,t,"DROP")}function Nm(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 Cm(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 f=a?.record[l]?.value,c=Array.isArray(f)?f.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 hI(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Pm(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 Om(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),f=[...o.errors];if(!u||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:f};let c=new Map,p=[];for(let d of o.replacementTables){let E=hI(u.record,d),m=new Set(E.map(b=>b.id).filter(b=>!!b)),R=s.subtables.get(d)??[],g=o.subtables.get(d)??[],y=0,S=0,A=0,I=R.map((b,v)=>{let C=g[v]??{};return b.rowId&&m.has(b.rowId)?(y++,{rowId:b.rowId,record:C}):(b.rowId&&((i.get(b.rowId)??[]).some(x=>x.parentId!==l||x.table!==d)&&f.push({operation:"UPDATE",parentRow:o.parentRow,field:b.rowId,subtable:d,subrow:b.childRowNumber,sourceRow:b.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${b.rowId}`,sourceValues:b.values}),A++),S++,{record:C})});c.set(d,I),p.push({table:d,existingRows:E.length,inputRows:R.length,updateRows:y,addRows:S,deleteRows:E.length-y,rowIdNotFound:A})}return{parentRow:o.parentRow,targetId:l,...u.revision===void 0?{}:{revision:u.revision},valid:f.length===0,top:o.top,subtables:c,tables:p,errors:f}})}var gc="#__import_source";function Lm(e){return{...e,from:{appId:0,alias:null,cteName:gc}}}function AI(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function yc(e,t){let n=e.map(AI),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 SI="\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",Ns=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 _r(e,t){return e?.columns.includes(t)?t:void 0}function Oe(e,t){let n=_r(e,t);return n===void 0?void 0:e?.columnMeta?.get(n)}var Ae=new WeakMap;function oR(e){return Ae.get(e)}var Hn=new WeakMap,vr=new WeakMap,Cs=new WeakMap;function _m(e,t){t?.length&&Cs.set(e,[...new Set(t)])}function br(e,t){let n=Cs.get(e);return{result:t,...n?.length?{warnings:n}:{}}}var Oc=Symbol("statementEvaluationContext"),aR=Symbol("importSourceMaterializedCallback"),np=Symbol("nativeUpsertExecution"),sR=Symbol("nativeUpsertExplainCapability");function TI(e,t,n){return{...e,[np]:t,...n===void 0?{}:{[sR]:n}}}function lR(e){return e[np]===!0}function II(e){return np in e}function wI(e){return e[sR]}function uR(e){return e[Oc]?e:{...e,[Oc]:{statementInstant:new Date}}}function ae(e){return e[Oc]??{}}async function rp(e,t,n){let r=e[aR];r&&await r({name:t.sourceName,kind:t.kind,...n})}var vm=new WeakMap,bI=1,NI=1;function CI(e,t){if(t)return t;let n=vm.get(e);return n||(n=`client:${bI++}`,vm.set(e,n)),n}function cR(e){return`${e}\0inv:${NI++}`}function PI(){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 pR=Symbol("limitMetricsSink");function ip(e,t){let n=e[pR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function OI(e,t){let n={[pR]: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 yo(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var Dm=Symbol("searchAbortFailClosed");function op(e,t,n){return n&&e[Dm]?e:{...e,...n?{[Dm]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new Ns;return i}}}function dR(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 LI(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(SI),{...e,warnings:[...n]}}async function Lc(e,t,n){let r=await Ro(e,t,n);return sc(r),r}async function Ro(e,t,n){return dm(e,{select:async r=>{let{resolver:i}=await Fn(r,t,n);return we(r.where,i)},dml:r=>_R(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Fn(r,t,n);return lc(r,i)},joinServerFunctionPlan:async r=>{await Fn(r,t,n);let i=await ks(r,t,n),o=Ms(r,i);return o===null?null:(Ir(o.joinPlan)&&fp.set(r,o),o.joinPlan)}})}async function xm(e,t,n,r){n=uR(n);let i=await Ro(e,t,r);e.type!=="EXPLAIN"&&sc(i);let o=vc(e);if(o!==null&&!Rb(e))throw new Error(ys(o,"in a batch"));if(ur("phase15b",e),oi("phase15b",e),et(e),e.type!=="EXPLAIN"&&await rw(e,t,r),e.type==="IMPORT")return sg(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 qc(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 wp(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 _I(e,t,n,r);case"SELECT":return Jt(Fc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return HR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return yp(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return cb(e,t,n,r);case"INSERT_SELECT":return Pp(e,t,n,r);case"UPSERT":return Ob(e,t,n,r);case"UPSERT_SELECT":return vp(e,t,n,r);case"UPDATE":return qc(e,t,n,r);case"DELETE":return Pb(e,t,n,r);case"REORDER":return Ub(e,t,n,r);case"SHOW_APPS":return pg(t);case"DESCRIBE":return dg(e,t,r);case"EXPLAIN":return Yb(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?ut(n.dmlMaxRows,"dmlMaxRows",Xt):Xt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?ut(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me):Me,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,n.resolveMetadata!==!1,II(n)?{surface:"CLI",enableNativeUpsert:lR(n),clientHasNativeUpsert:wI(n)??yo(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 IR(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var ap=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],sp=["$id","$err_subtable","$err_field","$err_code","$err_count"];function lp(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 fR(e=!1){let t=e?sp:ap;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 _I(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return ER(e,t,n,r)}async function ER(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=Pu(e,i),l=new Set(s.flatMap(L=>Nu(L.field))),u={present:bu.filter(L=>l.has(L)),absent:bu.filter(L=>!l.has(L))},f=e.checkGroups??[],c=Rr(f);for(let L of c){if(L.field!=="$id"&&!o.has(L.field)&&!a.has(L.field))throw xe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!o.has(L.field)&&a.has(L.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([L,F])=>[L,F.fieldType]));p.set("$id","RECORD_NUMBER"),Wn(e,p);let d=lp(e.where),E=[...new Set(["$id",...s.map(L=>L.subtableCode??L.field.code),...d,...c.map(L=>L.field)])];for(let L of d){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 m=s.some(L=>L.field.fieldType==="NUMBER")?await xt(e.appId,t,r):void 0,R=L=>L.field==="$id"?te({fieldType:"__ID__"}):o.get(L.field)?.semantics??(o.has(L.field)?te(o.get(L.field)):void 0),g=we(e.where,R);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kn(g)}).`);let y=new Map([...o].map(([L,F])=>[L,F.fieldType])),S=new Map([...o.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),A=e.where===null?null:g.capability==="EXACT_PUSHDOWN"?e.where:Ml(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:S,allowKlike:!1}),I=A===null?"":z(A),v=(await Ve(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:jt(L,null)})).filter(L=>e.where===null||ce(e.where,L.flat,F=>p.get(F.field),void 0,void 0,ae(n))),C=[],k=new Map,x=new Map,U=new Set,O=0,P=L=>{if(U.add(L.id),O+=1,e.summary){let $=JSON.stringify([L.id,L.subtable??"",L.field,L.code]),M=x.get($);M?M.$err_count=String(Number(M.$err_count)+1):x.set($,{$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]),W=k.get(F);W?(W.$err_count=String(Number(W.$err_count)+1),L.subrow!==void 0&&(W.$err_subrow=`${W.$err_subrow},${L.subrow}`,W.$err_subrow_id=`${W.$err_subrow_id},${L.subrowId??""}`)):k.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),h=new Map;for(let L of s){if(!L.subtableCode)continue;let F=h.get(L.subtableCode)??[];F.push(L),h.set(L.subtableCode,F)}for(let L of v){for(let F of N){let W=L.record[F.field.code]?.value,$=qe(W,F.field,m);$.ok||P({id:L.id,field:F.field.code,code:$.code,message:$.message,value:Ii(W,F.field.fieldType)})}for(let[F,W]of h){let $=L.record[F]?.value;if(Array.isArray($))for(let M=0;M<$.length;M++){let K=$[M];for(let j of W){let B=K.value?.[j.field.code]?.value,G=qe(B,j.field,m);if(!G.ok){let D=Ma(F,M,K);P({id:L.id,field:j.field.code,code:G.code,message:G.message,value:Ii(B,j.field.fieldType),...D})}}}}for(let F of wa(f,L.flat,W=>p.get(W.field)))P({id:L.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)C.push(...x.values());else for(let L of k.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 _={type:"SELECT",columns:[...e.summary?sp:ap],rows:C,rowCount:C.length,validateStats:{errorRecords:U.size,errorCount:O,constraintMetadata:u}};return Ae.set(_,fR(e.summary===!0)),_}var st=1e4;function Dt(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])||!vI(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 vI(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||!Jo(i.semantics,r.semantics))return!1}return!0}var En=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};function mR(e,t,n,r={},i,o=!1,a,s=new Set){Ht(r);let l=[...e],u=ci(l);if(l.forEach(g=>oi("phase15b",g)),r.allowApplyMutation!==!0&&l.some(g=>$l(g)||g.type==="UPSERT"&&kI(g)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(r.continueOnError&&u.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let g of u.statements){if(!g.isDml||g.tempTablesReferenced.length===0||g.statementType==="INSERT_SELECT"||g.statementType==="UPSERT_SELECT")continue;let y=l[g.index];if(!(y?.type==="UPDATE"&&y.from?.cteName!=null))throw new le(`ArgumentError: temp table references in ${g.statementType} are not supported yet.`,g.index)}let f=xu(l,r.variables),c=TR(l,f),p=TI({...r,variables:f,captureColumnMeta:!0},o),d=Rl(r.asOf??new Date,r.timezone),E=new Map;for(let[g,y]of Object.entries(d.values))E.set(Gr(g),{type:"string",value:y});let m=PI(),R=Date.now();return{statements:l,analysis:u,metrics:m,options:p,client:OI(n,m),cacheContext:cR(CI(n,r.cacheContext)),tempTables:new Map,exportSinks:s,variables:E,relativeDateVariables:c,clock:ae(uR(p)),dialect:t,startedAt:R,deadline:r.timeoutMs!=null?R+r.timeoutMs:null,failed:new Set,cursorCleanups:new Set,...i?{onChunkWritten:i}:{},...a?{onImportSourceMaterialized:a}:{},nextIndex:0,aborted:null,disposed:!1,busy:!1}}async function RR(e,t){if(t.disposed)throw new Error("ExecutionContextDisposedError: execution context is disposed.");if(t.busy)throw new Error("ExecutionContextBusyError: concurrent executeStatement calls are not allowed.");let n=t.nextIndex;if(n>=t.statements.length)throw new Error("ExecutionContextOrderError: all statements have already been executed.");if(e!==t.statements[n])throw new Error(`ExecutionContextOrderError: expected statement index ${n}.`);t.busy=!0,t.nextIndex+=1;let r=t.analysis.statements[n],i={index:n,type:r.statementType};try{if(t.aborted){let R={...i,status:"skipped",skippedReason:t.aborted};return t.aborted!=="exit"&&t.failed.add(n),R}let o=r.dependsOn.find(R=>t.failed.has(R));if(o!==void 0){let R=t.analysis.statements[o].tempTablesCreated[0]??`statement ${o}`;return t.failed.add(n),{...i,status:"skipped",skippedReason:`dependency: ${R}`}}if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(n),t.aborted="timeout",{...i,status:"skipped",skippedReason:"timeout"};let a={aborted:!1},s=op(t.client,a,r.statementType!=="SELECT"&&r.statementType!=="UNION"&&r.statementType!=="WITH"||SE(e)),l=dR(s);t.cursorCleanups.add(l.closeActive);let u=t.deadline!==null?t.deadline-Date.now():null,f=t.onChunkWritten?MI(l.client,n,e,t.onChunkWritten):l.client,c=t.options.confirm,p=c?{...t.options,confirm:(R,g,y)=>c(R,g,{statementIndex:n,statementCount:t.statements.length,statementType:r.statementType,targetAppId:r.targetAppId,...y?.importDetail?{importDetail:y.importDetail}:{},...y?.applyDetail?{applyDetail:y.applyDetail}:{},...y?.applyDiagnostic?{applyDiagnostic:y.applyDiagnostic}:{}})}:t.options;t.onImportSourceMaterialized&&(p={...p,[aR]:async R=>{if(await t.onImportSourceMaterialized({statementIndex:n,...R}),t.deadline!==null&&Date.now()>=t.deadline)throw new En}});let d=await SR(FI({stmt:e,info:r,client:f,options:p,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect}),u,l.closeActive);d.result&&(d.result=LI(d.result,a));let{exitTriggered:E,...m}=d;return E&&(t.aborted="exit"),t.metrics.elapsedMs=Date.now()-t.startedAt,{...i,status:"success",...m}}catch(o){return t.failed.add(n),o instanceof En?t.aborted="timeout":o instanceof oo?t.aborted="assertion":r.statementType==="SET_VARIABLE"||r.statementType==="DECLARE_VARIABLE"?t.aborted="fail-fast":t.options.continueOnError||(t.aborted="fail-fast"),t.metrics.elapsedMs=Date.now()-t.startedAt,{...i,status:"error",error:zI(o)}}finally{t.busy=!1}}function DI(e){let t=async()=>{throw new Error("PreviewWriteBlockedError: previewStatement blocked a write API call.")},n={...e,postRecords:t,putRecords:t,deleteRecords:t};return yo(e)&&(n.upsertRecords=t),n}async function gR(e,t,n){if(t.disposed)throw new Error("ExecutionContextDisposedError: execution context is disposed.");if(t.busy)throw new Error("ExecutionContextBusyError: concurrent executeStatement calls are not allowed.");let r=t.nextIndex;if(r>=t.statements.length)throw new Error("ExecutionContextOrderError: all statements have already been executed.");if(e!==t.statements[r])throw new Error(`ExecutionContextOrderError: expected statement index ${r}.`);t.busy=!0,t.nextIndex+=1;let i=t.analysis.statements[r],o=xI(e),a=UI(e),s=Um(t.metrics);try{if(t.aborted)return t.aborted!=="exit"&&t.failed.add(r),hc(o,a);if(i.dependsOn.find(m=>t.failed.has(m))!==void 0)return t.failed.add(r),hc(o,a);if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(r),t.aborted="timeout",hc(o,a);let u={aborted:!1},f=op(t.client,u,!0),c=dR(f);t.cursorCleanups.add(c.closeActive);let p=DI(c.client),d=t.deadline!==null?t.deadline-Date.now():null,E=await SR(KI({stmt:e,info:i,client:p,options:t.options,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect},n),d,c.closeActive);return t.metrics.elapsedMs=Date.now()-t.startedAt,{...E,reads:Um(t.metrics)-s}}catch(l){throw t.failed.add(r),l instanceof En?t.aborted="timeout":t.options.continueOnError||(t.aborted="fail-fast"),t.metrics.elapsedMs=Date.now()-t.startedAt,l}finally{t.busy=!1}}function Um(e){return e.getCalls+e.cursorCreateCalls+e.cursorGetCalls}function xI(e){switch(e.type){case"INSERT":case"INSERT_SELECT":return"INSERT";case"UPDATE":return"UPDATE";case"DELETE":return"DELETE";case"UPSERT":case"UPSERT_SELECT":return"UPSERT";default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function UI(e){if("appId"in e&&typeof e.appId=="number")return e.appId;throw new Error("ArgumentError: previewStatement requires a DML target app.")}function hc(e,t){return{kind:"PREVIEW",operation:e,appId:t,counts:{insert:0,update:0,delete:0},samples:[],reads:0,estimatedWrites:0}}async function yR(e){e.disposed||(e.disposed=!0,await Promise.all([...e.cursorCleanups].map(t=>t().catch(()=>{}))),e.cursorCleanups.clear(),tg(e.cacheContext),e.metrics.elapsedMs=Date.now()-e.startedAt)}function MI(e,t,n,r){let i=0,o=async(u,f,c,p,d)=>{await r({statementIndex:t,appId:u,operation:f,records:c,chunkIndex:i++,...p===void 0?{}:{lastKeyValue:p},...d??{}})},a=(n.type==="UPSERT"||n.type==="UPSERT_SELECT")&&n.keyFields.length===1?n.keyFields[0]:void 0,s=u=>{if(a===void 0||u.length===0)return;let f=u[u.length-1][a]?.value;return typeof f=="string"?f:void 0},l={...e,postRecords:async u=>{let f=await e.postRecords(u);return await o(u.app,"INSERT",u.records.length,s(u.records)),f},putRecords:async u=>{await e.putRecords(u),await o(u.app,"UPDATE",u.records.length,s(u.records.map(f=>f.record)))},deleteRecords:async u=>{await e.deleteRecords(u),await o(u.app,"DELETE",u.ids.length)}};return yo(e)&&(l.upsertRecords=async u=>{let f=await e.upsertRecords(u),c=QR(f,u.records.length);return await o(u.app,"UPSERT",u.records.length,u.records[u.records.length-1]?.updateKey.value,c),f}),l}function kI(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 FI(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:u,dialect:f}=e;if(t.type==="SET_VARIABLE"){let d=io(t,s);if(et(d),await Lc(d,r,o),d.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:d.expr.elements.map(E=>({type:"string",value:E.value}))});else if(d.expr.type==="SCALAR_SUBQUERY")try{let E=await NR(d.expr.query,r,i,o,a),m=await bR(d.expr.query,r,o,a),R=m?Number(E):Number.NaN;s.set(t.name,m&&Number.isFinite(R)?{type:"number",value:R,raw:E}:{type:"string",value:E})}catch(E){throw E instanceof kn?new Error(`ArgumentError: ${E.message}`):E}else s.set(t.name,Mm(d.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 d=i.variables??{};if(Object.prototype.hasOwnProperty.call(d,t.name))s.set(t.name,{type:"string",value:d[t.name]});else{let E=Mm(t.default,u);s.set(t.name,{type:"string",value:E.type==="number"?E.raw??String(E.value):E.value})}return{}}let c=io(t,s);if(ur("phase15b",c),oi("phase15b",c),et(c),f===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(f===1&&(c.type==="UPSERT"||c.type==="UPSERT_SELECT")){let d=An(c)[0];if(d)throw new Error(`ArgumentError: ${d.message}`);let E=await Q(c.appId,r,o),m=An(c,E)[0];if(m)throw new Error(`ArgumentError: ${m.message}`)}if(await Lc(c,r,o),c.type==="VALIDATE"){let d=await ER(c,r,{...i,onLimitReached:"error"},o);return c.errorTable&&Dt(a,c.errorTable,d.columns,d.rows,i.tempTableMaxRows??st,Ae.get(d)??fR(c.summary===!0)),{result:d}}if(c.type==="IMPORT"){let d=await sg(c,r,i,o,a);return br(c,d)}if("validateOnly"in c&&c.validateOnly===!0){let d=await wp(c,r,{...i,onLimitReached:"error"},o,a,n.index+1);return c.validationErrorTable&&Dt(a,c.validationErrorTable,d.columns,d.errors,i.tempTableMaxRows??st,Hn.get(d)??new Map),br(c,d)}if("onErrorSkip"in c&&c.onErrorSkip===!0){let d=await jc(c,r,{...i,onLimitReached:"error"},o,a,n.index+1);return br(c,d)}if(c.type==="CREATE_TEMP_TABLE"){let d={...i,maxRecords:i.tempTableMaxRows??st,onLimitReached:"error"},E=await jI(c.query,r,d,o,a);return a.set(c.name,{rows:E.rows,columns:E.columns,columnMeta:Ae.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 d=c;tp.set(d,a);try{return{result:await xm(d,r,i,o)}}finally{tp.delete(d)}}if(c.type==="ASSERT"){let d=await IR(c,r,i,o,a);return d.warning!==void 0?{result:d}:{}}if(c.type==="EXIT"){let d=await ZI(c,r,i,o,a);return{result:d,...d.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(c.type==="SELECT"||c.type==="UNION")return{result:await St(c,r,i,a,o,i.captureColumnMeta===!0)};if(c.type==="WITH")return{result:await yp(c,r,i,o,a)};if(c.type==="INSERT_SELECT"){let d=await Pp(c,r,i,o,a);return br(c,d)}if(c.type==="UPSERT_SELECT"){let d=await vp(c,r,i,o,a);return br(c,d)}if(c.type==="UPDATE"&&c.from?.cteName!=null)return{result:await qc(c,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}let p=await xm(c,r,i,o);return br(c,p)}async function KI(e,t){let{stmt:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,dialect:l}=e,u=io(n,s);if(ur("phase15b",u),oi("phase15b",u),et(u),l===1&&(u.type==="INSERT"||u.type==="UPDATE"||u.type==="DELETE")&&u.subtableCode)throw new Error("ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.");if(l===1&&(u.type==="UPSERT"||u.type==="UPSERT_SELECT")){let f=An(u)[0];if(f)throw new Error(`ArgumentError: ${f.message}`);let c=await Q(u.appId,r,o),p=An(u,c)[0];if(p)throw new Error(`ArgumentError: ${p.message}`)}switch(await Lc(u,r,o),u.type){case"INSERT":return $I(u,r,i,o,t);case"INSERT_SELECT":return BI(u,r,i,o,a,t);case"UPDATE":return VI(u,r,i,o,a,t);case"DELETE":return WI(u,r,i,o,t);case"UPSERT":return HI(u,r,i,o,t);case"UPSERT_SELECT":return YI(u,r,i,o,a,t);default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function $n(e,t,n,r,i=!1){let o=e==="UPSERT"?i?Math.ceil((n.insert+n.update)/100):Math.ceil(n.insert/100)+Math.ceil(n.update/100):Math.ceil((n.insert+n.update+n.delete)/100);return{kind:"PREVIEW",operation:e,appId:t,counts:n,samples:r,reads:0,estimatedWrites:o}}function Mn(e,t){return Object.fromEntries(t.map(n=>[n,tt(e?.[n]?.value)]))}function GI(e){if(e.length!==0)return e.length===1?e[0]:JSON.stringify(e)}async function $I(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Ne(e.appId,t,r),l=mi(e,s,ae(n)).flatMap(u=>u.records);return lt(l,e.fields,o,a),$n("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,i).map(u=>({kind:"insert",after:Mn(u,e.fields)})))}async function hR(e,t,n,r,i,o){let a=await Vs.materialize(e,t,n,r,i,o);if(Cp(a),a.columns.length!==e.fields.length){let u=e.type==="INSERT_SELECT"?"INSERT":"UPSERT";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${a.columns.length}\uFF09\u3068 ${u} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)}let s=await Ne(e.appId,t,r);return{records:a.rows.map((u,f)=>{let c={};return e.fields.forEach((p,d)=>{a.importPresence&&!a.importPresence[f]?.has(p)||(c[p]={value:Ip(u[a.columns[d]]??"",s.get(p))})}),c}),fieldTypes:s}}async function BI(e,t,n,r,i,o){let a=await Ue(e.appId,e.fields,t,r),s=await He(e.appId,e.fields,a,t,r),{records:l}=await hR(e,t,n,r,i,a);return l.forEach(u=>lt([u],e.fields.filter(f=>f in u),a,s)),$n("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,o).map(u=>({kind:"insert",after:Mn(u,e.fields)})))}async function VI(e,t,n,r,i,o){let a=e.assignments.map(p=>p.field),s=await Ue(e.appId,a,t,r),l=await He(e.appId,a,s,t,r);if(await mn(e,t,r),Je(e.where))return $n("UPDATE",e.appId,{insert:0,update:0,delete:0},[]);let u=await ig(e,t,n,r,i,a),f=u.map(p=>p.record);lt(f,a,s,l);let c=u.slice(0,o).map(p=>({kind:"update",before:Mn(p.validationSnapshot,a),after:Mn(p.record,a)}));return $n("UPDATE",e.appId,{insert:0,update:u.length,delete:0},c)}async function WI(e,t,n,r,i){if(await mn(e,t,r),Je(e.where))return $n("DELETE",e.appId,{insert:0,update:0,delete:0},[]);let o=du(e),a=await Li(t.getRecords,o.app,o.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});return $n("DELETE",e.appId,{insert:0,update:0,delete:a.ids.length},a.ids.slice(0,i).map(s=>({kind:"delete",key:String(s)})))}async function AR(e,t,n,r,i,o,a,s){for(let d of e.keyFields)if(!e.fields.includes(d))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${d}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);t.forEach(d=>lt([d],e.fields.filter(E=>E in d),r,i));let l=t.map(d=>e.keyFields.map(E=>tt(d[E]?.value))),u=Gs(Ap(e,o,a,r,l)).execution.status==="ELIGIBLE",f=await xr(e.appId,e.keyFields,l,o,a,n,e.fields),c=[],p=[];return t.forEach((d,E)=>{let m=Dr(f,l[E]),R=GI(l[E]);m===void 0?c.push({kind:"insert",...R===void 0?{}:{key:R},after:Mn(d,e.fields)}):p.push({kind:"update",...R===void 0?{}:{key:R},before:Mn(f.snapshots?.get(m),e.fields),after:Mn(d,e.fields)})}),$n("UPSERT",e.appId,{insert:c.length,update:p.length,delete:0},[...c,...p].slice(0,s),u)}async function HI(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Ne(e.appId,t,r),l=ug(e,s,n);return AR(e,l,s,o,a,t,n,i)}async function YI(e,t,n,r,i,o){let a=await Ue(e.appId,e.fields,t,r),s=await He(e.appId,e.fields,a,t,r),{records:l,fieldTypes:u}=await hR(e,t,n,r,i,a);return AR(e,l,u,a,s,t,n,o)}async function jI(e,t,n,r,i){return e.type==="WITH"?yp(e,t,n,r,i,!0):St(e,t,n,i,r,!0)}async function SR(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new En;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 En)})()},t)})])}catch(a){throw a instanceof En&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function zI(e){let t;if(e instanceof Ot)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Ac(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:qI(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Ac(r),message:r}}else{let n=String(e);t={code:Ac(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Ac(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function qI(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function JI(e,t=!1,n=!1){let r=new Mt(e).tokenize();return new en(r,{import:t,dialect1:n}).parseStatements()}function XI(e,t){try{let n=JI(`DECLARE @__b111 RELATIVE_DATE = ${t}`),r=n[0];if(n.length!==1||r?.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE")throw new Error("token was not consumed as one RELATIVE_DATE declaration");return r.default}catch(n){let r=n instanceof Error?` ${n.message}`:"";throw new Error(`ArgumentError: RELATIVE_DATE variable @${e} requires one supported relative-date function token.${r}`)}}function TR(e,t){let n=new Map;for(let r of e)r.type!=="DECLARE_VARIABLE"||r.annotation!=="RELATIVE_DATE"||n.set(r.name,Object.prototype.hasOwnProperty.call(t,r.name)?XI(r.name,t[r.name]):r.default);return n}function Mm(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:Uf(e.name,t)};case"STRING_FUNC":return{type:"string",value:he(e,{},void 0,void 0,t)};case"ARITH":{let n=me(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 io(e,t){return _c(e,t,!1)}function ys(e,t){return er(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 _c(e,t,n){if(Array.isArray(e))return e.map(r=>_c(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(ys(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(ys(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,_c(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(ys(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=QI(i);if(o.type==="SELECT"&&it(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&it(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 it(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function QI(e){if(e.type==="NOT"&&it(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&it(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(it(t,!1)||it(n,!1))return{type:"BOOLEAN",value:!1};if(it(t,!0))return n;if(it(n,!0))return t}else if(e.op==="OR"){if(it(t,!0)||it(n,!0))return{type:"BOOLEAN",value:!0};if(it(t,!1))return n;if(it(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 oo=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},kn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function IR(e,t,n,r,i){let o=await wR(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 oo(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function ZI(e,t,n,r,i){let o=await wR(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function wR(e,t,n,r,i){let o=await Es(e.left,t,n,r,i);if(e.op==="BETWEEN"){if(e.low===null||e.high===null)throw new Error("ArgumentError: malformed ASSERT statement.");let l=await Es(e.low,t,n,r,i),u=await Es(e.high,t,n,r,i);return{passed:$t(">=",o.value,l.value,Sc(o,l))&&$t("<=",o.value,u.value,Sc(o,u)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await Es(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?V("number"):V("string"):Sc(o,a);return{passed:$t(e.op,o.value,a.value,s),actual:o.value}}function Sc(e,t){return V(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function Es(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:q(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(Dc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await NR(e.query,t,n,r,i),a=await bR(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof kn?new oo(o.message):o}}}async function bR(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 lo(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function NR(e,t,n,r,i){let{query:o,probed:a}=ew(e),s=await to(o,t,n,r,i);if(s.columns.length!==1)throw new kn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new kn("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 kn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function ew(e){return kt(e)||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function Dc(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=Dc(e.left),n=Dc(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 go(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||Lt(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let d=await Q(p,t,n);return[p,new Map(d.map(E=>[E.code,E]))]}))),l=new Set,u=p=>{if(Array.isArray(p)){p.forEach(u);return}if(p===null||typeof p!="object")return;let d=p;if(d.type==="SELECT")return;let E=String(d.op),m=d.right,R=["=","!=","<>"].includes(E)&&m?.type==="STRING"&&m.value!=="";if(d.type==="BINARY"&&([">","<",">=","<="].includes(E)||R)){let g=d.left;g?.type==="FIELD"&&typeof g.field=="string"&&l.add(g.field)}Object.values(d).forEach(u)};u(e.where),u(e.having);for(let p of e.columns)p.type==="CASE_COL"&&u(p.expr);let f=new Map;await Promise.all([...s].map(async([p,d])=>{if(![...l].some(R=>d.get(R)?.fieldType==="STATUS"))return;let m=await Tp(p,t,n);m&&f.set(p,m)}));let c=(p,d,E)=>{if(d==="$id")return ir(te({fieldType:"__ID__"}),p.appId,"$id");if(E&&p.subtableCode){if(d==="_rid")return V("string");if(d==="_idx"||d==="_pid")return V("number")}let m=s.get(p.appId)?.get(pe(p,d));if(!m)return;let R=m.semantics??te(m),g=m.fieldType==="STATUS"&&f.has(p.appId)?{...R,optionOrder:f.get(p.appId)}:R;return ir(g,p.appId,m.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,p.field,!1);let E=o.find(m=>de(m)===p.tableAlias);return E?E.cteName!==null?Oe(r?.get(E.cteName),p.field)?.semantics??V("string"):c(E,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?Oe(r?.get(e.from.cteName),p.field)?.semantics??V("string"):c(e.from,p.field,!0);let d=o.flatMap(E=>{let m=E.cteName!==null?r?.get(E.cteName):void 0,R=E.cteName!==null?_r(m,p.field)!==void 0?Oe(m,p.field)?.semantics??V("string"):void 0:c(E,p.field,!0);return R?[R]:[]});if(d.length===1)return d[0];if(!o.some(E=>As(E,p.field)!==void 0))return d.length>1?V("string"):void 0}}var CR=new WeakMap;async function Fn(e,t,n,r,i=!1){let o=await go(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=$d(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&CR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function tw(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function PR(e){return tw(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function km(e,t,n,r,i){return i!==void 0&&e.joins.length===0&&e.from.cteName!==null?t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=$e(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=$e(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function Fm(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 OR(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"||km(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`+Fm(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||km(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`+Fm(n,"VALUE"));return i}function up(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=Ae.get(e);return r&&Ae.set(n,r),n}function cp(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=>Lt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function LR(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($e(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=Vn(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=Vn(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=Bn(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=ve(r.field,n.keys());return i===void 0?t(r):n.get(i)}}function Kn(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function Ps(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function _R(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Lt(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?we(null,()=>{}):we(e.where,o=>{if(o.field==="$id")return te({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?te(a):void 0)})}async function mn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await _R(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new oe(`WHERE predicate cannot be represented by kintone REST (${Kn(r)})`)}async function Jt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){Ew(e);let l,u=new Set;if(await so(e,t,r,i),aw(e))return l=uw(e,n),o&&Ae.set(l,await lo(e,l.columns,t,r,i,a)),l;let{resolver:f}=await Fn(e,t,r,i,PR(e)),c=OR(e,f,s),p=await Pr(e,t,r,i);await fg(e,t,n,r,u,i);let d=Iw(e,we(e.where,f));if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kn(d)}).`);let E=Qe(e),m,R;if(d.capability==="SUPERSET_PREFILTER"){let C=await go(e,t,r,i),k=lc(e,C);k.eligible&&ac(e,k)&&(m=k.plan)}if(m===void 0&&d.capability==="EXACT_PUSHDOWN"&&e.where!==null){let C=null;try{C=z(e.where)}catch{C=null}R=Oo({select:e,selectMode:E,capability:d,context:{allowFullScanExact:!0},serializedWholeWhere:C,relativeFunctionNames:Se(e.where)})??void 0,R&&(m=R.prefilterPlan)}let g=d.capability==="EXACT_PUSHDOWN"?E:"FULL_SCAN",y=await co(e,t,r,i),S=Ps(e)?(e.orderMode==="KINTONE_NATIVE"?xi:Di)({stmt:e,staticMode:g,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:_e(e.where)}):null,A=await pw(e,S?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),I=pp(e,n,S),v=R!==void 0&&(E==="FULL_SCAN"||S?.kind==="CANONICAL_LOCAL")?op(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await cw(e,v,I.effectiveOptions,r,S,y):l=await Nw(e,v,I.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&m===void 0,y,m,p)}catch(C){DR(I,C)}return o&&Ae.set(l,await lo(e,l.columns,t,r,i,a)),up(l,[...u,...c,...A])}function xc(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 vR(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 Pr(e,t,n,r){let i=ee(e);if(!kt(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 m=r?.get(c.cteName);if(!m)throw new Error(`InternalError: materialized schema ${c.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:m.columns}}let p=await Q(c.appId,t,n);if(!c.subtableCode){for(let m of p){if(m.inSubtable!==!0||!m.subtableCode)continue;let R=s.get(m.code)??[];R.push({appId:c.appId,owner:m.subtableCode}),s.set(m.code,vR(R))}return{kind:"APP",fieldCodes:p.filter(m=>!m.inSubtable).map(m=>m.code)}}let d=p.filter(m=>m.inSubtable&&m.subtableCode===c.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(d.length>0?d:p.filter(m=>m.inSubtable&&m.subtableCode===void 0)).map(m=>m.code),parentFieldCodes:p.filter(m=>!m.inSubtable).map(m=>m.code)}})),u=yd(e,(c,p)=>l[p]),f=Td(o,e.columns,u);return nw(e,o,f,s),zr(e,Nd(e,f,u)),f}function nw(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],f=u?.type==="FIELD_NAME"?u.name:"(expression)";if(s.kind==="UNKNOWN"){let c=a===null?"":` (APP${a})`,p=s.name.indexOf("."),d=p>=0?s.name.slice(p+1):s.name,E=r.get(s.name)??r.get(d)??[];throw E.length>0?new Error(xc(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 ${f} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${f} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${f} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var ao=new WeakMap;async function rw(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 so(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function iw(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 p=await Q(c,t,n);return[c,new Map(p.map(d=>[d.code,d]))]}))),s=(c,p)=>{if(c.subtableCode)return null;let d=a.get(c.appId)?.get(p);return d?.inSubtable===!0?d.subtableCode??"":null},l=(c,p)=>{if(p==="$id")return"$id";let d=pe(c,p);return s(c,d)!==null?null:a.get(c.appId)?.has(d)?d:null},u=(c,p)=>{if(c.cteName===null)return!1;let d=r?.get(c.cteName);return d?_r(d,p)!==void 0:!0},f=(c,p,d,E)=>{let m=i.filter(y=>y.cteName===null&&l(y,d.field)!==null).length,R=i.some(y=>u(y,d.field)),g=de(c);return{canonicalId:`source:${p}:APP${c.appId}:${E}`,directKey:d.tableAlias&&g?`${d.tableAlias}.${d.field}`:d.field,unqualifiedBridgeKey:m===1&&!R?d.field:null,physical:!0}};return c=>{if(c.tableAlias!==null){let R=i.findIndex(S=>de(S)===c.tableAlias);if(R<0)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} has an unknown table alias.`);let g=i[R];if(g.cteName!==null)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} resolves to materialized source ${g.cteName}; physical APP fields are required.`);let y=l(g,c.field);if(y===null){let S=s(g,pe(g,c.field));throw S!==null&&S!==""?new Error(xc(c.field,[{appId:g.appId,owner:S}])):new Error(`ArgumentError: field ${c.tableAlias}.${c.field} does not exist in APP${g.appId}.`)}return f(g,R,c,y)}let p=i.flatMap((R,g)=>{if(R.cteName!==null)return[];let y=l(R,c.field);return y===null?[]:[{table:R,tableIndex:g,code:y}]}),d=i.filter(R=>u(R,c.field));if(p.length+d.length>1)throw new Error(`ArgumentError: field ${c.field} is ambiguous across multiple sources.`);if(p.length===1&&d.length===0){let R=p[0];return f(R.table,R.tableIndex,c,R.code)}if(d.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(R=>{if(R.cteName!==null)return[];let g=s(R,pe(R,c.field));return g===null||g===""?[]:[{appId:R.appId,owner:g}]}),m=vR(E);throw m.length>0?new Error(xc(c.field,m)):new Error(`ArgumentError: field ${c.field} does not exist in a physical APP source.`)}}async function so(e,t,n,r){ao.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 iw(e,t,n,r),u=Od(e,l,Pd);u&&ao.set(e,u);return}if(!kt(e))return;if(i.type==="NONE"){Bo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await Pr(e,t,n,r)}function ow(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 pp(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?cn({...e,orderBy:[]}):cn(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function DR(e,t){throw e.reasons.size>0&&t instanceof Et&&!t.completeInputWrapped?new Et(ow(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Uc(e,t){try{return await t()}catch(n){DR(e,n)}}function Je(e){return e?.type==="BOOLEAN"&&e.value===!1}function aw(e){return e.from.appId===0&&e.from.cteName===Le}function Os(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT planning.`);return e.type==="FIELD_REF"?!0:e.type==="ARITH"?Os(e.left)||Os(e.right):e.type==="STRING_FUNC"?dp(e):!1}function sw(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Ji(e)}function Ji(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?dp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Ji(e.left)||Ji(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"?Os(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Ji(n))):!1}function dp(e){return e.args.some(t=>sw(t))}function lw(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(Os(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(dp(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Ji(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 uw(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.");lw(e);let n=ec([{}],e.columns,void 0,void 0,void 0,void 0,ae(t)),{rows:r,columns:i}=Dn(n,e.columns,void 0,void 0,void 0,void 0,void 0,ae(t)),o=ns(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function cw(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?KR(e):e,s=jo(a),l=i?.kind==="CANONICAL_LOCAL"?In(e,e.from):s.fields,u=await Ep(e,t,r),f=Rp(e,u),c=e.columns.some(C=>C.type==="CASE_COL")?await go(e,t,r,void 0,cp(e)):void 0,p=n.maxRecords??1e4,d=new Set,E=n.onLimitReached??"error",m=n.fetchParallel??1,R=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,g=e.limit===null?null:(e.offset??0)+e.limit,y=e.orderBy.length===0&&g!==null&&g<=p&&!_e(e.where)?g:void 0,S;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)S=[];else if(i?.kind==="KORDER_CURSOR"){let C=await FE({client:t,app:s.app,fields:s.fields,query:Wu(e),offset:e.offset??0,limit:e.limit});S=C.records,C.cleanupWarning&&d.add(C.cleanupWarning)}else if(R)S=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let C=e.where?z(e.where):"";S=await Ve(t.getRecords,s.app,C,l,{parallel:m,maxRecords:p,stopAfter:y,onLimit:E,onTruncate:k=>{d.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${k} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${k} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ip(t,e.from.appId)}})}let A=S.map(C=>jt(C,null));R||(A=Qu(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Zu(e.columns,void 0,f.row,c,ae(n)),ae(n)),A=ns(A,e.limit,e.offset));let{rows:I,columns:b}=Dn(A,e.columns,void 0,f.row,void 0,c,void 0,ae(n)),v=await hp(e,I,b,t,r);return{type:"SELECT",rows:I,columns:v,rowCount:I.length,warnings:[...d]}}async function pw(e,t,n,r){let i=[],o=new Map,a=(u,f)=>{if(f.length===0)return;let c=o.get(u);c||(c=new Set,o.set(u,c));for(let p of f)c.add(p)},s=new Map,l=(u,f)=>{let c=s.get(u);c||(c=new Set,s.set(u,c));for(let p of f)c.add(p)};if(t==="SIMPLE"){let u=jo(e);a(u.app,u.fields),e.from.subtableCode||l(u.app,u.fields)}else{let u=[e.from,...e.joins.map(f=>f.table)].filter(f=>f.cteName===null);for(let f of u){let c=In(e,f);a(f.appId,c),f.subtableCode||l(f.appId,c)}}for(let[u,f]of o.entries()){let c=[...f].filter(R=>!Ko(R));if(c.length===0)continue;let p=await Q(u,n,r);if(p.length===0)continue;let d=new Set(p.map(R=>R.code)),E=c.filter(R=>!d.has(R));if(E.length>0)throw new Error(`ArgumentError: unknown field code(s): ${E.join(", ")} (APP${u})`);let m=s.get(u);if(m){let R=p.filter(g=>g.inSubtable===!0&&m.has(g.code));for(let g of R){let y=g.subtableCode??"",S=y?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${y}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${g.code} \u306F${S}\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`+(y?`APP${u}$${y} \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 Tc(e){return e.cteName??`APP${e.appId}`}function xR(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function dw(e,t){return Ko(t)||e.validCodes.has(t)}function Ic(e,t){return e.table.cteName!==null?e.validCodes.has(t):dw(e,t)}async function fw(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||Ko(a))return!0;let s=i.get(o.appId);return!s||s.size===0?!0:s.has(pe(o,a))}}async function UR(e,t,n,r){let i=!1;Km(e,t,()=>(i=!0,!0)),i&&Km(e,t,await fw(e,n,r))}function Km(e,t,n){let r=[e.from,...e.joins.map(E=>E.table)],i=new Map;for(let E of r)for(let m of xR(E))i.set(m,E);let o=e.columns.flatMap(E=>"alias"in E&&E.alias!==null?[E.alias]:[]),a=E=>E.cteName===null||E.cteName===Le?[]:t.get(E.cteName)?.columns??[],s=(E,m)=>E?ve(m,a(E)):void 0,l=E=>{if(r.some(g=>a(g).includes(E)))return E;let m=r.flatMap(g=>{let y=s(g,E);return y===void 0?[]:[y]}),R=[...new Set(m)];if(R.length===1)return r.some(g=>n(g,E))?E:R[0]},u=(E,m,R)=>{if(R&&m===null){let g=ve(E,o);if(g!==void 0)return g}return m===null?l(E)??E:s(i.get(m),E)??E},f=(E,m)=>{let R=E.indexOf(".");if(R<=0)return u(E,null,m);let g=E.slice(0,R),y=E.slice(R+1),S=u(y,g,!1);return S===y?E:`${g}.${S}`};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,p=(E,m=!1)=>{if(E===null||typeof E!="object"||c.has(E))return;if(c.add(E),Array.isArray(E)){for(let g of E)p(g,m);return}let R=E;if(!(E!==e&&(R.type==="SELECT"||R.type==="UNION"))){if(R.type==="FIELD"&&typeof R.field=="string"){let g=typeof R.tableAlias=="string"?R.tableAlias:null;R.field=g===null?f(R.field,m):u(R.field,g,m)}else if(R.type==="FIELD_REF"&&typeof R.field=="string")R.field=f(R.field,m);else if(R.type==="AGG_GROUP_KEY"&&typeof R.field=="string"){let g=typeof R.tableAlias=="string"?R.tableAlias:null;R.field=u(R.field,g,m)}for(let g of Object.values(R))p(g,m)}};for(let E of e.columns)p(E);p(e.where),p(e.having,!0),p(e.grouping);let d=ee(e);if(d.type==="PLAIN")for(let E of d.allItems)E.type==="FIELD_NAME"?E.name=f(E.name,!0):p(E);for(let E of e.orderBy)E.key.type==="FIELD_NAME"?E.key.name=f(E.key.name,!0):p(E.key);for(let E of e.columns)if(E.type==="WINDOW_COL"){for(let m of E.partitionBy)m.field=u(m.field,m.tableAlias,!1);for(let m of E.orderBy)m.key.type==="FIELD_NAME"?m.key.name=f(m.key.name,!1):p(m.key)}}function Ew(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=ve(i.field,t);o!==void 0&&(i.field=o)}i.type==="SELECT"||i.type==="UNION"||Object.values(i).forEach(n)}};n(e.having)}function mw(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 Mc(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=new Map,s=new Set,l=new Set;for(let p of o){let d=de(p);if(d!==null){if(l.has(d))throw new Error(`ArgumentError: effective alias ${d} is used by multiple tables.`);l.add(d)}}for(let p of o){if(p.cteName===null||p.cteName===Le)continue;let d=n.get(p.cteName);if(!d){if(i){s.add(p);continue}throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`)}if(d.rows.length>0&&d.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&d.rows.length===0&&d.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);a.set(p,d)}let u=new Map;await Promise.all(o.map(async p=>{if(s.has(p)){u.set(p,{table:p,label:Tc(p),validCodes:new Set,authoritative:!1,schemaUnavailable:!0});return}let d=a.get(p);if(d){u.set(p,{table:p,label:Tc(p),validCodes:new Set(d.columns),authoritative:!0,schemaUnavailable:d.rows.length===0&&d.columns.length===0});return}if(p.cteName===Le)return;let E=i?await ng(p.appId,r):await Q(p.appId,t,r);u.set(p,{table:p,label:Tc(p),validCodes:new Set((E??[]).map(m=>m.code)),authoritative:E!==null&&E.length>0,schemaUnavailable:!1})}));let f=new Map;for(let p of u.values())for(let d of xR(p.table))f.set(d,p);for(let p of e.joins)if(p.type!=="CROSS")for(let d of[p.on.left,p.on.right]){if(!d.tableAlias)continue;let E=f.get(d.tableAlias);if(E&&E.table.cteName!==null&&!E.schemaUnavailable&&!Ic(E,d.field))throw new Error(`ArgumentError: JOIN key ${d.tableAlias}.${d.field} is not available in the materialized table.`)}let c=Ud(e);for(let[p,d]of c.bySource){let E=u.get(p);if(!E||E.schemaUnavailable||!E.authoritative)continue;let m=[...d].filter(R=>!Ic(E,R));if(m.length>0)throw new Error(`ArgumentError: unknown field code(s): ${m.join(", ")} (${E.label})`)}for(let p of c.unqualified){let d=[...u.values()].filter(m=>!m.schemaUnavailable);if(d.some(m=>Ic(m,p))||[...u.values()].some(m=>m.schemaUnavailable)||d.some(m=>m.table.cteName===null&&!m.authoritative))continue;let E=d.map(m=>m.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${E})`)}}async function hs(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await hs(e.left,t,n,r,i),await hs(e.right,t,n,r,i);return}await UR(e,n,t,r),await Mc(e,t,n,r);for(let o of mw(e))await hs(o,t,n,r,i)}}function MR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ni(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ni(e.where,{tableAlias:e.from.alias}):null}function Xi(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"?Xi(e.left)||Xi(e.right):e.type==="GROUP"||e.type==="NOT"?Xi(e.expr):!1}var fp=new WeakMap;function Ms(e,t){if(e.joins.length===0||e.where===null||e.joins.some(d=>d.type!=="INNER"&&d.type!=="CROSS"))return null;let n=[e.from,...e.joins.map(d=>d.table)];if(n.some(d=>d.alias===null||d.cteName!==null||!!d.subtableCode))return null;let r=n.map(d=>({alias:d.alias,appId:d.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(d.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(d.appId)})),i=vE(e.where,r),o=DE(i,r),a=new Map,s=new Map;for(let[d,E]of o.fetchQueriesByAlias)s.set(d,E);for(let d of o.items)s.has(d.targetAlias)||s.set(d.targetAlias,Tr(d,r)),a.set(d.targetAlias,d.predicate);let l=e.from.alias,u=a.get(l)??null,f=new Map(a);f.delete(l);let c=new Map(o.items.map(d=>[d.targetAlias,d.relation])),p=c.get(l)??null;return c.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:u,mainRelation:p,joinConditions:f,joinRelations:c,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function ks(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,MR(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=ni(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[u,f]=await Promise.all([Ne(s,t,n),$w(s,t,n)]),c=Rw(l).filter(p=>u.get(p)==="STATUS");if(c.length>0){let p=await $s(s,t,n);if(p.enable&&p.states&&p.states.length>0){let d=new Set(p.states.map(E=>E.name));for(let E of c)f.set(E,d)}}return[s,u,f]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function Rw(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 qt(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"&&Ls(e.left.expr,t),e.right.type==="CASE_VALUE"&&Ls(e.right.expr,t);return;case"LOGICAL":qt(e.left,t),qt(e.right,t);return;case"NOT":case"GROUP":qt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Ls(e,t){for(let n of e.branches)qt(n.condition,t)}function gw(e){let t=[];qt(e.where,t),qt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Ls(n.expr,t);return t}function de(e){return e.alias??e.cteName}function kR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>de(n)===t)}function Fs(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Ep(e,t,n){let r=gw(e);if(r.length===0)return new Map;let i=new Set,o=Fs(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=kR(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 Ne(s,t,n)]));return new Map(a)}function $e(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($e(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"?Or(n,t):n.type!=="ARRAY"&&xn(n,t)}function Or(e,t){if(e.type==="AGG_REF"){mp(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Or(e.left,t),Or(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function kc(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")Or(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;Qi(n,t)}}function Qi(e,t){if(e.type==="STRING_FUNC"){kc(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Qi(e.left,t),Qi(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"?kc(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?Or(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Qi(r,t)}}function Gm(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 yw(e){let t=[];for(let n of e)n.type==="AGGREGATE"?mp(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Or(n.expr,t):n.type==="ARITH_COL"?Gm(n.expr,t):n.type==="STRFUNC_COL"?kc(n.expr,t):n.type==="SCALAR_VALUE_COL"?Qi(n.expr,t):n.type==="CASE_COL"&&Gm(n.expr,t);return t}var hw=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function Aw(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":hw.has(e.fieldType)?"string":void 0}async function FR(e,t,n,r){let i=yw(e.columns);if(i.length===0)return;let o=new Set,a=Fs(e);for(let d of i)if(d.tableAlias!==null){if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let E=kR(e,d.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 d=>{let E=await Q(d,t,n);return[d,new Map(E.map(m=>[m.code,m]))]}))),l=new Map,u=new Set(i.map(d=>d.field));await Promise.all([...s].map(async([d,E])=>{if(![...u].some(R=>E.get(R)?.fieldType==="STATUS"))return;let m=await Tp(d,t,n);m&&l.set(d,m)}));let f=[e.from,...e.joins.map(d=>d.table)],c=(d,E)=>{let m=d.semantics??te(d);return d.fieldType==="STATUS"&&l.has(E)?{...m,optionOrder:l.get(E)}:m};return d=>{let E;if(d.tableAlias!==null)if(d.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)E=s.get(e.from.appId)?.get(d.field);else{let R=f.find(g=>de(g)===d.tableAlias);if(!R)return;if(R.cteName!==null)return Oe(r?.get(R.cteName),d.field)?.semantics??V("string");E=s.get(R.appId)?.get(pe(R,d.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return Oe(r?.get(e.from.cteName),d.field)?.semantics??V("string");E=s.get(e.from.appId)?.get(pe(e.from,d.field))}else{let R=f.flatMap(g=>{if(g.cteName!==null){let S=r?.get(g.cteName);return _r(S,d.field)!==void 0?[Oe(S,d.field)?.semantics??V("string")]:[]}let y=s.get(g.appId)?.get(pe(g,d.field));return y?[c(y,g.appId)]:[]});return R.length!==1?void 0:R[0]}if(!E)return;let m=d.tableAlias!==null?f.find(R=>de(R)===d.tableAlias):e.joins.length===0?e.from:void 0;return c(E,m?.appId??e.from.appId)}}function pe(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function As(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function Ge(e,t){let n=e.semantics??te(e);return{sortKind:Aw(e),fieldType:e.fieldType,semantics:t===void 0?n:ir(n,t,e.code)}}function KR(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function re(e){return{sortKind:e,semantics:V(e)}}function ot(){return{semantics:V("string","KSQL_UNKNOWN")}}function GR(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function at(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:te({fieldType:"__ID__"})};if(e==="_rid")return re("string");if(e==="_pid"||e==="_idx"||e==="$revision")return re("number")}function Bn(e,t){return re(bt(e,n=>{let r=t?.(n);if(r)return"compareMode"in r?r:r.semantics}))}function Lr(e,t){return e.type==="STRING"?re("string"):e.type==="ARRAY"?GR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?ot():Vn(e.arg,t):e.func==="GROUP_CONCAT"?re("string"):re("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?re("number"):e.type==="STRING_FUNC"?Bn(e,t):e.type==="FIELD_REF"?t($e(e.field))??ot():e.type==="FIELD"?t(e)??ot():ot()}function Ks(e){if(e.length===0)return ot();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&&Jo(n(r.semantics),n(t.semantics)))?e.every(i=>Jo(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?GR("KSQL_MIXED_UNSUPPORTED"):ot()}function Vn(e,t){if(e.type==="FIELD_REF")return t($e(e.field))??ot();if(e.type==="FIELD")return t(e)??ot();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return re("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return re("string");if(e.type==="STRING_FUNC")return Bn(e,t);let n=e.branches.map(r=>Lr(r.result,t));return e.elseResult&&n.push(Lr(e.elseResult,t)),Ks(n)}function $R(e,t){return e.windowKind==="VALUE"?Vn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?re("number"):e.arg.type==="WILDCARD"?ot():Vn(e.arg,t):re("number")}function Ss(e,t){return{...e??{},displayName:t}}function Sw(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function lo(e,t,n,r,i,o=!1){let a=new Map;Sw(e)&&await Promise.all(Fs(e).map(async m=>{if(a.has(m.appId))return;let R=await Q(m.appId,n,r);a.set(m.appId,new Map(R.map(g=>[g.code,g])))}));let s=[e.from,...e.joins.map(m=>m.table)],l=o&&i===void 0&&s.every(m=>m.cteName===null),u=m=>{if(m.tableAlias!==null){if(m.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let S=a.get(e.from.appId)?.get(m.field);return S?Ge(S,e.from.appId):void 0}let g=s.find(S=>de(S)===m.tableAlias);if(!g)return;if(g.cteName!==null)return Oe(i?.get(g.cteName),m.field);let y=a.get(g.appId)?.get(pe(g,m.field));return y?Ge(y,g.appId):at(m.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Oe(i?.get(e.from.cteName),m.field);let g=a.get(e.from.appId)?.get(pe(e.from,m.field));return g?Ge(g,e.from.appId):at(m.field)}let R=s.flatMap(g=>{if(g.cteName!==null){let A=i?.get(g.cteName);return _r(A,m.field)===void 0?[]:[Oe(A,m.field)]}let y=a.get(g.appId)?.get(pe(g,m.field)),S=y?Ge(y,g.appId):at(m.field);return S?[S]:[]});return R.length===1?R[0]:void 0},f=m=>{if(!l)return;let R=s.filter(g=>{if(m.tableAlias!==null&&de(g)!==m.tableAlias)return!1;let y=pe(g,m.field);return a.get(g.appId)?.has(y)===!0||at(m.field)!==void 0});return R.length===1?R[0].appId:void 0},c=(m,R)=>{let g=f(R);return m&&g!==void 0?{...m,publicSourceApp:g}:m},p=new Map,d=e.columns.some(m=>m.type==="WILDCARD"||m.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let m of t){let R=$e(m),g=c(u(R),R);p.set(m,Ss(g,g?.displayName??m))}return p}if(d)for(let m of t){let R=$e(m),g=c(u(R),R);p.set(m,Ss(g,g?.displayName??m))}return e.columns.filter(m=>m.type!=="WILDCARD"&&m.type!=="PARENT_WILDCARD").forEach((m,R)=>{let g=d?"alias"in m&&m.alias?m.alias:void 0:t[R];if(!g)return;let y;if(m.type==="FIELD"){let S=$e(m.field);y=c(u(S),S)}else if(m.type==="AGGREGATE")m.func==="GROUP_CONCAT"?y=re("string"):m.func==="COUNT"||m.func==="SUM"||m.func==="AVG"||m.func==="STDDEV_POP"||m.func==="STDDEV_SAMP"||m.func==="VAR_POP"||m.func==="VAR_SAMP"||m.func==="MEDIAN"?y=re("number"):(m.func==="MIN"||m.func==="MAX"||m.func==="MODE")&&m.arg.type!=="WILDCARD"&&(y=Vn(m.arg,u));else if(m.type==="ARITH_AGG_COL"||m.type==="ARITH_COL")y=re("number");else if(m.type==="GROUPING_COL")y=re("number");else if(m.type==="LITERAL_COL")y=re("string");else if(m.type==="SCALAR_VALUE_COL"){let S=m.expr;S.type==="STRING_FUNC"?y=Bn(S,u):S.type==="NUMBER"||S.type==="SCALAR_ARITH"?y=re("number"):S.type==="FIELD"?y=u(S):y=re("string")}else if(m.type==="STRFUNC_COL")y=Bn(m.expr,u);else if(m.type==="WINDOW_COL")y=$R(m,u);else if(m.type==="CASE_COL"){let S=m.expr.branches.map(A=>Lr(A.result,u));m.expr.elseResult&&S.push(Lr(m.expr.elseResult,u)),y=Ks(S)}else m.type==="SCALAR_SUBQUERY_COL"&&(y=ot());p.set(g,Ss(y,m.aliasDisplay??g))}),p}function Tw(e,t){let n=Ae.get(e),r=Ae.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),f;if(s&&u){let c=Ks([s,u]),p=s.publicSourceApp===u.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:d,...E}=c;f=p===void 0?E:{...E,publicSourceApp:p}}else f=ot();i.set(o,Ss(f,s?.displayName??o))}),i}function Rp(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(f=>de(f)===s.tableAlias);return!u||u.cteName!==null?void 0:As(u,s.field)??t.get(u.appId)?.get(pe(u,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:As(e.from,s.field)??t.get(e.from.appId)?.get(pe(e.from,s.field));if(n.some(u=>u.cteName!==null))return;let l=r.flatMap(u=>{let f=As(u,s.field)??t.get(u.appId)?.get(pe(u,s.field));return f?[f]:[]});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 BR=new WeakSet,gp=new WeakMap;function Fc(e){return BR.add(e),e}function Iw(e,t){return gp.set(e,t),t}function VR(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 ww(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function bw(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 Ns;if(!ww(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=Dn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function Nw(e,t,n,r,i,o=!0,a,s,l){let u=gp.get(e);if(BR.has(e)&&u!==void 0&&VR(e,u)){let G=await bw(e,t);if(G!==null)return G}let f=n.maxRecords??1e4,c=new Set,p=n.fetchParallel??1;await Promise.all([Eo(e.where,t,n,r,c,i),Eo(e.having,t,n,r,c,i)]);let[d,E,m]=await Promise.all([ks(e,t,r),Ep(e,t,r),FR(e,t,r,i)]),R=Rp(e,E),g=await go(e,t,r,i,Lt(e.having)||cp(e)),y=LR(e,g),S=fp.get(e);if(S&&!Ir(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let A=S??Ms(e,d)??wn(e,d);Vl(A);let I="joinPlan"in A?A:null,b=I&&Ir(I.joinPlan)?I:null,v=t,C=A.mainCondition,k=A.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let x=s?s.prefilterWhere:b?null:C,U=b?.queriesByAlias.get(e.from.alias)??"",O=await mg(e.columns,t,n,r,c,i),P=Je(e.where),N=P?Promise.resolve([]):Zi(e,e.from,v,f,p,!0,n.onLimitReached??"error",c,x,b?!1:o,l,U),h=[],w=[];for(let G of e.joins){if(P){h.push({join:G,promise:Promise.resolve([])});continue}let D=G.table.alias?b?.queriesByAlias.get(G.table.alias)??"":"",H=b?null:G.table.alias?k.get(G.table.alias)??null:null;H!==null||D!==""?h.push({join:G,promise:Zi(e,G.table,v,f,p,!1,n.onLimitReached??"error",c,H,!0,l,D)}):w.push(G)}let _=a?Promise.resolve(a):co(e,t,r,i);_.catch(()=>{});let L=await N,F=new Map;F.set(e.from.alias,L);for(let{join:G,promise:D}of h)F.set(G.table.alias,await D);await Promise.all(w.map(async G=>{let H=await eg(e,G,F,v,f,p,n.onLimitReached??"error",c,r,i,null,l,"")??await Zi(e,G.table,v,f,p,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(G.table.alias,H)}));let{optionOrders:W,sortKinds:$,semantics:M}=await _,{rows:K,columns:j}=tc({tables:F,stmt:e,scalarCache:O,optionOrders:W,sortKinds:$,orderSemantics:M,fieldTypeResolver:R.row,fieldSemanticsResolver:g,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:m,appliedKlikes:s?.appliedKlikes??A.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:ao.get(e),plainGroupByPlan:l,warnings:c,evaluationContext:ae(n)}),B=await hp(e,K,j,t,r);return{type:"SELECT",rows:K,columns:B,rowCount:K.length,warnings:[...c]}}function Cw(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
16
- 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){Cw(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=Ae.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let u=e.columns[l],f=n?.get(s)??(u===void 0?void 0:o?.get(u));f&&a.set(s,{...f,displayName:s})}),Ae.set(i,a)}return i}function WR(e,t,n,r){let i=Kc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:Pw(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&&Ae.set(l,Tw(e,t)),l}async function HR(e,t,n,r,i=!1,o=!1){let a=pp(e,n,null);return Uc(a,async()=>{let s=a.effectiveOptions,[l,u]=await Promise.all([e.left.type==="UNION"?HR(e.left,t,s,r,i,o):Jt(Fc(e.left),t,s,r,void 0,i,o,"DERIVED"),Jt(Fc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return WR(l,u,e.all,i)})}function Pw(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 YR(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function jR(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(YR);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 $m(e){return e.columns.map((t,n)=>YR(t)??`__b53_column_${n}`)}function Bm(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 zR(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 Oe(r.get(s.cteName),l);let u=o.get(s.appId)?.get(pe(s,l));return u?Ge(u,s.appId):at(l)};return s=>{if(s.tableAlias!==null){let u=i.find(f=>de(f)===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 zi(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>zi(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:$e(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=$e(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"){zi(r.left,t,!0),zi(r.right,t,!0);return}for(let i of Object.values(r))zi(i,t,n)}async function Vm(e,t,n,r,i){let o=await zR(e,n,r,i);e.columns.forEach(u=>zi(u,o));let a=await lo(e,$m(e),n,r,i),s=$m(e),l=new Map;return t.forEach((u,f)=>{let c=a.get(s[f]);if(!c?.semantics||c.semantics.fieldType==="KSQL_UNKNOWN"||c.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${f+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(u,{...c,displayName:u})}),l}function Rn(e){return`${e.appId}:${e.subtableCode??""}`}function qR(...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(Rn(r))&&t.set(Rn(r),r);return[...t.values()]}function Ow(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(Rn(i),null)};for(let r of e){let i=Fs(r);for(let s of i){let l=Rn(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 f=t.get(Rn(u));f!==null&&f?.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=Ow(l.field),f=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:u.alias;o(f,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 _w(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 vw(e,t,n,r){let i=Lw(e),o=await Promise.all(qR(...e).map(async(a,s)=>{let l=await Jt(_w(a,i.get(Rn(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),u=`__b53_source_${s}`;return[Rn(a),{name:u,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:Ae.get(l)}}]}));return new Map(o)}function Wm(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(Rn(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 Hm(e,t,n){return e.cteName===null?void 0:Oe(n.get(e.cteName),t)}function wc(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=Ce(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function Ym(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 Dw(e,t,n,r,i){let o=e.recursiveSpec,a=jR(e),s=await Vm(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let u=await Vm(o.recursiveTerm,a,t,i,l);a.forEach(($,M)=>{let K=s.get($),j=u.get($);if(!K||!j||!Bm(K,j))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${M+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let f=Ym(e.name,o.recursiveTerm),c=await zR(o.recursiveTerm,t,i,l),p=c({type:"FIELD",tableAlias:de(f.self),field:f.selfField}),d=c({type:"FIELD",tableAlias:de(f.source),field:f.sourceField});if(!p||!d||!Bm(p,d))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 vw([o.seed,o.recursiveTerm],t,n,i),m=new Map(r);for(let $ of E.values())m.set($.name,$.table);let R=Wm(o.seed,E),g=Wm(o.recursiveTerm,E),y=await St(R,t,n,m,i,!0,!0),S=Kc(y,a,s),A=o.cycle,I=A?s.get(A.column):void 0,b=new Map(s);A&&b.set(A.markColumn,{...re("string"),displayName:A.markColumn});let v=A?[...a,A.markColumn]:[...a],C=[],k=[],x=new Set([...S.warnings??[],...[...E.values()].flatMap($=>$.warnings)]),U=new $a(e.name,Ht(n)),O=$=>{U.addRow(),C.push($)};for(let $ of S.rows){let M=A?String($[A.column]??""):"",K=A?{...$,[A.markColumn]:A.defaultValue}:$;O(K),k.push({row:$,path:A?[M]:[]})}let P=Ym(e.name,g),N=P.source.cteName===null?void 0:m.get(P.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 h=Hm(P.self,P.selfField,l)??Hm(P.source,P.sourceField,m);if(!h?.semantics||h.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${P.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let w=new Map;for(let $ of N.rows){let M=String($[P.sourceField]??""),K=wc(M,h.semantics),j=w.get(K);j?j.push($):w.set(K,[$])}let _=w.has(wc("",h.semantics)),L=0,F=!1;for(;k.length>0;){L++;let $=[];for(let M of k){let K=String(M.row[P.selfField]??"");!F&&K===""&&_&&(x.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${P.selfField} = ${P.sourceField} \u3067\u7B2C ${L} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let j=w.get(wc(K,h.semantics))??[];for(let H of j){let ye=String(H[P.sourceField]??"");$t("=",K,ye,h.semantics)&&U.addExpansion()}if(j.length===0)continue;let B=new Map(m);B.set(e.name,{rows:[M.row],columns:a,columnMeta:s});let G=await St(g,t,n,B,i,!0,!0);for(let H of G.warnings??[])x.add(H);let D=Kc(G,a,s);D.rows.length>0&&U.observeDepth(L);for(let H of D.rows){if(!A){O(H),$.push({row:H,path:[]});continue}let ye=String(H[A.column]??""),Ye=M.path.some(se=>$t("=",se,ye,I.semantics));O({...H,[A.markColumn]:Ye?A.markValue:A.defaultValue}),Ye||$.push({row:H,path:[...M.path,ye]})}}k=$}let W={type:"SELECT",rows:C,columns:v,rowCount:C.length,warnings:[...x]};return Ae.set(W,b),W}async function yp(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&on(e))return Jt(an(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let u of e.ctes){let f;u.recursiveSpec?f=await Dw(u,t,n,a,r):u.query.type==="SHOW_APPS"?f=await pg(t):u.query.type==="DESCRIBE"?f=await dg(u.query,t,r):u.query.type==="GENERATE_SERIES"?f=JR(u.query):f=await St(u.query,t,n,a,r,!0);for(let c of f.warnings??[])s.add(c);a.set(u.name,{rows:f.rows,columns:f.columns,columnMeta:Ae.get(f),...u.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:u.query.columnAlias}:{}})}let l=await St(e.query,t,n,a,r,o);return up(l,[...s])}function JR(e){let t=Ea(e),n={type:"SELECT",columns:[e.columnAlias],rows:t.values.map(i=>({[e.columnAlias]:i})),rowCount:t.rowCount,warnings:[]},r=t.kind==="INTEGER"?{sortKind:"number",fieldType:"NUMBER",semantics:te({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:te({fieldType:"DATE"})};return Ae.set(n,new Map([[e.columnAlias,r]])),n}async function St(e,t,n,r,i,o=!1,a=!1){if(a||await hs(e,t,r,i),e.type==="UNION"){let[u,f]=await Promise.all([St(e.left,t,n,r,i,o,!0),St(e.right,t,n,r,i,o,!0)]);return WR(u,f,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Le||e.joins.some(u=>u.table.cteName!=null)))return Jt(e,t,n,i,r,o,!1,"DERIVED");let l=await xw(e,t,n,r,i);return o&&Ae.set(l,await lo(e,l.columns,t,i,r)),l}async function xw(e,t,n,r,i){await so(e,t,i,r);let o=ao.get(e),a=await Pr(e,t,i,r),s=new Set,l=B=>{if(B.alias!==null||B.cteName===null)return B;let G=de(B);return s.add(G),{...B,alias:G}};e={...e,from:l(e.from),joins:e.joins.map(B=>({...B,table:l(B.table)}))};let u=new Set;for(let B of[e.from,...e.joins.map(G=>G.table)]){let G=de(B);if(G!==null){if(u.has(G))throw new Error(`ArgumentError: effective alias ${G} is used by multiple tables.`);u.add(G)}}let f=B=>{let G=r.get(B);if(!G)throw new Error(`ArgumentError: materialized source ${B} is not available.`);return G};for(let B of[e.from,...e.joins.map(G=>G.table)])B.cteName!==null&&f(B.cteName);let{resolver:c}=await Fn(e,t,i,r,PR(e)),p=OR(e,c,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),d=n.maxRecords??1e4,E=new Set,m=n.fetchParallel??1;await Promise.all([Eo(e.where,t,n,i,E,r),Eo(e.having,t,n,i,E,r),fg(e,t,n,i,E,r)]);let R=we(e.where,c);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kn(R)}).`);let g=await co(e,t,i,r),y=Ps(e)?(e.orderMode==="KINTONE_NATIVE"?xi:Di)({stmt:e,staticMode:"FULL_SCAN",whereCapability:R.capability,whereReasons:R.reasons,orderSemantics:g.semantics,maxRecords:d,hasKlike:_e(e.where)}):null,S=pp(e,n,y),A=S.effectiveOptions,[I,b,v]=await Promise.all([ks(e,t,i),Ep(e,t,i),FR(e,t,i,r)]),C=Rp(e,b),k=await go(e,t,i,r,Lt(e.having)||cp(e)),x=LR(e,k),U=Ms(e,I)??wn(e,I);Vl(U);let O=t,P=await mg(e.columns,t,A,i,E,r),N=Promise.resolve(g);N.catch(()=>{});let h=new Map,w=new Map;if(e.from.cteName!=null){let B=f(e.from.cteName);h.set(e.from.alias,B.rows.map(jm)),w.set(e.from.alias,B.columns)}else{let B=await Uc(S,()=>Zi(e,e.from,O,d,m,!0,A.onLimitReached??"error",E,U.mainCondition,R.capability==="EXACT_PUSHDOWN",a));h.set(e.from.alias,B)}let _=e.joins.map(B=>Uc(S,async()=>{if(B.table.cteName!=null){let G=f(B.table.cteName);h.set(B.table.alias,G.rows.map(jm)),w.set(B.table.alias,G.columns)}else{let G=B.table.alias?U.joinConditions.get(B.table.alias)??null:null,H=await eg(e,B,h,O,d,m,A.onLimitReached??"error",E,i,r,G,a)??await Zi(e,B.table,O,d,m,!1,A.onLimitReached??"error",E,G,!0,a);h.set(B.table.alias,H)}}));await Promise.all(_);let{optionOrders:L,sortKinds:F,semantics:W}=await N,$=e.joins.length===0&&e.from.cteName!=null?f(e.from.cteName).columns:void 0,{rows:M,columns:K}=tc({tables:h,stmt:e,scalarCache:P,optionOrders:L,sortKinds:F,orderSemantics:W,fieldTypeResolver:C.row,fieldSemanticsResolver:k,havingFieldTypeResolver:C.having,havingFieldSemanticsResolver:x,aggregateSortKindResolver:v,appliedKlikes:U.appliedKlikes,sourceColumns:$,tableColumns:w,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:ae(n)}),j=await hp(e,M,K,t,i);return up({type:"SELECT",rows:M,columns:j,rowCount:M.length,warnings:[...E]},p)}async function hp(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 GE(o,e.from.subtableCode,()=>$s(e.from.appId,r,i))}function jm(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Zi(e,t,n,r,i,o,a,s,l=null,u=!0,f,c=""){let p=In(e,t,f),d=g=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${g} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${g} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ip(n,t.appId),TE(e,t,o))throw new Et(`\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${g} \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 g=o&&u?Dd(e,t.appId).query:"",y=[l!==null?z(l):"",c].filter(b=>b!==""),S=y.length>1?y.map(b=>`(${b})`).join(" and "):y[0]??"",A=g&&S?`(${g}) and (${S})`:g||S;return(await mt(n.getRecords,t.appId,A,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:d})).records}let E=o&&u&&e.joins.length===0&&e.where!==null&&gp.get(e)?.capability==="EXACT_PUSHDOWN"&&!Ft(e.where)?z(e.where):"",R=(await mt(n.getRecords,t.appId,E,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:d})).records;return im(R,t.subtableCode)}var Cr=50;function Uw(e){let t=Ce(e);return t!==null?JSON.stringify(t):e}function Gc(e){return JSON.stringify(e)}function gn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?Uw(n):n))}var zm={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function qm(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 bc(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}: ${zm[t.condition]} \u2014 ${qm(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${zm[o]} \u2014 ${qm(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function Mw(e,t){if(t==="DOCUMENT_ONLY")return[bc("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=[bc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(bc("native UPSERT statement/data eligibility",e.statement,t)),n}function kw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function Fw(e,t,n){let r=null;if(e.type==="UPSERT")try{r=Op(e)}catch{}return Gs({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 XR(e,t,n){let r=kw(e);if(!r)return[];let i=await ng(r.appId,t);return Mw(Fw(r,i,n),n.surface)}function Gs(e){let t=e.statement.keyFields.length===1?e.statement.keyFields[0]:void 0,n=t===void 0||e.fieldInfos===null?void 0:e.fieldInfos.find(p=>p.code===t),r=n?.fieldType==="SINGLE_LINE_TEXT"||n?.fieldType==="NUMBER",i=e.fieldInfos===null?null:!!(t!==void 0&&n&&r&&n.isUnique===!0),o=!e.statement.hasCheck&&!e.statement.hasApply&&!e.statement.validateOnly&&!e.statement.onErrorSkip&&!(e.statement.kind==="SELECT"&&e.statement.importDerived),a=e.rowKeyValues,s=a===null?null:a.every(p=>p.every(d=>d!=="")),l=null;if(a!==null&&t!==void 0&&r){let p=new Set;l=!0;for(let d of a){let E=gn([...d],[n.fieldType==="NUMBER"]);if(p.has(E)){l=!1;break}p.add(E)}}let u=(p,d)=>({state:p===null?"UNKNOWN":p?"PASS":"FAIL",reason:d}),f={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=p=>{let d=p.find(m=>f[m].state==="FAIL");if(d!==void 0)return{status:"INELIGIBLE",condition:d,reason:f[d].reason};let E=p.filter(m=>f[m].state==="UNKNOWN").map(m=>({condition:m,reason:f[m].reason}));return E.length>0?{status:"UNKNOWN",unknownConditions:E}:{status:"ELIGIBLE"}};return{conditions:f,execution:c([1,2,3,4,5,6]),statement:c([3,4,5,6])}}function yo(e){return"upsertRecords"in e&&typeof e.upsertRecords=="function"}function Ap(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:yo(t),enabled:lR(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 _s=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function QR(e,t){if(!e||!Array.isArray(e.records)||e.records.length!==t)throw new _s;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 _s;i.operation==="INSERT"?n+=1:r+=1}return{insertedCount:n,updatedCount:r}}async function ZR(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 ge("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((p,d)=>{let E={};for(let[m,R]of Object.entries(p))m!==t&&(E[m]=R);return{updateKey:{field:t,value:r[l+d][0]},record:E}}),f=await i.upsertRecords({app:e,upsert:!0,records:u}),c=QR(f,u.length);a+=c.insertedCount,s+=c.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function Dr(e,t){let n=e.raw.get(Gc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(gn(t,e.numericKey))}async function xr(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,u=t.map(g=>o.get(g)==="NUMBER"),f={raw:new Map,normalized:new Map,numericKey:u,...a?{snapshots:new Map}:{}},c=(g,y,S)=>{let A=g.get(y);(A===void 0||S>A)&&g.set(y,S)},p=(g,y)=>{c(f.raw,Gc(g),y),u.some(Boolean)&&c(f.normalized,gn(g,u),y)},d=new Set,E=[],m=new Set;for(let g of n){let y=Gc(g);m.has(y)||(m.add(y),g.some(S=>S==="")?E.push(g):d.add(g[0]))}let R=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let g of ho([...d],Cr)){let y=`${t[0]} in (${g.map(uo).join(",")})`,S=await Ve(r.getRecords,e,y,R,{maxRecords:s,parallel:l});for(let A of S){let I=Number(A.$id?.value);Number.isFinite(I)&&(f.snapshots?.set(I,A),p(t.map(b=>Sp(A[b]?.value)),I))}}for(let g of E){let y=t.map((I,b)=>`${I} = ${uo(g[b])}`).join(" and "),S=a?[...new Set(["$id",...a])]:["$id"],A=await Ve(r.getRecords,e,y,S,{maxRecords:s,parallel:l});if(A.length!==0){for(let I of A){let b=Number(I.$id?.value);Number.isFinite(b)&&f.snapshots?.set(b,I)}p(g,Kw(A))}}return f}function Kw(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 Sp(e){return typeof e=="string"?e:e==null?"":String(e)}function uo(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function ho(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Gw=6,Ts=Ba*Gw;async function eg(e,t,n,r,i,o,a,s,l,u,f=null,c,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let d=t.on.left.tableAlias,E=t.on.right.tableAlias;if(!d||!E)return null;let m,R,g;if(d===t.table.alias&&E!==t.table.alias)m=E,R=t.on.right.field,g=t.on.left.field;else if(E===t.table.alias&&d!==t.table.alias)m=d,R=t.on.left.field,g=t.on.right.field;else return null;let y=n.get(m);if(!y)return null;let S=[e.from,...e.joins.map(h=>h.table)].find(h=>de(h)===m),A=(await Q(t.table.appId,r,l)).find(h=>h.code===pe(t.table,g)),I=A?Ge(A,t.table.appId):at(g),b;if(S?.cteName!==null&&S?.cteName!==void 0)b=Oe(u?.get(S.cteName),R);else if(S){let h=(await Q(S.appId,r,l)).find(w=>w.code===pe(S,R));b=h?Ge(h,S.appId):at(R)}let v=[],C=!1;for(let h of y){let w=h[R]?.value,_=Sp(w);(w==null||_.length===0)&&(C=!0),v.push(_)}let k=ku({fieldType:I?.fieldType,sourceSemantics:b?.semantics,sourceRowCount:y.length,values:v,hasEmptyValue:C,maxInKeys:Ts});if(k.kind==="EMPTY_SOURCE")return[];if(k.kind==="FALLBACK"){if(k.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let h=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${h} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${Ts} \u4EF6\uFF09\u3002`)}return null}if(k.kind==="RANGE_CANDIDATE")return null;let x=Mu(k,g,uo);if(x.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 ${Ts} \u4EF6\uFF09\u3002`),null;let U=In(e,t.table,c),O=h=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${h} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${h} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),ip(r,t.table.appId)},P=[],N=new Set;for(let h of x){let _=[f!==null?z(f):"",p].filter(F=>F!=="").reduce((F,W)=>`(${F}) and (${W})`,h),L=await mt(r.getRecords,t.table.appId,_,U,{parallel:o,maxRecords:i,onLimit:a,onTruncate:O});for(let F of L.records){let W=`${F.$id?.value??""}:${JSON.stringify(F)}`;N.has(W)||(N.add(W),P.push(F))}}return P}var $c=new Map,Bc=new Map,Vc=new Map,vs=new Map,Wc=new Map,Hc=new Map;function tg(e){$c.delete(e),Bc.delete(e),Vc.delete(e),vs.delete(e),Wc.delete(e),Hc.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(vs,n,e);if(r)return r;let i=t.getFields(e);return Ur(vs,n,e,i),i}async function ng(e,t){let n=Yn(vs,t,e);return n?await n:null}async function xt(e,t,n){let r=Yn(Hc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Ur(Hc,n,e,i),i}async function $s(e,t,n){let r=Yn(Wc,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Ur(Wc,n,e,i),i}async function Tp(e,t,n){let r=await $s(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ne(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 Yc(e,t,n){let r=Yn(Bc,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(Bc,n,e,o),o}async function $w(e,t,n){let r=await Yc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Jm(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 Bw(e){let t=[...e.orderBy,...e.columns.flatMap(n=>n.type==="WINDOW_COL"?n.orderBy:[])];return[...new Set(t.flatMap(n=>n.key.type==="FIELD_NAME"?[n.key.name]:[]))]}async function Vw(e,t,n,r){let i=Bw(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(c=>c.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(c=>c.cteName===null).map(c=>c.appId))].map(async c=>{let p=await Q(c,t,n);return[c,new Map(p.map(d=>[d.code,d]))]}))),l=c=>{if(c.tableAlias!==null){if(c.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let m=s.get(e.from.appId)?.get(c.field);return m?Ge(m,e.from.appId):void 0}let d=o.find(m=>de(m)===c.tableAlias);if(!d)return;if(d.cteName!==null)return Oe(r?.get(d.cteName),c.field);let E=s.get(d.appId)?.get(pe(d,c.field));return E?Ge(E,d.appId):at(c.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Oe(r?.get(e.from.cteName),c.field);let d=s.get(e.from.appId)?.get(pe(e.from,c.field));return d?Ge(d,e.from.appId):at(c.field)}let p=o.flatMap(d=>{if(d.cteName!==null){let R=r?.get(d.cteName),g=Oe(R,c.field);return g?[g]:[]}let E=s.get(d.appId)?.get(pe(d,c.field)),m=E?Ge(E,d.appId):at(c.field);return m?[m]:[]});return p.length>1&&a.add(c.field),p.length===1?p[0]:void 0},u=new Map;for(let c of e.columns){if(!("alias"in c)||!c.alias)continue;let p;if(c.type==="FIELD")p=l($e(c.field));else if(c.type==="ARITH_COL"||c.type==="ARITH_AGG_COL")p=re("number");else if(c.type==="WINDOW_COL")p=$R(c,l);else if(c.type==="GROUPING_COL")p=re("number");else if(c.type==="LITERAL_COL"||c.type==="SCALAR_VALUE_COL")p=re("string");else if(c.type==="STRFUNC_COL")p=Bn(c.expr,l);else if(c.type==="SCALAR_SUBQUERY_COL")p=ot();else if(c.type==="CASE_COL"){let d=c.expr.branches.map(E=>Lr(E.result,l));c.expr.elseResult&&d.push(Lr(c.expr.elseResult,l)),p=Ks(d)}else c.type==="AGGREGATE"&&(c.func==="MIN"||c.func==="MAX"||c.func==="MODE"?c.arg.type!=="WILDCARD"&&(p=Vn(c.arg,l)):p=c.func==="GROUP_CONCAT"?re("string"):re("number"));p?.semantics&&u.set(c.alias,p.semantics)}let f=new Map;for(let c of i){let p=ve(c,u.keys()),d=(p===void 0?void 0:u.get(p))??l($e(c))?.semantics;if(!d){let m=$e(c);m.tableAlias===null&&a.has(m.field)&&f.set(c,te({fieldType:"KSQL_AMBIGUOUS"}));continue}let E=d;if(d.fieldType==="STATUS"&&d.source&&e.orderMode!=="KINTONE_NATIVE"){let m=await $s(d.source.appId,t,n);m.enable&&m.states!==null&&(E={...d,optionOrder:new Map(m.states.map(R=>[R.name,R.index]))})}f.set(c,E)}return f}async function co(e,t,n,r){let i=e.columns.some(l=>l.type==="WINDOW_COL"&&l.orderBy.length>0);if(e.orderBy.length===0&&!i)return{optionOrders:new Map,sortKinds:new Map,semantics:new Map};let[o,a,s]=await Promise.all([Ww(e,t,n),Hw(e,t,n),Vw(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}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 Yc(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 Yc(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}async function Hw(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 Jm(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 Jm(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}function Ip(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 Yw=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function jw(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||Yw.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function Ue(e,t,n,r){let i=await Q(e,n,r);return jw(e,t,i),i}async function He(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?xt(e,r,i):void 0}function lt(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??"",f=qe(u,l,r);if(!f.ok)throw new Error(`DmlValidationError: ${f.code} ${f.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(u)&&u.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:c?u:f.value}}})}async function zw(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=await bi({statement:e,fieldInfos:o,dmlMaxRows:ut(n.dmlMaxRows,"dmlMaxRows",Xt),dmlMaxSubtableRows:ut(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),statementNumber:i,loadNumberPrecision:()=>xt(e.appId,t,r)});return Ib(e,a,o)}async function qw(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await rg(e,t,n,r,i);return bb(e,a,o)}async function rg(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=new Map(o.map(R=>[R.code,R.fieldType])),s=Op(e),l=new Set;for(let R of s){let g=gn(R,e.keyFields.map(y=>a.get(y)==="NUMBER"));if(l.has(g))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(g)}let u=await xr(e.appId,e.keyFields,s,t,n,a),f=s.map(R=>Dr(u,R)),c=new Map,p=[...new Set(f.filter(R=>R!==void 0))],d=["$id","$revision",...o.filter(R=>!R.inSubtable&&R.fieldType!=="FILE").map(R=>R.code)];for(let R of ho(p,100)){let g=await t.getRecords({app:e.appId,query:`$id in (${R.join(",")}) limit 500`,fields:[...new Set(d)]});for(let y of g.records){let S=Number(y.$id?.value);Number.isSafeInteger(S)&&S>0&&c.set(S,y)}}let E=f.map((R,g)=>({sourceRowIndex:g,...R===void 0?{}:{targetId:R,snapshot:c.get(R)}})),m=await EE({statement:e,matches:E,fieldInfos:o,dmlMaxRows:ut(n.dmlMaxRows,"dmlMaxRows",Xt),dmlMaxSubtableRows:ut(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),statementNumber:i,loadNumberPrecision:()=>xt(e.appId,t,r)});return{fieldInfos:o,prepared:m}}async function Jw(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await Ue(e.appId,e.fields,t,r),o=await bi({statement:e,fieldInfos:i,dmlMaxRows:ut(n.dmlMaxRows,"dmlMaxRows",Xt),dmlMaxSubtableRows:ut(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),loadNumberPrecision:()=>xt(e.appId,t,r)}),a=vu(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Bs(a),applyDiagnostic:a}))throw new ge("INSERT",o.guards.parentRows);let s=await hE(o,t,a);return{...s,diagnostic:nt(a,s)}}async function Xw(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await rg(e,t,n,r,1),o=Du(i);if(n.confirm){let s=Bs(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ge("UPDATE",i.guards.parentRows)}let a=await AE(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:nt(o,a)}}function Qw(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 Bs(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=Qw(n?ms(n):[],r?ms(r):[]),a=Zw(i),s=e.branches.reduce((p,d)=>p+(d.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,d)=>p+(d.changedCount??0),0),u=o.reduce((p,d)=>p+d.appendRows,0),f=o.reduce((p,d)=>p+d.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:f,deletedParentRows:e.branches.reduce((p,d)=>p+(d.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,d)=>p+(d.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=ms(n),d=ms(r);return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,m)=>E+(m.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:p.reduce((E,m)=>E+m.appendRows,0),tables:p},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,m)=>E+(m.changedCount??0),0),addedSubtableRows:d.reduce((E,m)=>E+m.appendRows,0),tables:d,deletedRows:d.reduce((E,m)=>E+m.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return c}function ms(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=Gn(t,"APPEND"),r=Gn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function Gn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function Zw(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:Gn(n,"ADD"),removedValues:Gn(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 wp(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return zw(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return qw(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await lg(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await bp(e,t,n,r,i,o)).result}var Ds=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function bp(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 f=e.type==="UPDATE"?e.assignments.map(N=>N.field):e.fields,c=await Ue(e.appId,f,t,r);e.type==="UPDATE"&&await mn(e,t,r);let p=new Map(c.map(N=>[N.code,N])),d=await He(e.appId,f,c,t,r),E=Ct(c,u),m=am(E),R=(await eb(e,l,t,n,r,i,p,e.type==="UPDATE"?m:void 0)).sort((N,h)=>N.rowNumber-h.rowNumber),g=R.filter(N=>N.mode==="update"),y=e.type==="UPDATE"?nb:e.type.startsWith("UPSERT")?N=>rb(N,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??y,A=g.length>0&&S!==void 0,I=new Map;if(A){Iu(g,f,c);let N=await S({appId:e.appId,candidates:g,fields:m}),h=new Map;for(let w of g){if(w.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${w.rowNumber}).`);let _=N.get(w.targetId);if(!_)throw new Error(`InternalError: update-mode snapshot is missing for record ${w.targetId}.`);let L=sm(_,w.record??{});h.set(w.rowNumber,L)}d===void 0&&[...h.values()].some(w=>Pn(w,E))&&(d=await xt(e.appId,t,r));for(let w of g){let _=h.get(w.rowNumber);if(!_)throw new Error(`InternalError: validation post-image is missing for row ${w.rowNumber}.`);I.set(w.rowNumber,On(_,E,d,o,w.rowNumber,l))}}let b=wu(R,l,u,f,c,o,d,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!A}),{errors:v,invalidRows:C,invalidRowNumbers:k}=b;if(A){let N=new Map(b.candidateResults.map(h=>[h.rowNumber,h]));v=[],k=new Set;for(let h of R){let w=N.get(h.rowNumber);if(!w)throw new Error(`InternalError: validation detail is missing for row ${h.rowNumber}.`);if(h.mode==="create"){let F=[...w.preErrors,...w.builtInErrors,...w.checkErrors];v.push(...F),F.length>0&&k.add(h.rowNumber);continue}let _=I.get(h.rowNumber);if(!_)throw new Error(`InternalError: prepared post-image validation is missing for row ${h.rowNumber}.`);let L=lm({rowNumber:h.rowNumber,setFields:f,normalizedPostImage:_.normalizedRecord,preErrors:w.preErrors,postImageErrors:_.errors,checkErrors:w.checkErrors});h.record=L.writeRecord,v.push(...L.errors);for(let F of L.invalidRowNumbers)k.add(F)}C=k.size}let x=[...u,...yr],U={type:"VALIDATION",operation:l,validatedRows:R.length,validRows:R.length-C,invalidRows:C,errorCount:v.length,columns:x,errors:v,...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:te({fieldType:"RECORD_NUMBER"})});continue}let h=p.get(N);h&&O.set(N,Ge(h,e.appId))}let P=new Set(["$err_statement","$err_row"]);for(let N of yr)O.set(N,re(P.has(N)?"number":"string"));return Hn.set(U,O),{result:U,candidates:R,invalidRowNumbers:k,columnMeta:O}}async function jc(e,t,n,r,i,o){let a=await bp(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");Dt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??st,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Ds(`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 ge(E,u.length)}let f={affectedRows:u.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let m=0;m<u.length;m+=100){let R=await t.postRecords({app:e.appId,records:u.slice(m,m+100).map(g=>g.record)});E.push(R.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...f}}if(e.type==="UPDATE"){let E=u.map(m=>{if(m.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:m.targetId,record:m.record}});for(let m=0;m<E.length;m+=100)await t.putRecords({app:e.appId,records:E.slice(m,m+100)});return{type:"UPDATE",updatedCount:E.length,...f}}let c=u.filter(E=>E.mode==="create"),p=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}}),d=0;for(let E=0;E<c.length;E+=100){let m=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(R=>R.record)});d+=m.ids.length}for(let E=0;E<p.length;E+=100)await t.putRecords({app:e.appId,records:p.slice(E,E+100)});return{type:"UPSERT",insertedCount:d,updatedCount:p.length,...f}}async function eb(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return ig(e,n,r,i,o,s);let l,u,f,c,p;if(e.type==="INSERT"||e.type==="UPSERT")Xm(e,e.fields),p=new Map(e.fields.map(A=>[A,a.get(A)?.fieldType??""])),Wn(e,p),l=e.values.map(A=>A.map((I,b)=>I.type==="CASE_VALUE"?Vt(I.expr,{},a.get(e.fields[b])?.fieldType,ae(r)):I));else{let A=await Vs.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(A.columns.length<e.fields.length||!I&&A.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${A.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(I&&new Set(A.columns).size!==A.columns.length)throw xe("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");Xm(e,A.columns),u=A.rows,f=A.importPresence,c=A.importRowErrors;let b=A.columnMeta;p=new Map(A.columns.map(v=>{let C=b?.get(v),k=C?.fieldType??(C?.semantics?.compareMode==="number"||C?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,k]})),Wn(e,p),l=A.rows.map(v=>A.columns.map(C=>v[C]??""))}let d=l.map((A,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((b,v)=>f&&!f[I]?.has(b)?[]:[[b,A[v]]])),preErrors:[...c?.[I]??[]],record:{},evaluationRow:u?.[I]??Object.fromEntries(e.fields.map((b,v)=>[b,tt(A[v])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return d;for(let A of e.keyFields)if(!e.fields.includes(A))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${A}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([A,I])=>[A,I.fieldType])),m=d.map(A=>e.keyFields.map(I=>tt(A.payload.get(I)))),R=e.keyFields.map(A=>E.get(A)==="NUMBER"),g=new Map;for(let A of m){let I=gn(A,R);g.set(I,(g.get(I)??0)+1)}let y=vr.has(e);if(y&&[...g.values()].some(A=>A>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let S=await xr(e.appId,e.keyFields,m,n,r,E);return d.forEach((A,I)=>{let b=m[I],v=Dr(S,b);A.mode=v===void 0?"create":"update",v!==void 0&&(A.targetId=v),e.keyFields.forEach((C,k)=>{b[k]===""&&A.preErrors.push({field:C,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${C} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(g.get(gn(b,R))??0)>1&&A.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),d}function Np(e){return e.checkGroups?Rr(e.checkGroups):[]}function Xm(e,t){let n=new Set(t);for(let r of Np(e)){if(r.tableAlias!==null)throw xe(`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 xe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var tb=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Wn(e,t){if(e.checkGroups)for(let n of Mf(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(tb.has(i??""))throw xe(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function ig(e,t,n,r,i,o){if(e.from)return ob(e,e.from,t,n,r,i,o);await Eg(e.assignments,t,n,r);let a=await Ne(e.appId,t,r),s=og(e,a);Wn(e,zc(a,e.appId));let l,u=new Map,f=new Map;if(Ca(e)){let c=au(e),p=[...new Set([...c.fields,...s,...o??[]])],d=await mt(t.getRecords,c.app,c.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});f=Is(d.records),u=f,l=lu(e,d.records,a,ae(n)).flatMap(E=>E.records)}else{let c=Ri(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],d=await mt(t.getRecords,c.app,c.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});f=Is(d.records),u=f,l=gi(e,[...u.keys()],a).flatMap(E=>E.records)}else if(o){let p=await mt(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});f=Is(p.records),l=gi(e,[...f.keys()],a).flatMap(d=>d.records)}else{let p=await Li(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=gi(e,p.ids,a).flatMap(d=>d.records)}}return l.sort((c,p)=>c.id-p.id).map((c,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(c.id)],...e.assignments.map(d=>[d.field,c.record[d.field]?.value??""])]),preErrors:[],record:c.record,targetId:c.id,validationSnapshot:f.get(c.id),evaluationRow:ib(u.get(c.id),e.appId),evaluationFieldTypes:zc(a,e.appId)}))}function Is(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 nb(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 rb(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 Et(`\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 ho(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,f=Number(u);if(!Number.isSafeInteger(f)||f<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(u)}.`);if(!i.has(f))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${f}.`);if(o.has(f))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${f}.`);o.set(f,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 og(e,t){if(e.from)return[];let n=new Set;for(let r of Np(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw xe(`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 xe(`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 ib(e,t){if(!e)return{};let n=jt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function zc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function ob(e,t,n,r,i,o,a){let s=await Og(e,t,n,i,o);Wn(e,s.evaluationTypes);let l=await ag(e,t,n,r,i,o,a),u=await Ne(e.appId,n,i),f=cu(e,l,u,ae(r)).flatMap(d=>d.records),c=new Map(l.map(d=>[Number(d.target.$id?.value),d])),p=a?Is(l.map(d=>d.target)):new Map;return f.sort((d,E)=>d.id-E.id).map((d,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(d.id)],...e.assignments.map(m=>[m.field,d.record[m.field]?.value??""])]),preErrors:[],record:d.record,targetId:d.id,validationSnapshot:p.get(d.id),evaluationRow:pN(c.get(d.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var ab=Cr,sb=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function ag(e,t,n,r,i,o,a){if(t.cteName!==null){let I=o?.get(t.cteName),b=C=>ve(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 v=C=>{if(C===null||typeof C!="object")return;if(Array.isArray(C)){C.forEach(v);return}let k=C;k.type==="FIELD"&&k.tableAlias===t.alias&&typeof k.field=="string"&&(k.field=b(k.field)),Object.values(k).forEach(v)};v(e.checkGroups)}let s=await lb(e,t,n,i),l=await Og(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))],f=[...new Set([t.joinKeyField,...u])],c=await ub(t,f,u,n,r,i,o),p=new Map,d=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=Qm(I[t.joinKeyField],s,"source");if(p.has(b))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${b}.`);p.set(b,I),d.set(b,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let E=r.maxRecords??1e4,m=[...new Set([...Cb(e),...l.targetFields,...a??[]])],R=t.targetFilter===null?"":Ri({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,g=[],y=new Set,S=0;for(let I of ho([...d.values()],ab)){let b=`${t.targetJoinField} in (${I.map(uo).join(",")})`,v=R?`(${b}) and (${R})`:b,C=await mt(n.getRecords,e.appId,v,m,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(S+=C.records.length,S>E)throw new Et(`\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 k of C.records){let x=k.$id?.value;if(typeof x!="string"||x==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(x)||(y.add(x),g.push(k))}}let A=[];for(let I of g){let b=I[t.targetJoinField]?.value,v=Qm(b,s,"target");if(v===null)continue;let C=p.get(v);C!==void 0&&A.push({target:I,source:C})}return A}async function lb(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 ub(e,t,n,r,i,o,a){if(e.cteName!==null){let f=a?.get(e.cteName);if(!f)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(_r(f,c)===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return f.rows}let s=await Ne(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 f of n){if(f!=="$id"&&!s.has(f))throw new Error(`ArgumentError: UPDATE ... FROM source column ${f} does not exist.`);let c=f==="$id"?"RECORD_NUMBER":s.get(f);if(sb.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${f}).`)}return(await mt(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(f=>jt(f,null))}function Qm(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=Ce(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function Ao(e,t,n,r,i){let o=await bp(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 ge(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let p=0;p<a.length;p+=100){let d=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(E=>E.record)});c.push(d.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<c.length;p+=100)await t.putRecords({app:e.appId,records:c.slice(p,p+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})),f=0;for(let c=0;c<l.length;c+=100){let p=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(d=>d.record)});f+=p.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:f,updatedCount:u.length}}async function cb(e,t,n,r){if(e.applyBlocks?.length)return Jw(e,t,n,r);if(e.checkGroups?.length)return Ao(e,t,n,r);if(e.subtableCode)return Lb(e,t,n,r);let i=await Ue(e.appId,e.fields,t,r),o=await He(e.appId,e.fields,i,t,r),a=await Ne(e.appId,t,r),s=mi(e,a,ae(n));lt(s.flatMap(u=>u.records),e.fields,i,o);let l=[];for(let u of s){let f=await t.postRecords(u);l.push(f.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function pb(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Le},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function sg(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Em(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 M=new Set(e.targets.filter(K=>K.kind==="SUBTABLE").map(K=>K.subtableCode));if(e.replaceSubtables.some(K=>!M.has(K)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let K of e.targets.filter(j=>j.kind==="SUBTABLE"))if(!K.rowIdSourceHeader||!e.replaceSubtables.includes(K.subtableCode))throw new Error(`ArgumentError: CSV subtable ${K.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=e.targets,p=await Q(e.appId,t,r),d=c.flatMap(M=>M.kind==="FIELD"?[M.field]:M.children),E=p.some(M=>d.includes(M.code)&&M.fieldType==="NUMBER")?await xt(e.appId,t,r):void 0,m=await cs(o,new Map),R=e.source.kind==="JSON"?hm(e.source,m,c,n.maxRecords??1e4):Am(e.source,m,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader);await rp(n,e.source,R.receipt);let g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=wm(R,c,p,E,g);if(e.source.kind==="CSV")return db(e,R,y,p,t,n,i);fc(y,e.rejectLimit);let S=[...new Set(c.flatMap(M=>M.kind==="FIELD"?[M.field]:M.children))],A=mc(y.errors,S),I=[...S,...Ec],b=y.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-b,invalid:b,mutationCandidates:y.parents.filter(M=>M.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},C={type:"VALIDATION",operation:g,validatedRows:y.parents.length,validRows:y.parents.length-b,invalidRows:b,errorCount:A.length,columns:I,errors:A,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&Dt(i,e.validationErrorTable,I,A,n.tempTableMaxRows??st,new Map),e.validateOnly)return C;if(Nm(R),y.errors.length>0&&!e.onErrorSkip){let M=y.errors[0];throw new Error(`DmlValidationError: ${M.code} ${M.message} (row=${M.parentRow}, field=${M.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Dt(i,e.errorTable,I,A,n.tempTableMaxRows??st,new Map)}let k=y.parents.filter(M=>M.valid),x=new Map(p.map(M=>[M.code,M.fieldType])),U=k.map(()=>{});if(e.keyFields){for(let G of e.keyFields)if(!e.fields.includes(G))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${G}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let M=e.keyFields.map(G=>x.get(G)==="NUMBER"),K=new Set,j=k.map(G=>e.keyFields.map(D=>String(G.top[D]?.value??"")));for(let G of j){let D=gn(G,M);if(K.has(D))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");K.add(D)}let B=await xr(e.appId,e.keyFields,j,t,n,x);j.forEach((G,D)=>{U[D]=Dr(B,G)})}let O=c.filter(M=>M.kind==="SUBTABLE").map(M=>M.subtableCode),P=new Map,N=U.filter(M=>M!==void 0);for(let M of ho([...new Set(N)],100)){let K=await t.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id","$revision",...O]});for(let j of K.records){let B=Number(j.$id?.value),G=Number(j.$revision?.value);Number.isFinite(B)&&P.set(B,{id:B,...Number.isFinite(G)?{revision:G}:{},record:j})}}let h=Cm(k,U,P),w={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:h.length,insertedParents:h.filter(M=>M.mode==="INSERT").length,updatedParents:h.filter(M=>M.mode==="UPDATE").length,hasDeletes:h.some(M=>M.tables.some(K=>K.deleteRows>0)),parents:h.map(M=>({parentRow:M.parentRow,mode:M.mode,...M.targetId===void 0?{}:{targetId:M.targetId},tables:M.tables}))};if(h.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(h.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new ge(e.keyFields?"UPDATE":"INSERT",h.length)}let _=M=>new Map(Object.entries(M).map(([K,j])=>[K,j.value])),L=M=>bm(_(M.top),new Map([...M.subtables].map(([K,j])=>[K,j.map(B=>({values:_(B)}))]))),F=h.filter(M=>M.mode==="INSERT"),W=h.filter(M=>M.mode==="UPDATE"),$=[];for(let M=0;M<F.length;M+=100){let K=await t.postRecords({app:e.appId,records:F.slice(M,M+100).map(L)});$.push(K.ids)}for(let M=0;M<W.length;M+=100)await t.putRecords({app:e.appId,records:W.slice(M,M+100).map(K=>({id:K.targetId,...K.revision===void 0?{}:{revision:K.revision},record:L(K)}))});return e.keyFields?{type:"UPSERT",insertedCount:$.flat().length,updatedCount:W.length,affectedRows:h.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}:{type:"INSERT",createdIds:$,insertedCount:$.flat().length,affectedRows:h.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return fb(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:pb(),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 p=Cs.get(s);return p?.length&&Cs.set(e,p),c};if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await wp(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&Dt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??st,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",jc(s,t,n,r,i,1));return u(c)}let f=await(s.type==="UPSERT_SELECT"?vp(s,t,n,r,i):Pp(s,t,n,r,i));return u(f)}async function db(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Pm(t.records);let s=t.records.map(P=>P.recordNumberSourceValue??""),l=yc(s,e.recordNumberSourceHeader),u=[...e.replaceSubtables],f=[...new Set(r.filter(P=>!P.inSubtable&&P.fieldType==="SUBTABLE").map(P=>P.code))],c=await Ve(i.getRecords,e.appId,"",["$id","$revision",...f],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,d=new Map;for(let P of c){let N=Number(P.$id?.value),h=Number(P.$revision?.value);if(Number.isFinite(N)){p.set(N,{id:N,...Number.isFinite(h)?{revision:h}:{},record:P});for(let w of f){let _=P[w]?.value;if(Array.isArray(_)){for(let L of _)if(L.id){let F=d.get(L.id)??[];F.push({parentId:N,table:w}),d.set(L.id,F)}}}}}let E=l.normalized.map(P=>P===null?void 0:Number(P)),m=n.parents.map((P,N)=>{let h=[...P.errors];for(let _ of l.errors[N])h.push({operation:"UPDATE",parentRow:P.parentRow,field:_.field,code:_.code,message:_.message,sourceValues:t.records[N].top});let w=E[N];return w!==void 0&&!p.has(w)&&h.push({operation:"UPDATE",parentRow:P.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`,sourceValues:t.records[N].top}),{...P,valid:h.length===0,errors:h}}),R=Om(t.records,m,E,p,d),g=R.flatMap(P=>[...P.errors]),y=new Set(R.filter(P=>!P.valid).map(P=>P.parentRow)),S={...n,parents:m,errors:g,invalidParentRows:y};fc(S,e.rejectLimit);let A=R.filter(P=>P.valid),I=R.flatMap(P=>P.tables),b=(P,N)=>I.filter(h=>h.table===P).reduce((h,w)=>h+Number(w[N]),0),v=Object.fromEntries(u.map(P=>[P,{existingRows:b(P,"existingRows"),inputRows:b(P,"inputRows"),updateRows:b(P,"updateRows"),addRows:b(P,"addRows"),deleteRows:b(P,"deleteRows"),rowIdNotFound:b(P,"rowIdNotFound")}])),C={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:A.length,insertedParents:0,updatedParents:A.length,hasDeletes:A.some(P=>P.tables.some(N=>N.deleteRows>0)),totalDeleteRows:A.flatMap(P=>P.tables).reduce((P,N)=>P+N.deleteRows,0),rowIdNotFound:A.flatMap(P=>P.tables).reduce((P,N)=>P+N.rowIdNotFound,0),invalidParents:y.size,parents:A.map(P=>({parentRow:P.parentRow,mode:"UPDATE",targetId:P.targetId,tables:P.tables}))},k=[...new Set(e.targets.flatMap(P=>P.kind==="FIELD"?[P.field]:P.children))],x=mc(g,k),U=[...k,...Ec];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&Dt(a,e.validationErrorTable,U,x,o.tempTableMaxRows??st,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-y.size,invalidRows:y.size,errorCount:x.length,columns:U,errors:x,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:m.length,valid:A.length,invalid:y.size,mutationCandidates:A.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:C.rowIdNotFound,writesKintone:!1}}}if(g.length&&!e.onErrorSkip){let P=g[0];throw new Error(`DmlValidationError: ${P.code} ${P.message} (row=${P.parentRow}, field=${P.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Dt(a,e.errorTable,U,x,o.tempTableMaxRows??st,new Map)}if(A.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(A.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:C}))throw new ge("UPDATE",A.length)}let O=P=>new Map(Object.entries(P).map(([N,h])=>[N,h.value]));for(let P of A){let N=Rc(O(P.top),new Map([...P.subtables].map(([h,w])=>[h,w.map(_=>({..._.rowId?{rowId:_.rowId}:{},values:O(_.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:P.targetId,...P.revision===void 0?{}:{revision:P.revision},record:N}]})}return{type:"UPDATE",updatedCount:A.length,affectedRows:A.length,skippedRows:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:C}}async function fb(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 Ue(e.appId,e.fields,n,i),s=await He(e.appId,e.fields,a,n,i),l=await cs(t,new Map),u=cc(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader);await rp(r,e.source,u.receipt);let f=u.recordNumberSourceValues;if(!f)throw new Error("InternalError: record-number source values were not materialized.");let c=yc(f,e.recordNumberSourceHeader),p=new Set,d=[...new Set(c.normalized.filter(C=>C!==null))];for(let C=0;C<d.length;C+=100){let k=d.slice(C,C+100),x=await n.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id"]});for(let U of x.records){let O=U.$id?.value;typeof O=="string"&&O!==""&&p.add(O.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(C=>[C.code,C])),m=new Map(e.fields.map(C=>[C,E.get(C)?.fieldType??"SINGLE_LINE_TEXT"])),R=u.rows.map((C,k)=>{let x=c.normalized[k],U=[...u.importRowErrors?.[k]??[],...c.errors[k]];return x!==null&&!p.has(x)&&U.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${x} does not exist in APP${e.appId}`}),{rowNumber:k+1,operation:"UPDATE",mode:"update",...x!==null&&p.has(x)?{targetId:Number(x)}:{},payload:new Map([[e.recordNumberSourceHeader,f[k]],...e.fields.map(O=>[O,C[O]??""])]),preErrors:U,record:{},evaluationRow:C,evaluationFieldTypes:m}}),g=[e.recordNumberSourceHeader,...e.fields],y=wu(R,"UPDATE",g,e.fields,a,1,s,e.checkGroups??[],!1),S=[...g,...yr],A={type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:S,errors:y.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(A,{importAudit:u.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&Dt(o,e.validationErrorTable,S,y.errors,r.tempTableMaxRows??st,new Map),A}if(!e.onErrorSkip&&y.invalidRows>0){let C=y.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(Dt(o,e.errorTable,S,y.errors,r.tempTableMaxRows??st,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new Ds(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,A)}let I=R.filter(C=>!y.invalidRowNumbers.has(C.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new ge("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 v={type:"UPDATE",updatedCount:b.length,...e.onErrorSkip?{affectedRows:b.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:u.importAudit}),v}async function Eb(e,t,n,r,i,o){let a=vr.get(e);if(!a){let m=i&&i.size>0?await St(e.select,t,n,i,r,!0):await Jt(e.select,t,n,r,void 0,!0);return _m(e,m.warnings),{rows:m.rows,columns:m.columns,columnMeta:Ae.get(m)}}let s=await cs(a.handle,a.cache),l=n.maxRecords??1e4,u=new Map((o??[]).map(m=>[m.code,m])),f=e.fields.map(m=>({code:m,fieldType:u.get(m)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?uc(a.source,s,f,l):cc(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 p=Lm(a.source.projection),d=new Map(i??[]);d.set(gc,c);let E=await St(p,t,{...n,onLimitReached:"error"},d,r,!0);return _m(e,E.warnings),{rows:E.rows,columns:E.columns,columnMeta:Ae.get(E)}}var Vs={materialize:Eb};function Cp(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 Pp(e,t,n,r,i){if(e.checkGroups?.length)return Ao(e,t,n,r,i);let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Vs.materialize(e,t,n,r,i,o),{rows:l,columns:u}=s;if(Cp(s),u.length!==e.fields.length){let d=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${d}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new ge("INSERT",l.length);let f=await Ne(e.appId,t,r),c=l.map((d,E)=>{let m={};return e.fields.forEach((R,g)=>{if(s.importPresence&&!s.importPresence[E]?.has(R))return;let y=d[u[g]]??"";m[R]={value:Ip(y,f.get(R))}}),m});c.forEach(d=>lt([d],e.fields.filter(E=>E in d),o,a));let p=[];for(let d=0;d<c.length;d+=100){let E=c.slice(d,d+100),m=await t.postRecords({app:e.appId,records:E});p.push(m.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function qc(e,t,n,r,i){if(e.applyBlocks?.length)return lg(e,t,n,r);if(e.checkGroups?.length&&Je(e.where)){let E=await Ue(e.appId,e.assignments.map(R=>R.field),t,r);await He(e.appId,e.assignments.map(R=>R.field),E,t,r);let m=await Ne(e.appId,t,r);return og(e,m),Wn(e,zc(m,e.appId)),await mn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Ao(e,t,n,r,i);if(e.subtableCode)return await mn(e,t,r),_b(e,t,n,r);let o=await Ue(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await He(e.appId,a,o,t,r);if(await mn(e,t,r),Je(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return Nb(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await Eg(e.assignments,t,n,r);let u=await Ne(e.appId,t,r);if(Ca(e)){let E=au(e),R=(await mt(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,g=lu(e,R,u,ae(n));if(lt(g.flatMap(y=>y.records.map(S=>S.record)),a,o,s),n.confirm&&!await n.confirm(R.length,"UPDATE"))throw new ge("UPDATE",R.length);for(let y of g)await t.putRecords(y);return{type:"UPDATE",updatedCount:R.length}}let f=Ri(e),p=(await Li(t.getRecords,f.app,f.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,d=gi(e,p,u);if(lt(d.flatMap(E=>E.records.map(m=>m.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new ge("UPDATE",p.length);for(let E of d)await t.putRecords(E);return{type:"UPDATE",updatedCount:p.length}}async function lg(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!Kt(e.where))return mb(e,t,n,r,i);let o=await Q(e.appId,t,r),a=Wt(e,o),s=Oa(e,o),l=gu(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 f=Number(u.records[0].$id?.value);if(f!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${f} does not match requested $id ${l}.`);Da(u.records[0]);let c=Qf({statement:e,snapshot:u.records[0],fieldInfos:o,metadata:a,evaluationContext:ae(n)}),p=Ct(o,e.assignments.map(I=>I.field)),d=Pn(c.postImage,p)?await xt(e.appId,t,r):void 0,E=On(c.postImage,p,d,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 m=ut(n.dmlMaxRows,"dmlMaxRows",Xt),R=ut(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),g=c.parentRows>m||c.changedSubtableRows>R;if(e.validateOnly){let I=Ci({plans:[c],records:Si(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:m,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:R,wouldExceed:g}}),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:po(I.branches[0]),guards:fo(I.branches[0]),deletedRows:{total:c.tables.reduce((v,C)=>v+C.deletedRows,0),parentRows:c.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:I};return Hn.set(b,Ws(E.columns,o,e.appId)),b}if(c.parentRows>m)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${m}).`);if(c.changedSubtableRows>R)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${R}).`);let y=_a(c,E.normalizedRecord),S=Si(y),A=Ci({plans:[y],records:S.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:m,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:R,wouldExceed:g}});if(n.confirm){let I=Bs(A,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:A}))throw new ge("UPDATE",c.parentRows)}return await t.putRecords(S),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:nt(A,{successfulChunks:1,successfulParents:c.parentRows})}}async function mb(e,t,n,r,i){let o=ut(n.dmlMaxRows,"dmlMaxRows",Xt),a=ut(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),s=await Q(e.appId,t,r),l=Wt(e,s),u;if(xs(e))u=await hb(e,t,n,s,r);else{let d=Oa(e,s),E=Ri(e).query,m=o+1;u=await Ve(t.getRecords,e.appId,E,[...d],{pageSize:Math.min(500,m),parallel:n.fetchParallel??1,maxRecords:m,stopAfter:m,onLimit:"error"})}if(!e.validateOnly&&u.length>o)throw new Error(`ArgumentError: APPLY parent rows (${u.length}) exceed dmlMaxRows (${o}).`);let f=await ka({statement:e,snapshots:u,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>xt(e.appId,t,r)});if(e.validateOnly)return wb(e,f,s);Xd("phase15b",e);let c=Ci(f);if(n.confirm){let d=Bs(c);if(!await n.confirm(f.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:d,applyDiagnostic:c}))throw new ge("UPDATE",f.guards.parentRows)}let p=await yE(f,t,c);return{...p,diagnostic:nt(c,p)}}function xs(e){return(e.applyBlocks?.length??0)>0&&!Kt(e.where)&&(tn(e.where)||_e(e.where))}function Rb(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&xs(t)&&_e(t.where)}var gb=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
14
+ `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let E=o();if(E==='"'){f=!0;break}if(E.charCodeAt(0)<32&&Xt("string contains an unescaped control character",l.offset,l.line,l.column),E!=="\\"){p+=E;continue}n>=e.length&&Xt("string has an unterminated escape",l.offset,l.line,l.column);let m=o(),R={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
15
+ `,r:"\r",t:" "};if(m in R){p+=R[m];continue}m!=="u"&&Xt(`has invalid escape \\${m}`,n-2,r,Math.max(1,i-2));let g=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(g)||Xt("has invalid unicode escape",n,r,i);for(let A=0;A<4;A++)o();let y=Number.parseInt(g,16);if(y>=55296&&y<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&Xt("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)&&Xt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(y-55296<<10)+h-56320)}else y>=56320&&y<=57343?Xt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(y)}f||Xt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let u=e.slice(n),d=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(u)?.[0];if(d){for(let p=0;p<d.length;p++)o();t.push({kind:"number",lexeme:d,...l});continue}let c=/^(true|false|null)/.exec(u)?.[0];if(c){for(let p=0;p<c.length;p++)o();t.push({kind:"literal",value:c==="true"?!0:c==="false"?!1:null,...l});continue}Xt(`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 As(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Ss(e){if(e.byteLength===0)throw new Y("JSON source is empty.");let t=Tm(Sm(e)),n=0,r=(u,d=t[n])=>{throw new Y(`JSON ${u} (offset=${d.offset}, line=${d.line}, column=${d.column}).`)},i=(u,d)=>u.kind==="punct"&&u.value===d,o=u=>{let d=t[n];(d.kind!=="punct"||d.value!==u)&&r(`expected ${u}; found ${As(d)}`,d),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 d=new Map;if(i(t[n],"}"))return n++,d;for(;;){let c=t[n++];if(c.kind!=="string")return r(`object key must be a string; found ${As(c)}`,c);let p=c.value;d.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,c),o(":"),d.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return d}if(u.kind==="punct"&&u.value==="["){let d=[];if(i(t[n],"]"))return n++,d;for(;;){d.push(a());let c=t[n];if(i(c,"]")){n++;break}o(",")}return d}return r(`expected a value; found ${As(u)}`,u)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${As(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,d)=>{if(!(u instanceof Map))throw new Y(`JSON record ${d+1} must be an object.`)}),l}var mI=new Set(["CHECK_BOX","MULTI_SELECT"]),Im=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Dt(e,t,n){throw new Y(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function RI(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function gI(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&Dt(n,t.code,"boolean is not accepted."),RI(e)){t.fieldType==="NUMBER"&&Dt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&Dt(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)||Dt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&Dt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||Dt(n,t.code,"unsupported value type."),!mI.has(t.fieldType)&&!Im.has(t.fieldType)&&Dt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&Dt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&Dt(n,t.code,"array elements must not contain duplicates."),Im.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Rc(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let i=Ss(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 p of l.keys())o.has(p)||Dt(u+1,p,"unknown key (not declared in INTO).");let d={},c=new Set;for(let p of n)l.has(p.code)&&(c.add(p.code),d[p.code]=gI(l.get(p.code),p,u+1));a.push(d),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 gc(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=hs(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((y,A)=>[y,A]));for(let y of r)if(!u.has(y))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let d=new Map(i.map(y=>[y.code,y])),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 p=[],f=[],E=y=>s.rows.filter(A=>A[y]!=="").length,m=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,A]of s.columns.entries()){if(c.has(A)||A===o)continue;let h=d.get(A);if(h)p.push({column:A,reason:m(h),nonEmptyCells:E(y)});else if(e.ignoreUnknownColumns)f.push({column:A,reason:"unknown column ignored by explicit policy",nonEmptyCells:E(y)});else throw new Y(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${A}".`)}for(let y of r){let A=d.get(y);if(!A)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(A.inSubtable||A.writable===!1||A.fieldType==="FILE"||A.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${A.fieldType}).`)}let R=[],g=s.rows.map(y=>{let A=[],h={};for(let I of r){let b=y[u.get(I)];try{h[I]=Am(b,d.get(I)?.fieldType,{cliKintone:!0})}catch(v){if(!(v instanceof Zi))throw v;h[I]=b,A.push({field:I,code:v.code,message:v.message})}}return R.push(A),h});return{receipt:{rows:s.rows.length,encoding:a},rows:g,columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:d.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:R,...o?{recordNumberSourceValues:s.rows.map(y=>y[u.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:p,ignoredUnknownColumns:f}}}let l=s.rows.map(u=>Object.fromEntries(s.columns.map((d,c)=>[d,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 eo=(e,t,n)=>{throw new Y(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function wm(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new Y("JSON source is UTF-8 only.");let o=Ss(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 d=u+1;for(let E of l.keys())a.has(E)||eo(d,E,"unknown key (not declared in INTO).");let c=new Map,p=new Map,f=new Set;for(let E of n){let m=E.kind==="FIELD"?E.field:E.subtableCode;if(!l.has(m))continue;let R=l.get(m);if(E.kind==="FIELD"){R instanceof Map&&eo(d,m,"object is not accepted for a top-level field."),c.set(m,R);continue}Array.isArray(R)||eo(d,m,"subtable value must be an array."),f.add(m);let g=new Set(E.children),y=R.map((A,h)=>{A instanceof Map||eo(d,m,`childRow=${h+1} must be an object.`);let I=A;for(let b of I.keys())g.has(b)||eo(d,b,`unknown child key in subtable ${m} at childRow=${h+1}.`);if(s++,s>i)throw new Y(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:h+1,values:I}});p.set(m,y)}return{rowNumber:d,top:c,subtables:p,replacementTables:f}})}}function bm(e,t,n,r,i,o){let a=e.encoding??t.encoding??"utf8",s=hs(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"),d=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 d){if(!f.rowIdSourceHeader||!l.has(f.rowIdSourceHeader))throw new Y(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${f.subtableCode} is missing.`);for(let E of f.children)if(!l.has(E))throw new Y(`ERR_IMPORT_MISSING_COLUMN: required child header "${E}" is missing.`)}let c=[],p;if(s.rows.forEach((f,E)=>{let m=E+2,R=f[0];if(R!==""&&R!=="*")throw new Y(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(R)} at source row ${m}.`);if(R==="*"){if(c.length>=i)throw new Y(`source parent rows exceed maxRecords (${i}).`);p={rowNumber:c.length+1,markerRowNumber:m,top:new Map(u.map(g=>[g.field,f[l.get(g.field)]])),subtables:new Map(d.map(g=>[g.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:f[l.get(o)]}:{}},c.push(p)}else if(p){for(let g of u){let y=f[l.get(g.field)];if(y!==""&&y!==p.top.get(g.field))throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${g.field} at source row ${m}.`)}if(o){let g=f[l.get(o)];if(g!==""&&g!==p.recordNumberSourceValue)throw new Y(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${m}.`)}}else throw new Y(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${m}).`);for(let g of d){let y=f[l.get(g.rowIdSourceHeader)],A=new Map(g.children.map(I=>[I,f[l.get(I)]]));if(y===""&&[...A.values()].every(I=>I===""))continue;let h=p.subtables.get(g.subtableCode);h.push({childRowNumber:h.length+1,sourceRowNumber:m,...y?{rowId:y}:{},values:A})}}),c.length===0)throw new Y("CSV has no parent rows.");return{receipt:{rows:s.rows.length,encoding:a},records:c}}var yI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),hI=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Ac(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Om(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)Nm(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let E=a.get(p.subtableCode)??new Map;for(let m of p.children)Nm(m,E.get(m),p.subtableCode)}let u=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),d=e.records.map(p=>AI(p,s,l,o,a,r,i,u)),c=d.flatMap(p=>[...p.errors]);return{parents:d,errors:c,invalidParentRows:new Set(d.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:u}}function AI(e,t,n,r,i,o,a,s){let l=[],u={};for(let p of t)e.top.has(p.field)&&hc(e.top.get(p.field),r.get(p.field),o,u,p.field,l,yc(e,a,p.field));let d={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||Cm(p,o,d,l,yc(e,a,p.code));let c=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let E=[];for(let m of e.subtables.get(p.subtableCode)){f.childRows++;let R=l.length,g={},y=i.get(p.subtableCode);for(let A of p.children){let h=y.get(A),I=yc(e,a,A,p.subtableCode,m.childRowNumber,m.sourceRowNumber??e.markerRowNumber);m.values.has(A)?hc(m.values.get(A),h,o,g,A,l,I):Cm(h,o,g,l,I)}l.length===R?(f.validChildRows++,E.push(g)):f.invalidChildRows++}c.set(p.subtableCode,E)}return{parentRow:e.rowNumber,valid:l.length===0,top:u,subtables:c,replacementTables:e.replacementTables,errors:l}}function Nm(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&&hI.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function Cm(e,t,n,r,i){let o=Dn(e.defaultValue)?"":e.defaultValue;hc(o,e,t,n,e.code,r,i,!Dn(e.defaultValue))}function hc(e,t,n,r,i,o,a,s=!1){let l=SI(e),u=qe(l,t,n);u.ok?r[i]={value:TI(l,t)?l:u.value}:o.push({...a,code:u.code,message:s?`\u65E2\u5B9A\u5024: ${u.message}`:u.message})}function SI(e){return Pm(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:Pm(t)?t.lexeme:t):e}function Pm(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function TI(e,t){return yI.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function yc(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 Sc=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Tc(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":II(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 II(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 Ic(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 Lm(e,t){return Ic(e,t,"DROP")}function _m(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 vm(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 d=a?.record[l]?.value,c=Array.isArray(d)?d.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 wI(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Dm(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 xm(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),d=[...o.errors];if(!u||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:d};let c=new Map,p=[];for(let f of o.replacementTables){let E=wI(u.record,f),m=new Set(E.map(b=>b.id).filter(b=>!!b)),R=s.subtables.get(f)??[],g=o.subtables.get(f)??[],y=0,A=0,h=0,I=R.map((b,v)=>{let P=g[v]??{};return b.rowId&&m.has(b.rowId)?(y++,{rowId:b.rowId,record:P}):(b.rowId&&((i.get(b.rowId)??[]).some(x=>x.parentId!==l||x.table!==f)&&d.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:P})});c.set(f,I),p.push({table:f,existingRows:E.length,inputRows:R.length,updateRows:y,addRows:A,deleteRows:E.length-y,rowIdNotFound:h})}return{parentRow:o.parentRow,targetId:l,...u.revision===void 0?{}:{revision:u.revision},valid:d.length===0,top:o.top,subtables:c,tables:p,errors:d}})}var wc="#__import_source";function Um(e){return{...e,from:{appId:0,alias:null,cteName:wc}}}function bI(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function bc(e,t){let n=e.map(bI),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 NI="\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",xs=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 Mr(e,t){return e?.columns.includes(t)?t:void 0}function Oe(e,t){let n=Mr(e,t);return n===void 0?void 0:e?.columnMeta?.get(n)}var Se=new WeakMap;function cR(e){return Se.get(e)}var zn=new WeakMap,kr=new WeakMap,Us=new WeakMap;function Mm(e,t){t?.length&&Us.set(e,[...new Set(t)])}function Lr(e,t){let n=Us.get(e);return{result:t,...n?.length?{warnings:n}:{}}}var Mc=Symbol("statementEvaluationContext"),pR=Symbol("importSourceMaterializedCallback"),up=Symbol("nativeUpsertExecution"),dR=Symbol("nativeUpsertExplainCapability");function CI(e,t,n){return{...e,[up]:t,...n===void 0?{}:{[dR]:n}}}function fR(e){return e[up]===!0}function PI(e){return up in e}function OI(e){return e[dR]}function ER(e){return e[Mc]?e:{...e,[Mc]:{statementInstant:new Date}}}function se(e){return e[Mc]??{}}async function cp(e,t,n){let r=e[pR];r&&await r({name:t.sourceName,kind:t.kind,...n})}var km=new WeakMap,LI=1,_I=1;function vI(e,t){if(t)return t;let n=km.get(e);return n||(n=`client:${LI++}`,km.set(e,n)),n}function mR(e){return`${e}\0inv:${_I++}`}function DI(){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 RR=Symbol("limitMetricsSink");function pp(e,t){let n=e[RR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function xI(e,t){let n={[RR]: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 bo(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var Fm=Symbol("searchAbortFailClosed");function dp(e,t,n){return n&&e[Fm]?e:{...e,...n?{[Fm]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new xs;return i}}}function gR(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 UI(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(NI),{...e,warnings:[...n]}}async function kc(e,t,n){let r=await Io(e,t,n);return Ec(r),r}async function Io(e,t,n){return gm(e,{select:async r=>{let{resolver:i}=await Wn(r,t,n);return we(r.where,i)},dml:r=>MR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Wn(r,t,n);return mc(r,i)},joinServerFunctionPlan:async r=>{await Wn(r,t,n);let i=await Ys(r,t,n),o=Hs(r,i);return o===null?null:(Cr(o.joinPlan)&&Ap.set(r,o),o.joinPlan)}})}async function Km(e,t,n,r){n=ER(n);let i=await Io(e,t,r);e.type!=="EXPLAIN"&&Ec(i);let o=Kc(e);if(o!==null&&!Tb(e))throw new Error(Ns(o,"in a batch"));if(fr("phase15b",e),ci("phase15b",e),Ze(e),e.type!=="EXPLAIN"&&await uw(e,t,r),e.type==="IMPORT")return dg(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 np(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 _p(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 MI(e,t,n,r);case"SELECT":return Zt(Hc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return JR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return bp(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Rb(e,t,n,r);case"INSERT_SELECT":return Up(e,t,n,r);case"UPSERT":return Ub(e,t,n,r);case"UPSERT_SELECT":return Kp(e,t,n,r);case"UPDATE":return np(e,t,n,r);case"DELETE":return xb(e,t,n,r);case"REORDER":return $b(e,t,n,r);case"SHOW_APPS":return Rg(t);case"DESCRIBE":return gg(e,t,r);case"EXPLAIN":return Qb(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?ct(n.dmlMaxRows,"dmlMaxRows",en):en,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?ct(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me):Me,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,n.resolveMetadata!==!1,PI(n)?{surface:"CLI",enableNativeUpsert:fR(n),clientHasNativeUpsert:OI(n)??bo(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 PR(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var fp=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Ep=["$id","$err_subtable","$err_field","$err_code","$err_count"];function mp(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 yR(e=!1){let t=e?Ep:fp;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function MI(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return hR(e,t,n,r)}async function hR(e,t,n,r){let i=await Q(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=Uu(e,i),l=new Set(s.flatMap(O=>Du(O.field))),u={present:vu.filter(O=>l.has(O)),absent:vu.filter(O=>!l.has(O))},d=e.checkGroups??[],c=Ar(d);for(let O of c){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw xe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([O,F])=>[O,F.fieldType]));p.set("$id","RECORD_NUMBER"),jn(e,p);let f=mp(e.where),E=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...c.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let m=s.some(O=>O.field.fieldType==="NUMBER")?await Ut(e.appId,t,r):void 0,R=O=>O.field==="$id"?ne({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?ne(o.get(O.field)):void 0),g=we(e.where,R);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vn(g)}).`);let y=new Map([...o].map(([O,F])=>[O,F.fieldType])),A=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),h=e.where===null?null:g.capability==="EXACT_PUSHDOWN"?e.where:Vl(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:A,allowKlike:!1}),I=h===null?"":z(h),v=(await We(t.getRecords,e.appId,I,E,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:Jt(O,null)})).filter(O=>e.where===null||pe(e.where,O.flat,F=>p.get(F.field),void 0,void 0,se(n))),P=[],k=new Map,x=new Map,M=new Set,L=0,_=O=>{if(M.add(O.id),L+=1,e.summary){let $=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),U=x.get($);U?U.$err_count=String(Number(U.$err_count)+1):x.set($,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let F=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),W=k.get(F);W?(W.$err_count=String(Number(W.$err_count)+1),O.subrow!==void 0&&(W.$err_subrow=`${W.$err_subrow},${O.subrow}`,W.$err_subrow_id=`${W.$err_subrow_id},${O.subrowId??""}`)):k.set(F,{$id:O.id,$err_field:O.field,$err_code:O.code,$err_message:O.message,$err_value:O.value,$err_subtable:O.subtable??"",$err_subrow:O.subrow===void 0?"":String(O.subrow),$err_subrow_id:O.subrowId??"",$err_count:"1"})},N=s.filter(O=>!O.subtableCode),C=new Map;for(let O of s){if(!O.subtableCode)continue;let F=C.get(O.subtableCode)??[];F.push(O),C.set(O.subtableCode,F)}for(let O of v){for(let F of N){let W=O.record[F.field.code]?.value,$=qe(W,F.field,m);$.ok||_({id:O.id,field:F.field.code,code:$.code,message:$.message,value:Oi(W,F.field.fieldType)})}for(let[F,W]of C){let $=O.record[F]?.value;if(Array.isArray($))for(let U=0;U<$.length;U++){let K=$[U];for(let j of W){let V=K.value?.[j.field.code]?.value,G=qe(V,j.field,m);if(!G.ok){let D=Wa(F,U,K);_({id:O.id,field:j.field.code,code:G.code,message:G.message,value:Oi(V,j.field.fieldType),...D})}}}}for(let F of _a(d,O.flat,W=>p.get(W.field)))_({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)P.push(...x.values());else for(let O of k.values()){let F=Number(O.$err_count);O.$err_subtable!==""&&F>=2&&(O.$err_message=`${O.$err_message}\uFF08${F}\u884C: ${O.$err_subrow}\uFF09`),P.push(O)}let w={type:"SELECT",columns:[...e.summary?Ep:fp],rows:P,rowCount:P.length,validateStats:{errorRecords:M.size,errorCount:L,constraintMetadata:u}};return Se.set(w,yR(e.summary===!0)),w}var st=1e4;function xt(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])||!kI(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 kI(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||!ra(i.semantics,r.semantics))return!1}return!0}var yn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};function AR(e,t,n,r={},i,o=!1,a,s=new Set){jt(r);let l=[...e],u=mi(l);if(l.forEach(g=>ci("phase15b",g)),r.allowApplyMutation!==!0&&l.some(g=>ql(g)||g.type==="UPSERT"&&BI(g)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(r.continueOnError&&u.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let g of u.statements){if(!g.isDml||g.tempTablesReferenced.length===0||g.statementType==="INSERT_SELECT"||g.statementType==="UPSERT_SELECT")continue;let y=l[g.index];if(!(y?.type==="UPDATE"&&y.from?.cteName!=null))throw new ue(`ArgumentError: temp table references in ${g.statementType} are not supported yet.`,g.index)}let d=$u(l,r.variables),c=CR(l,d),p=CI({...r,variables:d,captureColumnMeta:!0},o),f=Il(r.asOf??new Date,r.timezone),E=new Map;for(let[g,y]of Object.entries(f.values))E.set(Hr(g),{type:"string",value:y});let m=DI(),R=Date.now();return{statements:l,analysis:u,metrics:m,options:p,client:xI(n,m),cacheContext:mR(vI(n,r.cacheContext)),tempTables:new Map,exportSinks:s,variables:E,relativeDateVariables:c,clock:se(ER(p)),dialect:t,startedAt:R,deadline:r.timeoutMs!=null?R+r.timeoutMs:null,failed:new Set,cursorCleanups:new Set,...i?{onChunkWritten:i}:{},...a?{onImportSourceMaterialized:a}:{},nextIndex:0,aborted:null,disposed:!1,busy:!1}}async function SR(e,t){if(t.disposed)throw new Error("ExecutionContextDisposedError: execution context is disposed.");if(t.busy)throw new Error("ExecutionContextBusyError: concurrent executeStatement calls are not allowed.");let n=t.nextIndex;if(n>=t.statements.length)throw new Error("ExecutionContextOrderError: all statements have already been executed.");if(e!==t.statements[n])throw new Error(`ExecutionContextOrderError: expected statement index ${n}.`);t.busy=!0,t.nextIndex+=1;let r=t.analysis.statements[n],i={index:n,type:r.statementType};try{if(t.aborted){let R={...i,status:"skipped",skippedReason:t.aborted};return t.aborted!=="exit"&&t.failed.add(n),R}let o=r.dependsOn.find(R=>t.failed.has(R));if(o!==void 0){let R=t.analysis.statements[o].tempTablesCreated[0]??`statement ${o}`;return t.failed.add(n),{...i,status:"skipped",skippedReason:`dependency: ${R}`}}if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(n),t.aborted="timeout",{...i,status:"skipped",skippedReason:"timeout"};let a={aborted:!1},s=dp(t.client,a,r.statementType!=="SELECT"&&r.statementType!=="UNION"&&r.statementType!=="WITH"||NE(e)),l=gR(s);t.cursorCleanups.add(l.closeActive);let u=t.deadline!==null?t.deadline-Date.now():null,d=t.onChunkWritten?$I(l.client,n,e,t.onChunkWritten):l.client,c=t.options.confirm,p=c?{...t.options,confirm:(R,g,y)=>c(R,g,{statementIndex:n,statementCount:t.statements.length,statementType:r.statementType,targetAppId:r.targetAppId,...y?.importDetail?{importDetail:y.importDetail}:{},...y?.applyDetail?{applyDetail:y.applyDetail}:{},...y?.applyDiagnostic?{applyDiagnostic:y.applyDiagnostic}:{}})}:t.options;t.onImportSourceMaterialized&&(p={...p,[pR]:async R=>{if(await t.onImportSourceMaterialized({statementIndex:n,...R}),t.deadline!==null&&Date.now()>=t.deadline)throw new yn}});let f=await NR(WI({stmt:e,info:r,client:d,options:p,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect}),u,l.closeActive);f.result&&(f.result=UI(f.result,a));let{exitTriggered:E,...m}=f;return E&&(t.aborted="exit"),t.metrics.elapsedMs=Date.now()-t.startedAt,{...i,status:"success",...m}}catch(o){return t.failed.add(n),o instanceof yn?t.aborted="timeout":o instanceof fo?t.aborted="assertion":r.statementType==="SET_VARIABLE"||r.statementType==="DECLARE_VARIABLE"?t.aborted="fail-fast":t.options.continueOnError||(t.aborted="fail-fast"),t.metrics.elapsedMs=Date.now()-t.startedAt,{...i,status:"error",error:ZI(o)}}finally{t.busy=!1}}function FI(e){let t=async()=>{throw new Error("PreviewWriteBlockedError: previewStatement blocked a write API call.")},n={...e,postRecords:t,putRecords:t,deleteRecords:t};return bo(e)&&(n.upsertRecords=t),n}async function TR(e,t,n){if(t.disposed)throw new Error("ExecutionContextDisposedError: execution context is disposed.");if(t.busy)throw new Error("ExecutionContextBusyError: concurrent executeStatement calls are not allowed.");let r=t.nextIndex;if(r>=t.statements.length)throw new Error("ExecutionContextOrderError: all statements have already been executed.");if(e!==t.statements[r])throw new Error(`ExecutionContextOrderError: expected statement index ${r}.`);t.busy=!0,t.nextIndex+=1;let i=t.analysis.statements[r],o=KI(e),a=GI(e),s=Gm(t.metrics);try{if(t.aborted)return t.aborted!=="exit"&&t.failed.add(r),Nc(o,a);if(i.dependsOn.find(m=>t.failed.has(m))!==void 0)return t.failed.add(r),Nc(o,a);if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(r),t.aborted="timeout",Nc(o,a);let u={aborted:!1},d=dp(t.client,u,!0),c=gR(d);t.cursorCleanups.add(c.closeActive);let p=FI(c.client),f=t.deadline!==null?t.deadline-Date.now():null,E=await NR(VI({stmt:e,info:i,client:p,options:t.options,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect},n),f,c.closeActive);return t.metrics.elapsedMs=Date.now()-t.startedAt,{...E,reads:Gm(t.metrics)-s}}catch(l){throw t.failed.add(r),l instanceof yn?t.aborted="timeout":t.options.continueOnError||(t.aborted="fail-fast"),t.metrics.elapsedMs=Date.now()-t.startedAt,l}finally{t.busy=!1}}function Gm(e){return e.getCalls+e.cursorCreateCalls+e.cursorGetCalls}function KI(e){switch(e.type){case"INSERT":case"INSERT_SELECT":return"INSERT";case"UPDATE":return"UPDATE";case"DELETE":return"DELETE";case"UPSERT":case"UPSERT_SELECT":return"UPSERT";default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function GI(e){if("appId"in e&&typeof e.appId=="number")return e.appId;throw new Error("ArgumentError: previewStatement requires a DML target app.")}function Nc(e,t){return{kind:"PREVIEW",operation:e,appId:t,counts:{insert:0,update:0,delete:0},samples:[],reads:0,estimatedWrites:0}}async function IR(e){e.disposed||(e.disposed=!0,await Promise.all([...e.cursorCleanups].map(t=>t().catch(()=>{}))),e.cursorCleanups.clear(),ag(e.cacheContext),e.metrics.elapsedMs=Date.now()-e.startedAt)}function $I(e,t,n,r){let i=0,o=async(u,d,c,p,f)=>{await r({statementIndex:t,appId:u,operation:d,records:c,chunkIndex:i++,...p===void 0?{}:{lastKeyValue:p},...f??{}})},a=(n.type==="UPSERT"||n.type==="UPSERT_SELECT")&&n.keyFields.length===1?n.keyFields[0]:void 0,s=u=>{if(a===void 0||u.length===0)return;let d=u[u.length-1][a]?.value;return typeof d=="string"?d:void 0},l={...e,postRecords:async u=>{let d=await e.postRecords(u);return await o(u.app,"INSERT",u.records.length,s(u.records)),d},putRecords:async u=>{await e.putRecords(u),await o(u.app,"UPDATE",u.records.length,s(u.records.map(d=>d.record)))},deleteRecords:async u=>{await e.deleteRecords(u),await o(u.app,"DELETE",u.ids.length)}};return bo(e)&&(l.upsertRecords=async u=>{let d=await e.upsertRecords(u),c=rg(d,u.records.length);return await o(u.app,"UPSERT",u.records.length,u.records[u.records.length-1]?.updateKey.value,c),d}),l}function BI(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 WI(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:u,dialect:d}=e;if(t.type==="SET_VARIABLE"){let f=po(t,s);if(Ze(f),await kc(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 _R(f.expr.query,r,i,o,a),m=await LR(f.expr.query,r,o,a),R=m?Number(E):Number.NaN;s.set(t.name,m&&Number.isFinite(R)?{type:"number",value:R,raw:E}:{type:"string",value:E})}catch(E){throw E instanceof Bn?new Error(`ArgumentError: ${E.message}`):E}else s.set(t.name,$m(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=$m(t.default,u);s.set(t.name,{type:"string",value:E.type==="number"?E.raw??String(E.value):E.value})}return{}}let c=po(t,s);if(fr("phase15b",c),ci("phase15b",c),Ze(c),d===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(d===1&&(c.type==="UPSERT"||c.type==="UPSERT_SELECT")){let f=Nn(c)[0];if(f)throw new Error(`ArgumentError: ${f.message}`);let E=await Q(c.appId,r,o),m=Nn(c,E)[0];if(m)throw new Error(`ArgumentError: ${m.message}`)}if(await kc(c,r,o),c.type==="VALIDATE"){let f=await hR(c,r,{...i,onLimitReached:"error"},o);return c.errorTable&&xt(a,c.errorTable,f.columns,f.rows,i.tempTableMaxRows??st,Se.get(f)??yR(c.summary===!0)),{result:f}}if(c.type==="IMPORT"){let f=await dg(c,r,i,o,a);return Lr(c,f)}if("validateOnly"in c&&c.validateOnly===!0){let f=await _p(c,r,{...i,onLimitReached:"error"},o,a,n.index+1);return c.validationErrorTable&&xt(a,c.validationErrorTable,f.columns,f.errors,i.tempTableMaxRows??st,zn.get(f)??new Map),Lr(c,f)}if("onErrorSkip"in c&&c.onErrorSkip===!0){let f=await ep(c,r,{...i,onLimitReached:"error"},o,a,n.index+1);return Lr(c,f)}if(c.type==="CREATE_TEMP_TABLE"){let f={...i,maxRecords:i.tempTableMaxRows??st,onLimitReached:"error"},E=await QI(c.query,r,f,o,a);return a.set(c.name,{rows:E.rows,columns:E.columns,columnMeta:Se.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;lp.set(f,a);try{return{result:await Km(f,r,i,o)}}finally{lp.delete(f)}}if(c.type==="ASSERT"){let f=await PR(c,r,i,o,a);return f.warning!==void 0?{result:f}:{}}if(c.type==="EXIT"){let f=await iw(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 Tt(c,r,i,a,o,i.captureColumnMeta===!0)};if(c.type==="WITH")return{result:await bp(c,r,i,o,a)};if(c.type==="INSERT_SELECT"){let f=await Up(c,r,i,o,a);return Lr(c,f)}if(c.type==="UPSERT_SELECT"){let f=await Kp(c,r,i,o,a);return Lr(c,f)}if(c.type==="UPDATE"&&c.from?.cteName!=null)return{result:await np(c,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}let p=await Km(c,r,i,o);return Lr(c,p)}async function VI(e,t){let{stmt:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,dialect:l}=e,u=po(n,s);if(fr("phase15b",u),ci("phase15b",u),Ze(u),l===1&&(u.type==="INSERT"||u.type==="UPDATE"||u.type==="DELETE")&&u.subtableCode)throw new Error("ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.");if(l===1&&(u.type==="UPSERT"||u.type==="UPSERT_SELECT")){let d=Nn(u)[0];if(d)throw new Error(`ArgumentError: ${d.message}`);let c=await Q(u.appId,r,o),p=Nn(u,c)[0];if(p)throw new Error(`ArgumentError: ${p.message}`)}switch(await kc(u,r,o),u.type){case"INSERT":return YI(u,r,i,o,t);case"INSERT_SELECT":return jI(u,r,i,o,a,t);case"UPDATE":return zI(u,r,i,o,a,t);case"DELETE":return qI(u,r,i,o,t);case"UPSERT":return JI(u,r,i,o,t);case"UPSERT_SELECT":return XI(u,r,i,o,a,t);default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function Yn(e,t,n,r,i=!1){let o=e==="UPSERT"?i?Math.ceil((n.insert+n.update)/100):Math.ceil(n.insert/100)+Math.ceil(n.update/100):Math.ceil((n.insert+n.update+n.delete)/100);return{kind:"PREVIEW",operation:e,appId:t,counts:n,samples:r,reads:0,estimatedWrites:o}}function $n(e,t){return Object.fromEntries(t.map(n=>[n,et(e?.[n]?.value)]))}function HI(e){if(e.length!==0)return e.length===1?e[0]:JSON.stringify(e)}async function YI(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Ne(e.appId,t,r),l=Si(e,s,se(n)).flatMap(u=>u.records);return ut(l,e.fields,o,a),Yn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,i).map(u=>({kind:"insert",after:$n(u,e.fields)})))}async function wR(e,t,n,r,i,o){let a=await Qs.materialize(e,t,n,r,i,o);if(xp(a),a.columns.length!==e.fields.length){let u=e.type==="INSERT_SELECT"?"INSERT":"UPSERT";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${a.columns.length}\uFF09\u3068 ${u} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)}let s=await Ne(e.appId,t,r);return{records:a.rows.map((u,d)=>{let c={};return e.fields.forEach((p,f)=>{a.importPresence&&!a.importPresence[d]?.has(p)||(c[p]={value:Lp(u[a.columns[f]]??"",s.get(p))})}),c}),fieldTypes:s}}async function jI(e,t,n,r,i,o){let a=await Ue(e.appId,e.fields,t,r),s=await He(e.appId,e.fields,a,t,r),{records:l}=await wR(e,t,n,r,i,a);return l.forEach(u=>ut([u],e.fields.filter(d=>d in u),a,s)),Yn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,o).map(u=>({kind:"insert",after:$n(u,e.fields)})))}async function zI(e,t,n,r,i,o){let a=e.assignments.map(p=>p.field),s=await Ue(e.appId,a,t,r),l=await He(e.appId,a,s,t,r);if(await hn(e,t,r),Je(e.where))return Yn("UPDATE",e.appId,{insert:0,update:0,delete:0},[]);let u=await ug(e,t,n,r,i,a),d=u.map(p=>p.record);ut(d,a,s,l);let c=u.slice(0,o).map(p=>({kind:"update",before:$n(p.validationSnapshot,a),after:$n(p.record,a)}));return Yn("UPDATE",e.appId,{insert:0,update:u.length,delete:0},c)}async function qI(e,t,n,r,i){if(await hn(e,t,r),Je(e.where))return Yn("DELETE",e.appId,{insert:0,update:0,delete:0},[]);let o=hu(e),a=await Mi(t.getRecords,o.app,o.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});return Yn("DELETE",e.appId,{insert:0,update:0,delete:a.ids.length},a.ids.slice(0,i).map(s=>({kind:"delete",key:String(s)})))}async function bR(e,t,n,r,i,o,a,s){for(let f of e.keyFields)if(!e.fields.includes(f))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${f}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);t.forEach(f=>ut([f],e.fields.filter(E=>E in f),r,i));let l=t.map(f=>e.keyFields.map(E=>et(f[E]?.value))),u=qs(Cp(e,o,a,r,l)).execution.status==="ELIGIBLE",d=await Kr(e.appId,e.keyFields,l,o,a,n,e.fields),c=[],p=[];return t.forEach((f,E)=>{let m=Fr(d,l[E]),R=HI(l[E]);m===void 0?c.push({kind:"insert",...R===void 0?{}:{key:R},after:$n(f,e.fields)}):p.push({kind:"update",...R===void 0?{}:{key:R},before:$n(d.snapshots?.get(m),e.fields),after:$n(f,e.fields)})}),Yn("UPSERT",e.appId,{insert:c.length,update:p.length,delete:0},[...c,...p].slice(0,s),u)}async function JI(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Ne(e.appId,t,r),l=Eg(e,s,n);return bR(e,l,s,o,a,t,n,i)}async function XI(e,t,n,r,i,o){let a=await Ue(e.appId,e.fields,t,r),s=await He(e.appId,e.fields,a,t,r),{records:l,fieldTypes:u}=await wR(e,t,n,r,i,a);return bR(e,l,u,a,s,t,n,o)}async function QI(e,t,n,r,i){return e.type==="WITH"?bp(e,t,n,r,i,!0):Tt(e,t,n,i,r,!0)}async function NR(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new yn;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 yn)})()},t)})])}catch(a){throw a instanceof yn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function ZI(e){let t;if(e instanceof Lt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Cc(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:ew(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Cc(r),message:r}}else{let n=String(e);t={code:Cc(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Cc(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function ew(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function tw(e,t=!1,n=!1){let r=new kt(e).tokenize();return new rn(r,{import:t,dialect1:n}).parseStatements()}function nw(e,t){try{let n=tw(`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 CR(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)?nw(r.name,t[r.name]):r.default);return n}function $m(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:Gf(e.name,t)};case"STRING_FUNC":return{type:"string",value:Ae(e,{},void 0,void 0,t)};case"ARITH":{let n=me(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 po(e,t){return Fc(e,t,!1)}function Ns(e,t){return ir(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 Fc(e,t,n){if(Array.isArray(e))return e.map(r=>Fc(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(Ns(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(Ns(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,Fc(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(Ns(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=rw(i);if(o.type==="SELECT"&&it(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&it(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 it(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function rw(e){if(e.type==="NOT"&&it(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&it(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(it(t,!1)||it(n,!1))return{type:"BOOLEAN",value:!1};if(it(t,!0))return n;if(it(n,!0))return t}else if(e.op==="OR"){if(it(t,!0)||it(n,!0))return{type:"BOOLEAN",value:!0};if(it(t,!1))return n;if(it(n,!1))return t}}return e}function Kc(e){if(Array.isArray(e)){for(let t of e){let n=Kc(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=Kc(n);if(r!==null)return r}}return null}var fo=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Bn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function PR(e,t,n,r,i){let o=await OR(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 fo(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function iw(e,t,n,r,i){let o=await OR(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function OR(e,t,n,r,i){let o=await Ts(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 Ts(e.low,t,n,r,i),u=await Ts(e.high,t,n,r,i);return{passed:Wt(">=",o.value,l.value,Pc(o,l))&&Wt("<=",o.value,u.value,Pc(o,u)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await Ts(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string"):Pc(o,a);return{passed:Wt(e.op,o.value,a.value,s),actual:o.value}}function Pc(e,t){return B(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function Ts(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(Gc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await _R(e.query,t,n,r,i),a=await LR(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof Bn?new fo(o.message):o}}}async function LR(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 Ro(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function _R(e,t,n,r,i){let{query:o,probed:a}=ow(e),s=await lo(o,t,n,r,i);if(s.columns.length!==1)throw new Bn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Bn("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 Bn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function ow(e){return Kt(e)||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function Gc(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=Gc(e.left),n=Gc(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 wo(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||_t(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await Q(p,t,n);return[p,new Map(f.map(E=>[E.code,E]))]}))),l=new Set,u=p=>{if(Array.isArray(p)){p.forEach(u);return}if(p===null||typeof p!="object")return;let f=p;if(f.type==="SELECT")return;let E=String(f.op),m=f.right,R=["=","!=","<>"].includes(E)&&m?.type==="STRING"&&m.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(E)||R)){let g=f.left;g?.type==="FIELD"&&typeof g.field=="string"&&l.add(g.field)}Object.values(f).forEach(u)};u(e.where),u(e.having);for(let p of e.columns)p.type==="CASE_COL"&&u(p.expr);let d=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(R=>f.get(R)?.fieldType==="STATUS"))return;let m=await Op(p,t,n);m&&d.set(p,m)}));let c=(p,f,E)=>{if(f==="$id")return lr(ne({fieldType:"__ID__"}),p.appId,"$id");if(E&&p.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let m=s.get(p.appId)?.get(de(p,f));if(!m)return;let R=m.semantics??ne(m),g=m.fieldType==="STATUS"&&d.has(p.appId)?{...R,optionOrder:d.get(p.appId)}:R;return lr(g,p.appId,m.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return c(e.from,p.field,!1);let E=o.find(m=>fe(m)===p.tableAlias);return E?E.cteName!==null?Oe(r?.get(E.cteName),p.field)?.semantics??B("string"):c(E,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?Oe(r?.get(e.from.cteName),p.field)?.semantics??B("string"):c(e.from,p.field,!0);let f=o.flatMap(E=>{let m=E.cteName!==null?r?.get(E.cteName):void 0,R=E.cteName!==null?Mr(m,p.field)!==void 0?Oe(m,p.field)?.semantics??B("string"):void 0:c(E,p.field,!0);return R?[R]:[]});if(f.length===1)return f[0];if(!o.some(E=>Ps(E,p.field)!==void 0))return f.length>1?B("string"):void 0}}var vR=new WeakMap;async function Wn(e,t,n,r,i=!1){let o=await wo(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=Yd(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&vR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function lt(e){return[...e.columns.filter(t=>t.type==="WINDOW_COL"),...e.hiddenWindows??[]]}function aw(e){return lt(e).some(t=>t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function DR(e){return aw(e)||lt(e).some(t=>t.windowKind==="VALUE")}function sw(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 Bm(e,t,n,r,i){return sw(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=$e(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===fe(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=$e(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function Wm(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 xR(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"||Bm(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`+Wm(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||Bm(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`+Wm(n,"VALUE"));return i}function Rp(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=Se.get(e);return r&&Se.set(n,r),n}function gp(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=>_t(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function UR(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($e(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=B("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=B("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Tn(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Tn(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=Sn(r.expr,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=B("string")),i&&n.set(r.alias,i)}return r=>{if(r.tableAlias!==null)return t(r);let i=ve(r.field,n.keys());return i===void 0?t(r):n.get(i)}}function Vn(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 Ms(e){return e.orderBy.length>0||lt(e).some(t=>t.orderBy.length>0)}async function MR(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=_t(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?we(null,()=>{}):we(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 hn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await MR(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new ae(`WHERE predicate cannot be represented by kintone REST (${Vn(r)})`)}async function Zt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){Aw(e);let l,u=new Set;if(await mo(e,t,r,i),dw(e))return l=mw(e,n),o&&Se.set(l,await Ro(e,l.columns,t,r,i,a)),l;let{resolver:d}=await Wn(e,t,r,i,DR(e)),c=xR(e,d,s),p=await Dr(e,t,r,i);await yg(e,t,n,r,u,i);let f=Ow(e,we(e.where,d));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vn(f)}).`);let E=Xe(e),m,R;if(f.capability==="SUPERSET_PREFILTER"){let P=await wo(e,t,r,i),k=mc(e,P);k.eligible&&fc(e,k)&&(m=k.plan)}if(m===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let P=null;try{P=z(e.where)}catch{P=null}R=Mo({select:e,selectMode:E,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:P,relativeFunctionNames:Te(e.where)})??void 0,R&&(m=R.prefilterPlan)}let g=f.capability==="EXACT_PUSHDOWN"?E:"FULL_SCAN",y=await yo(e,t,r,i),A=Ms(e)?(e.orderMode==="KINTONE_NATIVE"?Gi:Ki)({stmt:e,staticMode:g,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:_e(e.where)}):null,h=await gw(e,A?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),I=yp(e,n,A),v=R!==void 0&&(E==="FULL_SCAN"||A?.kind==="CANONICAL_LOCAL")?dp(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await Rw(e,v,I.effectiveOptions,r,A,y):l=await vw(e,v,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&m===void 0,y,m,p)}catch(P){FR(I,P)}return o&&Se.set(l,await Ro(e,l.columns,t,r,i,a)),Rp(l,[...u,...c,...h])}function $c(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 kR(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 Dr(e,t,n,r){let i=ee(e);if(!Kt(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 m=r?.get(c.cteName);if(!m)throw new Error(`InternalError: materialized schema ${c.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:m.columns}}let p=await Q(c.appId,t,n);if(!c.subtableCode){for(let m of p){if(m.inSubtable!==!0||!m.subtableCode)continue;let R=s.get(m.code)??[];R.push({appId:c.appId,owner:m.subtableCode}),s.set(m.code,kR(R))}return{kind:"APP",fieldCodes:p.filter(m=>!m.inSubtable).map(m=>m.code)}}let f=p.filter(m=>m.inSubtable&&m.subtableCode===c.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:p.filter(m=>m.inSubtable&&m.subtableCode===void 0)).map(m=>m.code),parentFieldCodes:p.filter(m=>!m.inSubtable).map(m=>m.code)}})),u=wd(e,(c,p)=>l[p]),d=Pd(o,e.columns,u);return lw(e,o,d,s),ei(e,vd(e,d,u)),d}function lw(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],d=u?.type==="FIELD_NAME"?u.name:"(expression)";if(s.kind==="UNKNOWN"){let c=a===null?"":` (APP${a})`,p=s.name.indexOf("."),f=p>=0?s.name.slice(p+1):s.name,E=r.get(s.name)??r.get(f)??[];throw E.length>0?new Error($c(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 ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var Eo=new WeakMap;async function uw(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 mo(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function cw(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 p=await Q(c,t,n);return[c,new Map(p.map(f=>[f.code,f]))]}))),s=(c,p)=>{if(c.subtableCode)return null;let f=a.get(c.appId)?.get(p);return f?.inSubtable===!0?f.subtableCode??"":null},l=(c,p)=>{if(p==="$id")return"$id";let f=de(c,p);return s(c,f)!==null?null:a.get(c.appId)?.has(f)?f:null},u=(c,p)=>{if(c.cteName===null)return!1;let f=r?.get(c.cteName);return f?Mr(f,p)!==void 0:!0},d=(c,p,f,E)=>{let m=i.filter(y=>y.cteName===null&&l(y,f.field)!==null).length,R=i.some(y=>u(y,f.field)),g=fe(c);return{canonicalId:`source:${p}:APP${c.appId}:${E}`,directKey:f.tableAlias&&g?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:m===1&&!R?f.field:null,physical:!0}};return c=>{if(c.tableAlias!==null){let R=i.findIndex(A=>fe(A)===c.tableAlias);if(R<0)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} has an unknown table alias.`);let g=i[R];if(g.cteName!==null)throw new Error(`ArgumentError: field ${c.tableAlias}.${c.field} resolves to materialized source ${g.cteName}; physical APP fields are required.`);let y=l(g,c.field);if(y===null){let A=s(g,de(g,c.field));throw A!==null&&A!==""?new Error($c(c.field,[{appId:g.appId,owner:A}])):new Error(`ArgumentError: field ${c.tableAlias}.${c.field} does not exist in APP${g.appId}.`)}return d(g,R,c,y)}let p=i.flatMap((R,g)=>{if(R.cteName!==null)return[];let y=l(R,c.field);return y===null?[]:[{table:R,tableIndex:g,code:y}]}),f=i.filter(R=>u(R,c.field));if(p.length+f.length>1)throw new Error(`ArgumentError: field ${c.field} is ambiguous across multiple sources.`);if(p.length===1&&f.length===0){let R=p[0];return d(R.table,R.tableIndex,c,R.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(R=>{if(R.cteName!==null)return[];let g=s(R,de(R,c.field));return g===null||g===""?[]:[{appId:R.appId,owner:g}]}),m=kR(E);throw m.length>0?new Error($c(c.field,m)):new Error(`ArgumentError: field ${c.field} does not exist in a physical APP source.`)}}async function mo(e,t,n,r){Eo.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 cw(e,t,n,r),u=Ud(e,l,xd);u&&Eo.set(e,u);return}if(!Kt(e))return;if(i.type==="NONE"){qo(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await Dr(e,t,n,r)}function pw(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 yp(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?En({...e,orderBy:[]}):En(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function FR(e,t){throw e.reasons.size>0&&t instanceof Rt&&!t.completeInputWrapped?new Rt(pw(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Bc(e,t){try{return await t()}catch(n){FR(e,n)}}function Je(e){return e?.type==="BOOLEAN"&&e.value===!1}function dw(e){return e.from.appId===0&&e.from.cteName===Le}function ks(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"?ks(e.left)||ks(e.right):e.type==="STRING_FUNC"?hp(e):!1}function fw(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:ro(e)}function ro(e){return e.type==="FIELD"?e.hiddenWindowRef!==!0:e.type==="STRING_FUNC"?hp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?ro(e.left)||ro(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"?ks(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:ro(n))):!1}function hp(e){return e.args.some(t=>fw(t))}function Ew(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(ks(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(hp(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(ro(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 mw(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.");Ew(e);let n=sc([{}],e.columns,void 0,void 0,void 0,void 0,se(t),e.hiddenWindows),{rows:r,columns:i}=Fn(n,e.columns,void 0,void 0,void 0,void 0,void 0,se(t)),o=cs(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function Rw(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?VR(e):e,s=ea(a),l=i?.kind==="CANONICAL_LOCAL"?On(e,e.from):s.fields,u=await Sp(e,t,r),d=Ip(e,u),c=e.columns.some(P=>P.type==="CASE_COL")?await wo(e,t,r,void 0,gp(e)):void 0,p=n.maxRecords??1e4,f=new Set,E=n.onLimitReached??"error",m=n.fetchParallel??1,R=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,g=e.limit===null?null:(e.offset??0)+e.limit,y=e.orderBy.length===0&&g!==null&&g<=p&&!_e(e.where)?g:void 0,A;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)A=[];else if(i?.kind==="KORDER_CURSOR"){let P=await WE({client:t,app:s.app,fields:s.fields,query:Xu(e),offset:e.offset??0,limit:e.limit});A=P.records,P.cleanupWarning&&f.add(P.cleanupWarning)}else if(R)A=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let P=e.where?z(e.where):"";A=await We(t.getRecords,s.app,P,l,{parallel:m,maxRecords:p,stopAfter:y,onLimit:E,onTruncate:k=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${k} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${k} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),pp(t,e.from.appId)}})}let h=A.map(P=>Jt(P,null));R||(h=oc(h,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,ac(e.columns,void 0,d.row,c,se(n)),se(n)),h=cs(h,e.limit,e.offset));let{rows:I,columns:b}=Fn(h,e.columns,void 0,d.row,void 0,c,void 0,se(n)),v=await Np(e,I,b,t,r);return{type:"SELECT",rows:I,columns:v,rowCount:I.length,warnings:[...f]}}async function gw(e,t,n,r){let i=[],o=new Map,a=(u,d)=>{if(d.length===0)return;let c=o.get(u);c||(c=new Set,o.set(u,c));for(let p of d)c.add(p)},s=new Map,l=(u,d)=>{let c=s.get(u);c||(c=new Set,s.set(u,c));for(let p of d)c.add(p)};if(t==="SIMPLE"){let u=ea(e);a(u.app,u.fields),e.from.subtableCode||l(u.app,u.fields)}else{let u=[e.from,...e.joins.map(d=>d.table)].filter(d=>d.cteName===null);for(let d of u){let c=On(e,d);a(d.appId,c),d.subtableCode||l(d.appId,c)}}for(let[u,d]of o.entries()){let c=[...d].filter(R=>!jo(R));if(c.length===0)continue;let p=await Q(u,n,r);if(p.length===0)continue;let f=new Set(p.map(R=>R.code)),E=c.filter(R=>!f.has(R));if(E.length>0)throw new Error(`ArgumentError: unknown field code(s): ${E.join(", ")} (APP${u})`);let m=s.get(u);if(m){let R=p.filter(g=>g.inSubtable===!0&&m.has(g.code));for(let g of R){let y=g.subtableCode??"",A=y?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${y}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${g.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`+(y?`APP${u}$${y} \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 Oc(e){return e.cteName??`APP${e.appId}`}function KR(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function yw(e,t){return jo(t)||e.validCodes.has(t)}function Lc(e,t){return e.table.cteName!==null?e.validCodes.has(t):yw(e,t)}async function hw(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||jo(a))return!0;let s=i.get(o.appId);return!s||s.size===0?!0:s.has(de(o,a))}}async function GR(e,t,n,r){let i=!1;Vm(e,t,()=>(i=!0,!0)),i&&Vm(e,t,await hw(e,n,r))}function Vm(e,t,n){let r=[e.from,...e.joins.map(E=>E.table)],i=new Map;for(let E of r)for(let m of KR(E))i.set(m,E);let o=e.columns.flatMap(E=>"alias"in E&&E.alias!==null?[E.alias]:[]),a=E=>E.cteName===null||E.cteName===Le?[]:t.get(E.cteName)?.columns??[],s=(E,m)=>E?ve(m,a(E)):void 0,l=E=>{if(r.some(g=>a(g).includes(E)))return E;let m=r.flatMap(g=>{let y=s(g,E);return y===void 0?[]:[y]}),R=[...new Set(m)];if(R.length===1)return r.some(g=>n(g,E))?E:R[0]},u=(E,m,R)=>{if(R&&m===null){let g=ve(E,o);if(g!==void 0)return g}return m===null?l(E)??E:s(i.get(m),E)??E},d=(E,m)=>{let R=E.indexOf(".");if(R<=0)return u(E,null,m);let g=E.slice(0,R),y=E.slice(R+1),A=u(y,g,!1);return A===y?E:`${g}.${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,p=(E,m=!1)=>{if(E===null||typeof E!="object"||c.has(E))return;if(c.add(E),Array.isArray(E)){for(let g of E)p(g,m);return}let R=E;if(!(E!==e&&(R.type==="SELECT"||R.type==="UNION"))){if(R.type==="FIELD"&&typeof R.field=="string"){let g=typeof R.tableAlias=="string"?R.tableAlias:null;R.field=g===null?d(R.field,m):u(R.field,g,m)}else if(R.type==="FIELD_REF"&&typeof R.field=="string")R.field=d(R.field,m);else if(R.type==="AGG_GROUP_KEY"&&typeof R.field=="string"){let g=typeof R.tableAlias=="string"?R.tableAlias:null;R.field=u(R.field,g,m)}for(let g of Object.values(R))p(g,m)}};for(let E of[...e.columns,...e.hiddenWindows??[]])p(E);p(e.where),p(e.having,!0),p(e.grouping);let f=ee(e);if(f.type==="PLAIN")for(let E of f.allItems)E.type==="FIELD_NAME"?E.name=d(E.name,!0):p(E);for(let E of e.orderBy)E.key.type==="FIELD_NAME"?E.key.name=d(E.key.name,!0):p(E.key);for(let E of lt(e)){for(let m of E.partitionBy)m.type==="FIELD"&&(m.field=u(m.field,m.tableAlias,!1));for(let m of E.orderBy)m.key.type==="FIELD_NAME"?m.key.name=d(m.key.name,!1):p(m.key)}}function Aw(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=ve(i.field,t);o!==void 0&&(i.field=o)}i.type==="SELECT"||i.type==="UNION"||Object.values(i).forEach(n)}};n(e.having)}function Sw(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 Wc(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=new Map,s=new Set,l=new Set;for(let p of o){let f=fe(p);if(f!==null){if(l.has(f))throw new Error(`ArgumentError: effective alias ${f} is used by multiple tables.`);l.add(f)}}for(let p of o){if(p.cteName===null||p.cteName===Le)continue;let f=n.get(p.cteName);if(!f){if(i){s.add(p);continue}throw new Error(`ArgumentError: materialized source ${p.cteName} is not available.`)}if(f.rows.length>0&&f.columns.length===0)throw new Error(`InternalError: materialized source ${p.cteName} has rows but no column schema.`);if(e.joins.length>0&&f.rows.length===0&&f.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${p.cteName}.`);a.set(p,f)}let u=new Map;await Promise.all(o.map(async p=>{if(s.has(p)){u.set(p,{table:p,label:Oc(p),validCodes:new Set,authoritative:!1,schemaUnavailable:!0});return}let f=a.get(p);if(f){u.set(p,{table:p,label:Oc(p),validCodes:new Set(f.columns),authoritative:!0,schemaUnavailable:f.rows.length===0&&f.columns.length===0});return}if(p.cteName===Le)return;let E=i?await sg(p.appId,r):await Q(p.appId,t,r);u.set(p,{table:p,label:Oc(p),validCodes:new Set((E??[]).map(m=>m.code)),authoritative:E!==null&&E.length>0,schemaUnavailable:!1})}));let d=new Map;for(let p of u.values())for(let f of KR(p.table))d.set(f,p);for(let p of e.joins)if(p.type!=="CROSS")for(let f of[p.on.left,p.on.right]){if(!f.tableAlias)continue;let E=d.get(f.tableAlias);if(E&&E.table.cteName!==null&&!E.schemaUnavailable&&!Lc(E,f.field))throw new Error(`ArgumentError: JOIN key ${f.tableAlias}.${f.field} is not available in the materialized table.`)}let c=Gd(e);for(let[p,f]of c.bySource){let E=u.get(p);if(!E||E.schemaUnavailable||!E.authoritative)continue;let m=[...f].filter(R=>!Lc(E,R));if(m.length>0)throw new Error(`ArgumentError: unknown field code(s): ${m.join(", ")} (${E.label})`)}for(let p of c.unqualified){let f=[...u.values()].filter(m=>!m.schemaUnavailable);if(f.some(m=>Lc(m,p))||[...u.values()].some(m=>m.schemaUnavailable)||f.some(m=>m.table.cteName===null&&!m.authoritative))continue;let E=f.map(m=>m.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${p} (${E})`)}}async function Cs(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Cs(e.left,t,n,r,i),await Cs(e.right,t,n,r,i);return}await GR(e,n,t,r),await Wc(e,t,n,r);for(let o of Sw(e))await Cs(o,t,n,r,i)}}function $R(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?si(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?si(e.where,{tableAlias:e.from.alias}):null}function io(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"?io(e.left)||io(e.right):e.type==="GROUP"||e.type==="NOT"?io(e.expr):!1}var Ap=new WeakMap;function Hs(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=kE(e.where,r),o=FE(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,Nr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,u=a.get(l)??null,d=new Map(a);d.delete(l);let c=new Map(o.items.map(f=>[f.targetAlias,f.relation])),p=c.get(l)??null;return c.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:u,mainRelation:p,joinConditions:d,joinRelations:c,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Ys(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,$R(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=si(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[u,d]=await Promise.all([Ne(s,t,n),jw(s,t,n)]),c=Tw(l).filter(p=>u.get(p)==="STATUS");if(c.length>0){let p=await Js(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(E=>E.name));for(let E of c)d.set(E,f)}}return[s,u,d]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function Tw(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 Qt(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"&&Fs(e.left.expr,t),e.right.type==="CASE_VALUE"&&Fs(e.right.expr,t);return;case"LOGICAL":Qt(e.left,t),Qt(e.right,t);return;case"NOT":case"GROUP":Qt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function Fs(e,t){for(let n of e.branches)Qt(n.condition,t)}function Iw(e){let t=[];Qt(e.where,t),Qt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&Fs(n.expr,t);return t}function fe(e){return e.alias??e.cteName}function BR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>fe(n)===t)}function js(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function Sp(e,t,n){let r=Iw(e);if(r.length===0)return new Map;let i=new Set,o=js(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=BR(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 Ne(s,t,n)]));return new Map(a)}function $e(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 Tp(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Kn(t,n)}function Kn(e,t){if(e.type==="FIELD_REF"){t.push($e(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){Kn(e.left,t),Kn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Kn(e.left,t),Kn(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"&&Kn(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"?xr(n,t):n.type!=="ARRAY"&&Kn(n,t)}function xr(e,t){if(e.type==="AGG_REF"){Tp(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(xr(e.left,t),xr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Vc(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")xr(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;oo(n,t)}}function oo(e,t){if(e.type==="STRING_FUNC"){Vc(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){oo(e.left,t),oo(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"?Vc(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?xr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&oo(r,t)}}function Hm(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;Tp(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function ww(e){let t=[];for(let n of e)n.type==="AGGREGATE"?Tp(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?xr(n.expr,t):n.type==="ARITH_COL"?Hm(n.expr,t):n.type==="STRFUNC_COL"?Vc(n.expr,t):n.type==="SCALAR_VALUE_COL"?oo(n.expr,t):n.type==="CASE_COL"&&Hm(n.expr,t);return t}var bw=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function Nw(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":bw.has(e.fieldType)?"string":void 0}async function WR(e,t,n,r){let i=ww(e.columns);if(i.length===0)return;let o=new Set,a=js(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=BR(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(m=>[m.code,m]))]}))),l=new Map,u=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,E])=>{if(![...u].some(R=>E.get(R)?.fieldType==="STATUS"))return;let m=await Op(f,t,n);m&&l.set(f,m)}));let d=[e.from,...e.joins.map(f=>f.table)],c=(f,E)=>{let m=f.semantics??ne(f);return f.fieldType==="STATUS"&&l.has(E)?{...m,optionOrder:l.get(E)}:m};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 R=d.find(g=>fe(g)===f.tableAlias);if(!R)return;if(R.cteName!==null)return Oe(r?.get(R.cteName),f.field)?.semantics??B("string");E=s.get(R.appId)?.get(de(R,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return Oe(r?.get(e.from.cteName),f.field)?.semantics??B("string");E=s.get(e.from.appId)?.get(de(e.from,f.field))}else{let R=d.flatMap(g=>{if(g.cteName!==null){let A=r?.get(g.cteName);return Mr(A,f.field)!==void 0?[Oe(A,f.field)?.semantics??B("string")]:[]}let y=s.get(g.appId)?.get(de(g,f.field));return y?[c(y,g.appId)]:[]});return R.length!==1?void 0:R[0]}if(!E)return;let m=f.tableAlias!==null?d.find(R=>fe(R)===f.tableAlias):e.joins.length===0?e.from:void 0;return c(E,m?.appId??e.from.appId)}}function de(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Ps(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function Ge(e,t){let n=e.semantics??ne(e);return{sortKind:Nw(e),fieldType:e.fieldType,semantics:t===void 0?n:lr(n,t,e.code)}}function VR(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function Z(e){return{sortKind:e,semantics:B(e)}}function ot(){return{semantics:B("string","KSQL_UNKNOWN")}}function HR(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function at(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 Sn(e,t){return Z(Nt(e,n=>{let r=t?.(n);if(r)return"compareMode"in r?r:r.semantics}))}function Ur(e,t){return e.type==="STRING"?Z("string"):e.type==="ARRAY"?HR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?ot():Tn(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"?Sn(e,t):e.type==="FIELD_REF"?t($e(e.field))??ot():e.type==="FIELD"?t(e)??ot():ot()}function zs(e){if(e.length===0)return ot();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&&ra(n(r.semantics),n(t.semantics)))?e.every(i=>ra(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?HR("KSQL_MIXED_UNSUPPORTED"):ot()}function Tn(e,t){if(e.type==="FIELD_REF")return t($e(e.field))??ot();if(e.type==="FIELD")return e.aggregateRef?YR(e.aggregateRef,t):t(e)??ot();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 Sn(e,t);let n=e.branches.map(r=>Ur(r.result,t));return e.elseResult&&n.push(Ur(e.elseResult,t)),zs(n)}function YR(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"):Tn(e.arg,t)}function Ks(e,t){return e.windowKind==="VALUE"?Tn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?Z("number"):e.arg.type==="WILDCARD"?ot():Tn(e.arg,t):Z("number")}function Os(e,t){return{...e??{},displayName:t}}function Cw(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 Ro(e,t,n,r,i,o=!1){let a=new Map;Cw(e)&&await Promise.all(js(e).map(async g=>{if(a.has(g.appId))return;let y=await Q(g.appId,n,r);a.set(g.appId,new Map(y.map(A=>[A.code,A])))}));let s=[e.from,...e.joins.map(g=>g.table)],l=o&&i===void 0&&s.every(g=>g.cteName===null),u=g=>{if(g.tableAlias!==null){if(g.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let I=a.get(e.from.appId)?.get(g.field);return I?Ge(I,e.from.appId):void 0}let A=s.find(I=>fe(I)===g.tableAlias);if(!A)return;if(A.cteName!==null)return Oe(i?.get(A.cteName),g.field);let h=a.get(A.appId)?.get(de(A,g.field));return h?Ge(h,A.appId):at(g.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Oe(i?.get(e.from.cteName),g.field);let A=a.get(e.from.appId)?.get(de(e.from,g.field));return A?Ge(A,e.from.appId):at(g.field)}let y=s.flatMap(A=>{if(A.cteName!==null){let b=i?.get(A.cteName);return Mr(b,g.field)===void 0?[]:[Oe(b,g.field)]}let h=a.get(A.appId)?.get(de(A,g.field)),I=h?Ge(h,A.appId):at(g.field);return I?[I]:[]});return y.length===1?y[0]:void 0},d=g=>{if(!l)return;let y=s.filter(A=>{if(g.tableAlias!==null&&fe(A)!==g.tableAlias)return!1;let h=de(A,g.field);return a.get(A.appId)?.has(h)===!0||at(g.field)!==void 0});return y.length===1?y[0].appId:void 0},c=(g,y)=>{let A=d(y);return g&&A!==void 0?{...g,publicSourceApp:A}:g},p=new Map,f=new Map((e.hiddenWindows??[]).map(g=>[g.alias,Ks(g,u)])),E=g=>g.hiddenWindowRef?f.get(g.field):u(g),m=e.columns.some(g=>g.type==="WILDCARD"||g.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let g of t){let y=$e(g),A=c(u(y),y);p.set(g,Os(A,A?.displayName??g))}return p}if(m)for(let g of t){let y=$e(g),A=c(u(y),y);p.set(g,Os(A,A?.displayName??g))}return e.columns.filter(g=>g.type!=="WILDCARD"&&g.type!=="PARENT_WILDCARD").forEach((g,y)=>{let A=m?"alias"in g&&g.alias?g.alias:void 0:t[y];if(!A)return;let h;if(g.type==="FIELD"){let I=$e(g.field);h=c(u(I),I)}else if(g.type==="AGGREGATE")g.func==="GROUP_CONCAT"?h=Z("string"):g.func==="COUNT"||g.func==="SUM"||g.func==="AVG"||g.func==="STDDEV_POP"||g.func==="STDDEV_SAMP"||g.func==="VAR_POP"||g.func==="VAR_SAMP"||g.func==="MEDIAN"?h=Z("number"):(g.func==="MIN"||g.func==="MAX"||g.func==="MODE")&&g.arg.type!=="WILDCARD"&&(h=Tn(g.arg,u));else if(g.type==="ARITH_AGG_COL"||g.type==="ARITH_COL")h=Z("number");else if(g.type==="GROUPING_COL")h=Z("number");else if(g.type==="LITERAL_COL")h=Z("string");else if(g.type==="SCALAR_VALUE_COL"){let I=g.expr;I.type==="STRING_FUNC"?h=Sn(I,E):I.type==="NUMBER"||I.type==="SCALAR_ARITH"?h=Z("number"):I.type==="FIELD"?h=E(I):h=Z("string")}else if(g.type==="STRFUNC_COL")h=Sn(g.expr,E);else if(g.type==="WINDOW_COL")h=Ks(g,u);else if(g.type==="CASE_COL"){let I=g.expr.branches.map(b=>Ur(b.result,E));g.expr.elseResult&&I.push(Ur(g.expr.elseResult,E)),h=zs(I)}else g.type==="SCALAR_SUBQUERY_COL"&&(h=ot());p.set(A,Os(h,g.aliasDisplay??A))}),p}function Pw(e,t){let n=Se.get(e),r=Se.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),d;if(s&&u){let c=zs([s,u]),p=s.publicSourceApp===u.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...E}=c;d=p===void 0?E:{...E,publicSourceApp:p}}else d=ot();i.set(o,Os(d,s?.displayName??o))}),i}function Ip(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(d=>fe(d)===s.tableAlias);return!u||u.cteName!==null?void 0:Ps(u,s.field)??t.get(u.appId)?.get(de(u,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Ps(e.from,s.field)??t.get(e.from.appId)?.get(de(e.from,s.field));if(n.some(u=>u.cteName!==null))return;let l=r.flatMap(u=>{let d=Ps(u,s.field)??t.get(u.appId)?.get(de(u,s.field));return d?[d]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var jR=new WeakSet,wp=new WeakMap;function Hc(e){return jR.add(e),e}function Ow(e,t){return wp.set(e,t),t}function zR(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 Lw(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function _w(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 xs;if(!Lw(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=Fn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function vw(e,t,n,r,i,o=!0,a,s,l){let u=wp.get(e);if(jR.has(e)&&u!==void 0&&zR(e,u)){let G=await _w(e,t);if(G!==null)return G}let d=n.maxRecords??1e4,c=new Set,p=n.fetchParallel??1;await Promise.all([So(e.where,t,n,r,c,i),So(e.having,t,n,r,c,i)]);let[f,E,m]=await Promise.all([Ys(e,t,r),Sp(e,t,r),WR(e,t,r,i)]),R=Ip(e,E),g=await wo(e,t,r,i,_t(e.having)||gp(e)),y=UR(e,g),A=Ap.get(e);if(A&&!Cr(A.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let h=A??Hs(e,f)??Ln(e,f);Xl(h);let I="joinPlan"in h?h:null,b=I&&Cr(I.joinPlan)?I:null,v=t,P=h.mainCondition,k=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let x=s?s.prefilterWhere:b?null:P,M=b?.queriesByAlias.get(e.from.alias)??"",L=await Ag(e.columns,t,n,r,c,i),_=Je(e.where),N=_?Promise.resolve([]):ao(e,e.from,v,d,p,!0,n.onLimitReached??"error",c,x,b?!1:o,l,M),C=[],S=[];for(let G of e.joins){if(_){C.push({join:G,promise:Promise.resolve([])});continue}let D=G.table.alias?b?.queriesByAlias.get(G.table.alias)??"":"",H=b?null:G.table.alias?k.get(G.table.alias)??null:null;H!==null||D!==""?C.push({join:G,promise:ao(e,G.table,v,d,p,!1,n.onLimitReached??"error",c,H,!0,l,D)}):S.push(G)}let w=a?Promise.resolve(a):yo(e,t,r,i);w.catch(()=>{});let O=await N,F=new Map;F.set(e.from.alias,O);for(let{join:G,promise:D}of C)F.set(G.table.alias,await D);await Promise.all(S.map(async G=>{let H=await og(e,G,F,v,d,p,n.onLimitReached??"error",c,r,i,null,l,"")??await ao(e,G.table,v,d,p,!1,n.onLimitReached??"error",c,null,!0,l,"");F.set(G.table.alias,H)}));let{optionOrders:W,sortKinds:$,semantics:U}=await w,{rows:K,columns:j}=lc({tables:F,stmt:e,scalarCache:L,optionOrders:W,sortKinds:$,orderSemantics:U,fieldTypeResolver:R.row,fieldSemanticsResolver:g,havingFieldTypeResolver:R.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:m,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:b?{residualWhere:b.joinPlan.residualWhere}:{},resolvedGroupingSpec:Eo.get(e),plainGroupByPlan:l,warnings:c,evaluationContext:se(n)}),V=await Np(e,K,j,t,r);return{type:"SELECT",rows:K,columns:V,rowCount:K.length,warnings:[...c]}}function Dw(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
16
+ 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 Yc(e,t,n){Dw(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=Se.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let u=e.columns[l],d=n?.get(s)??(u===void 0?void 0:o?.get(u));d&&a.set(s,{...d,displayName:s})}),Se.set(i,a)}return i}function qR(e,t,n,r){let i=Yc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:xw(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&&Se.set(l,Pw(e,t)),l}async function JR(e,t,n,r,i=!1,o=!1){let a=yp(e,n,null);return Bc(a,async()=>{let s=a.effectiveOptions,[l,u]=await Promise.all([e.left.type==="UNION"?JR(e.left,t,s,r,i,o):Zt(Hc(e.left),t,s,r,void 0,i,o,"DERIVED"),Zt(Hc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return qR(l,u,e.all,i)})}function xw(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 XR(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function QR(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(XR);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 Ym(e){return e.columns.map((t,n)=>XR(t)??`__b53_column_${n}`)}function jm(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 ZR(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 Oe(r.get(s.cteName),l);let u=o.get(s.appId)?.get(de(s,l));return u?Ge(u,s.appId):at(l)};return s=>{if(s.tableAlias!==null){let u=i.find(d=>fe(d)===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 to(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>to(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:$e(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=$e(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"){to(r.left,t,!0),to(r.right,t,!0);return}for(let i of Object.values(r))to(i,t,n)}async function zm(e,t,n,r,i){let o=await ZR(e,n,r,i);e.columns.forEach(u=>to(u,o));let a=await Ro(e,Ym(e),n,r,i),s=Ym(e),l=new Map;return t.forEach((u,d)=>{let c=a.get(s[d]);if(!c?.semantics||c.semantics.fieldType==="KSQL_UNKNOWN"||c.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${d+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(u,{...c,displayName:u})}),l}function An(e){return`${e.appId}:${e.subtableCode??""}`}function eg(...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(An(r))&&t.set(An(r),r);return[...t.values()]}function Uw(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function Mw(e){let t=new Map,n=r=>{for(let i of r)t.set(An(i),null)};for(let r of e){let i=js(r);for(let s of i){let l=An(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=>fe(c)?.toLowerCase()===s.toLowerCase());if(!u){n(i);return}if(u.cteName!==null)return;let d=t.get(An(u));d!==null&&d?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let u=Uw(l.field),d=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:u.alias;o(d,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 kw(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 Fw(e,t,n,r){let i=Mw(e),o=await Promise.all(eg(...e).map(async(a,s)=>{let l=await Zt(kw(a,i.get(An(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),u=`__b53_source_${s}`;return[An(a),{name:u,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:Se.get(l)}}]}));return new Map(o)}function qm(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(An(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 Jm(e,t,n){return e.cteName===null?void 0:Oe(n.get(e.cteName),t)}function _c(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=Ce(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function Xm(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=fe(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 Kw(e,t,n,r,i){let o=e.recursiveSpec,a=QR(e),s=await zm(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let u=await zm(o.recursiveTerm,a,t,i,l);a.forEach(($,U)=>{let K=s.get($),j=u.get($);if(!K||!j||!jm(K,j))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${U+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let d=Xm(e.name,o.recursiveTerm),c=await ZR(o.recursiveTerm,t,i,l),p=c({type:"FIELD",tableAlias:fe(d.self),field:d.selfField}),f=c({type:"FIELD",tableAlias:fe(d.source),field:d.sourceField});if(!p||!f||!jm(p,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let E=await Fw([o.seed,o.recursiveTerm],t,n,i),m=new Map(r);for(let $ of E.values())m.set($.name,$.table);let R=qm(o.seed,E),g=qm(o.recursiveTerm,E),y=await Tt(R,t,n,m,i,!0,!0),A=Yc(y,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 v=h?[...a,h.markColumn]:[...a],P=[],k=[],x=new Set([...A.warnings??[],...[...E.values()].flatMap($=>$.warnings)]),M=new za(e.name,jt(n)),L=$=>{M.addRow(),P.push($)};for(let $ of A.rows){let U=h?String($[h.column]??""):"",K=h?{...$,[h.markColumn]:h.defaultValue}:$;L(K),k.push({row:$,path:h?[U]:[]})}let _=Xm(e.name,g),N=_.source.cteName===null?void 0:m.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 C=Jm(_.self,_.selfField,l)??Jm(_.source,_.sourceField,m);if(!C?.semantics||C.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 $ of N.rows){let U=String($[_.sourceField]??""),K=_c(U,C.semantics),j=S.get(K);j?j.push($):S.set(K,[$])}let w=S.has(_c("",C.semantics)),O=0,F=!1;for(;k.length>0;){O++;let $=[];for(let U of k){let K=String(U.row[_.selfField]??"");!F&&K===""&&w&&(x.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${_.selfField} = ${_.sourceField} \u3067\u7B2C ${O} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let j=S.get(_c(K,C.semantics))??[];for(let H of j){let ye=String(H[_.sourceField]??"");Wt("=",K,ye,C.semantics)&&M.addExpansion()}if(j.length===0)continue;let V=new Map(m);V.set(e.name,{rows:[U.row],columns:a,columnMeta:s});let G=await Tt(g,t,n,V,i,!0,!0);for(let H of G.warnings??[])x.add(H);let D=Yc(G,a,s);D.rows.length>0&&M.observeDepth(O);for(let H of D.rows){if(!h){L(H),$.push({row:H,path:[]});continue}let ye=String(H[h.column]??""),Ye=U.path.some(le=>Wt("=",le,ye,I.semantics));L({...H,[h.markColumn]:Ye?h.markValue:h.defaultValue}),Ye||$.push({row:H,path:[...U.path,ye]})}}k=$}let W={type:"SELECT",rows:P,columns:v,rowCount:P.length,warnings:[...x]};return Se.set(W,b),W}async function bp(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&un(e))return Zt(cn(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let u of e.ctes){let d;u.recursiveSpec?d=await Kw(u,t,n,a,r):u.query.type==="SHOW_APPS"?d=await Rg(t):u.query.type==="DESCRIBE"?d=await gg(u.query,t,r):u.query.type==="GENERATE_SERIES"?d=tg(u.query):d=await Tt(u.query,t,n,a,r,!0);for(let c of d.warnings??[])s.add(c);a.set(u.name,{rows:d.rows,columns:d.columns,columnMeta:Se.get(d),...u.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:u.query.columnAlias}:{}})}let l=await Tt(e.query,t,n,a,r,o);return Rp(l,[...s])}function tg(e){let t=Sa(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 Se.set(n,new Map([[e.columnAlias,r]])),n}async function Tt(e,t,n,r,i,o=!1,a=!1){if(a||await Cs(e,t,r,i),e.type==="UNION"){let[u,d]=await Promise.all([Tt(e.left,t,n,r,i,o,!0),Tt(e.right,t,n,r,i,o,!0)]);return qR(u,d,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Le||e.joins.some(u=>u.table.cteName!=null)))return Zt(e,t,n,i,r,o,!1,"DERIVED");let l=await Gw(e,t,n,r,i);return o&&Se.set(l,await Ro(e,l.columns,t,i,r)),l}async function Gw(e,t,n,r,i){await mo(e,t,i,r);let o=Eo.get(e),a=await Dr(e,t,i,r),s=new Set,l=V=>{if(V.alias!==null||V.cteName===null)return V;let G=fe(V);return s.add(G),{...V,alias:G}};e={...e,from:l(e.from),joins:e.joins.map(V=>({...V,table:l(V.table)}))};let u=new Set;for(let V of[e.from,...e.joins.map(G=>G.table)]){let G=fe(V);if(G!==null){if(u.has(G))throw new Error(`ArgumentError: effective alias ${G} is used by multiple tables.`);u.add(G)}}let d=V=>{let G=r.get(V);if(!G)throw new Error(`ArgumentError: materialized source ${V} is not available.`);return G};for(let V of[e.from,...e.joins.map(G=>G.table)])V.cteName!==null&&d(V.cteName);let{resolver:c}=await Wn(e,t,i,r,DR(e)),p=xR(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,m=n.fetchParallel??1;await Promise.all([So(e.where,t,n,i,E,r),So(e.having,t,n,i,E,r),yg(e,t,n,i,E,r)]);let R=we(e.where,c);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vn(R)}).`);let g=await yo(e,t,i,r),y=Ms(e)?(e.orderMode==="KINTONE_NATIVE"?Gi:Ki)({stmt:e,staticMode:"FULL_SCAN",whereCapability:R.capability,whereReasons:R.reasons,orderSemantics:g.semantics,maxRecords:f,hasKlike:_e(e.where)}):null,A=yp(e,n,y),h=A.effectiveOptions,[I,b,v]=await Promise.all([Ys(e,t,i),Sp(e,t,i),WR(e,t,i,r)]),P=Ip(e,b),k=await wo(e,t,i,r,_t(e.having)||gp(e)),x=UR(e,k),M=Hs(e,I)??Ln(e,I);Xl(M);let L=t,_=await Ag(e.columns,t,h,i,E,r),N=Promise.resolve(g);N.catch(()=>{});let C=new Map,S=new Map;if(e.from.cteName!=null){let V=d(e.from.cteName);C.set(e.from.alias,V.rows.map(Qm)),S.set(e.from.alias,V.columns)}else{let V=await Bc(A,()=>ao(e,e.from,L,f,m,!0,h.onLimitReached??"error",E,M.mainCondition,R.capability==="EXACT_PUSHDOWN",a));C.set(e.from.alias,V)}let w=e.joins.map(V=>Bc(A,async()=>{if(V.table.cteName!=null){let G=d(V.table.cteName);C.set(V.table.alias,G.rows.map(Qm)),S.set(V.table.alias,G.columns)}else{let G=V.table.alias?M.joinConditions.get(V.table.alias)??null:null,H=await og(e,V,C,L,f,m,h.onLimitReached??"error",E,i,r,G,a)??await ao(e,V.table,L,f,m,!1,h.onLimitReached??"error",E,G,!0,a);C.set(V.table.alias,H)}}));await Promise.all(w);let{optionOrders:O,sortKinds:F,semantics:W}=await N,$=e.joins.length===0&&e.from.cteName!=null?d(e.from.cteName).columns:void 0,{rows:U,columns:K}=lc({tables:C,stmt:e,scalarCache:_,optionOrders:O,sortKinds:F,orderSemantics:W,fieldTypeResolver:P.row,fieldSemanticsResolver:k,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:x,aggregateSortKindResolver:v,appliedKlikes:M.appliedKlikes,sourceColumns:$,tableColumns:S,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:se(n)}),j=await Np(e,U,K,t,i);return Rp({type:"SELECT",rows:U,columns:j,rowCount:U.length,warnings:[...E]},p)}async function Np(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 HE(o,e.from.subtableCode,()=>Js(e.from.appId,r,i))}function Qm(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function ao(e,t,n,r,i,o,a,s,l=null,u=!0,d,c=""){let p=On(e,t,d),f=g=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${g} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${g} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),pp(n,t.appId),CE(e,t,o))throw new Rt(`\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${g} \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 g=o&&u?Kd(e,t.appId).query:"",y=[l!==null?z(l):"",c].filter(b=>b!==""),A=y.length>1?y.map(b=>`(${b})`).join(" and "):y[0]??"",h=g&&A?`(${g}) and (${A})`:g||A;return(await gt(n.getRecords,t.appId,h,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let E=o&&u&&e.joins.length===0&&e.where!==null&&wp.get(e)?.capability==="EXACT_PUSHDOWN"&&!Gt(e.where)?z(e.where):"",R=(await gt(n.getRecords,t.appId,E,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return um(R,t.subtableCode)}var vr=50;function $w(e){let t=Ce(e);return t!==null?JSON.stringify(t):e}function jc(e){return JSON.stringify(e)}function In(e,t){return JSON.stringify(e.map((n,r)=>t[r]?$w(n):n))}var Zm={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function eR(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 vc(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}: ${Zm[t.condition]} \u2014 ${eR(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${Zm[o]} \u2014 ${eR(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function Bw(e,t){if(t==="DOCUMENT_ONLY")return[vc("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=[vc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(vc("native UPSERT statement/data eligibility",e.statement,t)),n}function Ww(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function Vw(e,t,n){let r=null;if(e.type==="UPSERT")try{r=Mp(e)}catch{}return qs({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:kr.has(e)},fieldInfos:t,rowKeyValues:r})}async function ng(e,t,n){let r=Ww(e);if(!r)return[];let i=await sg(r.appId,t);return Bw(Vw(r,i,n),n.surface)}function qs(e){let t=e.statement.keyFields.length===1?e.statement.keyFields[0]:void 0,n=t===void 0||e.fieldInfos===null?void 0:e.fieldInfos.find(p=>p.code===t),r=n?.fieldType==="SINGLE_LINE_TEXT"||n?.fieldType==="NUMBER",i=e.fieldInfos===null?null:!!(t!==void 0&&n&&r&&n.isUnique===!0),o=!e.statement.hasCheck&&!e.statement.hasApply&&!e.statement.validateOnly&&!e.statement.onErrorSkip&&!(e.statement.kind==="SELECT"&&e.statement.importDerived),a=e.rowKeyValues,s=a===null?null:a.every(p=>p.every(f=>f!=="")),l=null;if(a!==null&&t!==void 0&&r){let p=new Set;l=!0;for(let f of a){let E=In([...f],[n.fieldType==="NUMBER"]);if(p.has(E)){l=!1;break}p.add(E)}}let u=(p,f)=>({state:p===null?"UNKNOWN":p?"PASS":"FAIL",reason:f}),d={1:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"client capability is not applicable on this surface"}: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=p=>{let f=p.find(m=>d[m].state==="FAIL");if(f!==void 0)return{status:"INELIGIBLE",condition:f,reason:d[f].reason};let E=p.filter(m=>d[m].state==="UNKNOWN").map(m=>({condition:m,reason:d[m].reason}));return E.length>0?{status:"UNKNOWN",unknownConditions:E}:{status:"ELIGIBLE"}};return{conditions:d,execution:c([1,2,3,4,5,6]),statement:c([3,4,5,6])}}function bo(e){return"upsertRecords"in e&&typeof e.upsertRecords=="function"}function Cp(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:bo(t),enabled:fR(n),statement:{kind:e.type==="UPSERT"?"VALUES":"SELECT",keyFields:e.keyFields,hasCheck:!!e.checkGroups?.length,hasApply:e.type==="UPSERT"&&!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length),validateOnly:e.validateOnly===!0,onErrorSkip:e.onErrorSkip===!0,importDerived:kr.has(e)},fieldInfos:r,rowKeyValues:i}}var Gs=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function rg(e,t){if(!e||!Array.isArray(e.records)||e.records.length!==t)throw new Gs;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 Gs;i.operation==="INSERT"?n+=1:r+=1}return{insertedCount:n,updatedCount:r}}async function ig(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 ge("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((p,f)=>{let E={};for(let[m,R]of Object.entries(p))m!==t&&(E[m]=R);return{updateKey:{field:t,value:r[l+f][0]},record:E}}),d=await i.upsertRecords({app:e,upsert:!0,records:u}),c=rg(d,u.length);a+=c.insertedCount,s+=c.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function Fr(e,t){let n=e.raw.get(jc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(In(t,e.numericKey))}async function Kr(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,u=t.map(g=>o.get(g)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:u,...a?{snapshots:new Map}:{}},c=(g,y,A)=>{let h=g.get(y);(h===void 0||A>h)&&g.set(y,A)},p=(g,y)=>{c(d.raw,jc(g),y),u.some(Boolean)&&c(d.normalized,In(g,u),y)},f=new Set,E=[],m=new Set;for(let g of n){let y=jc(g);m.has(y)||(m.add(y),g.some(A=>A==="")?E.push(g):f.add(g[0]))}let R=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let g of No([...f],vr)){let y=`${t[0]} in (${g.map(go).join(",")})`,A=await We(r.getRecords,e,y,R,{maxRecords:s,parallel:l});for(let h of A){let I=Number(h.$id?.value);Number.isFinite(I)&&(d.snapshots?.set(I,h),p(t.map(b=>Pp(h[b]?.value)),I))}}for(let g of E){let y=t.map((I,b)=>`${I} = ${go(g[b])}`).join(" and "),A=a?[...new Set(["$id",...a])]:["$id"],h=await We(r.getRecords,e,y,A,{maxRecords:s,parallel:l});if(h.length!==0){for(let I of h){let b=Number(I.$id?.value);Number.isFinite(b)&&d.snapshots?.set(b,I)}p(g,Hw(h))}}return d}function Hw(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 Pp(e){return typeof e=="string"?e:e==null?"":String(e)}function go(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function No(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var Yw=6,Ls=qa*Yw;async function og(e,t,n,r,i,o,a,s,l,u,d=null,c,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,E=t.on.right.tableAlias;if(!f||!E)return null;let m,R,g;if(f===t.table.alias&&E!==t.table.alias)m=E,R=t.on.right.field,g=t.on.left.field;else if(E===t.table.alias&&f!==t.table.alias)m=f,R=t.on.left.field,g=t.on.right.field;else return null;let y=n.get(m);if(!y)return null;let A=[e.from,...e.joins.map(C=>C.table)].find(C=>fe(C)===m),h=(await Q(t.table.appId,r,l)).find(C=>C.code===de(t.table,g)),I=h?Ge(h,t.table.appId):at(g),b;if(A?.cteName!==null&&A?.cteName!==void 0)b=Oe(u?.get(A.cteName),R);else if(A){let C=(await Q(A.appId,r,l)).find(S=>S.code===de(A,R));b=C?Ge(C,A.appId):at(R)}let v=[],P=!1;for(let C of y){let S=C[R]?.value,w=Pp(S);(S==null||w.length===0)&&(P=!0),v.push(w)}let k=Vu({fieldType:I?.fieldType,sourceSemantics:b?.semantics,sourceRowCount:y.length,values:v,hasEmptyValue:P,maxInKeys:Ls});if(k.kind==="EMPTY_SOURCE")return[];if(k.kind==="FALLBACK"){if(k.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let C=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${C} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${Ls} \u4EF6\uFF09\u3002`)}return null}if(k.kind==="RANGE_CANDIDATE")return null;let x=Wu(k,g,go);if(x.length===0)return s.add(`JOIN\u30AD\u30FC\u304C 0 \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${Ls} \u4EF6\uFF09\u3002`),null;let M=On(e,t.table,c),L=C=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${C} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${C} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),pp(r,t.table.appId)},_=[],N=new Set;for(let C of x){let w=[d!==null?z(d):"",p].filter(F=>F!=="").reduce((F,W)=>`(${F}) and (${W})`,C),O=await gt(r.getRecords,t.table.appId,w,M,{parallel:o,maxRecords:i,onLimit:a,onTruncate:L});for(let F of O.records){let W=`${F.$id?.value??""}:${JSON.stringify(F)}`;N.has(W)||(N.add(W),_.push(F))}}return _}var zc=new Map,qc=new Map,Jc=new Map,$s=new Map,Xc=new Map,Qc=new Map;function ag(e){zc.delete(e),qc.delete(e),Jc.delete(e),$s.delete(e),Xc.delete(e),Qc.delete(e)}function qn(e,t,n){return e.get(t)?.get(n)}function Gr(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=qn($s,n,e);if(r)return r;let i=t.getFields(e);return Gr($s,n,e,i),i}async function sg(e,t){let n=qn($s,t,e);return n?await n:null}async function Ut(e,t,n){let r=qn(Qc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Gr(Qc,n,e,i),i}async function Js(e,t,n){let r=qn(Xc,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Gr(Xc,n,e,i),i}async function Op(e,t,n){let r=await Js(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ne(e,t,n){let r=qn(zc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Gr(zc,n,e,o),o}async function Zc(e,t,n){let r=qn(qc,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 Gr(qc,n,e,o),o}async function jw(e,t,n){let r=await Zc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function tR(e,t,n){let r=qn(Jc,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 Gr(Jc,n,e,o),o}function zw(e){let t=[...e.orderBy,...lt(e).flatMap(n=>n.orderBy)];return[...new Set(t.flatMap(n=>n.key.type==="FIELD_NAME"?[n.key.name]:[]))]}async function qw(e,t,n,r){let i=zw(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 m=await Q(E,t,n);return[E,new Map(m.map(R=>[R.code,R]))]}))),l=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let y=s.get(e.from.appId)?.get(E.field);return y?Ge(y,e.from.appId):void 0}let R=o.find(y=>fe(y)===E.tableAlias);if(!R)return;if(R.cteName!==null)return Oe(r?.get(R.cteName),E.field);let g=s.get(R.appId)?.get(de(R,E.field));return g?Ge(g,R.appId):at(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return Oe(r?.get(e.from.cteName),E.field);let R=s.get(e.from.appId)?.get(de(e.from,E.field));return R?Ge(R,e.from.appId):at(E.field)}let m=o.flatMap(R=>{if(R.cteName!==null){let A=r?.get(R.cteName),h=Oe(A,E.field);return h?[h]:[]}let g=s.get(R.appId)?.get(de(R,E.field)),y=g?Ge(g,R.appId):at(E.field);return y?[y]:[]});return m.length>1&&a.add(E.field),m.length===1?m[0]:void 0},u=new Map,d=new Map((e.hiddenWindows??[]).map(E=>[E.alias,Ks(E,l)])),c=E=>E.hiddenWindowRef?d.get(E.field):l(E);for(let E of e.columns){if(!("alias"in E)||!E.alias)continue;let m;if(E.type==="FIELD")m=l($e(E.field));else if(E.type==="ARITH_COL"||E.type==="ARITH_AGG_COL")m=Z("number");else if(E.type==="WINDOW_COL")m=Ks(E,l);else if(E.type==="GROUPING_COL")m=Z("number");else if(E.type==="LITERAL_COL")m=Z("string");else if(E.type==="SCALAR_VALUE_COL"){let R=E.expr;R.type==="STRING_FUNC"?m=Sn(R,c):R.type==="NUMBER"||R.type==="SCALAR_ARITH"?m=Z("number"):R.type==="FIELD"?m=c(R):m=Z("string")}else if(E.type==="STRFUNC_COL")m=Sn(E.expr,c);else if(E.type==="SCALAR_SUBQUERY_COL")m=ot();else if(E.type==="CASE_COL"){let R=E.expr.branches.map(g=>Ur(g.result,c));E.expr.elseResult&&R.push(Ur(E.expr.elseResult,c)),m=zs(R)}else E.type==="AGGREGATE"&&(E.func==="MIN"||E.func==="MAX"||E.func==="MODE"?E.arg.type!=="WILDCARD"&&(m=Tn(E.arg,l)):m=E.func==="GROUP_CONCAT"?Z("string"):Z("number"));m?.semantics&&u.set(E.alias,m.semantics)}let p=new Map;for(let E of lt(e).flatMap(m=>m.orderBy))E.key.type==="FIELD_NAME"&&E.key.aggregateRef&&p.set(E.key.name,E.key.aggregateRef);let f=new Map;for(let E of i){let m=ve(E,u.keys()),R=(m===void 0?void 0:u.get(m))??(p.has(E)?YR(p.get(E),l).semantics:void 0)??l($e(E))?.semantics;if(!R){let y=$e(E);y.tableAlias===null&&a.has(y.field)&&f.set(E,ne({fieldType:"KSQL_AMBIGUOUS"}));continue}let g=R;if(R.fieldType==="STATUS"&&R.source&&e.orderMode!=="KINTONE_NATIVE"){let y=await Js(R.source.appId,t,n);y.enable&&y.states!==null&&(g={...R,optionOrder:new Map(y.states.map(A=>[A.name,A.index]))})}f.set(E,g)}return f}async function yo(e,t,n,r){let i=lt(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([Jw(e,t,n),Xw(e,t,n),qw(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function Jw(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 Zc(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 Zc(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}async function Xw(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 tR(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 tR(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}function Lp(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 Qw=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Zw(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||Qw.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function Ue(e,t,n,r){let i=await Q(e,n,r);return Zw(e,t,i),i}async function He(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?Ut(e,r,i):void 0}function ut(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??"",d=qe(u,l,r);if(!d.ok)throw new Error(`DmlValidationError: ${d.code} ${d.message} (row=${a+1}, field=${s})`);let c=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(u)&&u.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:c?u:d.value}}})}async function eb(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=await _i({statement:e,fieldInfos:o,dmlMaxRows:ct(n.dmlMaxRows,"dmlMaxRows",en),dmlMaxSubtableRows:ct(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),statementNumber:i,loadNumberPrecision:()=>Ut(e.appId,t,r)});return Ob(e,a,o)}async function tb(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await lg(e,t,n,r,i);return _b(e,a,o)}async function lg(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=new Map(o.map(R=>[R.code,R.fieldType])),s=Mp(e),l=new Set;for(let R of s){let g=In(R,e.keyFields.map(y=>a.get(y)==="NUMBER"));if(l.has(g))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(g)}let u=await Kr(e.appId,e.keyFields,s,t,n,a),d=s.map(R=>Fr(u,R)),c=new Map,p=[...new Set(d.filter(R=>R!==void 0))],f=["$id","$revision",...o.filter(R=>!R.inSubtable&&R.fieldType!=="FILE").map(R=>R.code)];for(let R of No(p,100)){let g=await t.getRecords({app:e.appId,query:`$id in (${R.join(",")}) limit 500`,fields:[...new Set(f)]});for(let y of g.records){let A=Number(y.$id?.value);Number.isSafeInteger(A)&&A>0&&c.set(A,y)}}let E=d.map((R,g)=>({sourceRowIndex:g,...R===void 0?{}:{targetId:R,snapshot:c.get(R)}})),m=await hE({statement:e,matches:E,fieldInfos:o,dmlMaxRows:ct(n.dmlMaxRows,"dmlMaxRows",en),dmlMaxSubtableRows:ct(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),statementNumber:i,loadNumberPrecision:()=>Ut(e.appId,t,r)});return{fieldInfos:o,prepared:m}}async function nb(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await Ue(e.appId,e.fields,t,r),o=await _i({statement:e,fieldInfos:i,dmlMaxRows:ct(n.dmlMaxRows,"dmlMaxRows",en),dmlMaxSubtableRows:ct(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),loadNumberPrecision:()=>Ut(e.appId,t,r)}),a=Ku(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Xs(a),applyDiagnostic:a}))throw new ge("INSERT",o.guards.parentRows);let s=await wE(o,t,a);return{...s,diagnostic:tt(a,s)}}async function rb(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await lg(e,t,n,r,1),o=Gu(i);if(n.confirm){let s=Xs(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new ge("UPDATE",i.guards.parentRows)}let a=await bE(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:tt(o,a)}}function ib(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 Xs(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=ib(n?Is(n):[],r?Is(r):[]),a=ob(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),u=o.reduce((p,f)=>p+f.appendRows,0),d=o.reduce((p,f)=>p+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:d,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=Is(n),f=Is(r);return{...c,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,m)=>E+(m.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:p.reduce((E,m)=>E+m.appendRows,0),tables:p},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(E=>E.targetKind==="SUBTABLE").reduce((E,m)=>E+(m.changedCount??0),0),addedSubtableRows:f.reduce((E,m)=>E+m.appendRows,0),tables:f,deletedRows:f.reduce((E,m)=>E+m.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return c}function Is(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=Hn(t,"APPEND"),r=Hn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function Hn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function ob(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:Hn(n,"ADD"),removedValues:Hn(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 _p(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return eb(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return tb(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await fg(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await vp(e,t,n,r,i,o)).result}var Bs=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function vp(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 d=e.type==="UPDATE"?e.assignments.map(N=>N.field):e.fields,c=await Ue(e.appId,d,t,r);e.type==="UPDATE"&&await hn(e,t,r);let p=new Map(c.map(N=>[N.code,N])),f=await He(e.appId,d,c,t,r),E=Pt(c,u),m=pm(E),R=(await ab(e,l,t,n,r,i,p,e.type==="UPDATE"?m:void 0)).sort((N,C)=>N.rowNumber-C.rowNumber),g=R.filter(N=>N.mode==="update"),y=e.type==="UPDATE"?lb:e.type.startsWith("UPSERT")?N=>ub(N,t,n.maxRecords??1e4):void 0,A=n.loadUpdateModeSnapshots??y,h=g.length>0&&A!==void 0,I=new Map;if(h){Lu(g,d,c);let N=await A({appId:e.appId,candidates:g,fields:m}),C=new Map;for(let S of g){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 O=dm(w,S.record??{});C.set(S.rowNumber,O)}f===void 0&&[...C.values()].some(S=>xn(S,E))&&(f=await Ut(e.appId,t,r));for(let S of g){let w=C.get(S.rowNumber);if(!w)throw new Error(`InternalError: validation post-image is missing for row ${S.rowNumber}.`);I.set(S.rowNumber,Un(w,E,f,o,S.rowNumber,l))}}let b=_u(R,l,u,d,c,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!h}),{errors:v,invalidRows:P,invalidRowNumbers:k}=b;if(h){let N=new Map(b.candidateResults.map(C=>[C.rowNumber,C]));v=[],k=new Set;for(let C of R){let S=N.get(C.rowNumber);if(!S)throw new Error(`InternalError: validation detail is missing for row ${C.rowNumber}.`);if(C.mode==="create"){let F=[...S.preErrors,...S.builtInErrors,...S.checkErrors];v.push(...F),F.length>0&&k.add(C.rowNumber);continue}let w=I.get(C.rowNumber);if(!w)throw new Error(`InternalError: prepared post-image validation is missing for row ${C.rowNumber}.`);let O=fm({rowNumber:C.rowNumber,setFields:d,normalizedPostImage:w.normalizedRecord,preErrors:S.preErrors,postImageErrors:w.errors,checkErrors:S.checkErrors});C.record=O.writeRecord,v.push(...O.errors);for(let F of O.invalidRowNumbers)k.add(F)}P=k.size}let x=[...u,...Tr],M={type:"VALIDATION",operation:l,validatedRows:R.length,validRows:R.length-P,invalidRows:P,errorCount:v.length,columns:x,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},L=new Map;for(let N of u){if(N==="$id"){L.set(N,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ne({fieldType:"RECORD_NUMBER"})});continue}let C=p.get(N);C&&L.set(N,Ge(C,e.appId))}let _=new Set(["$err_statement","$err_row"]);for(let N of Tr)L.set(N,Z(_.has(N)?"number":"string"));return zn.set(M,L),{result:M,candidates:R,invalidRowNumbers:k,columnMeta:L}}async function ep(e,t,n,r,i,o){let a=await vp(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");xt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??st,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new Bs(`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 ge(E,u.length)}let d={affectedRows:u.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let E=[];for(let m=0;m<u.length;m+=100){let R=await t.postRecords({app:e.appId,records:u.slice(m,m+100).map(g=>g.record)});E.push(R.ids)}return{type:"INSERT",createdIds:E,insertedCount:E.flat().length,...d}}if(e.type==="UPDATE"){let E=u.map(m=>{if(m.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:m.targetId,record:m.record}});for(let m=0;m<E.length;m+=100)await t.putRecords({app:e.appId,records:E.slice(m,m+100)});return{type:"UPDATE",updatedCount:E.length,...d}}let c=u.filter(E=>E.mode==="create"),p=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 m=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(R=>R.record)});f+=m.ids.length}for(let E=0;E<p.length;E+=100)await t.putRecords({app:e.appId,records:p.slice(E,E+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...d}}async function ab(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return ug(e,n,r,i,o,s);let l,u,d,c,p;if(e.type==="INSERT"||e.type==="UPSERT")nR(e,e.fields),p=new Map(e.fields.map(h=>[h,a.get(h)?.fieldType??""])),jn(e,p),l=e.values.map(h=>h.map((I,b)=>I.type==="CASE_VALUE"?Ht(I.expr,{},a.get(e.fields[b])?.fieldType,se(r)):I));else{let h=await Qs.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 xe("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");nR(e,h.columns),u=h.rows,d=h.importPresence,c=h.importRowErrors;let b=h.columnMeta;p=new Map(h.columns.map(v=>{let P=b?.get(v),k=P?.fieldType??(P?.semantics?.compareMode==="number"||P?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,k]})),jn(e,p),l=h.rows.map(v=>h.columns.map(P=>v[P]??""))}let f=l.map((h,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((b,v)=>d&&!d[I]?.has(b)?[]:[[b,h[v]]])),preErrors:[...c?.[I]??[]],record:{},evaluationRow:u?.[I]??Object.fromEntries(e.fields.map((b,v)=>[b,et(h[v])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let h of e.keyFields)if(!e.fields.includes(h))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${h}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let E=new Map([...a].map(([h,I])=>[h,I.fieldType])),m=f.map(h=>e.keyFields.map(I=>et(h.payload.get(I)))),R=e.keyFields.map(h=>E.get(h)==="NUMBER"),g=new Map;for(let h of m){let I=In(h,R);g.set(I,(g.get(I)??0)+1)}let y=kr.has(e);if(y&&[...g.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 Kr(e.appId,e.keyFields,m,n,r,E);return f.forEach((h,I)=>{let b=m[I],v=Fr(A,b);h.mode=v===void 0?"create":"update",v!==void 0&&(h.targetId=v),e.keyFields.forEach((P,k)=>{b[k]===""&&h.preErrors.push({field:P,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${P} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(g.get(In(b,R))??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 Dp(e){return e.checkGroups?Ar(e.checkGroups):[]}function nR(e,t){let n=new Set(t);for(let r of Dp(e)){if(r.tableAlias!==null)throw xe(`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 xe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var sb=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function jn(e,t){if(e.checkGroups)for(let n of $f(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(sb.has(i??""))throw xe(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function ug(e,t,n,r,i,o){if(e.from)return pb(e,e.from,t,n,r,i,o);await hg(e.assignments,t,n,r);let a=await Ne(e.appId,t,r),s=cg(e,a);jn(e,tp(a,e.appId));let l,u=new Map,d=new Map;if(xa(e)){let c=fu(e),p=[...new Set([...c.fields,...s,...o??[]])],f=await gt(t.getRecords,c.app,c.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=_s(f.records),u=d,l=mu(e,f.records,a,se(n)).flatMap(E=>E.records)}else{let c=Ti(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await gt(t.getRecords,c.app,c.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=_s(f.records),u=d,l=Ii(e,[...u.keys()],a).flatMap(E=>E.records)}else if(o){let p=await gt(t.getRecords,c.app,c.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=_s(p.records),l=Ii(e,[...d.keys()],a).flatMap(f=>f.records)}else{let p=await Mi(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Ii(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((c,p)=>c.id-p.id).map((c,p)=>({rowNumber:p+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:d.get(c.id),evaluationRow:cb(u.get(c.id),e.appId),evaluationFieldTypes:tp(a,e.appId)}))}function _s(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 lb(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 ub(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 Rt(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${n} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);let i=new Set(r),o=new Map;for(let a of No(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let u=l.$id?.value,d=Number(u);if(!Number.isSafeInteger(d)||d<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(u)}.`);if(!i.has(d))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${d}.`);if(o.has(d))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${d}.`);o.set(d,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function cg(e,t){if(e.from)return[];let n=new Set;for(let r of Dp(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw xe(`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 xe(`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 cb(e,t){if(!e)return{};let n=Jt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function tp(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function pb(e,t,n,r,i,o,a){let s=await xg(e,t,n,i,o);jn(e,s.evaluationTypes);let l=await pg(e,t,n,r,i,o,a),u=await Ne(e.appId,n,i),d=gu(e,l,u,se(r)).flatMap(f=>f.records),c=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?_s(l.map(f=>f.target)):new Map;return d.sort((f,E)=>f.id-E.id).map((f,E)=>({rowNumber:E+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(m=>[m.field,f.record[m.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:p.get(f.id),evaluationRow:gN(c.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var db=vr,fb=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function pg(e,t,n,r,i,o,a){if(t.cteName!==null){let I=o?.get(t.cteName),b=P=>ve(P,I?.columns??[])??P;t.joinKeyField=b(t.joinKeyField);for(let P of e.assignments)P.value.type==="SOURCE_FIELD"&&P.value.alias===t.alias&&(P.value.field=b(P.value.field));let v=P=>{if(P===null||typeof P!="object")return;if(Array.isArray(P)){P.forEach(v);return}let k=P;k.type==="FIELD"&&k.tableAlias===t.alias&&typeof k.field=="string"&&(k.field=b(k.field)),Object.values(k).forEach(v)};v(e.checkGroups)}let s=await Eb(e,t,n,i),l=await xg(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))],d=[...new Set([t.joinKeyField,...u])],c=await mb(t,d,u,n,r,i,o),p=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=rR(I[t.joinKeyField],s,"source");if(p.has(b))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${b}.`);p.set(b,I),f.set(b,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let E=r.maxRecords??1e4,m=[...new Set([...Db(e),...l.targetFields,...a??[]])],R=t.targetFilter===null?"":Ti({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,g=[],y=new Set,A=0;for(let I of No([...f.values()],db)){let b=`${t.targetJoinField} in (${I.map(go).join(",")})`,v=R?`(${b}) and (${R})`:b,P=await gt(n.getRecords,e.appId,v,m,{maxRecords:E,parallel:r.fetchParallel??1,onLimit:"error"});if(A+=P.records.length,A>E)throw new Rt(`\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 k of P.records){let x=k.$id?.value;if(typeof x!="string"||x==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(x)||(y.add(x),g.push(k))}}let h=[];for(let I of g){let b=I[t.targetJoinField]?.value,v=rR(b,s,"target");if(v===null)continue;let P=p.get(v);P!==void 0&&h.push({target:I,source:P})}return h}async function Eb(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 mb(e,t,n,r,i,o,a){if(e.cteName!==null){let d=a?.get(e.cteName);if(!d)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let c of t)if(Mr(d,c)===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${c} does not exist.`);return d.rows}let s=await Ne(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let d of n){if(d!=="$id"&&!s.has(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);let c=d==="$id"?"RECORD_NUMBER":s.get(d);if(fb.has(c??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${c} (${d}).`)}return(await gt(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(d=>Jt(d,null))}function rR(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=Ce(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function Co(e,t,n,r,i){let o=await vp(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 ge(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let c=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(E=>E.record)});c.push(f.ids)}return{type:"INSERT",createdIds:c,insertedCount:c.flat().length}}if(e.type==="UPDATE"){let c=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<c.length;p+=100)await t.putRecords({app:e.appId,records:c.slice(p,p+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})),d=0;for(let c=0;c<l.length;c+=100){let p=await t.postRecords({app:e.appId,records:l.slice(c,c+100).map(f=>f.record)});d+=p.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:d,updatedCount:u.length}}async function Rb(e,t,n,r){if(e.applyBlocks?.length)return nb(e,t,n,r);if(e.checkGroups?.length)return Co(e,t,n,r);if(e.subtableCode)return Mb(e,t,n,r);let i=await Ue(e.appId,e.fields,t,r),o=await He(e.appId,e.fields,i,t,r),a=await Ne(e.appId,t,r),s=Si(e,a,se(n));ut(s.flatMap(u=>u.records),e.fields,i,o);let l=[];for(let u of s){let d=await t.postRecords(u);l.push(d.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function gb(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Le},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function dg(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=hm(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 U=new Set(e.targets.filter(K=>K.kind==="SUBTABLE").map(K=>K.subtableCode));if(e.replaceSubtables.some(K=>!U.has(K)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let K of e.targets.filter(j=>j.kind==="SUBTABLE"))if(!K.rowIdSourceHeader||!e.replaceSubtables.includes(K.subtableCode))throw new Error(`ArgumentError: CSV subtable ${K.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=e.targets,p=await Q(e.appId,t,r),f=c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children),E=p.some(U=>f.includes(U.code)&&U.fieldType==="NUMBER")?await Ut(e.appId,t,r):void 0,m=await ys(o,new Map),R=e.source.kind==="JSON"?wm(e.source,m,c,n.maxRecords??1e4):bm(e.source,m,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader);await cp(n,e.source,R.receipt);let g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Om(R,c,p,E,g);if(e.source.kind==="CSV")return yb(e,R,y,p,t,n,i);Ac(y,e.rejectLimit);let A=[...new Set(c.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children))],h=Tc(y.errors,A),I=[...A,...Sc],b=y.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-b,invalid:b,mutationCandidates:y.parents.filter(U=>U.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},P={type:"VALIDATION",operation:g,validatedRows:y.parents.length,validRows:y.parents.length-b,invalidRows:b,errorCount:h.length,columns:I,errors:h,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&xt(i,e.validationErrorTable,I,h,n.tempTableMaxRows??st,new Map),e.validateOnly)return P;if(_m(R),y.errors.length>0&&!e.onErrorSkip){let U=y.errors[0];throw new Error(`DmlValidationError: ${U.code} ${U.message} (row=${U.parentRow}, field=${U.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");xt(i,e.errorTable,I,h,n.tempTableMaxRows??st,new Map)}let k=y.parents.filter(U=>U.valid),x=new Map(p.map(U=>[U.code,U.fieldType])),M=k.map(()=>{});if(e.keyFields){for(let G of e.keyFields)if(!e.fields.includes(G))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${G}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let U=e.keyFields.map(G=>x.get(G)==="NUMBER"),K=new Set,j=k.map(G=>e.keyFields.map(D=>String(G.top[D]?.value??"")));for(let G of j){let D=In(G,U);if(K.has(D))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");K.add(D)}let V=await Kr(e.appId,e.keyFields,j,t,n,x);j.forEach((G,D)=>{M[D]=Fr(V,G)})}let L=c.filter(U=>U.kind==="SUBTABLE").map(U=>U.subtableCode),_=new Map,N=M.filter(U=>U!==void 0);for(let U of No([...new Set(N)],100)){let K=await t.getRecords({app:e.appId,query:`$id in (${U.join(",")}) limit 500`,fields:["$id","$revision",...L]});for(let j of K.records){let V=Number(j.$id?.value),G=Number(j.$revision?.value);Number.isFinite(V)&&_.set(V,{id:V,...Number.isFinite(G)?{revision:G}:{},record:j})}}let C=vm(k,M,_),S={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:C.length,insertedParents:C.filter(U=>U.mode==="INSERT").length,updatedParents:C.filter(U=>U.mode==="UPDATE").length,hasDeletes:C.some(U=>U.tables.some(K=>K.deleteRows>0)),parents:C.map(U=>({parentRow:U.parentRow,mode:U.mode,...U.targetId===void 0?{}:{targetId:U.targetId},tables:U.tables}))};if(C.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(C.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:S}))throw new ge(e.keyFields?"UPDATE":"INSERT",C.length)}let w=U=>new Map(Object.entries(U).map(([K,j])=>[K,j.value])),O=U=>Lm(w(U.top),new Map([...U.subtables].map(([K,j])=>[K,j.map(V=>({values:w(V)}))]))),F=C.filter(U=>U.mode==="INSERT"),W=C.filter(U=>U.mode==="UPDATE"),$=[];for(let U=0;U<F.length;U+=100){let K=await t.postRecords({app:e.appId,records:F.slice(U,U+100).map(O)});$.push(K.ids)}for(let U=0;U<W.length;U+=100)await t.putRecords({app:e.appId,records:W.slice(U,U+100).map(K=>({id:K.targetId,...K.revision===void 0?{}:{revision:K.revision},record:O(K)}))});return e.keyFields?{type:"UPSERT",insertedCount:$.flat().length,updatedCount:W.length,affectedRows:C.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:S}:{type:"INSERT",createdIds:$,insertedCount:$.flat().length,affectedRows:C.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:S}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return hb(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:gb(),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};kr.set(s,l);let u=c=>{l.audit&&Object.assign(c,{importAudit:l.audit});let p=Us.get(s);return p?.length&&Us.set(e,p),c};if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let c=await _p(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&xt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??st,zn.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",ep(s,t,n,r,i,1));return u(c)}let d=await(s.type==="UPSERT_SELECT"?Kp(s,t,n,r,i):Up(s,t,n,r,i));return u(d)}async function yb(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Dm(t.records);let s=t.records.map(_=>_.recordNumberSourceValue??""),l=bc(s,e.recordNumberSourceHeader),u=[...e.replaceSubtables],d=[...new Set(r.filter(_=>!_.inSubtable&&_.fieldType==="SUBTABLE").map(_=>_.code))],c=await We(i.getRecords,e.appId,"",["$id","$revision",...d],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let _ of c){let N=Number(_.$id?.value),C=Number(_.$revision?.value);if(Number.isFinite(N)){p.set(N,{id:N,...Number.isFinite(C)?{revision:C}:{},record:_});for(let S of d){let w=_[S]?.value;if(Array.isArray(w)){for(let O of w)if(O.id){let F=f.get(O.id)??[];F.push({parentId:N,table:S}),f.set(O.id,F)}}}}}let E=l.normalized.map(_=>_===null?void 0:Number(_)),m=n.parents.map((_,N)=>{let C=[..._.errors];for(let w of l.errors[N])C.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&&!p.has(S)&&C.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:C.length===0,errors:C}}),R=xm(t.records,m,E,p,f),g=R.flatMap(_=>[..._.errors]),y=new Set(R.filter(_=>!_.valid).map(_=>_.parentRow)),A={...n,parents:m,errors:g,invalidParentRows:y};Ac(A,e.rejectLimit);let h=R.filter(_=>_.valid),I=R.flatMap(_=>_.tables),b=(_,N)=>I.filter(C=>C.table===_).reduce((C,S)=>C+Number(S[N]),0),v=Object.fromEntries(u.map(_=>[_,{existingRows:b(_,"existingRows"),inputRows:b(_,"inputRows"),updateRows:b(_,"updateRows"),addRows:b(_,"addRows"),deleteRows:b(_,"deleteRows"),rowIdNotFound:b(_,"rowIdNotFound")}])),P={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:y.size,parents:h.map(_=>({parentRow:_.parentRow,mode:"UPDATE",targetId:_.targetId,tables:_.tables}))},k=[...new Set(e.targets.flatMap(_=>_.kind==="FIELD"?[_.field]:_.children))],x=Tc(g,k),M=[...k,...Sc];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&xt(a,e.validationErrorTable,M,x,o.tempTableMaxRows??st,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-y.size,invalidRows:y.size,errorCount:x.length,columns:M,errors:x,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:m.length,valid:h.length,invalid:y.size,mutationCandidates:h.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:P.rowIdNotFound,writesKintone:!1}}}if(g.length&&!e.onErrorSkip){let _=g[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.");xt(a,e.errorTable,M,x,o.tempTableMaxRows??st,new Map)}if(h.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(h.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:P}))throw new ge("UPDATE",h.length)}let L=_=>new Map(Object.entries(_).map(([N,C])=>[N,C.value]));for(let _ of h){let N=Ic(L(_.top),new Map([..._.subtables].map(([C,S])=>[C,S.map(w=>({...w.rowId?{rowId:w.rowId}:{},values:L(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:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}async function hb(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 Ue(e.appId,e.fields,n,i),s=await He(e.appId,e.fields,a,n,i),l=await ys(t,new Map),u=gc(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader);await cp(r,e.source,u.receipt);let d=u.recordNumberSourceValues;if(!d)throw new Error("InternalError: record-number source values were not materialized.");let c=bc(d,e.recordNumberSourceHeader),p=new Set,f=[...new Set(c.normalized.filter(P=>P!==null))];for(let P=0;P<f.length;P+=100){let k=f.slice(P,P+100),x=await n.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id"]});for(let M of x.records){let L=M.$id?.value;typeof L=="string"&&L!==""&&p.add(L.replace(/^0+(?=\d)/,""))}}let E=new Map(a.map(P=>[P.code,P])),m=new Map(e.fields.map(P=>[P,E.get(P)?.fieldType??"SINGLE_LINE_TEXT"])),R=u.rows.map((P,k)=>{let x=c.normalized[k],M=[...u.importRowErrors?.[k]??[],...c.errors[k]];return x!==null&&!p.has(x)&&M.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${x} does not exist in APP${e.appId}`}),{rowNumber:k+1,operation:"UPDATE",mode:"update",...x!==null&&p.has(x)?{targetId:Number(x)}:{},payload:new Map([[e.recordNumberSourceHeader,d[k]],...e.fields.map(L=>[L,P[L]??""])]),preErrors:M,record:{},evaluationRow:P,evaluationFieldTypes:m}}),g=[e.recordNumberSourceHeader,...e.fields],y=_u(R,"UPDATE",g,e.fields,a,1,s,e.checkGroups??[],!1),A=[...g,...Tr],h={type:"VALIDATION",operation:"UPDATE",validatedRows:R.length,validRows:R.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:A,errors:y.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&&xt(o,e.validationErrorTable,A,y.errors,r.tempTableMaxRows??st,new Map),h}if(!e.onErrorSkip&&y.invalidRows>0){let P=y.errors[0];throw new Error(`DmlValidationError: ${P.$err_code} ${P.$err_message} (row=${P.$err_row}, field=${P.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(xt(o,e.errorTable,A,y.errors,r.tempTableMaxRows??st,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new Bs(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,h)}let I=R.filter(P=>!y.invalidRowNumbers.has(P.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new ge("UPDATE",I.length);let b=I.map(P=>({id:P.targetId,record:P.record}));for(let P=0;P<b.length;P+=100)await n.putRecords({app:e.appId,records:b.slice(P,P+100)});let v={type:"UPDATE",updatedCount:b.length,...e.onErrorSkip?{affectedRows:b.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:u.importAudit}),v}async function Ab(e,t,n,r,i,o){let a=kr.get(e);if(!a){let m=i&&i.size>0?await Tt(e.select,t,n,i,r,!0):await Zt(e.select,t,n,r,void 0,!0);return Mm(e,m.warnings),{rows:m.rows,columns:m.columns,columnMeta:Se.get(m)}}let s=await ys(a.handle,a.cache),l=n.maxRecords??1e4,u=new Map((o??[]).map(m=>[m.code,m])),d=e.fields.map(m=>({code:m,fieldType:u.get(m)?.fieldType??"SINGLE_LINE_TEXT"})),c=a.source.kind==="JSON"?Rc(a.source,s,d,l):gc(a.source,s,l,e.fields,o);if(await cp(n,a.source,c.receipt),a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let p=Um(a.source.projection),f=new Map(i??[]);f.set(wc,c);let E=await Tt(p,t,{...n,onLimitReached:"error"},f,r,!0);return Mm(e,E.warnings),{rows:E.rows,columns:E.columns,columnMeta:Se.get(E)}}var Qs={materialize:Ab};function xp(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 Up(e,t,n,r,i){if(e.checkGroups?.length)return Co(e,t,n,r,i);let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Qs.materialize(e,t,n,r,i,o),{rows:l,columns:u}=s;if(xp(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 ge("INSERT",l.length);let d=await Ne(e.appId,t,r),c=l.map((f,E)=>{let m={};return e.fields.forEach((R,g)=>{if(s.importPresence&&!s.importPresence[E]?.has(R))return;let y=f[u[g]]??"";m[R]={value:Lp(y,d.get(R))}}),m});c.forEach(f=>ut([f],e.fields.filter(E=>E in f),o,a));let p=[];for(let f=0;f<c.length;f+=100){let E=c.slice(f,f+100),m=await t.postRecords({app:e.appId,records:E});p.push(m.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function np(e,t,n,r,i){if(e.applyBlocks?.length)return fg(e,t,n,r);if(e.checkGroups?.length&&Je(e.where)){let E=await Ue(e.appId,e.assignments.map(R=>R.field),t,r);await He(e.appId,e.assignments.map(R=>R.field),E,t,r);let m=await Ne(e.appId,t,r);return cg(e,m),jn(e,tp(m,e.appId)),await hn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return Co(e,t,n,r,i);if(e.subtableCode)return await hn(e,t,r),kb(e,t,n,r);let o=await Ue(e.appId,e.assignments.map(E=>E.field),t,r),a=e.assignments.map(E=>E.field),s=await He(e.appId,a,o,t,r);if(await hn(e,t,r),Je(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return vb(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await hg(e.assignments,t,n,r);let u=await Ne(e.appId,t,r);if(xa(e)){let E=fu(e),R=(await gt(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,g=mu(e,R,u,se(n));if(ut(g.flatMap(y=>y.records.map(A=>A.record)),a,o,s),n.confirm&&!await n.confirm(R.length,"UPDATE"))throw new ge("UPDATE",R.length);for(let y of g)await t.putRecords(y);return{type:"UPDATE",updatedCount:R.length}}let d=Ti(e),p=(await Mi(t.getRecords,d.app,d.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=Ii(e,p,u);if(ut(f.flatMap(E=>E.records.map(m=>m.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new ge("UPDATE",p.length);for(let E of f)await t.putRecords(E);return{type:"UPDATE",updatedCount:p.length}}async function fg(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!$t(e.where))return Sb(e,t,n,r,i);let o=await Q(e.appId,t,r),a=Yt(e,o),s=Ma(e,o),l=wu(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 d=Number(u.records[0].$id?.value);if(d!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${d} does not match requested $id ${l}.`);Ga(u.records[0]);let c=rE({statement:e,snapshot:u.records[0],fieldInfos:o,metadata:a,evaluationContext:se(n)}),p=Pt(o,e.assignments.map(I=>I.field)),f=xn(c.postImage,p)?await Ut(e.appId,t,r):void 0,E=Un(c.postImage,p,f,i);if(!e.validateOnly&&E.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:E.columns,errors:E.errors})}`);let m=ct(n.dmlMaxRows,"dmlMaxRows",en),R=ct(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),g=c.parentRows>m||c.changedSubtableRows>R;if(e.validateOnly){let I=Di({plans:[c],records:Ci(c).records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:m,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:R,wouldExceed:g}}),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:ho(I.branches[0]),guards:Ao(I.branches[0]),deletedRows:{total:c.tables.reduce((v,P)=>v+P.deletedRows,0),parentRows:c.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:I};return zn.set(b,Zs(E.columns,o,e.appId)),b}if(c.parentRows>m)throw new Error(`ArgumentError: APPLY parent rows (${c.parentRows}) exceed dmlMaxRows (${m}).`);if(c.changedSubtableRows>R)throw new Error(`ArgumentError: APPLY changed subtable rows (${c.changedSubtableRows}) exceed dmlMaxSubtableRows (${R}).`);let y=Fa(c,E.normalizedRecord),A=Ci(y),h=Di({plans:[y],records:A.records,validations:[],guards:{revisionRequired:!0,parentRows:c.parentRows,dmlMaxRows:m,subtableRows:c.changedSubtableRows,dmlMaxSubtableRows:R,wouldExceed:g}});if(n.confirm){let I=Xs(h,!1);if(!await n.confirm(c.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:h}))throw new ge("UPDATE",c.parentRows)}return await t.putRecords(A),{type:"UPDATE",updatedCount:c.parentRows,diagnostic:tt(h,{successfulChunks:1,successfulParents:c.parentRows})}}async function Sb(e,t,n,r,i){let o=ct(n.dmlMaxRows,"dmlMaxRows",en),a=ct(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),s=await Q(e.appId,t,r),l=Yt(e,s),u;if(Ws(e))u=await bb(e,t,n,s,r);else{let f=Ma(e,s),E=Ti(e).query,m=o+1;u=await We(t.getRecords,e.appId,E,[...f],{pageSize:Math.min(500,m),parallel:n.fetchParallel??1,maxRecords:m,stopAfter:m,onLimit:"error"})}if(!e.validateOnly&&u.length>o)throw new Error(`ArgumentError: APPLY parent rows (${u.length}) exceed dmlMaxRows (${o}).`);let d=await Va({statement:e,snapshots:u,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>Ut(e.appId,t,r)});if(e.validateOnly)return Lb(e,d,s);nf("phase15b",e);let c=Di(d);if(n.confirm){let f=Xs(c);if(!await n.confirm(d.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:c}))throw new ge("UPDATE",d.guards.parentRows)}let p=await IE(d,t,c);return{...p,diagnostic:tt(c,p)}}function Ws(e){return(e.applyBlocks?.length??0)>0&&!$t(e.where)&&(on(e.where)||_e(e.where))}function Tb(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&Ws(t)&&_e(t.where)}var Ib=`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
17
17
  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
18
- 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 yb(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${gb}`)}async function hb(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=Vu(e.where,{fieldTypes:s,fieldOptions:l});yb(u);let f=u.prefilter===null?"":z(u.prefilter),c=new Set(Oa(e,r));for(let E of Ab(e.where))c.add(E);let p=await Sb(e.appId,e.where,a,t,i);return(await Ve(t.getRecords,e.appId,f,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:jt(E,null)})).filter(({row:E})=>ce(e.where,E,p.fieldTypeResolver,u.appliedKlikes,p.fieldSemanticsResolver,ae(n))).map(({snapshot:E})=>E)}function Ab(e){return lp(e)}async function Sb(e,t,n,r,i){let s=[...Tb(t)].some(f=>n.get(f)?.fieldType==="STATUS")?await Tp(e,r,i):void 0;return{fieldTypeResolver:f=>f.field==="$id"?"NUMBER":n.get(f.field)?.fieldType,fieldSemanticsResolver:f=>{if(f.field==="$id")return ir(te({fieldType:"__ID__"}),e,"$id");let c=n.get(f.field);if(!c)return;let p=c.semantics??te(c),d=c.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return ir(d,e,c.code)}}}function Tb(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 Ib(e,t,n){let r=t.validations.flatMap(f=>f.errors),i=t.validations.reduce((f,c)=>f+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Ct(n,e.fields).payloadFields,...wi],a=t.guards.parentRows,s=vu(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:po(l),guards:fo(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return Hn.set(u,Ws(o,n,e.appId)),u}function wb(e,t,n){let r=t.validations,i=r.flatMap(u=>u.errors),o=r.reduce((u,f)=>u+(f.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Ct(n,e.assignments.map(u=>u.field)).payloadFields,...wi],s=Ci(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:po(s.branches[0]),guards:fo(s.branches[0]),deletedRows:{total:t.plans.reduce((u,f)=>u+f.tables.reduce((c,p)=>c+p.deletedRows,0),0),parentRows:t.plans.filter(u=>u.tables.some(f=>f.deletedRows>0)).length},diagnostic:s};return Hn.set(l,Ws(a,n,e.appId)),l}function bb(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??[...Ct(n,e.fields).payloadFields,...wi],l=Du(t),u=l.branches.find(E=>E.branch==="insert"),f=l.branches.find(E=>E.branch==="update"),c=po(u),p=po(f),d={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,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:fo(u)},update:{apply:p,guards:fo(f)}},deletedRows:{total:t.update.plans.reduce((E,m)=>E+m.tables.reduce((R,g)=>R+g.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(m=>m.deletedRows>0)).length},diagnostic:l};return Hn.set(d,Ws([...s],n,e.appId)),d}function po(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:Gn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:Gn(t,"ADD"),removedValues:Gn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function fo(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 Xt=100,Me=500;function ut(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 Ws(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:te({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,Ge(s,n));continue}o.set(a,re(i.has(a)?"number":"string"))}return o}async function Nb(e,t,n,r,i,o){let a=await ag(e,t,n,r,i,o),s=await Ne(e.appId,n,i),l=cu(e,a,s,ae(r)),u=e.assignments.map(p=>p.field),f=await Q(e.appId,n,i),c=await He(e.appId,u,f,n,i);if(lt(l.flatMap(p=>p.records.map(d=>d.record)),u,f,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new ge("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function Cb(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 Pb(e,t,n,r){if(await mn(e,t,r),Je(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return vb(e,t,n,r);let i=du(e),a=(await Li(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 ge("DELETE",a.length);let s=Hf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function ug(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"?Vt(s.expr,{},t.get(o),ae(n)):Nt(s,t.get(o))}}),i})}async function Ob(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return Xw(e,t,n,r);if(e.checkGroups?.length)return Ao(e,t,n,r);let i=await Ue(e.appId,e.fields,t,r),o=await He(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ne(e.appId,t,r),u=Op(e);if(Gs(Ap(e,t,n,i,u)).execution.status==="ELIGIBLE"){let d=ug(e,l,n);return lt(d,e.fields,i,o),ZR(e.appId,e.keyFields[0],d,u,t,n)}let c=await xr(e.appId,e.keyFields,u,t,n,l);if(e.values.forEach((d,E)=>{let m={};e.fields.forEach((g,y)=>{let S=d[y];S.type==="CASE_VALUE"?m[g]={value:Vt(S.expr,{},l.get(g),ae(n))}:m[g]={value:Nt(S,l.get(g))}});let R=Dr(c,u[E]);R!==void 0?s.push({id:R,record:m}):a.push(m)}),lt([...a,...s.map(d=>d.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let d=a.length+s.length;if(!await n.confirm(d,"UPDATE"))throw new ge("UPDATE",d)}let p=[];for(let d=0;d<a.length;d+=100){let E=await t.postRecords({app:e.appId,records:a.slice(d,d+100)});p.push(E.ids)}for(let d=0;d<s.length;d+=100)await t.putRecords({app:e.appId,records:s.slice(d,d+100)});return{type:"UPSERT",insertedCount:p.flat().length,updatedCount:s.length}}function Op(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"?ze(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Lp(e,t,n,r){if(t.length===0)return;let i=await Ne(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 Lb(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 Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Hs(a),l=new Map;for(let f of e.values){let c=Zm(f[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 d={value:{}};e.fields.forEach((m,R)=>{if(m!=="_pid"){if(m.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${m}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);d.value[m]={value:Zm(f[R])}}});let E=l.get(c);E?E.push(d):l.set(c,[d])}let u=[];for(let[f,c]of l.entries()){let p=s.get(f),E=[...So(p,i),...c];u.push(cg(e.appId,f,To(p),i,E))}for(let f of u)await t.putRecords(f);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function _b(e,t,n,r){let i=e.subtableCode;if(!eo(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];qt(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&Ls(p.value.expr,o);let a=await Lp(e.appId,o,t,r),s=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=_p(s,i).filter(p=>ce(e.where,p.flat,a,void 0,void 0,ae(n)));if(n.confirm&&!await n.confirm(u.length,"UPDATE"))throw new ge("UPDATE",u.length);let f=new Map;for(let p of u){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let d=f.get(p.parentId);d||(d=new Map,f.set(p.parentId,d));let E={};for(let m of e.assignments){if(m.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${m.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[m.field]={value:Pa(m.value,p.flat,a,ae(n))}}d.set(p.rowId,E)}let c=Hs(s);for(let[p,d]of f.entries()){let E=c.get(p);if(!E)continue;let R=So(E,i).map(g=>{let y=g.id??"";if(!y)return g;let S=d.get(y);return S?{id:y,value:S}:{id:y}});await t.putRecords(Db(e.appId,p,To(E),i,R))}return{type:"UPDATE",updatedCount:u.length}}async function vb(e,t,n,r){let i=e.subtableCode;if(!eo(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];qt(e.where,o);let a=await Lp(e.appId,o,t,r),s=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=_p(s,i).filter(p=>ce(e.where,p.flat,a,void 0,void 0,ae(n)));if(n.confirm&&!await n.confirm(u.length,"DELETE"))throw new ge("DELETE",u.length);let f=new Map;for(let p of u){let d=f.get(p.parentId);d?d.push(p.rowIndex):f.set(p.parentId,[p.rowIndex])}let c=Hs(s);for(let[p,d]of f.entries()){let E=c.get(p);if(!E)continue;let m=So(E,i),R=new Set(d),g=m.filter((y,S)=>!R.has(S));await t.putRecords(cg(e.appId,p,To(E),i,g))}return{type:"DELETE",deletedCount:u.length}}function Hs(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function _p(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=To(r),a=So(r,t);for(let s=0;s<a.length;s++){let l=a[s],u={...La(l,s),_pid:i};for(let[f,c]of Object.entries(r))f!==t&&(u[`_p.${f}`]=Jc(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:u})}}return n}function So(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function To(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function cg(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Db(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function xb(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 Zm(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"?ze(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Jc(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 eo(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return eo(e.left)||eo(e.right);case"NOT":case"GROUP":return eo(e.expr);default:return!1}}async function Ub(e,t,n,r){let i=[];qt(e.where,i);let o=await Lp(e.appId,i,t,r),a=await Q(e.appId,t,r);if(Je(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(d=>[d.code,d.semantics??te(d)])),l=d=>{if(d.field==="_idx"||d.field==="_pid"||d.field==="_rid")return V("number");let E=d.field.startsWith("_p.")?d.field.slice(3):d.field;return s.get(E)??V("string")},u=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),f=_p(u,e.subtableCode),c=e.all?new Set(u.map(d=>String(d.$id?.value??"")).filter(d=>d!=="")):new Set(f.filter(d=>e.where&&ce(e.where,d.flat,o,void 0,l,ae(n))).map(d=>d.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new ge("UPDATE",c.size);let p=Hs(u);for(let d of c){let E=p.get(d);if(!E)continue;let R=So(E,e.subtableCode).map((y,S)=>({row:y,i:S,flat:Mb(E,e.subtableCode,y,S)}));R.sort((y,S)=>kb(y.flat,S.flat,e.by,l,ae(n)));let g=R.map(y=>y.row.id??"");await t.putRecords(xb(e.appId,d,To(E),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:c.size}}function Mb(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}`]=Jc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Jc(a?.value);return i}function kb(e,t,n,r,i={}){for(let o of n){let a=eR(o.key,e,i),s=eR(o.key,t,i),l=o.key.type==="FIELD_NAME"?r($e(o.key.name)):o.key.type==="ARITH_KEY"?V("number"):o.key.type==="FUNC_KEY"?Bn(o.key.expr,f=>{let c=r(f);return c?{compareMode:c.compareMode}:void 0}).semantics??V("string"):V("number"),u=ft(a,s,l??V("string"));if(u!==0)return o.direction==="ASC"?u:-u}return 0}function eR(e,t,n={}){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(me(e.expr,t,n));case"FUNC_KEY":return he(e.expr,t,void 0,void 0,n);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function vp(e,t,n,r,i){if(e.checkGroups?.length)return Ao(e,t,n,r,i);let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Vs.materialize(e,t,n,r,i,o),{rows:l,columns:u}=s;if(Cp(s),u.length!==e.fields.length){let y=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${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let f=[],c=[],p=await Ne(e.appId,t,r),d=l.map((y,S)=>{let A={};return e.fields.forEach((I,b)=>{if(s.importPresence&&!s.importPresence[S]?.has(I))return;let v=y[u[b]]??"";A[I]={value:Ip(v,p.get(I))}}),A});d.forEach(y=>lt([y],e.fields.filter(S=>S in y),o,a));let E=d.map(y=>e.keyFields.map(S=>String(y[S]?.value??"")));if(Gs(Ap(e,t,n,o,E)).execution.status==="ELIGIBLE")return ZR(e.appId,e.keyFields[0],d,E,t,n);if(vr.has(e)){let y=e.keyFields.map(A=>p.get(A)==="NUMBER"),S=new Set;for(let A of E){let I=gn(A,y);if(S.has(I))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");S.add(I)}}let R=await xr(e.appId,e.keyFields,E,t,n,p);if(d.forEach((y,S)=>{let A=Dr(R,E[S]);A!==void 0?c.push({id:A,record:y}):f.push(y)}),n.confirm&&f.length+c.length>0){let y=f.length+c.length;if(!await n.confirm(y,"UPDATE"))throw new ge("UPDATE",y)}let g=[];for(let y=0;y<f.length;y+=100){let S=await t.postRecords({app:e.appId,records:f.slice(y,y+100)});g.push(S.ids)}for(let y=0;y<c.length;y+=100)await t.putRecords({app:e.appId,records:c.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:c.length}}var Dp=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),xp=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 pg(e){let t=await e.getApps(),n=[...Dp],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function dg(e,t,n){let r=await Q(e.appId,t,n),i=[...xp],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}}async function Eo(e,t,n,r,i,o){let a=[];ws(e,t,n,r,a,i,o),await Promise.all(a)}async function fg(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(Eo(l.condition,t,n,r,i,o));await Promise.all(a)}function to(e,t,n,r,i){return i!==void 0&&i.size>0?St(e,t,n,i,r):Jt(e,t,n,r)}function ws(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(to(s.query,t,n,r,a).then(l=>{for(let f of l.warnings??[])o.add(f);let u=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(f=>f[u]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(to(s.query,t,n,r,a).then(l=>{for(let f of l.warnings??[])o.add(f);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":ws(e.left,t,n,r,i,o,a),ws(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":ws(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(to(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 Eg(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Jt(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 mg(e,t,n,r,i,o){let a=new Map,s=[];for(let f=0;f<e.length;f++){let c=e[f];if(c.type!=="SCALAR_SUBQUERY_COL")continue;let p=JSON.stringify(c.query),d=a.get(p);d||(d=to(c.query,t,n,r,o).then(E=>{for(let R of E.warnings??[])i.add(R);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 m=E.columns[0]??"";return E.rows[0]?.[m]??""}),a.set(p,d)),s.push([f,d])}let l=await Promise.all(s.map(([,f])=>f)),u=new Map;return s.forEach(([f],c)=>u.set(f,l[c])),u}var Rg=new WeakMap,gg=new WeakMap,yg=new WeakMap,Xc=new WeakMap,Up=new WeakMap,hg=new WeakMap,Ag=new WeakMap;async function Sg(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))},f=new Map,c=new Map,p=new Map,d=[],E=new Set,m=i??await Ro(e,u,n),R=O=>m.nodes.find(P=>P.source===O||JSON.stringify(P.source)===JSON.stringify(O)),g=new Map(o??[]),y=new Set(o?.keys()??[]),S=new Map([...o??new Map].map(([O,P])=>[O,P.rows.length])),A=new WeakMap,I=O=>de(O)??(O.appId>0?`APP${O.appId}`:"source"),b=O=>O.cteName===Le?1:O.cteName!==null?S.get(O.cteName)??null:null,v=O=>{let P=b(O.from),N=I(O.from),h=[];for(let _ of O.joins){let L=b(_.table),F=I(_.table);if(_.type==="CROSS"){let W=P!==null&&L!==null?Oi(P,L):null;h.push({leftLabel:N,rightLabel:F,leftRows:P,rightRows:L,plan:W,rightRuntimeLabel:_.table.cteName===null?`APP${_.table.appId} fetched rows`:`${F} materialized rows`}),P=W?.outputRows??null,N=`${N} \xD7 ${F}`}else P=null,N=`${N} ${_.type} JOIN ${F}`}if(h.length>0&&Up.set(O,h),Je(O.where)?P=0:O.where!==null&&(P=null),(ee(O).type!=="NONE"||O.distinct||O.having!==null||kt(O)||O.columns.some(_=>_.type==="WINDOW_COL"))&&(P=null),P!==null){let _=O.offset??0;P=Math.max(0,P-_),O.limit!==null&&(P=Math.min(P,O.limit)),A.set(O,P)}},C=async O=>{let P=[O.from,...O.joins.map(h=>h.table)];if(P.length>1&&O.columns.some(h=>h.type==="WILDCARD"||h.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let N=[];for(let h of P){if(h.cteName!==null){if(h.cteName===Le)continue;let _=g.get(h.cteName);if(!_)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${h.cteName}.`);N.push(..._.columns);continue}let w=await Q(h.appId,u,n);h.subtableCode?(N.push(...w.filter(_=>_.inSubtable&&(_.subtableCode===h.subtableCode||_.subtableCode===void 0)).map(_=>_.code)),N.push("_pid","_rid","_idx"),N.push(...w.filter(_=>!_.inSubtable).map(_=>`_p.${_.code}`))):(N.push(...w.filter(_=>!_.inSubtable).map(_=>_.code)),N.push(...Fo))}return[...new Set(N)]},k=async O=>{if(O===null||typeof O!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let P=O;if(P.type==="SELECT"){let N=O,h=await C(N);if(N.columns.length===1&&N.columns[0].type==="WILDCARD")return h;let w=[];for(let _ of N.columns)_.type==="WILDCARD"?w.push(...h):_.type==="PARENT_WILDCARD"?w.push(...h.filter(L=>L.startsWith("_p."))):w.push(...Dn([],[_]).columns);return w}if(P.type==="UNION")return k(P.left);if(P.type==="SHOW_APPS")return[...Dp];if(P.type==="DESCRIBE")return[...xp];if(P.type==="GENERATE_SERIES")return[O.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},x=async O=>{if(O===null||typeof O!="object")return;if(Array.isArray(O)){for(let N of O)await x(N);return}let P=O;if(P.type==="WITH"){let N=O;for(let h of N.ctes){if(h.recursiveSpec){let _=jR(h);h.recursiveSpec.cycle&&_.push(h.recursiveSpec.cycle.markColumn),g.set(h.name,{rows:[],columns:_}),await x(h.query);continue}if(await x(h.query),h.query.type==="GENERATE_SERIES"){if(h.query.args.some(L=>L.type==="VARIABLE")){g.set(h.name,{rows:[],columns:[h.query.columnAlias]});continue}let _=JR(h.query);g.set(h.name,{rows:_.rows,columns:_.columns,columnMeta:Ae.get(_),uniqueGeneratedColumn:h.query.columnAlias}),y.add(h.name),S.set(h.name,_.rows.length);continue}let w=await k(h.query);if(g.set(h.name,{rows:[],columns:w}),h.query.type==="SELECT"){let _=A.get(h.query);_!==void 0&&S.set(h.name,_)}}await x(N.query);return}if(P.type==="UNION"){await x(P.left),await x(P.right);return}if(P.type==="SELECT"){let N=O;await UR(N,g,u,n),await Mc(N,u,g,n,!0),d.push(N),v(N);for(let _ of N.columns)_.type==="SCALAR_SUBQUERY_COL"&&await x(_.query);if(await x(N.where),await x(N.having),await so(N,u,n,g),![N.from,...N.joins.map(_=>_.table)].some(_=>_.cteName!==null&&!g.has(_.cteName))){let _=await Pr(N,u,n,g);_&&p.set(N,_)}return}for(let N of Object.values(P))await x(N)};await x(e);let U=async O=>{if(O===null||typeof O!="object"||E.has(O))return;if(E.add(O),Array.isArray(O)){await Promise.all(O.map(U));return}let P=O;if((P.type==="UPSERT"||P.type==="UPSERT_SELECT")&&await Q(O.appId,u,n),P.type==="SELECT"){let N=O;await so(N,u,n);let h=[N.from,...N.joins.map(D=>D.table)].some(D=>D.cteName!==null);if(ee(N).type==="PLAIN"&&!h){let D=await Pr(N,u,n);D&&p.set(N,D)}let w=[N.from,...N.joins.map(D=>D.table)].filter(D=>D.cteName===null).map(D=>D.appId);(Lt(N.where)||N.orderBy.length>0||N.columns.some(D=>D.type==="WINDOW_COL"&&D.orderBy.length>0))&&w.forEach(D=>a.add(D));let{resolver:L,rewrites:F}=await Fn(N,u,n,g);F.length>0&&Xc.set(N,F);let W=we(N.where,L),$=R(N);if(W.capability==="UNSUPPORTED"&&!$)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kn(W)}).`);f.set(N,W);let M=await ks(N,u,n),j=fp.get(N)??Ms(N,M);j&&Rg.set(N,j);let B=j??wn(N,M);gg.set(N,B);let G=new Map;for(let D of N.joins){let H=D.table.alias;if(D.type!=="INNER"||!H||D.table.subtableCode)continue;let ye=D.on.left.tableAlias,Ye=D.on.right.tableAlias;if(!ye||!Ye)continue;let se=ye===H&&Ye!==H?Ye:Ye===H&&ye!==H?ye:void 0,Qt=ye===H?D.on.right.field:D.on.left.field,No=ye===H?D.on.left.field:D.on.right.field;if(!se)continue;let Zt=[N.from,...N.joins.map(ke=>ke.table)].find(ke=>de(ke)===se),rl;if(D.table.cteName!==null)rl=Oe(g.get(D.table.cteName),No);else{let ke=(await Q(D.table.appId,u,n)).find(pt=>pt.code===pe(D.table,No));rl=ke?Ge(ke,D.table.appId):at(No)}let il,ol,Vp,Wp;if(Zt?.cteName!==null&&Zt?.cteName!==void 0){let ke=g.get(Zt.cteName);il=Oe(ke,Qt),y.has(Zt.cteName)&&ke&&(Vp=ke.rows.length,ol=ke.rows.map(pt=>Sp(pt[Qt])),Wp=ol.some(pt=>pt.length===0))}else if(Zt){let ke=(await Q(Zt.appId,u,n)).find(pt=>pt.code===pe(Zt,Qt));il=ke?Ge(ke,Zt.appId):at(Qt)}let Co=ku({fieldType:rl?.fieldType,sourceSemantics:il?.semantics,sourceRowCount:Vp,values:ol,hasEmptyValue:Wp,maxInKeys:Ts});if(Co.kind==="FALLBACK"&&Co.reason==="JOIN_KEY_VALUES_RUNTIME"&&(j?.joinPlan.items.some(pt=>pt.targetAlias===H)||j?.joinPlan.serverFunctionConsumptions.some(pt=>pt.targetAlias===H)))continue;let oy=Mu(Co,No,uo),Hp=B.joinConditions.get(H),ay=Hp?z(Hp):void 0,sy=B.joinRelations.get(H);G.set(H,{plan:Co,queries:oy,additionalQuery:ay,additionalRelation:sy})}if(G.size>0&&yg.set(N,G),N.orderBy.length>0||N.columns.some(D=>D.type==="WINDOW_COL"&&D.orderBy.length>0)){let D=await co(N,u,n);if(N.orderMode!=="KINTONE_NATIVE")for(let H of D.semantics.values())H.fieldType==="STATUS"&&H.source&&s.add(H.source.appId);if(Ps(N)&&!h&&$?.allowed!==!1){let H=W.capability==="EXACT_PUSHDOWN"?Qe(N):"FULL_SCAN";c.set(N,(N.orderMode==="KINTONE_NATIVE"?xi:Di)({stmt:N,staticMode:H,whereCapability:W.capability,whereReasons:W.reasons,orderSemantics:D.semantics,maxRecords:r,hasKlike:_e(N.where)}))}}}else if(P.type==="VALIDATE"){let N=O;a.add(N.appId);let h=await Q(N.appId,u,n),w=new Map(h.filter(D=>!D.inSubtable).map(D=>[D.code,D])),_=new Set(h.filter(D=>D.inSubtable).map(D=>D.code)),L=Pu(N,h),F=Rr(N.checkGroups??[]),W=lp(N.where);for(let D of F){if(D.field!=="$id"&&!w.has(D.field)&&!_.has(D.field))throw xe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${D.field} \u306F APP${N.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(D.field!=="$id"&&!w.has(D.field)&&_.has(D.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${D.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let D of W){if(D!=="$id"&&!w.has(D)&&!_.has(D))throw new Error(`ArgumentError: WHERE field ${D} does not exist in APP${N.appId}.`);if(D!=="$id"&&!w.has(D)&&_.has(D))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${D} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let $=new Map([...w].map(([D,H])=>[D,H.fieldType]));$.set("$id","RECORD_NUMBER"),Wn(N,$);let M=we(N.where,D=>D.field==="$id"?te({fieldType:"__ID__"}):w.get(D.field)?.semantics??(w.has(D.field)?te(w.get(D.field)):void 0));if(M.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kn(M)}).`);let K=new Map([...w].map(([D,H])=>[D,H.fieldType])),j=new Map([...w.values()].flatMap(D=>D.optionOrder?[[D.code,new Set(Object.keys(D.optionOrder))]]:[])),B=N.where===null?null:M.capability==="EXACT_PUSHDOWN"?N.where:Ml(N.where,{allowUnqualifiedFields:!0,fieldTypes:K,fieldOptions:j,allowKlike:!1}),G=L.some(D=>D.field.fieldType==="NUMBER");G&&(l.add(N.appId),await xt(N.appId,u,n)),hg.set(N,{targetFields:L.map(D=>D.subtableCode?`${D.subtableCode}(${D.field.code})`:D.field.code),fetchFields:[...new Set(["$id",...L.map(D=>D.subtableCode??D.field.code),...W,...F.map(D=>D.field)])],subtables:new Map([...new Set(L.flatMap(D=>D.subtableCode?[D.subtableCode]:[]))].map(D=>[D,L.filter(H=>H.subtableCode===D).length])),capability:M,prefilter:B,numberPrecision:G})}else if(P.type==="UPDATE"||P.type==="DELETE"){if(a.add(O.appId),P.type==="UPDATE"&&O.applyBlocks?.length){let h=O,w=await Q(h.appId,u,n);if(Wt(h,w),xs(h)){let _=w.filter(F=>!F.inSubtable),L=Vu(h.where,{fieldTypes:new Map(_.map(F=>[F.code,F.fieldType])),fieldOptions:new Map(_.flatMap(F=>F.optionOrder?[[F.code,new Set(Object.keys(F.optionOrder))]]:[]))});Ag.set(h,L)}}let N=O;(N.type!=="UPDATE"||!xs(N))&&R(N)?.allowed!==!1&&await mn(N,u,n)}await Promise.all(Object.values(P).map(U))};if(await U(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&on(e)){let O=an(e),{resolver:P,rewrites:N}=await Fn(O,u,n);N.length>0&&Xc.set(O,N);let h=we(O.where,P),w=R(O);if(h.capability==="UNSUPPORTED"&&!w)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Kn(h)}).`);if(f.set(O,h),Ps(O)&&w?.allowed!==!1){let _=await co(O,u,n);c.set(O,(O.orderMode==="KINTONE_NATIVE"?xi:Di)({stmt:O,staticMode:h.capability==="EXACT_PUSHDOWN"?Qe(O):"FULL_SCAN",whereCapability:h.capability,whereReasons:h.reasons,orderSemantics:_.semantics,maxRecords:r,hasKlike:_e(O.where)}))}}for(let O of d)await Mc(O,u,g,n,!0);return{capabilities:f,orderPlans:c,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:m}}function Qc(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 Fb(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 tR(e){return e==="<>"?"!=":e}function ht(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(ht).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return ht(t.expr);case"GROUPING_FIELD":return`GROUPING(${ht(t.ref)})`;case"GROUPING_REF":return ht(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${ht(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${ht(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(ht).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(ht).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Un(e){try{let t=e;switch(t.type){case"BINARY":return`${ht(t.left)} ${Fb(t.op)} ${ht(t.right)}`;case"NULL_CHECK":return`${ht(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Un(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Un(t.right)})`;case"NOT":return`NOT (${Un(t.expr)})`;case"GROUP":return`(${Un(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Zc(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=ne(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?Kb(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=Cc(l),f=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Nc(u)}: ${u}`,` ${Pc(u)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${f}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Un(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(ne)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!ne(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=Cc(s),u=s.left.type==="FIELD"?s.left.field:void 0,f=tR(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(u===void 0||p.field===u)&&p.operator===f);t.push(` ${Nc(l)}: ${l}`,` ${Pc(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??u??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??f}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${nR(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=Cc(s),u=s.left.type==="FIELD"?s.left.field:void 0,f=tR(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(u===void 0||p.field===u)&&p.operator===f);t.push(` ${Nc(l)}: ${l}`,` ${Pc(l)}: kintone server exact prefilter`,` field: ${c?.field??u??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??f}`)}let a=z(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Un(o.residualWhere)}`,` ${nR(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!ne(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function Kb(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,f=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||f)&&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 Nc(e){return ne(e)?"relative date function":"kintone function"}function Cc(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 Pc(e){return ne(e)?"relative date evaluation":"kintone function evaluation"}function nR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ne(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var Tg=new WeakMap;function ep(e,t){if(Array.isArray(e))return e.map(r=>ep(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 f=t.get(u);return f===void 0?{type:"VARIABLE",name:u}:(i.add(l),{type:"STRING",value:f,fromVariable:!0})}),a={...n,args:o};return Tg.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,ep(i,t)]))}function qi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...Dp]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...xp]};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=qi(l.query,s);s.set(l.name,u)}return qi(e.query,s)}if(e.type==="UNION"){let s=qi(e.left,t),l=qi(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Le);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...Dn([],[s]).columns);return{status:"STATIC",columns:a}}function Gb(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function $b(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(f=>f.table)];if(u.some(f=>f.cteName!==null)&&u.every(f=>f.cteName===Le||f.cteName!==null&&r.has(f.cteName))){let f=await Pr(l,t,n,r);f&&i.set(l,f)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var Bb=Symbol("ksql.explainFetchPlan");function Ig(e,t){e[Bb]=t}async function wg(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Me,u=!0,f,c,p,d,E,m={surface:"DOCUMENT_ONLY"}){let R=Rl(d??new Date,E),g=Ht({recursiveCteMaxDepth:f,recursiveCteMaxRows:c,recursiveCteMaxExpansions:p}),y=cR(r);try{let{statements:S,meta:A}=om(e,{import:a}),I=ci(S),b=xu(S,n),v=TR(S,b),C=new Map;for(let[N,h]of Object.entries(R.values))C.set(Gr(N),{type:"string",value:h});let k=new Map,x=new Map,U=[],O=[];for(let N=0;N<S.length;N++){let h=S[N],w=h.type==="SET_VARIABLE"?h.expr.type==="SCALAR_SUBQUERY"?{...h,expr:io(h.expr,C)}:h:io(h,C),_=ep(w,k);et(_);let L=await Ro(_,t,y),F=Gb(x),W=u?await Sg(_,t,y,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 D=await $b(_,t,y,F);for(let[H,ye]of D)W.plainGroupByPlans.set(H,ye)}let $;if(_.type==="CREATE_TEMP_TABLE"){let D=new Map([...x].map(([ye,Ye])=>[ye,Ye.status==="STATIC"?{status:"STATIC",columns:Ye.columns}:{status:"DEFERRED"}])),H=qi(_.query,D);$=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"},x.set(_.name,$)}let M={sources:[]},K=L.hasServerOnlyWhereFunction&&!L.allowed?Zc(L):[...Zc(L),...Ng(Hb(_,I.statements[N],W.capabilities,W.orderPlans,W.plainGroupByPlans,s,l,M,x,$,{maxRecords:i,recursiveLimits:g}),o)],j=Qc(W),B=A.dialect===1?Vb(_,I.statements[N],i,s):[],G=await XR(_,y,m);U.push({index:N,type:I.statements[N].statementType,plan:K.length===0?[...j,...G,...B]:[K[0],...j,...K.slice(1),...G,...B]}),O.push({index:N,fetch:Mp(M.sources),sources:M.sources}),_.type==="DROP_TEMP_TABLE"&&x.delete(_.name),(h.type==="SET_VARIABLE"||h.type==="DECLARE_VARIABLE")&&(C.set(h.name,h.type==="DECLARE_VARIABLE"&&h.annotation==="RELATIVE_DATE"?{type:"relative-date",value:v.get(h.name)}:h.type==="SET_VARIABLE"&&h.expr.type==="ARRAY"?{type:"array",elements:h.expr.elements.map(D=>({type:"string",value:D.value}))}:{type:"string",value:`@${h.name}`,placeholder:!0}),h.type==="DECLARE_VARIABLE"&&h.annotation===void 0&&(h.default.type==="STRING"||h.default.type==="NUMBER")&&k.set(h.name,h.default.type==="STRING"?h.default.value:q(h.default)))}let P={statementCount:S.length,statements:U};return Ig(P,{statements:O}),P}finally{tg(y)}}function Vb(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=Wb(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/Cr)} \u56DE\uFF08${e.values.length} \u884C\u3001${Cr} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/Cr)} \u56DE\u3001${Cr} \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 Wb(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 Hb(e,t,n,r,i,o=100,a=Me,s={sources:[]},l=new Map,u,f=bg()){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 ${st} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Nr(e.query,t,n,r,i,s,"main",l,f).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=no(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:",...Nr(e.expr.query,c,n,r,i,s,"main",l,f).map(p=>` ${p}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Nr(e.query,t,n,r,i,s,"main",l,f);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"],p=[e.left,e.right,e.low,e.high].filter(d=>d!==null&&d.type==="SCALAR_SUBQUERY");return p.forEach((d,E)=>{c.push(p.length>1?` subquery[${E+1}]:`:" subquery:");let m=no(d.query)?t:{...t,tempTablesReferenced:[]};c.push(...Nr(d.query,m,n,r,i,s,"main",l,f).map(R=>` ${R}`))}),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"],p=[e.left,e.right,e.low,e.high].filter(d=>d!==null&&d.type==="SCALAR_SUBQUERY");return p.forEach((d,E)=>{c.push(p.length>1?` subquery[${E+1}]:`:" subquery:");let m=no(d.query)?t:{...t,tempTablesReferenced:[]};c.push(...Nr(d.query,m,n,r,i,s,"main",l,f).map(R=>` ${R}`))}),c}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?Ys(e,void 0,n,r,o,a,1e4,i):Nr(e,t,n,r,i,s,"main",l,f)}function no(e){if(Array.isArray(e))return e.some(no);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(no)}return!1}function Nr(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=bg()){if(t.tempTablesReferenced.length===0)return Ys(e,void 0,n,r,100,Me,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 f=t.tempTablesReferenced.map(d=>[d,s.get(d)]);for(let[d,E]of f)E?.status==="STATIC"?u.push(` source: temp table ${d} (schema from statement ${E.producerStatement})`):(u.push(` source: temp table ${d}`),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(...Cg(c,i?.get(c),f.some(([,d])=>d?.status!=="STATIC"))),u.push(f.every(([,d])=>d?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),u.push(" records API: none");let p=t.appIds.filter(d=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||d!==e.appId);return p.length>0&&u.push(` app: ${p.map(d=>`APP${d}`).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 tp=new WeakMap;function bg(){return{maxRecords:1e4,recursiveLimits:Ht({})}}async function Yb(e,t,n,r,i,o=100,a=Me,s,l,u,f,c=!0,p={surface:"DOCUMENT_ONLY"}){let d=Ht({recursiveCteMaxDepth:l,recursiveCteMaxRows:u,recursiveCteMaxExpansions:f}),E=s??await Ro(e.query,t,n),m=c?await Sg(e.query,t,n,r,E,tp.get(e)):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:E},R={sources:[]},g=Zc(E),y=E.hasServerOnlyWhereFunction&&!E.allowed?[...Qc(m),...g]:[...Qc(m),...g,...Ng(Ys(e.query,void 0,m.capabilities,m.orderPlans,o,a,r,m.plainGroupByPlans,!0,R,"main",d),i)],S=await XR(e,n,p),A=bs([...y,...S],R.sources),I={type:"SELECT",columns:["plan"],rows:A.map(b=>({plan:b})),rowCount:A.length};return Ig(I,{statements:[{index:0,fetch:Mp(R.sources),sources:R.sources}]}),I}function Ng(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 Ys(e,t,n,r,i=100,o=Me,a=1e4,s,l=!0,u,f="main",c=Ht({})){let p=u??{sources:[]};if(e.type==="UNION"){let E=Xb(e,n,r,s,p);return l?bs(E,p.sources):E}if(e.type==="WITH"){let E=Zb(e,n,r,s,p,a,c);return l?bs(E,p.sources):E}if(e.type==="INSERT")return nN(e,t,i,o);if(e.type==="INSERT_SELECT")return rN(e,t,n,r,s);if(e.type==="UPSERT")return sN(e,t,i,o);if(e.type==="UPSERT_SELECT")return lN(e,t,n,r,s);if(e.type==="UPDATE")return iN(e,t,n,r,i,o,a);if(e.type==="DELETE")return aN(e,t);if(e.type==="REORDER")return uN(e,t);if(e.type==="VALIDATE")return qb(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let R=e.targets?.filter(g=>g.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...R.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",m=e.targets?.some(R=>R.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",...m?[" 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&&m?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...m?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let d=At(e,t,n,r,s,!0,!0,p,f);return l?bs(d,p.sources):d}var rR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Mp(e){return e.reduce((t,n)=>rR[t]>=rR[n.fetch]?t:n.fetch,"none")}function bs(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${Mp(t).toUpperCase()}`,...n]}function jb(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function Rs(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:jb(o)};return e.sources.push(s),s}function zb(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function gs(e){return` fetch: ${zb(e)}`}function qb(e,t){let n=hg.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?sp:ap).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 Jb(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 Cg(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 At(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let u=n?.get(e)??(n?[...n].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),f=r?.get(e)??(r?[...r].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),c=i?.get(e)??(i?[...i].find(([A])=>JSON.stringify(A)===JSON.stringify(e))?.[1]:void 0),p=o&&u!==void 0&&VR(e,u),d=p?"COUNT_TOTAL_COUNT":f?.kind==="CANONICAL_LOCAL"||u&&u.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Qe(e),E=eN(e);u&&u.capability!=="EXACT_PUSHDOWN"&&E.push(...u.reasons.map(A=>A.code));let m=[],R=IE(e,ao.get(e)?.allItems.length);t&&m.push(t),m.push(` mode: ${d}`);for(let A of Up.get(e)??[]){if(m.push(` cross join: ${A.leftLabel} \xD7 ${A.rightLabel}`),m.push(` left rows: ${A.leftRows??"runtime (left intermediate rows)"}`),m.push(` right rows: ${A.rightRows??`runtime (${A.rightRuntimeLabel})`}`),A.plan)m.push(` rows: ${A.plan.outputRows}`),m.push(` row guard: ${A.plan.outputRows} / ${A.plan.limit}`),m.push(" guard timing: before row materialization");else{let I=A.leftRows===null?"left rows":String(A.leftRows),b=A.rightRows===null?"right rows":String(A.rightRows);m.push(` rows: runtime (${I} \xD7 ${b})`),m.push(` row guard: runtime checked / ${Fu}`),m.push(" guard timing: after complete source fetch, before row materialization")}m.push(" records API: none")}for(let A of Xc.get(e)??CR.get(e)??[])m.push(Jb(A));R&&(m.push(` grouping source: ${R.source}`),m.push(` grouping sets: ${R.expandedSetCount} (limit: ${R.setLimit})`),m.push(` grouping items: ${R.groupingItemCount} (limit: ${R.itemLimit})`),m.push(` grouping output rows: runtime checked (limit: ${R.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),m.push(...Cg(e,c,[e.from,...e.joins.map(A=>A.table)].some(A=>A.cteName!==null)));for(let A of e.columns){if(A.type!=="WINDOW_COL"||A.windowKind===void 0||A.windowKind==="RANKING")continue;let I=[];A.partitionBy.length>0&&I.push(`PARTITION BY ${A.partitionBy.map(b=>b.tableAlias?`${b.tableAlias}.${b.field}`:b.field).join(", ")}`),A.orderBy.length>0&&I.push(`ORDER BY ${A.orderBy.map(Pg).join(", ")}`),A.windowKind==="VALUE"?m.push(` window ${A.alias}: ${A.valueFunc}(offset=${A.offset}) OVER (${I.join(" ")})`):A.windowKind==="AGGREGATE"&&(m.push(` window ${A.alias}: ${A.aggFunc} OVER (${I.join(" ")})`),m.push(A.frame===null?" frame: PARTITION ENTIRE":` frame: ${A.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${A.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let A=e.where===null?"":z(e.where);if(m.push(` app: APP${e.from.appId} (${e.from.appId})`),m.push(` kintone query: ${A}${A?" ":""}limit 1`),a){let I=Rs(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${A}${A?" ":""}limit 1`);m.push(gs(I))}return m.push(" fields: $id"),m.push(" fetch API: GET records.json (totalCount=true)"),m.push(" REST execution: single GET"),m.push(" record limit: maxRecords/onLimitReached not applied"),m.push(" fallback: full record scan when totalCount is missing or invalid"),m.push(" search abort: fail-closed (SearchAbortedError)"),m}f?(m.push(` order plan: ${f.kind}`),f.reasonCodes.length>0&&m.push(` order reason: ${f.reasonCodes.join(", ")}`),f.kind==="KORDER_NATIVE"?(m.push(" order semantics: kintone native (not kSQL canonical)"),m.push(" REST execution: single GET")):f.kind==="KORDER_CURSOR"&&(m.push(" order semantics: kintone native (not kSQL canonical)"),m.push(" fetch API: POST/GET/DELETE records/cursor.json"),m.push(" cursor page size: 500"),m.push(` scan rows: ${f.scanRows}`))):R&&m.push(" order plan: CANONICAL_LOCAL");let g=f&&!f.requiresCompleteInput?{...e,orderBy:[]}:e,y=cn(g);f?.requiresCompleteInput&&y.add("LOCAL_ORDER");let S=Je(e.where);if(y.size>0&&(!S||R!==null)&&(m.push(" complete input: required (onLimit=truncate disabled)"),m.push(` complete input reason: ${[...y].join(", ")}`),m.push(" onLimit=truncate: disabled")),S)return m.push(" predicate: constant false"),m.push(" records API access: none"),m.push(` app: APP${e.from.appId} (${e.from.appId})`),m;if(d==="FULL_SCAN"&&E.length>0&&m.push(` reason: ${E.join(", ")}`),d==="SIMPLE"){let A=jo(f?.kind==="CANONICAL_REST_TOP_N"?KR(e):e);m.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=f?.kind==="KORDER_CURSOR"?Wu(e):A.query;if(m.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let b=I?"EXACT":"ALL";m.push(gs(Rs(s,e.from.appId,e.from.alias,l,b,I)))}m.push(` fields: ${A.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":A.fields.join(", ")}`)}else{let A=Rg.get(e),I=gg.get(e),b=I??wn(e);if(e.joins.length>0)if(A){if(m.push(" join pushdown plan: applied (runtime metadata resolved)"),m.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),m.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),A.joinPlan.serverFunctionCandidate&&m.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${A.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),m.push(` client residual: ${A.joinPlan.residualWhere===null?"(none)":Un(A.joinPlan.residualWhere)}`),m.push(` KLIKE applied nodes: ${A.joinPlan.appliedKlikes.size}`),m.push(` KLIKE unapplied nodes: ${A.joinPlan.allKlikes.length-A.joinPlan.appliedKlikes.size}`),A.joinPlan.residualWhere!==null)for(let w of A.joinPlan.rejections)m.push(` join pushdown not applied: ${w.reason}`)}else{let w=e.joins.some(_=>_.type!=="INNER"&&_.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(_=>_.table)].some(_=>_.cteName!==null||!!_.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";m.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),m.push(` join pushdown not applied: ${w}`)}let v=In(e,e.from,c),C=e.from.alias?` AS ${e.from.alias}`:"",k=b.mainCondition,x=MR(e),U=e.joins.length===0&&u?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Ft(e.where)?z(e.where):"",O=e.from.alias?A?.queriesByAlias.get(e.from.alias):void 0,P=O||(k!==null?z(k):U||"(\u5168\u4EF6\u53D6\u5F97)");m.push(` app: APP${e.from.appId}${C} (${e.from.appId})`),m.push(` kintone query: ${P}`);let N=A?.joinPlan.items.find(w=>w.targetAlias===e.from.alias),h=A?.joinPlan.serverFunctionConsumptions.find(w=>w.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let w=!I&&x!==null,_=P==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":w?"PREFILTERED":N?.relation==="exact"||h||U!==""?"EXACT":"PREFILTERED";m.push(gs(Rs(s,e.from.appId,e.from.alias,l,_,P,w)))}N||h?(m.push(` pushdown applied: ${O}`),m.push(` relation: ${N?.relation??"exact"}`)):I&&k!==null?(m.push(` pushdown applied: ${P}`),m.push(` relation: ${b.mainRelation??"exact"}`)):x!==null&&(!I||Xi(x))&&m.push(` pushdown candidate: ${z(x)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),m.push(` fields: ${v.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":v.join(", ")}`);for(let w of e.joins){let _=In(e,w.table,c),L=w.table.alias?` AS ${w.table.alias}`:"",F=w.type==="INNER"?"JOIN":`${w.type} JOIN`,W=w.table.alias?b.joinConditions.get(w.table.alias)??null:null,$=w.table.alias&&!w.table.subtableCode&&w.table.cteName===null&&e.where?ni(e.where,{tableAlias:w.table.alias}):null,M=w.table.alias?A?.queriesByAlias.get(w.table.alias):void 0,K=w.table.alias?yg.get(e)?.get(w.table.alias):void 0,j=!I&&w.type==="INNER"&&w.table.cteName===null&&!w.table.subtableCode&&[e.from,...e.joins.map(se=>se.table)].some(se=>se.cteName!==null),B=M||(W!==null?z(W):K?.additionalQuery?K.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),G=j||K?.plan.kind==="RANGE_CANDIDATE"||K?.plan.kind==="FALLBACK"&&K.plan.reason==="JOIN_KEY_VALUES_RUNTIME",D=K&&K.queries.length>0?K.queries.map(se=>B!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${se}) and (${B})`:se):[G?"(runtime source keys)":B],H=D.join(" | ");m.push(` ${F}: APP${w.table.appId}${L} (${w.table.appId})`);for(let se of D)m.push(` kintone query: ${se}`);let ye=A?.joinPlan.items.find(se=>se.targetAlias===w.table.alias),Ye=A?.joinPlan.serverFunctionConsumptions.find(se=>se.targetAlias===w.table.alias);if(a&&w.table.cteName===null){let se=G||!K&&!I&&$!==null,Qt=H==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":se?"PREFILTERED":K?.plan.kind==="IN"&&ye?.relation!=="superset"&&K.additionalRelation!=="superset"||ye?.relation==="exact"||Ye?"EXACT":"PREFILTERED";m.push(gs(Rs(s,w.table.appId,w.table.alias,"join",Qt,H,se)))}if(K)if(K.plan.kind==="RANGE"){m.push(" join key prefilter: range");for(let se of D)m.push(` pushdown applied: ${se}`);m.push(" relation: superset")}else if(K.plan.kind==="IN"){let se=ye?.relation==="superset"||K.additionalRelation==="superset"?"superset":"exact";m.push(" join key prefilter: in");for(let Qt of D)m.push(` pushdown applied: ${Qt}`);m.push(` relation: ${se}`)}else K.plan.kind==="RANGE_CANDIDATE"?(m.push(" join key prefilter: range candidate"),m.push(" relation: superset"),m.push(` join key prefilter reason: ${K.plan.reason}`)):K.plan.kind==="FALLBACK"&&(m.push(K.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),m.push(` join key prefilter reason: ${K.plan.reason}`));else j?(m.push(" join key prefilter: runtime candidate"),m.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),$!==null&&m.push(` pushdown candidate: ${z($)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):ye||Ye?(m.push(` pushdown applied: ${M}`),m.push(` relation: ${ye?.relation??"exact"}`)):I&&W!==null?(m.push(` pushdown applied: ${B}`),m.push(` relation: ${b.joinRelations.get(w.table.alias)??"exact"}`)):$!==null&&(!I||Xi($))&&m.push(` pushdown candidate: ${z($)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);m.push(` fields: ${_.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":_.join(", ")}`)}}return m.push(...tN(e,n,r,i,s)),m}function Xb(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(...At(l,`[union:${u+1}]`,t,n,r,!0,!0,i,"union"))}),s}function Qb(e){let t=new Map,n=a=>de(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Le?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),u=[];for(let f of a.joins){let c=r(f.table),p=n(f.table);if(f.type==="CROSS"){let d=s!==null&&c!==null?Oi(s,c):null;u.push({leftLabel:l,rightLabel:p,leftRows:s,rightRows:c,plan:d,rightRuntimeLabel:f.table.cteName===null?`APP${f.table.appId} fetched rows`:`${p} materialized rows`}),s=d?.outputRows??null,l=`${l} \xD7 ${p}`}else s=null,l=`${l} ${f.type} JOIN ${p}`}return u.length>0&&Up.set(a,u),Je(a.where)?s=0:a.where!==null&&(s=null),ee(a).type!=="NONE"||a.distinct||a.having!==null||kt(a)||a.columns.some(f=>f.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,Ea(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 Zb(e,t,n,r,i={sources:[]},o=1e4,a=Ht({})){Qb(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 f of qR(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let c=`APP${f.appId}${f.subtableCode?`$${f.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(...At(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,f=Tg.get(u);if(u.args.some(E=>E.type==="VARIABLE")){let E=m=>{let R=u.args[m];return R?R.type==="VARIABLE"?`@${R.name} (runtime)`:m<2?"literal":R.type==="NUMBER"?q(R):R.value:m===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 / ${Gt}`," records API: none","");continue}let p=Ea(u),d=p.kind==="DATE"?`${p.step} ${String(p.dateUnit??"DAY").toLowerCase()}${Math.abs(p.step)===1?"":"s"}`:String(p.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${u.columnAlias}`,` series type: ${p.kind}${f?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${f?.variableNames.has(0)?`@${f.variableNames.get(0)} (DECLARE default; value hidden)`:p.start}`,` stop: ${f?.variableNames.has(1)?`@${f.variableNames.get(1)} (DECLARE default; value hidden)`:p.stop}`,` step: ${d}`,` rows: ${p.rowCount}${f?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${p.rowCount} / ${Gt}`,...f?.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(...Ys(e.query,"[main]",t,n,100,Me,o,r,!1,i,"main",a)),on(e)){s.push("");let l=an(e);s.push(...At(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function eN(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"),ts(e.columns)&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),Ft(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 tN(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...At(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...At(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...At(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...At(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function nN(e,t,n=Xt,r=Me){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(Ga(e,n,r))]:a}function rN(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...At(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function iN(e,t,n,r,i=100,o=Me,a=1e4){if(e.applyBlocks?.length)return oN(e,t,i,o,a);let s=$f(e),l=e.assignments.some(d=>d.value.type==="STRING_FUNC"),u=Ca(e),f=e.assignments.some(d=>d.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 d=e.from.cteName??`APP${e.from.appId}`;c.push(` source: ${d} 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?mo(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${mo(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(Je(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),f&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!u&&!f&&p.push("\u5358\u7D14 SET"),c.push(` set type: ${p.join(", ")}`),u){let d=cN(e);d.length>0&&c.push(` ref fields: ${d.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}c.push(" set fields:");for(let d of e.assignments)c.push(` ${dN(d)}`);for(let d of e.assignments)d.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...At(d.value.query,`[subquery: ${d.field}]`,n,r,void 0,!1,!1)));return c}function oN(e,t,n,r,i){let o=Ga(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 m=E.selector.where;return m.type==="BINARY"&&m.op==="="&&m.left.type==="FIELD"&&m.left.tableAlias===null&&m.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),f=[...new Set(a.targets.flatMap(E=>E.operations.map(m=>m.kind)))],c=f.includes("REMOVE"),p=Ag.get(e),d=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":z(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${mo(e.where)}`,`parent cardinality: ${Kt(e.where)?"single":"multiple"}`,...d,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${f.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 aN(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${mo(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(Je(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function sN(e,t,n=Xt,r=Me){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(Ga(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 lN(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...At(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function uN(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(Pg).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Je(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: ${mo(e.where)}`),o}function Pg(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function mo(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 cN(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Us(n,t),n.type==="STRING_FUNC"&&Us(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&ro(n,t);return[...t]}function Us(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"&&(Us(e.left,t),Us(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"&&ro(n,t)}async function Og(e,t,n,r,i){let o=Np(e),a=await Ne(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ne(t.appId,n,r),u=new Set,f=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw xe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);u.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw xe(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);f.add(p.field)}else throw xe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let d=p.field==="$id"||a.has(p.field),E=p.field==="$id"||l.has(p.field);if(!d)throw xe(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw xe(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);u.add(p.field)}let c=new Map;for(let[p,d]of a)c.set(p,d),c.set(`APP${e.appId}.${p}`,d);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,d]of l)c.set(`${t.alias}.${p}`,d);return{targetFields:[...u],sourceFields:[...f],evaluationTypes:c}}function pN(e,t,n){if(!e)return{};let r=jt(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 ro(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"&&ro(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(ro(e.left,t),ro(e.right,t))}function dN(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} = ${Lg(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 Lg(e){return`${iR(e.left)} ${e.op} ${iR(e.right)}`}function iR(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"?`(${Lg(e)})`:"..."}var ge=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 fN=2,js=5,EN=3e4,mN=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??fN;if(!Number.isSafeInteger(r)||r<1||r>js)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${js}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??EN,this.quarantineMs=n.quarantineMs??mN}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 Xa(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>js)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${js}.`)}};function RN(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function gN(e,t=r=>new Promise(i=>setTimeout(i,r)),n=RN){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 yN(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 _g(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 yN(gN(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function vg(e){return Dg(e,AN(e))}function Dg(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=SN(o.options),s=TN(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:qs(o.minValue),maxValue:qs(o.maxValue),minLength:qs(o.minLength),maxLength:qs(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)&&!hN.has(o.type)};l.semantics=te(l),i.push(l),o.fields&&i.push(...Dg(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var hN=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function AN(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 qs(e){return e==null||e===""?void 0:e}function SN(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 TN(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function xg(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 IN="Filter aborted because of too many search results";function Ug(e){return e?.includes(IN)===!0}var Io=class extends Error{constructor(n,r,i){super(i);this.status=n;this.code=r;this.name=r??"KintoneHttpError"}};function wN(e){let t=bN(e.baseUrl),n=e.guestSpaceId===void 0?"/k/v1":`/k/guest/${NN(e.guestSpaceId,"guestSpaceId")}/v1`,r=e.fetch??globalThis.fetch;if(typeof r!="function")throw new TypeError("fetch is required.");let i=e.cursorMaxActive??2;if(!Number.isSafeInteger(i)||i<1||i>5)throw new RangeError("cursorMaxActive must be an integer from 1 to 5.");let o=new zs(new URL(t).host,{maxActive:i});async function a(l,u,f,c){let p=new Headers({Accept:"application/json"});if(e.auth.type==="apiToken"){let R=typeof e.auth.apiToken=="function"?e.auth.apiToken(f):e.auth.apiToken;p.set("X-Cybozu-API-Token",R)}else p.set("X-Cybozu-Authorization",CN(`${e.auth.username}:${e.auth.password}`));c!==void 0&&p.set("Content-Type","application/json");let d=new AbortController,E=setTimeout(()=>d.abort(),e.timeoutMs??3e4);E.unref?.();let m;try{m=await r(`${t}${n}${l}`,{method:u,headers:p,signal:d.signal,...c===void 0?{}:{body:JSON.stringify(c)}})}finally{clearTimeout(E)}if(!m.ok){let R=await m.text(),g,y=`kintone API error: HTTP ${m.status}`;try{let S=JSON.parse(R);typeof S.code=="string"&&(g=S.code),typeof S.message=="string"&&(y=S.message)}catch{R!==""&&(y=`${y}: ${R}`)}throw new Io(m.status,g,y)}return{body:await m.json(),response:m}}return{async getRecords(l){let u=new URLSearchParams({app:String(l.app),query:l.query});l.fields.forEach(p=>u.append("fields[]",p)),l.totalCount===!0&&u.set("totalCount","true");let{body:f,response:c}=await a(`/records.json?${u}`,"GET",l.app);return Ug(c.headers.get("X-Cybozu-Warning"))?{...f,searchAborted:!0}:f},async openCursor(l){let u=await o.acquire(),f;try{f=(await o.runCreate(()=>a("/records/cursor.json","POST",l.app,{app:l.app,query:l.query,size:l.size,...l.fields&&l.fields.length>0?{fields:l.fields}:{}}))).body}catch(c){throw c instanceof Io?u.release():u.quarantine(),c instanceof Io?c:new Qa(c)}return _g(Number(f.totalCount),{get:async()=>(await a(`/records/cursor.json?id=${encodeURIComponent(f.id)}`,"GET",l.app)).body,delete:async()=>{await a("/records/cursor.json","DELETE",l.app,{id:f.id})},onReleased:()=>u.release(),onReleaseUnknown:()=>u.quarantine()})},async postRecords(l){return{ids:(await a("/records.json","POST",l.app,l)).body.ids}},async putRecords(l){await a("/records.json","PUT",l.app,l)},async upsertRecords(l){return(await a("/records.json","PUT",l.app,{app:l.app,upsert:!0,records:l.records})).body},async deleteRecords(l){await a("/records.json","DELETE",l.app,l)},async getApps(){let l=[];for(let u=0;;u+=100){let f=new URLSearchParams({limit:"100",offset:String(u)}),c=await a(`/apps.json?${f}`,"GET",0);if(l.push(...c.body.apps.map(p=>({appId:Number(p.appId),name:p.name,description:p.description}))),c.body.apps.length<100)return l}},async getFields(l){let u=await a(`/app/form/fields.json?app=${encodeURIComponent(String(l))}`,"GET",l);return vg(u.body.properties)},async getNumberPrecision(l){let u=await a(`/app/settings.json?app=${encodeURIComponent(String(l))}`,"GET",l);return oE(u.body)},async getProcessStatuses(l){let u=await a(`/app/status.json?app=${encodeURIComponent(String(l))}&lang=user`,"GET",l);return{enable:u.body.enable,states:xg(u.body.states)}}}}function bN(e){let t=new URL(e);if(t.protocol!=="https:"&&t.protocol!=="http:")throw new TypeError("baseUrl must use http or https.");return t.toString().replace(/\/+$/,"")}function NN(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive integer.`);return e}function CN(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new TextEncoder().encode(e),r="";for(let i=0;i<n.length;i+=3){let o=n[i],a=n[i+1],s=n[i+2];r+=t[o>>2],r+=t[(o&3)<<4|(a??0)>>4],r+=i+1<n.length?t[(a&15)<<2|(s??0)>>6]:"=",r+=i+2<n.length?t[s&63]:"="}return r}var ie=class extends Error{constructor(t,n,r){super(n),this.name="KsqlFlowError",this.code=t,this.cause=r}};function Js(e){if(e instanceof ie)return e;if(e instanceof Error){let i=e.name!=="Error"?e.name:e.message.match(/^([A-Za-z][A-Za-z0-9]*Error):/)?.[1]??"FLOW_ERROR";return new ie(i,e.message,e)}let t=e,n=typeof t?.code=="string"?t.code:"FLOW_ERROR",r=typeof t?.message=="string"?t.message:String(e);return new ie(n,r,e)}var Fp=class extends Error{constructor(t,n,r){super(n),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}};function PN(e){let t=new Map;for(let n of e){if(n.name.length===0)throw new ie("ArgumentError","ArgumentError: IMPORT source name must not be empty.");if(t.has(n.name))throw new ie("ImportSourceDuplicateError","ImportSourceDuplicateError: an IMPORT source name is registered more than once.");t.set(n.name,n.loader)}return n=>t.get(n)}var Kp=new WeakMap;function kg(e,t){Kp.set(e,t)}function Fg(e){Kp.delete(e)}function Mr(e,t){return new ie(e,`${e}: ${t}`)}function Mg(e){return e>=65&&e<=90||e>=97&&e<=122||e===95||e===36||e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}function ON(e){let t=Array.from(e);return t.length>0&&Mg(t[0].codePointAt(0))&&t.slice(1).every(n=>{let r=n.codePointAt(0);return Mg(r)||r>=48&&r<=57})}function Kg(e,t){if(t===void 0||t.length===0)return new Set;let n=new Set;for(let o of t){let a=o?.name;if(typeof a!="string"||a.startsWith("#")||!ON(a))throw Mr("ExportSinkInvalidNameError","an export sink name must be a valid temp-table identifier without a leading #.");if(n.has(a))throw Mr("ExportSinkDuplicateError","an export sink name is declared more than once.");n.add(a)}let r=new Set([...n].map(o=>`#${o}`));for(let o of r)if(e.filter(s=>s.type==="CREATE_TEMP_TABLE"&&s.name===o).length>1)throw Mr("ExportSinkDuplicateError","an export sink must correspond to exactly one CREATE TEMP TABLE statement.");let i=ci([...e]);for(let o of r){let a=i.statements.filter(u=>u.tempTablesCreated.includes(o)).map(u=>u.index);if(a.find(u=>e[u]?.type==="CREATE_TEMP_TABLE")===void 0)throw a.length>0?Mr("ExportSinkInvalidTargetError","an export sink cannot target a DML or validation result."):Mr("ExportSinkNotFoundError","an export sink has no corresponding CREATE TEMP TABLE statement.");let l=!1;for(let u of i.statements)u.tempTablesCreated.includes(o)&&(l=!0),u.tempTablesDropped.includes(o)&&(l=!1);if(!l)throw Mr("ExportSinkNotFoundError","the export sink temp table does not exist in the final batch state.")}return r}function Gg(e){return Kp.get(e)}function LN(e){if(e===null||typeof e!="object")return!1;let t=e;switch(t.type){case"INSERT":return Array.isArray(t.createdIds)&&t.createdIds.every(n=>Array.isArray(n)&&n.every(r=>typeof r=="string"))&&typeof t.insertedCount=="number";case"UPDATE":return typeof t.updatedCount=="number";case"DELETE":return typeof t.deletedCount=="number";case"UPSERT":return typeof t.insertedCount=="number"&&typeof t.updatedCount=="number";default:return!1}}var Tt=class extends Error{constructor(t,n,r){super(`${t}: ${n}`),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}},Xs=class extends Tt{constructor(t){super("ExportSinkDuplicateHeaderError",t)}},wo=class extends Tt{constructor(t){super("ExportSinkUnsupportedColumnError",t)}},ct=class extends Tt{constructor(t){super("ExportSinkInvalidValueError",t)}},kr=class extends Tt{constructor(t,n){super("ExportSinkInvalidTimezoneError",t,n)}},Qs=class extends Tt{constructor(t){super("ExportSinkEncoderRequiredError",t)}},Zs=class extends Tt{constructor(t,n){super("ExportSinkEncodingError",t,n)}},el=class extends Tt{constructor(t){super("ExportSinkInvalidEncoderResultError",t)}};var $g=1024,_N=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))[eE]([+-]?\d+)$/;function Bg(e){let t=_N.exec(e);if(!t)throw new ct("numeric value has invalid exponential notation.");let n=t[1],r=t[2]??"",i=t[3]??t[4]??"",o=r+i;if(/^0+$/.test(o))return`${n}0`;let a=BigInt(r.length)+BigInt(t[5]),s=BigInt(o.length),l;if(a<=0n?l=BigInt(n.length+2+o.length)-a:a>=s?l=BigInt(n.length)+a:l=BigInt(n.length+o.length+1),l>BigInt($g))throw new ct(`expanded numeric value exceeds ${$g} characters.`);let u=Number(a);return u<=0?`${n}0.${"0".repeat(-u)}${o}`:u>=o.length?`${n}${o}${"0".repeat(u-o.length)}`:`${n}${o.slice(0,u)}.${o.slice(u)}`}var vN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$/;function Gp(e){let t=new Date(0);return t.setUTCFullYear(e.year,e.month-1,e.day),t.setUTCHours(e.hour,e.minute,e.second,0),t.getTime()}function Vg(e){let t=vN.exec(e);if(!t)throw new ct("DATETIME value is not a valid UTC ISO 8601 string.");let n={year:Number(t[1]),month:Number(t[2]),day:Number(t[3]),hour:Number(t[4]),minute:Number(t[5]),second:Number(t[6]),fraction:t[7]??""},r=Gp(n),i=new Date(r);if(i.getUTCFullYear()!==n.year||i.getUTCMonth()+1!==n.month||i.getUTCDate()!==n.day||i.getUTCHours()!==n.hour||i.getUTCMinutes()!==n.minute||i.getUTCSeconds()!==n.second)throw new ct("DATETIME value is not a valid UTC ISO 8601 instant.");let o=Number((n.fraction.slice(1)+"000").slice(0,3));return{parts:n,instant:new Date(r+o)}}function Wg(e){try{return new Intl.DateTimeFormat("en-CA-u-nu-latn",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"})}catch(t){throw new kr(`timezone ${JSON.stringify(e)} is not a supported IANA timezone.`,t)}}function Fr(e,t){let n=e.find(r=>r.type===t)?.value;if(n===void 0)throw new kr("timezone formatter did not return the required date parts.");return Number(n)}function jn(e){return String(e).padStart(2,"0")}function Hg(e,t){let{parts:n,instant:r}=Vg(e),i=t.formatToParts(r),o={year:Fr(i,"year"),month:Fr(i,"month"),day:Fr(i,"day"),hour:Fr(i,"hour"),minute:Fr(i,"minute"),second:Fr(i,"second")},a=(Gp(o)-Gp(n))/1e3;if(!Number.isInteger(a))throw new kr("timezone produced a non-integral offset.");let s=a<0?"-":"+",l=Math.abs(a),u=Math.floor(l/3600),f=Math.floor(l%3600/60);return`${String(o.year).padStart(4,"0")}-${jn(o.month)}-${jn(o.day)}T${jn(o.hour)}:${jn(o.minute)}:${jn(o.second)}${n.fraction}${s}${jn(u)}:${jn(f)}`}function Yg(e){Vg(e)}var DN=new Set(["CHECK_BOX","MULTI_SELECT","CATEGORY"]),xN=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),UN=new Set(["NUMBER","CALC","KSQL_NUMBER"]);function zg(e,t){for(let n of e){let r=t?.get(n)?.fieldType;if(r==="SUBTABLE")throw new wo(`column ${JSON.stringify(n)} is a SUBTABLE; select the APP$\u660E\u7D30 virtual table to export subtable rows.`);if(r==="FILE")throw new wo(`column ${JSON.stringify(n)} is a FILE field; attachment export is not supported.`)}}function zn(e,t,n){throw new ct(`data row ${e}, column ${JSON.stringify(t)} ${n}`)}function jg(e,t,n){let r;try{r=JSON.parse(e)}catch{return zn(t,n,"does not contain a valid JSON array.")}return Array.isArray(r)?r:zn(t,n,"does not contain a JSON array.")}function qg(e,t,n,r,i){if(e==null||e==="")return"";if(typeof e!="string")return zn(n,t,"has a non-string value.");let o=r?.fieldType;if(o&&DN.has(o)){let a=jg(e,n,t);return a.every(s=>typeof s=="string")?a.join(`
19
- `):zn(n,t,"must contain only string array elements.")}if(o&&xN.has(o)){let a=jg(e,n,t),s=[];for(let l of a){if(l===null||typeof l!="object"||Array.isArray(l)||typeof l.code!="string")return zn(n,t,"must contain objects with string code properties.");s.push(l.code)}return s.join(`
20
- `)}if(o&&UN.has(o)&&/[eE]/.test(e))try{return Bg(e)}catch(a){if(a instanceof ct)return zn(n,t,a.message.replace(/^ExportSinkInvalidValueError: /,""));throw a}if(o==="DATETIME")try{return i?Hg(e,i):(Yg(e),e)}catch(a){if(a instanceof ct)return zn(n,t,"has an invalid DATETIME value.");throw a}return e}function Jg(e={}){let t=e.encoding??"utf8";if(t==="utf8")return{encoding:t};let n=e.encoder;if(!n||n.encoding!=="sjis"||typeof n.encode!="function")throw new Qs('encoding "sjis" requires an encoder whose encoding is "sjis" and which has an encode function.');return{encoding:t,encoder:n}}function MN(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function Xg(e,t){if(t.encoding==="utf8")return new TextEncoder().encode(e);let n;try{n=t.encoder.encode(e)}catch(r){throw new Zs("Shift_JIS encoder failed to encode the CSV payload.",r)}if(!MN(n))throw new el("Shift_JIS encoder must return a Uint8Array.");return n}function Qg(e){return/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function kN(e){let t=new Set;for(let n of e){if(t.has(n))throw new Xs(`CSV column name ${JSON.stringify(n)} is duplicated.`);t.add(n)}}function Zg(e,t={}){let n=Jg(t),r=t.timezone===void 0?void 0:Wg(t.timezone);kN(e.columns),zg(e.columns,e.columnMeta);let i=[e.columns.map(Qg).join(",")];e.rows.forEach((s,l)=>{i.push(e.columns.map(u=>Qg(qg(s[u],u,l+1,e.columnMeta?.get(u),r))).join(","))});let o=`${i.join(`\r
18
+ 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 wb(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Ib}`)}async function bb(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=Ju(e.where,{fieldTypes:s,fieldOptions:l});wb(u);let d=u.prefilter===null?"":z(u.prefilter),c=new Set(Ma(e,r));for(let E of Nb(e.where))c.add(E);let p=await Cb(e.appId,e.where,a,t,i);return(await We(t.getRecords,e.appId,d,[...c],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(E=>({snapshot:E,row:Jt(E,null)})).filter(({row:E})=>pe(e.where,E,p.fieldTypeResolver,u.appliedKlikes,p.fieldSemanticsResolver,se(n))).map(({snapshot:E})=>E)}function Nb(e){return mp(e)}async function Cb(e,t,n,r,i){let s=[...Pb(t)].some(d=>n.get(d)?.fieldType==="STATUS")?await Op(e,r,i):void 0;return{fieldTypeResolver:d=>d.field==="$id"?"NUMBER":n.get(d.field)?.fieldType,fieldSemanticsResolver:d=>{if(d.field==="$id")return lr(ne({fieldType:"__ID__"}),e,"$id");let c=n.get(d.field);if(!c)return;let p=c.semantics??ne(c),f=c.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return lr(f,e,c.code)}}}function Pb(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 Ob(e,t,n){let r=t.validations.flatMap(d=>d.errors),i=t.validations.reduce((d,c)=>d+(c.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...Pt(n,e.fields).payloadFields,...Li],a=t.guards.parentRows,s=Ku(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:ho(l),guards:Ao(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return zn.set(u,Zs(o,n,e.appId)),u}function Lb(e,t,n){let r=t.validations,i=r.flatMap(u=>u.errors),o=r.reduce((u,d)=>u+(d.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...Pt(n,e.assignments.map(u=>u.field)).payloadFields,...Li],s=Di(t),l={type:"VALIDATION",operation:"UPDATE",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-o,invalidRows:o,errorCount:i.length,columns:a,errors:i,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:ho(s.branches[0]),guards:Ao(s.branches[0]),deletedRows:{total:t.plans.reduce((u,d)=>u+d.tables.reduce((c,p)=>c+p.deletedRows,0),0),parentRows:t.plans.filter(u=>u.tables.some(d=>d.deletedRows>0)).length},diagnostic:s};return zn.set(l,Zs(a,n,e.appId)),l}function _b(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??[...Pt(n,e.fields).payloadFields,...Li],l=Gu(t),u=l.branches.find(E=>E.branch==="insert"),d=l.branches.find(E=>E.branch==="update"),c=ho(u),p=ho(d),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...c,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:c,guards:Ao(u)},update:{apply:p,guards:Ao(d)}},deletedRows:{total:t.update.plans.reduce((E,m)=>E+m.tables.reduce((R,g)=>R+g.deletedRows,0),0),parentRows:t.update.plans.filter(E=>E.tables.some(m=>m.deletedRows>0)).length},diagnostic:l};return zn.set(f,Zs([...s],n,e.appId)),f}function ho(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:Hn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:Hn(t,"ADD"),removedValues:Hn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function Ao(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 en=100,Me=500;function ct(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,Ge(s,n));continue}o.set(a,Z(i.has(a)?"number":"string"))}return o}async function vb(e,t,n,r,i,o){let a=await pg(e,t,n,r,i,o),s=await Ne(e.appId,n,i),l=gu(e,a,s,se(r)),u=e.assignments.map(p=>p.field),d=await Q(e.appId,n,i),c=await He(e.appId,u,d,n,i);if(ut(l.flatMap(p=>p.records.map(f=>f.record)),u,d,c),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new ge("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function Db(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 xb(e,t,n,r){if(await hn(e,t,r),Je(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Fb(e,t,n,r);let i=hu(e),a=(await Mi(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 ge("DELETE",a.length);let s=Jf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function Eg(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"?Ht(s.expr,{},t.get(o),se(n)):Ct(s,t.get(o))}}),i})}async function Ub(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return rb(e,t,n,r);if(e.checkGroups?.length)return Co(e,t,n,r);let i=await Ue(e.appId,e.fields,t,r),o=await He(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ne(e.appId,t,r),u=Mp(e);if(qs(Cp(e,t,n,i,u)).execution.status==="ELIGIBLE"){let f=Eg(e,l,n);return ut(f,e.fields,i,o),ig(e.appId,e.keyFields[0],f,u,t,n)}let c=await Kr(e.appId,e.keyFields,u,t,n,l);if(e.values.forEach((f,E)=>{let m={};e.fields.forEach((g,y)=>{let A=f[y];A.type==="CASE_VALUE"?m[g]={value:Ht(A.expr,{},l.get(g),se(n))}:m[g]={value:Ct(A,l.get(g))}});let R=Fr(c,u[E]);R!==void 0?s.push({id:R,record:m}):a.push(m)}),ut([...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 ge("UPDATE",f)}let p=[];for(let f=0;f<a.length;f+=100){let E=await t.postRecords({app:e.appId,records:a.slice(f,f+100)});p.push(E.ids)}for(let f=0;f<s.length;f+=100)await t.putRecords({app:e.appId,records:s.slice(f,f+100)});return{type:"UPSERT",insertedCount:p.flat().length,updatedCount:s.length}}function Mp(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"?ze(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function kp(e,t,n,r){if(t.length===0)return;let i=await Ne(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 Mb(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 We(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=el(a),l=new Map;for(let d of e.values){let c=iR(d[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((m,R)=>{if(m!=="_pid"){if(m.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${m}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[m]={value:iR(d[R])}}});let E=l.get(c);E?E.push(f):l.set(c,[f])}let u=[];for(let[d,c]of l.entries()){let p=s.get(d),E=[...Po(p,i),...c];u.push(mg(e.appId,d,Oo(p),i,E))}for(let d of u)await t.putRecords(d);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function kb(e,t,n,r){let i=e.subtableCode;if(!so(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Qt(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&Fs(p.value.expr,o);let a=await kp(e.appId,o,t,r),s=await We(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=Fp(s,i).filter(p=>pe(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(u.length,"UPDATE"))throw new ge("UPDATE",u.length);let d=new Map;for(let p of u){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=d.get(p.parentId);f||(f=new Map,d.set(p.parentId,f));let E={};for(let m of e.assignments){if(m.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${m.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);E[m.field]={value:Ua(m.value,p.flat,a,se(n))}}f.set(p.rowId,E)}let c=el(s);for(let[p,f]of d.entries()){let E=c.get(p);if(!E)continue;let R=Po(E,i).map(g=>{let y=g.id??"";if(!y)return g;let A=f.get(y);return A?{id:y,value:A}:{id:y}});await t.putRecords(Kb(e.appId,p,Oo(E),i,R))}return{type:"UPDATE",updatedCount:u.length}}async function Fb(e,t,n,r){let i=e.subtableCode;if(!so(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Qt(e.where,o);let a=await kp(e.appId,o,t,r),s=await We(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=Fp(s,i).filter(p=>pe(e.where,p.flat,a,void 0,void 0,se(n)));if(n.confirm&&!await n.confirm(u.length,"DELETE"))throw new ge("DELETE",u.length);let d=new Map;for(let p of u){let f=d.get(p.parentId);f?f.push(p.rowIndex):d.set(p.parentId,[p.rowIndex])}let c=el(s);for(let[p,f]of d.entries()){let E=c.get(p);if(!E)continue;let m=Po(E,i),R=new Set(f),g=m.filter((y,A)=>!R.has(A));await t.putRecords(mg(e.appId,p,Oo(E),i,g))}return{type:"DELETE",deletedCount:u.length}}function el(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function Fp(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=Oo(r),a=Po(r,t);for(let s=0;s<a.length;s++){let l=a[s],u={...ka(l,s),_pid:i};for(let[d,c]of Object.entries(r))d!==t&&(u[`_p.${d}`]=rp(c?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:u})}}return n}function Po(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Oo(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function mg(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Kb(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Gb(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 iR(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"?ze(e.expr,{}):e.elements.map(t=>t.value).join(",")}function rp(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 so(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return so(e.left)||so(e.right);case"NOT":case"GROUP":return so(e.expr);default:return!1}}async function $b(e,t,n,r){let i=[];Qt(e.where,i);let o=await kp(e.appId,i,t,r),a=await Q(e.appId,t,r);if(Je(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??ne(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let E=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(E)??B("string")},u=await We(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Fp(u,e.subtableCode),c=e.all?new Set(u.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(d.filter(f=>e.where&&pe(e.where,f.flat,o,void 0,l,se(n))).map(f=>f.parentId));if(n.confirm&&!await n.confirm(c.size,"UPDATE"))throw new ge("UPDATE",c.size);let p=el(u);for(let f of c){let E=p.get(f);if(!E)continue;let R=Po(E,e.subtableCode).map((y,A)=>({row:y,i:A,flat:Bb(E,e.subtableCode,y,A)}));R.sort((y,A)=>Wb(y.flat,A.flat,e.by,l,se(n)));let g=R.map(y=>y.row.id??"");await t.putRecords(Gb(e.appId,f,Oo(E),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:c.size}}function Bb(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}`]=rp(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=rp(a?.value);return i}function Wb(e,t,n,r,i={}){for(let o of n){let a=oR(o.key,e,i),s=oR(o.key,t,i),l=o.key.type==="FIELD_NAME"?r($e(o.key.name)):o.key.type==="ARITH_KEY"?B("number"):o.key.type==="FUNC_KEY"?Sn(o.key.expr,d=>{let c=r(d);return c?{compareMode:c.compareMode}:void 0}).semantics??B("string"):B("number"),u=mt(a,s,l??B("string"));if(u!==0)return o.direction==="ASC"?u:-u}return 0}function oR(e,t,n={}){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(me(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 Kp(e,t,n,r,i){if(e.checkGroups?.length)return Co(e,t,n,r,i);let o=await Ue(e.appId,e.fields,t,r),a=await He(e.appId,e.fields,o,t,r),s=await Qs.materialize(e,t,n,r,i,o),{rows:l,columns:u}=s;if(xp(s),u.length!==e.fields.length){let y=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${y}`)}for(let y of e.keyFields)if(!e.fields.includes(y))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${y}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let d=[],c=[],p=await Ne(e.appId,t,r),f=l.map((y,A)=>{let h={};return e.fields.forEach((I,b)=>{if(s.importPresence&&!s.importPresence[A]?.has(I))return;let v=y[u[b]]??"";h[I]={value:Lp(v,p.get(I))}}),h});f.forEach(y=>ut([y],e.fields.filter(A=>A in y),o,a));let E=f.map(y=>e.keyFields.map(A=>String(y[A]?.value??"")));if(qs(Cp(e,t,n,o,E)).execution.status==="ELIGIBLE")return ig(e.appId,e.keyFields[0],f,E,t,n);if(kr.has(e)){let y=e.keyFields.map(h=>p.get(h)==="NUMBER"),A=new Set;for(let h of E){let I=In(h,y);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 R=await Kr(e.appId,e.keyFields,E,t,n,p);if(f.forEach((y,A)=>{let h=Fr(R,E[A]);h!==void 0?c.push({id:h,record:y}):d.push(y)}),n.confirm&&d.length+c.length>0){let y=d.length+c.length;if(!await n.confirm(y,"UPDATE"))throw new ge("UPDATE",y)}let g=[];for(let y=0;y<d.length;y+=100){let A=await t.postRecords({app:e.appId,records:d.slice(y,y+100)});g.push(A.ids)}for(let y=0;y<c.length;y+=100)await t.putRecords({app:e.appId,records:c.slice(y,y+100)});return{type:"UPSERT",insertedCount:g.flat().length,updatedCount:c.length}}var Gp=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),$p=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 Rg(e){let t=await e.getApps(),n=[...Gp],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 gg(e,t,n){let r=await Q(e.appId,t,n),i=[...$p],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}}async function So(e,t,n,r,i,o){let a=[];vs(e,t,n,r,a,i,o),await Promise.all(a)}async function yg(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(So(l.condition,t,n,r,i,o));await Promise.all(a)}function lo(e,t,n,r,i){return i!==void 0&&i.size>0?Tt(e,t,n,i,r):Zt(e,t,n,r)}function vs(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(lo(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);let u=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(d=>d[u]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(lo(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);if(l.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(l.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let u=l.columns[0]??"";s.resolved=l.rows[0]?.[u]??""}));break}case"LOGICAL":vs(e.left,t,n,r,i,o,a),vs(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":vs(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(lo(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 hg(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 Ag(e,t,n,r,i,o){let a=new Map,s=[];for(let d=0;d<e.length;d++){let c=e[d];if(c.type!=="SCALAR_SUBQUERY_COL")continue;let p=JSON.stringify(c.query),f=a.get(p);f||(f=lo(c.query,t,n,r,o).then(E=>{for(let R of E.warnings??[])i.add(R);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 m=E.columns[0]??"";return E.rows[0]?.[m]??""}),a.set(p,f)),s.push([d,f])}let l=await Promise.all(s.map(([,d])=>d)),u=new Map;return s.forEach(([d],c)=>u.set(d,l[c])),u}var Sg=new WeakMap,Tg=new WeakMap,Ig=new WeakMap,ip=new WeakMap,Bp=new WeakMap,wg=new WeakMap,bg=new WeakMap;async function Ng(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,u={...t,getFields:async L=>(a.add(L),t.getFields(L)),getProcessStatuses:async L=>(s.add(L),t.getProcessStatuses(L)),getNumberPrecision:async L=>(l.add(L),t.getNumberPrecision(L))},d=new Map,c=new Map,p=new Map,f=[],E=new Set,m=i??await Io(e,u,n),R=L=>m.nodes.find(_=>_.source===L||JSON.stringify(_.source)===JSON.stringify(L)),g=new Map(o??[]),y=new Set(o?.keys()??[]),A=new Map([...o??new Map].map(([L,_])=>[L,_.rows.length])),h=new WeakMap,I=L=>fe(L)??(L.appId>0?`APP${L.appId}`:"source"),b=L=>L.cteName===Le?1:L.cteName!==null?A.get(L.cteName)??null:null,v=L=>{let _=b(L.from),N=I(L.from),C=[];for(let w of L.joins){let O=b(w.table),F=I(w.table);if(w.type==="CROSS"){let W=_!==null&&O!==null?Ui(_,O):null;C.push({leftLabel:N,rightLabel:F,leftRows:_,rightRows:O,plan:W,rightRuntimeLabel:w.table.cteName===null?`APP${w.table.appId} fetched rows`:`${F} materialized rows`}),_=W?.outputRows??null,N=`${N} \xD7 ${F}`}else _=null,N=`${N} ${w.type} JOIN ${F}`}if(C.length>0&&Bp.set(L,C),Je(L.where)?_=0:L.where!==null&&(_=null),(ee(L).type!=="NONE"||L.distinct||L.having!==null||Kt(L)||lt(L).length>0)&&(_=null),_!==null){let w=L.offset??0;_=Math.max(0,_-w),L.limit!==null&&(_=Math.min(_,L.limit)),h.set(L,_)}},P=async L=>{let _=[L.from,...L.joins.map(C=>C.table)];if(_.length>1&&L.columns.some(C=>C.type==="WILDCARD"||C.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 C of _){if(C.cteName!==null){if(C.cteName===Le)continue;let w=g.get(C.cteName);if(!w)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${C.cteName}.`);N.push(...w.columns);continue}let S=await Q(C.appId,u,n);C.subtableCode?(N.push(...S.filter(w=>w.inSubtable&&(w.subtableCode===C.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(...Yo))}return[...new Set(N)]},k=async L=>{if(L===null||typeof L!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let _=L;if(_.type==="SELECT"){let N=L,C=await P(N);if(N.columns.length===1&&N.columns[0].type==="WILDCARD")return C;let S=[];for(let w of N.columns)w.type==="WILDCARD"?S.push(...C):w.type==="PARENT_WILDCARD"?S.push(...C.filter(O=>O.startsWith("_p."))):S.push(...Fn([],[w]).columns);return S}if(_.type==="UNION")return k(_.left);if(_.type==="SHOW_APPS")return[...Gp];if(_.type==="DESCRIBE")return[...$p];if(_.type==="GENERATE_SERIES")return[L.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},x=async L=>{if(L===null||typeof L!="object")return;if(Array.isArray(L)){for(let N of L)await x(N);return}let _=L;if(_.type==="WITH"){let N=L;for(let C of N.ctes){if(C.recursiveSpec){let w=QR(C);C.recursiveSpec.cycle&&w.push(C.recursiveSpec.cycle.markColumn),g.set(C.name,{rows:[],columns:w}),await x(C.query);continue}if(await x(C.query),C.query.type==="GENERATE_SERIES"){if(C.query.args.some(O=>O.type==="VARIABLE")){g.set(C.name,{rows:[],columns:[C.query.columnAlias]});continue}let w=tg(C.query);g.set(C.name,{rows:w.rows,columns:w.columns,columnMeta:Se.get(w),uniqueGeneratedColumn:C.query.columnAlias}),y.add(C.name),A.set(C.name,w.rows.length);continue}let S=await k(C.query);if(g.set(C.name,{rows:[],columns:S}),C.query.type==="SELECT"){let w=h.get(C.query);w!==void 0&&A.set(C.name,w)}}await x(N.query);return}if(_.type==="UNION"){await x(_.left),await x(_.right);return}if(_.type==="SELECT"){let N=L;await GR(N,g,u,n),await Wc(N,u,g,n,!0),f.push(N),v(N);for(let w of N.columns)w.type==="SCALAR_SUBQUERY_COL"&&await x(w.query);if(await x(N.where),await x(N.having),await mo(N,u,n,g),![N.from,...N.joins.map(w=>w.table)].some(w=>w.cteName!==null&&!g.has(w.cteName))){let w=await Dr(N,u,n,g);w&&p.set(N,w)}return}for(let N of Object.values(_))await x(N)};await x(e);let M=async L=>{if(L===null||typeof L!="object"||E.has(L))return;if(E.add(L),Array.isArray(L)){await Promise.all(L.map(M));return}let _=L;if((_.type==="UPSERT"||_.type==="UPSERT_SELECT")&&await Q(L.appId,u,n),_.type==="SELECT"){let N=L;await mo(N,u,n);let C=[N.from,...N.joins.map(D=>D.table)].some(D=>D.cteName!==null);if(ee(N).type==="PLAIN"&&!C){let D=await Dr(N,u,n);D&&p.set(N,D)}let S=[N.from,...N.joins.map(D=>D.table)].filter(D=>D.cteName===null).map(D=>D.appId);(_t(N.where)||N.orderBy.length>0||lt(N).some(D=>D.orderBy.length>0))&&S.forEach(D=>a.add(D));let{resolver:O,rewrites:F}=await Wn(N,u,n,g);F.length>0&&ip.set(N,F);let W=we(N.where,O),$=R(N);if(W.capability==="UNSUPPORTED"&&!$)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vn(W)}).`);d.set(N,W);let U=await Ys(N,u,n),j=Ap.get(N)??Hs(N,U);j&&Sg.set(N,j);let V=j??Ln(N,U);Tg.set(N,V);let G=new Map;for(let D of N.joins){let H=D.table.alias;if(D.type!=="INNER"||!H||D.table.subtableCode)continue;let ye=D.on.left.tableAlias,Ye=D.on.right.tableAlias;if(!ye||!Ye)continue;let le=ye===H&&Ye!==H?Ye:Ye===H&&ye!==H?ye:void 0,tn=ye===H?D.on.right.field:D.on.left.field,Do=ye===H?D.on.left.field:D.on.right.field;if(!le)continue;let nn=[N.from,...N.joins.map(ke=>ke.table)].find(ke=>fe(ke)===le),dl;if(D.table.cteName!==null)dl=Oe(g.get(D.table.cteName),Do);else{let ke=(await Q(D.table.appId,u,n)).find(dt=>dt.code===de(D.table,Do));dl=ke?Ge(ke,D.table.appId):at(Do)}let fl,El,Jp,Xp;if(nn?.cteName!==null&&nn?.cteName!==void 0){let ke=g.get(nn.cteName);fl=Oe(ke,tn),y.has(nn.cteName)&&ke&&(Jp=ke.rows.length,El=ke.rows.map(dt=>Pp(dt[tn])),Xp=El.some(dt=>dt.length===0))}else if(nn){let ke=(await Q(nn.appId,u,n)).find(dt=>dt.code===de(nn,tn));fl=ke?Ge(ke,nn.appId):at(tn)}let xo=Vu({fieldType:dl?.fieldType,sourceSemantics:fl?.semantics,sourceRowCount:Jp,values:El,hasEmptyValue:Xp,maxInKeys:Ls});if(xo.kind==="FALLBACK"&&xo.reason==="JOIN_KEY_VALUES_RUNTIME"&&(j?.joinPlan.items.some(dt=>dt.targetAlias===H)||j?.joinPlan.serverFunctionConsumptions.some(dt=>dt.targetAlias===H)))continue;let cy=Wu(xo,Do,go),Qp=V.joinConditions.get(H),py=Qp?z(Qp):void 0,dy=V.joinRelations.get(H);G.set(H,{plan:xo,queries:cy,additionalQuery:py,additionalRelation:dy})}if(G.size>0&&Ig.set(N,G),N.orderBy.length>0||lt(N).some(D=>D.orderBy.length>0)){let D=await yo(N,u,n);if(N.orderMode!=="KINTONE_NATIVE")for(let H of D.semantics.values())H.fieldType==="STATUS"&&H.source&&s.add(H.source.appId);if(Ms(N)&&!C&&$?.allowed!==!1){let H=W.capability==="EXACT_PUSHDOWN"?Xe(N):"FULL_SCAN";c.set(N,(N.orderMode==="KINTONE_NATIVE"?Gi:Ki)({stmt:N,staticMode:H,whereCapability:W.capability,whereReasons:W.reasons,orderSemantics:D.semantics,maxRecords:r,hasKlike:_e(N.where)}))}}}else if(_.type==="VALIDATE"){let N=L;a.add(N.appId);let C=await Q(N.appId,u,n),S=new Map(C.filter(D=>!D.inSubtable).map(D=>[D.code,D])),w=new Set(C.filter(D=>D.inSubtable).map(D=>D.code)),O=Uu(N,C),F=Ar(N.checkGroups??[]),W=mp(N.where);for(let D of F){if(D.field!=="$id"&&!S.has(D.field)&&!w.has(D.field))throw xe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${D.field} \u306F APP${N.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(D.field!=="$id"&&!S.has(D.field)&&w.has(D.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${D.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let D of W){if(D!=="$id"&&!S.has(D)&&!w.has(D))throw new Error(`ArgumentError: WHERE field ${D} does not exist in APP${N.appId}.`);if(D!=="$id"&&!S.has(D)&&w.has(D))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${D} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let $=new Map([...S].map(([D,H])=>[D,H.fieldType]));$.set("$id","RECORD_NUMBER"),jn(N,$);let U=we(N.where,D=>D.field==="$id"?ne({fieldType:"__ID__"}):S.get(D.field)?.semantics??(S.has(D.field)?ne(S.get(D.field)):void 0));if(U.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vn(U)}).`);let K=new Map([...S].map(([D,H])=>[D,H.fieldType])),j=new Map([...S.values()].flatMap(D=>D.optionOrder?[[D.code,new Set(Object.keys(D.optionOrder))]]:[])),V=N.where===null?null:U.capability==="EXACT_PUSHDOWN"?N.where:Vl(N.where,{allowUnqualifiedFields:!0,fieldTypes:K,fieldOptions:j,allowKlike:!1}),G=O.some(D=>D.field.fieldType==="NUMBER");G&&(l.add(N.appId),await Ut(N.appId,u,n)),wg.set(N,{targetFields:O.map(D=>D.subtableCode?`${D.subtableCode}(${D.field.code})`:D.field.code),fetchFields:[...new Set(["$id",...O.map(D=>D.subtableCode??D.field.code),...W,...F.map(D=>D.field)])],subtables:new Map([...new Set(O.flatMap(D=>D.subtableCode?[D.subtableCode]:[]))].map(D=>[D,O.filter(H=>H.subtableCode===D).length])),capability:U,prefilter:V,numberPrecision:G})}else if(_.type==="UPDATE"||_.type==="DELETE"){if(a.add(L.appId),_.type==="UPDATE"&&L.applyBlocks?.length){let C=L,S=await Q(C.appId,u,n);if(Yt(C,S),Ws(C)){let w=S.filter(F=>!F.inSubtable),O=Ju(C.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))]]:[]))});bg.set(C,O)}}let N=L;(N.type!=="UPDATE"||!Ws(N))&&R(N)?.allowed!==!1&&await hn(N,u,n)}await Promise.all(Object.values(_).map(M))};if(await M(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&un(e)){let L=cn(e),{resolver:_,rewrites:N}=await Wn(L,u,n);N.length>0&&ip.set(L,N);let C=we(L.where,_),S=R(L);if(C.capability==="UNSUPPORTED"&&!S)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Vn(C)}).`);if(d.set(L,C),Ms(L)&&S?.allowed!==!1){let w=await yo(L,u,n);c.set(L,(L.orderMode==="KINTONE_NATIVE"?Gi:Ki)({stmt:L,staticMode:C.capability==="EXACT_PUSHDOWN"?Xe(L):"FULL_SCAN",whereCapability:C.capability,whereReasons:C.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:_e(L.where)}))}}for(let L of f)await Wc(L,u,g,n,!0);return{capabilities:d,orderPlans:c,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:m}}function op(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 Vb(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 aR(e){return e==="<>"?"!=":e}function At(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(At).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return At(t.expr);case"GROUPING_FIELD":return`GROUPING(${At(t.ref)})`;case"GROUPING_REF":return At(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${At(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${At(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(At).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(At).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Gn(e){try{let t=e;switch(t.type){case"BINARY":return`${At(t.left)} ${Vb(t.op)} ${At(t.right)}`;case"NULL_CHECK":return`${At(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Gn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Gn(t.right)})`;case"NOT":return`NOT (${Gn(t.expr)})`;case"GROUP":return`(${Gn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function ap(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?Hb(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=xc(l),d=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Dc(u)}: ${u}`,` ${Uc(u)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${d}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Gn(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=xc(s),u=s.left.type==="FIELD"?s.left.field:void 0,d=aR(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(u===void 0||p.field===u)&&p.operator===d);t.push(` ${Dc(l)}: ${l}`,` ${Uc(l)}: kintone server whole-WHERE exact`,` field: ${c?.field??u??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??d}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${sR(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=xc(s),u=s.left.type==="FIELD"?s.left.field:void 0,d=aR(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(u===void 0||p.field===u)&&p.operator===d);t.push(` ${Dc(l)}: ${l}`,` ${Uc(l)}: kintone server exact prefilter`,` field: ${c?.field??u??"(unknown)"} (${c?.fieldType??"unknown"})`,` operator: ${c?.operator??d}`)}let a=z(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Gn(o.residualWhere)}`,` ${sR(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 Hb(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,d=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||d)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function Dc(e){return re(e)?"relative date function":"kintone function"}function xc(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 Uc(e){return re(e)?"relative date evaluation":"kintone function evaluation"}function sR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&re(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var Cg=new WeakMap;function sp(e,t){if(Array.isArray(e))return e.map(r=>sp(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 d=t.get(u);return d===void 0?{type:"VARIABLE",name:u}:(i.add(l),{type:"STRING",value:d,fromVariable:!0})}),a={...n,args:o};return Cg.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,sp(i,t)]))}function no(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...Gp]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...$p]};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=no(l.query,s);s.set(l.name,u)}return no(e.query,s)}if(e.type==="UNION"){let s=no(e.left,t),l=no(e.right,t);return s.status==="STATIC"&&l.status==="STATIC"?{status:"STATIC",columns:s.columns}:{status:"DEFERRED"}}let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName!==null&&s.cteName!==Le);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...Fn([],[s]).columns);return{status:"STATIC",columns:a}}function Yb(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function jb(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(d=>d.table)];if(u.some(d=>d.cteName!==null)&&u.every(d=>d.cteName===Le||d.cteName!==null&&r.has(d.cteName))){let d=await Dr(l,t,n,r);d&&i.set(l,d)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var zb=Symbol("ksql.explainFetchPlan");function Pg(e,t){e[zb]=t}async function Og(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=Me,u=!0,d,c,p,f,E,m={surface:"DOCUMENT_ONLY"}){let R=Il(f??new Date,E),g=jt({recursiveCteMaxDepth:d,recursiveCteMaxRows:c,recursiveCteMaxExpansions:p}),y=mR(r);try{let{statements:A,meta:h}=cm(e,{import:a}),I=mi(A),b=$u(A,n),v=CR(A,b),P=new Map;for(let[N,C]of Object.entries(R.values))P.set(Hr(N),{type:"string",value:C});let k=new Map,x=new Map,M=[],L=[];for(let N=0;N<A.length;N++){let C=A[N],S=C.type==="SET_VARIABLE"?C.expr.type==="SCALAR_SUBQUERY"?{...C,expr:po(C.expr,P)}:C:po(C,P),w=sp(S,k);Ze(w);let O=await Io(w,t,y),F=Yb(x),W=u?await Ng(w,t,y,i,O,F):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:O};if(!u){let D=await jb(w,t,y,F);for(let[H,ye]of D)W.plainGroupByPlans.set(H,ye)}let $;if(w.type==="CREATE_TEMP_TABLE"){let D=new Map([...x].map(([ye,Ye])=>[ye,Ye.status==="STATIC"?{status:"STATIC",columns:Ye.columns}:{status:"DEFERRED"}])),H=no(w.query,D);$=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"},x.set(w.name,$)}let U={sources:[]},K=O.hasServerOnlyWhereFunction&&!O.allowed?ap(O):[...ap(O),..._g(Xb(w,I.statements[N],W.capabilities,W.orderPlans,W.plainGroupByPlans,s,l,U,x,$,{maxRecords:i,recursiveLimits:g}),o)],j=op(W),V=h.dialect===1?qb(w,I.statements[N],i,s):[],G=await ng(w,y,m);M.push({index:N,type:I.statements[N].statementType,plan:K.length===0?[...j,...G,...V]:[K[0],...j,...K.slice(1),...G,...V]}),L.push({index:N,fetch:Wp(U.sources),sources:U.sources}),w.type==="DROP_TEMP_TABLE"&&x.delete(w.name),(C.type==="SET_VARIABLE"||C.type==="DECLARE_VARIABLE")&&(P.set(C.name,C.type==="DECLARE_VARIABLE"&&C.annotation==="RELATIVE_DATE"?{type:"relative-date",value:v.get(C.name)}:C.type==="SET_VARIABLE"&&C.expr.type==="ARRAY"?{type:"array",elements:C.expr.elements.map(D=>({type:"string",value:D.value}))}:{type:"string",value:`@${C.name}`,placeholder:!0}),C.type==="DECLARE_VARIABLE"&&C.annotation===void 0&&(C.default.type==="STRING"||C.default.type==="NUMBER")&&k.set(C.name,C.default.type==="STRING"?C.default.value:q(C.default)))}let _={statementCount:A.length,statements:M};return Pg(_,{statements:L}),_}finally{ag(y)}}function qb(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=Jb(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/vr)} \u56DE\uFF08${e.values.length} \u884C\u3001${vr} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/vr)} \u56DE\u3001${vr} \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 Jb(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 Xb(e,t,n,r,i,o=100,a=Me,s={sources:[]},l=new Map,u,d=Lg()){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 ${st} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,..._r(e.query,t,n,r,i,s,"main",l,d).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=uo(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:",..._r(e.expr.query,c,n,r,i,s,"main",l,d).map(p=>` ${p}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return _r(e.query,t,n,r,i,s,"main",l,d);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"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,E)=>{c.push(p.length>1?` subquery[${E+1}]:`:" subquery:");let m=uo(f.query)?t:{...t,tempTablesReferenced:[]};c.push(..._r(f.query,m,n,r,i,s,"main",l,d).map(R=>` ${R}`))}),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"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,E)=>{c.push(p.length>1?` subquery[${E+1}]:`:" subquery:");let m=uo(f.query)?t:{...t,tempTablesReferenced:[]};c.push(..._r(f.query,m,n,r,i,s,"main",l,d).map(R=>` ${R}`))}),c}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?tl(e,void 0,n,r,o,a,1e4,i):_r(e,t,n,r,i,s,"main",l,d)}function uo(e){if(Array.isArray(e))return e.some(uo);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(uo)}return!1}function _r(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=Lg()){if(t.tempTablesReferenced.length===0)return tl(e,void 0,n,r,100,Me,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 d=t.tempTablesReferenced.map(f=>[f,s.get(f)]);for(let[f,E]of d)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(...vg(c,i?.get(c),d.some(([,f])=>f?.status!=="STATIC"))),u.push(d.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),u.push(" records API: none");let p=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return p.length>0&&u.push(` app: ${p.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 lp=new WeakMap;function Lg(){return{maxRecords:1e4,recursiveLimits:jt({})}}async function Qb(e,t,n,r,i,o=100,a=Me,s,l,u,d,c=!0,p={surface:"DOCUMENT_ONLY"}){let f=jt({recursiveCteMaxDepth:l,recursiveCteMaxRows:u,recursiveCteMaxExpansions:d}),E=s??await Io(e.query,t,n),m=c?await Ng(e.query,t,n,r,E,lp.get(e)):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:E},R={sources:[]},g=ap(E),y=E.hasServerOnlyWhereFunction&&!E.allowed?[...op(m),...g]:[...op(m),...g,..._g(tl(e.query,void 0,m.capabilities,m.orderPlans,o,a,r,m.plainGroupByPlans,!0,R,"main",f),i)],A=await ng(e,n,p),h=Ds([...y,...A],R.sources),I={type:"SELECT",columns:["plan"],rows:h.map(b=>({plan:b})),rowCount:h.length};return Pg(I,{statements:[{index:0,fetch:Wp(R.sources),sources:R.sources}]}),I}function _g(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 tl(e,t,n,r,i=100,o=Me,a=1e4,s,l=!0,u,d="main",c=jt({})){let p=u??{sources:[]};if(e.type==="UNION"){let E=rN(e,n,r,s,p);return l?Ds(E,p.sources):E}if(e.type==="WITH"){let E=oN(e,n,r,s,p,a,c);return l?Ds(E,p.sources):E}if(e.type==="INSERT")return lN(e,t,i,o);if(e.type==="INSERT_SELECT")return uN(e,t,n,r,s);if(e.type==="UPSERT")return fN(e,t,i,o);if(e.type==="UPSERT_SELECT")return EN(e,t,n,r,s);if(e.type==="UPDATE")return cN(e,t,n,r,i,o,a);if(e.type==="DELETE")return dN(e,t);if(e.type==="REORDER")return mN(e,t);if(e.type==="VALIDATE")return tN(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let R=e.targets?.filter(g=>g.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...R.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",m=e.targets?.some(R=>R.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",...m?[" 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&&m?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...m?[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=St(e,t,n,r,s,!0,!0,p,d);return l?Ds(f,p.sources):f}var lR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Wp(e){return e.reduce((t,n)=>lR[t]>=lR[n.fetch]?t:n.fetch,"none")}function Ds(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${Wp(t).toUpperCase()}`,...n]}function Zb(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function ws(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:Zb(o)};return e.sources.push(s),s}function eN(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function bs(e){return` fetch: ${eN(e)}`}function tN(e,t){let n=wg.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?Ep:fp).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 nN(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 vg(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 St(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),d=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),p=o&&u!==void 0&&zR(e,u),f=p?"COUNT_TOTAL_COUNT":d?.kind==="CANONICAL_LOCAL"||u&&u.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Xe(e),E=aN(e);u&&u.capability!=="EXACT_PUSHDOWN"&&E.push(...u.reasons.map(h=>h.code));let m=[],R=PE(e,Eo.get(e)?.allItems.length);t&&m.push(t),m.push(` mode: ${f}`);for(let h of Bp.get(e)??[]){if(m.push(` cross join: ${h.leftLabel} \xD7 ${h.rightLabel}`),m.push(` left rows: ${h.leftRows??"runtime (left intermediate rows)"}`),m.push(` right rows: ${h.rightRows??`runtime (${h.rightRuntimeLabel})`}`),h.plan)m.push(` rows: ${h.plan.outputRows}`),m.push(` row guard: ${h.plan.outputRows} / ${h.plan.limit}`),m.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);m.push(` rows: runtime (${I} \xD7 ${b})`),m.push(` row guard: runtime checked / ${Hu}`),m.push(" guard timing: after complete source fetch, before row materialization")}m.push(" records API: none")}for(let h of ip.get(e)??vR.get(e)??[])m.push(nN(h));R&&(m.push(` grouping source: ${R.source}`),m.push(` grouping sets: ${R.expandedSetCount} (limit: ${R.setLimit})`),m.push(` grouping items: ${R.groupingItemCount} (limit: ${R.itemLimit})`),m.push(` grouping output rows: runtime checked (limit: ${R.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),m.push(...vg(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(Dg).join(", ")}`),h.windowKind==="VALUE"?m.push(` window ${h.alias}: ${h.valueFunc}(offset=${h.offset}) OVER (${I.join(" ")})`):h.windowKind==="AGGREGATE"&&(m.push(` window ${h.alias}: ${h.aggFunc} OVER (${I.join(" ")})`),m.push(h.frame===null?" frame: PARTITION ENTIRE":` frame: ${h.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${h.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let h=e.where===null?"":z(e.where);if(m.push(` app: APP${e.from.appId} (${e.from.appId})`),m.push(` kintone query: ${h}${h?" ":""}limit 1`),a){let I=ws(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${h}${h?" ":""}limit 1`);m.push(bs(I))}return m.push(" fields: $id"),m.push(" fetch API: GET records.json (totalCount=true)"),m.push(" REST execution: single GET"),m.push(" record limit: maxRecords/onLimitReached not applied"),m.push(" fallback: full record scan when totalCount is missing or invalid"),m.push(" search abort: fail-closed (SearchAbortedError)"),m}d?(m.push(` order plan: ${d.kind}`),d.reasonCodes.length>0&&m.push(` order reason: ${d.reasonCodes.join(", ")}`),d.kind==="KORDER_NATIVE"?(m.push(" order semantics: kintone native (not kSQL canonical)"),m.push(" REST execution: single GET")):d.kind==="KORDER_CURSOR"&&(m.push(" order semantics: kintone native (not kSQL canonical)"),m.push(" fetch API: POST/GET/DELETE records/cursor.json"),m.push(" cursor page size: 500"),m.push(` scan rows: ${d.scanRows}`))):R&&m.push(" order plan: CANONICAL_LOCAL");let g=d&&!d.requiresCompleteInput?{...e,orderBy:[]}:e,y=En(g);d?.requiresCompleteInput&&y.add("LOCAL_ORDER");let A=Je(e.where);if(y.size>0&&(!A||R!==null)&&(m.push(" complete input: required (onLimit=truncate disabled)"),m.push(` complete input reason: ${[...y].join(", ")}`),m.push(" onLimit=truncate: disabled")),A)return m.push(" predicate: constant false"),m.push(" records API access: none"),m.push(` app: APP${e.from.appId} (${e.from.appId})`),m;if(f==="FULL_SCAN"&&E.length>0&&m.push(` reason: ${E.join(", ")}`),f==="SIMPLE"){let h=ea(d?.kind==="CANONICAL_REST_TOP_N"?VR(e):e);m.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=d?.kind==="KORDER_CURSOR"?Xu(e):h.query;if(m.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let b=I?"EXACT":"ALL";m.push(bs(ws(s,e.from.appId,e.from.alias,l,b,I)))}m.push(` fields: ${h.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.fields.join(", ")}`)}else{let h=Sg.get(e),I=Tg.get(e),b=I??Ln(e);if(e.joins.length>0)if(h){if(m.push(" join pushdown plan: applied (runtime metadata resolved)"),m.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),m.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),h.joinPlan.serverFunctionCandidate&&m.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${h.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),m.push(` client residual: ${h.joinPlan.residualWhere===null?"(none)":Gn(h.joinPlan.residualWhere)}`),m.push(` KLIKE applied nodes: ${h.joinPlan.appliedKlikes.size}`),m.push(` KLIKE unapplied nodes: ${h.joinPlan.allKlikes.length-h.joinPlan.appliedKlikes.size}`),h.joinPlan.residualWhere!==null)for(let S of h.joinPlan.rejections)m.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";m.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),m.push(` join pushdown not applied: ${S}`)}let v=On(e,e.from,c),P=e.from.alias?` AS ${e.from.alias}`:"",k=b.mainCondition,x=$R(e),M=e.joins.length===0&&u?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Gt(e.where)?z(e.where):"",L=e.from.alias?h?.queriesByAlias.get(e.from.alias):void 0,_=L||(k!==null?z(k):M||"(\u5168\u4EF6\u53D6\u5F97)");m.push(` app: APP${e.from.appId}${P} (${e.from.appId})`),m.push(` kintone query: ${_}`);let N=h?.joinPlan.items.find(S=>S.targetAlias===e.from.alias),C=h?.joinPlan.serverFunctionConsumptions.find(S=>S.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let S=!I&&x!==null,w=_==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":S?"PREFILTERED":N?.relation==="exact"||C||M!==""?"EXACT":"PREFILTERED";m.push(bs(ws(s,e.from.appId,e.from.alias,l,w,_,S)))}N||C?(m.push(` pushdown applied: ${L}`),m.push(` relation: ${N?.relation??"exact"}`)):I&&k!==null?(m.push(` pushdown applied: ${_}`),m.push(` relation: ${b.mainRelation??"exact"}`)):x!==null&&(!I||io(x))&&m.push(` pushdown candidate: ${z(x)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),m.push(` fields: ${v.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":v.join(", ")}`);for(let S of e.joins){let w=On(e,S.table,c),O=S.table.alias?` AS ${S.table.alias}`:"",F=S.type==="INNER"?"JOIN":`${S.type} JOIN`,W=S.table.alias?b.joinConditions.get(S.table.alias)??null:null,$=S.table.alias&&!S.table.subtableCode&&S.table.cteName===null&&e.where?si(e.where,{tableAlias:S.table.alias}):null,U=S.table.alias?h?.queriesByAlias.get(S.table.alias):void 0,K=S.table.alias?Ig.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(le=>le.table)].some(le=>le.cteName!==null),V=U||(W!==null?z(W):K?.additionalQuery?K.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),G=j||K?.plan.kind==="RANGE_CANDIDATE"||K?.plan.kind==="FALLBACK"&&K.plan.reason==="JOIN_KEY_VALUES_RUNTIME",D=K&&K.queries.length>0?K.queries.map(le=>V!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${le}) and (${V})`:le):[G?"(runtime source keys)":V],H=D.join(" | ");m.push(` ${F}: APP${S.table.appId}${O} (${S.table.appId})`);for(let le of D)m.push(` kintone query: ${le}`);let ye=h?.joinPlan.items.find(le=>le.targetAlias===S.table.alias),Ye=h?.joinPlan.serverFunctionConsumptions.find(le=>le.targetAlias===S.table.alias);if(a&&S.table.cteName===null){let le=G||!K&&!I&&$!==null,tn=H==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":le?"PREFILTERED":K?.plan.kind==="IN"&&ye?.relation!=="superset"&&K.additionalRelation!=="superset"||ye?.relation==="exact"||Ye?"EXACT":"PREFILTERED";m.push(bs(ws(s,S.table.appId,S.table.alias,"join",tn,H,le)))}if(K)if(K.plan.kind==="RANGE"){m.push(" join key prefilter: range");for(let le of D)m.push(` pushdown applied: ${le}`);m.push(" relation: superset")}else if(K.plan.kind==="IN"){let le=ye?.relation==="superset"||K.additionalRelation==="superset"?"superset":"exact";m.push(" join key prefilter: in");for(let tn of D)m.push(` pushdown applied: ${tn}`);m.push(` relation: ${le}`)}else K.plan.kind==="RANGE_CANDIDATE"?(m.push(" join key prefilter: range candidate"),m.push(" relation: superset"),m.push(` join key prefilter reason: ${K.plan.reason}`)):K.plan.kind==="FALLBACK"&&(m.push(K.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),m.push(` join key prefilter reason: ${K.plan.reason}`));else j?(m.push(" join key prefilter: runtime candidate"),m.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),$!==null&&m.push(` pushdown candidate: ${z($)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):ye||Ye?(m.push(` pushdown applied: ${U}`),m.push(` relation: ${ye?.relation??"exact"}`)):I&&W!==null?(m.push(` pushdown applied: ${V}`),m.push(` relation: ${b.joinRelations.get(S.table.alias)??"exact"}`)):$!==null&&(!I||io($))&&m.push(` pushdown candidate: ${z($)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);m.push(` fields: ${w.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":w.join(", ")}`)}}return m.push(...sN(e,n,r,i,s)),m}function rN(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(...St(l,`[union:${u+1}]`,t,n,r,!0,!0,i,"union"))}),s}function iN(e){let t=new Map,n=a=>fe(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Le?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),u=[];for(let d of a.joins){let c=r(d.table),p=n(d.table);if(d.type==="CROSS"){let f=s!==null&&c!==null?Ui(s,c):null;u.push({leftLabel:l,rightLabel:p,leftRows:s,rightRows:c,plan:f,rightRuntimeLabel:d.table.cteName===null?`APP${d.table.appId} fetched rows`:`${p} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${p}`}else s=null,l=`${l} ${d.type} JOIN ${p}`}return u.length>0&&Bp.set(a,u),Je(a.where)?s=0:a.where!==null&&(s=null),ee(a).type!=="NONE"||a.distinct||a.having!==null||Kt(a)||lt(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,Sa(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 oN(e,t,n,r,i={sources:[]},o=1e4,a=jt({})){iN(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 d of eg(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let c=`APP${d.appId}${d.subtableCode?`$${d.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(...St(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,d=Cg.get(u);if(u.args.some(E=>E.type==="VARIABLE")){let E=m=>{let R=u.args[m];return R?R.type==="VARIABLE"?`@${R.name} (runtime)`:m<2?"literal":R.type==="NUMBER"?q(R):R.value:m===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 / ${Bt}`," records API: none","");continue}let p=Sa(u),f=p.kind==="DATE"?`${p.step} ${String(p.dateUnit??"DAY").toLowerCase()}${Math.abs(p.step)===1?"":"s"}`:String(p.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${u.columnAlias}`,` series type: ${p.kind}${d?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${d?.variableNames.has(0)?`@${d.variableNames.get(0)} (DECLARE default; value hidden)`:p.start}`,` stop: ${d?.variableNames.has(1)?`@${d.variableNames.get(1)} (DECLARE default; value hidden)`:p.stop}`,` step: ${f}`,` rows: ${p.rowCount}${d?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${p.rowCount} / ${Bt}`,...d?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...tl(e.query,"[main]",t,n,100,Me,o,r,!1,i,"main",a)),un(e)){s.push("");let l=cn(e);s.push(...St(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function aN(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"),us(e.columns)&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),lt(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"),Gt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),on(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 sN(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(...St(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...St(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...St(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(...St(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function lN(e,t,n=en,r=Me){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,...Vp(ja(e,n,r))]:a}function uN(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(...St(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function cN(e,t,n,r,i=100,o=Me,a=1e4){if(e.applyBlocks?.length)return pN(e,t,i,o,a);let s=Yf(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),u=xa(e),d=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?To(e.from.targetFilter):"(none)"}`)}else c.push(` kintone query: ${To(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(Je(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),d&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!u&&!d&&p.push("\u5358\u7D14 SET"),c.push(` set type: ${p.join(", ")}`),u){let f=RN(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(` ${yN(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(c.push(""),c.push(...St(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return c}function pN(e,t,n,r,i){let o=ja(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 m=E.selector.where;return m.type==="BINARY"&&m.op==="="&&m.left.type==="FIELD"&&m.left.tableAlias===null&&m.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),d=[...new Set(a.targets.flatMap(E=>E.operations.map(m=>m.kind)))],c=d.includes("REMOVE"),p=bg.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":z(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${To(e.where)}`,`parent cardinality: ${$t(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(E=>`${E.field} (${E.targetKind})`).join(" | ")}`,`operations: ${d.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",...Vp(o)]}function dN(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${To(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(Je(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function fN(e,t,n=en,r=Me){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,...Vp(ja(e,n,r))]:a}function Vp(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 EN(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(...St(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function mN(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(Dg).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,Je(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: ${To(e.where)}`),o}function Dg(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function To(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 RN(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&Vs(n,t),n.type==="STRING_FUNC"&&Vs(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&co(n,t);return[...t]}function Vs(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"&&(Vs(e.left,t),Vs(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"&&co(n,t)}async function xg(e,t,n,r,i){let o=Dp(e),a=await Ne(e.appId,n,r),s=t.cteName,l=s!==null?new Map((i?.get(s)?.columns??[]).map(p=>[p,i?.get(s)?.columnMeta?.get(p)?.fieldType??(i?.get(s)?.columnMeta?.get(p)?.semantics?.compareMode==="number"?"NUMBER":"SINGLE_LINE_TEXT")])):await Ne(t.appId,n,r),u=new Set,d=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw xe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);u.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw xe(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else throw xe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),E=p.field==="$id"||l.has(p.field);if(!f)throw xe(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(E)throw xe(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);u.add(p.field)}let c=new Map;for(let[p,f]of a)c.set(p,f),c.set(`APP${e.appId}.${p}`,f);c.set("$id","RECORD_NUMBER"),c.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)c.set(`${t.alias}.${p}`,f);return{targetFields:[...u],sourceFields:[...d],evaluationTypes:c}}function gN(e,t,n){if(!e)return{};let r=Jt(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 co(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"&&co(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(co(e.left,t),co(e.right,t))}function yN(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} = ${Ug(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 Ug(e){return`${uR(e.left)} ${e.op} ${uR(e.right)}`}function uR(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"?`(${Ug(e)})`:"..."}var ge=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 hN=2,nl=5,AN=3e4,SN=10*6e4+3e4,rl=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??hN;if(!Number.isSafeInteger(r)||r<1||r>nl)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${nl}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??AN,this.quarantineMs=n.quarantineMs??SN}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 is(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>nl)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${nl}.`)}};function TN(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function IN(e,t=r=>new Promise(i=>setTimeout(i,r)),n=TN){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 wN(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 Mg(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 wN(IN(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function kg(e){return Fg(e,NN(e))}function Fg(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=CN(o.options),s=PN(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:il(o.minValue),maxValue:il(o.maxValue),minLength:il(o.minLength),maxLength:il(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)&&!bN.has(o.type)};l.semantics=ne(l),i.push(l),o.fields&&i.push(...Fg(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var bN=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 il(e){return e==null||e===""?void 0:e}function CN(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 PN(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Kg(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 Gg(e){return e?.includes(ON)===!0}var Lo=class extends Error{constructor(n,r,i){super(i);this.status=n;this.code=r;this.name=r??"KintoneHttpError"}};function LN(e){let t=_N(e.baseUrl),n=e.guestSpaceId===void 0?"/k/v1":`/k/guest/${vN(e.guestSpaceId,"guestSpaceId")}/v1`,r=e.fetch??globalThis.fetch;if(typeof r!="function")throw new TypeError("fetch is required.");let i=e.cursorMaxActive??2;if(!Number.isSafeInteger(i)||i<1||i>5)throw new RangeError("cursorMaxActive must be an integer from 1 to 5.");let o=new rl(new URL(t).host,{maxActive:i});async function a(l,u,d,c){let p=new Headers({Accept:"application/json"});if(e.auth.type==="apiToken"){let R=typeof e.auth.apiToken=="function"?e.auth.apiToken(d):e.auth.apiToken;p.set("X-Cybozu-API-Token",R)}else p.set("X-Cybozu-Authorization",DN(`${e.auth.username}:${e.auth.password}`));c!==void 0&&p.set("Content-Type","application/json");let f=new AbortController,E=setTimeout(()=>f.abort(),e.timeoutMs??3e4);E.unref?.();let m;try{m=await r(`${t}${n}${l}`,{method:u,headers:p,signal:f.signal,...c===void 0?{}:{body:JSON.stringify(c)}})}finally{clearTimeout(E)}if(!m.ok){let R=await m.text(),g,y=`kintone API error: HTTP ${m.status}`;try{let A=JSON.parse(R);typeof A.code=="string"&&(g=A.code),typeof A.message=="string"&&(y=A.message)}catch{R!==""&&(y=`${y}: ${R}`)}throw new Lo(m.status,g,y)}return{body:await m.json(),response:m}}return{async getRecords(l){let u=new URLSearchParams({app:String(l.app),query:l.query});l.fields.forEach(p=>u.append("fields[]",p)),l.totalCount===!0&&u.set("totalCount","true");let{body:d,response:c}=await a(`/records.json?${u}`,"GET",l.app);return Gg(c.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d},async openCursor(l){let u=await o.acquire(),d;try{d=(await o.runCreate(()=>a("/records/cursor.json","POST",l.app,{app:l.app,query:l.query,size:l.size,...l.fields&&l.fields.length>0?{fields:l.fields}:{}}))).body}catch(c){throw c instanceof Lo?u.release():u.quarantine(),c instanceof Lo?c:new os(c)}return Mg(Number(d.totalCount),{get:async()=>(await a(`/records/cursor.json?id=${encodeURIComponent(d.id)}`,"GET",l.app)).body,delete:async()=>{await a("/records/cursor.json","DELETE",l.app,{id:d.id})},onReleased:()=>u.release(),onReleaseUnknown:()=>u.quarantine()})},async postRecords(l){return{ids:(await a("/records.json","POST",l.app,l)).body.ids}},async putRecords(l){await a("/records.json","PUT",l.app,l)},async upsertRecords(l){return(await a("/records.json","PUT",l.app,{app:l.app,upsert:!0,records:l.records})).body},async deleteRecords(l){await a("/records.json","DELETE",l.app,l)},async getApps(){let l=[];for(let u=0;;u+=100){let d=new URLSearchParams({limit:"100",offset:String(u)}),c=await a(`/apps.json?${d}`,"GET",0);if(l.push(...c.body.apps.map(p=>({appId:Number(p.appId),name:p.name,description:p.description}))),c.body.apps.length<100)return l}},async getFields(l){let u=await a(`/app/form/fields.json?app=${encodeURIComponent(String(l))}`,"GET",l);return kg(u.body.properties)},async getNumberPrecision(l){let u=await a(`/app/settings.json?app=${encodeURIComponent(String(l))}`,"GET",l);return cE(u.body)},async getProcessStatuses(l){let u=await a(`/app/status.json?app=${encodeURIComponent(String(l))}&lang=user`,"GET",l);return{enable:u.body.enable,states:Kg(u.body.states)}}}}function _N(e){let t=new URL(e);if(t.protocol!=="https:"&&t.protocol!=="http:")throw new TypeError("baseUrl must use http or https.");return t.toString().replace(/\/+$/,"")}function vN(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive integer.`);return e}function DN(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",n=new TextEncoder().encode(e),r="";for(let i=0;i<n.length;i+=3){let o=n[i],a=n[i+1],s=n[i+2];r+=t[o>>2],r+=t[(o&3)<<4|(a??0)>>4],r+=i+1<n.length?t[(a&15)<<2|(s??0)>>6]:"=",r+=i+2<n.length?t[s&63]:"="}return r}var oe=class extends Error{constructor(t,n,r){super(n),this.name="KsqlFlowError",this.code=t,this.cause=r}};function ol(e){if(e instanceof oe)return e;if(e instanceof Error){let i=e.name!=="Error"?e.name:e.message.match(/^([A-Za-z][A-Za-z0-9]*Error):/)?.[1]??"FLOW_ERROR";return new oe(i,e.message,e)}let t=e,n=typeof t?.code=="string"?t.code:"FLOW_ERROR",r=typeof t?.message=="string"?t.message:String(e);return new oe(n,r,e)}var Hp=class extends Error{constructor(t,n,r){super(n),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}};function xN(e){let t=new Map;for(let n of e){if(n.name.length===0)throw new oe("ArgumentError","ArgumentError: IMPORT source name must not be empty.");if(t.has(n.name))throw new oe("ImportSourceDuplicateError","ImportSourceDuplicateError: an IMPORT source name is registered more than once.");t.set(n.name,n.loader)}return n=>t.get(n)}var Yp=new WeakMap;function Bg(e,t){Yp.set(e,t)}function Wg(e){Yp.delete(e)}function $r(e,t){return new oe(e,`${e}: ${t}`)}function $g(e){return e>=65&&e<=90||e>=97&&e<=122||e===95||e===36||e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}function UN(e){let t=Array.from(e);return t.length>0&&$g(t[0].codePointAt(0))&&t.slice(1).every(n=>{let r=n.codePointAt(0);return $g(r)||r>=48&&r<=57})}function Vg(e,t){if(t===void 0||t.length===0)return new Set;let n=new Set;for(let o of t){let a=o?.name;if(typeof a!="string"||a.startsWith("#")||!UN(a))throw $r("ExportSinkInvalidNameError","an export sink name must be a valid temp-table identifier without a leading #.");if(n.has(a))throw $r("ExportSinkDuplicateError","an export sink name is declared more than once.");n.add(a)}let r=new Set([...n].map(o=>`#${o}`));for(let o of r)if(e.filter(s=>s.type==="CREATE_TEMP_TABLE"&&s.name===o).length>1)throw $r("ExportSinkDuplicateError","an export sink must correspond to exactly one CREATE TEMP TABLE statement.");let i=mi([...e]);for(let o of r){let a=i.statements.filter(u=>u.tempTablesCreated.includes(o)).map(u=>u.index);if(a.find(u=>e[u]?.type==="CREATE_TEMP_TABLE")===void 0)throw a.length>0?$r("ExportSinkInvalidTargetError","an export sink cannot target a DML or validation result."):$r("ExportSinkNotFoundError","an export sink has no corresponding CREATE TEMP TABLE statement.");let l=!1;for(let u of i.statements)u.tempTablesCreated.includes(o)&&(l=!0),u.tempTablesDropped.includes(o)&&(l=!1);if(!l)throw $r("ExportSinkNotFoundError","the export sink temp table does not exist in the final batch state.")}return r}function Hg(e){return Yp.get(e)}function MN(e){if(e===null||typeof e!="object")return!1;let t=e;switch(t.type){case"INSERT":return Array.isArray(t.createdIds)&&t.createdIds.every(n=>Array.isArray(n)&&n.every(r=>typeof r=="string"))&&typeof t.insertedCount=="number";case"UPDATE":return typeof t.updatedCount=="number";case"DELETE":return typeof t.deletedCount=="number";case"UPSERT":return typeof t.insertedCount=="number"&&typeof t.updatedCount=="number";default:return!1}}var It=class extends Error{constructor(t,n,r){super(`${t}: ${n}`),this.name=t,this.code=t,r!==void 0&&Object.defineProperty(this,"cause",{value:r,enumerable:!1,configurable:!1,writable:!1})}},al=class extends It{constructor(t){super("ExportSinkDuplicateHeaderError",t)}},_o=class extends It{constructor(t){super("ExportSinkUnsupportedColumnError",t)}},pt=class extends It{constructor(t){super("ExportSinkInvalidValueError",t)}},Br=class extends It{constructor(t,n){super("ExportSinkInvalidTimezoneError",t,n)}},sl=class extends It{constructor(t){super("ExportSinkEncoderRequiredError",t)}},ll=class extends It{constructor(t,n){super("ExportSinkEncodingError",t,n)}},ul=class extends It{constructor(t){super("ExportSinkInvalidEncoderResultError",t)}};var Yg=1024,kN=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))[eE]([+-]?\d+)$/;function jg(e){let t=kN.exec(e);if(!t)throw new pt("numeric value has invalid exponential notation.");let n=t[1],r=t[2]??"",i=t[3]??t[4]??"",o=r+i;if(/^0+$/.test(o))return`${n}0`;let a=BigInt(r.length)+BigInt(t[5]),s=BigInt(o.length),l;if(a<=0n?l=BigInt(n.length+2+o.length)-a:a>=s?l=BigInt(n.length)+a:l=BigInt(n.length+o.length+1),l>BigInt(Yg))throw new pt(`expanded numeric value exceeds ${Yg} characters.`);let u=Number(a);return u<=0?`${n}0.${"0".repeat(-u)}${o}`:u>=o.length?`${n}${o}${"0".repeat(u-o.length)}`:`${n}${o.slice(0,u)}.${o.slice(u)}`}var FN=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$/;function jp(e){let t=new Date(0);return t.setUTCFullYear(e.year,e.month-1,e.day),t.setUTCHours(e.hour,e.minute,e.second,0),t.getTime()}function zg(e){let t=FN.exec(e);if(!t)throw new pt("DATETIME value is not a valid UTC ISO 8601 string.");let n={year:Number(t[1]),month:Number(t[2]),day:Number(t[3]),hour:Number(t[4]),minute:Number(t[5]),second:Number(t[6]),fraction:t[7]??""},r=jp(n),i=new Date(r);if(i.getUTCFullYear()!==n.year||i.getUTCMonth()+1!==n.month||i.getUTCDate()!==n.day||i.getUTCHours()!==n.hour||i.getUTCMinutes()!==n.minute||i.getUTCSeconds()!==n.second)throw new pt("DATETIME value is not a valid UTC ISO 8601 instant.");let o=Number((n.fraction.slice(1)+"000").slice(0,3));return{parts:n,instant:new Date(r+o)}}function qg(e){try{return new Intl.DateTimeFormat("en-CA-u-nu-latn",{timeZone:e,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",hourCycle:"h23"})}catch(t){throw new Br(`timezone ${JSON.stringify(e)} is not a supported IANA timezone.`,t)}}function Wr(e,t){let n=e.find(r=>r.type===t)?.value;if(n===void 0)throw new Br("timezone formatter did not return the required date parts.");return Number(n)}function Jn(e){return String(e).padStart(2,"0")}function Jg(e,t){let{parts:n,instant:r}=zg(e),i=t.formatToParts(r),o={year:Wr(i,"year"),month:Wr(i,"month"),day:Wr(i,"day"),hour:Wr(i,"hour"),minute:Wr(i,"minute"),second:Wr(i,"second")},a=(jp(o)-jp(n))/1e3;if(!Number.isInteger(a))throw new Br("timezone produced a non-integral offset.");let s=a<0?"-":"+",l=Math.abs(a),u=Math.floor(l/3600),d=Math.floor(l%3600/60);return`${String(o.year).padStart(4,"0")}-${Jn(o.month)}-${Jn(o.day)}T${Jn(o.hour)}:${Jn(o.minute)}:${Jn(o.second)}${n.fraction}${s}${Jn(u)}:${Jn(d)}`}function Xg(e){zg(e)}var KN=new Set(["CHECK_BOX","MULTI_SELECT","CATEGORY"]),GN=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),$N=new Set(["NUMBER","CALC","KSQL_NUMBER"]);function Zg(e,t){for(let n of e){let r=t?.get(n)?.fieldType;if(r==="SUBTABLE")throw new _o(`column ${JSON.stringify(n)} is a SUBTABLE; select the APP$\u660E\u7D30 virtual table to export subtable rows.`);if(r==="FILE")throw new _o(`column ${JSON.stringify(n)} is a FILE field; attachment export is not supported.`)}}function Xn(e,t,n){throw new pt(`data row ${e}, column ${JSON.stringify(t)} ${n}`)}function Qg(e,t,n){let r;try{r=JSON.parse(e)}catch{return Xn(t,n,"does not contain a valid JSON array.")}return Array.isArray(r)?r:Xn(t,n,"does not contain a JSON array.")}function ey(e,t,n,r,i){if(e==null||e==="")return"";if(typeof e!="string")return Xn(n,t,"has a non-string value.");let o=r?.fieldType;if(o&&KN.has(o)){let a=Qg(e,n,t);return a.every(s=>typeof s=="string")?a.join(`
19
+ `):Xn(n,t,"must contain only string array elements.")}if(o&&GN.has(o)){let a=Qg(e,n,t),s=[];for(let l of a){if(l===null||typeof l!="object"||Array.isArray(l)||typeof l.code!="string")return Xn(n,t,"must contain objects with string code properties.");s.push(l.code)}return s.join(`
20
+ `)}if(o&&$N.has(o)&&/[eE]/.test(e))try{return jg(e)}catch(a){if(a instanceof pt)return Xn(n,t,a.message.replace(/^ExportSinkInvalidValueError: /,""));throw a}if(o==="DATETIME")try{return i?Jg(e,i):(Xg(e),e)}catch(a){if(a instanceof pt)return Xn(n,t,"has an invalid DATETIME value.");throw a}return e}function ty(e={}){let t=e.encoding??"utf8";if(t==="utf8")return{encoding:t};let n=e.encoder;if(!n||n.encoding!=="sjis"||typeof n.encode!="function")throw new sl('encoding "sjis" requires an encoder whose encoding is "sjis" and which has an encode function.');return{encoding:t,encoder:n}}function BN(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function ny(e,t){if(t.encoding==="utf8")return new TextEncoder().encode(e);let n;try{n=t.encoder.encode(e)}catch(r){throw new ll("Shift_JIS encoder failed to encode the CSV payload.",r)}if(!BN(n))throw new ul("Shift_JIS encoder must return a Uint8Array.");return n}function ry(e){return/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function WN(e){let t=new Set;for(let n of e){if(t.has(n))throw new al(`CSV column name ${JSON.stringify(n)} is duplicated.`);t.add(n)}}function iy(e,t={}){let n=ty(t),r=t.timezone===void 0?void 0:qg(t.timezone);WN(e.columns),Zg(e.columns,e.columnMeta);let i=[e.columns.map(ry).join(",")];e.rows.forEach((s,l)=>{i.push(e.columns.map(u=>ry(ey(s[u],u,l+1,e.columnMeta?.get(u),r))).join(","))});let o=`${i.join(`\r
21
21
  `)}\r
22
- `,a=Xg(o,n);return{text:o,data:a,receipt:{rows:e.rows.length,columns:e.columns.length,bytes:a.byteLength,encoding:n.encoding}}}function qn(e,t,n){return new ie(e,`${e}: ${t}`,n)}function ey(e){let t=Gg(e);if(!t||t.disposed)throw qn("ExecutionContextDisposedError","execution context is disposed or invalid.");return t}function ty(e,t){let n=`#${t}`;if(!e.exportSinks.has(n))throw qn("ExportSinkNotFoundError","the export sink is not declared.");return n}function FN(e){throw e instanceof ie?e:e instanceof Tt?new ie(e.code,e.message,e):qn("FLOW_ERROR","CSV export failed.",e)}function $p(e,t={}){try{return Zg(e,t)}catch(n){return FN(n)}}function KN(e,t={}){if(e.status!=="success"||e.result===null||typeof e.result!="object"||e.result.type!=="SELECT")throw qn("ExportSinkInvalidTargetError","serializeSelectResultAsCsv requires a successful SELECT StatementResult.");let n=e.result,r=oR(n);if(r===void 0)throw qn("ExportSinkInvalidTargetError","the SELECT result is not associated with engine column metadata.");return $p({columns:n.columns,rows:n.rows,columnMeta:r},t)}function ny(e,t){let n=ey(e),r=ty(n,t);return n.failed.size>0||n.aborted!==null&&n.aborted!=="exit"?"failed":n.busy||n.nextIndex<n.statements.length?"incomplete":n.tempTables.has(r)?"materialized":"not-created"}function GN(e,t,n={}){let r=ny(e,t);if(r!=="materialized")throw qn(r==="not-created"?"ExportSinkNotMaterializedError":r==="incomplete"?"ExportSinkExecutionIncompleteError":"ExportSinkExecutionFailedError",`the export sink status is ${r}.`);let i=ey(e),o=i.tempTables.get(ty(i,t));if(!o)throw qn("ExportSinkNotMaterializedError","the export sink was not materialized.");return $p({columns:o.columns,rows:o.rows,columnMeta:o.columnMeta},n)}var rU="3.80.0",bo=new WeakMap,tl=new WeakMap,Bp=new WeakMap;function iU(e,t={}){return nl(e,t)}async function oU(e,t={}){let n=nl(e,t);if(n.diagnostics.some(l=>l.severity==="error"))return n.diagnostics;let r=tl.get(n.statements),i=l=>r?.get(l)?.appId??l,o=t.schema?l=>t.schema(i(l)):t.client?l=>t.client.getFields(i(l)):void 0,s=(await zp(n.statements,n.meta,o,{strict:t.strict})).map(l=>{let u=n.statementRanges[l.statementIndex??0]?.start??0;return je(e,u,{severity:l.severity,code:l.code,message:l.message,...l.statementIndex!==void 0?{statementIndex:l.statementIndex}:{}})});return[...n.diagnostics,...s]}async function aU(e,t){let n=nl(e,t),r=n.diagnostics.find(s=>s.severity==="error");if(r)throw new ie(r.code,`${r.message} (${r.line}:${r.column})`);let i=VN(e,t.apps),o=tl.get(n.statements),a=o?iy(t.client,o):t.client;try{return await wg(i,a,t.variables,"flow-explain",t.maxRecords,t.cursorMaxActive,t.enableImport===!0,t.dmlMaxRows,t.dmlMaxSubtableRows,t.resolveMetadata,t.recursiveCteMaxDepth,t.recursiveCteMaxRows,t.recursiveCteMaxExpansions,t.asOf,t.timezone,{surface:"FLOW",enableNativeUpsert:t.enableNativeUpsert!==!1,clientHasNativeUpsert:"upsertRecords"in a&&typeof a.upsertRecords=="function"})}catch(s){throw Js(s)}}function sU(e){try{let t=e.script!==void 0,n=e.statements!==void 0||e.meta!==void 0;if(t===n)throw new TypeError("Provide exactly one of script or statements+meta.");let r,i;if(t){let I=nl(e.script,e),b=I.diagnostics.find(v=>v.severity==="error");if(b)throw new ie(b.code,`${b.message} (${b.line}:${b.column})`);r=I.statements,i=I.meta.dialect}else{if(e.statements===void 0||e.meta===void 0)throw new TypeError("statements and meta must be provided together.");r=e.statements,i=e.meta.dialect}if(e.enableImport!==!0&&r.some(WN))throw new ie("KSQL1202","IMPORT is not supported (capability is disabled).");let o={},{client:a,script:s,statements:l,meta:u,apps:f,onChunkWritten:c,onImportSourceMaterialized:p,enableNativeUpsert:d,exportSinks:E,...m}=e,R=Kg(r,E),g=tl.get(r),y=g?iy(a,g):a,A=mR(r,i,y,m,c&&g?I=>c({...I,appId:g.get(I.appId)?.appId??I.appId}):c,d!==!1,p,R);return bo.set(o,A),kg(o,A),g&&Bp.set(o,g),o}catch(t){throw Js(t)}}async function lU(e,t,n={}){let r=n.maxSamples??5;if(!Number.isInteger(r)||r<1||r>50)throw new ie("ArgumentError","ArgumentError: previewStatement maxSamples must be an integer from 1 through 50; fix the option before retrying.");$N(e);let i=bo.get(t);if(!i)throw new ie("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");try{let o=await gR(e,i,r),a=Bp.get(t)?.get(o.appId)?.appId??o.appId;return{...o,appId:a}}catch(o){throw Js(o)}}function $N(e){if(!(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE"||e.type==="UPSERT"||e.type==="UPSERT_SELECT")){let r=e.type==="IMPORT"?"IMPORT is outside the preview contract; use executeStatement for IMPORT validation/execution.":"Send read-only and control statements to executeStatement.";throw new ie("ArgumentError",`ArgumentError: previewStatement accepts INSERT, UPDATE, DELETE, and UPSERT DML only. ${r}`)}if("validateOnly"in e&&e.validateOnly===!0)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept VALIDATE ONLY; send validation DML to executeStatement.");if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept ON ERROR SKIP; remove the modifier or use executeStatement.");if("checkGroups"in e&&e.checkGroups?.length)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept CHECK clauses; remove CHECK or use executeStatement.");if(e.type==="INSERT"||e.type==="UPDATE"?!!e.applyBlocks?.length:e.type==="UPSERT"?!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length):!1)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept APPLY; remove APPLY or use executeStatement.");if((e.type==="INSERT"||e.type==="UPDATE"||e.type==="DELETE")&&e.subtableCode)throw new ie("ArgumentError","ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.")}async function uU(e,t){let n=bo.get(t);if(!n)throw new ie("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");let r=await RR(e,n),i="STATEMENT";return e.type==="ASSERT"?r.status==="error"?i="ASSERT_VIOLATION":r.result?.type==="ASSERT"&&r.result.warning!==void 0?i="ASSERT_WARNING":r.status==="success"&&(i="ASSERT_PASSED"):e.type==="EXIT"&&r.result?.type==="EXIT"&&r.result.exited&&(i="EXIT_NO_DATA"),{...r,kind:i,metrics:BN(n.metrics)}}function BN(e){return{...e,limitReachedApps:[...e.limitReachedApps]}}async function cU(e){let t=bo.get(e);t&&(bo.delete(e),Bp.delete(e),Fg(e),await yR(t))}function VN(e,t){if(!Qn(e).some(n=>n.source==="logical"))return e;if(t===void 0)throw new Error("Logical app configuration is required.");return ry(e,t).normalizedSql}function nl(e,t){let n=cf(e,t);if(t.apps!==void 0&&Qn(e).some(r=>r.source==="logical")){let r=ry(e,t.apps);tl.set(n.statements,r.appBindingByMappedApp)}return n}function WN(e){return e.type==="IMPORT"||e.type==="EXPLAIN"&&e.query.type==="IMPORT"}function ry(e,t){let n=new Map;for(let[r,i]of Object.entries(t)){let o=r.toUpperCase().startsWith("LAPP_")?r.slice(5):r;try{n.set(Xn(o),i)}catch{}}return Lo(e,"flow",{resolveLogicalApp(r){let i=n.get(Xn(r));if(i===void 0)throw new Error(`Logical app LAPP_${r} is not defined.`);return i}})}function iy(e,t){let n=i=>t.get(i)?.appId??i,r={getRecords:i=>e.getRecords({...i,app:n(i.app)}),openCursor:i=>e.openCursor({...i,app:n(i.app)}),postRecords:i=>e.postRecords({...i,app:n(i.app)}),putRecords:i=>e.putRecords({...i,app:n(i.app)}),deleteRecords:i=>e.deleteRecords({...i,app:n(i.app)}),getApps:()=>e.getApps(),getFields:i=>e.getFields(n(i)),getNumberPrecision:i=>e.getNumberPrecision(n(i)),getProcessStatuses:i=>e.getProcessStatuses(n(i))};return"upsertRecords"in e&&typeof e.upsertRecords=="function"&&(r.upsertRecords=i=>e.upsertRecords({...i,app:n(i.app)})),r}export{Fp as FlowImportProviderError,ie as KsqlFlowError,sU as createExecutionContext,PN as createImportSourceResolver,wN as createKintoneClient,cU as disposeExecutionContext,uU as executeStatement,aU as explainScript,ny as exportSinkStatus,LN as isDmlResult,iU as parseScript,lU as previewStatement,$p as serializeCsvExport,GN as serializeExportSink,KN as serializeSelectResultAsCsv,oU as validateScript,rU as version};
22
+ `,a=ny(o,n);return{text:o,data:a,receipt:{rows:e.rows.length,columns:e.columns.length,bytes:a.byteLength,encoding:n.encoding}}}function Qn(e,t,n){return new oe(e,`${e}: ${t}`,n)}function oy(e){let t=Hg(e);if(!t||t.disposed)throw Qn("ExecutionContextDisposedError","execution context is disposed or invalid.");return t}function ay(e,t){let n=`#${t}`;if(!e.exportSinks.has(n))throw Qn("ExportSinkNotFoundError","the export sink is not declared.");return n}function VN(e){throw e instanceof oe?e:e instanceof It?new oe(e.code,e.message,e):Qn("FLOW_ERROR","CSV export failed.",e)}function zp(e,t={}){try{return iy(e,t)}catch(n){return VN(n)}}function HN(e,t={}){if(e.status!=="success"||e.result===null||typeof e.result!="object"||e.result.type!=="SELECT")throw Qn("ExportSinkInvalidTargetError","serializeSelectResultAsCsv requires a successful SELECT StatementResult.");let n=e.result,r=cR(n);if(r===void 0)throw Qn("ExportSinkInvalidTargetError","the SELECT result is not associated with engine column metadata.");return zp({columns:n.columns,rows:n.rows,columnMeta:r},t)}function sy(e,t){let n=oy(e),r=ay(n,t);return n.failed.size>0||n.aborted!==null&&n.aborted!=="exit"?"failed":n.busy||n.nextIndex<n.statements.length?"incomplete":n.tempTables.has(r)?"materialized":"not-created"}function YN(e,t,n={}){let r=sy(e,t);if(r!=="materialized")throw Qn(r==="not-created"?"ExportSinkNotMaterializedError":r==="incomplete"?"ExportSinkExecutionIncompleteError":"ExportSinkExecutionFailedError",`the export sink status is ${r}.`);let i=oy(e),o=i.tempTables.get(ay(i,t));if(!o)throw Qn("ExportSinkNotMaterializedError","the export sink was not materialized.");return zp({columns:o.columns,rows:o.rows,columnMeta:o.columnMeta},n)}var uU="3.81.0",vo=new WeakMap,cl=new WeakMap,qp=new WeakMap;function cU(e,t={}){return pl(e,t)}async function pU(e,t={}){let n=pl(e,t);if(n.diagnostics.some(l=>l.severity==="error"))return n.diagnostics;let r=cl.get(n.statements),i=l=>r?.get(l)?.appId??l,o=t.schema?l=>t.schema(i(l)):t.client?l=>t.client.getFields(i(l)):void 0,s=(await td(n.statements,n.meta,o,{strict:t.strict})).map(l=>{let u=n.statementRanges[l.statementIndex??0]?.start??0;return je(e,u,{severity:l.severity,code:l.code,message:l.message,...l.statementIndex!==void 0?{statementIndex:l.statementIndex}:{}})});return[...n.diagnostics,...s]}async function dU(e,t){let n=pl(e,t),r=n.diagnostics.find(s=>s.severity==="error");if(r)throw new oe(r.code,`${r.message} (${r.line}:${r.column})`);let i=qN(e,t.apps),o=cl.get(n.statements),a=o?uy(t.client,o):t.client;try{return await Og(i,a,t.variables,"flow-explain",t.maxRecords,t.cursorMaxActive,t.enableImport===!0,t.dmlMaxRows,t.dmlMaxSubtableRows,t.resolveMetadata,t.recursiveCteMaxDepth,t.recursiveCteMaxRows,t.recursiveCteMaxExpansions,t.asOf,t.timezone,{surface:"FLOW",enableNativeUpsert:t.enableNativeUpsert!==!1,clientHasNativeUpsert:"upsertRecords"in a&&typeof a.upsertRecords=="function"})}catch(s){throw ol(s)}}function fU(e){try{let t=e.script!==void 0,n=e.statements!==void 0||e.meta!==void 0;if(t===n)throw new TypeError("Provide exactly one of script or statements+meta.");let r,i;if(t){let I=pl(e.script,e),b=I.diagnostics.find(v=>v.severity==="error");if(b)throw new oe(b.code,`${b.message} (${b.line}:${b.column})`);r=I.statements,i=I.meta.dialect}else{if(e.statements===void 0||e.meta===void 0)throw new TypeError("statements and meta must be provided together.");r=e.statements,i=e.meta.dialect}if(e.enableImport!==!0&&r.some(JN))throw new oe("KSQL1202","IMPORT is not supported (capability is disabled).");let o={},{client:a,script:s,statements:l,meta:u,apps:d,onChunkWritten:c,onImportSourceMaterialized:p,enableNativeUpsert:f,exportSinks:E,...m}=e,R=Vg(r,E),g=cl.get(r),y=g?uy(a,g):a,h=AR(r,i,y,m,c&&g?I=>c({...I,appId:g.get(I.appId)?.appId??I.appId}):c,f!==!1,p,R);return vo.set(o,h),Bg(o,h),g&&qp.set(o,g),o}catch(t){throw ol(t)}}async function EU(e,t,n={}){let r=n.maxSamples??5;if(!Number.isInteger(r)||r<1||r>50)throw new oe("ArgumentError","ArgumentError: previewStatement maxSamples must be an integer from 1 through 50; fix the option before retrying.");jN(e);let i=vo.get(t);if(!i)throw new oe("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");try{let o=await TR(e,i,r),a=qp.get(t)?.get(o.appId)?.appId??o.appId;return{...o,appId:a}}catch(o){throw ol(o)}}function jN(e){if(!(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE"||e.type==="UPSERT"||e.type==="UPSERT_SELECT")){let r=e.type==="IMPORT"?"IMPORT is outside the preview contract; use executeStatement for IMPORT validation/execution.":"Send read-only and control statements to executeStatement.";throw new oe("ArgumentError",`ArgumentError: previewStatement accepts INSERT, UPDATE, DELETE, and UPSERT DML only. ${r}`)}if("validateOnly"in e&&e.validateOnly===!0)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept VALIDATE ONLY; send validation DML to executeStatement.");if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept ON ERROR SKIP; remove the modifier or use executeStatement.");if("checkGroups"in e&&e.checkGroups?.length)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept CHECK clauses; remove CHECK or use executeStatement.");if(e.type==="INSERT"||e.type==="UPDATE"?!!e.applyBlocks?.length:e.type==="UPSERT"?!!(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length):!1)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept APPLY; remove APPLY or use executeStatement.");if((e.type==="INSERT"||e.type==="UPDATE"||e.type==="DELETE")&&e.subtableCode)throw new oe("ArgumentError","ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.")}async function mU(e,t){let n=vo.get(t);if(!n)throw new oe("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");let r=await SR(e,n),i="STATEMENT";return e.type==="ASSERT"?r.status==="error"?i="ASSERT_VIOLATION":r.result?.type==="ASSERT"&&r.result.warning!==void 0?i="ASSERT_WARNING":r.status==="success"&&(i="ASSERT_PASSED"):e.type==="EXIT"&&r.result?.type==="EXIT"&&r.result.exited&&(i="EXIT_NO_DATA"),{...r,kind:i,metrics:zN(n.metrics)}}function zN(e){return{...e,limitReachedApps:[...e.limitReachedApps]}}async function RU(e){let t=vo.get(e);t&&(vo.delete(e),qp.delete(e),Wg(e),await IR(t))}function qN(e,t){if(!tr(e).some(n=>n.source==="logical"))return e;if(t===void 0)throw new Error("Logical app configuration is required.");return ly(e,t).normalizedSql}function pl(e,t){let n=mf(e,t);if(t.apps!==void 0&&tr(e).some(r=>r.source==="logical")){let r=ly(e,t.apps);cl.set(n.statements,r.appBindingByMappedApp)}return n}function JN(e){return e.type==="IMPORT"||e.type==="EXPLAIN"&&e.query.type==="IMPORT"}function ly(e,t){let n=new Map;for(let[r,i]of Object.entries(t)){let o=r.toUpperCase().startsWith("LAPP_")?r.slice(5):r;try{n.set(er(o),i)}catch{}}return ko(e,"flow",{resolveLogicalApp(r){let i=n.get(er(r));if(i===void 0)throw new Error(`Logical app LAPP_${r} is not defined.`);return i}})}function uy(e,t){let n=i=>t.get(i)?.appId??i,r={getRecords:i=>e.getRecords({...i,app:n(i.app)}),openCursor:i=>e.openCursor({...i,app:n(i.app)}),postRecords:i=>e.postRecords({...i,app:n(i.app)}),putRecords:i=>e.putRecords({...i,app:n(i.app)}),deleteRecords:i=>e.deleteRecords({...i,app:n(i.app)}),getApps:()=>e.getApps(),getFields:i=>e.getFields(n(i)),getNumberPrecision:i=>e.getNumberPrecision(n(i)),getProcessStatuses:i=>e.getProcessStatuses(n(i))};return"upsertRecords"in e&&typeof e.upsertRecords=="function"&&(r.upsertRecords=i=>e.upsertRecords({...i,app:n(i.app)})),r}export{Hp as FlowImportProviderError,oe as KsqlFlowError,fU as createExecutionContext,xN as createImportSourceResolver,LN as createKintoneClient,RU as disposeExecutionContext,mU as executeStatement,dU as explainScript,sy as exportSinkStatus,MN as isDmlResult,cU as parseScript,EU as previewStatement,zp as serializeCsvExport,YN as serializeExportSink,HN as serializeSelectResultAsCsv,pU as validateScript,uU as version};