@rex0220/kintone-sql-tools 3.79.0 → 3.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-cli/ksql.js +20 -4
- package/dist-engine/index.cjs +13 -13
- package/dist-engine/index.mjs +13 -13
- package/dist-engine/ksql-engine.umd.js +13 -13
- package/dist-engine/meta/bundle-baseline.json +7 -7
- package/dist-engine/meta/cjs.json +3 -3
- package/dist-engine/meta/esm.json +3 -3
- package/dist-engine/meta/umd.json +3 -3
- package/dist-flow/index.cjs +11 -11
- package/dist-flow/index.mjs +11 -11
- package/dist-flow/meta/cjs.json +3 -3
- package/dist-flow/meta/esm.json +3 -3
- package/dist-mcp/ksql-mcp.js +22 -6
- package/dist-mcpb/ksql-mcp.mcpb +0 -0
- package/package.json +1 -1
package/dist-flow/index.cjs
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use strict";var ll=Object.defineProperty;var Ey=Object.getOwnPropertyDescriptor;var my=Object.getOwnPropertyNames;var Ry=Object.prototype.hasOwnProperty;var gy=(e,t)=>{for(var n in t)ll(e,n,{get:t[n],enumerable:!0})},yy=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of my(t))!Ry.call(e,i)&&i!==n&&ll(e,i,{get:()=>t[i],enumerable:!(r=Ey(t,i))||r.enumerable});return e};var hy=e=>yy(ll({},"__esModule",{value:!0}),e);var aC={};gy(aC,{FlowImportProviderError:()=>Xs,KsqlFlowError:()=>ie,createExecutionContext:()=>QN,createImportSourceResolver:()=>Kg,createKintoneClient:()=>Fg,disposeExecutionContext:()=>rC,executeStatement:()=>tC,explainScript:()=>XN,exportSinkStatus:()=>Vp,isDmlResult:()=>Hg,parseScript:()=>qN,previewStatement:()=>ZN,serializeCsvExport:()=>nl,serializeExportSink:()=>ly,serializeSelectResultAsCsv:()=>sy,validateScript:()=>JN,version:()=>zN});module.exports=hy(aC);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 Ay(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,...Ay(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"]),
|
|
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=Dy(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function Qp(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function Lo(e,t="dev",n){let r=
|
|
3
|
+
`?(r++,i=1):i++}return{line:r,column:i}}function je(e,t,n){return{...n,...Ay(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||!Iy(l,a)||o===null||!zp(o,l))return null;let u={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:Ty(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 Sy(f,e,l),f}function Sy(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 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 Ty(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 Iy(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(!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 qp="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 Jp(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(wy(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"),Xp(a)&&s("warning",ue.SERVER_TIME_FUNCTION_NOT_AS_OF,qp)}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 Xp(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 wy(e){return e.type==="UPSERT"||e.type==="UPSERT_SELECT"}var by="A-Za-z",Ny="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",cl=`${by}${Ny}`,Zp=`${cl}0-9_`,Cy=new RegExp(`^[${cl}]$`,"u"),Py=new RegExp(`^[${Zp}]$`,"u"),Oy=new RegExp(`^[${cl}][${Zp}]{0,63}$`,"u");function Ly(e){return Cy.test(e)}function _y(e){return Py.test(e)}function Xn(e){let t=e.normalize("NFC").toUpperCase();if(!Oy.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 ul(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 vy(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 Dy(e,t){let n=t>0?e[t-1]:"";if(ul(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,!Ly(e[l]??""))return null;for(l++;l<e.length&&_y(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&&ul(e[l]);)l++;if(l===d)return null}let u=l,f=null;if(e[l]==="@"){l++;let d=l;for(;l<e.length&&vy(e[l]);)l++;if(l===d)return null;f=e.slice(d,l)}let c=l<e.length?e[l]:"";if(ul(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=Dy(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function Qp(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=Qp(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=Qp(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(pl(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&&ed(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(!pl(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&&ed(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 pl(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||xy(t)}function ed(e){let t=e.codePointAt(0);return pl(e)||t>=48&&t<=57}function Qn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function xy(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Uy=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function My(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=Uy.exec(e.trim());if(t===null)return null;let n=My(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 fl(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 td(e){let t=Ce(e);return t===null?null:fl(t)}function ky(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=ky(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 El(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function xo(e){return e.windowKind==="AGGREGATE"}function ml(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 td(t)??t}function nd(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 Fy(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=Fy(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 rd(e){return ee(e).type!=="NONE"}function id(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"],yl="\0as-of:";function Kr(e){return`${yl}${e}`}function Zn(e){if(!e.startsWith(yl))return null;let t=e.slice(yl.length);return Gr(t)?t:null}function Gr(e){return Mo.includes(e)}function hl(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=Rl(r,"year"),o=Rl(r,"month"),a=Rl(r,"day"),s=`${gl(i)}-${Uo(o)}-${Uo(a)}`,l=`${gl(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:`${gl(u)}-${Uo(f)}-01`}}}function Rl(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 gl(e){return String(e).padStart(4,"0")}function ko(e){return`'${e.replace(/'/g,"''")}'`}function er(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return q(e);if(e.type==="STRING_FUNC")return Sl(e);let n=`${er(e.left)}${e.op}${er(e.right)}`;return t?n:`(${n})`}function od(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Sl(e.expr);if(e.type==="AGG_FIELD")return It(e.expr);if(e.type==="ARITH_FIELD")return er(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Al(e.expr)}function sd(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(sd).join(",")})`;case"ARITH_VALUE":return er(e.expr);case"CASE_VALUE":return Al(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function $r(e){switch(e.type){case"BINARY":return`${od(e.left)} ${e.op.replace("_"," ")} ${sd(e.right)}`;case"NULL_CHECK":return`${od(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${$r(e.left)} ${e.op} ${$r(e.right)})`;case"NOT":return`NOT (${$r(e.expr)})`;case"GROUP":return`(${$r(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function ad(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"?er(e):Sn(e)}function Al(e){let t=e.branches.map(r=>`WHEN ${$r(r.condition)} THEN ${ad(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${ad(e.elseResult)}`;return`CASE ${t}${n} END`}function Ky(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 Sl(e){return`${e.func}(${e.args.map(Ky).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 Sl(e);case"CASE_WHEN":return Al(e);case"SCALAR_ARITH":return`(${Sn(e.left)}${e.op}${Sn(e.right)})`;case"CONCAT_OP":return`(${Sn(e.left)}||${Sn(e.right)})`}}function Gy(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?er(e,!0):Sn(e)}function fe(e,t,n){let r=Gy(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 ld=20,Il=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"}),cd=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Br=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"}),MC=Object.freeze(Object.values(Br).filter(e=>e!==void 0)),$y=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),By=new Set($y);function Vy(e){return By.has(e)}var pd=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Vr=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function ud(e){return Vr[e]!==void 0}var Wy=Object.freeze([...Po]),Hy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Yy=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function jy(e){return Hy.has(e)}function zy(e){return Yy.has(e)}function qy(e){return Number.isInteger(e)&&e>=1&&e<=31}var kC=Object.freeze(Array.from(new Set([...Object.keys(Il),...cd,...Object.keys(Br),...Object.keys(pd),...Object.keys(Vr),...Wy,"IF"]))),Jy=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 Xy(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Jy.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"}},Tl=["\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(!Gr(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>ld)throw new T(`batch exceeds ${ld} 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=Vr[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=Vr[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(!Gr(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:Kr(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&&Xy(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(Tl,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=Zn(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 pd[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(Br[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(Tl,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(Tl,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),Br[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=Il[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Il[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(cd.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=Qy(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 Br[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(!Vy(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(!jy(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(!zy(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(!qy(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(ud(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Vr[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=nd(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"&&Gr(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(ud(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 Qy(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 Wr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Zy(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:Wr(e.left),right:Wr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Wr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Zy(e){switch(e){case"=":return"!=";case"!=":case"<>":return"=";case">":return"<=";case"<":return">=";case">=":return"<";case"<=":return">";case"LIKE":return"NOT_LIKE";case"NOT_LIKE":return"LIKE";case"KLIKE":return"NOT_KLIKE";case"NOT_KLIKE":return"KLIKE";case"IN":return"NOT_IN";case"NOT_IN":return"IN"}}function dd(e){return e.includes("%")||e.includes("_")}function Hr(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(Hr(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 eh(e);case"NULL_CHECK":return nh(e);case"LOGICAL":return rh(e);case"NOT":return ih(e);case"GROUP":return oh(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 eh(e){if(Hr(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=Ed(e.left),n=th(e.op),r=ah(e.right,e.op);return`${t} ${n} ${r}`}function th(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 nh(e){let t=Ed(e.field);return e.not?`${t} != ""`:`${t} = ""`}function rh(e){let t=z(e.left),n=z(e.right),r=e.op==="AND"?"and":"or",i=fd(e.left)?`(${t})`:t,o=fd(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function ih(e){return z(Wr(e.expr))}function oh(e){return`(${z(e.expr)})`}function Ed(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 Eh(e.field)}function ah(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 md(e);case"NUMBER":return q(e);case"KINTONE_FUNC":return Rd(e);case"IN_LIST":return dh(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 md(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Rd(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return sh(e)}function sh(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?Yr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!ch(e.args.offset,e.args.offsetText)||!lh.has(e.args.unit)?Yr():`${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&&!uh.has(e.args.weekday)?Yr():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"||!ph(e.args.day)?Yr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return Yr()}var lh=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),uh=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function ch(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function ph(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function Yr(){throw new Ee("internal error: invalid relative date function AST reached kintone query conversion")}function dh(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 fh(e.values),`(${e.values.map(r=>r.type==="STRING"?md(r):r.type==="NUMBER"?q(r):Rd(r)).join(",")})`}function fh(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 Eh(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function fd(e){return e.type==="LOGICAL"}var Ee=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};var gd=Symbol("ksql.groupingRowMeta"),yd=new WeakMap;function wl(e,t){return Object.defineProperty(e,gd,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function bl(e){return e[gd]}function mh(e){return bl(e)?.includedCanonicalIds}function hd(e,t){yd.set(e,t)}function tr(e,t){let n=mh(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=yd.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 Rh=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Cl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Cl);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"?Rh.test(t.field):Object.values(t).some(Cl)}function gh(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)||Cl(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var yh=["_pid","_rid","_idx"];function Nl(e){return[...new Set(e)]}function hh(e){switch(e.kind){case"APP":return Nl([...e.fieldCodes,...Fo]);case"SUBTABLE":return Nl([...e.childFieldCodes,...yh,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Nl(e.columns)}}function Ad(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:hh(t(r,i))}))}function Sd(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 Td(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Id(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?Sd(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:Td(a,r.fieldCode)}}function Ah(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Sh(e,t,n){let r=Sd(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:Td(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,u)=>Ah(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=gh(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 wd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Sh(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 Th="B65_NON_GROUPED_DEPENDENCY",Ol=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 Ll(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 _l(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function Nd(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Cd(e){return e.type==="WINDOW_COL"}function Ih(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"||_l(n))return null;if(r==="GROUP"&&n.expr!==void 0)return rn(n.expr,t);let i=typeof r=="string"?Ol.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:${Ih(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Ll(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 wh(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function bh(e){let t=new Map;for(let n of e){let r=wh(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function vl(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var Nh=/^(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=Ll(t);if(n!==null)return vl(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"?Ol.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 bd(e,t,n,r){let i=n==="WILDCARD"?"wildcard":vl(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=${Th})`)}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(_l(n)||Nd(n)||Cd(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 bd(t.clause,t.expression,"WILDCARD",t.policy);let r=Ll(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&Nh.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 bd(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"?Ol.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 jr(e,t){let n=bh(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 Pl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Pl);let t=e;return _l(t)||Cd(t)?!1:Nd(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Pl)}function kt(e){return ee(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Pl(t))}function Ch(e){return e.type==="FIELD_NAME"?Go(e.name):e.expr}function Pd(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=Id(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(Ch(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:${vl(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};jr(e,t)}function Od(e){return`FIELD:${e}`}var Ld=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 Dl(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 Ph(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 Oh(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${Dl(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${Dl(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);hd(e,r.canonicalId)}function xl(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 _d(e,t,n=()=>{}){xl(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=id(e,t),a=new Set,s=[];for(let u of o.allItems){let f=u;if(!f.physical)throw new Error(`ArgumentError: grouping item ${Dl(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)Oh(u,t,a);jr(e,{identities:new Set([...a].map(Od)),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(!Ph(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 Lh(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||Lh(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"&&Md(t.expr)||t.type==="SCALAR_VALUE_COL"&&qr(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 vd(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Hr(e);case"NULL_CHECK":return vd(e.field);case"LOGICAL":return Ft(e.left)||Ft(e.right);case"NOT":case"GROUP":return Ft(e.expr);case"EXISTS":return!0}}function vd(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(_h).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:vh(e.columns),totalCount:!1}}function Ud(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=Fd(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 _h(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 vh(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"?zr(r.expr,n):r.type==="STRFUNC_COL"?Ul(r.expr,n):r.type==="SCALAR_VALUE_COL"&&nr(r.expr,n);return[...new Set(n)]}function Dh(e,t){zr(e.left,t),zr(e.right,t)}function zr(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"?Dh(e,t):e.type==="STRING_FUNC"&&Ul(e,t)}function zo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Ul(e,t){for(let n of e.args)xh(n,t)}function xh(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Yo(e,t);return}nr(e,t)}function nr(e,t){if(e.type==="FIELD"){t.push(zo(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){Ul(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){nr(e.left,t),nr(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)Dd(n.result,t);e.elseResult&&Dd(e.elseResult,t)}}function Dd(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"){zr(e,t);return}nr(e,t)}}function Yo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Uh(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 Uh(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?zr(e,t):nr(e,t)}function Md(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:qr(t))}function qr(e){return e.type==="STRING_FUNC"?Md(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?qr(e.left)||qr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>xd(t.result))||e.elseResult!==null&&xd(e.elseResult):!1}function xd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:qr(e)}function kd(e,t){let n=new Set,r=Fd(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Fd(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=Mh(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")&&kh(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 Mh(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 kh(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||rd(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 Fh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Kh=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":Kh.has(e.fieldType)?t="option":Fh.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 rr(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=["=","!=",">","<",">=","<="],Gh=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),$h=new Set(Ze),Bh=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"])]]),Vh=new Map([["TODAY",new Set(Ze)],["NOW",new Set(Ze)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Wh=["=","!=","in","not in"],Hh=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(Wh)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Yh=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"])]]),kl=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"]),Bd=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Qo(e){return Hh.get(e)??new Set}function Vd(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"&&kl.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"}]}:Xr(e,t)}function Xr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return jh(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ml():Jh(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Ml();case"GROUP":return Xr(e.expr,t);case"NOT":{let n=Xr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Hd(n.reasons)?Zr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=Xr(e.left,t),r=Xr(e.right,t);return Qh(e.op,n,r)}}}function jh(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ne(n.name))return zh(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Gd(n))return $d(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?$d(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,Qr(e))}if(t.type!=="FIELD")return Ml();let i=r(t);if(!i)return ir("WHERE_FIELD_UNRESOLVED",t.field,void 0,Qr(e));let o=Qr(e);if(!Wd(i.fieldType,o))return ir("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Xh(i.fieldType,e))return ir("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Qo(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||Gd(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 Gd(e){return e.type==="KINTONE_FUNC"&&yn.has(e.name)}function $d(e,t,n,r){let i=Qr(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=Bh.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):Vh.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 zh(e,t,n,r){let i=Qr(e),o=n.name;if(t.type!=="FIELD")return Jr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?qh(n)?$h.has(i)?!Gh.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Jr("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}]}:Jr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Jr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Jr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function qh(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 Jh(e,t,n){let r=n(e);return r?Wd(r.fieldType,t)?!kl.has(r.fieldType)&&!Bd.has(r.fieldType)?ir("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:ir("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):ir("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function Wd(e,t){let n=Yh.get(e);return n===void 0||n.has(t)}function Xh(e,t){return kl.has(e)?!0:Bd.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Qr(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 Qh(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Zr({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")?Zr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Zr({capability:"LOCAL_ONLY",reasons:r})}function Ml(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function ir(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Xo(e,t,n,r,i){return Zr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Jr(e,t,n,r,i){return Yd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Hd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ne(t.functionName))}function Zh(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&yn.has(t.functionName))}function Yd(e){if(e.capability==="EXACT_PUSHDOWN"||!Hd(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 eA(e){if(e.capability==="EXACT_PUSHDOWN"||!Zh(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 Zr(e){return eA(Yd(e))}function ei(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||!ei(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=fl(n);return q(e)===o}var tA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),nA=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),rA=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),iA=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"?rA.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?aA(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?oA(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":nA.has(r)?Fl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?Fl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||iA.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?ei(e.right.value)?"exact":"unsafe":r==="TIME"?Zo(e.right.value)?"exact":"unsafe":ea(e.right.value)?"exact":"unsafe":tA.has(r)?!Fl(e)||i===void 0?"unsafe":e.right.type==="IN_LIST"&&e.right.values.every(o=>o.type==="STRING"&&i.has(o.value))?"exact":"unsafe":"unsafe"}function 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 Fl(e){return(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(t=>t.type==="STRING"&&t.value!=="")}function oA(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 aA(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function Kl(e,t={}){return aa(e,t).condition}function aa(e,t={}){return ra(e,n=>sA(n,t))}function ti(e,t={}){return ia(e,n=>jd(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 sA(e,t){if(lA(e,t)||uA(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 lA(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 uA(e,t){return!cA(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function cA(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 ni(e,t={}){let n=e!==null&&t.extractCondition!==!1?aa(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;or(r,o);let a=new Set;return or(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function 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=ni(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())or(c,f);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:u,appliedKlikes:f,allKlikes:a.allKlikes}}function Gl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function or(e,t){if(e!==null){if(nn(e)){t.add(e);return}switch(e.type){case"LOGICAL":or(e.left,t),or(e.right,t);return;case"NOT":case"GROUP":or(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var pA=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})}),Vl=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})}),ri="v1";function J(e){throw new Error(`UnsupportedError: APPLY ${ri} scope does not support ${e}`)}function dA(e,t){let n=ri;ri=e;try{return t()}finally{ri=n}}function fA(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 lr(e,t){return dA(e,()=>EA(t,pA[e]))}function EA(e,t){let n=fA(e);if(n===null)return;if(n.type==="UPSERT"){RA(n,t);return}let r=n.applyBlocks;if($l(r),!t.multipleBlocks&&r.length!==1&&J("multiple APPLY blocks in this phase"),n.type==="INSERT"){gA(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"),yA(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`);Jd(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)sa(i,"APPEND targets");sr(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&J("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&zd(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")}sr(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&zd(r.selector.where,t.idxSelectors)}}}}function Jd(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 mA=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Xd(e,t){if(Jd(e),e.targetKind==="MULTI_VALUE"){if(!mA.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 $l(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${ri} scope allows only one block for table ${n.field}`);t.add(n.field)}}function RA(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??[];$l(n),$l(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&J("multiple APPLY blocks in this phase"),Qd(n,"UPSERT ON INSERT"),qd(r,{...t,idxSelectors:!1,expectRows:!1})}function Qd(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");sr(r.values,"APPEND values")}}function gA(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"),Qd(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 ii(e,t){let n=Vl[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Wl(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${ar(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 ${ar(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 ${ar(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!Kt(t.where))throw new Error(`UnsupportedError: APPLY ${ar(e)} execution does not support multiple-parent APPLY`)}function Wl(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 Zd(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Kt(t.where))&&!Vl[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${ar(e)} public multiple-parent write is not connected`)}function ur(e){if(!Vl[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${ar(e)} internal prepared write is not available`)}function ar(e){return`Phase ${e.slice(5)}`}function yA(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"),Bl(e,t))}function Bl(e,t){if(Array.isArray(e)){for(let o of e)Bl(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))Bl(o,t)}function zd(e,t){sr(e,"child row selectors",t)}function sr(e,t,n=!1){if(Array.isArray(e)){for(let s of e)sr(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))sr(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 ef(e){tf(e)}function Yl(e){if(Gl(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 tf(e){switch(e.type){case"SELECT":cr(e);return;case"UNION":zl(e);return;case"WITH":nf(e);return;case"EXPLAIN":tf(e.query);return;case"CREATE_TEMP_TABLE":jl(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)){Hl(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)&&!SA(e,e.where)){Hl(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)){Hl(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 Hl(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 jl(e){e.type==="SELECT"?cr(e):e.type==="UNION"?zl(e):nf(e)}function zl(e){jl(e.left),cr(e.right)}function nf(e){if(on(e)){cr(an(e));return}for(let t of e.ctes)t.query.type==="SELECT"?cr(t.query):t.query.type==="UNION"&&zl(t.query);jl(e.query)}function cr(e){if(AA(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(Gl(n).length===0){bn(e);return}if(hA(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 hA(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 AA(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"&&cr(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 SA(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&&TA(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 TA(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var oi=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 rf(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(IA(t))throw new oi;return;default:return}}function IA(e){let t=!1;return pa(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||wA(n.where)&&(t=!0)}),t}function wA(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 Xl=1e4,Gt=Xl,Z=e=>new Error(`ArgumentError: ${e}`),bA=e=>e.type==="VARIABLE",un=e=>e?.type==="STRING"&&e.fromVariable===!0;function NA(e){return e.type==="NUMBER"?Number(q(e)):e.value}function pr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999||r<1||r>12||i<1||i>31)return null;let o=new Date(0);return o.setUTCHours(0,0,0,0),o.setUTCFullYear(n,r-1,i),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?{year:n,month:r,day:i}:null}function ql(e){let t=pr(e),n=new Date(0);return n.setUTCHours(0,0,0,0),n.setUTCFullYear(t.year,t.month-1,t.day),Math.trunc(n.getTime()/864e5)}function CA(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 of(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 ai(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 si(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 af(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 sf(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 PA(e,t,n){let r=ql(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=ql(`${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 lf(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 OA(e){let t=Math.floor(e/12),n=e-t*12+1;return lf(t,n,1)}function uf(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=>NA(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"?pr(n):null,u=typeof r=="string"?pr(r):null,f=typeof n=="string"&&/^\d{4}-/.test(n),c=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(af))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)&&ai(n)!==null&&ai(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"}:of(i);return sf(l,y.unit),{kind:"DATE",start:n,stop:r,step:y.coefficient,dateUnit:y.unit,rowCount:PA(l,u,y)}}let p=o.type==="NUMBER"?si(o):un(o)?ai(n):null,d=a.type==="NUMBER"?si(a):un(a)?ai(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"?si(s):un(s)?ai(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 LA(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(bA)){["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"&&si(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(af(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)&&pr(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=si(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=of(n.value),i=e.args[0];if(i?.type==="STRING"){let o=pr(i.value);o&&sf(o,r.unit)}}return null}let t=uf(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 cf(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=LA(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=uf(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=pr(t.start);if(t.dateUnit==="MONTH"){let i=Jl(r);for(let o=0;o<t.rowCount;o++)n.push(OA(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(lf(r.year+i*t.step,1,1));else{let i=ql(t.start);for(let o=0;o<t.rowCount;o++)n.push(CA(i+o*t.step))}}return{...t,values:n}}function et(e){_A(e),rf(e),ef(e),cf(e)}function _A(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 vA=/^(\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=UA(e,o),l=e.slice(o,s.contentEnd);if(!/^\s*--/.test(l))break;a=s.next;let u=vA.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;DA(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),xA(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 DA(e){return e==="name"||e==="depends_on"||e==="timeout"||e==="dialect"}function xA(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 UA(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 pl(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||xy(t)}function ed(e){let t=e.codePointAt(0);return pl(e)||t>=48&&t<=57}function Zn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function xy(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Uy=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function My(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=Uy.exec(e.trim());if(t===null)return null;let n=My(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 fl(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 td(e){let t=Ce(e);return t===null?null:fl(t)}function ky(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=ky(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 El(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function xo(e){return e.windowKind==="AGGREGATE"}function ml(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 td(t)??t}function nd(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 Fy(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=Fy(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 rd(e){return ee(e).type!=="NONE"}function id(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"],yl="\0as-of:";function Gr(e){return`${yl}${e}`}function er(e){if(!e.startsWith(yl))return null;let t=e.slice(yl.length);return $r(t)?t:null}function $r(e){return Mo.includes(e)}function hl(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=Rl(r,"year"),o=Rl(r,"month"),a=Rl(r,"day"),s=`${gl(i)}-${Uo(o)}-${Uo(a)}`,l=`${gl(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:`${gl(u)}-${Uo(f)}-01`}}}function Rl(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 gl(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 Sl(e);let n=`${tr(e.left)}${e.op}${tr(e.right)}`;return t?n:`(${n})`}function od(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Sl(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 Al(e.expr)}function sd(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(sd).join(",")})`;case"ARITH_VALUE":return tr(e.expr);case"CASE_VALUE":return Al(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Br(e){switch(e.type){case"BINARY":return`${od(e.left)} ${e.op.replace("_"," ")} ${sd(e.right)}`;case"NULL_CHECK":return`${od(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 ad(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 Al(e){let t=e.branches.map(r=>`WHEN ${Br(r.condition)} THEN ${ad(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${ad(e.elseResult)}`;return`CASE ${t}${n} END`}function Ky(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 Sl(e){return`${e.func}(${e.args.map(Ky).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 Sl(e);case"CASE_WHEN":return Al(e);case"SCALAR_ARITH":return`(${Sn(e.left)}${e.op}${Sn(e.right)})`;case"CONCAT_OP":return`(${Sn(e.left)}||${Sn(e.right)})`}}function Gy(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?tr(e,!0):Sn(e)}function fe(e,t,n){let r=Gy(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 ld=20,Il=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"}),cd=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"}),MC=Object.freeze(Object.values(Vr).filter(e=>e!==void 0)),$y=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),By=new Set($y);function Vy(e){return By.has(e)}var pd=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 ud(e){return Wr[e]!==void 0}var Wy=Object.freeze([...Po]),Hy=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Yy=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function jy(e){return Hy.has(e)}function zy(e){return Yy.has(e)}function qy(e){return Number.isInteger(e)&&e>=1&&e<=31}var kC=Object.freeze(Array.from(new Set([...Object.keys(Il),...cd,...Object.keys(Vr),...Object.keys(pd),...Object.keys(Wr),...Wy,"IF"]))),Jy=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 Xy(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Jy.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"}},Tl=["\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>ld)throw new T(`batch exceeds ${ld} 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&&Xy(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(Tl,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 pd[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(Tl,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(Tl,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=Il[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Il[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(cd.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=Qy(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(!Vy(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(!jy(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(!zy(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(!qy(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(ud(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=nd(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(ud(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 Qy(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=Zy(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 Zy(e){switch(e){case"=":return"!=";case"!=":case"<>":return"=";case">":return"<=";case"<":return">=";case">=":return"<";case"<=":return">";case"LIKE":return"NOT_LIKE";case"NOT_LIKE":return"LIKE";case"KLIKE":return"NOT_KLIKE";case"NOT_KLIKE":return"KLIKE";case"IN":return"NOT_IN";case"NOT_IN":return"IN"}}function dd(e){return e.includes("%")||e.includes("_")}function 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 eh(e);case"NULL_CHECK":return nh(e);case"LOGICAL":return rh(e);case"NOT":return ih(e);case"GROUP":return oh(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 eh(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=Ed(e.left),n=th(e.op),r=ah(e.right,e.op);return`${t} ${n} ${r}`}function th(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 nh(e){let t=Ed(e.field);return e.not?`${t} != ""`:`${t} = ""`}function rh(e){let t=z(e.left),n=z(e.right),r=e.op==="AND"?"and":"or",i=fd(e.left)?`(${t})`:t,o=fd(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function ih(e){return z(Hr(e.expr))}function oh(e){return`(${z(e.expr)})`}function Ed(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 Eh(e.field)}function ah(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 md(e);case"NUMBER":return q(e);case"KINTONE_FUNC":return Rd(e);case"IN_LIST":return dh(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 md(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Rd(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return sh(e)}function sh(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"||!ch(e.args.offset,e.args.offsetText)||!lh.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&&!uh.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"||!ph(e.args.day)?jr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return jr()}var lh=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),uh=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function ch(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function ph(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 dh(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 fh(e.values),`(${e.values.map(r=>r.type==="STRING"?md(r):r.type==="NUMBER"?q(r):Rd(r)).join(",")})`}function fh(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 Eh(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function fd(e){return e.type==="LOGICAL"}var Ee=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};var gd=Symbol("ksql.groupingRowMeta"),yd=new WeakMap;function wl(e,t){return Object.defineProperty(e,gd,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function bl(e){return e[gd]}function mh(e){return bl(e)?.includedCanonicalIds}function hd(e,t){yd.set(e,t)}function nr(e,t){let n=mh(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=yd.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 Rh=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Cl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Cl);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"?Rh.test(t.field):Object.values(t).some(Cl)}function gh(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)||Cl(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var yh=["_pid","_rid","_idx"];function Nl(e){return[...new Set(e)]}function hh(e){switch(e.kind){case"APP":return Nl([...e.fieldCodes,...Fo]);case"SUBTABLE":return Nl([...e.childFieldCodes,...yh,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Nl(e.columns)}}function Ad(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:hh(t(r,i))}))}function Sd(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 Td(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Id(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?Sd(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:Td(a,r.fieldCode)}}function Ah(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Sh(e,t,n){let r=Sd(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:Td(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,u)=>Ah(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=gh(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 wd(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Sh(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 Th="B65_NON_GROUPED_DEPENDENCY",Ol=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 Ll(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 _l(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function Nd(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function Cd(e){return e.type==="WINDOW_COL"}function Ih(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"||_l(n))return null;if(r==="GROUP"&&n.expr!==void 0)return rn(n.expr,t);let i=typeof r=="string"?Ol.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:${Ih(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Ll(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 wh(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function bh(e){let t=new Map;for(let n of e){let r=wh(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function vl(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var Nh=/^(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=Ll(t);if(n!==null)return vl(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"?Ol.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 bd(e,t,n,r){let i=n==="WILDCARD"?"wildcard":vl(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=${Th})`)}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(_l(n)||Nd(n)||Cd(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 bd(t.clause,t.expression,"WILDCARD",t.policy);let r=Ll(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&Nh.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 bd(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"?Ol.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=bh(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 Pl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Pl);let t=e;return _l(t)||Cd(t)?!1:Nd(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Pl)}function kt(e){return ee(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Pl(t))}function Ch(e){return e.type==="FIELD_NAME"?Go(e.name):e.expr}function Pd(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=Id(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(Ch(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:${vl(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 Od(e){return`FIELD:${e}`}var Ld=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 Dl(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 Ph(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 Oh(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${Dl(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${Dl(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);hd(e,r.canonicalId)}function xl(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 _d(e,t,n=()=>{}){xl(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=id(e,t),a=new Set,s=[];for(let u of o.allItems){let f=u;if(!f.physical)throw new Error(`ArgumentError: grouping item ${Dl(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)Oh(u,t,a);zr(e,{identities:new Set([...a].map(Od)),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(!Ph(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 Lh(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||Lh(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"&&Md(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 vd(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 vd(e.field);case"LOGICAL":return Ft(e.left)||Ft(e.right);case"NOT":case"GROUP":return Ft(e.expr);case"EXISTS":return!0}}function vd(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(_h).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:vh(e.columns),totalCount:!1}}function Ud(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=Fd(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 _h(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 vh(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"?Ul(r.expr,n):r.type==="SCALAR_VALUE_COL"&&rr(r.expr,n);return[...new Set(n)]}function Dh(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"?Dh(e,t):e.type==="STRING_FUNC"&&Ul(e,t)}function zo(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function Ul(e,t){for(let n of e.args)xh(n,t)}function xh(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"){Ul(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)Dd(n.result,t);e.elseResult&&Dd(e.elseResult,t)}}function Dd(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"&&Uh(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 Uh(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?qr(e,t):rr(e,t)}function Md(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"?Md(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Jr(e.left)||Jr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>xd(t.result))||e.elseResult!==null&&xd(e.elseResult):!1}function xd(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Jr(e)}function kd(e,t){let n=new Set,r=Fd(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Fd(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=Mh(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")&&kh(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 Mh(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 kh(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||rd(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 Fh=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),Kh=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":Kh.has(e.fieldType)?t="option":Fh.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=["=","!=",">","<",">=","<="],Gh=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),$h=new Set(Ze),Bh=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"])]]),Vh=new Map([["TODAY",new Set(Ze)],["NOW",new Set(Ze)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Wh=["=","!=","in","not in"],Hh=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(Wh)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Yh=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"])]]),kl=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"]),Bd=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Qo(e){return Hh.get(e)??new Set}function Vd(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"&&kl.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 jh(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?Ml():Jh(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return Ml();case"GROUP":return Qr(e.expr,t);case"NOT":{let n=Qr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:Hd(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 Qh(e.op,n,r)}}}function jh(e,t,n,r){if(n.type==="KINTONE_FUNC"&&ne(n.name))return zh(e,t,n,r);if(n.type==="KINTONE_FUNC"&&Gd(n))return $d(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?$d(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 Ml();let i=r(t);if(!i)return or("WHERE_FIELD_UNRESOLVED",t.field,void 0,Zr(e));let o=Zr(e);if(!Wd(i.fieldType,o))return or("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Xh(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"||Gd(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 Gd(e){return e.type==="KINTONE_FUNC"&&yn.has(e.name)}function $d(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=Bh.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):Vh.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 zh(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?qh(n)?$h.has(i)?!Gh.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 qh(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 Jh(e,t,n){let r=n(e);return r?Wd(r.fieldType,t)?!kl.has(r.fieldType)&&!Bd.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 Wd(e,t){let n=Yh.get(e);return n===void 0||n.has(t)}function Xh(e,t){return kl.has(e)?!0:Bd.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 Qh(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 Ml(){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 Yd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Hd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&ne(t.functionName))}function Zh(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&yn.has(t.functionName))}function Yd(e){if(e.capability==="EXACT_PUSHDOWN"||!Hd(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 eA(e){if(e.capability==="EXACT_PUSHDOWN"||!Zh(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 eA(Yd(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=fl(n);return q(e)===o}var tA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),nA=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),rA=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),iA=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"?rA.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?aA(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?oA(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":nA.has(r)?Fl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?Fl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||iA.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":tA.has(r)?!Fl(e)||i===void 0?"unsafe":e.right.type==="IN_LIST"&&e.right.values.every(o=>o.type==="STRING"&&i.has(o.value))?"exact":"unsafe":"unsafe"}function 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 Fl(e){return(e.op==="IN"||e.op==="NOT_IN")&&e.right.type==="IN_LIST"&&e.right.values.length>0&&e.right.values.every(t=>t.type==="STRING"&&t.value!=="")}function oA(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 aA(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function Kl(e,t={}){return aa(e,t).condition}function aa(e,t={}){return ra(e,n=>sA(n,t))}function ni(e,t={}){return ia(e,n=>jd(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 sA(e,t){if(lA(e,t)||uA(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 lA(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 uA(e,t){return!cA(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function cA(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 Gl(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 pA=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})}),Vl=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 dA(e,t){let n=ii;ii=e;try{return t()}finally{ii=n}}function fA(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 dA(e,()=>EA(t,pA[e]))}function EA(e,t){let n=fA(e);if(n===null)return;if(n.type==="UPSERT"){RA(n,t);return}let r=n.applyBlocks;if($l(r),!t.multipleBlocks&&r.length!==1&&J("multiple APPLY blocks in this phase"),n.type==="INSERT"){gA(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"),yA(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`);Jd(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"&&zd(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"&&zd(r.selector.where,t.idxSelectors)}}}}function Jd(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 mA=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Xd(e,t){if(Jd(e),e.targetKind==="MULTI_VALUE"){if(!mA.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 $l(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 RA(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??[];$l(n),$l(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&J("multiple APPLY blocks in this phase"),Qd(n,"UPSERT ON INSERT"),qd(r,{...t,idxSelectors:!1,expectRows:!1})}function Qd(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 gA(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"),Qd(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=Vl[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&Wl(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 Wl(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 Zd(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||Kt(t.where))&&!Vl[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${sr(e)} public multiple-parent write is not connected`)}function cr(e){if(!Vl[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${sr(e)} internal prepared write is not available`)}function sr(e){return`Phase ${e.slice(5)}`}function yA(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"),Bl(e,t))}function Bl(e,t){if(Array.isArray(e)){for(let o of e)Bl(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))Bl(o,t)}function zd(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 ef(e){tf(e)}function Yl(e){if(Gl(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 tf(e){switch(e.type){case"SELECT":pr(e);return;case"UNION":zl(e);return;case"WITH":nf(e);return;case"EXPLAIN":tf(e.query);return;case"CREATE_TEMP_TABLE":jl(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)){Hl(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)&&!SA(e,e.where)){Hl(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)){Hl(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 Hl(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 jl(e){e.type==="SELECT"?pr(e):e.type==="UNION"?zl(e):nf(e)}function zl(e){jl(e.left),pr(e.right)}function nf(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"&&zl(t.query);jl(e.query)}function pr(e){if(AA(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(Gl(n).length===0){bn(e);return}if(hA(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 hA(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 AA(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 SA(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&&TA(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 TA(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 rf(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(IA(t))throw new ai;return;default:return}}function IA(e){let t=!1;return pa(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||wA(n.where)&&(t=!0)}),t}function wA(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 Xl=1e4,Gt=Xl,Z=e=>new Error(`ArgumentError: ${e}`),bA=e=>e.type==="VARIABLE",un=e=>e?.type==="STRING"&&e.fromVariable===!0;function NA(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 ql(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 CA(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 of(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 af(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 sf(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 PA(e,t,n){let r=ql(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=ql(`${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 lf(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 OA(e){let t=Math.floor(e/12),n=e-t*12+1;return lf(t,n,1)}function uf(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=>NA(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(af))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"}:of(i);return sf(l,y.unit),{kind:"DATE",start:n,stop:r,step:y.coefficient,dateUnit:y.unit,rowCount:PA(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 LA(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(bA)){["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(af(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=of(n.value),i=e.args[0];if(i?.type==="STRING"){let o=dr(i.value);o&&sf(o,r.unit)}}return null}let t=uf(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 cf(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=LA(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=uf(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(OA(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(lf(r.year+i*t.step,1,1));else{let i=ql(t.start);for(let o=0;o<t.rowCount;o++)n.push(CA(i+o*t.step))}}return{...t,values:n}}function et(e){_A(e),rf(e),ef(e),cf(e)}function _A(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 vA=/^(\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=UA(e,o),l=e.slice(o,s.contentEnd);if(!/^\s*--/.test(l))break;a=s.next;let u=vA.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;DA(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),xA(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 DA(e){return e==="name"||e==="depends_on"||e==="timeout"||e==="dialect"}function xA(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 UA(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 df(e,t={}){let n=ma(e),r=[...n.diagnostics],i=e,o=[],a=Xn(e).filter(l=>l.source==="logical"),s=MA(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:pf(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:pf(l),statementIndex:kA(e,f)})),{meta:n.meta,statements:[],statementRanges:[],diagnostics:r}}}function MA(e){if(e===void 0)return;let t=new Map;for(let[n,r]of Object.entries(e))try{t.set(Jn(n),r)}catch{}return t}function pf(e){return e instanceof Error?e.message:String(e)}function kA(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 ff(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function Er(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function FA(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 Zl(e){return Er(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Ef(e){return!Zl(e)&&(FA(e.type)||Er(e.type))}var mf=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"&&mf.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"&&!mf.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(Er(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":Ke(t,fr(e));break;case"UNION":Ke(t,gf(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 Rf(e){return cn(e).size>0}function gf(e){let t=e.left.type==="SELECT"?fr(e.left):gf(e.left);return Ke(t,fr(e.right)),e.all||t.add("DISTINCT"),t}function fr(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,fr(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)Ke(t,dr(i.condition));return Ke(t,dr(e.where)),Ke(t,dr(e.having)),Ra(e)&&t.add("STATISTICAL_AGGREGATE"),ga(e)&&t.add("AGGREGATE"),t}function dr(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,fr(e.right.query));break;case"LOGICAL":Ke(t,dr(e.left)),Ke(t,dr(e.right));break;case"NOT":case"GROUP":Ke(t,dr(e.expr));break;case"EXISTS":Ke(t,fr(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function yf(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function hf(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,Af=64,le=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function li(e,t,n){if(Array.isArray(e)){for(let r of e)li(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))li(a,t,n)}}var KA=new Set(["=","!=","<>",">","<",">=","<="]);function eu(e,t,n=!1){if(Array.isArray(e)){for(let r of e)eu(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(Zn(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&&KA.has(String(r.op));eu(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?u:o?n:!1)}}}function GA(e){let t=e.type==="EXPLAIN"?e.query:e;return Er(t.type)||t.type==="VALIDATE"}function tu(e){if(Array.isArray(e)){for(let t of e)tu(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&xl(e);for(let n of Object.values(t))tu(n)}}function ui(e){if(e.length===0)throw new le("ArgumentError: SQL is empty.",0);if(e.forEach((c,p)=>{try{tu(c)}catch(d){throw d instanceof Error?new le(d.message,p):d}try{lr("phase15b",c),et(c)}catch(d){throw d instanceof Te||d instanceof oi?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=ff(c),m=[],R=[],g=new Set,y=new Set,S=new Set,A=[];eu(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&&GA(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>Af)throw new le(`ParseError: batch exceeds ${Af} variables.`,p)}c.type==="CREATE_TEMP_TABLE"?li(c.query,g,y):c.type==="DROP_TEMP_TABLE"||li(c,g,y);let b=!1;if(c.type==="INSERT_SELECT"||c.type==="UPSERT_SELECT"){let v=new Set,C=new Set;li(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:Zl(c),isReadOnly:Ef(c),hasWhere:yf(c),insertValuesCount:hf(c),appIds:[...y].sort((v,C)=>v-C),tempTablesCreated:m,tempTablesReferenced:[...g],tempTablesDropped:R,dependsOn:[...S].sort((v,C)=>v-C),tempOnlySource:b,targetAppId:Er(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:Rf(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 $A(e,t){return e<t?-1:e>t?1:0}function Sf(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 BA(e,t){let n=Sf(e),r=Sf(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?vo(n.value,r.value):n.band===5&&r.band===5?pn(n.value,r.value):0}function Tf(e,t){if(e==="")return{empty:!0,normalizedId:"",display:e};let n=/^\d+$/.test(e)?e:t?/-(\d+)$/.exec(e)?.[1]:void 0;if(n===void 0)throw new Error(`ArgumentError: invalid ${t?"RECORD_NUMBER":"$id"} value: ${e}`);return{empty:!1,normalizedId:n.replace(/^0+(?=\d)/,""),display:e}}function VA(e,t,n){let r=Tf(e,n),i=Tf(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=pn(r.normalizedId,i.normalizedId);return o!==0?o:pn(r.display,i.display)}function WA(e,t){if(e==="")return[];if(t!=="CHECK_BOX"&&t!=="MULTI_SELECT")return[e];try{let n=JSON.parse(e);return Array.isArray(n)?n.map(r=>String(r??"")):[e]}catch{return[e]}}function If(e,t){let n=t.optionOrder??new Map,i=[...new Set(WA(e,t.fieldType))].map(o=>{let a=n.get(o);return a===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:a,label:o}});return i.sort(wf),i}function wf(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:pn(e.label,t.label)}function HA(e,t,n){let r=If(e,n),i=If(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=wf(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function ft(e,t,n){switch(n.compareMode){case"string":return pn(e,t);case"number":return BA(e,t);case"recordNumber":return VA(e,t,n.fieldType==="RECORD_NUMBER");case"option":return HA(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 bf(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=Ce(o),l=Ce(a),u=s!==null&&l!==null?vo(s,l):$A(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 Of(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 YA(e){return e>=55296&&e<=56319}function jA(e){return e>=56320&&e<=57343}function Sa(e,t){return t>0&&t<e.length&&YA(e.charCodeAt(t-1))&&jA(e.charCodeAt(t))}function Nf(e,t){if(Number.isNaN(e)||e===Number.NEGATIVE_INFINITY)return 0;if(e===Number.POSITIVE_INFINITY)return t;let n=Math.trunc(e);return n<0?Math.max(t+n,0):Math.min(n,t)}function ru(e,t){let n=Math.min(Math.max(0,t),e.length);return Sa(e,n)&&(n-=1),e.slice(0,n)}function zA(e,t){let n=Math.max(0,e.length-t);return Sa(e,n)&&(n+=1),e.slice(n)}function qA(e,t,n){let r=Nf(t,e.length),i=Nf(n,e.length);return i<=r?"":(Sa(e,r)&&(r+=1),Sa(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function JA(e,t){let n=e.repeat(Math.ceil(t/e.length));return ru(n,t)}var XA=200,ci=new Map;function QA(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 nu(e,t,n=!1){let r=QA(t)+(n?"g":""),i=`${e}\0${r}`,o=ci.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(ci.size>=XA){let s=ci.keys().next().value;s!==void 0&&ci.delete(s)}return ci.set(i,a),a}function ZA(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function eS(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 tS(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 nS(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 tS(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=>cS(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 qA(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?"":ru(a,s)}case"RIGHT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":zA(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 ru(a,s);let l=o[2]??" ";if(l==="")return a;let u=JA(l,s-a.length);return e.func==="LPAD"?u+a:a+u}case"GREATEST":case"LEAST":return bf(o,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return o.join("");case"REPLACE":{let a=o[0]??"",s=o[1]??"",l=o[2]??"";return s===""?a:a.split(s).join(l)}case"REGEXP_LIKE":return nu(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{ZA(o[2]);let a=eS(o[4]),s=nu(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):nS(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return nu(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 lS(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(iu(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(Pf(o[0])):"";case"DATE_FORMAT":return iS(o[0]??"",o[1]??"");case"DATEDIFF":return oS(o[0]??"",o[1]??"");case"DATE_ADD":return aS(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return sS(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 pi(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 iu(e){return Ta(e).getUTCDay()}function Cf(e){let t=Ta(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function rS(e){return Cf(e).getUTCFullYear()}function Pf(e){let t=Cf(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 iS(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=pi(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(iu(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][iu(e)]:"";case"%v":return l?String(Pf(e)).padStart(2,"0"):"";case"%G":return l?String(rS(e)).padStart(4,"0"):"";default:return u}})}function oS(e,t){if(e.length<10||t.length<10)return"0";let n=pi(e),r=pi(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 aS(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}=pi(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 sS(e){if(!e||e.length<10)return e;let{y:t,mo:n}=pi(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 lS(e,t){if(/^-?\d+$/.test(t.trim()))return uS(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 uS(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 cS(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(di(e,t)):e.type==="NUMBER"?q(e):String(De(e,t,n,r,i))}function di(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(di(e.left,t)),r=Number(di(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 pS=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]),dS=new Set(["COALESCE","ISNULL","NULLIF","GREATEST","LEAST"]);function ou(e){return e==="number"||e==="string"?e:e?.compareMode==="number"||e?.compareMode==="recordNumber"?"number":"string"}function fS(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 ES(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":au(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 pS.has(e.func)||dS.has(e.func)&&e.args.length>0&&e.args.every(n=>au(n,t)==="number")?"number":"string"}function au(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 ES(e,t);case"FIELD":return ou(t?.(e));case"FIELD_REF":return ou(t?.(fS(n.field)));case"AGG_GROUP_KEY":return ou(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=>au(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 mS(e,t,n,r,i,o);case"NULL_CHECK":return SS(e,t);case"LOGICAL":return TS(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 mS(e,t,n,r,i,o={}){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let a=Mf(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=gS(e.left,s,i);return RS(e.op,a,e.right,t,s,n,l,i,o)}function RS(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"&&(AS(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=hS(t,f,i);return e==="IN"?c:!c}if(e==="LIKE"){let f=su(n,r,o,void 0,l);return Uf(t,f)}if(e==="NOT_LIKE"){let f=su(n,r,o,void 0,l);return!Uf(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=su(n,r,o,s,l);return $t(e,t,u,a)}function gS(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 Lf=new Set(["CHECK_BOX","MULTI_SELECT"]),_f=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),yS=new Set(["CREATOR","MODIFIER"]);function hS(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(Lf.has(n)||_f.has(n)||yS.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Lf.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):_f.has(n)?!Array.isArray(i)||!i.every(vf)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):vf(i)?t.has(i.code):r()}function vf(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function AS(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 SS(e,t){let n=Mf(e.field,t);return e.not?n!=="":n===""}function TS(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 Mf(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(di(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 tr(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 su(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 IS(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 xf(o.result,t,n,r,i);return e.elseResult!==null?xf(e.elseResult,t,n,r,i):""}function Of(e,t,n,r,i={}){for(let o of e.branches)if(ce(o.condition,t,n,void 0,r,i))return Df(o.result,t,n,r,i);return e.elseResult===null?null:Df(e.elseResult,t,n,r,i)}function Df(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 xf(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 kf(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 IS(e){throw ne(e)?new Error(`${e}: ${hn}`):qn(e)?new Error(`${e}: ${Ut}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var Ia=new Map,wS=200;function Uf(e,t){if(!dd(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>=wS&&Ia.clear(),Ia.set(t,n)}return n.test(e)}function mr(e){return Kf(e)}function Ff(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 lu(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 bS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),NS=new Set(["CHECK_BOX","MULTI_SELECT"]);function Ei(e,t=new Map,n={}){let r=e.values.map(i=>CS(e.fields,i,t,n));return gi(r,100).map(i=>({app:e.appId,records:i}))}function CS(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 mi(e){lu(e.where);let t=Xf(e);return{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function Ri(e,t,n=new Map){let r=PS(e.assignments,n);return gi(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function PS(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 Vf(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 uu(e){lu(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Wf(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?Rr(n,t):n.type==="STRING_FUNC"?cu(n,t):n.type==="CASE_VALUE"&&Hf(n.expr,t);return Xf(e).forEach(n=>t.add(n)),{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function Wf(e,t){fi(e.left,t),fi(e.right,t)}function fi(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Wf(e,t):e.type==="STRING_FUNC"&&cu(e,t)}function cu(e,t){for(let n of e.args)OS(n,t)}function OS(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){Na(e,t);return}Rr(e,t)}function Rr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){cu(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Rr(e.left,t),Rr(e.right,t);return}e.type==="CASE_WHEN"&&Hf(e,t)}function Na(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&LS(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 LS(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?fi(e,t):Rr(e,t)}function Gf(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"){fi(e,t);return}Rr(e,t)}}function Hf(e,t){for(let n of e.branches)ba(n.condition,t),Gf(n.result,t);e.elseResult!==null&&Gf(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"&&fi(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 pu(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=Yf(o),l={};for(let{field:u,value:f}of e.assignments)l[u]={value:du(f,s,n.get(u),o,r)};return{id:a,record:l}});return gi(i,100).map(o=>({app:e.appId,records:o}))}function du(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?Eu(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 _S=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function fu(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=Yf(o),u={};for(let{field:f,value:c}of e.assignments){let p=n.get(f);if(c.type==="SOURCE_FIELD"){if(_S.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(Eu(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 gi(i,100).map(o=>({app:e.appId,records:o}))}function Yf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Eu(e,t){let n=$f(e.left,t),r=$f(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 $f(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 Eu(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 mu(e){return lu(e.where),{app:e.appId,query:z(e.where),fields:["$id"],totalCount:!1}}function jf(e,t){return gi(t,100).map(n=>({app:e,ids:n}))}function zf(e){return bS.has(e??"")}function vS(e){return NS.has(e??"")}function DS(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 xS(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function qf(e,t){return zf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):vS(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?DS(e):t==="DATE"?xS(e):e}function Jf(e,t){return zf(t)?e.map(n=>({code:n})):e}function Bf(e,t,n,r){if(e.type==="ARRAY")return Jf(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"?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 Xf(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(mr(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 Bf(i.result,t,n,r);return e.elseResult!==null?Bf(e.elseResult,t,n,r):""}function Nt(e,t){let n=Ru(e,t);if(!n.ok)throw new oe(n.message);return n.value}function Ru(e,t){try{return{ok:!0,value:US(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function US(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 qf(e.value,t);case"NUMBER":return q(e);case"ARRAY":return Jf(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 gi(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 gu=new Set(["CHECK_BOX","MULTI_SELECT"]),MS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function yi(e){throw new Error(`ArgumentError: ${e}`)}function Qf(e,t,n){let r=kS(n.fieldType,e.field),i=FS(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)&&yi(`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=gu.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 kS(e,t){return gu.has(e)||MS.has(e)?e:yi(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function FS(e,t,n){if(!Array.isArray(e))return yi(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>gu.has(t)?typeof i!="string"?yi(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?yi(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function X(e){throw new Error(`ArgumentError: ${e}`)}function Au(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)yu(s.field,null,r),KS(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(Xd(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)yu(p.field,s.field,r,f),hu(p.value,s.field,r,f);c.selector.kind==="WHERE"&&hu(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),yu(d,s.field,r,f)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&hu(c.selector.where,s.field,r,f)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function KS(e,t){hi(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 yu(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 hu(e,t,n,r){hi(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)hi(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]=iE(i?.value);return n}function eE(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Wt(t,r),o=Iu(n.$id?.value,"APPLY snapshot $id"),a=Au(t);return o!==a&&X(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),nE(t,n,i,o,e.evaluationContext)}function tE(e,t,n,r=Wt(e,n),i={}){let o=new Set;return t.map(a=>{let s=Iu(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&X(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),nE(e,a,r,s,i)})}function nE(e,t,n,r,i={}){let o=Iu(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(Qf(c,t[c.field]?.value,U));continue}let p=n.childrenByTable.get(c.field),d=HS(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=Su(O,p,c.field,i);y.push({kind:"APPEND",addedRows:N.length}),g.push(...N);continue}if(O.kind==="REMOVE"){let N=BS(O,d,m,c.field,i);O.expectRows&&Zf(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=$S(O,d,m,c.field,i);O.expectRows&&Zf(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=YS(t),u={};for(let c of e.assignments){let p=n.fieldsByCode.get(c.field)?.fieldType;u[c.field]={value:du(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 Zf(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 Su(e,t,n,r={}){return e.values.map(i=>({value:GS(e,i,t,n,r)}))}function GS(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?Tu(s):l.type==="CASE_VALUE"?Vt(l.expr,{},s.fieldType,i):Nt(l,s.fieldType)}}return a}function Tu(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 $S(e,t,n,r,i={}){return rE(e.selector,t,n,r,i)}function BS(e,t,n,r,i={}){return rE(e.selector,t,n,r,i)}function rE(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=VS(o);s!==null&&a.length===0&&X(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=WS(o);return l!==null&&a.length===0&&X(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function VS(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 WS(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 HS(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 Iu(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&X(`${t} must be a positive integer.`),n}function YS(e){let t={};for(let[n,r]of Object.entries(e))t[n]=iE(r?.value);return t}function iE(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function hi(e,t){if(Array.isArray(e)){e.forEach(r=>hi(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))hi(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 Ai(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),jS(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function oE(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 jS(e){let t=wu(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(wu(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=wu(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)=>!bu(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 wu(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 bu(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)=>bu(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)&&bu(n[a],r[a]))}function aE(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 sE(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=aE(t.digits,"digits",1,30),r=aE(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 lE(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 zS=new Set(["CHECK_BOX","MULTI_SELECT"]),qS=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=JS(e);if(i!==""&&!XS(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=Si(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:QS(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}=lE(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)&&qS.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 JS(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 XS(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 Si(e,t){if(Ua(e)){let r=Ru(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(zS.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 QS(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 gr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Nu(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(f=>typeof f=="object"&&f!==null&&"code"in f),u=a;try{u=Si(a,s)}catch{}i.record[o]={value:l?a:u}}}}function Cu(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&&Nu(e,r,i);let m;for(let R of e){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??=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 Pu=["required","length","range","choice"];function Ou(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 Lu(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 ZS(e){return Ou(e).length>0}function eT(e){return e.fieldType==="NUMBER"||ZS(e)}function Ma(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function _u(e,t){let{topByCode:n,childrenByTable:r}=Lu(t),i=eT;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 Ti(e,t){return Cn(e)?"":tt(Si(e,t))}var tT=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),Ii=gr;function Ct(e,t=["$id"]){let n=Lu(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!tT.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=nT(e),s=[],l=new Set,u=[...t.payloadFields,...Ii],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=Ti(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:uE(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[S.code]={value:uE(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 uE(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 nT(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;cE(o,"dmlMaxRows"),cE(a,"dmlMaxSubtableRows");for(let S of n)Da(S);let l=tE(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=>Ai(S).records),y=p.map(S=>({errors:S.errors,columns:S.columns,invalidRows:S.invalidRows,errorCount:S.errorCount}));return pE({plans:R,records:g,validations:y,guards:{revisionRequired:!0,parentRows:d,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:m}})}function cE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function pE(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))pE(n,t);return Object.freeze(e)}var vu=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)dE(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),dE(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 rT(e,t,n=Fa(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Ei(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=>Su(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||vu.has(c.fieldType)||(u[c.code]=s[c.code]??{value:Tu(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 wi(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;fE(r,"dmlMaxRows"),fE(i,"dmlMaxSubtableRows");let a=e.metadata??Fa(t,n),s=rT(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!vu.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 EE({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 dE(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||vu.has(i.fieldType))return Pt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function fE(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 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)}async function RE(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;mE(i,"dmlMaxRows"),mE(o,"dmlMaxSubtableRows"),lT(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),u=iT(t,s.map(g=>g.sourceRowIndex)),f=await wi({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)&&Du(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),p.add(y),g.snapshot||Du(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let S=Number(g.snapshot.$id?.value);S!==y&&Du(`UPSERT APPLY snapshot $id ${S} does not match target $id ${y}.`);let A=oT(t,g.sourceRowIndex,y),I=A.applyBlocks?.length?Wt(A,r):aT(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=sT(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 xu({create:f,update:d,createBatches:f.batches,updateBatches:uT(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 iT(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function oT(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 aT(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function sT(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 xu({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 lT(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 uT(e,t){let n=[];for(let r=0;r<e.length;r+=100)n.push({app:t,records:e.slice(r,r+100)});return n}function mE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Du(e){throw new Error(`ArgumentError: ${e}`)}function xu(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))xu(n,t);return Object.freeze(e)}function Ni(e){return yr("UPDATE",[hE(e)])}function Uu(e){return yr("INSERT",[yE(e)])}function Mu(e){return yr("UPSERT",[yE(e.create),hE(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"?yr("UPDATE",[Ka("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?yr("INSERT",[Ka("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):yr("UPSERT",[Ka("insert",e.onInsertApplyBlocks??[],null,!1,t,n),Ka("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function yr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function yE(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 hE(e){let t=new Map,n=0;for(let r of e.plans){let i=!1;for(let o of r.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:gE(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:gE(a?.operations,o.operations.map(l=>({kind:l.kind,value:l.value,count:l.changed?1:0,changed:l.changed}))),changedCount:(a?.changedCount??0)+o.changedValues,postImages:[...a?.postImages??[],s]})}i&&(n+=1)}return{branch:"update",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:Math.ceil(e.records.length/100)},deletedParentRows:n}}function gE(e,t){return e?t.map((n,r)=>{let i=e[r];if(!i||i.kind!==n.kind||i.value!==n.value)throw new Error("InternalError: APPLY diagnostic operation shape differs between parents.");return{...n,...i.changed!==void 0?{changed:i.changed}:{},count:bi(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:bi(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:bi(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:bi(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:bi(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function bi(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=>cT(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 cT(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 AE(e,t,n){ur("phase10c");let r=oE(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 SE(e,t,n){ur("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 TE(e,t,n){ur("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 pT=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function dT(e){if(!pT.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 fT(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=dT(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 ku(e,t){let n=fT(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 ET(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 IE(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 ET(i)?!0:Object.values(i).some(n)};return n(e)}function wE(e,t,n){if(n)return t===e.from&&e.joins.some(r=>r.type==="RIGHT");for(let r=0;r<e.joins.length;r+=1){let i=e.joins[r];if(i.type==="LEFT"&&t===i.table||i.type==="RIGHT"&&e.joins.slice(0,r).some(o=>t===o.table))return!0}return!1}function 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 Ci=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 Ci("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new Ci("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new Ci("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var Ba=50;function Ku(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 Fu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),mT=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function RT(e,t){return e==="DATE"?ei(t):e==="TIME"?Zo(t):Fu.has(e)?ea(t):!1}function gT(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Fu.has(e)?Fu.has(t.fieldType):!1}function Gu(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&&!mT.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(!gT(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=>!RT(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 $u=Xl;function Pi(e,t,n=$u){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function bE(e,t){let n=ee(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function 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??yT,a=Math.max(1,i.parallel??hT),s=i.maxRecords??AT,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=PE(n,m),y=await CE(e,t,g,c,o,R);if(NE(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>=Vu&&(m=OE(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>=Vu)break;b.push(U)}let v=PE(n,m),C=await Promise.all(b.map(x=>CE(e,t,v,c,o,x)));for(let x of C)NE(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>=Vu){let x=C[C.length-1];m=OE(x.records),R=0}}return p}function NE(e,t){e.searchAborted&&t.onSearchAborted?.()}function LE(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 yT=500,hT=1,AT=1e4,Vu=1e4;async function CE(e,t,n,r,i,o){let a=ST(n,i,o);return e({app:t,query:a,fields:r})}function PE(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 ST(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function OE(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 Oi(e,t,n,r){let{records:i,metrics:o}=await mt(e,t,n,["$id"],r);return{ids:LE(i),metrics:o}}function Ar(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)?vE(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"}):vE(n[0],e.field)}function Hu(e,t){if(e.left.type!=="FIELD")return Li();let n=Ar(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Li();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||we(e,a=>{let s=Ar(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 Li();let o=na(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?Li():Object.freeze({relation:o,owner:n})}function DE(e,t){let n=Se(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=Ar(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):we(e,o=>{let a=Ar(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 xE(e,t){let n=new Set;Ln(e,n);let i=(e===null?[]:kE(hr(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=TT(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(bT(e,t)),fetchQueriesByAlias:new Map,...o})}function UE(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,Sr(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=Sr({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 Tr(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))||ME(wT(e))!==e.allKlikes.length))}function TT(e,t){if(e===null)return _E(null);let n=Object.freeze([...Se(e)]);if(n.length===0)return _E(e);let r=IT(e,t,n);if(r!==null)return r;let i=Ya(e),o=[],a=new Set;for(let c of i){let p=DE(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=Sr(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 IT(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=Sr(i,t)}catch{return null}if(!_n(qa(o),n))return null;let a=new Set;if(Ln(e,a),ME(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=DE(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Hu(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=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 _E(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 Fr){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 ME(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function wT(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function bT(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=Ar(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}Hu(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=hr(i.left,t),a=hr(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 Sr(e,t){return _i(e.predicate,e,t),z(e.predicate)}function _i(e,t,n){switch(e.type){case"LOGICAL":_i(e.left,t,n),_i(e.right,t,n);return;case"GROUP":_i(e.expr,t,n);return;case"NOT":_i(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||za(e.right))throw Wu(t,"predicate contains a non-target or RHS field reference");let r=Ar(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw Wu(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Wu(t,"predicate shape is outside the Phase A serializer contract")}}function Wu(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function hr(e,t){switch(e.type){case"BINARY":{let n=Hu(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=hr(e.left,t),r=hr(e.right,t);if(e.op==="AND")return kE([...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:FE(i.relation,o.relation)}]:[]}case"GROUP":return hr(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function kE(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:FE(i.relation,n.relation)}}return t}function vE(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Li(){return Object.freeze({relation:"unsafe"})}function Ja(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function FE(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function 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 Yu(e,t){let n=ni(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 NT=1e4,CT=500;function PT(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 OT(e,t){let n=e.columns.flatMap(r=>"alias"in r&&r.alias!==null?[r.alias]:[]);return ve(t,n)!==void 0}function vi(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=PT(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"&&!OT(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>CT)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>NT)&&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 LT=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 _T(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function Di(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(_T(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}LT.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 GE(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 ju(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 vT={CALC:"RECORD",CATEGORY:"NON_RECORD",CHECK_BOX:"RECORD",CREATED_TIME:"RECORD",CREATOR:"RECORD",DATE:"RECORD",DATETIME:"RECORD",DROP_DOWN:"RECORD",FILE:"RECORD",GROUP:"NON_RECORD",GROUP_SELECT:"RECORD",LINK:"RECORD",MODIFIER:"RECORD",MULTI_LINE_TEXT:"RECORD",MULTI_SELECT:"RECORD",NUMBER:"RECORD",ORGANIZATION_SELECT:"RECORD",RADIO_BUTTON:"RECORD",RECORD_NUMBER:"RECORD",REFERENCE_TABLE:"NON_RECORD",RICH_TEXT:"RECORD",SINGLE_LINE_TEXT:"RECORD",STATUS:"PROCESS",STATUS_ASSIGNEE:"PROCESS",SUBTABLE:"RECORD",TIME:"RECORD",UPDATED_TIME:"RECORD",USER_SELECT:"RECORD"};function $E(e,t){let n=vT[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 BE(e,t,n){if(t!=null)return["_pid","_rid","_idx",...e.filter(s=>s.inSubtable===!0&&s.subtableCode===t).map(s=>s.code)];let r=e.filter(s=>!s.inSubtable),o=r.some(s=>$E(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=$E(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var Ir=new WeakMap,qu=new WeakMap,DT="\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 ec(e){if(qu.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}}}),qu.set(t,e),t}function Rt(e){return qu.get(e)??e}function ZE(e){let t=Ir.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},Ir.set(e,t)),t}function gt(e,t,n,r=[]){let i=ZE(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function We(e,t){return Ir.get(e)?.byColumn.get(t)}function be(e,t){return Ir.get(e)?.byLookupKey.get(t)}function Yt(e,t){return Ir.has(e)?void 0:e[t]}function VE(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(DT)}function xT(e){let t=Ir.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=bl(e);return r&&wl(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 UT(e,t,n,r={}){if(n.type==="CROSS"){let p=Pi(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=MT(i,e,t,r.leftColumns,r.rightColumns),s=Ju(a.left),l=Ju(a.right);if(HE(e,s,r.leftColumns),HE(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 MT(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=WE(o),l=WE(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 WE(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 HE(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 kT(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 FT(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let u=t.map((c,p)=>GT(c,l,i?.items[p],n,o)).join("\0"),f=a.get(u);f?f.push(l):a.set(u,[l])}a.size===0&&t.length===0&&ts(n)&&a.set("",[]);let s=[];for(let l of a.values()){let u=ec({...l[0]});for(let f of t)f.type==="ARITH_KEY"?u[Gi(f.expr)]=String(me(f.expr,l[0],o.evaluationContext)):f.type==="FUNC_KEY"&&(u[fn(f.expr)]=he(f.expr,l[0],void 0,void 0,o.evaluationContext));em(u,l,n,r,o.evaluationContext),s.push(u)}return s}function KT(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let u={children:new Map},f=[];for(let p of e){let d=u;for(let E of l.items){let m=YE(E,p),R=d.children.get(m);R||(R={children:new Map},d.children.set(m,R)),d=R}d.rows||(s(),d.rows=[],f.push(d.rows)),d.rows.push(p)}e.length===0&&l.items.length===0&&(s(),u.rows=[],f.push(u.rows));let c=new Set(l.items.map(p=>p.canonicalId));for(let p of f){let d=ec({...p[0]}),E=new Map;for(let m of l.items)E.has(m.canonicalId)||E.set(m.canonicalId,YE(m,p[0]));for(let m of t.allItems){let R=E.get(m.canonicalId)??"";d[m.directKey]=R,m.unqualifiedBridgeKey!==null&&(d[m.unqualifiedBridgeKey]=R)}em(d,p,n,r,i.evaluationContext),wl(d,c),o.push(d)}}return o}function YE(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function em(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"){xi(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)){xi(e,t,a.expr,r,i);let s=a.alias??Gi(a.expr),l=Zu(a.expr,t,r);gt(e,o,String(me(l,e,i)),[s])}else if(a.type==="STRFUNC_COL"&&$i(a.expr)){xi(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)){xi(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)){xi(e,t,a.expr,r,i);let s=om(a.expr,t,r),u=ze(s,e,void 0,f=>f.aggregateRef?nm(f.aggregateRef,r):void 0,i);gt(e,o,u,[Xu(a.alias,o)])}}function Xu(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 xi(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));ZE(e).byLookupKey.set(s,l)}}function GT(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=tm(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 tm(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 $T(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?.($T(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 nm(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 BT(e,t,n,r,i={}){return t===null?e:e.filter(o=>ce(t,xT(o),n,void 0,r,i))}function VT(e,t,n,r,i,o={}){if(e.length===0)return e;let a=WT(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 WT(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(QT(t,a,o))}function tc(e,t,n,r,i,o,a={}){return t.length===0?e:rm(e,t,n,r,i,o,a).rows.map(s=>s.row)}function rm(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:jT(c,f,o,a)}))})),u=(f,c)=>HT(f,c,t,s);return l.sort(u),{rows:l,compare:u}}function HT(e,t,n,r){for(let i=0;i<n.length;i++){let o=YT(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function YT(e,t,n){return ft(e.s,t.s,n.semantics)}function jT(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 tr(e.ref,t)}}function nc(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=>tr(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 rc(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]=ec(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=>XT(c,E))),d=f.get(p);d?d.push(c):f.set(p,[c])}for(let c of f.values()){let p=rm(c,l.orderBy,n,r,i,void 0,a),d=p.rows;if(xo(l)){JT(l,u,p,o,a);continue}if(ml(l)){qT(l,u,d,a);continue}if(!El(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 zT(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 qT(e,t,n,r={}){let i=n.map(a=>zT(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 JT(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:tm(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 XT(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,Xu(e.alias,n))??Yt(t,Xu(e.alias,n))??"":ze(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return tr(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 QT(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 vn(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let E=e.map(R=>{let g=XE(zE(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=nI(t),u=tI(t),f=t.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD"),c=f?null:ZT(t,l,u),p=c??[];return f&&e.length===0?{rows:[],columns:eI(t,l,u)}:{rows:e.map((E,m)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys(XE(zE(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 ZT(e,t,n){return e.map((r,i)=>im(r,i,t,n))}function eI(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=im(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function im(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 tI(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 nI(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 zE(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 rI(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=>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:dn(e)}function $i(e){return e.args.some(t=>rI(t))}function iI(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"?om(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 Zu(e,t,n){return e.type==="STRING_FUNC"?rs(e,t,n):e.type==="ARITH"?{...e,left:Zu(e.left,t,n),right:Zu(e.right,t,n)}:e}function JE(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 om(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:JE(r.result,t,n)})),elseResult:e.elseResult===null?null:JE(e.elseResult,t,n)}}function rs(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>iI(r,t,n))}}function XE(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 QE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function zu(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function oI(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(El(r)||xo(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,V("number"));else if((xo(r)||ml(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 ic(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=oI(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=zu(QE(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=zu(QE(E?.get(P),P),void 0,h);I=UT(I,h,O,{leftColumns:C,rightColumns:w}),C=zu(C,w,I)}let k=e.residualWhere!==void 0?e.residualWhere:t.where;I=kT(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=KT(I,R,t.columns,c,{maxGeneratedRows:5e4,evaluationContext:S})}else(x.type==="PLAIN"||ts(t.columns))&&(I=FT(I,x.type==="PLAIN"?x.allItems:[],t.columns,c,x.type==="PLAIN"?g:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:S}));VE(t.columns,I,y);let U=O=>O.aggregateRef?nm(O.aggregateRef,c):f?.(O);return VE(t.having,I,y),I=BT(I,t.having,u,U,S),I=rc(I,t.columns,i,o,A,c,S),t.distinct&&(I=VT(I,t.columns,r,s,l,S)),I=tc(I,t.orderBy,i,o,A,nc(t.columns,r,s,l,S),S),I=ns(I,t.limit,t.offset),vn(I,t.columns,r,s,d,l,m,S)}function am(e,t){let n=[];for(let r of e){let i=oc(r.$id?.value),o=aI(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=oc(f?.value);l[`_p.${u}`]={value:c}}for(let[u,f]of Object.entries(s.value??{}))l[u]={value:oc(f?.value)};n.push(l)}}return n}function aI(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function oc(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function sI(e,t={}){let n=new Mt(e).tokenize(),r=new en(n,t).parseStatements();return r.forEach(et),r}function sm(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:sI(i,o),meta:n.meta}}function lm(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function um(e,t){let n=Bi(e);for(let[r,i]of Object.entries(t))n[r]=Bi(i);return n}function cm(e){let t=[...e.preErrors.map(i=>ac(i)),...e.postImageErrors.map(i=>ac(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>ac(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 ac(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 dm(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 lc(e){return dm(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=lc(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 pm(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 fm(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":pm(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?pm(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":fm(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=lc(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=lc(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=dm(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 uc(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 lI(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)&&Tr(t)}function uI(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function cI(e,t){let n=(t?.reasons??[]).filter(r=>r.functionName===e).map(r=>r.code).filter(r=>r.startsWith("WHERE_RELATIVE_DATE_")||r.startsWith("WHERE_KINTONE_FUNCTION_"));return qn(e)?(n.some(r=>r!==Ut)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(Ut)||n.push(Ut)):n.includes(hn)||n.push(hn),[...new Set(n)]}function sc(e,t){let n=e.functionNames[0],r=qn(n)?Ut:hn,i=cI(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Em(e,t){let n=[];fm(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let f=uI(i);return r.push(f),{hasRelativeDate:i.functionNames.some(ne),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:sc(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&&uc(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&&lI(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:sc(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:sc(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ne)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function cc(e){if(!e.allowed&&e.rejection){let t=qn(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 pc(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=pI(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!dI(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=EI(e.where,t),l=ni(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=fI(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)])||!mI(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 pI(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 dI(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 fI(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 EI(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 mI(e,t){let n=new Map;for(let r of t){if(!Fr.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 mm(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 RI(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function Rm(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:mm(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 mm(r)??new rt("ImportSourceReadError","IMPORT source could not be read.",r)}).then(r=>{if(r===null||typeof r!="object"||!RI(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 gI(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 yI(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 df(e,t={}){let n=ma(e),r=[...n.diagnostics],i=e,o=[],a=Qn(e).filter(l=>l.source==="logical"),s=MA(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:pf(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:pf(l),statementIndex:kA(e,f)})),{meta:n.meta,statements:[],statementRanges:[],diagnostics:r}}}function MA(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 pf(e){return e instanceof Error?e.message:String(e)}function kA(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 ff(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 FA(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 Zl(e){return mr(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Ef(e){return!Zl(e)&&(FA(e.type)||mr(e.type))}var mf=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"&&mf.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"&&!mf.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,gf(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 Rf(e){return cn(e).size>0}function gf(e){let t=e.left.type==="SELECT"?Er(e.left):gf(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 yf(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function hf(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,Af=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 KA=new Set(["=","!=","<>",">","<",">=","<="]);function eu(e,t,n=!1){if(Array.isArray(e)){for(let r of e)eu(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&&KA.has(String(r.op));eu(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?u:o?n:!1)}}}function GA(e){let t=e.type==="EXPLAIN"?e.query:e;return mr(t.type)||t.type==="VALIDATE"}function tu(e){if(Array.isArray(e)){for(let t of e)tu(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&xl(e);for(let n of Object.values(t))tu(n)}}function ci(e){if(e.length===0)throw new le("ArgumentError: SQL is empty.",0);if(e.forEach((c,p)=>{try{tu(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=ff(c),m=[],R=[],g=new Set,y=new Set,S=new Set,A=[];eu(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&&GA(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>Af)throw new le(`ParseError: batch exceeds ${Af} 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:Zl(c),isReadOnly:Ef(c),hasWhere:yf(c),insertValuesCount:hf(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:Rf(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 $A(e,t){return e<t?-1:e>t?1:0}function Sf(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 BA(e,t){let n=Sf(e),r=Sf(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?vo(n.value,r.value):n.band===5&&r.band===5?pn(n.value,r.value):0}function Tf(e,t){if(e==="")return{empty:!0,normalizedId:"",display:e};let n=/^\d+$/.test(e)?e:t?/-(\d+)$/.exec(e)?.[1]:void 0;if(n===void 0)throw new Error(`ArgumentError: invalid ${t?"RECORD_NUMBER":"$id"} value: ${e}`);return{empty:!1,normalizedId:n.replace(/^0+(?=\d)/,""),display:e}}function VA(e,t,n){let r=Tf(e,n),i=Tf(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=pn(r.normalizedId,i.normalizedId);return o!==0?o:pn(r.display,i.display)}function WA(e,t){if(e==="")return[];if(t!=="CHECK_BOX"&&t!=="MULTI_SELECT")return[e];try{let n=JSON.parse(e);return Array.isArray(n)?n.map(r=>String(r??"")):[e]}catch{return[e]}}function If(e,t){let n=t.optionOrder??new Map,i=[...new Set(WA(e,t.fieldType))].map(o=>{let a=n.get(o);return a===void 0?{knownBand:1,rank:0,label:o}:{knownBand:0,rank:a,label:o}});return i.sort(wf),i}function wf(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:pn(e.label,t.label)}function HA(e,t,n){let r=If(e,n),i=If(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=wf(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function ft(e,t,n){switch(n.compareMode){case"string":return pn(e,t);case"number":return BA(e,t);case"recordNumber":return VA(e,t,n.fieldType==="RECORD_NUMBER");case"option":return HA(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 bf(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=Ce(o),l=Ce(a),u=s!==null&&l!==null?vo(s,l):$A(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 Of(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 YA(e){return e>=55296&&e<=56319}function jA(e){return e>=56320&&e<=57343}function Sa(e,t){return t>0&&t<e.length&&YA(e.charCodeAt(t-1))&&jA(e.charCodeAt(t))}function Nf(e,t){if(Number.isNaN(e)||e===Number.NEGATIVE_INFINITY)return 0;if(e===Number.POSITIVE_INFINITY)return t;let n=Math.trunc(e);return n<0?Math.max(t+n,0):Math.min(n,t)}function ru(e,t){let n=Math.min(Math.max(0,t),e.length);return Sa(e,n)&&(n-=1),e.slice(0,n)}function zA(e,t){let n=Math.max(0,e.length-t);return Sa(e,n)&&(n+=1),e.slice(n)}function qA(e,t,n){let r=Nf(t,e.length),i=Nf(n,e.length);return i<=r?"":(Sa(e,r)&&(r+=1),Sa(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function JA(e,t){let n=e.repeat(Math.ceil(t/e.length));return ru(n,t)}var XA=200,pi=new Map;function QA(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 nu(e,t,n=!1){let r=QA(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>=XA){let s=pi.keys().next().value;s!==void 0&&pi.delete(s)}return pi.set(i,a),a}function ZA(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function eS(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 tS(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 nS(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 tS(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=>cS(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 qA(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?"":ru(a,s)}case"RIGHT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":zA(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 ru(a,s);let l=o[2]??" ";if(l==="")return a;let u=JA(l,s-a.length);return e.func==="LPAD"?u+a:a+u}case"GREATEST":case"LEAST":return bf(o,e.func==="GREATEST"?"greatest":"least");case"CONCAT":return o.join("");case"REPLACE":{let a=o[0]??"",s=o[1]??"",l=o[2]??"";return s===""?a:a.split(s).join(l)}case"REGEXP_LIKE":return nu(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{ZA(o[2]);let a=eS(o[4]),s=nu(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):nS(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return nu(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 lS(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(iu(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(Pf(o[0])):"";case"DATE_FORMAT":return iS(o[0]??"",o[1]??"");case"DATEDIFF":return oS(o[0]??"",o[1]??"");case"DATE_ADD":return aS(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return sS(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 iu(e){return Ta(e).getUTCDay()}function Cf(e){let t=Ta(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function rS(e){return Cf(e).getUTCFullYear()}function Pf(e){let t=Cf(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 iS(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(iu(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][iu(e)]:"";case"%v":return l?String(Pf(e)).padStart(2,"0"):"";case"%G":return l?String(rS(e)).padStart(4,"0"):"";default:return u}})}function oS(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 aS(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 sS(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 lS(e,t){if(/^-?\d+$/.test(t.trim()))return uS(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 uS(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 cS(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 pS=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]),dS=new Set(["COALESCE","ISNULL","NULLIF","GREATEST","LEAST"]);function ou(e){return e==="number"||e==="string"?e:e?.compareMode==="number"||e?.compareMode==="recordNumber"?"number":"string"}function fS(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 ES(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":au(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 pS.has(e.func)||dS.has(e.func)&&e.args.length>0&&e.args.every(n=>au(n,t)==="number")?"number":"string"}function au(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 ES(e,t);case"FIELD":return ou(t?.(e));case"FIELD_REF":return ou(t?.(fS(n.field)));case"AGG_GROUP_KEY":return ou(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=>au(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 mS(e,t,n,r,i,o);case"NULL_CHECK":return SS(e,t);case"LOGICAL":return TS(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 mS(e,t,n,r,i,o={}){if(e.op==="KLIKE"||e.op==="NOT_KLIKE"){if(r?.has(e))return!0;throw new Error("KLIKE / NOT KLIKE \u306F\u62BC\u3057\u4E0B\u3052\u6E08\u307F\u96C6\u5408\u306B\u542B\u307E\u308C\u306A\u3044\u305F\u3081 JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093")}let a=Mf(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=gS(e.left,s,i);return RS(e.op,a,e.right,t,s,n,l,i,o)}function RS(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"&&(AS(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=hS(t,f,i);return e==="IN"?c:!c}if(e==="LIKE"){let f=su(n,r,o,void 0,l);return Uf(t,f)}if(e==="NOT_LIKE"){let f=su(n,r,o,void 0,l);return!Uf(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=su(n,r,o,s,l);return $t(e,t,u,a)}function gS(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 Lf=new Set(["CHECK_BOX","MULTI_SELECT"]),_f=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),yS=new Set(["CREATOR","MODIFIER"]);function hS(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(Lf.has(n)||_f.has(n)||yS.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Lf.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):_f.has(n)?!Array.isArray(i)||!i.every(vf)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):vf(i)?t.has(i.code):r()}function vf(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function AS(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 SS(e,t){let n=Mf(e.field,t);return e.not?n!=="":n===""}function TS(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 Mf(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 su(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 IS(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 xf(o.result,t,n,r,i);return e.elseResult!==null?xf(e.elseResult,t,n,r,i):""}function Of(e,t,n,r,i={}){for(let o of e.branches)if(ce(o.condition,t,n,void 0,r,i))return Df(o.result,t,n,r,i);return e.elseResult===null?null:Df(e.elseResult,t,n,r,i)}function Df(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 xf(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 kf(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 IS(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,wS=200;function Uf(e,t){if(!dd(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>=wS&&Ia.clear(),Ia.set(t,n)}return n.test(e)}function Rr(e){return Kf(e)}function Ff(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 lu(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 bS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),NS=new Set(["CHECK_BOX","MULTI_SELECT"]);function mi(e,t=new Map,n={}){let r=e.values.map(i=>CS(e.fields,i,t,n));return yi(r,100).map(i=>({app:e.appId,records:i}))}function CS(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){lu(e.where);let t=Xf(e);return{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function gi(e,t,n=new Map){let r=PS(e.assignments,n);return yi(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function PS(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 Vf(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 uu(e){lu(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?Wf(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?gr(n,t):n.type==="STRING_FUNC"?cu(n,t):n.type==="CASE_VALUE"&&Hf(n.expr,t);return Xf(e).forEach(n=>t.add(n)),{app:e.appId,query:z(e.where),fields:["$id",...t],totalCount:!1}}function Wf(e,t){Ei(e.left,t),Ei(e.right,t)}function Ei(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?Wf(e,t):e.type==="STRING_FUNC"&&cu(e,t)}function cu(e,t){for(let n of e.args)OS(n,t)}function OS(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"){cu(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"&&Hf(e,t)}function Na(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&LS(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 LS(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Ei(e,t):gr(e,t)}function Gf(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 Hf(e,t){for(let n of e.branches)ba(n.condition,t),Gf(n.result,t);e.elseResult!==null&&Gf(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 pu(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=Yf(o),l={};for(let{field:u,value:f}of e.assignments)l[u]={value:du(f,s,n.get(u),o,r)};return{id:a,record:l}});return yi(i,100).map(o=>({app:e.appId,records:o}))}function du(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?Eu(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 _S=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function fu(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=Yf(o),u={};for(let{field:f,value:c}of e.assignments){let p=n.get(f);if(c.type==="SOURCE_FIELD"){if(_S.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(Eu(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 Yf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Eu(e,t){let n=$f(e.left,t),r=$f(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 $f(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 Eu(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 mu(e){return lu(e.where),{app:e.appId,query:z(e.where),fields:["$id"],totalCount:!1}}function jf(e,t){return yi(t,100).map(n=>({app:e,ids:n}))}function zf(e){return bS.has(e??"")}function vS(e){return NS.has(e??"")}function DS(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 xS(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function qf(e,t){return zf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):vS(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?DS(e):t==="DATE"?xS(e):e}function Jf(e,t){return zf(t)?e.map(n=>({code:n})):e}function Bf(e,t,n,r){if(e.type==="ARRAY")return Jf(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"?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 Xf(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 Bf(i.result,t,n,r);return e.elseResult!==null?Bf(e.elseResult,t,n,r):""}function Nt(e,t){let n=Ru(e,t);if(!n.ok)throw new oe(n.message);return n.value}function Ru(e,t){try{return{ok:!0,value:US(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function US(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 qf(e.value,t);case"NUMBER":return q(e);case"ARRAY":return Jf(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 gu=new Set(["CHECK_BOX","MULTI_SELECT"]),MS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function hi(e){throw new Error(`ArgumentError: ${e}`)}function Qf(e,t,n){let r=kS(n.fieldType,e.field),i=FS(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=gu.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 kS(e,t){return gu.has(e)||MS.has(e)?e:hi(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function FS(e,t,n){if(!Array.isArray(e))return hi(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>gu.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 Au(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)yu(s.field,null,r),KS(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(Xd(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)yu(p.field,s.field,r,f),hu(p.value,s.field,r,f);c.selector.kind==="WHERE"&&hu(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),yu(d,s.field,r,f)}else c.kind==="REMOVE"&&c.selector.kind==="WHERE"&&hu(c.selector.where,s.field,r,f)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function KS(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 yu(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 hu(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]=iE(i?.value);return n}function eE(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??Wt(t,r),o=Iu(n.$id?.value,"APPLY snapshot $id"),a=Au(t);return o!==a&&X(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),nE(t,n,i,o,e.evaluationContext)}function tE(e,t,n,r=Wt(e,n),i={}){let o=new Set;return t.map(a=>{let s=Iu(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&X(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),nE(e,a,r,s,i)})}function nE(e,t,n,r,i={}){let o=Iu(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(Qf(c,t[c.field]?.value,U));continue}let p=n.childrenByTable.get(c.field),d=HS(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=Su(O,p,c.field,i);y.push({kind:"APPEND",addedRows:N.length}),g.push(...N);continue}if(O.kind==="REMOVE"){let N=BS(O,d,m,c.field,i);O.expectRows&&Zf(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=$S(O,d,m,c.field,i);O.expectRows&&Zf(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=YS(t),u={};for(let c of e.assignments){let p=n.fieldsByCode.get(c.field)?.fieldType;u[c.field]={value:du(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 Zf(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 Su(e,t,n,r={}){return e.values.map(i=>({value:GS(e,i,t,n,r)}))}function GS(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?Tu(s):l.type==="CASE_VALUE"?Vt(l.expr,{},s.fieldType,i):Nt(l,s.fieldType)}}return a}function Tu(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 $S(e,t,n,r,i={}){return rE(e.selector,t,n,r,i)}function BS(e,t,n,r,i={}){return rE(e.selector,t,n,r,i)}function rE(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=VS(o);s!==null&&a.length===0&&X(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=WS(o);return l!==null&&a.length===0&&X(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function VS(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 WS(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 HS(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 Iu(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&X(`${t} must be a positive integer.`),n}function YS(e){let t={};for(let[n,r]of Object.entries(e))t[n]=iE(r?.value);return t}function iE(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),jS(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function oE(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 jS(e){let t=wu(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(wu(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=wu(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)=>!bu(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 wu(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 bu(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)=>bu(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)&&bu(n[a],r[a]))}function aE(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 sE(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=aE(t.digits,"digits",1,30),r=aE(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 lE(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 zS=new Set(["CHECK_BOX","MULTI_SELECT"]),qS=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=JS(e);if(i!==""&&!XS(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:QS(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}=lE(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)&&qS.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 JS(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 XS(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=Ru(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(zS.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 QS(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 Nu(e,t,n){let r=new Map(n.map(i=>[i.code,i]));for(let i of e)if(i.mode==="update"){i.record??={};for(let o of t){if(!i.payload.has(o))continue;let a=i.payload.get(o),s=r.get(o).fieldType,l=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(s)&&Array.isArray(a)&&a.every(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 Cu(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&&Nu(e,r,i);let m;for(let R of e){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??=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 Pu=["required","length","range","choice"];function Ou(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 Lu(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 ZS(e){return Ou(e).length>0}function eT(e){return e.fieldType==="NUMBER"||ZS(e)}function Ma(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function _u(e,t){let{topByCode:n,childrenByTable:r}=Lu(t),i=eT;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 tT=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=Lu(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!tT.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=nT(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:uE(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[S.code]={value:uE(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 uE(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 nT(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;cE(o,"dmlMaxRows"),cE(a,"dmlMaxSubtableRows");for(let S of n)Da(S);let l=tE(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 pE({plans:R,records:g,validations:y,guards:{revisionRequired:!0,parentRows:d,dmlMaxRows:o,subtableRows:E,dmlMaxSubtableRows:a,wouldExceed:m}})}function cE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function pE(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))pE(n,t);return Object.freeze(e)}var vu=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)dE(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),dE(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 rT(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=>Su(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||vu.has(c.fieldType)||(u[c.code]=s[c.code]??{value:Tu(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;fE(r,"dmlMaxRows"),fE(i,"dmlMaxSubtableRows");let a=e.metadata??Fa(t,n),s=rT(t,n,a,e.parentRowNumbers),l=n.filter(A=>A.fieldType==="SUBTABLE"||A.fieldType!=="FILE"&&A.writable!==!1&&!vu.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 EE({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 dE(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||vu.has(i.fieldType))return Pt(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function fE(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 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)}async function RE(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;mE(i,"dmlMaxRows"),mE(o,"dmlMaxSubtableRows"),lT(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),u=iT(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)&&Du(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),p.add(y),g.snapshot||Du(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let S=Number(g.snapshot.$id?.value);S!==y&&Du(`UPSERT APPLY snapshot $id ${S} does not match target $id ${y}.`);let A=oT(t,g.sourceRowIndex,y),I=A.applyBlocks?.length?Wt(A,r):aT(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=sT(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 xu({create:f,update:d,createBatches:f.batches,updateBatches:uT(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 iT(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function oT(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 aT(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function sT(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 xu({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 lT(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 uT(e,t){let n=[];for(let r=0;r<e.length;r+=100)n.push({app:t,records:e.slice(r,r+100)});return n}function mE(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Du(e){throw new Error(`ArgumentError: ${e}`)}function xu(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))xu(n,t);return Object.freeze(e)}function Ci(e){return hr("UPDATE",[hE(e)])}function Uu(e){return hr("INSERT",[yE(e)])}function Mu(e){return hr("UPSERT",[yE(e.create),hE(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 yE(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 hE(e){let t=new Map,n=0;for(let r of e.plans){let i=!1;for(let o of r.tables){let a=t.get(o.table);t.set(o.table,{targetKind:"SUBTABLE",field:o.table,operations:gE(a?.operations,o.operations.map(s=>({...s,count:s.kind==="PATCH"?s.changedRows:s.kind==="APPEND"?s.addedRows:s.removedRows}))),changedCount:(a?.changedCount??0)+o.changedSubtableRows}),i||=o.deletedRows>0}for(let o of r.multiValues){let a=t.get(o.field),s={parentId:r.parentId,value:o.postImageValue};t.set(o.field,{targetKind:"MULTI_VALUE",field:o.field,fieldType:o.fieldType,operations:gE(a?.operations,o.operations.map(l=>({kind:l.kind,value:l.value,count:l.changed?1:0,changed:l.changed}))),changedCount:(a?.changedCount??0)+o.changedValues,postImages:[...a?.postImages??[],s]})}i&&(n+=1)}return{branch:"update",parentRows:e.guards.parentRows,targets:[...t.values()],guards:e.guards,chunk:{size:100,plannedChunks:Math.ceil(e.records.length/100)},deletedParentRows:n}}function gE(e,t){return e?t.map((n,r)=>{let i=e[r];if(!i||i.kind!==n.kind||i.value!==n.value)throw new Error("InternalError: APPLY diagnostic operation shape differs between parents.");return{...n,...i.changed!==void 0?{changed:i.changed}:{},count: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=>cT(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 cT(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 AE(e,t,n){cr("phase10c");let r=oE(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 SE(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 TE(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 pT=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function dT(e){if(!pT.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 fT(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=dT(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 ku(e,t){let n=fT(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 ET(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 IE(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 ET(i)?!0:Object.values(i).some(n)};return n(e)}function wE(e,t,n){if(n)return t===e.from&&e.joins.some(r=>r.type==="RIGHT");for(let r=0;r<e.joins.length;r+=1){let i=e.joins[r];if(i.type==="LEFT"&&t===i.table||i.type==="RIGHT"&&e.joins.slice(0,r).some(o=>t===o.table))return!0}return!1}function 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 Ku(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 Fu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),mT=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function RT(e,t){return e==="DATE"?ti(t):e==="TIME"?Zo(t):Fu.has(e)?ea(t):!1}function gT(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":Fu.has(e)?Fu.has(t.fieldType):!1}function Gu(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&&!mT.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(!gT(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=>!RT(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 $u=Xl;function Oi(e,t,n=$u){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function bE(e,t){let n=ee(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function 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??yT,a=Math.max(1,i.parallel??hT),s=i.maxRecords??AT,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=PE(n,m),y=await CE(e,t,g,c,o,R);if(NE(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>=Vu&&(m=OE(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>=Vu)break;b.push(U)}let v=PE(n,m),C=await Promise.all(b.map(x=>CE(e,t,v,c,o,x)));for(let x of C)NE(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>=Vu){let x=C[C.length-1];m=OE(x.records),R=0}}return p}function NE(e,t){e.searchAborted&&t.onSearchAborted?.()}function LE(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 yT=500,hT=1,AT=1e4,Vu=1e4;async function CE(e,t,n,r,i,o){let a=ST(n,i,o);return e({app:t,query:a,fields:r})}function PE(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 ST(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function OE(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:LE(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)?vE(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"}):vE(n[0],e.field)}function Hu(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 DE(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 xE(e,t){let n=new Set;Ln(e,n);let i=(e===null?[]:kE(Ar(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=TT(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(bT(e,t)),fetchQueriesByAlias:new Map,...o})}function UE(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))||ME(wT(e))!==e.allKlikes.length))}function TT(e,t){if(e===null)return _E(null);let n=Object.freeze([...Se(e)]);if(n.length===0)return _E(e);let r=IT(e,t,n);if(r!==null)return r;let i=Ya(e),o=[],a=new Set;for(let c of i){let p=DE(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 IT(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),ME(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=DE(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=Hu(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=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 _E(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 ME(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function wT(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function bT(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}Hu(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 Wu(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 Wu(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw Wu(t,"predicate shape is outside the Phase A serializer contract")}}function Wu(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=Hu(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 kE([...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:FE(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 kE(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:FE(i.relation,n.relation)}}return t}function vE(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 FE(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 Yu(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 NT=1e4,CT=500;function PT(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 OT(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=PT(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"&&!OT(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>CT)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>NT)&&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 LT=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 _T(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(_T(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}LT.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 GE(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 ju(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 vT={CALC:"RECORD",CATEGORY:"NON_RECORD",CHECK_BOX:"RECORD",CREATED_TIME:"RECORD",CREATOR:"RECORD",DATE:"RECORD",DATETIME:"RECORD",DROP_DOWN:"RECORD",FILE:"RECORD",GROUP:"NON_RECORD",GROUP_SELECT:"RECORD",LINK:"RECORD",MODIFIER:"RECORD",MULTI_LINE_TEXT:"RECORD",MULTI_SELECT:"RECORD",NUMBER:"RECORD",ORGANIZATION_SELECT:"RECORD",RADIO_BUTTON:"RECORD",RECORD_NUMBER:"RECORD",REFERENCE_TABLE:"NON_RECORD",RICH_TEXT:"RECORD",SINGLE_LINE_TEXT:"RECORD",STATUS:"PROCESS",STATUS_ASSIGNEE:"PROCESS",SUBTABLE:"RECORD",TIME:"RECORD",UPDATED_TIME:"RECORD",USER_SELECT:"RECORD"};function $E(e,t){let n=vT[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 BE(e,t,n){if(t!=null)return["_pid","_rid","_idx",...e.filter(s=>s.inSubtable===!0&&s.subtableCode===t).map(s=>s.code)];let r=e.filter(s=>!s.inSubtable),o=r.some(s=>$E(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=$E(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var wr=new WeakMap,qu=new WeakMap,DT="\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 ec(e){if(qu.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}}}),qu.set(t,e),t}function Rt(e){return qu.get(e)??e}function ZE(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=ZE(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 VE(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(DT)}function xT(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=bl(e);return r&&wl(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 UT(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=MT(i,e,t,r.leftColumns,r.rightColumns),s=Ju(a.left),l=Ju(a.right);if(HE(e,s,r.leftColumns),HE(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 MT(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=WE(o),l=WE(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 WE(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 HE(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 kT(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 FT(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)=>GT(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=ec({...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));em(f,u,n,r,o.evaluationContext),vn(f,u,a,r,o.evaluationContext),l.push(f)}return l}function KT(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=YE(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=ec({...d[0]}),m=new Map;for(let R of u.items)m.has(R.canonicalId)||m.set(R.canonicalId,YE(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)}em(E,d,n,r,i.evaluationContext),vn(E,d,o,r,i.evaluationContext),wl(E,p),a.push(E)}}return a}function YE(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function em(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=Zu(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=om(a.expr,t,r),u=ze(s,e,void 0,f=>f.aggregateRef?nm(f.aggregateRef,r):void 0,i);gt(e,o,u,[Xu(a.alias,o)])}}function Xu(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));ZE(e).byLookupKey.set(s,l)}}function GT(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=tm(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 tm(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 $T(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?.($T(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 nm(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 BT(e,t,n,r,i={}){return t===null?e:e.filter(o=>ce(t,xT(o),n,void 0,r,i))}function VT(e,t,n,r,i,o={}){if(e.length===0)return e;let a=WT(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 WT(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(QT(t,a,o))}function tc(e,t,n,r,i,o,a={}){return t.length===0?e:rm(e,t,n,r,i,o,a).rows.map(s=>s.row)}function rm(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:jT(c,f,o,a)}))})),u=(f,c)=>HT(f,c,t,s);return l.sort(u),{rows:l,compare:u}}function HT(e,t,n,r){for(let i=0;i<n.length;i++){let o=YT(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function YT(e,t,n){return ft(e.s,t.s,n.semantics)}function jT(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 nc(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 rc(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]=ec(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=>XT(c,E))),d=f.get(p);d?d.push(c):f.set(p,[c])}for(let c of f.values()){let p=rm(c,l.orderBy,n,r,i,void 0,a),d=p.rows;if(xo(l)){JT(l,u,p,o,a);continue}if(ml(l)){qT(l,u,d,a);continue}if(!El(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 zT(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 qT(e,t,n,r={}){let i=n.map(a=>zT(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 JT(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:tm(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 XT(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,Xu(e.alias,n))??Yt(t,Xu(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 QT(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=XE(zE(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=nI(t),u=tI(t),f=t.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD"),c=f?null:ZT(t,l,u),p=c??[];return f&&e.length===0?{rows:[],columns:eI(t,l,u)}:{rows:e.map((E,m)=>{let R={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys(XE(zE(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 ZT(e,t,n){return e.map((r,i)=>im(r,i,t,n))}function eI(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=im(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function im(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 tI(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 nI(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 zE(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 rI(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=>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:dn(e)}function $i(e){return e.args.some(t=>rI(t))}function iI(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"?om(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 Zu(e,t,n){return e.type==="STRING_FUNC"?rs(e,t,n):e.type==="ARITH"?{...e,left:Zu(e.left,t,n),right:Zu(e.right,t,n)}:e}function JE(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 om(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:JE(r.result,t,n)})),elseResult:e.elseResult===null?null:JE(e.elseResult,t,n)}}function rs(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>iI(r,t,n))}}function XE(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 QE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function zu(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function oI(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(El(r)||xo(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,V("number"));else if((xo(r)||ml(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 ic(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=oI(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=zu(QE(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=zu(QE(E?.get(P),P),void 0,h);I=UT(I,h,O,{leftColumns:C,rightColumns:w}),C=zu(C,w,I)}let k=e.residualWhere!==void 0?e.residualWhere:t.where;I=kT(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=KT(I,R,t.columns,c,{maxGeneratedRows:5e4,evaluationContext:S},t.having)}else(x.type==="PLAIN"||ts(t.columns))&&(I=FT(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));VE(t.columns,I,y);let U=O=>O.aggregateRef?nm(O.aggregateRef,c):f?.(O);return VE(t.having,I,y),I=BT(I,t.having,u,U,S),I=rc(I,t.columns,i,o,A,c,S),t.distinct&&(I=VT(I,t.columns,r,s,l,S)),I=tc(I,t.orderBy,i,o,A,nc(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 am(e,t){let n=[];for(let r of e){let i=oc(r.$id?.value),o=aI(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=oc(f?.value);l[`_p.${u}`]={value:c}}for(let[u,f]of Object.entries(s.value??{}))l[u]={value:oc(f?.value)};n.push(l)}}return n}function aI(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function oc(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function sI(e,t={}){let n=new Mt(e).tokenize(),r=new en(n,t).parseStatements();return r.forEach(et),r}function sm(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:sI(i,o),meta:n.meta}}function lm(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function um(e,t){let n=Bi(e);for(let[r,i]of Object.entries(t))n[r]=Bi(i);return n}function cm(e){let t=[...e.preErrors.map(i=>ac(i)),...e.postImageErrors.map(i=>ac(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>ac(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 ac(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 dm(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 lc(e){return dm(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=lc(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 pm(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 fm(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":pm(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?pm(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":fm(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=lc(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=lc(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=dm(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 uc(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 lI(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 uI(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function cI(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 sc(e,t){let n=e.functionNames[0],r=Jn(n)?Ut:hn,i=cI(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function Em(e,t){let n=[];fm(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let f=uI(i);return r.push(f),{hasRelativeDate:i.functionNames.some(ne),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:sc(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&&uc(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&&lI(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:sc(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:sc(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(ne)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function cc(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 pc(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=pI(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!dI(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=EI(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=fI(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)])||!mI(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 pI(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 dI(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 fI(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 EI(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 mI(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 mm(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 RI(e){return e!==null&&typeof e=="object"&&ArrayBuffer.isView(e)&&Object.prototype.toString.call(e)==="[object Uint8Array]"}function Rm(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:mm(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 mm(r)??new rt("ImportSourceReadError","IMPORT source could not be read.",r)}).then(r=>{if(r===null||typeof r!="object"||!RI(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 gI(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 yI(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
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 hI(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=yI(gI(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}`)),hI(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 AI=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),SI=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 gm(e,t,n){if(!AI.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Yi;return SI.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 ym(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new Y("JSON source is not valid UTF-8.")}}function hm(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
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=hm(ym(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 TI=new Set(["CHECK_BOX","MULTI_SELECT"]),Am=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 II(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function wI(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."),II(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."),!TI.has(t.fieldType)&&!Am.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."),Am.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function dc(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]=wI(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 fc(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]=gm(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 Sm(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 Tm(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 bI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),NI=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Rc(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Nm(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)Im(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)Im(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=>CI(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 CI(e,t,n,r,i,o,a,s){let l=[],u={};for(let p of t)e.top.has(p.field)&&mc(e.top.get(p.field),r.get(p.field),o,u,p.field,l,Ec(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)||wm(p,o,f,l,Ec(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=Ec(e,a,S,p.subtableCode,m.childRowNumber,m.sourceRowNumber??e.markerRowNumber);m.values.has(S)?mc(m.values.get(S),A,o,g,S,l,I):wm(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 Im(e,t,n){if(!t)throw new Error(n?`ArgumentError: IMPORT child ${e} does not belong to subtable ${n}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||n&&NI.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function wm(e,t,n,r,i){let o=Cn(e.defaultValue)?"":e.defaultValue;mc(o,e,t,n,e.code,r,i,!Cn(e.defaultValue))}function mc(e,t,n,r,i,o,a,s=!1){let l=PI(e),u=qe(l,t,n);u.ok?r[i]={value:OI(l,t)?l:u.value}:o.push({...a,code:u.code,message:s?`\u65E2\u5B9A\u5024: ${u.message}`:u.message})}function PI(e){return bm(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:bm(t)?t.lexeme:t):e}function bm(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function OI(e,t){return bI.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function Ec(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 gc=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function yc(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":LI(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 LI(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 hc(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 Cm(e,t){return hc(e,t,"DROP")}function Pm(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 Om(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 _I(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Lm(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 _m(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=_I(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 Ac="#__import_source";function vm(e){return{...e,from:{appId:0,alias:null,cteName:Ac}}}function vI(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Sc(e,t){let n=e.map(vI),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 DI="\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 Lr(e,t){return e?.columns.includes(t)?t:void 0}function Oe(e,t){let n=Lr(e,t);return n===void 0?void 0:e?.columnMeta?.get(n)}var Ae=new WeakMap;function sR(e){return Ae.get(e)}var Wn=new WeakMap,_r=new WeakMap,Cs=new WeakMap;function Dm(e,t){t?.length&&Cs.set(e,[...new Set(t)])}function wr(e,t){let n=Cs.get(e);return{result:t,...n?.length?{warnings:n}:{}}}var vc=Symbol("statementEvaluationContext"),lR=Symbol("importSourceMaterializedCallback"),op=Symbol("nativeUpsertExecution"),uR=Symbol("nativeUpsertExplainCapability");function xI(e,t,n){return{...e,[op]:t,...n===void 0?{}:{[uR]:n}}}function cR(e){return e[op]===!0}function UI(e){return op in e}function MI(e){return e[uR]}function pR(e){return e[vc]?e:{...e,[vc]:{statementInstant:new Date}}}function ae(e){return e[vc]??{}}async function ap(e,t,n){let r=e[lR];r&&await r({name:t.sourceName,kind:t.kind,...n})}var xm=new WeakMap,kI=1,FI=1;function KI(e,t){if(t)return t;let n=xm.get(e);return n||(n=`client:${kI++}`,xm.set(e,n)),n}function dR(e){return`${e}\0inv:${FI++}`}function GI(){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 fR=Symbol("limitMetricsSink");function sp(e,t){let n=e[fR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function $I(e,t){let n={[fR]: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 Um=Symbol("searchAbortFailClosed");function lp(e,t,n){return n&&e[Um]?e:{...e,...n?{[Um]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new Ns;return i}}}function ER(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 BI(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(DI),{...e,warnings:[...n]}}async function Dc(e,t,n){let r=await Ro(e,t,n);return cc(r),r}async function Ro(e,t,n){return Em(e,{select:async r=>{let{resolver:i}=await kn(r,t,n);return we(r.where,i)},dml:r=>DR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await kn(r,t,n);return pc(r,i)},joinServerFunctionPlan:async r=>{await kn(r,t,n);let i=await ks(r,t,n),o=Ms(r,i);return o===null?null:(Tr(o.joinPlan)&&Rp.set(r,o),o.joinPlan)}})}async function Mm(e,t,n,r){n=pR(n);let i=await Ro(e,t,r);e.type!=="EXPLAIN"&&cc(i);let o=Uc(e);if(o!==null&&!Pb(e))throw new Error(ys(o,"in a batch"));if(lr("phase15b",e),ii("phase15b",e),et(e),e.type!=="EXPLAIN"&&await mw(e,t,r),e.type==="IMPORT")return ug(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 Cp(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 VI(e,t,n,r);case"SELECT":return Jt($c(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 Sp(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Tb(e,t,n,r);case"INSERT_SELECT":return _p(e,t,n,r);case"UPSERT":return $b(e,t,n,r);case"UPSERT_SELECT":return Up(e,t,n,r);case"UPDATE":return Qc(e,t,n,r);case"DELETE":return Gb(e,t,n,r);case"REORDER":return jb(e,t,n,r);case"SHOW_APPS":return fg(t);case"DESCRIBE":return Eg(e,t,r);case"EXPLAIN":return iN(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,UI(n)?{surface:"CLI",enableNativeUpsert:cR(n),clientHasNativeUpsert:MI(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 bR(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var up=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],cp=["$id","$err_subtable","$err_field","$err_code","$err_count"];function pp(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 mR(e=!1){let t=e?cp:up;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 VI(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return RR(e,t,n,r)}async function RR(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=_u(e,i),l=new Set(s.flatMap(L=>Ou(L.field))),u={present:Pu.filter(L=>l.has(L)),absent:Pu.filter(L=>!l.has(L))},f=e.checkGroups??[],c=mr(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"),Vn(e,p);let d=pp(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 (${Fn(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:Kl(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:Ti(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:Ti(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?cp:up],rows:C,rowCount:C.length,validateStats:{errorRecords:U.size,errorCount:O,constraintMetadata:u}};return Ae.set(_,mR(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])||!WI(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 WI(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 gR(e,t,n,r={},i,o=!1,a,s=new Set){Ht(r);let l=[...e],u=ui(l);if(l.forEach(g=>ii("phase15b",g)),r.allowApplyMutation!==!0&&l.some(g=>Wl(g)||g.type==="UPSERT"&&qI(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=ku(l,r.variables),c=wR(l,f),p=xI({...r,variables:f,captureColumnMeta:!0},o),d=hl(r.asOf??new Date,r.timezone),E=new Map;for(let[g,y]of Object.entries(d.values))E.set(Kr(g),{type:"string",value:y});let m=GI(),R=Date.now();return{statements:l,analysis:u,metrics:m,options:p,client:$I(n,m),cacheContext:dR(KI(n,r.cacheContext)),tempTables:new Map,exportSinks:s,variables:E,relativeDateVariables:c,clock:ae(pR(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 yR(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=lp(t.client,a,r.statementType!=="SELECT"&&r.statementType!=="UNION"&&r.statementType!=="WITH"||IE(e)),l=ER(s);t.cursorCleanups.add(l.closeActive);let u=t.deadline!==null?t.deadline-Date.now():null,f=t.onChunkWritten?zI(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,[lR]:async R=>{if(await t.onImportSourceMaterialized({statementIndex:n,...R}),t.deadline!==null&&Date.now()>=t.deadline)throw new En}});let d=await IR(JI({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=BI(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:aw(o)}}finally{t.busy=!1}}function HI(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 hR(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=YI(e),a=jI(e),s=km(t.metrics);try{if(t.aborted)return t.aborted!=="exit"&&t.failed.add(r),Tc(o,a);if(i.dependsOn.find(m=>t.failed.has(m))!==void 0)return t.failed.add(r),Tc(o,a);if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(r),t.aborted="timeout",Tc(o,a);let u={aborted:!1},f=lp(t.client,u,!0),c=ER(f);t.cursorCleanups.add(c.closeActive);let p=HI(c.client),d=t.deadline!==null?t.deadline-Date.now():null,E=await IR(XI({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:km(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 km(e){return e.getCalls+e.cursorCreateCalls+e.cursorGetCalls}function YI(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 jI(e){if("appId"in e&&typeof e.appId=="number")return e.appId;throw new Error("ArgumentError: previewStatement requires a DML target app.")}function Tc(e,t){return{kind:"PREVIEW",operation:e,appId:t,counts:{insert:0,update:0,delete:0},samples:[],reads:0,estimatedWrites:0}}async function AR(e){e.disposed||(e.disposed=!0,await Promise.all([...e.cursorCleanups].map(t=>t().catch(()=>{}))),e.cursorCleanups.clear(),rg(e.cacheContext),e.metrics.elapsedMs=Date.now()-e.startedAt)}function zI(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=eg(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 qI(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 JI(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 Dc(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 PR(d.expr.query,r,i,o,a),m=await CR(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 Mn?new Error(`ArgumentError: ${E.message}`):E}else s.set(t.name,Fm(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=Fm(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(lr("phase15b",c),ii("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 Dc(c,r,o),c.type==="VALIDATE"){let d=await RR(c,r,{...i,onLimitReached:"error"},o);return c.errorTable&&Dt(a,c.errorTable,d.columns,d.rows,i.tempTableMaxRows??st,Ae.get(d)??mR(c.summary===!0)),{result:d}}if(c.type==="IMPORT"){let d=await ug(c,r,i,o,a);return wr(c,d)}if("validateOnly"in c&&c.validateOnly===!0){let d=await Cp(c,r,{...i,onLimitReached:"error"},o,a,n.index+1);return c.validationErrorTable&&Dt(a,c.validationErrorTable,d.columns,d.errors,i.tempTableMaxRows??st,Wn.get(d)??new Map),wr(c,d)}if("onErrorSkip"in c&&c.onErrorSkip===!0){let d=await Jc(c,r,{...i,onLimitReached:"error"},o,a,n.index+1);return wr(c,d)}if(c.type==="CREATE_TEMP_TABLE"){let d={...i,maxRecords:i.tempTableMaxRows??st,onLimitReached:"error"},E=await ow(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;ip.set(d,a);try{return{result:await Mm(d,r,i,o)}}finally{ip.delete(d)}}if(c.type==="ASSERT"){let d=await bR(c,r,i,o,a);return d.warning!==void 0?{result:d}:{}}if(c.type==="EXIT"){let d=await pw(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 Sp(c,r,i,o,a)};if(c.type==="INSERT_SELECT"){let d=await _p(c,r,i,o,a);return wr(c,d)}if(c.type==="UPSERT_SELECT"){let d=await Up(c,r,i,o,a);return wr(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 Mm(c,r,i,o);return wr(c,p)}async function XI(e,t){let{stmt:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,dialect:l}=e,u=io(n,s);if(lr("phase15b",u),ii("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 Dc(u,r,o),u.type){case"INSERT":return ZI(u,r,i,o,t);case"INSERT_SELECT":return ew(u,r,i,o,a,t);case"UPDATE":return tw(u,r,i,o,a,t);case"DELETE":return nw(u,r,i,o,t);case"UPSERT":return rw(u,r,i,o,t);case"UPSERT_SELECT":return iw(u,r,i,o,a,t);default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function Gn(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 Un(e,t){return Object.fromEntries(t.map(n=>[n,tt(e?.[n]?.value)]))}function QI(e){if(e.length!==0)return e.length===1?e[0]:JSON.stringify(e)}async function ZI(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=Ei(e,s,ae(n)).flatMap(u=>u.records);return lt(l,e.fields,o,a),Gn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,i).map(u=>({kind:"insert",after:Un(u,e.fields)})))}async function SR(e,t,n,r,i,o){let a=await Vs.materialize(e,t,n,r,i,o);if(Lp(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:Np(u[a.columns[d]]??"",s.get(p))})}),c}),fieldTypes:s}}async function ew(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 SR(e,t,n,r,i,a);return l.forEach(u=>lt([u],e.fields.filter(f=>f in u),a,s)),Gn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,o).map(u=>({kind:"insert",after:Un(u,e.fields)})))}async function tw(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 Gn("UPDATE",e.appId,{insert:0,update:0,delete:0},[]);let u=await ag(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:Un(p.validationSnapshot,a),after:Un(p.record,a)}));return Gn("UPDATE",e.appId,{insert:0,update:u.length,delete:0},c)}async function nw(e,t,n,r,i){if(await mn(e,t,r),Je(e.where))return Gn("DELETE",e.appId,{insert:0,update:0,delete:0},[]);let o=mu(e),a=await Oi(t.getRecords,o.app,o.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});return Gn("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 TR(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(Ip(e,o,a,r,l)).execution.status==="ELIGIBLE",f=await Dr(e.appId,e.keyFields,l,o,a,n,e.fields),c=[],p=[];return t.forEach((d,E)=>{let m=vr(f,l[E]),R=QI(l[E]);m===void 0?c.push({kind:"insert",...R===void 0?{}:{key:R},after:Un(d,e.fields)}):p.push({kind:"update",...R===void 0?{}:{key:R},before:Un(f.snapshots?.get(m),e.fields),after:Un(d,e.fields)})}),Gn("UPSERT",e.appId,{insert:c.length,update:p.length,delete:0},[...c,...p].slice(0,s),u)}async function rw(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=pg(e,s,n);return TR(e,l,s,o,a,t,n,i)}async function iw(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 SR(e,t,n,r,i,a);return TR(e,l,u,a,s,t,n,o)}async function ow(e,t,n,r,i){return e.type==="WITH"?Sp(e,t,n,r,i,!0):St(e,t,n,i,r,!0)}async function IR(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 aw(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)??Ic(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:sw(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Ic(r),message:r}}else{let n=String(e);t={code:Ic(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Ic(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function sw(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function lw(e,t=!1,n=!1){let r=new Mt(e).tokenize();return new en(r,{import:t,dialect1:n}).parseStatements()}function uw(e,t){try{let n=lw(`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 wR(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)?uw(r.name,t[r.name]):r.default);return n}function Fm(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:kf(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 xc(e,t,!1)}function ys(e,t){return Zn(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 xc(e,t,n){if(Array.isArray(e))return e.map(r=>xc(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,xc(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=cw(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 cw(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 Uc(e){if(Array.isArray(e)){for(let t of e){let n=Uc(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=Uc(n);if(r!==null)return r}}return null}var oo=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Mn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function bR(e,t,n,r,i){let o=await NR(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 pw(e,t,n,r,i){let o=await NR(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function NR(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,wc(o,l))&&$t("<=",o.value,u.value,wc(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"):wc(o,a);return{passed:$t(e.op,o.value,a.value,s),actual:o.value}}function wc(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(Mc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await PR(e.query,t,n,r,i),a=await CR(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof Mn?new oo(o.message):o}}}async function CR(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 PR(e,t,n,r,i){let{query:o,probed:a}=dw(e),s=await to(o,t,n,r,i);if(s.columns.length!==1)throw new Mn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Mn("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 Mn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function dw(e){return kt(e)||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function Mc(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=Mc(e.left),n=Mc(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 bp(p,t,n);m&&f.set(p,m)}));let c=(p,d,E)=>{if(d==="$id")return rr(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 rr(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?Lr(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 OR=new WeakMap;async function kn(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=Vd(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&OR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function fw(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function LR(e){return fw(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 Gm(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 _R(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`+Gm(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`+Gm(n,"VALUE"));return i}function dp(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 fp(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 vR(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=Bn(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=Bn(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=$n(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 Fn(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 DR(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 DR(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new oe(`WHERE predicate cannot be represented by kintone REST (${Fn(r)})`)}async function Jt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){Nw(e);let l,u=new Set;if(await so(e,t,r,i),yw(e))return l=Sw(e,n),o&&Ae.set(l,await lo(e,l.columns,t,r,i,a)),l;let{resolver:f}=await kn(e,t,r,i,LR(e)),c=_R(e,f,s),p=await Cr(e,t,r,i);await mg(e,t,n,r,u,i);let d=Uw(e,we(e.where,f));if(d.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Fn(d)}).`);let E=Qe(e),m,R;if(d.capability==="SUPERSET_PREFILTER"){let C=await go(e,t,r,i),k=pc(e,C);k.eligible&&uc(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"?Di:vi)({stmt:e,staticMode:g,whereCapability:d.capability,whereReasons:d.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:_e(e.where)}):null,A=await Iw(e,S?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),I=Ep(e,n,S),v=R!==void 0&&(E==="FULL_SCAN"||S?.kind==="CANONICAL_LOCAL")?lp(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await Tw(e,v,I.effectiveOptions,r,S,y):l=await Fw(e,v,I.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&m===void 0,y,m,p)}catch(C){UR(I,C)}return o&&Ae.set(l,await lo(e,l.columns,t,r,i,a)),dp(l,[...u,...c,...A])}function kc(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 xR(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 Cr(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,xR(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=Ad(e,(c,p)=>l[p]),f=wd(o,e.columns,u);return Ew(e,o,f,s),jr(e,Pd(e,f,u)),f}function Ew(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(kc(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 mw(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 Rw(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?Lr(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(kc(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=xR(E);throw m.length>0?new Error(kc(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 Rw(e,t,n,r),u=_d(e,l,Ld);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 Cr(e,t,n,r)}function gw(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 Ep(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 UR(e,t){throw e.reasons.size>0&&t instanceof Et&&!t.completeInputWrapped?new Et(gw(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Fc(e,t){try{return await t()}catch(n){UR(e,n)}}function Je(e){return e?.type==="BOOLEAN"&&e.value===!1}function yw(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"?mp(e):!1}function hw(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"?mp(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 mp(e){return e.args.some(t=>hw(t))}function Aw(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(mp(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 Sw(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.");Aw(e);let n=rc([{}],e.columns,void 0,void 0,void 0,void 0,ae(t)),{rows:r,columns:i}=vn(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 Tw(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?$R(e):e,s=jo(a),l=i?.kind==="CANONICAL_LOCAL"?In(e,e.from):s.fields,u=await gp(e,t,r),f=hp(e,u),c=e.columns.some(C=>C.type==="CASE_COL")?await go(e,t,r,void 0,fp(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 GE({client:t,app:s.app,fields:s.fields,query:ju(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`),sp(t,e.from.appId)}})}let A=S.map(C=>jt(C,null));R||(A=tc(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,nc(e.columns,void 0,f.row,c,ae(n)),ae(n)),A=ns(A,e.limit,e.offset));let{rows:I,columns:b}=vn(A,e.columns,void 0,f.row,void 0,c,void 0,ae(n)),v=await Tp(e,I,b,t,r);return{type:"SELECT",rows:I,columns:v,rowCount:I.length,warnings:[...d]}}async function Iw(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 bc(e){return e.cteName??`APP${e.appId}`}function MR(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function ww(e,t){return Ko(t)||e.validCodes.has(t)}function Nc(e,t){return e.table.cteName!==null?e.validCodes.has(t):ww(e,t)}async function bw(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 kR(e,t,n,r){let i=!1;$m(e,t,()=>(i=!0,!0)),i&&$m(e,t,await bw(e,n,r))}function $m(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 MR(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 Nw(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 Cw(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 Kc(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:bc(p),validCodes:new Set,authoritative:!1,schemaUnavailable:!0});return}let d=a.get(p);if(d){u.set(p,{table:p,label:bc(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 ig(p.appId,r):await Q(p.appId,t,r);u.set(p,{table:p,label:bc(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 MR(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&&!Nc(E,d.field))throw new Error(`ArgumentError: JOIN key ${d.tableAlias}.${d.field} is not available in the materialized table.`)}let c=kd(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=>!Nc(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=>Nc(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 kR(e,n,t,r),await Kc(e,t,n,r);for(let o of Cw(e))await hs(o,t,n,r,i)}}function FR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?ti(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?ti(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 Rp=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=xE(e.where,r),o=UE(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,Sr(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,FR(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=ti(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),Zw(s,t,n)]),c=Pw(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 Pw(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 Ow(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 gp(e,t,n){let r=Ow(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 yp(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||Dn(t,n)}function Dn(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"){Dn(e.left,t),Dn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Dn(e.left,t),Dn(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"&&Dn(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"?Pr(n,t):n.type!=="ARRAY"&&Dn(n,t)}function Pr(e,t){if(e.type==="AGG_REF"){yp(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(Pr(e.left,t),Pr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function Gc(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")Pr(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"){Gc(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"?Gc(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?Pr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Qi(r,t)}}function Bm(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;yp(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function Lw(e){let t=[];for(let n of e)n.type==="AGGREGATE"?yp(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Pr(n.expr,t):n.type==="ARITH_COL"?Bm(n.expr,t):n.type==="STRFUNC_COL"?Gc(n.expr,t):n.type==="SCALAR_VALUE_COL"?Qi(n.expr,t):n.type==="CASE_COL"&&Bm(n.expr,t);return t}var _w=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function vw(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":_w.has(e.fieldType)?"string":void 0}async function GR(e,t,n,r){let i=Lw(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 bp(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 Lr(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:vw(e),fieldType:e.fieldType,semantics:t===void 0?n:rr(n,t,e.code)}}function $R(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 BR(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 $n(e,t){return re(bt(e,n=>{let r=t?.(n);if(r)return"compareMode"in r?r:r.semantics}))}function Or(e,t){return e.type==="STRING"?re("string"):e.type==="ARRAY"?BR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?ot():Bn(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"?$n(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")?BR("KSQL_MIXED_UNSUPPORTED"):ot()}function Bn(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 $n(e,t);let n=e.branches.map(r=>Or(r.result,t));return e.elseResult&&n.push(Or(e.elseResult,t)),Ks(n)}function VR(e,t){return e.windowKind==="VALUE"?Bn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?re("number"):e.arg.type==="WILDCARD"?ot():Bn(e.arg,t):re("number")}function Ss(e,t){return{...e??{},displayName:t}}function Dw(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;Dw(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 Lr(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=Bn(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=$n(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=$n(m.expr,u);else if(m.type==="WINDOW_COL")y=VR(m,u);else if(m.type==="CASE_COL"){let S=m.expr.branches.map(A=>Or(A.result,u));m.expr.elseResult&&S.push(Or(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 xw(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 hp(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 WR=new WeakSet,Ap=new WeakMap;function $c(e){return WR.add(e),e}function Uw(e,t){return Ap.set(e,t),t}function HR(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 Mw(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function kw(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(!Mw(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=vn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function Fw(e,t,n,r,i,o=!0,a,s,l){let u=Ap.get(e);if(WR.has(e)&&u!==void 0&&HR(e,u)){let G=await kw(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),gp(e,t,r),GR(e,t,r,i)]),R=hp(e,E),g=await go(e,t,r,i,Lt(e.having)||fp(e)),y=vR(e,g),S=Rp.get(e);if(S&&!Tr(S.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let A=S??Ms(e,d)??wn(e,d);Yl(A);let I="joinPlan"in A?A:null,b=I&&Tr(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 gg(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 ng(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}=ic({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 Tp(e,K,j,t,r);return{type:"SELECT",rows:K,columns:B,rowCount:K.length,warnings:[...c]}}function Kw(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 Bc(e,t,n){Kw(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 YR(e,t,n,r){let i=Bc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:Gw(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,xw(e,t)),l}async function jR(e,t,n,r,i=!1,o=!1){let a=Ep(e,n,null);return Fc(a,async()=>{let s=a.effectiveOptions,[l,u]=await Promise.all([e.left.type==="UNION"?jR(e.left,t,s,r,i,o):Jt($c(e.left),t,s,r,void 0,i,o,"DERIVED"),Jt($c(e.right),t,s,r,void 0,i,o,"DERIVED")]);return YR(l,u,e.all,i)})}function Gw(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 zR(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(zR);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 Vm(e){return e.columns.map((t,n)=>zR(t)??`__b53_column_${n}`)}function Wm(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 JR(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 Hm(e,t,n,r,i){let o=await JR(e,n,r,i);e.columns.forEach(u=>zi(u,o));let a=await lo(e,Vm(e),n,r,i),s=Vm(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 XR(...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 $w(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function Bw(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=$w(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 Vw(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 Ww(e,t,n,r){let i=Bw(e),o=await Promise.all(XR(...e).map(async(a,s)=>{let l=await Jt(Vw(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 Ym(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 jm(e,t,n){return e.cteName===null?void 0:Oe(n.get(e.cteName),t)}function Cc(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 zm(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 Hw(e,t,n,r,i){let o=e.recursiveSpec,a=qR(e),s=await Hm(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let u=await Hm(o.recursiveTerm,a,t,i,l);a.forEach(($,M)=>{let K=s.get($),j=u.get($);if(!K||!j||!Wm(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=zm(e.name,o.recursiveTerm),c=await JR(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||!Wm(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 Ww([o.seed,o.recursiveTerm],t,n,i),m=new Map(r);for(let $ of E.values())m.set($.name,$.table);let R=Ym(o.seed,E),g=Ym(o.recursiveTerm,E),y=await St(R,t,n,m,i,!0,!0),S=Bc(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=zm(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=jm(P.self,P.selfField,l)??jm(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=Cc(M,h.semantics),j=w.get(K);j?j.push($):w.set(K,[$])}let _=w.has(Cc("",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(Cc(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=Bc(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 Sp(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 Hw(u,t,n,a,r):u.query.type==="SHOW_APPS"?f=await fg(t):u.query.type==="DESCRIBE"?f=await Eg(u.query,t,r):u.query.type==="GENERATE_SERIES"?f=QR(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 dp(l,[...s])}function QR(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 YR(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 Yw(e,t,n,r,i);return o&&Ae.set(l,await lo(e,l.columns,t,i,r)),l}async function Yw(e,t,n,r,i){await so(e,t,i,r);let o=ao.get(e),a=await Cr(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 kn(e,t,i,r,LR(e)),p=_R(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),mg(e,t,n,i,E,r)]);let R=we(e.where,c);if(R.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Fn(R)}).`);let g=await co(e,t,i,r),y=Ps(e)?(e.orderMode==="KINTONE_NATIVE"?Di:vi)({stmt:e,staticMode:"FULL_SCAN",whereCapability:R.capability,whereReasons:R.reasons,orderSemantics:g.semantics,maxRecords:d,hasKlike:_e(e.where)}):null,S=Ep(e,n,y),A=S.effectiveOptions,[I,b,v]=await Promise.all([ks(e,t,i),gp(e,t,i),GR(e,t,i,r)]),C=hp(e,b),k=await go(e,t,i,r,Lt(e.having)||fp(e)),x=vR(e,k),U=Ms(e,I)??wn(e,I);Yl(U);let O=t,P=await gg(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(qm)),w.set(e.from.alias,B.columns)}else{let B=await Fc(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=>Fc(S,async()=>{if(B.table.cteName!=null){let G=f(B.table.cteName);h.set(B.table.alias,G.rows.map(qm)),w.set(B.table.alias,G.columns)}else{let G=B.table.alias?U.joinConditions.get(B.table.alias)??null:null,H=await ng(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}=ic({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 Tp(e,M,K,t,i);return dp({type:"SELECT",rows:M,columns:j,rowCount:M.length,warnings:[...E]},p)}async function Tp(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 BE(o,e.from.subtableCode,()=>$s(e.from.appId,r,i))}function qm(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`),sp(n,t.appId),wE(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?Ud(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&&Ap.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 am(R,t.subtableCode)}var Nr=50;function jw(e){let t=Ce(e);return t!==null?JSON.stringify(t):e}function Vc(e){return JSON.stringify(e)}function gn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?jw(n):n))}var Jm={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function Xm(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 Pc(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}: ${Jm[t.condition]} \u2014 ${Xm(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${Jm[o]} \u2014 ${Xm(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function zw(e,t){if(t==="DOCUMENT_ONLY")return[Pc("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=[Pc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(Pc("native UPSERT statement/data eligibility",e.statement,t)),n}function qw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function Jw(e,t,n){let r=null;if(e.type==="UPSERT")try{r=vp(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:_r.has(e)},fieldInfos:t,rowKeyValues:r})}async function ZR(e,t,n){let r=qw(e);if(!r)return[];let i=await ig(r.appId,t);return zw(Jw(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 Ip(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:yo(t),enabled:cR(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:_r.has(e)},fieldInfos:r,rowKeyValues:i}}var _s=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function eg(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 tg(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=eg(f,u.length);a+=c.insertedCount,s+=c.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function vr(e,t){let n=e.raw.get(Vc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(gn(t,e.numericKey))}async function Dr(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,Vc(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=Vc(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],Nr)){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=>wp(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,Xw(A))}}return f}function Xw(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 wp(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 Qw=6,Ts=Ba*Qw;async function ng(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,_=wp(w);(w==null||_.length===0)&&(C=!0),v.push(_)}let k=Gu({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=Ku(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`),sp(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 Wc=new Map,Hc=new Map,Yc=new Map,vs=new Map,jc=new Map,zc=new Map;function rg(e){Wc.delete(e),Hc.delete(e),Yc.delete(e),vs.delete(e),jc.delete(e),zc.delete(e)}function Hn(e,t,n){return e.get(t)?.get(n)}function xr(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=Hn(vs,n,e);if(r)return r;let i=t.getFields(e);return xr(vs,n,e,i),i}async function ig(e,t){let n=Hn(vs,t,e);return n?await n:null}async function xt(e,t,n){let r=Hn(zc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return xr(zc,n,e,i),i}async function $s(e,t,n){let r=Hn(jc,n,e);if(r)return r;let i=t.getProcessStatuses(e);return xr(jc,n,e,i),i}async function bp(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=Hn(Wc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return xr(Wc,n,e,o),o}async function qc(e,t,n){let r=Hn(Hc,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 xr(Hc,n,e,o),o}async function Zw(e,t,n){let r=await qc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Qm(e,t,n){let r=Hn(Yc,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 xr(Yc,n,e,o),o}function eb(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 tb(e,t,n,r){let i=eb(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=VR(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=$n(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=>Or(E.result,l));c.expr.elseResult&&d.push(Or(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=Bn(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([nb(e,t,n),rb(e,t,n),tb(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function nb(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 qc(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 qc(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}async function rb(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 Qm(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 Qm(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}function Np(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 ib=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function ob(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||ib.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 ob(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 ab(e,t,n,r,i){let o=await Ue(e.appId,e.fields,t,r),a=await wi({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 Ub(e,a,o)}async function sb(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await og(e,t,n,r,i);return kb(e,a,o)}async function og(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=vp(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 Dr(e.appId,e.keyFields,s,t,n,a),f=s.map(R=>vr(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 RE({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 lb(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 wi({statement:e,fieldInfos:i,dmlMaxRows:ut(n.dmlMaxRows,"dmlMaxRows",Xt),dmlMaxSubtableRows:ut(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",Me),loadNumberPrecision:()=>xt(e.appId,t,r)}),a=Uu(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:Bs(a),applyDiagnostic:a}))throw new ge("INSERT",o.guards.parentRows);let s=await SE(o,t,a);return{...s,diagnostic:nt(a,s)}}async function ub(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await og(e,t,n,r,1),o=Mu(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 TE(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 cb(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=cb(n?ms(n):[],r?ms(r):[]),a=pb(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=Kn(t,"APPEND"),r=Kn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function Kn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function pb(e){let t=new Map;for(let n of e.filter(r=>r.targetKind==="MULTI_VALUE")){let r={field:n.field,fieldType:n.fieldType??"UNKNOWN",addedValues:Kn(n,"ADD"),removedValues:Kn(n,"REMOVE_VALUE"),changedValues:n.changedCount??0,parents:(n.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(n.field);t.set(n.field,i?{...i,addedValues:i.addedValues+r.addedValues,removedValues:i.removedValues+r.removedValues,changedValues:i.changedValues+r.changedValues,parents:[...i.parents,...r.parents]}:r)}return[...t.values()]}async function Cp(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return ab(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return sb(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await cg(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Pp(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 Pp(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=lm(E),R=(await db(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"?Eb:e.type.startsWith("UPSERT")?N=>mb(N,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??y,A=g.length>0&&S!==void 0,I=new Map;if(A){Nu(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=um(_,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=Cu(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=cm({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,...gr],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 gr)O.set(N,re(P.has(N)?"number":"string"));return Wn.set(U,O),{result:U,candidates:R,invalidRowNumbers:k,columnMeta:O}}async function Jc(e,t,n,r,i,o){let a=await Pp(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 db(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return ag(e,n,r,i,o,s);let l,u,f,c,p;if(e.type==="INSERT"||e.type==="UPSERT")Zm(e,e.fields),p=new Map(e.fields.map(A=>[A,a.get(A)?.fieldType??""])),Vn(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");Zm(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]})),Vn(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=_r.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 Dr(e.appId,e.keyFields,m,n,r,E);return d.forEach((A,I)=>{let b=m[I],v=vr(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 Op(e){return e.checkGroups?mr(e.checkGroups):[]}function Zm(e,t){let n=new Set(t);for(let r of Op(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 fb=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function Vn(e,t){if(e.checkGroups)for(let n of Ff(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(fb.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 ag(e,t,n,r,i,o){if(e.from)return gb(e,e.from,t,n,r,i,o);await Rg(e.assignments,t,n,r);let a=await Ne(e.appId,t,r),s=sg(e,a);Vn(e,Xc(a,e.appId));let l,u=new Map,f=new Map;if(Ca(e)){let c=uu(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=pu(e,d.records,a,ae(n)).flatMap(E=>E.records)}else{let c=mi(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=Ri(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=Ri(e,[...f.keys()],a).flatMap(d=>d.records)}else{let p=await Oi(t.getRecords,c.app,c.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=Ri(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:Rb(u.get(c.id),e.appId),evaluationFieldTypes:Xc(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 Eb(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 mb(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 sg(e,t){if(e.from)return[];let n=new Set;for(let r of Op(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw 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 Rb(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 Xc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function gb(e,t,n,r,i,o,a){let s=await _g(e,t,n,i,o);Vn(e,s.evaluationTypes);let l=await lg(e,t,n,r,i,o,a),u=await Ne(e.appId,n,i),f=fu(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:IN(c.get(d.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var yb=Nr,hb=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function lg(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 Ab(e,t,n,i),l=await _g(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 Sb(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=eR(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([...Kb(e),...l.targetFields,...a??[]])],R=t.targetFilter===null?"":mi({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,g=[],y=new Set,S=0;for(let I of ho([...d.values()],yb)){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=eR(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 Ab(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 Sb(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(Lr(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(hb.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 eR(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 Pp(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 Tb(e,t,n,r){if(e.applyBlocks?.length)return lb(e,t,n,r);if(e.checkGroups?.length)return Ao(e,t,n,r);if(e.subtableCode)return Bb(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=Ei(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 Ib(){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 ug(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Rm(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"?Sm(e.source,m,c,n.maxRecords??1e4):Tm(e.source,m,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader);await ap(n,e.source,R.receipt);let g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Nm(R,c,p,E,g);if(e.source.kind==="CSV")return wb(e,R,y,p,t,n,i);Rc(y,e.rejectLimit);let S=[...new Set(c.flatMap(M=>M.kind==="FIELD"?[M.field]:M.children))],A=yc(y.errors,S),I=[...S,...gc],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(Pm(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 Dr(e.appId,e.keyFields,j,t,n,x);j.forEach((G,D)=>{U[D]=vr(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=Om(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=>Cm(_(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 bb(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:Ib(),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};_r.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 Cp(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&Dt(i,s.validationErrorTable,c.columns,c.errors,n.tempTableMaxRows??st,Wn.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"?Up(s,t,n,r,i):_p(s,t,n,r,i));return u(f)}async function wb(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Lm(t.records);let s=t.records.map(P=>P.recordNumberSourceValue??""),l=Sc(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=_m(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};Rc(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=yc(g,k),U=[...k,...gc];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=hc(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 bb(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=fc(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader);await ap(r,e.source,u.receipt);let f=u.recordNumberSourceValues;if(!f)throw new Error("InternalError: record-number source values were not materialized.");let c=Sc(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=Cu(R,"UPDATE",g,e.fields,a,1,s,e.checkGroups??[],!1),S=[...g,...gr],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 Nb(e,t,n,r,i,o){let a=_r.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 Dm(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"?dc(a.source,s,f,l):fc(a.source,s,l,e.fields,o);if(await ap(n,a.source,c.receipt),a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let p=vm(a.source.projection),d=new Map(i??[]);d.set(Ac,c);let E=await St(p,t,{...n,onLimitReached:"error"},d,r,!0);return Dm(e,E.warnings),{rows:E.rows,columns:E.columns,columnMeta:Ae.get(E)}}var Vs={materialize:Nb};function Lp(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 _p(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(Lp(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:Np(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 cg(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 sg(e,m),Vn(e,Xc(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),Vb(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 Fb(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await Rg(e.assignments,t,n,r);let u=await Ne(e.appId,t,r);if(Ca(e)){let E=uu(e),R=(await mt(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,g=pu(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=mi(e),p=(await Oi(t.getRecords,f.app,f.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,d=Ri(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 cg(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 Cb(e,t,n,r,i);let o=await Q(e.appId,t,r),a=Wt(e,o),s=Oa(e,o),l=Au(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=eE({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=Ni({plans:[c],records:Ai(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 Wn.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=Ai(y),A=Ni({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 Cb(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 _b(e,t,n,s,r);else{let d=Oa(e,s),E=mi(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 Mb(e,f,s);Zd("phase15b",e);let c=Ni(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 AE(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 Pb(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&xs(t)&&_e(t.where)}var Ob=`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
|
|
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=hm(ym(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 TI=new Set(["CHECK_BOX","MULTI_SELECT"]),Am=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 II(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function wI(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."),II(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."),!TI.has(t.fieldType)&&!Am.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."),Am.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function dc(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]=wI(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 fc(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]=gm(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 Sm(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 Tm(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 bI=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),NI=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Rc(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function Nm(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)Im(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)Im(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=>CI(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 CI(e,t,n,r,i,o,a,s){let l=[],u={};for(let p of t)e.top.has(p.field)&&mc(e.top.get(p.field),r.get(p.field),o,u,p.field,l,Ec(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)||wm(p,o,f,l,Ec(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=Ec(e,a,S,p.subtableCode,m.childRowNumber,m.sourceRowNumber??e.markerRowNumber);m.values.has(S)?mc(m.values.get(S),A,o,g,S,l,I):wm(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 Im(e,t,n){if(!t)throw new Error(n?`ArgumentError: IMPORT child ${e} does not belong to subtable ${n}.`:`ArgumentError: IMPORT top-level field ${e} does not exist.`);if(t.writable===!1||n&&NI.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function wm(e,t,n,r,i){let o=Cn(e.defaultValue)?"":e.defaultValue;mc(o,e,t,n,e.code,r,i,!Cn(e.defaultValue))}function mc(e,t,n,r,i,o,a,s=!1){let l=PI(e),u=qe(l,t,n);u.ok?r[i]={value:OI(l,t)?l:u.value}:o.push({...a,code:u.code,message:s?`\u65E2\u5B9A\u5024: ${u.message}`:u.message})}function PI(e){return bm(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:bm(t)?t.lexeme:t):e}function bm(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function OI(e,t){return bI.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function Ec(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 gc=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function yc(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":LI(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 LI(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 hc(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 Cm(e,t){return hc(e,t,"DROP")}function Pm(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 Om(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 _I(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function Lm(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 _m(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=_I(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 Ac="#__import_source";function vm(e){return{...e,from:{appId:0,alias:null,cteName:Ac}}}function vI(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Sc(e,t){let n=e.map(vI),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 DI="\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 sR(e){return Ae.get(e)}var Hn=new WeakMap,vr=new WeakMap,Cs=new WeakMap;function Dm(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 vc=Symbol("statementEvaluationContext"),lR=Symbol("importSourceMaterializedCallback"),op=Symbol("nativeUpsertExecution"),uR=Symbol("nativeUpsertExplainCapability");function xI(e,t,n){return{...e,[op]:t,...n===void 0?{}:{[uR]:n}}}function cR(e){return e[op]===!0}function UI(e){return op in e}function MI(e){return e[uR]}function pR(e){return e[vc]?e:{...e,[vc]:{statementInstant:new Date}}}function ae(e){return e[vc]??{}}async function ap(e,t,n){let r=e[lR];r&&await r({name:t.sourceName,kind:t.kind,...n})}var xm=new WeakMap,kI=1,FI=1;function KI(e,t){if(t)return t;let n=xm.get(e);return n||(n=`client:${kI++}`,xm.set(e,n)),n}function dR(e){return`${e}\0inv:${FI++}`}function GI(){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 fR=Symbol("limitMetricsSink");function sp(e,t){let n=e[fR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function $I(e,t){let n={[fR]: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 Um=Symbol("searchAbortFailClosed");function lp(e,t,n){return n&&e[Um]?e:{...e,...n?{[Um]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new Ns;return i}}}function ER(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 BI(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(DI),{...e,warnings:[...n]}}async function Dc(e,t,n){let r=await Ro(e,t,n);return cc(r),r}async function Ro(e,t,n){return Em(e,{select:async r=>{let{resolver:i}=await Fn(r,t,n);return we(r.where,i)},dml:r=>DR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Fn(r,t,n);return pc(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)&&Rp.set(r,o),o.joinPlan)}})}async function Mm(e,t,n,r){n=pR(n);let i=await Ro(e,t,r);e.type!=="EXPLAIN"&&cc(i);let o=Uc(e);if(o!==null&&!Pb(e))throw new Error(ys(o,"in a batch"));if(ur("phase15b",e),oi("phase15b",e),et(e),e.type!=="EXPLAIN"&&await mw(e,t,r),e.type==="IMPORT")return ug(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 Cp(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 VI(e,t,n,r);case"SELECT":return Jt($c(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 Sp(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return Tb(e,t,n,r);case"INSERT_SELECT":return _p(e,t,n,r);case"UPSERT":return $b(e,t,n,r);case"UPSERT_SELECT":return Up(e,t,n,r);case"UPDATE":return Qc(e,t,n,r);case"DELETE":return Gb(e,t,n,r);case"REORDER":return jb(e,t,n,r);case"SHOW_APPS":return fg(t);case"DESCRIBE":return Eg(e,t,r);case"EXPLAIN":return iN(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,UI(n)?{surface:"CLI",enableNativeUpsert:cR(n),clientHasNativeUpsert:MI(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 bR(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var up=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],cp=["$id","$err_subtable","$err_field","$err_code","$err_count"];function pp(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 mR(e=!1){let t=e?cp:up;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 VI(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return RR(e,t,n,r)}async function RR(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=_u(e,i),l=new Set(s.flatMap(L=>Ou(L.field))),u={present:Pu.filter(L=>l.has(L)),absent:Pu.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=pp(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:Kl(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?cp:up],rows:C,rowCount:C.length,validateStats:{errorRecords:U.size,errorCount:O,constraintMetadata:u}};return Ae.set(_,mR(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])||!WI(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 WI(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 gR(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=>Wl(g)||g.type==="UPSERT"&&qI(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=ku(l,r.variables),c=wR(l,f),p=xI({...r,variables:f,captureColumnMeta:!0},o),d=hl(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=GI(),R=Date.now();return{statements:l,analysis:u,metrics:m,options:p,client:$I(n,m),cacheContext:dR(KI(n,r.cacheContext)),tempTables:new Map,exportSinks:s,variables:E,relativeDateVariables:c,clock:ae(pR(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 yR(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=lp(t.client,a,r.statementType!=="SELECT"&&r.statementType!=="UNION"&&r.statementType!=="WITH"||IE(e)),l=ER(s);t.cursorCleanups.add(l.closeActive);let u=t.deadline!==null?t.deadline-Date.now():null,f=t.onChunkWritten?zI(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,[lR]:async R=>{if(await t.onImportSourceMaterialized({statementIndex:n,...R}),t.deadline!==null&&Date.now()>=t.deadline)throw new En}});let d=await IR(JI({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=BI(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:aw(o)}}finally{t.busy=!1}}function HI(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 hR(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=YI(e),a=jI(e),s=km(t.metrics);try{if(t.aborted)return t.aborted!=="exit"&&t.failed.add(r),Tc(o,a);if(i.dependsOn.find(m=>t.failed.has(m))!==void 0)return t.failed.add(r),Tc(o,a);if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(r),t.aborted="timeout",Tc(o,a);let u={aborted:!1},f=lp(t.client,u,!0),c=ER(f);t.cursorCleanups.add(c.closeActive);let p=HI(c.client),d=t.deadline!==null?t.deadline-Date.now():null,E=await IR(XI({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:km(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 km(e){return e.getCalls+e.cursorCreateCalls+e.cursorGetCalls}function YI(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 jI(e){if("appId"in e&&typeof e.appId=="number")return e.appId;throw new Error("ArgumentError: previewStatement requires a DML target app.")}function Tc(e,t){return{kind:"PREVIEW",operation:e,appId:t,counts:{insert:0,update:0,delete:0},samples:[],reads:0,estimatedWrites:0}}async function AR(e){e.disposed||(e.disposed=!0,await Promise.all([...e.cursorCleanups].map(t=>t().catch(()=>{}))),e.cursorCleanups.clear(),rg(e.cacheContext),e.metrics.elapsedMs=Date.now()-e.startedAt)}function zI(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=eg(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 qI(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 JI(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 Dc(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 PR(d.expr.query,r,i,o,a),m=await CR(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,Fm(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=Fm(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 Dc(c,r,o),c.type==="VALIDATE"){let d=await RR(c,r,{...i,onLimitReached:"error"},o);return c.errorTable&&Dt(a,c.errorTable,d.columns,d.rows,i.tempTableMaxRows??st,Ae.get(d)??mR(c.summary===!0)),{result:d}}if(c.type==="IMPORT"){let d=await ug(c,r,i,o,a);return br(c,d)}if("validateOnly"in c&&c.validateOnly===!0){let d=await Cp(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 ow(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;ip.set(d,a);try{return{result:await Mm(d,r,i,o)}}finally{ip.delete(d)}}if(c.type==="ASSERT"){let d=await bR(c,r,i,o,a);return d.warning!==void 0?{result:d}:{}}if(c.type==="EXIT"){let d=await pw(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 Sp(c,r,i,o,a)};if(c.type==="INSERT_SELECT"){let d=await _p(c,r,i,o,a);return br(c,d)}if(c.type==="UPSERT_SELECT"){let d=await Up(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 Mm(c,r,i,o);return br(c,p)}async function XI(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 Dc(u,r,o),u.type){case"INSERT":return ZI(u,r,i,o,t);case"INSERT_SELECT":return ew(u,r,i,o,a,t);case"UPDATE":return tw(u,r,i,o,a,t);case"DELETE":return nw(u,r,i,o,t);case"UPSERT":return rw(u,r,i,o,t);case"UPSERT_SELECT":return iw(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 QI(e){if(e.length!==0)return e.length===1?e[0]:JSON.stringify(e)}async function ZI(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 SR(e,t,n,r,i,o){let a=await Vs.materialize(e,t,n,r,i,o);if(Lp(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:Np(u[a.columns[d]]??"",s.get(p))})}),c}),fieldTypes:s}}async function ew(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 SR(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 tw(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 ag(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 nw(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=mu(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 TR(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(Ip(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=QI(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 rw(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=pg(e,s,n);return TR(e,l,s,o,a,t,n,i)}async function iw(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 SR(e,t,n,r,i,a);return TR(e,l,u,a,s,t,n,o)}async function ow(e,t,n,r,i){return e.type==="WITH"?Sp(e,t,n,r,i,!0):St(e,t,n,i,r,!0)}async function IR(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 aw(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)??Ic(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:sw(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Ic(r),message:r}}else{let n=String(e);t={code:Ic(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Ic(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function sw(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function lw(e,t=!1,n=!1){let r=new Mt(e).tokenize();return new en(r,{import:t,dialect1:n}).parseStatements()}function uw(e,t){try{let n=lw(`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 wR(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)?uw(r.name,t[r.name]):r.default);return n}function Fm(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:kf(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 xc(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 xc(e,t,n){if(Array.isArray(e))return e.map(r=>xc(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,xc(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=cw(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 cw(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 Uc(e){if(Array.isArray(e)){for(let t of e){let n=Uc(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=Uc(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 bR(e,t,n,r,i){let o=await NR(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 pw(e,t,n,r,i){let o=await NR(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function NR(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,wc(o,l))&&$t("<=",o.value,u.value,wc(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"):wc(o,a);return{passed:$t(e.op,o.value,a.value,s),actual:o.value}}function wc(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(Mc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await PR(e.query,t,n,r,i),a=await CR(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 CR(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 PR(e,t,n,r,i){let{query:o,probed:a}=dw(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 dw(e){return kt(e)||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function Mc(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=Mc(e.left),n=Mc(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 bp(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 OR=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=Vd(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&OR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function fw(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function LR(e){return fw(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 Gm(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 _R(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`+Gm(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`+Gm(n,"VALUE"));return i}function dp(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 fp(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 vR(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 DR(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 DR(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"){Nw(e);let l,u=new Set;if(await so(e,t,r,i),yw(e))return l=Sw(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,LR(e)),c=_R(e,f,s),p=await Pr(e,t,r,i);await mg(e,t,n,r,u,i);let d=Uw(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=pc(e,C);k.eligible&&uc(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 Iw(e,S?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),I=Ep(e,n,S),v=R!==void 0&&(E==="FULL_SCAN"||S?.kind==="CANONICAL_LOCAL")?lp(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await Tw(e,v,I.effectiveOptions,r,S,y):l=await Fw(e,v,I.effectiveOptions,r,i,d.capability==="EXACT_PUSHDOWN"&&m===void 0,y,m,p)}catch(C){UR(I,C)}return o&&Ae.set(l,await lo(e,l.columns,t,r,i,a)),dp(l,[...u,...c,...A])}function kc(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 xR(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,xR(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=Ad(e,(c,p)=>l[p]),f=wd(o,e.columns,u);return Ew(e,o,f,s),zr(e,Pd(e,f,u)),f}function Ew(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(kc(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 mw(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 Rw(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(kc(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=xR(E);throw m.length>0?new Error(kc(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 Rw(e,t,n,r),u=_d(e,l,Ld);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 gw(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 Ep(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 UR(e,t){throw e.reasons.size>0&&t instanceof Et&&!t.completeInputWrapped?new Et(gw(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function Fc(e,t){try{return await t()}catch(n){UR(e,n)}}function Je(e){return e?.type==="BOOLEAN"&&e.value===!1}function yw(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"?mp(e):!1}function hw(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"?mp(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 mp(e){return e.args.some(t=>hw(t))}function Aw(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(mp(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 Sw(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.");Aw(e);let n=rc([{}],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 Tw(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?$R(e):e,s=jo(a),l=i?.kind==="CANONICAL_LOCAL"?In(e,e.from):s.fields,u=await gp(e,t,r),f=hp(e,u),c=e.columns.some(C=>C.type==="CASE_COL")?await go(e,t,r,void 0,fp(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 GE({client:t,app:s.app,fields:s.fields,query:ju(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`),sp(t,e.from.appId)}})}let A=S.map(C=>jt(C,null));R||(A=tc(A,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,nc(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 Tp(e,I,b,t,r);return{type:"SELECT",rows:I,columns:v,rowCount:I.length,warnings:[...d]}}async function Iw(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 bc(e){return e.cteName??`APP${e.appId}`}function MR(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function ww(e,t){return Ko(t)||e.validCodes.has(t)}function Nc(e,t){return e.table.cteName!==null?e.validCodes.has(t):ww(e,t)}async function bw(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 kR(e,t,n,r){let i=!1;$m(e,t,()=>(i=!0,!0)),i&&$m(e,t,await bw(e,n,r))}function $m(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 MR(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 Nw(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 Cw(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 Kc(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:bc(p),validCodes:new Set,authoritative:!1,schemaUnavailable:!0});return}let d=a.get(p);if(d){u.set(p,{table:p,label:bc(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 ig(p.appId,r):await Q(p.appId,t,r);u.set(p,{table:p,label:bc(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 MR(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&&!Nc(E,d.field))throw new Error(`ArgumentError: JOIN key ${d.tableAlias}.${d.field} is not available in the materialized table.`)}let c=kd(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=>!Nc(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=>Nc(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 kR(e,n,t,r),await Kc(e,t,n,r);for(let o of Cw(e))await hs(o,t,n,r,i)}}function FR(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 Rp=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=xE(e.where,r),o=UE(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,FR(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),Zw(s,t,n)]),c=Pw(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 Pw(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 Ow(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 gp(e,t,n){let r=Ow(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 yp(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"){yp(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 Gc(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"){Gc(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"?Gc(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 Bm(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;yp(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function Lw(e){let t=[];for(let n of e)n.type==="AGGREGATE"?yp(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?Or(n.expr,t):n.type==="ARITH_COL"?Bm(n.expr,t):n.type==="STRFUNC_COL"?Gc(n.expr,t):n.type==="SCALAR_VALUE_COL"?Qi(n.expr,t):n.type==="CASE_COL"&&Bm(n.expr,t);return t}var _w=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function vw(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":_w.has(e.fieldType)?"string":void 0}async function GR(e,t,n,r){let i=Lw(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 bp(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:vw(e),fieldType:e.fieldType,semantics:t===void 0?n:ir(n,t,e.code)}}function $R(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 BR(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"?BR():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")?BR("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 VR(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 Dw(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;Dw(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=VR(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 xw(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 hp(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 WR=new WeakSet,Ap=new WeakMap;function $c(e){return WR.add(e),e}function Uw(e,t){return Ap.set(e,t),t}function HR(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 Mw(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function kw(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(!Mw(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 Fw(e,t,n,r,i,o=!0,a,s,l){let u=Ap.get(e);if(WR.has(e)&&u!==void 0&&HR(e,u)){let G=await kw(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),gp(e,t,r),GR(e,t,r,i)]),R=hp(e,E),g=await go(e,t,r,i,Lt(e.having)||fp(e)),y=vR(e,g),S=Rp.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);Yl(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 gg(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 ng(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}=ic({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 Tp(e,K,j,t,r);return{type:"SELECT",rows:K,columns:B,rowCount:K.length,warnings:[...c]}}function Kw(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 Bc(e,t,n){Kw(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 YR(e,t,n,r){let i=Bc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:Gw(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,xw(e,t)),l}async function jR(e,t,n,r,i=!1,o=!1){let a=Ep(e,n,null);return Fc(a,async()=>{let s=a.effectiveOptions,[l,u]=await Promise.all([e.left.type==="UNION"?jR(e.left,t,s,r,i,o):Jt($c(e.left),t,s,r,void 0,i,o,"DERIVED"),Jt($c(e.right),t,s,r,void 0,i,o,"DERIVED")]);return YR(l,u,e.all,i)})}function Gw(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 zR(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(zR);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 Vm(e){return e.columns.map((t,n)=>zR(t)??`__b53_column_${n}`)}function Wm(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 JR(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 Hm(e,t,n,r,i){let o=await JR(e,n,r,i);e.columns.forEach(u=>zi(u,o));let a=await lo(e,Vm(e),n,r,i),s=Vm(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 XR(...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 $w(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function Bw(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=$w(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 Vw(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 Ww(e,t,n,r){let i=Bw(e),o=await Promise.all(XR(...e).map(async(a,s)=>{let l=await Jt(Vw(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 Ym(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 jm(e,t,n){return e.cteName===null?void 0:Oe(n.get(e.cteName),t)}function Cc(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 zm(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 Hw(e,t,n,r,i){let o=e.recursiveSpec,a=qR(e),s=await Hm(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let u=await Hm(o.recursiveTerm,a,t,i,l);a.forEach(($,M)=>{let K=s.get($),j=u.get($);if(!K||!j||!Wm(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=zm(e.name,o.recursiveTerm),c=await JR(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||!Wm(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 Ww([o.seed,o.recursiveTerm],t,n,i),m=new Map(r);for(let $ of E.values())m.set($.name,$.table);let R=Ym(o.seed,E),g=Ym(o.recursiveTerm,E),y=await St(R,t,n,m,i,!0,!0),S=Bc(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=zm(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=jm(P.self,P.selfField,l)??jm(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=Cc(M,h.semantics),j=w.get(K);j?j.push($):w.set(K,[$])}let _=w.has(Cc("",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(Cc(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=Bc(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 Sp(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 Hw(u,t,n,a,r):u.query.type==="SHOW_APPS"?f=await fg(t):u.query.type==="DESCRIBE"?f=await Eg(u.query,t,r):u.query.type==="GENERATE_SERIES"?f=QR(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 dp(l,[...s])}function QR(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 YR(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 Yw(e,t,n,r,i);return o&&Ae.set(l,await lo(e,l.columns,t,i,r)),l}async function Yw(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,LR(e)),p=_R(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),mg(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=Ep(e,n,y),A=S.effectiveOptions,[I,b,v]=await Promise.all([ks(e,t,i),gp(e,t,i),GR(e,t,i,r)]),C=hp(e,b),k=await go(e,t,i,r,Lt(e.having)||fp(e)),x=vR(e,k),U=Ms(e,I)??wn(e,I);Yl(U);let O=t,P=await gg(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(qm)),w.set(e.from.alias,B.columns)}else{let B=await Fc(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=>Fc(S,async()=>{if(B.table.cteName!=null){let G=f(B.table.cteName);h.set(B.table.alias,G.rows.map(qm)),w.set(B.table.alias,G.columns)}else{let G=B.table.alias?U.joinConditions.get(B.table.alias)??null:null,H=await ng(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}=ic({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 Tp(e,M,K,t,i);return dp({type:"SELECT",rows:M,columns:j,rowCount:M.length,warnings:[...E]},p)}async function Tp(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 BE(o,e.from.subtableCode,()=>$s(e.from.appId,r,i))}function qm(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`),sp(n,t.appId),wE(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?Ud(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&&Ap.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 am(R,t.subtableCode)}var Cr=50;function jw(e){let t=Ce(e);return t!==null?JSON.stringify(t):e}function Vc(e){return JSON.stringify(e)}function gn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?jw(n):n))}var Jm={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function Xm(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 Pc(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}: ${Jm[t.condition]} \u2014 ${Xm(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${Jm[o]} \u2014 ${Xm(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function zw(e,t){if(t==="DOCUMENT_ONLY")return[Pc("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=[Pc("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(Pc("native UPSERT statement/data eligibility",e.statement,t)),n}function qw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function Jw(e,t,n){let r=null;if(e.type==="UPSERT")try{r=vp(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 ZR(e,t,n){let r=qw(e);if(!r)return[];let i=await ig(r.appId,t);return zw(Jw(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 Ip(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:yo(t),enabled:cR(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 eg(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 tg(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=eg(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(Vc(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,Vc(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=Vc(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=>wp(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,Xw(A))}}return f}function Xw(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 wp(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 Qw=6,Ts=Ba*Qw;async function ng(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,_=wp(w);(w==null||_.length===0)&&(C=!0),v.push(_)}let k=Gu({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=Ku(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`),sp(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 Wc=new Map,Hc=new Map,Yc=new Map,vs=new Map,jc=new Map,zc=new Map;function rg(e){Wc.delete(e),Hc.delete(e),Yc.delete(e),vs.delete(e),jc.delete(e),zc.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 ig(e,t){let n=Yn(vs,t,e);return n?await n:null}async function xt(e,t,n){let r=Yn(zc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Ur(zc,n,e,i),i}async function $s(e,t,n){let r=Yn(jc,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Ur(jc,n,e,i),i}async function bp(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(Wc,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(Wc,n,e,o),o}async function qc(e,t,n){let r=Yn(Hc,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(Hc,n,e,o),o}async function Zw(e,t,n){let r=await qc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function Qm(e,t,n){let r=Yn(Yc,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(Yc,n,e,o),o}function eb(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 tb(e,t,n,r){let i=eb(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=VR(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([nb(e,t,n),rb(e,t,n),tb(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function nb(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 qc(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 qc(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}async function rb(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 Qm(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 Qm(a.appId,t,n);for(let[l,u]of s.entries())r.set(`${a.alias}.${l}`,u)}return r}function Np(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 ib=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function ob(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||ib.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 ob(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 ab(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 Ub(e,a,o)}async function sb(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await og(e,t,n,r,i);return kb(e,a,o)}async function og(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=vp(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 RE({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 lb(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=Uu(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 SE(o,t,a);return{...s,diagnostic:nt(a,s)}}async function ub(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await og(e,t,n,r,1),o=Mu(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 TE(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 cb(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=cb(n?ms(n):[],r?ms(r):[]),a=pb(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 pb(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 Cp(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return ab(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return sb(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await cg(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Pp(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 Pp(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=lm(E),R=(await db(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"?Eb:e.type.startsWith("UPSERT")?N=>mb(N,t,n.maxRecords??1e4):void 0,S=n.loadUpdateModeSnapshots??y,A=g.length>0&&S!==void 0,I=new Map;if(A){Nu(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=um(_,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=Cu(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=cm({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 Pp(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 db(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return ag(e,n,r,i,o,s);let l,u,f,c,p;if(e.type==="INSERT"||e.type==="UPSERT")Zm(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");Zm(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 Op(e){return e.checkGroups?Rr(e.checkGroups):[]}function Zm(e,t){let n=new Set(t);for(let r of Op(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 fb=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 Ff(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(fb.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 ag(e,t,n,r,i,o){if(e.from)return gb(e,e.from,t,n,r,i,o);await Rg(e.assignments,t,n,r);let a=await Ne(e.appId,t,r),s=sg(e,a);Wn(e,Xc(a,e.appId));let l,u=new Map,f=new Map;if(Ca(e)){let c=uu(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=pu(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:Rb(u.get(c.id),e.appId),evaluationFieldTypes:Xc(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 Eb(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 mb(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 sg(e,t){if(e.from)return[];let n=new Set;for(let r of Op(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw 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 Rb(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 Xc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function gb(e,t,n,r,i,o,a){let s=await _g(e,t,n,i,o);Wn(e,s.evaluationTypes);let l=await lg(e,t,n,r,i,o,a),u=await Ne(e.appId,n,i),f=fu(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:IN(c.get(d.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var yb=Cr,hb=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function lg(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 Ab(e,t,n,i),l=await _g(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 Sb(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=eR(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([...Kb(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()],yb)){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=eR(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 Ab(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 Sb(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(hb.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 eR(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 Pp(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 Tb(e,t,n,r){if(e.applyBlocks?.length)return lb(e,t,n,r);if(e.checkGroups?.length)return Ao(e,t,n,r);if(e.subtableCode)return Bb(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 Ib(){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 ug(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=Rm(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"?Sm(e.source,m,c,n.maxRecords??1e4):Tm(e.source,m,c,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader);await ap(n,e.source,R.receipt);let g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=Nm(R,c,p,E,g);if(e.source.kind==="CSV")return wb(e,R,y,p,t,n,i);Rc(y,e.rejectLimit);let S=[...new Set(c.flatMap(M=>M.kind==="FIELD"?[M.field]:M.children))],A=yc(y.errors,S),I=[...S,...gc],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(Pm(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=Om(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=>Cm(_(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 bb(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:Ib(),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 Cp(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"?Up(s,t,n,r,i):_p(s,t,n,r,i));return u(f)}async function wb(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");Lm(t.records);let s=t.records.map(P=>P.recordNumberSourceValue??""),l=Sc(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=_m(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};Rc(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=yc(g,k),U=[...k,...gc];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=hc(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 bb(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=fc(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader);await ap(r,e.source,u.receipt);let f=u.recordNumberSourceValues;if(!f)throw new Error("InternalError: record-number source values were not materialized.");let c=Sc(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=Cu(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 Nb(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 Dm(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"?dc(a.source,s,f,l):fc(a.source,s,l,e.fields,o);if(await ap(n,a.source,c.receipt),a.audit=c.importAudit,a.source.kind==="JSON"||!a.source.projection)return c;let p=vm(a.source.projection),d=new Map(i??[]);d.set(Ac,c);let E=await St(p,t,{...n,onLimitReached:"error"},d,r,!0);return Dm(e,E.warnings),{rows:E.rows,columns:E.columns,columnMeta:Ae.get(E)}}var Vs={materialize:Nb};function Lp(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 _p(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(Lp(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:Np(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 cg(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 sg(e,m),Wn(e,Xc(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),Vb(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 Fb(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await Rg(e.assignments,t,n,r);let u=await Ne(e.appId,t,r);if(Ca(e)){let E=uu(e),R=(await mt(t.getRecords,E.app,E.query,[...E.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,g=pu(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 cg(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 Cb(e,t,n,r,i);let o=await Q(e.appId,t,r),a=Wt(e,o),s=Oa(e,o),l=Au(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=eE({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 Cb(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 _b(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 Mb(e,f,s);Zd("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 AE(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 Pb(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&xs(t)&&_e(t.where)}var Ob=`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 Lb(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Ob}`)}async function _b(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=Yu(e.where,{fieldTypes:s,fieldOptions:l});Lb(u);let f=u.prefilter===null?"":z(u.prefilter),c=new Set(Oa(e,r));for(let E of vb(e.where))c.add(E);let p=await Db(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 vb(e){return pp(e)}async function Db(e,t,n,r,i){let s=[...xb(t)].some(f=>n.get(f)?.fieldType==="STATUS")?await bp(e,r,i):void 0;return{fieldTypeResolver:f=>f.field==="$id"?"NUMBER":n.get(f.field)?.fieldType,fieldSemanticsResolver:f=>{if(f.field==="$id")return rr(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 rr(d,e,c.code)}}}function xb(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 Ub(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,...Ii],a=t.guards.parentRows,s=Uu(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 Wn.set(u,Ws(o,n,e.appId)),u}function Mb(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,...Ii],s=Ni(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 Wn.set(l,Ws(a,n,e.appId)),l}function kb(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,...Ii],l=Mu(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 Wn.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:Kn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:Kn(t,"ADD"),removedValues:Kn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function 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 Fb(e,t,n,r,i,o){let a=await lg(e,t,n,r,i,o),s=await Ne(e.appId,n,i),l=fu(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 Kb(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 Gb(e,t,n,r){if(await mn(e,t,r),Je(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Wb(e,t,n,r);let i=mu(e),a=(await Oi(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 pg(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 $b(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return ub(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=vp(e);if(Gs(Ip(e,t,n,i,u)).execution.status==="ELIGIBLE"){let d=pg(e,l,n);return lt(d,e.fields,i,o),tg(e.appId,e.keyFields[0],d,u,t,n)}let c=await Dr(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=vr(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 vp(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 Dp(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 Bb(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=tR(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:tR(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(dg(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 Vb(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 Dp(e.appId,o,t,r),s=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=xp(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(Hb(e.appId,p,To(E),i,R))}return{type:"UPDATE",updatedCount:u.length}}async function Wb(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 Dp(e.appId,o,t,r),s=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=xp(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(dg(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 xp(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}`]=Zc(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 dg(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Hb(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Yb(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 tR(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 Zc(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 jb(e,t,n,r){let i=[];qt(e.where,i);let o=await Dp(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=xp(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:zb(E,e.subtableCode,y,S)}));R.sort((y,S)=>qb(y.flat,S.flat,e.by,l,ae(n)));let g=R.map(y=>y.row.id??"");await t.putRecords(Yb(e.appId,d,To(E),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:c.size}}function zb(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}`]=Zc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Zc(a?.value);return i}function qb(e,t,n,r,i={}){for(let o of n){let a=nR(o.key,e,i),s=nR(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"?$n(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 nR(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 Up(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(Lp(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:Np(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(Ip(e,t,n,o,E)).execution.status==="ELIGIBLE")return tg(e.appId,e.keyFields[0],d,E,t,n);if(_r.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 Dr(e.appId,e.keyFields,E,t,n,p);if(d.forEach((y,S)=>{let A=vr(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 Mp=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),kp=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function fg(e){let t=await e.getApps(),n=[...Mp],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function Eg(e,t,n){let r=await Q(e.appId,t,n),i=[...kp],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB:a.inSubtable===!0?a.subtableCode??"":"",\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}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 mg(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 Rg(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 gg(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 yg=new WeakMap,hg=new WeakMap,Ag=new WeakMap,ep=new WeakMap,Fp=new WeakMap,Sg=new WeakMap,Tg=new WeakMap;async function Ig(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?Pi(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&&Fp.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(...vn([],[_]).columns);return w}if(P.type==="UNION")return k(P.left);if(P.type==="SHOW_APPS")return[...Mp];if(P.type==="DESCRIBE")return[...kp];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 _=qR(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 _=QR(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 kR(N,g,u,n),await Kc(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 Cr(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 Cr(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 kn(N,u,n,g);F.length>0&&ep.set(N,F);let W=we(N.where,L),$=R(N);if(W.capability==="UNSUPPORTED"&&!$)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Fn(W)}).`);f.set(N,W);let M=await ks(N,u,n),j=Rp.get(N)??Ms(N,M);j&&yg.set(N,j);let B=j??wn(N,M);hg.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),ol;if(D.table.cteName!==null)ol=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));ol=ke?Ge(ke,D.table.appId):at(No)}let al,sl,Hp,Yp;if(Zt?.cteName!==null&&Zt?.cteName!==void 0){let ke=g.get(Zt.cteName);al=Oe(ke,Qt),y.has(Zt.cteName)&&ke&&(Hp=ke.rows.length,sl=ke.rows.map(pt=>wp(pt[Qt])),Yp=sl.some(pt=>pt.length===0))}else if(Zt){let ke=(await Q(Zt.appId,u,n)).find(pt=>pt.code===pe(Zt,Qt));al=ke?Ge(ke,Zt.appId):at(Qt)}let Co=Gu({fieldType:ol?.fieldType,sourceSemantics:al?.semantics,sourceRowCount:Hp,values:sl,hasEmptyValue:Yp,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 py=Ku(Co,No,uo),jp=B.joinConditions.get(H),dy=jp?z(jp):void 0,fy=B.joinRelations.get(H);G.set(H,{plan:Co,queries:py,additionalQuery:dy,additionalRelation:fy})}if(G.size>0&&Ag.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"?Di:vi)({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=_u(N,h),F=mr(N.checkGroups??[]),W=pp(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"),Vn(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 (${Fn(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:Kl(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)),Sg.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=Yu(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))]]:[]))});Tg.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 kn(O,u,n);N.length>0&&ep.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 (${Fn(h)}).`);if(f.set(O,h),Ps(O)&&w?.allowed!==!1){let _=await co(O,u,n);c.set(O,(O.orderMode==="KINTONE_NATIVE"?Di:vi)({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 Kc(O,u,g,n,!0);return{capabilities:f,orderPlans:c,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:m}}function tp(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 Jb(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 rR(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 xn(e){try{let t=e;switch(t.type){case"BINARY":return`${ht(t.left)} ${Jb(t.op)} ${ht(t.right)}`;case"NULL_CHECK":return`${ht(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${xn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${xn(t.right)})`;case"NOT":return`NOT (${xn(t.expr)})`;case"GROUP":return`(${xn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function np(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?Xb(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=Lc(l),f=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Oc(u)}: ${u}`,` ${_c(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)":xn(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=Lc(s),u=s.left.type==="FIELD"?s.left.field:void 0,f=rR(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(u===void 0||p.field===u)&&p.operator===f);t.push(` ${Oc(l)}: ${l}`,` ${_c(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)",` ${iR(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=Lc(s),u=s.left.type==="FIELD"?s.left.field:void 0,f=rR(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(u===void 0||p.field===u)&&p.operator===f);t.push(` ${Oc(l)}: ${l}`,` ${_c(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: ${xn(o.residualWhere)}`,` ${iR(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 Xb(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 Oc(e){return ne(e)?"relative date function":"kintone function"}function Lc(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 _c(e){return ne(e)?"relative date evaluation":"kintone function evaluation"}function iR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ne(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var wg=new WeakMap;function rp(e,t){if(Array.isArray(e))return e.map(r=>rp(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 wg.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,rp(i,t)]))}function qi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...Mp]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...kp]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let u=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(...vn([],[s]).columns);return{status:"STATIC",columns:a}}function Qb(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function Zb(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 Cr(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 eN=Symbol("ksql.explainFetchPlan");function bg(e,t){e[eN]=t}async function Ng(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=hl(d??new Date,E),g=Ht({recursiveCteMaxDepth:f,recursiveCteMaxRows:c,recursiveCteMaxExpansions:p}),y=dR(r);try{let{statements:S,meta:A}=sm(e,{import:a}),I=ui(S),b=ku(S,n),v=wR(S,b),C=new Map;for(let[N,h]of Object.entries(R.values))C.set(Kr(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),_=rp(w,k);et(_);let L=await Ro(_,t,y),F=Qb(x),W=u?await Ig(_,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 Zb(_,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?np(L):[...np(L),...Pg(rN(_,I.statements[N],W.capabilities,W.orderPlans,W.plainGroupByPlans,s,l,M,x,$,{maxRecords:i,recursiveLimits:g}),o)],j=tp(W),B=A.dialect===1?tN(_,I.statements[N],i,s):[],G=await ZR(_,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:Kp(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 bg(P,{statements:O}),P}finally{rg(y)}}function tN(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=nN(e);(e.type==="UPDATE"||e.type==="DELETE")&&!o.includes(`APP${e.appId}`)&&o.unshift(`APP${e.appId}`);let a=Math.ceil(n/500);for(let u of o)i.push(` read ${u}: \u4E0D\u660E\uFF08\u4E0A\u9650 maxRecords=${n} \u3068\u4EEE\u5B9A: \u6700\u5927 ${a} \u56DE\u3001500 \u4EF6/\u56DE\uFF09`);let s=[...new Set([...t.appIds,...t.targetAppId===null?[]:[t.targetAppId]])];i.push(` metadata: GET form fields \xD7 ${s.length} \u30A2\u30D7\u30EA\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\u6E08\u307F\u306F\u8FFD\u52A0 0 \u56DE\uFF09`),(e.type==="UPSERT"||e.type==="UPSERT_SELECT")&&(e.type==="UPSERT"?i.push(` UPSERT pre-read: ${Math.ceil(e.values.length/Nr)} \u56DE\uFF08${e.values.length} \u884C\u3001${Nr} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/Nr)} \u56DE\u3001${Nr} \u30AD\u30FC/\u56DE\uFF09`));let l=e.type==="INSERT"||e.type==="UPSERT"?e.values.length:null;return(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPSERT"||e.type==="UPSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE")&&(i.push(l===null?` write: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/100)} \u56DE\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`:` write: ${Math.ceil(l/100)} \u56DE\uFF08${l} \u884C\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`),i.push(" reference: bulkRequest \u306F\u672A\u5B9F\u88C5\u3002\u66F8\u8FBC\u30B5\u30D6\u30EA\u30AF\u30A8\u30B9\u30C8\u6570\u306F HTTP \u66F8\u8FBC\u56DE\u6570\u3068\u540C\u3058")),i}function nN(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 rN(e,t,n,r,i,o=100,a=Me,s={sources:[]},l=new Map,u,f=Cg()){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`,...br(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:",...br(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 br(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(...br(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(...br(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):br(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 br(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=Cg()){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(...Og(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 ip=new WeakMap;function Cg(){return{maxRecords:1e4,recursiveLimits:Ht({})}}async function iN(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 Ig(e.query,t,n,r,E,ip.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=np(E),y=E.hasServerOnlyWhereFunction&&!E.allowed?[...tp(m),...g]:[...tp(m),...g,...Pg(Ys(e.query,void 0,m.capabilities,m.orderPlans,o,a,r,m.plainGroupByPlans,!0,R,"main",d),i)],S=await ZR(e,n,p),A=bs([...y,...S],R.sources),I={type:"SELECT",columns:["plan"],rows:A.map(b=>({plan:b})),rowCount:A.length};return bg(I,{statements:[{index:0,fetch:Kp(R.sources),sources:R.sources}]}),I}function Pg(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=uN(e,n,r,s,p);return l?bs(E,p.sources):E}if(e.type==="WITH"){let E=pN(e,n,r,s,p,a,c);return l?bs(E,p.sources):E}if(e.type==="INSERT")return EN(e,t,i,o);if(e.type==="INSERT_SELECT")return mN(e,t,n,r,s);if(e.type==="UPSERT")return hN(e,t,i,o);if(e.type==="UPSERT_SELECT")return AN(e,t,n,r,s);if(e.type==="UPDATE")return RN(e,t,n,r,i,o,a);if(e.type==="DELETE")return yN(e,t);if(e.type==="REORDER")return SN(e,t);if(e.type==="VALIDATE")return sN(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 oR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Kp(e){return e.reduce((t,n)=>oR[t]>=oR[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: ${Kp(t).toUpperCase()}`,...n]}function oN(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:oN(o)};return e.sources.push(s),s}function aN(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function gs(e){return` fetch: ${aN(e)}`}function sN(e,t){let n=Sg.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?cp:up).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 lN(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 Og(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&&HR(e,u),d=p?"COUNT_TOTAL_COUNT":f?.kind==="CANONICAL_LOCAL"||u&&u.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Qe(e),E=dN(e);u&&u.capability!=="EXACT_PUSHDOWN"&&E.push(...u.reasons.map(A=>A.code));let m=[],R=bE(e,ao.get(e)?.allItems.length);t&&m.push(t),m.push(` mode: ${d}`);for(let A of Fp.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 / ${$u}`),m.push(" guard timing: after complete source fetch, before row materialization")}m.push(" records API: none")}for(let A of ep.get(e)??OR.get(e)??[])m.push(lN(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(...Og(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(Lg).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"?$R(e):e);m.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=f?.kind==="KORDER_CURSOR"?ju(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=yg.get(e),I=hg.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)":xn(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=FR(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?ti(e.where,{tableAlias:w.table.alias}):null,M=w.table.alias?A?.queriesByAlias.get(w.table.alias):void 0,K=w.table.alias?Ag.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(...fN(e,n,r,i,s)),m}function uN(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 cN(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?Pi(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&&Fp.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 pN(e,t,n,r,i={sources:[]},o=1e4,a=Ht({})){cN(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 XR(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=wg.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 dN(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 fN(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 EN(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,...Gp(Ga(e,n,r))]:a}function mN(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 RN(e,t,n,r,i=100,o=Me,a=1e4){if(e.applyBlocks?.length)return gN(e,t,i,o,a);let s=Vf(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=TN(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(` ${wN(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 gN(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=Tg.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",...Gp(o)]}function yN(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 hN(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,...Gp(Ga(e,n,r))]:a}function Gp(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 AN(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 SN(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(Lg).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 Lg(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 TN(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 _g(e,t,n,r,i){let o=Op(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 IN(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 wN(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} = ${vg(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 vg(e){return`${aR(e.left)} ${e.op} ${aR(e.right)}`}function aR(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"?`(${vg(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 bN=2,js=5,NN=3e4,CN=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??bN;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??NN,this.quarantineMs=n.quarantineMs??CN}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 PN(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function ON(e,t=r=>new Promise(i=>setTimeout(i,r)),n=PN){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 LN(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 Dg(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 LN(ON(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function xg(e){return Ug(e,vN(e))}function Ug(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=DN(o.options),s=xN(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)&&!_N.has(o.type)};l.semantics=te(l),i.push(l),o.fields&&i.push(...Ug(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var _N=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function vN(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 DN(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 xN(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Mg(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 UN="Filter aborted because of too many search results";function kg(e){return e?.includes(UN)===!0}var Io=class extends Error{constructor(n,r,i){super(i);this.status=n;this.code=r;this.name=r??"KintoneHttpError"}};function Fg(e){let t=MN(e.baseUrl),n=e.guestSpaceId===void 0?"/k/v1":`/k/guest/${kN(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",FN(`${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 kg(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 Dg(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 xg(u.body.properties)},async getNumberPrecision(l){let u=await a(`/app/settings.json?app=${encodeURIComponent(String(l))}`,"GET",l);return sE(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:Mg(u.body.states)}}}}function MN(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 kN(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive integer.`);return e}function FN(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 Xs=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 Kg(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 $p=new WeakMap;function $g(e,t){$p.set(e,t)}function Bg(e){$p.delete(e)}function Ur(e,t){return new ie(e,`${e}: ${t}`)}function Gg(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 KN(e){let t=Array.from(e);return t.length>0&&Gg(t[0].codePointAt(0))&&t.slice(1).every(n=>{let r=n.codePointAt(0);return Gg(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("#")||!KN(a))throw Ur("ExportSinkInvalidNameError","an export sink name must be a valid temp-table identifier without a leading #.");if(n.has(a))throw Ur("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 Ur("ExportSinkDuplicateError","an export sink must correspond to exactly one CREATE TEMP TABLE statement.");let i=ui([...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?Ur("ExportSinkInvalidTargetError","an export sink cannot target a DML or validation result."):Ur("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 Ur("ExportSinkNotFoundError","the export sink temp table does not exist in the final batch state.")}return r}function Wg(e){return $p.get(e)}function Hg(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})}},Qs=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)}},Mr=class extends Tt{constructor(t,n){super("ExportSinkInvalidTimezoneError",t,n)}},Zs=class extends Tt{constructor(t){super("ExportSinkEncoderRequiredError",t)}},el=class extends Tt{constructor(t,n){super("ExportSinkEncodingError",t,n)}},tl=class extends Tt{constructor(t){super("ExportSinkInvalidEncoderResultError",t)}};var Yg=1024,GN=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))[eE]([+-]?\d+)$/;function jg(e){let t=GN.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(Yg))throw new ct(`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 $N=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$/;function Bp(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=$N.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=Bp(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 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 Mr(`timezone ${JSON.stringify(e)} is not a supported IANA timezone.`,t)}}function kr(e,t){let n=e.find(r=>r.type===t)?.value;if(n===void 0)throw new Mr("timezone formatter did not return the required date parts.");return Number(n)}function Yn(e){return String(e).padStart(2,"0")}function Jg(e,t){let{parts:n,instant:r}=zg(e),i=t.formatToParts(r),o={year:kr(i,"year"),month:kr(i,"month"),day:kr(i,"day"),hour:kr(i,"hour"),minute:kr(i,"minute"),second:kr(i,"second")},a=(Bp(o)-Bp(n))/1e3;if(!Number.isInteger(a))throw new Mr("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")}-${Yn(o.month)}-${Yn(o.day)}T${Yn(o.hour)}:${Yn(o.minute)}:${Yn(o.second)}${n.fraction}${s}${Yn(u)}:${Yn(f)}`}function Xg(e){zg(e)}var BN=new Set(["CHECK_BOX","MULTI_SELECT","CATEGORY"]),VN=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),WN=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 jn(e,t,n){throw new ct(`data row ${e}, column ${JSON.stringify(t)} ${n}`)}function Qg(e,t,n){let r;try{r=JSON.parse(e)}catch{return jn(t,n,"does not contain a valid JSON array.")}return Array.isArray(r)?r:jn(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 jn(n,t,"has a non-string value.");let o=r?.fieldType;if(o&&BN.has(o)){let a=Qg(e,n,t);return a.every(s=>typeof s=="string")?a.join(`
|
|
19
|
-
`):
|
|
20
|
-
`)}if(o&&WN.has(o)&&/[eE]/.test(e))try{return jg(e)}catch(a){if(a instanceof ct)return
|
|
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 Lb(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${Ob}`)}async function _b(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=Yu(e.where,{fieldTypes:s,fieldOptions:l});Lb(u);let f=u.prefilter===null?"":z(u.prefilter),c=new Set(Oa(e,r));for(let E of vb(e.where))c.add(E);let p=await Db(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 vb(e){return pp(e)}async function Db(e,t,n,r,i){let s=[...xb(t)].some(f=>n.get(f)?.fieldType==="STATUS")?await bp(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 xb(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 Ub(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=Uu(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 Mb(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 kb(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=Mu(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 Fb(e,t,n,r,i,o){let a=await lg(e,t,n,r,i,o),s=await Ne(e.appId,n,i),l=fu(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 Kb(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 Gb(e,t,n,r){if(await mn(e,t,r),Je(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Wb(e,t,n,r);let i=mu(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=jf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function pg(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 $b(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return ub(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=vp(e);if(Gs(Ip(e,t,n,i,u)).execution.status==="ELIGIBLE"){let d=pg(e,l,n);return lt(d,e.fields,i,o),tg(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 vp(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 Dp(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 Bb(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=tR(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:tR(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(dg(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 Vb(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 Dp(e.appId,o,t,r),s=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=xp(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(Hb(e.appId,p,To(E),i,R))}return{type:"UPDATE",updatedCount:u.length}}async function Wb(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 Dp(e.appId,o,t,r),s=await Ve(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),u=xp(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(dg(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 xp(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}`]=Zc(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 dg(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Hb(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Yb(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 tR(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 Zc(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 jb(e,t,n,r){let i=[];qt(e.where,i);let o=await Dp(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=xp(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:zb(E,e.subtableCode,y,S)}));R.sort((y,S)=>qb(y.flat,S.flat,e.by,l,ae(n)));let g=R.map(y=>y.row.id??"");await t.putRecords(Yb(e.appId,d,To(E),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:c.size}}function zb(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}`]=Zc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Zc(a?.value);return i}function qb(e,t,n,r,i={}){for(let o of n){let a=nR(o.key,e,i),s=nR(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 nR(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 Up(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(Lp(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:Np(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(Ip(e,t,n,o,E)).execution.status==="ELIGIBLE")return tg(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 Mp=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),kp=Object.freeze(["\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9","\u30E9\u30D9\u30EB","\u30BF\u30A4\u30D7","\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB","\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7","\u30B3\u30D4\u30FC\u5143","\u91CD\u8907\u7981\u6B62","\u8A08\u7B97\u5F0F"]);async function fg(e){let t=await e.getApps(),n=[...Mp],r=t.map(i=>({\u30A2\u30D7\u30EAID:String(i.appId),\u30A2\u30D7\u30EA\u540D:i.name,\u8AAC\u660E:i.description}));return{type:"SELECT",rows:r,columns:n,rowCount:r.length}}async function Eg(e,t,n){let r=await Q(e.appId,t,n),i=[...kp],o=r.map(a=>({\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9:a.code,\u30E9\u30D9\u30EB:a.label,\u30BF\u30A4\u30D7:a.fieldType,\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB:a.inSubtable===!0?a.subtableCode??"":"",\u30EB\u30C3\u30AF\u30A2\u30C3\u30D7:a.hasLookup===!0?"YES":"",\u30B3\u30D4\u30FC\u5143:a.isLookupCopyTarget===!0?"YES":"",\u91CD\u8907\u7981\u6B62:a.isUnique===!0?"YES":"",\u8A08\u7B97\u5F0F:a.isCalculated===!0?"YES":""}));return{type:"SELECT",rows:o,columns:i,rowCount:o.length}}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 mg(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 Rg(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 gg(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 yg=new WeakMap,hg=new WeakMap,Ag=new WeakMap,ep=new WeakMap,Fp=new WeakMap,Sg=new WeakMap,Tg=new WeakMap;async function Ig(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&&Fp.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[...Mp];if(P.type==="DESCRIBE")return[...kp];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 _=qR(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 _=QR(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 kR(N,g,u,n),await Kc(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&&ep.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=Rp.get(N)??Ms(N,M);j&&yg.set(N,j);let B=j??wn(N,M);hg.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),ol;if(D.table.cteName!==null)ol=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));ol=ke?Ge(ke,D.table.appId):at(No)}let al,sl,Hp,Yp;if(Zt?.cteName!==null&&Zt?.cteName!==void 0){let ke=g.get(Zt.cteName);al=Oe(ke,Qt),y.has(Zt.cteName)&&ke&&(Hp=ke.rows.length,sl=ke.rows.map(pt=>wp(pt[Qt])),Yp=sl.some(pt=>pt.length===0))}else if(Zt){let ke=(await Q(Zt.appId,u,n)).find(pt=>pt.code===pe(Zt,Qt));al=ke?Ge(ke,Zt.appId):at(Qt)}let Co=Gu({fieldType:ol?.fieldType,sourceSemantics:al?.semantics,sourceRowCount:Hp,values:sl,hasEmptyValue:Yp,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 py=Ku(Co,No,uo),jp=B.joinConditions.get(H),dy=jp?z(jp):void 0,fy=B.joinRelations.get(H);G.set(H,{plan:Co,queries:py,additionalQuery:dy,additionalRelation:fy})}if(G.size>0&&Ag.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=_u(N,h),F=Rr(N.checkGroups??[]),W=pp(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:Kl(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)),Sg.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=Yu(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))]]:[]))});Tg.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&&ep.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 Kc(O,u,g,n,!0);return{capabilities:f,orderPlans:c,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:m}}function tp(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 Jb(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 rR(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)} ${Jb(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 np(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?Xb(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=Lc(l),f=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Oc(u)}: ${u}`,` ${_c(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=Lc(s),u=s.left.type==="FIELD"?s.left.field:void 0,f=rR(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(u===void 0||p.field===u)&&p.operator===f);t.push(` ${Oc(l)}: ${l}`,` ${_c(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)",` ${iR(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=Lc(s),u=s.left.type==="FIELD"?s.left.field:void 0,f=rR(s.op),c=n.capability?.reasons.find(p=>p.functionName===l&&(u===void 0||p.field===u)&&p.operator===f);t.push(` ${Oc(l)}: ${l}`,` ${_c(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)}`,` ${iR(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 Xb(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 Oc(e){return ne(e)?"relative date function":"kintone function"}function Lc(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 _c(e){return ne(e)?"relative date evaluation":"kintone function evaluation"}function iR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&ne(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var wg=new WeakMap;function rp(e,t){if(Array.isArray(e))return e.map(r=>rp(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 wg.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,rp(i,t)]))}function qi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...Mp]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...kp]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let u=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 Qb(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function Zb(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 eN=Symbol("ksql.explainFetchPlan");function bg(e,t){e[eN]=t}async function Ng(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=hl(d??new Date,E),g=Ht({recursiveCteMaxDepth:f,recursiveCteMaxRows:c,recursiveCteMaxExpansions:p}),y=dR(r);try{let{statements:S,meta:A}=sm(e,{import:a}),I=ci(S),b=ku(S,n),v=wR(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),_=rp(w,k);et(_);let L=await Ro(_,t,y),F=Qb(x),W=u?await Ig(_,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 Zb(_,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?np(L):[...np(L),...Pg(rN(_,I.statements[N],W.capabilities,W.orderPlans,W.plainGroupByPlans,s,l,M,x,$,{maxRecords:i,recursiveLimits:g}),o)],j=tp(W),B=A.dialect===1?tN(_,I.statements[N],i,s):[],G=await ZR(_,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:Kp(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 bg(P,{statements:O}),P}finally{rg(y)}}function tN(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=nN(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 nN(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 rN(e,t,n,r,i,o=100,a=Me,s={sources:[]},l=new Map,u,f=Cg()){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=Cg()){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(...Og(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 ip=new WeakMap;function Cg(){return{maxRecords:1e4,recursiveLimits:Ht({})}}async function iN(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 Ig(e.query,t,n,r,E,ip.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=np(E),y=E.hasServerOnlyWhereFunction&&!E.allowed?[...tp(m),...g]:[...tp(m),...g,...Pg(Ys(e.query,void 0,m.capabilities,m.orderPlans,o,a,r,m.plainGroupByPlans,!0,R,"main",d),i)],S=await ZR(e,n,p),A=bs([...y,...S],R.sources),I={type:"SELECT",columns:["plan"],rows:A.map(b=>({plan:b})),rowCount:A.length};return bg(I,{statements:[{index:0,fetch:Kp(R.sources),sources:R.sources}]}),I}function Pg(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=uN(e,n,r,s,p);return l?bs(E,p.sources):E}if(e.type==="WITH"){let E=pN(e,n,r,s,p,a,c);return l?bs(E,p.sources):E}if(e.type==="INSERT")return EN(e,t,i,o);if(e.type==="INSERT_SELECT")return mN(e,t,n,r,s);if(e.type==="UPSERT")return hN(e,t,i,o);if(e.type==="UPSERT_SELECT")return AN(e,t,n,r,s);if(e.type==="UPDATE")return RN(e,t,n,r,i,o,a);if(e.type==="DELETE")return yN(e,t);if(e.type==="REORDER")return SN(e,t);if(e.type==="VALIDATE")return sN(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 oR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function Kp(e){return e.reduce((t,n)=>oR[t]>=oR[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: ${Kp(t).toUpperCase()}`,...n]}function oN(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:oN(o)};return e.sources.push(s),s}function aN(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function gs(e){return` fetch: ${aN(e)}`}function sN(e,t){let n=Sg.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?cp:up).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 lN(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 Og(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&&HR(e,u),d=p?"COUNT_TOTAL_COUNT":f?.kind==="CANONICAL_LOCAL"||u&&u.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":Qe(e),E=dN(e);u&&u.capability!=="EXACT_PUSHDOWN"&&E.push(...u.reasons.map(A=>A.code));let m=[],R=bE(e,ao.get(e)?.allItems.length);t&&m.push(t),m.push(` mode: ${d}`);for(let A of Fp.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 / ${$u}`),m.push(" guard timing: after complete source fetch, before row materialization")}m.push(" records API: none")}for(let A of ep.get(e)??OR.get(e)??[])m.push(lN(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(...Og(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(Lg).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"?$R(e):e);m.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=f?.kind==="KORDER_CURSOR"?ju(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=yg.get(e),I=hg.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=FR(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?Ag.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(...fN(e,n,r,i,s)),m}function uN(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 cN(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&&Fp.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 pN(e,t,n,r,i={sources:[]},o=1e4,a=Ht({})){cN(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 XR(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=wg.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 dN(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 fN(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 EN(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,...Gp(Ga(e,n,r))]:a}function mN(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 RN(e,t,n,r,i=100,o=Me,a=1e4){if(e.applyBlocks?.length)return gN(e,t,i,o,a);let s=Vf(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=TN(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(` ${wN(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 gN(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=Tg.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",...Gp(o)]}function yN(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 hN(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,...Gp(Ga(e,n,r))]:a}function Gp(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 AN(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 SN(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(Lg).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 Lg(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 TN(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 _g(e,t,n,r,i){let o=Op(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 IN(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 wN(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} = ${vg(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 vg(e){return`${aR(e.left)} ${e.op} ${aR(e.right)}`}function aR(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"?`(${vg(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 bN=2,js=5,NN=3e4,CN=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??bN;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??NN,this.quarantineMs=n.quarantineMs??CN}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 PN(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function ON(e,t=r=>new Promise(i=>setTimeout(i,r)),n=PN){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 LN(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 Dg(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 LN(ON(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function xg(e){return Ug(e,vN(e))}function Ug(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=DN(o.options),s=xN(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)&&!_N.has(o.type)};l.semantics=te(l),i.push(l),o.fields&&i.push(...Ug(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var _N=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function vN(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 DN(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 xN(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Mg(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 UN="Filter aborted because of too many search results";function kg(e){return e?.includes(UN)===!0}var Io=class extends Error{constructor(n,r,i){super(i);this.status=n;this.code=r;this.name=r??"KintoneHttpError"}};function Fg(e){let t=MN(e.baseUrl),n=e.guestSpaceId===void 0?"/k/v1":`/k/guest/${kN(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",FN(`${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 kg(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 Dg(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 xg(u.body.properties)},async getNumberPrecision(l){let u=await a(`/app/settings.json?app=${encodeURIComponent(String(l))}`,"GET",l);return sE(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:Mg(u.body.states)}}}}function MN(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 kN(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive integer.`);return e}function FN(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 Xs=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 Kg(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 $p=new WeakMap;function $g(e,t){$p.set(e,t)}function Bg(e){$p.delete(e)}function Mr(e,t){return new ie(e,`${e}: ${t}`)}function Gg(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 KN(e){let t=Array.from(e);return t.length>0&&Gg(t[0].codePointAt(0))&&t.slice(1).every(n=>{let r=n.codePointAt(0);return Gg(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("#")||!KN(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 Wg(e){return $p.get(e)}function Hg(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})}},Qs=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)}},Zs=class extends Tt{constructor(t){super("ExportSinkEncoderRequiredError",t)}},el=class extends Tt{constructor(t,n){super("ExportSinkEncodingError",t,n)}},tl=class extends Tt{constructor(t){super("ExportSinkInvalidEncoderResultError",t)}};var Yg=1024,GN=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))[eE]([+-]?\d+)$/;function jg(e){let t=GN.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(Yg))throw new ct(`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 $N=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?Z$/;function Bp(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=$N.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=Bp(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 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 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 Jg(e,t){let{parts:n,instant:r}=zg(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=(Bp(o)-Bp(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 Xg(e){zg(e)}var BN=new Set(["CHECK_BOX","MULTI_SELECT","CATEGORY"]),VN=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),WN=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 Qg(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 ey(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&&BN.has(o)){let a=Qg(e,n,t);return a.every(s=>typeof s=="string")?a.join(`
|
|
19
|
+
`):zn(n,t,"must contain only string array elements.")}if(o&&VN.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 zn(n,t,"must contain objects with string code properties.");s.push(l.code)}return s.join(`
|
|
20
|
+
`)}if(o&&WN.has(o)&&/[eE]/.test(e))try{return jg(e)}catch(a){if(a instanceof ct)return zn(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 ct)return zn(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 Zs('encoding "sjis" requires an encoder whose encoding is "sjis" and which has an encode function.');return{encoding:t,encoder:n}}function HN(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 el("Shift_JIS encoder failed to encode the CSV payload.",r)}if(!HN(n))throw new tl("Shift_JIS encoder must return a Uint8Array.");return n}function ry(e){return/[",\r\n]/.test(e)?`"${e.replace(/"/g,'""')}"`:e}function YN(e){let t=new Set;for(let n of e){if(t.has(n))throw new Qs(`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);YN(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=ny(o,n);return{text:o,data:a,receipt:{rows:e.rows.length,columns:e.columns.length,bytes:a.byteLength,encoding:n.encoding}}}function
|
|
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 ie(e,`${e}: ${t}`,n)}function oy(e){let t=Wg(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 jN(e){throw e instanceof ie?e:e instanceof Tt?new ie(e.code,e.message,e):qn("FLOW_ERROR","CSV export failed.",e)}function nl(e,t={}){try{return iy(e,t)}catch(n){return jN(n)}}function sy(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=sR(n);if(r===void 0)throw qn("ExportSinkInvalidTargetError","the SELECT result is not associated with engine column metadata.");return nl({columns:n.columns,rows:n.rows,columnMeta:r},t)}function Vp(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 ly(e,t,n={}){let r=Vp(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 nl({columns:o.columns,rows:o.rows,columnMeta:o.columnMeta},n)}var zN="3.80.0",bo=new WeakMap,rl=new WeakMap,Wp=new WeakMap;function qN(e,t={}){return il(e,t)}async function JN(e,t={}){let n=il(e,t);if(n.diagnostics.some(l=>l.severity==="error"))return n.diagnostics;let r=rl.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 Jp(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 XN(e,t){let n=il(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=iC(e,t.apps),o=rl.get(n.statements),a=o?cy(t.client,o):t.client;try{return await Ng(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 QN(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=il(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(oC))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=Vg(r,E),g=rl.get(r),y=g?cy(a,g):a,A=gR(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),$g(o,A),g&&Wp.set(o,g),o}catch(t){throw Js(t)}}async function ZN(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.");eC(e);let i=bo.get(t);if(!i)throw new ie("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");try{let o=await hR(e,i,r),a=Wp.get(t)?.get(o.appId)?.appId??o.appId;return{...o,appId:a}}catch(o){throw Js(o)}}function eC(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 tC(e,t){let n=bo.get(t);if(!n)throw new ie("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");let r=await yR(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:nC(n.metrics)}}function nC(e){return{...e,limitReachedApps:[...e.limitReachedApps]}}async function rC(e){let t=bo.get(e);t&&(bo.delete(e),Wp.delete(e),Bg(e),await AR(t))}function iC(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 uy(e,t).normalizedSql}function il(e,t){let n=df(e,t);if(t.apps!==void 0&&Qn(e).some(r=>r.source==="logical")){let r=uy(e,t.apps);rl.set(n.statements,r.appBindingByMappedApp)}return n}function oC(e){return e.type==="IMPORT"||e.type==="EXPLAIN"&&e.query.type==="IMPORT"}function uy(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 cy(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}0&&(module.exports={FlowImportProviderError,KsqlFlowError,createExecutionContext,createImportSourceResolver,createKintoneClient,disposeExecutionContext,executeStatement,explainScript,exportSinkStatus,isDmlResult,parseScript,previewStatement,serializeCsvExport,serializeExportSink,serializeSelectResultAsCsv,validateScript,version});
|