@rex0220/kintone-sql-tools 3.72.0 → 3.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,18 +1,18 @@
1
- "use strict";var Ls=Object.defineProperty;var Ym=Object.getOwnPropertyDescriptor;var jm=Object.getOwnPropertyNames;var zm=Object.prototype.hasOwnProperty;var qm=(e,t)=>{for(var n in t)Ls(e,n,{get:t[n],enumerable:!0})},Jm=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of jm(t))!zm.call(e,i)&&i!==n&&Ls(e,i,{get:()=>t[i],enumerable:!(r=Ym(t,i))||r.enumerable});return e};var Xm=e=>Jm(Ls({},"__esModule",{value:!0}),e);var yb={};qm(yb,{KsqlFlowError:()=>Ie,createExecutionContext:()=>pb,createKintoneClient:()=>Gm,disposeExecutionContext:()=>mb,executeStatement:()=>Eb,explainScript:()=>cb,isDmlResult:()=>Km,parseScript:()=>lb,previewStatement:()=>db,validateScript:()=>ub,version:()=>sb});module.exports=Xm(yb);var le={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 Qm(e,t){let n=Math.max(0,Math.min(t,e.length)),r=1,i=1;for(let o=0;o<n;o++){let a=e[o];a==="\r"?(e[o+1]===`
1
+ "use strict";var Us=Object.defineProperty;var ay=Object.getOwnPropertyDescriptor;var sy=Object.getOwnPropertyNames;var ly=Object.prototype.hasOwnProperty;var uy=(e,t)=>{for(var n in t)Us(e,n,{get:t[n],enumerable:!0})},cy=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of sy(t))!ly.call(e,i)&&i!==n&&Us(e,i,{get:()=>t[i],enumerable:!(r=ay(t,i))||r.enumerable});return e};var py=e=>cy(Us({},"__esModule",{value:!0}),e);var Kb={};uy(Kb,{KsqlFlowError:()=>we,createExecutionContext:()=>vb,createKintoneClient:()=>Zm,disposeExecutionContext:()=>kb,executeStatement:()=>Mb,explainScript:()=>_b,isDmlResult:()=>ey,parseScript:()=>Ob,previewStatement:()=>Db,validateScript:()=>Lb,version:()=>Pb});module.exports=py(Kb);var le={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 dy(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 Be(e,t,n){return{...n,...Qm(e,t)}}var ao=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),un=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),Ir=new Set([...un,...ao]),cn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",Pt="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function re(e){return ao.has(e)}function Fn(e){return un.has(e)}function at(e){return Ir.has(e)}function so(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=he(t.where);if(l.length===0||!tg(l,a)||o===null||!lp(o,l))return null;let c={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:eg(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},d={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:c};return Zm(d,e,l),d}function Zm(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(!lp(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function he(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&at(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function eg(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&at(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&at(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 tg(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function lp(e,t){let n=new Map;for(let r of t){if(!at(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 up="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 cp(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,c,d)=>{i.push({severity:l,code:c,message:d,line:1,column:1,statementIndex:o})};if(ng(a)){for(let l of pn(a))s(l.severity,l.code,l.message);if(n!==void 0&&a.keyFields.length===1){let l=await n(a.appId);for(let c of pn(a,l))s(c.severity,c.code,c.message)}}(a.type==="INSERT"||a.type==="UPDATE"||a.type==="DELETE")&&a.subtableCode&&s("error",le.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",le.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"),pp(a)&&s("warning",le.SERVER_TIME_FUNCTION_NOT_AS_OF,up)}return i}function pn(e,t){if(t===void 0)return e.keyFields.length===1?[]:[{code:le.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:le.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:le.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:le.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 pp(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"&&he(o).some(s=>s==="TODAY"||s==="NOW"||re(s))){t=!0;return}Object.values(i).forEach(n)};return n(e),t}function ng(e){return e.type==="UPSERT"||e.type==="UPSERT_SELECT"}var rg="A-Za-z",ig="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",Ds=`${rg}${ig}`,fp=`${Ds}0-9_`,og=new RegExp(`^[${Ds}]$`,"u"),ag=new RegExp(`^[${fp}]$`,"u"),sg=new RegExp(`^[${Ds}][${fp}]{0,63}$`,"u");function lg(e){return og.test(e)}function ug(e){return ag.test(e)}function Gn(e){let t=e.normalize("NFC").toUpperCase();if(!sg.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 _s(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 cg(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 pg(e,t){let n=t>0?e[t-1]:"";if(_s(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,!lg(e[l]??""))return null;for(l++;l<e.length&&ug(e[l]);)l++;s=l;try{o=Gn(e.slice(a,s))}catch{return null}}else if(e.slice(t,t+3).toUpperCase()==="APP"){for(r="physical",l=t+3,a=l;l<e.length&&/[0-9]/.test(e[l]);)l++;if(s=l,s===a)return null;i=Number(e.slice(a,s))}else return null;if(e[l]==="$"){l++;let f=l;for(;l<e.length&&_s(e[l]);)l++;if(l===f)return null}let c=l,d=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&cg(e[l]);)l++;if(l===f)return null;d=e.slice(f,l)}let u=l<e.length?e[l]:"";if(_s(u))return null;let p={profile:d,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:c,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function Kn(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=pg(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function dp(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function lo(e,t="dev",n){let r=Kn(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let g=a(m.profile),y=o.get(m.appId);y||(y=new Set,o.set(m.appId,y)),y.add(g.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let g=a(m.profile).toLowerCase(),y=`logical:${m.logicalName}@${g}`;if(l.has(y))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${g} requires logicalApps configuration.`);let T=n.resolveLogicalApp(m.logicalName,g);l.set(y,T),s.add(T)}let c=new Map,d=new Map;for(let[m,g]of o.entries()){let y=[...g].sort();if(!(y.length<=1))for(let T of y){let h=dp(s);c.set(`physical:${m}@${T}`,h),d.set(h,{source:"physical",mappedAppId:h,appId:m,profile:T})}}let u=[],p=[],f=0,R=0,E=(m,g,y,T)=>{if(!m&&g===y)return;let h=f;u.push(m),f+=m.length,p.push({normalizedStart:h,normalizedEnd:f,sourceStart:g,sourceEnd:y,...T===void 0?{}:{bindingMappedAppId:T}})};for(let m of r){let g=a(m.profile).toLowerCase(),y;if(m.source==="physical")y={source:"physical",mappedAppId:c.get(`physical:${m.appId}@${g}`)??m.appId,appId:m.appId,profile:g};else{let I=`logical:${m.logicalName}@${g}`,N=c.get(I);N===void 0&&(N=dp(s),c.set(I,N)),y={source:"logical",logicalName:m.logicalName,mappedAppId:N,appId:l.get(I),profile:g}}d.set(y.mappedAppId,y),E(e.slice(R,m.start),R,m.start);let T=e.slice(m.referenceValueEnd,m.appEnd),h=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${y.mappedAppId}${T}`:`APP${y.mappedAppId}${T}`;E(h,m.start,m.fullEnd,y.mappedAppId),R=m.fullEnd}return E(e.slice(R),R,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:d,rewriteSegments:p}}var uo=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 Ue=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"}},Ot=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($n(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(vs(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Ue(`\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 Ue("\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 Ue("\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&&$n(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&$n(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&$n(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||!$n(this.input[this.pos]))throw new Ue("\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&&$n(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&&Ep(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=uo.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(!vs(n))throw new Ue("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Ep(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Ue(`@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 Ue("\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 Ue("\u5909\u6570\u540D\u306F 64 \u6587\u5B57\u4EE5\u5185\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t,this.input);return this.makeToken("VARIABLE",this.input.slice(t,this.pos),t)}skipWhitespaceAndComments(){for(;this.pos<this.input.length;){let t=this.input[this.pos];if(t===" "||t===" "||t==="\r"||t===`
3
+ `?(r++,i=1):i++}return{line:r,column:i}}function Be(e,t,n){return{...n,...dy(e,t)}}var lo=new Set(["YESTERDAY","TOMORROW","FROM_TODAY","THIS_WEEK","LAST_WEEK","NEXT_WEEK","THIS_MONTH","LAST_MONTH","NEXT_MONTH","THIS_YEAR","LAST_YEAR","NEXT_YEAR"]),cn=new Set(["TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION"]),wr=new Set([...cn,...lo]),pn="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",Ot="WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN";function re(e){return lo.has(e)}function Kn(e){return cn.has(e)}function lt(e){return wr.has(e)}function uo(e){let{select:t,selectMode:n,capability:r,context:i,serializedWholeWhere:o,relativeFunctionNames:a}=e;if(t.where===null||t.from.appId<=0||t.from.cteName!==null||t.from.subtableCode||t.joins.length>0||!i.allowFullScanExact||t.orderMode==="KINTONE_NATIVE")return null;let s=t.orderMode==="CANONICAL"&&t.orderBy.length>0;if(n!=="FULL_SCAN"&&!s||r.capability!=="EXACT_PUSHDOWN")return null;let l=Ae(t.where);if(l.length===0||!Ry(l,a)||o===null||!Rp(o,l))return null;let c={prefilterWhere:t.where,residualWhere:null,exactRelativeLeaves:Ey(t.where),relativeFunctionNames:new Set(l),appliedKlikes:new Set,capability:r.capability,reasons:r.reasons},d={allowForm:"FULL_SCAN_EXACT",clientWhereEvaluation:!1,serializedWholeWhere:o,prefilterPlan:c};return fy(d,e,l),d}function fy(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(!Rp(e.serializedWholeWhere,n))throw new Error("FULL_SCAN_EXACT invariant: relative occurrence serialization")}function Ae(e){let t=[],n=r=>{if(Array.isArray(r)){r.forEach(n);return}if(r===null||typeof r!="object")return;let i=r;if(i.type!=="SELECT"){if(i.type==="KINTONE_FUNC"&&typeof i.name=="string"&&lt(i.name)){t.push(i.name);return}Object.values(i).forEach(n)}};return n(e),t}function Ey(e){let t=[],n=r=>{switch(r.type){case"BINARY":(r.right.type==="KINTONE_FUNC"&&lt(r.right.name)||r.right.type==="IN_LIST"&&r.right.values.length===1&&r.right.values[0].type==="KINTONE_FUNC"&&lt(r.right.values[0].name))&&t.push(r);return;case"LOGICAL":n(r.left),n(r.right);return;case"NOT":case"GROUP":n(r.expr);return;case"EXISTS":case"NULL_CHECK":case"BOOLEAN":return}};return n(e),t}function Ry(e,t){return e.length===t.length&&e.every((n,r)=>n===t[r])}function Rp(e,t){let n=new Map;for(let r of t){if(!lt(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 mp="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 yp(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,c,d)=>{i.push({severity:l,code:c,message:d,line:1,column:1,statementIndex:o})};if(my(a)){for(let l of dn(a))s(l.severity,l.code,l.message);if(n!==void 0&&a.keyFields.length===1){let l=await n(a.appId);for(let c of dn(a,l))s(c.severity,c.code,c.message)}}(a.type==="INSERT"||a.type==="UPDATE"||a.type==="DELETE")&&a.subtableCode&&s("error",le.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",le.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"),gp(a)&&s("warning",le.SERVER_TIME_FUNCTION_NOT_AS_OF,mp)}return i}function dn(e,t){if(t===void 0)return e.keyFields.length===1?[]:[{code:le.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:le.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:le.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:le.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 gp(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"&&Ae(o).some(s=>s==="TODAY"||s==="NOW"||re(s))){t=!0;return}Object.values(i).forEach(n)};return n(e),t}function my(e){return e.type==="UPSERT"||e.type==="UPSERT_SELECT"}var yy="A-Za-z",gy="\\u3040-\\u30FF\\u3400-\\u9FFF\\uF900-\\uFAFF\\uFF01-\\uFF60",xs=`${yy}${gy}`,Ap=`${xs}0-9_`,hy=new RegExp(`^[${xs}]$`,"u"),Ay=new RegExp(`^[${Ap}]$`,"u"),Sy=new RegExp(`^[${xs}][${Ap}]{0,63}$`,"u");function Ty(e){return hy.test(e)}function Iy(e){return Ay.test(e)}function Gn(e){let t=e.normalize("NFC").toUpperCase();if(!Sy.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 Ms(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 wy(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 by(e,t){let n=t>0?e[t-1]:"";if(Ms(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,!Ty(e[l]??""))return null;for(l++;l<e.length&&Iy(e[l]);)l++;s=l;try{o=Gn(e.slice(a,s))}catch{return null}}else if(e.slice(t,t+3).toUpperCase()==="APP"){for(r="physical",l=t+3,a=l;l<e.length&&/[0-9]/.test(e[l]);)l++;if(s=l,s===a)return null;i=Number(e.slice(a,s))}else return null;if(e[l]==="$"){l++;let f=l;for(;l<e.length&&Ms(e[l]);)l++;if(l===f)return null}let c=l,d=null;if(e[l]==="@"){l++;let f=l;for(;l<e.length&&wy(e[l]);)l++;if(l===f)return null;d=e.slice(f,l)}let u=l<e.length?e[l]:"";if(Ms(u))return null;let p={profile:d,start:t,referenceValueStart:a,referenceValueEnd:s,appEnd:c,fullEnd:l};return r==="physical"?{...p,source:r,appId:i}:{...p,source:r,logicalName:o}}function $n(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=by(e,n);if(!i){n++;continue}t.push(i),n=i.fullEnd}return t}function hp(e){let t=9e8;for(;e.has(t);)t++;return e.add(t),t}function co(e,t="dev",n){let r=$n(e),i=r.some(m=>m.profile!==null),o=new Map,a=m=>m??t;for(let m of r){if(m.source!=="physical")continue;let y=a(m.profile),g=o.get(m.appId);g||(g=new Set,o.set(m.appId,g)),g.add(y.toLowerCase())}let s=new Set(r.filter(m=>m.source==="physical").map(m=>m.appId)),l=new Map;for(let m of r){if(m.source!=="logical")continue;let y=a(m.profile).toLowerCase(),g=`logical:${m.logicalName}@${y}`;if(l.has(g))continue;if(!n)throw new Error(`ArgumentError: logical app LAPP_${m.logicalName}@${y} requires logicalApps configuration.`);let T=n.resolveLogicalApp(m.logicalName,y);l.set(g,T),s.add(T)}let c=new Map,d=new Map;for(let[m,y]of o.entries()){let g=[...y].sort();if(!(g.length<=1))for(let T of g){let h=hp(s);c.set(`physical:${m}@${T}`,h),d.set(h,{source:"physical",mappedAppId:h,appId:m,profile:T})}}let u=[],p=[],f=0,R=0,E=(m,y,g,T)=>{if(!m&&y===g)return;let h=f;u.push(m),f+=m.length,p.push({normalizedStart:h,normalizedEnd:f,sourceStart:y,sourceEnd:g,...T===void 0?{}:{bindingMappedAppId:T}})};for(let m of r){let y=a(m.profile).toLowerCase(),g;if(m.source==="physical")g={source:"physical",mappedAppId:c.get(`physical:${m.appId}@${y}`)??m.appId,appId:m.appId,profile:y};else{let I=`logical:${m.logicalName}@${y}`,N=c.get(I);N===void 0&&(N=hp(s),c.set(I,N)),g={source:"logical",logicalName:m.logicalName,mappedAppId:N,appId:l.get(I),profile:y}}d.set(g.mappedAppId,g),E(e.slice(R,m.start),R,m.start);let T=e.slice(m.referenceValueEnd,m.appEnd),h=m.source==="physical"?`${e.slice(m.start,m.referenceValueStart)}${g.mappedAppId}${T}`:`APP${g.mappedAppId}${T}`;E(h,m.start,m.fullEnd,g.mappedAppId),R=m.fullEnd}return E(e.slice(R),R,e.length),{normalizedSql:u.join(""),hasProfileSyntax:i,appBindingByMappedApp:d,rewriteSegments:p}}var po=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 Ue=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"}},Lt=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(Bn(n))return this.readNumber(t);let r=this.tryReadOperator(t);if(r)return r;if(ks(n))return this.readIdentOrKeyword(t);if(n==="#")return this.readHashIdent(t);if(n==="@")return this.readVariable(t);throw new Ue(`\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 Ue("\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 Ue("\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&&Bn(this.input[this.pos]);)this.pos++;if(this.pos<this.input.length&&this.input[this.pos]==="."&&this.pos+1<this.input.length&&Bn(this.input[this.pos+1]))for(this.pos++;this.pos<this.input.length&&Bn(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||!Bn(this.input[this.pos]))throw new Ue("\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&&Bn(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&&Sp(this.input[this.pos]);)this.pos++;let n=this.input.slice(t,this.pos),r=n.toUpperCase(),i=po.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(!ks(n))throw new Ue("\u300C#\u300D \u306E\u76F4\u5F8C\u306B\u306F\u8B58\u5225\u5B50\u304C\u5FC5\u8981\u3067\u3059",t,this.input);for(;this.pos<this.input.length&&Sp(this.input[this.pos]);)this.pos++;let r=this.input.slice(t,this.pos);if(this.input[this.pos]==="@")throw new Ue(`@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 Ue("\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 Ue("\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 Ue("\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 vs(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||dg(t)}function Ep(e){let t=e.codePointAt(0);return vs(e)||t>=48&&t<=57}function $n(e){let t=e.codePointAt(0);return t>=48&&t<=57}function dg(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var fg=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Eg(e,t){if(t===void 0)return 0;let n=0;for(let r of t)if(n=n*10+(r.charCodeAt(0)-48),!Number.isSafeInteger(n))return null;return e==="-"?-n:n}function we(e){let t=fg.exec(e.trim());if(t===null)return null;let n=Eg(t[5],t[6]);if(n===null)return null;let r=t[3]??t[4]??"",i=`${t[2]??""}${r}`.replace(/^0+/,"");if(i==="")return{sign:0,coefficient:"0",scale:0};let o=r.length-n;if(!Number.isSafeInteger(o))return null;let a=/0+$/.exec(i)?.[0].length??0;return a>0&&(i=i.slice(0,-a),o-=a,!Number.isSafeInteger(o))||!Number.isSafeInteger(i.length-o)?null:{sign:t[1]==="-"?-1:1,coefficient:i,scale:o}}function Ms(e){if(e.sign===0)return"0";let t=e.coefficient,n;if(e.scale<=0)n=`${t}${"0".repeat(-e.scale)}`;else if(t.length>e.scale){let r=t.length-e.scale;n=`${t.slice(0,r)}.${t.slice(r)}`}else n=`0.${"0".repeat(e.scale-t.length)}${t}`;return e.sign===-1?`-${n}`:n}function Rp(e){let t=we(e);return t===null?null:Ms(t)}function Rg(e,t){let n=e.coefficient.length-e.scale,r=t.coefficient.length-t.scale;if(!Number.isSafeInteger(n)||!Number.isSafeInteger(r))throw new Error("ArgumentError: exact decimal scale is outside the supported range.");if(n!==r)return n<r?-1:1;let i=Math.max(e.coefficient.length,t.coefficient.length);for(let o=0;o<i;o++){let a=o<e.coefficient.length?e.coefficient.charCodeAt(o):48,s=o<t.coefficient.length?t.coefficient.charCodeAt(o):48;if(a!==s)return a<s?-1:1}return 0}function co(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Rg(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function po(e,t){let n=we(e),r=we(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return co(n,r)}var Me="__NO_FROM__";function xs(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function fo(e){return e.windowKind==="AGGREGATE"}function ks(e){return e.windowKind==="VALUE"}function be(e){return{type:"NUMBER",value:Number(e),raw:e}}function z(e){let t=e.raw??String(e.value);return Rp(t)??t}function mp(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function mg(e){return`${e.tableAlias??""}\0${e.field}`}function ee(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=mg(o);t.has(a)||(t.add(a),n.push(o))}let r=e.grouping.sets.map(i=>({items:[...i.items]}));return{type:"GROUPING_SETS",source:e.grouping.source,allItems:n,sets:r}}function gp(e){return ee(e).type!=="NONE"}function yp(e,t){let n=ee(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),c=r.get(l.canonicalId);if(c)return c;let d={...l,field:s};return r.set(d.canonicalId,d),d},o=n.allItems.map(i).filter((s,l,c)=>c.findIndex(d=>d.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}var Ro=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],Ks="\0as-of:";function wr(e){return`${Ks}${e}`}function Bn(e){if(!e.startsWith(Ks))return null;let t=e.slice(Ks.length);return br(t)?t:null}function br(e){return Ro.includes(e)}function $s(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=Fs(r,"year"),o=Fs(r,"month"),a=Fs(r,"day"),s=`${Gs(i)}-${Eo(o)}-${Eo(a)}`,l=`${Gs(i)}-${Eo(o)}-01`,c=o===12?i+1:i,d=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${Gs(c)}-${Eo(d)}-01`}}}function Fs(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 Eo(e){return String(e).padStart(2,"0")}function Gs(e){return String(e).padStart(4,"0")}function mo(e){return`'${e.replace(/'/g,"''")}'`}function Vn(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return z(e);if(e.type==="STRING_FUNC")return Vs(e);let n=`${Vn(e.left)}${e.op}${Vn(e.right)}`;return t?n:`(${n})`}function hp(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return Vs(e.expr);if(e.type==="AGG_FIELD")return mt(e.expr);if(e.type==="ARITH_FIELD")return Vn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Bs(e.expr)}function Sp(e){switch(e.type){case"STRING":return mo(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>mo(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Sp).join(",")})`;case"ARITH_VALUE":return Vn(e.expr);case"CASE_VALUE":return Bs(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Nr(e){switch(e.type){case"BINARY":return`${hp(e.left)} ${e.op.replace("_"," ")} ${Sp(e.right)}`;case"NULL_CHECK":return`${hp(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Nr(e.left)} ${e.op} ${Nr(e.right)})`;case"NOT":return`NOT (${Nr(e.expr)})`;case"GROUP":return`(${Nr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Ap(e){return e.type==="ARRAY"?`[${e.elements.map(t=>mo(t.value)).join(",")}]`:e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?mt(e):e.type==="FIELD_REF"||e.type==="ARITH"?Vn(e):dn(e)}function Bs(e){let t=e.branches.map(r=>`WHEN ${Nr(r.condition)} THEN ${Ap(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Ap(e.elseResult)}`;return`CASE ${t}${n} END`}function gg(e){return e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?mt(e):dn(e)}function Vs(e){return`${e.func}(${e.args.map(gg).join(",")})`}function dn(e){switch(e.type){case"STRING":return mo(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return Vs(e);case"CASE_WHEN":return Bs(e);case"SCALAR_ARITH":return`(${dn(e.left)}${e.op}${dn(e.right)})`;case"CONCAT_OP":return`(${dn(e.left)}||${dn(e.right)})`}}function yg(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Vn(e,!0):dn(e)}function pe(e,t,n){let r=yg(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function mt(e){return e.type==="NUMBER"?z(e):e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${mt(e.left)}${e.op}${mt(e.right)}`}var Tp=20,Hs=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"}),wp=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Cr=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"}),zb=Object.freeze(Object.values(Cr).filter(e=>e!==void 0)),hg=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Ag=new Set(hg);function Sg(e){return Ag.has(e)}var bp=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Pr=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function Ip(e){return Pr[e]!==void 0}var Tg=Object.freeze([...ao]),Ig=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),wg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function bg(e){return Ig.has(e)}function Ng(e){return wg.has(e)}function Cg(e){return Number.isInteger(e)&&e>=1&&e<=31}var qb=Object.freeze(Array.from(new Set([...Object.keys(Hs),...wp,...Object.keys(Cr),...Object.keys(bp),...Object.keys(Pr),...Tg,"IF"]))),Pg=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 Og(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!Pg.has(e.kind):!0}var S=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.rawMessage=n;this.token=r;this.name="ParseError"}},Ws=["\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
- `),jt=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(!br(o))throw new S(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${Ro.map(a=>`@${a}`).join("/")} \u3067\u3059`,i)}}parse(){let t=this.parseStatements();if(t.length===0)throw new S("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new S("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new S(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){return this.parseStatementsWithRanges().statements}parseStatementsWithRanges(){let t=[],n=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let r=this.peek();if(t.push(this.parseStatement()),t.length>Tp)throw new S(`batch exceeds ${Tp} statements.`,r);let i=this.peek();if(i.kind!==";"&&i.kind!=="EOF")throw new S("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",i);let o=this.prev();n.push({start:r.pos,end:o.end??i.pos})}return this.expect("EOF"),{statements:t,statementRanges:n}}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="EXIT")return this.parseExit();if(n==="MERGE"){if(!this.capabilities.dialect1)throw new S("MERGE \u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t);return this.parseMergeAsUpsert()}if(n==="GENERATE_SERIES")throw new S("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);if(n==="IMPORT"){if(!this.capabilities.import)throw new S("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new S("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT / EXIT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new S("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:r}}parseRelativeDateVariableToken(){let t=this.peek(),n=Pr[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&re(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new S("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE"){if(this.peekAt(1).kind==="("&&this.capabilities.dialect1)return this.advance(),this.finishVariableReference(r);throw new S(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r)}if(r.kind==="NULL")throw new S(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new S("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new S("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Pr[r.kind];if(i==="LOGINUSER")throw new S(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i==="PRIMARY_ORGANIZATION")throw new S(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new S(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new S(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new S(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek(),i;if(r.kind==="WITH")i=this.parseWith();else if(r.kind==="SELECT")i=this.tryParseUnionChain(this.parseSelect());else throw new S("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",r);return t!==null&&this.bareTempTableNames.add(t),{type:"CREATE_TEMP_TABLE",name:n,query:i}}parseDropTempTable(){this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();return t!==null&&this.bareTempTableNames.delete(t),{type:"DROP_TEMP_TABLE",name:n}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new S(n,r)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;if(this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT"))return this.advance(),`#${t.value}`;throw new S("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}isDialect1BareTempTableName(){let t=this.peek();return this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT")&&!t.value.startsWith("#")?t.value:null}parseShow(){if(this.advance(),!this.consume("APPS"))throw new S("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=gt(t,this.prev());if(r)throw new S("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new S("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new S("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new S("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=gt(n,this.prev());if(i)throw new S("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let N=this.parseIdentifier();if(s.has(N))throw new S(`IMPORT target ${N} is declared more than once.`,this.prev());if(s.add(N),this.peek().kind==="("){this.advance();let D=this.parseIdentList();if(this.expect(")"),new Set(D).size!==D.length)throw new S(`IMPORT subtable ${N} contains duplicate child declarations.`,this.prev());let P;if(this.isSoftKeyword("ROW")){this.advance();for(let M of["ID","SOURCE"]){if(!this.isSoftKeyword(M))throw new S("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}P=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:N,children:D,...P?{rowIdSourceHeader:P}:{}})}else a.push(N),o.push({kind:"FIELD",field:N});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new S("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let c=this.parseIdentifier(),d,u=!0,p;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new S("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let N=this.parseIdentifier().toUpperCase();if(N!=="UTF8"&&N!=="SJIS")throw new S("ENCODING must be UTF8 or SJIS.",this.prev());d=N==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new S("COLUMNS is CSV-only.",this.peek());if(u)throw new S("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),p=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new S("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Me||f.joins.length>0)throw new S("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new S("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(N=>N.kind==="SUBTABLE"))throw new S("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new S(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let R="POSITION",E=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new S("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new S("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!u)throw new S("BY NAME requires HEADER.",this.prev());if(f)throw new S("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(R="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new S("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new S("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),E=!0}}let m,g;if(this.isSoftKeyword("MATCH")){this.advance();for(let N of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(N))throw new S("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}g=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let y;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new S("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),y=this.parseIdentList(),this.expect(")"),new Set(y).size!==y.length)throw new S("REPLACE SUBTABLES contains duplicates.",this.prev())}let T=o.filter(N=>N.kind==="SUBTABLE");if(T.length){if(f)throw new S("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(T.some(N=>N.rowIdSourceHeader))throw new S("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(y)throw new S("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!g)throw new S("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(R!=="BY_NAME")throw new S("CSV subtable IMPORT requires BY NAME.",this.prev());if(!y)throw new S("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let N=new Set(y);for(let D of T){if(!D.rowIdSourceHeader)throw new S(`CSV subtable ${D.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!N.has(D.subtableCode))throw new S(`IMPORT declares child columns for non-replaced subtable ${D.subtableCode}.`,this.prev())}for(let D of N)if(!T.some(P=>P.subtableCode===D))throw new S(`REPLACE SUBTABLES target ${D} is not declared in INTO.`,this.prev())}}else if(y)throw new S("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new S("IMPORT UPDATE supports CSV only.",this.prev());if(R!=="BY_NAME")throw new S("IMPORT UPDATE requires BY NAME.",this.prev());if(!g)throw new S("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new S("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(g)throw new S("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let h=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:c}:{kind:"CSV",sourceName:c,encoding:d,hasHeader:u,mappingMode:R,ignoreUnknownColumns:E,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:g}:{},...y?{replaceSubtables:y}:{},...m?{keyFields:m}:{},...h,...I}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new S("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new S("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=gt(n,this.prev());if(i)throw new S(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let u=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:p})}else o.push({kind:"FIELD",field:u})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),c;if(this.consume("INTO")){let u=this.peek();if(u.kind!=="IDENT"||!u.value.startsWith("#"))throw new S("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",u);c=this.parseTableName()}let d={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...c?{errorTable:c}:{}};return this.assertValidateExpressions(d,t),d}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new S("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new S("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new S("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.peek(),n=this.isSoftKeyword("WARN");n&&(this.requireDialect1(t),this.advance());let r=this.parseAssertCondition(),i=this.parseFlowMessage();return{type:"ASSERT",...r,...n?{warn:!0}:{},...i!==void 0?{message:i}:{}}}parseExit(){let t=this.advance();if(this.requireDialect1(t),!this.isSoftKeyword("SUCCESS"))throw new S("EXIT \u306E\u5F8C\u306B\u306F SUCCESS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.peek().kind!=="IF"&&!this.isSoftKeyword("IF"))throw new S("EXIT SUCCESS \u306E\u5F8C\u306B\u306F IF \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=this.parseAssertCondition();if(!this.consume(","))throw new S("EXIT SUCCESS IF \u306B\u306F\u672B\u5C3E\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u6587\u5B57\u5217\u304C\u5FC5\u8981\u3067\u3059",this.peek());let r=this.expect("STRING","EXIT SUCCESS IF \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return{type:"EXIT",...n,message:r.value}}parseAssertCondition(){let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new S("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseFlowMessage(){if(this.consume(","))return this.requireDialect1(this.prev()),this.expect("STRING","ASSERT \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}requireDialect1(t){if(!this.capabilities.dialect1)throw new S("\u3053\u306E\u69CB\u6587\u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t)}finishVariableReference(t){let n={type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(this.peek().kind!=="("||!this.capabilities.dialect1)return n;let r=t.value.slice(1).toUpperCase();if(!br(r))throw new S(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${Ro.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:wr(r)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new S("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new S("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new S("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new S(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new S("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new S("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&Og(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:Me},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],c,d=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new S("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?c=this.parseGroupingSetsClause():this.isRollupStart()?c=this.parseRollupClause():this.isCubeStart()?c=this.parseCubeClause():l=this.parseGroupByKeys(),c&&this.peek().kind===",")throw new S("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(d=this.parseWhereExpr("HAVING"))}let u="CANONICAL",p=[];if(this.consume("ORDER"))this.expect("BY"),p=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new S("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());u="KINTONE_NATIVE",this.expect("BY"),p=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,R=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(g=>g.type==="WINDOW_COL"),m=r.some(g=>this.selectColumnHasAggregate(g));if(E&&(l.length>0||c!==void 0||m))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(c&&u==="KINTONE_NATIVE")throw new S("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,d,l,c),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...c?{grouping:c}:{},having:d,orderMode:u,orderBy:p,limit:f,offset:R}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,c=this.peek().kind;if(c==="SHOW")s=this.parseShow();else if(c==="DESCRIBE"||c==="DESC")s=this.parseDescribe();else if(c==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES")s=this.parseGenerateSeries();else if(t){let p=this.parseRecursiveCteCandidate(o);s=p.query,l=p.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let d=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(d&&!l)throw new S("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:d},this.validateRecursiveCte(o,a,l),r++,r>1))throw new S("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let u={name:o,query:s};a&&(u.columnAliases=a),l&&(u.recursiveSpec=l),n.push(u),this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.add(o)}while(this.consume(","));let i=this.tryParseUnionChain(this.parseSelect());return t?{type:"WITH",ctes:n,query:i,recursive:!0}:{type:"WITH",ctes:n,query:i}}finally{this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.clear()}}parseOptionalCteColumnAliases(){if(!this.consume("("))return;let t=[];if(this.peek().kind===")")throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u306F1\u500B\u4EE5\u4E0A\u306E\u5217\u540D\u304C\u5FC5\u8981\u3067\u3059",this.peek());do t.push(this.parseIdentifier());while(this.consume(","));if(this.expect(")"),new Set(t).size!==t.length)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u540C\u3058\u5217\u540D\u3092\u91CD\u8907\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());return t}parseRecursiveCteCandidate(t){let n=this.parseSelect();if(this.peek().kind!=="UNION")return{query:n};this.advance();let r=this.consume("ALL");this.activeCteDefinition={name:t,recursiveWith:!0,phase:"RECURSIVE_TERM"},this.provisionalRecursiveCte={name:t,references:0};let i=this.parseSelect(),o=this.provisionalRecursiveCte.references;this.provisionalRecursiveCte=null;let a={type:"UNION",all:r,left:n,right:i};if(a=this.tryParseUnionChain(a),this.activeCteDefinition={name:t,recursiveWith:!0,phase:"SEED"},o===0)return{query:a};if(!r||a.type!=="UNION"||a.left!==n||a.right!==i)throw new S("\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(o!==1)throw new S("\u518D\u5E30\u9805\u304B\u3089\u306E\u81EA\u5DF1\u53C2\u7167\u306F\u3061\u3087\u3046\u30691\u56DE\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());return{query:a,recursiveSpec:{seed:n,recursiveTerm:i,unionAll:!0,cycle:null}}}parseRecursiveCycleClause(){this.advance();let t=this.parseIdentifier();this.expect("SET","CYCLE \u306E\u5217\u540D\u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentifier();if(!this.isSoftKeyword("TO"))throw new S("CYCLE \u306E mark \u5217\u306E\u5F8C\u306B\u306F TO \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=this.expect("STRING","CYCLE TO \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(!this.isSoftKeyword("DEFAULT"))throw new S("CYCLE TO \u306E\u5024\u306E\u5F8C\u306B\u306F DEFAULT \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let i=this.expect("STRING","CYCLE DEFAULT \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(r.value===i.value)throw new S("CYCLE \u306E TO \u3068 DEFAULT \u306B\u306F\u7570\u306A\u308B\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);return{column:t,markColumn:n,markValue:r.value,defaultValue:i.value,exposePath:!1}}validateRecursiveCte(t,n,r){let i=this.prev(),o=r.seed,a=r.recursiveTerm,{groupBy:s}=a;if(o.columns.length!==a.columns.length)throw new S("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(n&&n.length!==o.columns.length)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u3068 SELECT \u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(o.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD")||a.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD"))throw new S("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new S("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new S("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(d=>d===t).length!==1)throw new S("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new S("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let c=n??o.columns.map(d=>this.selectColumnOutputName(d));if(r.cycle){if(c.filter(u=>u===r.cycle.column).length!==1)throw new S("CYCLE \u5217\u306F\u518D\u5E30 CTE \u306E\u51FA\u529B\u52171\u500B\u3078\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",i);if(c.includes(r.cycle.markColumn))throw new S("CYCLE \u306E mark \u5217\u306F\u518D\u5E30 CTE \u306E\u65E2\u5B58\u51FA\u529B\u5217\u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093",i)}}containsRecursiveForbiddenNode(t){if(Array.isArray(t))return t.some(r=>this.containsRecursiveForbiddenNode(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="AGGREGATE"||n.type==="AGG_REF"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"||n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SUBQUERY_IN_LIST"||n.type==="EXISTS"?!0:Object.values(n).some(r=>this.containsRecursiveForbiddenNode(r))}selectColumnOutputName(t){return"alias"in t&&typeof t.alias=="string"?t.alias:t.type==="FIELD"?t.field:null}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new S("GENERATE_SERIES \u304C\u5FC5\u8981\u3067\u3059",t);this.expect("(");let n=[];if(this.peek().kind!==")")do{let i=this.peek();if(i.kind==="STRING"){this.advance(),n.push({type:"STRING",value:i.value});continue}if(i.kind==="VARIABLE"){this.advance(),n.push(this.finishVariableReference(i));continue}let o="";(i.kind==="+"||i.kind==="-")&&(o=i.kind==="-"?"-":"+",this.advance());let a=this.peek();if(a.kind!=="NUMBER")throw new S("GENERATE_SERIES \u306E\u5F15\u6570\u306B\u306F\u6570\u5024\u3001\u6587\u5B57\u5217\u3001\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",a);this.advance(),n.push(be(`${o}${a.value}`))}while(this.consume(","));this.expect(")");let r=this.consume("AS")?this.parseIdentifier():"generate_series";return{type:"GENERATE_SERIES",args:n,columnAlias:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new S("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new S(Ws,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.finishVariableReference(this.advance()),s=Bn(a.name),l=null;if(s===null){if(!this.consume("AS"))throw new S("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());l=this.parseAliasName()}else this.consume("AS")&&(l=this.parseAliasName());return this.withAliasDisplay({type:"VARIABLE_COL",name:a.name,alias:l?.alias??null},l)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s)}let r=this.tryAggregateFunc();if(r!==null){let a=this.parseAggregateRef(r);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_parent.*")throw new S("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let a={type:"FIELD_REF",field:i},s=this.parseSelectArith(()=>this.continueArith(a)),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let o=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:i,alias:o?.alias??null},o)}tryWindowFunc(){return bp[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(Cr[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}if(this.tryValueWindowFunc(n)!==null)return!0;r.kind==="("?t++:r.kind===")"&&t--}return!1}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new S(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseValueWindowColumn(t){this.advance(),this.expect("(");let n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}),r=1;if(this.consume(",")){let s=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(r=Number(s.value),!Number.isSafeInteger(r)||r<0)throw new S(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,s)}this.expect(")",`${t} \u306F expr \u3068\u7701\u7565\u53EF\u80FD\u306A offset \u306E 2 \u5F15\u6570\u307E\u3067\u3067\u3059`),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();i.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}if(!this.consume("ORDER"))throw new S(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let o=this.parseOrderBy(!1);if(this.expect(")"),this.isArithOp(this.peek().kind)||this.peek().kind==="||")throw new S(Ws,this.peek());if(!this.consume("AS"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:n,offset:r,partitionBy:i,orderBy:o,alias:a.alias},a)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new S(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new S("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new S("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S(Ws,this.peek());if(!this.consume("AS"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?be(`-${z(n)}`):{type:"AGG_ARITH",left:be("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return be(n.value)}if(this.peek().kind==="VARIABLE"){let n=this.advance();return this.finishVariableReference(n)}let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new S("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),Cr[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=d=>{if(Array.isArray(d)){d.forEach(a);return}if(d===null||typeof d!="object")return;let u=d;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(d);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new S("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let c=new Set(r.filter(d=>d.type==="FIELD_NAME").map(d=>d.name));for(let d of o){let u=this.aggregateGroupKeyDisplay(d);if(!c.has(u))throw new S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(d)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new S("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new S("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new S("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return be(`${n.kind==="-"?"-":"+"}${z(r)}`);if(n.kind==="+")throw new S("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:be("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),be(n.value);if(n.kind==="VARIABLE")return this.advance(),this.finishVariableReference(n);if(n.kind==="CASE"){if(!t)throw new S("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new S(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new S("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return be(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new S("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?be(`-${z(n)}`):{type:"ARITH",left:be("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),be(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new S("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult(t);this.expect(",");let i=this.parseCaseResult(t);return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult(t);n.push({condition:i,result:o})}if(n.length===0)throw new S("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=Hs[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=Hs[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(wp.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new S(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof S))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new S(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new S("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=Lg(n);if(r===null)throw new S(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return Cr[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new S("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!Sg(t))throw new S(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new S("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof S){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new S("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek();if(t.kind==="IDENT"&&t.value.toUpperCase()==="GENERATE_SERIES"&&this.peekAt(1).kind==="(")throw new S("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let n=this.parseTableName();if(this.capabilities.dialect1&&this.bareTempTableNames.has(n)){let s=`#${n}`;return this.tempTableRefs.push({...this.prev(),value:s}),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:s}}if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new S(s,t)}let{appId:r,subtableCode:i}=gt(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new S("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"||t==="IDENT"&&this.peek().value.toUpperCase()==="KEY"&&this.peekAt(1).kind==="("?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();if(n==="CROSS"){if(this.peek().kind==="ON")throw new S("CROSS JOIN \u306B ON \u53E5\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());t.push({type:"CROSS",table:r,on:null});continue}this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){if(this.consume("INNER")){if(this.peek().kind==="CROSS")throw new S("CROSS JOIN \u306B INNER \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"INNER"}if(this.consume("LEFT")){if(this.peek().kind==="CROSS")throw new S("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"LEFT"}if(this.consume("RIGHT")){if(this.peek().kind==="CROSS")throw new S("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"RIGHT"}return this.consume("CROSS")?(this.expect("JOIN"),"CROSS"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new S("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new S("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue(n!=="LIKE");return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new S("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);throw new S("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.isUnsupportedGroupingIdStart())throw new S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new S("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:pe(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 be(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&re(n.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new S("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new S("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new S("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!bg(l))throw new S("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let c=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:c,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!Ng(o))throw new S(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!Cg(o))throw new S(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new S(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new S(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(Ip(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Pr[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new S("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}let t=this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");return this.peek().kind==="("&&this.capabilities.dialect1?{type:"IN_LIST",values:[this.finishVariableReference(t)]}:{type:"VARIABLE_IN_LIST",name:t.value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(be(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new S(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(be(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push(this.finishVariableReference(i));else if(i.kind==="LOGINUSER"){if(t.length>0)throw new S(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new S(r,this.peek())}else if(i.kind==="PRIMARY_ORGANIZATION"){let o="PRIMARY_ORGANIZATION() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";if(t.length>0)throw new S(o,i);if(this.expect("(","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"PRIMARY_ORGANIZATION"}),this.peek().kind===",")throw new S(o,this.peek())}else throw new S(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new S("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new S("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new S("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new S("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new S("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new S("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=mp(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new S("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new S("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}if(this.isUnsupportedGroupingIdStart())throw new S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new S("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=gt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let d=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new S("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new S("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:d,...u,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let d=this.parseInsertRow(i.length,!0);this.expect(")"),o.push(d)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new S("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new S("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new S("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...c,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...c,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=gt(t,this.prev());if(r)throw new S("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect(),p=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),R=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:u,keyFields:p,...f,...R}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length,!1)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new S("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...c,...d}}parseOnDuplicate(){if(this.capabilities.dialect1&&this.consumeSoftKeyword("KEY")){this.expect("(","KEY \u306E\u5F8C\u306B\u306F (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentList();if(this.expect(")"),n.length===0)throw new S("KEY \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return n}if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new S("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new S("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}parseMergeAsUpsert(){let t=this.advance();this.expect("INTO","MERGE \u306E\u5F8C\u306B\u306F INTO \u304C\u5FC5\u8981\u3067\u3059"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=gt(n,this.prev());if(i)throw new S("MERGE \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("AS","MERGE \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseTableAliasName();this.expectSoftKeyword("USING","MERGE \u306B\u306F USING <source> AS alias \u304C\u5FC5\u8981\u3067\u3059");let a=this.pos,s=this.parseTableRef();if(!this.tokens.slice(a,this.pos).some(I=>I.kind==="AS")||s.alias===null)throw new S("MERGE \u306E USING \u30BD\u30FC\u30B9\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let c=s.alias;this.expect("ON","MERGE \u306B\u306F ON t.key = s.key \u306E\u5358\u4E00\u30AD\u30FC\u7B49\u5024\u304C\u5FC5\u8981\u3067\u3059");let d=this.parseMergeQualifiedField("MERGE \u306E ON \u5DE6\u8FBA\u306F targetAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(!this.consume("="))throw new S("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\uFF08t.key = s.key\uFF09\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u3084\u975E\u7B49\u5024\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let u=this.parseMergeQualifiedField("MERGE \u306E ON \u53F3\u8FBA\u306F sourceAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(d.alias.toLowerCase()!==o.toLowerCase()||u.alias.toLowerCase()!==c.toLowerCase())throw new S(`MERGE \u306E ON \u306F ${o}.key = ${c}.key \u306E\u5225\u540D\u4FEE\u98FE\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);if(this.peek().kind==="AND"||this.peek().kind==="OR")throw new S("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let p=null,f=null,R=null;for(;this.peek().kind==="WHEN";){let I=this.advance();if(this.consume("NOT")){if(this.expectSoftKeyword("MATCHED","WHEN NOT \u306E\u5F8C\u306B\u306F MATCHED \u304C\u5FC5\u8981\u3067\u3059"),f!==null)throw new S("WHEN NOT MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);if(this.expect("THEN","WHEN NOT MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("INSERT","WHEN NOT MATCHED THEN \u306E\u5F8C\u306B\u306F INSERT \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT \u306B\u306F\u5217\u30EA\u30B9\u30C8\u304C\u5FC5\u8981\u3067\u3059"),f=this.parseIdentList(),this.expect(")"),this.expect("VALUES","MERGE INSERT \u306E\u5217\u30EA\u30B9\u30C8\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT VALUES \u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),R=this.parseMergeValueList(),this.expect(")"),f.length!==R.length)throw new S("MERGE INSERT \u306E\u5217\u6570\u3068 VALUES \u306E\u5024\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",I)}else{if(this.expectSoftKeyword("MATCHED","WHEN \u306E\u5F8C\u306B\u306F MATCHED \u307E\u305F\u306F NOT MATCHED \u304C\u5FC5\u8981\u3067\u3059"),p!==null)throw new S("WHEN MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);this.expect("THEN","WHEN MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("UPDATE","WHEN MATCHED THEN \u306E\u5F8C\u306B\u306F UPDATE \u304C\u5FC5\u8981\u3067\u3059"),this.expect("SET","WHEN MATCHED THEN UPDATE \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059"),p=this.parseMergeAssignments(o)}}if(p===null||f===null||R===null)throw new S("WHEN MATCHED / WHEN NOT MATCHED \u306E\u4E21\u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u66F4\u65B0\u306E\u307F\u306F UPDATE ... FROM\u3001\u633F\u5165\u306E\u307F\u306F INSERT ... SELECT \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(!f.some(I=>I.toLowerCase()===d.field.toLowerCase()))throw new S(`MERGE \u306E ON \u30AD\u30FC ${d.field} \u306F INSERT \u5217\u30EA\u30B9\u30C8\u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044`,t);let E=new Map;f.forEach((I,N)=>E.set(I.toLowerCase(),R[N]));for(let I of p){let N=I.field.toLowerCase(),D=E.get(N);if(D!==void 0&&!this.mergeExpressionsEqual(D,I.value,c))throw new S(`MERGE \u306E\u5217 ${I.field} \u306F\u4E21\u53E5\u306E\u5F0F\u304C\u4E00\u81F4\u3059\u308B\u5834\u5408\u306E\u307F MERGE \u3092 UPSERT \u3078\u6B63\u898F\u5316\u3067\u304D\u307E\u3059`,t);D===void 0&&(f.push(I.field),R.push(I.value),E.set(N,I.value))}let m=R.map(I=>this.mergeValueToSelectColumn(I,c,t)),g=s.cteName!==null?{...s,alias:null}:{...s,alias:`APP${s.appId}${s.subtableCode?`$${s.subtableCode}`:""}`},y={type:"SELECT",distinct:!1,columns:m,from:g,joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null},T=this.parseCheckGroups(),h=this.parseDmlControlSuffix();return{type:"UPSERT_SELECT",appId:r,fields:f,select:y,keyFields:[d.field],...T,...h}}parseMergeQualifiedField(t){let n=this.peek(),r=this.parseFieldPath(),i=this.splitQualifiedField(r);if(i.alias===null)throw new S(t,n);return{alias:i.alias,field:i.field}}parseMergeAssignments(t){let n=[];do{let r=this.peek(),i=this.parseFieldPath(),o=this.splitQualifiedField(i);if(o.alias!==null&&o.alias.toLowerCase()!==t.toLowerCase())throw new S(`MERGE UPDATE SET \u306E\u5DE6\u8FBA\u306F target alias ${t} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);this.expect("="),n.push({field:o.field,value:this.parseAssignmentValue()})}while(this.consume(","));return n}parseMergeValueList(){let t=[];if(this.peek().kind===")")return t;do t.push(this.parseAssignmentValue());while(this.consume(","));return t}mergeExpressionsEqual(t,n,r){return this.mergeNormalizedValueEqual(this.normalizeMergeValue(t,r,!0),this.normalizeMergeValue(n,r,!0))}normalizeMergeValue(t,n,r=!1){if(Array.isArray(t))return t.map(o=>this.normalizeMergeValue(o,n,r));if(t===null||typeof t!="object")return t;let i=t;if(r&&i.type==="NUMBER")return{type:"NUMBER",value:i.value};if(i.type==="SOURCE_FIELD")return String(i.alias).toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{type:"FIELD_REF",field:i.field};if(i.type==="FIELD_REF"&&typeof i.field=="string"){let o=this.splitQualifiedField(i.field);return o.alias!==null&&o.alias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,field:o.field}}return i.type==="FIELD"&&typeof i.tableAlias=="string"?i.tableAlias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,tableAlias:null}:Object.fromEntries(Object.entries(i).map(([o,a])=>[o,this.normalizeMergeValue(a,n,r)]))}mergeNormalizedValueEqual(t,n){if(t===n)return!0;if(Array.isArray(t)||Array.isArray(n))return Array.isArray(t)&&Array.isArray(n)&&t.length===n.length&&t.every((s,l)=>this.mergeNormalizedValueEqual(s,n[l]));if(t===null||n===null||typeof t!="object"||typeof n!="object")return!1;let r=t,i=n,o=Object.keys(r),a=Object.keys(i);return o.length===a.length&&o.every(s=>Object.prototype.hasOwnProperty.call(i,s)&&this.mergeNormalizedValueEqual(r[s],i[s]))}mergeValueToSelectColumn(t,n,r){let i=this.normalizeMergeValue(t,n);if(this.mergeValueContainsInvalidSource(i))throw new S(`MERGE \u306E\u5F0F\u306F source alias ${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044`,r);let o=i;switch(o.type){case"FIELD_REF":return{type:"FIELD",field:String(o.field),alias:null};case"STRING":return{type:"LITERAL_COL",value:String(o.value),alias:null};case"NUMBER":return{type:"ARITH_COL",expr:o,alias:null};case"ARITH":return{type:"ARITH_COL",expr:o,alias:null};case"STRING_FUNC":return{type:"STRFUNC_COL",expr:o,alias:null};case"CASE_VALUE":return{type:"CASE_COL",expr:o.expr,alias:null};default:throw new S("MERGE \u306E\u4EE3\u5165\u5F0F\u306F\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9\u30FB\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u6587\u5B57\u5217\u95A2\u6570\u30FBCASE \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",r)}}mergeValueContainsInvalidSource(t){if(Array.isArray(t))return t.some(r=>this.mergeValueContainsInvalidSource(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="INVALID_SOURCE"||Object.values(n).some(r=>this.mergeValueContainsInvalidSource(r))}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new S(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new S(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new S("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t,n){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let i=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="IF"){let i=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let i=this.advance(),o=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");r.push(be(`${i.kind==="-"?"-":"+"}${o.value}`))}else{let i=this.advance();if(i.kind==="STRING")r.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")r.push(be(i.value));else if(n&&this.isDialect1AsOfCall(i))r.push(this.finishVariableReference(i));else{let o=this.isDialect1AsOfCall(i)?" INSERT ... VALUES \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u6587\u578B\u3067\u306F INSERT ... SELECT \u3067\u6CE8\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"";throw new S(`INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059${o}`,i)}}while(this.consume(","));if(r.length!==t)throw new S(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${r.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return r}isDialect1AsOfCall(t){return this.capabilities.dialect1===!0&&t.kind==="VARIABLE"&&br(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}=gt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(p=>p.value.type==="STRING_FUNC"))throw new S("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let p=this.parseTableRef();if(p.subtableCode)throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(p.cteName!==null&&!p.cteName.startsWith("#"))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!p.alias)throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(p.alias.toLowerCase()===`app${n}`.toLowerCase())throw new S(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:p.appId,cteName:p.cteName,alias:p.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new S("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new S("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new S("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let p=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=p.targetJoinField,o.joinKeyField=p.joinKeyField,o.targetFilter=p.targetFilter}else{if(i.some(p=>p.value.type==="SOURCE_FIELD"))throw new S("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(p=>p.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(p.value)))throw new S("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new S("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&c.checkGroups)throw new S("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(d.validateOnly||d.onErrorSkip))throw new S("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...c,...d}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...c,...d}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...c,...d}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new S("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new S("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length,!1)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new S("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new S("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new S("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new S("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new S("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new S("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new S("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new S("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new S("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new S("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new S("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new S("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new S("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new S("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new S("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new S("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new S("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new S("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new S("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new S(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new S("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new S("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((d,u)=>{let p=this.matchUpdateFromJoin(d,n,r);p!==null&&a.push({index:u,...p})}),a.length!==1)throw new S("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let d=0;d<o.length;d++){if(d!==s.index&&this.nodeContainsQualifiedField(o[d],r))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(d!==s.index&&this.nodeContainsForeignQualifier(o[d],n))throw new S(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let c=o.filter((d,u)=>u!==s.index).reduce((d,u)=>d===null?u:{type:"LOGICAL",op:"AND",left:d,right:u},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:c}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new S("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(Ip(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new S("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new S("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=gt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new S("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=gt(n,this.prev());if(!i)throw new S("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new S("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new S("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new S("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new S(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new S("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new S("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new S("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new S("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}tryParseDigitPrefixedIdentifier(){let t=this.peek(),n=this.peekAt(1);return t.kind!=="NUMBER"||!/^\d+$/.test(t.value)||n.kind!=="IDENT"||n.pos!==t.pos+t.value.length?null:(this.advance(),this.advance(),t.value+n.value)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new S(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new S("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||uo.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new S("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),t}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function Lg(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 gt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new S(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}function Or(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=_g(e.op);if(t===null)throw new de(`NOT ${e.op} \u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u5916\u3067\u3059`);return{...e,op:t}}case"NULL_CHECK":return{...e,not:!e.not};case"LOGICAL":return{type:"LOGICAL",op:e.op==="AND"?"OR":"AND",left:Or(e.left),right:Or(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Or(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function _g(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 Np(e){return e.includes("%")||e.includes("_")}function Lr(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function qt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function zt(e){if(e===null)return!1;if(Lr(e))return!0;switch(e.type){case"LOGICAL":return zt(e.left)||zt(e.right);case"NOT":case"GROUP":return zt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Ce(e){if(e===null)return!1;if(qt(e))return!0;switch(e.type){case"LOGICAL":return Ce(e.left)||Ce(e.right);case"NOT":case"GROUP":return Ce(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function j(e){switch(e.type){case"BINARY":return Dg(e);case"NULL_CHECK":return Ug(e);case"LOGICAL":return Mg(e);case"NOT":return xg(e);case"GROUP":return kg(e);case"EXISTS":throw new de("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new de("internal error: BOOLEAN predicate reached kintone query conversion")}}function Dg(e){if(Lr(e))throw new de("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=Pp(e.left),n=vg(e.op),r=Fg(e.right,e.op);return`${t} ${n} ${r}`}function vg(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 Ug(e){let t=Pp(e.field);return e.not?`${t} != ""`:`${t} = ""`}function Mg(e){let t=j(e.left),n=j(e.right),r=e.op==="AND"?"and":"or",i=Cp(e.left)?`(${t})`:t,o=Cp(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function xg(e){return j(Or(e.expr))}function kg(e){return`(${j(e.expr)})`}function Pp(e){if(e.type==="FUNC_FIELD")throw new de(`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 de("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 de("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 de("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 de("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return Yg(e.field)}function Fg(e,t){switch(e.type){case"VARIABLE":throw new de(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new de(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return Op(e);case"NUMBER":return z(e);case"KINTONE_FUNC":return Lp(e);case"IN_LIST":return Wg(e,t);case"ARITH_VALUE":throw new de("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 de("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 de("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new de("\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 de("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function Op(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Lp(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Gg(e)}function Gg(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?_r():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!Bg(e.args.offset,e.args.offsetText)||!Kg.has(e.args.unit)?_r():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!$g.has(e.args.weekday)?_r():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!Vg(e.args.day)?_r():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return _r()}var Kg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),$g=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Bg(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function Vg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function _r(){throw new de("internal error: invalid relative date function AST reached kintone query conversion")}function Wg(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new de("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return Hg(e.values),`(${e.values.map(r=>r.type==="STRING"?Op(r):r.type==="NUMBER"?z(r):Lp(r)).join(",")})`}function Hg(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new de(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function Yg(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Cp(e){return e.type==="LOGICAL"}var de=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};var _p=Symbol("ksql.groupingRowMeta"),Dp=new WeakMap;function Ys(e,t){return Object.defineProperty(e,_p,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function js(e){return e[_p]}function jg(e){return js(e)?.includedCanonicalIds}function vp(e,t){Dp.set(e,t)}function Wn(e,t){let n=jg(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Dp.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var go=["$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 zs(e){return e.startsWith("_")||e.startsWith("$")}var zg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function Js(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Js);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"?zg.test(t.field):Object.values(t).some(Js)}function qg(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 Ye(e)||Js(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var Jg=["_pid","_rid","_idx"];function qs(e){return[...new Set(e)]}function Xg(e){switch(e.kind){case"APP":return qs([...e.fieldCodes,...go]);case"SUBTABLE":return qs([...e.childFieldCodes,...Jg,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return qs(e.columns)}}function Up(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:Xg(t(r,i))}))}function Mp(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 xp(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function kp(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?Mp(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:xp(a,r.fieldCode)}}function Qg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function Zg(e,t,n){let r=Mp(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:xp(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,c)=>Qg(l)===e?[{column:l,columnIndex:c}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],c=qg(l.column);return c==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:c==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&pe(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Fp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?Zg(r.name,t,n):{kind:"EXPRESSION"})}}var ey="B65_NON_GROUPED_DEPENDENCY",Qs=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 yo(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 Zs(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return yo(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?yo(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function el(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function Kp(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function $p(e){return e.type==="WINDOW_COL"}function ty(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function Jt(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number")return String(e);if(Array.isArray(e)){let c=e.map(d=>Jt(d,t));return c.some(d=>d===null)?null:`[${c.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||el(n))return null;if(r==="GROUP"&&n.expr!==void 0)return Jt(n.expr,t);let i=typeof r=="string"?Qs.get(r):void 0;if(i!==void 0)return Jt(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:${ty(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=Zs(n);if(o!==null)try{return`FIELD:${t(o)}`}catch{return null}if(r==="FIELD"&&n.aggregateRef!==void 0)return null;let a=new Set(["alias","aliasDisplay","raw","separator","distinct","source"]),s=[];for(let c of Object.keys(n)){if(c==="type"||a.has(c))continue;let d=Jt(n[c],t);if(d===null)return null;s.push(`${c}=${d}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function ny(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function ry(e){let t=new Map;for(let n of e){let r=ny(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function tl(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var iy=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function ho(e){if(e&&typeof e=="object"){let t=e,n=Zs(t);if(n!==null)return tl(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"?Qs.get(t.type):void 0;if(i!==void 0){let a=ho(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Gp(e,t,n,r){let i=n==="WILDCARD"?"wildcard":tl(n),o=ho(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=${ey})`)}function fn(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)fn(a,t);return}let n=e;if(el(n)||Kp(n)||$p(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 Gp(t.clause,t.expression,"WILDCARD",t.policy);let r=Zs(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&iy.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=t.aliases.get(r.field)??[];if(l.length===1&&!t.resolvingAliases.has(r.field)){let c=new Set(t.resolvingAliases);c.add(r.field),fn(l[0],{...t,resolvingAliases:c});return}}let a=Jt(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 Gp(t.clause,t.expression,r,t.policy);return}let i=Jt(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?Qs.get(n.type):void 0;if(o!==void 0){fn(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||fn(n[a],t)}function Dr(e,t){let n=ry(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&fn(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&fn(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"?yo(r.key.name):r.key;fn(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function Xs(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Xs);let t=e;return el(t)||$p(t)?!1:Kp(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(Xs)}function Hn(e){return ee(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&Xs(t))}function oy(e){return e.type==="FIELD_NAME"?yo(e.name):e.expr}function Bp(e,t,n){let r=ee(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let R=kp(f,n);if(R.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${R.name} is ambiguous across multiple sources.`);return R.kind==="UNKNOWN"?`unknown:${R.name}`:`source:${R.sourceIndex}:${R.fieldCode}`},a=new Set;t.items.forEach((f,R)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let E=Jt(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=Jt(oy(i[R]),o);E!==null&&a.add(E)}});let s=[e.from,...e.joins.map(f=>f.table)],l=f=>`APP${f.appId}${f.subtableCode!=null?`$${f.subtableCode}`:""}`,c=s.map(f=>f.cteName??l(f)).join(" / "),d=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:ho(f)).join(", ")}`,u=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,p=i.every((f,R)=>f.type==="FIELD_NAME"&&t.items[R]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:c,groupingLabel:d,migrationSourceSql:u,migrationGroupingFields:p}}function Ao(e){if(ee(e).type!=="NONE"||!Hn(e))return;let t={identities:new Set,resolveField:n=>`ast:${tl(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};Dr(e,t)}function Vp(e){return`FIELD:${e}`}var Wp=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 nl(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function je(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>je(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=>je(r,t))}}function Io(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Io(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){je(n.arg,t);return}Object.values(n).forEach(r=>Io(r,t))}}function Ye(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ye);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(Ye)}function ay(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?Ye(e):!1}function sy(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${nl(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${nl(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);vp(e,r.canonicalId)}function rl(e){let t=ee(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&je(i,n);je(e.having,n),je(e.orderBy,n);let r=[];je(e.where,r),je(e.joins,r),Io(e.columns,r),Io(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&je(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.");Ao(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 Hp(e,t,n=()=>{}){rl(e);let r=ee(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&je(c,i);if(je(e.having,i),je(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=yp(e,t),a=new Set,s=[];for(let c of o.allItems){let d=c;if(!d.physical)throw new Error(`ArgumentError: grouping item ${nl(c.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let c of i)sy(c,t,a);Dr(e,{identities:new Set([...a].map(Vp)),resolveField:c=>t(c).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let c of s)l.add(c.directKey),c.unqualifiedBridgeKey!==null&&l.add(c.unqualifiedBridgeKey);for(let c of e.columns){if(!ay(c))continue;let d="alias"in c?c.alias:null;if(d!==null&&l.has(d))throw new Error(`ArgumentError: aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function ly(e){return e.some(t=>t.type==="WINDOW_COL")}function ze(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||ee(e).type!=="NONE"||e.distinct||ly(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Ye(t.expr)||t.type==="STRFUNC_COL"&&Jp(t.expr)||t.type==="SCALAR_VALUE_COL"&&Ur(t.expr))||Lt(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function Lt(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Yp(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||Lr(e);case"NULL_CHECK":return Yp(e.field);case"LOGICAL":return Lt(e.left)||Lt(e.right);case"NOT":case"GROUP":return Lt(e.expr);case"EXISTS":return!0}}function Yp(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function bo(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(j(e.where)),e.orderBy.length>0){let i=e.orderBy.map(uy).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:cy(e.columns),totalCount:!1}}function qp(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!Lt(e.where)&&n.push(j(e.where)),{app:t,query:n.join(" "),fields:[]}}function En(e,t,n){let i=Qp(e,n).get(t);if(!i)return[];if(i.allFields)return[];let o=new Set(i.fields);return i.table.subtableCode&&o.add(i.table.subtableCode),o.size===0&&o.add("$id"),[...o]}function uy(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 cy(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(No(r.field)):r.type==="ARITH_COL"?vr(r.expr,n):r.type==="STRFUNC_COL"?il(r.expr,n):r.type==="SCALAR_VALUE_COL"&&Yn(r.expr,n);return[...new Set(n)]}function py(e,t){vr(e.left,t),vr(e.right,t)}function vr(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(No(e.field)):e.type==="ARITH"?py(e,t):e.type==="STRING_FUNC"&&il(e,t)}function No(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function il(e,t){for(let n of e.args)dy(n,t)}function dy(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){wo(e,t);return}Yn(e,t)}function Yn(e,t){if(e.type==="FIELD"){t.push(No(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){il(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Yn(e.left,t),Yn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)jp(n.result,t);e.elseResult&&jp(e.elseResult,t)}}function jp(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){wo(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){vr(e,t);return}Yn(e,t)}}function wo(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&fy(e.arg,t);return}e.type==="AGG_ARITH"&&(wo(e.left,t),wo(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(No(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function fy(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?vr(e,t):Yn(e,t)}function Jp(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Ur(t))}function Ur(e){return e.type==="STRING_FUNC"?Jp(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Ur(e.left)||Ur(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>zp(t.result))||e.elseResult!==null&&zp(e.elseResult):!1}function zp(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Ur(e)}function Xp(e,t){let n=new Set,r=Qp(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function Qp(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,c=new Map;for(let A of o)A.alias&&c.set(A.alias,A),A.cteName!==null?c.set(A.cteName,A):A.subtableCode||(c.set(`APP${A.appId}`,A),c.set(`app${A.appId}`,A));let d=Ey(e.columns),u=A=>{let w=a.get(A);w&&(w.allFields=!0,w.fields.clear())},p=()=>{for(let A of o)u(A)},f=()=>{for(let A of o)A.subtableCode&&u(A)},R=(A,w)=>{let k=a.get(A);if(!(!k||k.allFields)){if(A.subtableCode){if(w.startsWith("_p.")){let L=w.slice(3);L&&L!=="*"&&k.fields.add(L);return}return void 0}w&&k.fields.add(w)}},E=(A,w="select",k)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){p();return}if(F==="_p"){f();return}let H=c.get(F);if(H){u(H);return}return}if(w==="groupBy"&&k!==void 0){if(k.kind==="PHYSICAL"){let F=r[k.sourceIndex];F&&(n||F.cteName===null)&&R(F,k.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&d.has(A)||(w==="orderBy"||w==="having"||w==="groupBy")&&Ry(A))return;let L=A.indexOf(".");if(L>0){let F=A.slice(0,L),H=A.slice(L+1);if(F==="_p"){l&&R(l,`_p.${H}`);return}let $=c.get(F);if($){R($,H);return}if(n)return}n?n.unqualified.add(A):s&&R(s,A)},m=(A,w,k="select")=>{if(w){if(w==="_p"){l&&R(l,`_p.${A}`);return}let L=c.get(w);if(L){R(L,A);return}if(n)return}E(A,k)},g=(A,w="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){E(A.field,w);return}if(A.type==="ARITH"){g(A.left,w),g(A.right,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}},y=(A,w="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&N(A.arg,w);return}A.type==="AGG_ARITH"&&(y(A.left,w),y(A.right,w)),A.type==="AGG_GROUP_KEY"&&m(A.field,A.tableAlias??null,w)},T=(A,w="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"||A.type==="AGG_GROUP_KEY"||A.type==="VARIABLE"){y(A,w);return}I(A,w)},h=(A,w="select")=>{for(let k of A.args)T(k,w)},I=(A,w="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){I(A.left,w),I(A.right,w);return}A.type==="CASE_WHEN"&&P(A,w)},N=(A,w="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,w);return}I(A,w)},D=(A,w="select")=>{if(A.type!=="ARRAY"){if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){y(A,w);return}if(A.type==="FIELD_REF"||A.type==="ARITH"){g(A,w);return}I(A,w)}},P=(A,w="select")=>{for(let k of A.branches)C(k.condition,w),D(k.result,w);A.elseResult&&D(A.elseResult,w)},M=(A,w="select")=>{if(A.type==="FIELD"){if(A.aggregateRef){y(A.aggregateRef,w);return}m(A.field,A.tableAlias,w);return}if(A.type==="FUNC_FIELD"){h(A.expr,w);return}if(A.type==="AGG_FIELD"){y(A.expr,w);return}if(A.type==="ARITH_FIELD"){g(A.expr,w);return}A.type!=="GROUPING_FIELD"&&P(A.expr,w)},U=(A,w="select")=>{if(A.type==="ARITH_VALUE"){g(A.expr,w);return}if(A.type==="CASE_VALUE"){P(A.expr,w);return}},C=(A,w="where")=>{if(A)switch(A.type){case"BINARY":M(A.left,w),U(A.right,w);return;case"NULL_CHECK":M(A.field,w);return;case"LOGICAL":C(A.left,w),C(A.right,w);return;case"NOT":case"GROUP":C(A.expr,w);return;case"EXISTS":case"BOOLEAN":return}},v=(A,w)=>{if(A.type==="FIELD_NAME"){E(A.name,"groupBy",w);return}if(A.type==="ARITH_KEY"){g(A.expr,"groupBy");return}h(A.expr,"groupBy")},b=(A,w="orderBy")=>{if(A.type==="FIELD_NAME"){E(A.name,w);return}if(A.type==="ARITH_KEY"){g(A.expr,w);return}A.type!=="GROUPING_KEY"&&h(A.expr,w)};for(let A of e.columns)switch(A.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&N(A.arg,"select");break;case"ARITH_AGG_COL":y(A.expr,"select");break;case"ARITH_COL":g(A.expr,"select");break;case"CASE_COL":P(A.expr,"select");break;case"STRFUNC_COL":h(A.expr,"select");break;case"SCALAR_VALUE_COL":I(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(A.windowKind==="AGGREGATE"||A.windowKind==="VALUE")&&A.arg.type!=="WILDCARD"&&N(A.arg,"select");for(let w of A.partitionBy)m(w.field,w.tableAlias,"select");for(let w of A.orderBy)b(w.key,"select");break}for(let A of e.joins)A.type!=="CROSS"&&(m(A.on.left.field,A.on.left.tableAlias,"where"),m(A.on.right.field,A.on.right.tableAlias,"where"));C(e.where,"where");let O=ee(e);if(O.type==="PLAIN")O.allItems.forEach((A,w)=>v(A,t?.items[w]));else if(O.type==="GROUPING_SETS")for(let A of O.allItems)m(A.field,A.tableAlias,"select");C(e.having,"having");for(let A of e.orderBy)b(A.key);return a}function Ey(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(pe(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 Ry(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function Xt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||ze(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||gp(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function Qt(e){let t=e.ctes[0].query,n=e.query,r=Co(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 Co(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:Zp(e.left,t)};case"NULL_CHECK":return{...e,field:Zp(e.field,t)};case"LOGICAL":return{...e,left:Co(e.left,t),right:Co(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Co(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function Zp(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var my=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),gy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ne(e){let t;e.fieldType==="RECORD_NUMBER"||e.fieldType==="__ID__"?t="recordNumber":e.fieldType==="NUMBER"?t="number":e.fieldType==="CALC"?t=e.sortKind==="number"?"number":"string":gy.has(e.fieldType)?t="option":my.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function jn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Po(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}var qe=["=","!=",">","<",">=","<="],yy=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),hy=new Set(qe),Ay=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"])]]),Sy=new Map([["TODAY",new Set(qe)],["NOW",new Set(qe)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),Ty=["=","!=","in","not in"],Iy=new Map([["RECORD_NUMBER",new Set([...qe,"in","not in"])],["__ID__",new Set([...qe,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(qe)],["UPDATED_TIME",new Set(qe)],["DATE",new Set(qe)],["TIME",new Set(qe)],["DATETIME",new Set(qe)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...qe,"in","not in"])],["CALC",new Set([...qe,"in","not in"])],["MULTI_LINE_TEXT",new Set(["like","not like"])],["RICH_TEXT",new Set(["like","not like"])],["CHECK_BOX",new Set(["in","not in"])],["RADIO_BUTTON",new Set(["in","not in"])],["DROP_DOWN",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])],["FILE",new Set(["like","not like"])],["USER_SELECT",new Set(["in","not in"])],["ORGANIZATION_SELECT",new Set(["in","not in"])],["GROUP_SELECT",new Set(["in","not in"])],["STATUS",new Set(Ty)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),wy=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"])]]),al=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"]),nd=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function Lo(e){return Iy.get(e)??new Set}function rd(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"&&al.has(o.fieldType)&&Lo(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function Se(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:xr(e,t)}function xr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return by(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?ol():Py(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return ol();case"GROUP":return xr(e.expr,t);case"NOT":{let n=xr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:od(n.reasons)?Fr({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 Ly(e.op,n,r)}}}function by(e,t,n,r){if(n.type==="KINTONE_FUNC"&&re(n.name))return Ny(e,t,n,r);if(n.type==="KINTONE_FUNC"&&ed(n))return td(e,t,n,r);if(n.type==="IN_LIST"){let d=n.values.filter(u=>u.type==="KINTONE_FUNC");if(d.length>0)return n.values.length===1&&d.length===1?td(e,t,d[0],r):Oo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",d[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,kr(e))}if(t.type!=="FIELD")return ol();let i=r(t);if(!i)return zn("WHERE_FIELD_UNRESOLVED",t.field,void 0,kr(e));let o=kr(e);if(!id(i.fieldType,o))return zn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Oy(i.fieldType,e))return zn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=Lo(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||ed(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",c=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!c?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function ed(e){return e.type==="KINTONE_FUNC"&&un.has(e.name)}function td(e,t,n,r){let i=kr(e),o=n.name;if(!un.has(o)||t.type!=="FIELD")return Oo("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Ay.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Oo("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):Sy.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:Oo("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function Ny(e,t,n,r){let i=kr(e),o=n.name;if(t.type!=="FIELD")return Mr("WHERE_RELATIVE_DATE_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t);return a?Cy(n)?hy.has(i)?!yy.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?Mr("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}]}:Mr("WHERE_RELATIVE_DATE_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i):Mr("WHERE_RELATIVE_DATE_ARGUMENT_INVALID",o,t.field,a.fieldType,i):Mr("WHERE_RELATIVE_DATE_FIELD_TYPE_UNSUPPORTED",o,t.field,void 0,i)}function Cy(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 Py(e,t,n){let r=n(e);return r?id(r.fieldType,t)?!al.has(r.fieldType)&&!nd.has(r.fieldType)?zn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:zn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):zn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function id(e,t){let n=wy.get(e);return n===void 0||n.has(t)}function Oy(e,t){return al.has(e)?!0:nd.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function kr(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 Ly(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Fr({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")?Fr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Fr({capability:"LOCAL_ONLY",reasons:r})}function ol(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function zn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function Oo(e,t,n,r,i){return Fr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function Mr(e,t,n,r,i){return ad({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function od(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&re(t.functionName))}function _y(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&un.has(t.functionName))}function ad(e){if(e.capability==="EXACT_PUSHDOWN"||!od(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&re(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function Dy(e){if(e.capability==="EXACT_PUSHDOWN"||!_y(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&&un.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 Fr(e){return Dy(ad(e))}function Gr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function _o(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Do(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Gr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function vo(e){let t=e.raw??String(e.value),n=we(t);if(n===null)return!1;if(n.sign===0)return z(e)==="0";let r=Math.max(n.scale,0),i=Math.max(n.coefficient.length-n.scale,0);if(r>10||i+r>30)return!1;let o=Ms(n);return z(e)===o}var vy=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),Uy=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),My=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),xy=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function Uo(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"?My.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?Fy(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?ky(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"&&vo(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&vo(e.right)?"exact":"unsafe":Uy.has(r)?sl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?sl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||xy.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Gr(e.right.value)?"exact":"unsafe":r==="TIME"?_o(e.right.value)?"exact":"unsafe":Do(e.right.value)?"exact":"unsafe":vy.has(r)?!sl(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 sd(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 sl(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 ky(e){let t=n=>n.type==="NUMBER"&&vo(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 Fy(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function ll(e,t={}){return Fo(e,t).condition}function Fo(e,t={}){return Mo(e,n=>Gy(n,t))}function Kr(e,t={}){return xo(e,n=>sd(n,r=>ko(r,t)))}function Mo(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=Mo(e.left,t),r=Mo(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 Mo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function xo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=xo(e.left,t),r=xo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return xo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function Gy(e,t){if(Ky(e,t)||$y(e,t))return"exact";if(e.left.type!=="FIELD"||!ko(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||Se(e,i=>{if(!ko(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ne({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":Uo(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function Ky(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!ko(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function $y(e,t){return!By(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function By(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 ko(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function $r(e,t={}){let n=e!==null&&t.extractCondition!==!1?Fo(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;qn(r,o);let a=new Set;return qn(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function Rn(e,t={}){let n=e.joins.every(u=>u.type==="INNER"||u.type==="CROSS"),r={allowKlike:n,allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=$r(e.where,{...r,extractCondition:i&&o&&n,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map,c=new Map;if(e.where!==null)for(let u of e.joins){if(u.type!=="INNER"&&u.type!=="CROSS"||!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let p=Fo(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});p.condition!==null&&p.relation!==null&&(l.set(u.table.alias,p.condition),c.set(u.table.alias,p.relation))}let d=new Set(a.appliedKlikes);for(let u of l.values())qn(u,d);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:c,appliedKlikes:d,allKlikes:a.allKlikes}}function ul(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function qn(e,t){if(e!==null){if(qt(e)){t.add(e);return}switch(e.type){case"LOGICAL":qn(e.left,t),qn(e.right,t);return;case"NOT":case"GROUP":qn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var Vy=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})}),dl=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})}),Br="v1";function q(e){throw new Error(`UnsupportedError: APPLY ${Br} scope does not support ${e}`)}function Wy(e,t){let n=Br;Br=e;try{return t()}finally{Br=n}}function Hy(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 Qn(e,t){return Wy(e,()=>Yy(t,Vy[e]))}function Yy(e,t){let n=Hy(e);if(n===null)return;if(n.type==="UPSERT"){zy(n,t);return}let r=n.applyBlocks;if(cl(r),!t.multipleBlocks&&r.length!==1&&q("multiple APPLY blocks in this phase"),n.type==="INSERT"){qy(n,r,t);return}let i=n;i.subtableCode&&q("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&q("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&q("REJECT LIMIT in this phase"),Jy(i.where,t.multipleParents),ud(r,t)}function ud(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||q(`${r.kind} in this phase`);cd(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)Go(i,"APPEND targets");Xn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&ld(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.assignments.length===0&&q("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&q("parent or qualified PATCH targets in this phase")}Xn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&ld(r.selector.where,t.idxSelectors)}}}}function cd(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 jy=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function pd(e,t){if(cd(e),e.targetKind==="MULTI_VALUE"){if(!jy.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 cl(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Br} scope allows only one block for table ${n.field}`);t.add(n.field)}}function zy(e,t){t.upsert||q("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];cl(n),cl(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&q("multiple APPLY blocks in this phase"),dd(n,"UPSERT ON INSERT"),ud(r,{...t,idxSelectors:!1,expectRows:!1})}function dd(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&q(`${r.kind} for ${t} in this phase`);for(let i of r.fields)Go(i,"APPEND targets");Xn(r.values,"APPEND values")}}function qy(e,t,n){n.insert||q("INSERT in this phase"),e.subtableCode&&q("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&q("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase"),dd(t,"INSERT")}function _t(e){if(e.type!=="BINARY"||e.op!=="="||e.left.type!=="FIELD"||e.left.tableAlias!==null||e.left.field!=="$id"||e.right.type!=="NUMBER")return!1;let t=e.right.raw??String(e.right.value);return/^\d+$/.test(t)&&e.right.value>0&&Number.isSafeInteger(e.right.value)}function Vr(e,t){let n=dl[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&fl(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Jn(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 ${Jn(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 ${Jn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!_t(t.where))throw new Error(`UnsupportedError: APPLY ${Jn(e)} execution does not support multiple-parent APPLY`)}function fl(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 fd(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||_t(t.where))&&!dl[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Jn(e)} public multiple-parent write is not connected`)}function Zn(e){if(!dl[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Jn(e)} internal prepared write is not available`)}function Jn(e){return`Phase ${e.slice(5)}`}function Jy(e,t){_t(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&q("a parent $id that is not a positive safe integer in this phase"),t||q("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),pl(e,t))}function pl(e,t){if(Array.isArray(e)){for(let o of e)pl(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&q("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&q("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&q("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&q("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&re(n.name))&&q("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))pl(o,t)}function ld(e,t){Xn(e,"child row selectors",t)}function Xn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Xn(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&q(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&q(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&q(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&re(r.name))&&q(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&q(`qualified or parent field references in ${t}`),Go(l,t,n)}if(i==="FIELD_REF"&&Go(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Xn(s,t,n)}function Go(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&q(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&q(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&q(`aggregate expressions in ${t}`)}var Ae=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function Ed(e){Rd(e)}function Rl(e){if(ul(e).length>0)throw new Ae("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 Rd(e){switch(e.type){case"SELECT":er(e);return;case"UNION":gl(e);return;case"WITH":md(e);return;case"EXPLAIN":Rd(e.query);return;case"CREATE_TEMP_TABLE":ml(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":mn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!_t(e.where)&&Ce(e.where)){El(e.where),mn(e);return}if(Zt(e)&&e.subtableCode)throw new Ae("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&&Ce(e.where)&&!Zy(e,e.where)){El(e.where),mn(e);return}if(Zt(e))throw new Ae("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(Zt(e)&&e.subtableCode)throw new Ae("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&&Ce(e.where)){El(e.where),mn(e);return}if(Zt(e))throw new Ae("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(Zt(e))throw new Ae("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Zt(e))throw new Ae("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Zt(e))throw new Ae("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(Zt(e))throw new Ae("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 El(e){$o(e,t=>{if(!qt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new Ae("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 Ae("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 ml(e){e.type==="SELECT"?er(e):e.type==="UNION"?gl(e):md(e)}function gl(e){ml(e.left),er(e.right)}function md(e){if(Xt(e)){er(Qt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?er(t.query):t.query.type==="UNION"&&gl(t.query);ml(e.query)}function er(e){if(Qy(e),Ce(e.where)&&!(ze(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=Rn(e,{allowUnresolvedVariables:!0});if(ul(n).length===0){mn(e);return}if(Xy(e)){mn(e);return}throw new Ae("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")}mn(e)}function Xy(e){return e.where!==null&&he(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER"||t.type==="CROSS")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function Qy(e){$o(e,t=>{if(!qt(t))return;if(!Ko(e.where,t))throw new Ae("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 Ae("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 Ae("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 mn(e){Bo(e,t=>{t.type==="SELECT"&&er(t)},!0)}function Zt(e){let t=!1;return Bo(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function Zy(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 Ko(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Ko(e.left,t)||Ko(e.right,t);case"NOT":case"GROUP":return Ko(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function $o(e,t){if(Array.isArray(e)){for(let r of e)$o(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&&eh(r)||$o(r,t)}function Bo(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Bo(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Bo(i,t)}function eh(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Wr=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 gd(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(th(t))throw new Wr;return;default:return}}function th(e){let t=!1;return Vo(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||nh(n.where)&&(t=!0)}),t}function nh(e){let t=!1;return Vo(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Vo(e,t){if(Array.isArray(e)){for(let r of e)Vo(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Vo(r,t)}function en(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 Wo(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 en(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return en(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 en(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return en(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return en(e,t,3,3);case"REGEXP_REPLACE":return en(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return en(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return en(e,t,0,0)}}var Al=1e4,Dt=Al,Q=e=>new Error(`ArgumentError: ${e}`),rh=e=>e.type==="VARIABLE",tn=e=>e?.type==="STRING"&&e.fromVariable===!0;function ih(e){return e.type==="NUMBER"?Number(z(e)):e.value}function tr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999||r<1||r>12||i<1||i>31)return null;let o=new Date(0);return o.setUTCHours(0,0,0,0),o.setUTCFullYear(n,r-1,i),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?{year:n,month:r,day:i}:null}function yl(e){let t=tr(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 oh(e){let t=new Date(e*864e5),n=t.getUTCFullYear();if(n<1||n>9999)throw Q("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(n).padStart(4,"0")}-${String(t.getUTCMonth()+1).padStart(2,"0")}-${String(t.getUTCDate()).padStart(2,"0")}`}function yd(e){let t=e.trim(),n=/^([+-]?\d+)\s+(day|days|month|months|year|years)$/i.exec(t);if(!n)throw/^\S+\s+(?:day|days|month|months|year|years)$/i.test(t)?Q("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002"):/^[+-]?\d+\s+\S+$/i.test(t)?Q("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306F day\u3001days\u3001month\u3001months\u3001year\u3001years \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002"):Q("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let r=Number(n[1]);if(!Number.isSafeInteger(r))throw Q("GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306E\u4FC2\u6570\u306B\u306F\u5B89\u5168\u306A\u6574\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let i=n[2].toLowerCase(),o=i.startsWith("month")?"MONTH":i.startsWith("year")?"YEAR":"DAY";if(r===0)throw Q(`GENERATE_SERIES \u306E\u65E5\u4ED8 step \u306B 0 ${o.toLowerCase()} \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);return{coefficient:r,unit:o}}function Hr(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 Yr(e){let t=we(e.raw??String(e.value));if(t===null||t.scale>0)return null;if(t.sign===0)return 0;if(t.coefficient.length-t.scale>16)return null;let r=`${t.coefficient}${"0".repeat(-t.scale)}`;if(r.length===16&&r>"9007199254740991")return null;let i=Number(r)*t.sign;return Number.isSafeInteger(i)?i:null}function hd(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function Ho(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 hl(e){return e.year*12+e.month-1}function Ad(e,t){if(t==="MONTH"&&e.day!==1)throw Q("GENERATE_SERIES \u306E month step \u3067\u306F start \u306B\u6708\u521D\uFF08YYYY-MM-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(t==="YEAR"&&(e.month!==1||e.day!==1))throw Q("GENERATE_SERIES \u306E year step \u3067\u306F start \u306B\u5E74\u521D\uFF08YYYY-01-01\uFF09\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}function ah(e,t,n){let r=yl(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=yl(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return Ho(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=hl(t)+(n.coefficient<0&&t.day!==1?1:0);return Ho(hl(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return Ho(e.year,a,n.coefficient)}function Sd(e,t,n){if(e<1||e>9999)throw Q("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");return`${String(e).padStart(4,"0")}-${String(t).padStart(2,"0")}-${String(n).padStart(2,"0")}`}function sh(e){let t=Math.floor(e/12),n=e-t*12+1;return Sd(t,n,1)}function Td(e){if(e.args.length<2||e.args.length>3)throw Q("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(y=>ih(y));["start","stop","step"].forEach((y,T)=>{if(t[T]==="")throw Q(`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"?tr(n):null,c=typeof r=="string"?tr(r):null,d=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(hd))throw Q("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||c||d||u||typeof n=="string"&&typeof r=="string"&&!(tn(o)&&tn(a)&&Hr(n)!==null&&Hr(r)!==null)){if(!l||!c)throw Q(l&&typeof r!="string"||c&&typeof n!="string"?"GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(i!==void 0&&typeof i!="string")throw Q("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let y=i===void 0?{coefficient:1,unit:"DAY"}:yd(i);return Ad(l,y.unit),{kind:"DATE",start:n,stop:r,step:y.coefficient,dateUnit:y.unit,rowCount:ah(l,c,y)}}let p=o.type==="NUMBER"?Yr(o):tn(o)?Hr(n):null,f=a.type==="NUMBER"?Yr(a):tn(a)?Hr(r):null;if(p===null||f===null)throw(o.type==="NUMBER"||tn(o))&&(a.type==="NUMBER"||tn(a))?Q("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Q("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let R=i===void 0?1:s?.type==="NUMBER"?Yr(s):tn(s)?Hr(i):null;if(R===null)throw s?.type==="NUMBER"||tn(s)?Q("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Q("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=p,m=f,g=R;if(g===0)throw Q("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:m,step:g,rowCount:Ho(E,m,g)}}function lh(e){if(e.args.length<2||e.args.length>3)throw Q("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(e.args.some(rh)){["start","stop","step"].forEach((r,i)=>{let o=e.args[i];if(o?.type==="STRING"&&o.value==="")throw Q(`GENERATE_SERIES \u306E ${r} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`);if(o?.type==="NUMBER"&&Yr(o)===null)throw Q("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(i<2&&o?.type==="STRING"){if(hd(o.value))throw Q("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(/^\d{4}-/.test(o.value)&&tr(o.value)===null)throw Q("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}});let n=e.args[2];if(n?.type==="NUMBER"){let r=Yr(n);if(r===null)throw Q("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");if(r===0)throw Q("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002")}else if(n?.type==="STRING"){let r=yd(n.value),i=e.args[0];if(i?.type==="STRING"){let o=tr(i.value);o&&Ad(o,r.unit)}}return null}let t=Td(e);if(t.rowCount>Dt)throw Q(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Dt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function Id(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=lh(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>Dt)throw Q(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${Dt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function Yo(e){let t=Td(e);if(t.rowCount>Dt)throw Q(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Dt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let n=[];if(t.kind==="INTEGER"){let r=t.start;for(let i=0;i<t.rowCount;i++)if(n.push(String(r)),i+1<t.rowCount){let o=r+t.step;if(!Number.isSafeInteger(o))throw Q("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");r=o}}else{let r=tr(t.start);if(t.dateUnit==="MONTH"){let i=hl(r);for(let o=0;o<t.rowCount;o++)n.push(sh(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(Sd(r.year+i*t.step,1,1));else{let i=yl(t.start);for(let o=0;o<t.rowCount;o++)n.push(oh(i+o*t.step))}}return{...t,values:n}}function Je(e){uh(e),gd(e),Ed(e),Id(e)}function uh(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;Wo(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var ch=/^(\s*)--\s*@ksql\s+([^:\s]+)\s*:\s*(.*)$/i;function jo(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=fh(e,o),l=e.slice(o,s.contentEnd);if(!/^\s*--/.test(l))break;a=s.next;let c=ch.exec(l);if(c){i=!0;let d=c[2],u=d.toLowerCase(),p=c[3],f=p.indexOf("#"),R=f<0?p:p.slice(0,f),E=R.match(/^\s*/)?.[0].length??0,m=R.trim(),g=o+c.index+c[0].length-p.length+E;ph(u)?r.has(u)?n.push(Be(e,g,{severity:"warning",code:le.HEADER_DUPLICATE_KEY,message:`Duplicate @ksql header key "${u}" was ignored; the first value is retained.`})):(r.add(u),dh(t,u,m,e,g,n)):n.push(Be(e,g,{severity:"warning",code:le.HEADER_UNKNOWN_KEY,message:`Unknown @ksql header key "${d}" was ignored.`}))}o=s.next}return{meta:t,diagnostics:n,hasDirectives:i,headerEnd:a}}function ph(e){return e==="name"||e==="depends_on"||e==="timeout"||e==="dialect"}function dh(e,t,n,r,i,o){if(t==="name"){n?e.name=n:o.push(Be(r,i,{severity:"error",code:le.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(Be(r,i,{severity:"error",code:le.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(Be(r,i,{severity:"error",code:le.HEADER_INVALID_TIMEOUT,message:"@ksql timeout must be a positive integer."})):e.timeout=Number(n);return}n!=="0"&&n!=="1"?o.push(Be(r,i,{severity:"error",code:le.HEADER_INVALID_DIALECT,message:"@ksql dialect must be 0 or 1."})):e.dialect=Number(n)}function fh(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 Ue("\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 ks(e){let t=e.codePointAt(0);return t>=65&&t<=90||t>=97&&t<=122||t===95||t===36||Ny(t)}function Sp(e){let t=e.codePointAt(0);return ks(e)||t>=48&&t<=57}function Bn(e){let t=e.codePointAt(0);return t>=48&&t<=57}function Ny(e){return e>=12352&&e<=12543||e>=13312&&e<=40959||e>=63744&&e<=64255||e>=65281&&e<=65376}var Cy=/^([+-]?)(?:(\d+)(?:\.(\d*))?|\.(\d+))(?:[eE]([+-]?)(\d+))?$/;function Py(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 be(e){let t=Cy.exec(e.trim());if(t===null)return null;let n=Py(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 Ks(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 Tp(e){let t=be(e);return t===null?null:Ks(t)}function Oy(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 fo(e,t){if(e.sign!==t.sign)return e.sign<t.sign?-1:1;if(e.sign===0)return 0;let n=Oy(e,t);return e.sign===-1?n===0?0:n===-1?1:-1:n}function Eo(e,t){let n=be(e),r=be(t);if(n===null||r===null)throw new Error("ArgumentError: compareDecimal requires finite decimal inputs.");return fo(n,r)}var Me="__NO_FROM__";function Gs(e){return e.windowKind===void 0||e.windowKind==="RANKING"}function Ro(e){return e.windowKind==="AGGREGATE"}function $s(e){return e.windowKind==="VALUE"}function Ne(e){return{type:"NUMBER",value:Number(e),raw:e}}function z(e){let t=e.raw??String(e.value);return Tp(t)??t}function Ip(e){let t=1;for(let r of e){if(t>Math.floor(64/2)){let i=t*2;throw new Error(`ArgumentError: expanded grouping set count ${i} exceeds limit 64 (reason=GROUPING_SET_LIMIT_EXCEEDED).`)}t*=2}let n=[{items:[]}];for(let r of e)n=n.flatMap(i=>[{items:[...i.items,r]},{items:[...i.items]}]);return n}function Ly(e){return`${e.tableAlias??""}\0${e.field}`}function te(e){if(e.grouping!==void 0&&e.groupBy.length>0)throw new Error("internal error: SELECT cannot contain both groupBy and grouping.");if(e.grouping===void 0)return e.groupBy.length===0?{type:"NONE"}:{type:"PLAIN",allItems:e.groupBy,sets:[e.groupBy]};let t=new Set,n=[];for(let i of e.grouping.sets)for(let o of i.items){let a=Ly(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 wp(e){return te(e).type!=="NONE"}function bp(e,t){let n=te(e);if(n.type!=="GROUPING_SETS")return null;let r=new Map,i=s=>{let l=t(s),c=r.get(l.canonicalId);if(c)return c;let d={...l,field:s};return r.set(d.canonicalId,d),d},o=n.allItems.map(i).filter((s,l,c)=>c.findIndex(d=>d.canonicalId===s.canonicalId)===l),a=n.sets.map(s=>({items:s.items.map(i)}));return{type:"GROUPING_SETS",source:n.source,allItems:o,sets:a}}var yo=["NOW","TODAY","MONTH_START","NEXT_MONTH_START"],Ws="\0as-of:";function br(e){return`${Ws}${e}`}function Vn(e){if(!e.startsWith(Ws))return null;let t=e.slice(Ws.length);return Nr(t)?t:null}function Nr(e){return yo.includes(e)}function Hs(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=Bs(r,"year"),o=Bs(r,"month"),a=Bs(r,"day"),s=`${Vs(i)}-${mo(o)}-${mo(a)}`,l=`${Vs(i)}-${mo(o)}-01`,c=o===12?i+1:i,d=o===12?1:o+1;return{asOf:new Date(e.getTime()),...t===void 0?{}:{timezone:t},values:{NOW:e.toISOString(),TODAY:s,MONTH_START:l,NEXT_MONTH_START:`${Vs(c)}-${mo(d)}-01`}}}function Bs(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 mo(e){return String(e).padStart(2,"0")}function Vs(e){return String(e).padStart(4,"0")}function go(e){return`'${e.replace(/'/g,"''")}'`}function Wn(e,t=!1){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached aggregate expression labeling.`);if(e.type==="FIELD_REF")return e.field;if(e.type==="NUMBER")return z(e);if(e.type==="STRING_FUNC")return js(e);let n=`${Wn(e.left)}${e.op}${Wn(e.right)}`;return t?n:`(${n})`}function Np(e){if(e.type==="FIELD")return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;if(e.type==="FUNC_FIELD")return js(e.expr);if(e.type==="AGG_FIELD")return yt(e.expr);if(e.type==="ARITH_FIELD")return Wn(e.expr);if(e.type==="GROUPING_FIELD"){let t=e.ref.field;return`GROUPING(${t.tableAlias?`${t.tableAlias}.`:""}${t.field})`}return Ys(e.expr)}function Pp(e){switch(e.type){case"STRING":return go(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"VARIABLE_IN_LIST":return`@${e.name}`;case"KINTONE_FUNC":return`${e.name}()`;case"ARRAY":return`[${e.elements.map(t=>go(t.value)).join(",")}]`;case"IN_LIST":return`(${e.values.map(Pp).join(",")})`;case"ARITH_VALUE":return Wn(e.expr);case"CASE_VALUE":return Ys(e.expr);case"SUBQUERY_IN_LIST":return"(SUBQUERY)";case"SCALAR_SUBQUERY":return"(SUBQUERY)"}}function Cr(e){switch(e.type){case"BINARY":return`${Np(e.left)} ${e.op.replace("_"," ")} ${Pp(e.right)}`;case"NULL_CHECK":return`${Np(e.field)} IS ${e.not?"NOT ":""}NULL`;case"LOGICAL":return`(${Cr(e.left)} ${e.op} ${Cr(e.right)})`;case"NOT":return`NOT (${Cr(e.expr)})`;case"GROUP":return`(${Cr(e.expr)})`;case"BOOLEAN":return e.value?"TRUE":"FALSE";case"EXISTS":return`${e.not?"NOT ":""}EXISTS (SUBQUERY)`}}function Cp(e){return e.type==="ARRAY"?`[${e.elements.map(t=>go(t.value)).join(",")}]`:e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"?yt(e):e.type==="FIELD_REF"||e.type==="ARITH"?Wn(e):fn(e)}function Ys(e){let t=e.branches.map(r=>`WHEN ${Cr(r.condition)} THEN ${Cp(r.result)}`).join(" "),n=e.elseResult===null?"":` ELSE ${Cp(e.elseResult)}`;return`CASE ${t}${n} END`}function _y(e){return e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?yt(e):fn(e)}function js(e){return`${e.func}(${e.args.map(_y).join(",")})`}function fn(e){switch(e.type){case"STRING":return go(e.value);case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return js(e);case"CASE_WHEN":return Ys(e);case"SCALAR_ARITH":return`(${fn(e.left)}${e.op}${fn(e.right)})`;case"CONCAT_OP":return`(${fn(e.left)}||${fn(e.right)})`}}function vy(e){return e.type==="WILDCARD"?"*":e.type==="FIELD_REF"||e.type==="ARITH"?Wn(e,!0):fn(e)}function pe(e,t,n){let r=vy(n);return t?`${e}(DISTINCT ${r})`:`${e}(${r})`}function yt(e){return e.type==="NUMBER"?z(e):e.type==="AGG_REF"?pe(e.func,e.distinct,e.arg):e.type==="AGG_GROUP_KEY"?e.tableAlias?`${e.tableAlias}.${e.field}`:e.field:e.type==="VARIABLE"?`@${e.name}`:`${yt(e.left)}${e.op}${yt(e.right)}`}var Op=20,qs=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"}),_p=Object.freeze(["CURRENT_DATE","CURRENT_TIMESTAMP"]),Pr=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"}),RN=Object.freeze(Object.values(Pr).filter(e=>e!==void 0)),Dy=Object.freeze(["COUNT","SUM","AVG","MAX","MIN"]),Uy=new Set(Dy);function My(e){return Uy.has(e)}var vp=Object.freeze({ROW_NUMBER:"ROW_NUMBER",RANK:"RANK",DENSE_RANK:"DENSE_RANK"}),Or=Object.freeze({TODAY:"TODAY",NOW:"NOW",LOGINUSER:"LOGINUSER",PRIMARY_ORGANIZATION:"PRIMARY_ORGANIZATION"});function Lp(e){return Or[e]!==void 0}var xy=Object.freeze([...lo]),ky=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),Fy=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function Ky(e){return ky.has(e)}function Gy(e){return Fy.has(e)}function $y(e){return Number.isInteger(e)&&e>=1&&e<=31}var mN=Object.freeze(Array.from(new Set([...Object.keys(qs),..._p,...Object.keys(Pr),...Object.keys(vp),...Object.keys(Or),...xy,"IF"]))),By=new Set(["IDENT","BIDENT","COUNT","SUM","AVG","MAX","MIN","GROUP_CONCAT","STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE","ROW_NUMBER","RANK","DENSE_RANK","TODAY","NOW","LOGINUSER","PRIMARY_ORGANIZATION","UPPER","LOWER","TRIM","LTRIM","RTRIM","LENGTH","LENGTH_CHAR","SUBSTRING","SUBSTR","CONCAT","REPLACE","TRANSLATE","COALESCE","NULLIF","ISNULL","REGEXP_LIKE","REGEXP_REPLACE","REGEXP_SUBSTR","LEFT","RIGHT","INSTR","GREATEST","LEAST","LPAD","RPAD","CAST","CONVERT","FORMAT","ROUND","FLOOR","CEIL","CEILING","TRUNCATE","TRUNC","ABS","MOD","POWER","POW","SQRT","YEAR","MONTH","DAY","DAYOFWEEK","QUARTER","WEEK","DATE_FORMAT","DATEDIFF","DATE_ADD","LAST_DAY","IF"]);function Vy(e,t){return e.kind==="("||e.kind==="."||t.kind===")"||t.kind===","||t.kind==="."?!1:t.kind==="("?!By.has(e.kind):!0}var S=class extends Error{constructor(n,r){super(`${n}\uFF08\u4F4D\u7F6E ${r.pos}\u3001\u30C8\u30FC\u30AF\u30F3: \u300C${r.value}\u300D\uFF09`);this.rawMessage=n;this.token=r;this.name="ParseError"}},zs=["\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
+ `),jt=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(!Nr(o))throw new S(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${yo.map(a=>`@${a}`).join("/")} \u3067\u3059`,i)}}parse(){let t=this.parseStatements();if(t.length===0)throw new S("SQL \u6587\u304C\u3042\u308A\u307E\u305B\u3093",this.peek());if(t.length>1)throw new S("\u3053\u306E API \u306F\u5358\u6587\u306E\u307F\u53D7\u3051\u4ED8\u3051\u307E\u3059\uFF08\u8907\u6587\u306F\u30D0\u30C3\u30C1\u5B9F\u884C API \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(this.tempTableRefs.length>0){let n=this.tempTableRefs[0];throw new S(`temp table ${n.value} is not defined in this batch.`,n)}return t[0]}parseStatements(){return this.parseStatementsWithRanges().statements}parseStatementsWithRanges(){let t=[],n=[];for(;;){for(;this.peek().kind===";";)this.advance();if(this.peek().kind==="EOF")break;let r=this.peek();if(t.push(this.parseStatement()),t.length>Op)throw new S(`batch exceeds ${Op} statements.`,r);let i=this.peek();if(i.kind!==";"&&i.kind!=="EOF")throw new S("\u6587\u306E\u533A\u5207\u308A\u306B\u306F ; \u304C\u5FC5\u8981\u3067\u3059",i);let o=this.prev();n.push({start:r.pos,end:o.end??i.pos})}return this.expect("EOF"),{statements:t,statementRanges:n}}parseStatement(){let t=this.peek();switch(t.kind){case"WITH":return this.parseWith();case"SELECT":return this.tryParseUnionChain(this.parseSelect(!0));case"INSERT":return this.parseInsert();case"UPDATE":return this.parseUpdate();case"DELETE":return this.parseDelete();case"REORDER":return this.parseReorder();case"UPSERT":return this.parseUpsert();case"SHOW":return this.parseShow();case"DESCRIBE":case"DESC":return this.parseDescribe();case"EXPLAIN":return this.parseExplain();case"SET":return this.parseSetVariable();case"ASSERT":return this.parseAssert();case"IDENT":{let n=t.value.toUpperCase();if(n==="CREATE")return this.parseCreateTempTable();if(n==="DROP")return this.parseDropTempTable();if(n==="DECLARE")return this.parseDeclareVariable();if(n==="VALIDATE")return this.parseValidate();if(n==="EXIT")return this.parseExit();if(n==="MERGE"){if(!this.capabilities.dialect1)throw new S("MERGE \u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t);return this.parseMergeAsUpsert()}if(n==="GENERATE_SERIES")throw new S("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);if(n==="IMPORT"){if(!this.capabilities.import)throw new S("IMPORT is not supported (capability is disabled).",t);return this.parseImport()}break}default:break}throw new S("SELECT / INSERT / UPDATE / DELETE / REORDER / VALIDATE / WITH / SHOW / DESCRIBE / EXPLAIN / CREATE TEMP TABLE / DROP TEMP TABLE / SET / DECLARE / ASSERT / EXIT \u306E\u3044\u305A\u308C\u304B\u3067\u59CB\u307E\u308B SQL \u6587\u304C\u5FC5\u8981\u3067\u3059",t)}parseSetVariable(){this.expect("SET");let t=this.expect("VARIABLE","SET \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059");this.expect("=");let n=this.peek().kind==="["?this.parseArrayLiteral():this.parseScalarExpr("SET",!0);return{type:"SET_VARIABLE",name:t.value.slice(1).toLowerCase(),expr:n}}parseDeclareVariable(){this.advance();let t=this.expect("VARIABLE","DECLARE \u306E\u5F8C\u306B\u306F\u5909\u6570\u540D\uFF08\u4F8B: @name\uFF09\u304C\u5FC5\u8981\u3067\u3059"),n=this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()==="RELATIVE_DATE";if(n&&this.advance(),this.expect("="),n)return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),annotation:"RELATIVE_DATE",default:this.parseRelativeDateVariableToken()};let r=this.parseScalarExpr("DECLARE",!1);if(r.type==="SCALAR_SUBQUERY")throw new S("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());return{type:"DECLARE_VARIABLE",name:t.value.slice(1).toLowerCase(),default:r}}parseRelativeDateVariableToken(){let t=this.peek(),n=Or[t.kind];if(n==="TODAY"||n==="NOW")return this.parseSqlValue();if(t.kind==="IDENT"&&this.peekAt(1).kind==="("&&re(t.value.toUpperCase()))return this.parseRelativeDateFunction();throw new S("RELATIVE_DATE \u306E\u65E2\u5B9A\u5024\u306B\u306F\u30B5\u30DD\u30FC\u30C8\u5BFE\u8C61\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570\u30C8\u30FC\u30AF\u30F3\u304C\u5FC5\u8981\u3067\u3059",t)}parseScalarExpr(t,n){let r=this.peek();if(r.kind==="VARIABLE"){if(this.peekAt(1).kind==="("&&this.capabilities.dialect1)return this.advance(),this.finishVariableReference(r);throw new S(`${t} \u306E\u53F3\u8FBA\u3067\u306F\u4ED6\u306E\u5909\u6570\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093`,r)}if(r.kind==="NULL")throw new S(`${t} \u306E\u53F3\u8FBA\u3067 NULL \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,r);if(r.kind==="("&&this.peekAt(1).kind==="SELECT"){if(!n)throw new S("DECLARE \u306E\u65E2\u5B9A\u5024\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);this.advance();let a=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(!a.columns.some(l=>l.type==="WILDCARD"||l.type==="PARENT_WILDCARD")&&a.columns.length!==1)throw new S("scalar subquery in SET must return exactly 1 column.",r);return{type:"SCALAR_SUBQUERY",query:a}}if(r.kind==="STRING")return this.advance(),{type:"STRING",value:r.value};let i=Or[r.kind];if(i==="LOGINUSER")throw new S(`${t} \u306E\u53F3\u8FBA\u3067 LOGINUSER() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u30ED\u30B0\u30A4\u30F3\u30E6\u30FC\u30B6\u30FC\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i==="PRIMARY_ORGANIZATION")throw new S(`${t} \u306E\u53F3\u8FBA\u3067 PRIMARY_ORGANIZATION() \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u5B9F\u884C\u74B0\u5883\u5171\u901A\u306E\u512A\u5148\u7D44\u7E54\u89E3\u6C7A\u306F\u672A\u5BFE\u5FDC\u3067\u3059\uFF09`,r);if(i!==void 0)return this.parseSqlValue();let o=this.parseArithAddSub();if(this.rejectNonScalarExpr(o,r,t),o.type==="NUMBER"||o.type==="STRING_FUNC"||o.type==="ARITH")return o;throw new S(`${t} \u306E\u53F3\u8FBA\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u542B\u307E\u306A\u3044\u30B9\u30AB\u30E9\u30FC\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,r)}rejectNonScalarExpr(t,n,r){if(!(t.type==="STRING"||t.type==="NUMBER")){if(t.type==="FIELD_REF"||t.type==="FIELD"||t.type==="VARIABLE"||t.type==="AGG_REF")throw new S(`${r} \u306E\u53F3\u8FBA\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FB\u96C6\u8A08\u95A2\u6570\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n);if(t.type==="ARITH"||t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"||t.type==="AGG_ARITH"){this.rejectNonScalarExpr(t.left,n,r),this.rejectNonScalarExpr(t.right,n,r);return}if(t.type==="STRING_FUNC"){for(let i of t.args)this.rejectNonScalarExpr(i,n,r);return}throw new S(`${r} \u306E\u53F3\u8FBA\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`,n)}}parseCreateTempTable(){this.advance(),this.expectSoftKeyword("TEMP","CREATE \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: CREATE TEMP TABLE #temp AS SELECT ...\uFF09"),this.expectSoftKeyword("TABLE","CREATE TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();this.expect("AS","CREATE TEMP TABLE \u306B\u306F AS SELECT \u304C\u5FC5\u8981\u3067\u3059");let r=this.peek(),i;if(r.kind==="WITH")i=this.parseWith();else if(r.kind==="SELECT")i=this.tryParseUnionChain(this.parseSelect());else throw new S("CREATE TEMP TABLE ... AS \u306E\u5F8C\u306B\u306F SELECT / WITH \u304C\u5FC5\u8981\u3067\u3059",r);return t!==null&&this.bareTempTableNames.add(t),{type:"CREATE_TEMP_TABLE",name:n,query:i}}parseDropTempTable(){this.advance(),this.expectSoftKeyword("TEMP","DROP \u306E\u5F8C\u306B\u306F TEMP TABLE \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: DROP TEMP TABLE #temp\uFF09"),this.expectSoftKeyword("TABLE","DROP TEMP \u306E\u5F8C\u306B\u306F TABLE \u304C\u5FC5\u8981\u3067\u3059");let t=this.isDialect1BareTempTableName(),n=this.parseTempTableName();return t!==null&&this.bareTempTableNames.delete(t),{type:"DROP_TEMP_TABLE",name:n}}expectSoftKeyword(t,n){let r=this.peek();if(r.kind==="IDENT"&&r.value.toUpperCase()===t){this.advance();return}throw new S(n,r)}consumeSoftKeyword(t){return this.isSoftKeyword(t)?(this.advance(),!0):!1}parseTempTableName(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))return this.advance(),t.value;if(this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT"))return this.advance(),`#${t.value}`;throw new S("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u306F # \u3067\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08\u4F8B: #temp\uFF09",t)}isDialect1BareTempTableName(){let t=this.peek();return this.capabilities.dialect1&&(t.kind==="IDENT"||t.kind==="BIDENT")&&!t.value.startsWith("#")?t.value:null}parseShow(){if(this.advance(),!this.consume("APPS"))throw new S("SHOW \u306E\u5F8C\u306B\u306F APPS \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: SHOW APPS\uFF09",this.peek());return{type:"SHOW_APPS"}}parseDescribe(){this.advance();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=gt(t,this.prev());if(r)throw new S("DESCRIBE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u540D\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093",this.prev());return{type:"DESCRIBE",appId:n}}parseExplain(){this.advance();let t=this.peek(),n;if(t.kind==="WITH"){let r=this.parseWith();if(r.type!=="WITH")throw new S("EXPLAIN \u306B\u7D9A\u304F WITH \u53E5\u304C\u4E0D\u6B63\u3067\u3059",t);n=r}else if(t.kind==="SELECT"){let r=this.parseSelect(!0);n=this.tryParseUnionChain(r)}else if(t.kind==="INSERT")n=this.parseInsert();else if(t.kind==="UPSERT")n=this.parseUpsert();else if(t.kind==="UPDATE")n=this.parseUpdate();else if(t.kind==="DELETE")n=this.parseDelete();else if(t.kind==="REORDER")n=this.parseReorder();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="VALIDATE")n=this.parseValidate();else if(t.kind==="IDENT"&&t.value.toUpperCase()==="IMPORT"){if(!this.capabilities.import)throw new S("IMPORT is not supported (capability is disabled).",t);n=this.parseImport()}else throw new S("EXPLAIN \u306E\u5F8C\u306B\u306F SELECT / WITH / INSERT / UPSERT / UPDATE / DELETE / REORDER / VALIDATE \u304C\u5FC5\u8981\u3067\u3059",t);return{type:"EXPLAIN",query:n}}parseImport(){this.advance();let t;this.peek().kind==="UPDATE"&&(this.advance(),t="UPDATE_RECORD_NUMBER"),this.expect("INTO"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=gt(n,this.prev());if(i)throw new S("IMPORT does not support subtables in Phase 1.",this.prev());this.expect("(");let o=[],a=[],s=new Set;for(;;){let N=this.parseIdentifier();if(s.has(N))throw new S(`IMPORT target ${N} is declared more than once.`,this.prev());if(s.add(N),this.peek().kind==="("){this.advance();let v=this.parseIdentList();if(this.expect(")"),new Set(v).size!==v.length)throw new S(`IMPORT subtable ${N} contains duplicate child declarations.`,this.prev());let P;if(this.isSoftKeyword("ROW")){this.advance();for(let x of["ID","SOURCE"]){if(!this.isSoftKeyword(x))throw new S("ROW must be followed by ID SOURCE <header>.",this.peek());this.advance()}P=this.parseIdentifier()}o.push({kind:"SUBTABLE",subtableCode:N,children:v,...P?{rowIdSourceHeader:P}:{}})}else a.push(N),o.push({kind:"FIELD",field:N});if(this.peek().kind!==",")break;this.advance()}if(this.expect(")"),this.expect("FROM"),!this.isSoftKeyword("CSV")&&!this.isSoftKeyword("JSON"))throw new S("IMPORT FROM requires CSV or JSON.",this.peek());let l=this.peek().value.toUpperCase();this.advance();let c=this.parseIdentifier(),d,u=!0,p;if(this.isSoftKeyword("ENCODING")){if(l==="JSON")throw new S("JSON source is UTF-8 only; ENCODING is not allowed.",this.peek());this.advance();let N=this.parseIdentifier().toUpperCase();if(N!=="UTF8"&&N!=="SJIS")throw new S("ENCODING must be UTF8 or SJIS.",this.prev());d=N==="UTF8"?"utf8":"sjis"}if(this.peek().kind==="NOT"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}else if(this.isSoftKeyword("NO")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="HEADER"){if(l==="JSON")throw new S("NO HEADER is CSV-only.",this.peek());this.advance(),this.advance(),u=!1}if(this.isSoftKeyword("COLUMNS")){if(l==="JSON")throw new S("COLUMNS is CSV-only.",this.peek());if(u)throw new S("COLUMNS requires NO HEADER.",this.peek());this.advance(),this.expect("("),p=this.parseIdentList(),this.expect(")")}let f;if(this.peek().kind==="SELECT"){if(l==="JSON")throw new S("SELECT projection is CSV-only.",this.peek());if(f=this.parseSelect(),f.from.cteName!==Me||f.joins.length>0)throw new S("IMPORT projection cannot use FROM or JOIN.",this.prev());if(f.where||f.groupBy.length||f.grouping!==void 0||f.having||f.orderBy.length||f.limit!==null||f.offset!==null)throw new S("IMPORT projection supports SELECT expressions only.",this.prev());if(this.validateImportProjectionScope(f,this.prev()),o.some(N=>N.kind==="SUBTABLE"))throw new S("IMPORT subtable sources cannot use SELECT projection.",this.prev());if(f.columns.length!==a.length)throw new S(`IMPORT projection has ${f.columns.length} columns; target has ${a.length}.`,this.prev())}let R="POSITION",E=!1;if(this.peek().kind==="BY"||this.isSoftKeyword("BY")){if(l==="JSON")throw new S("BY NAME is CSV-only.",this.peek());if(this.advance(),!this.isSoftKeyword("NAME"))throw new S("BY must be followed by NAME in IMPORT.",this.peek());if(this.advance(),!u)throw new S("BY NAME requires HEADER.",this.prev());if(f)throw new S("BY NAME and SELECT projection are mutually exclusive.",this.prev());if(R="BY_NAME",this.isSoftKeyword("IGNORE")){if(this.advance(),!this.isSoftKeyword("UNKNOWN"))throw new S("IGNORE must be followed by UNKNOWN COLUMNS.",this.peek());if(this.advance(),!this.isSoftKeyword("COLUMNS"))throw new S("IGNORE UNKNOWN must be followed by COLUMNS.",this.peek());this.advance(),E=!0}}let m,y;if(this.isSoftKeyword("MATCH")){this.advance();for(let N of["RECORD","NUMBER","SOURCE"]){if(!this.isSoftKeyword(N))throw new S("MATCH must be followed by RECORD NUMBER SOURCE <header>.",this.peek());this.advance()}y=this.parseIdentifier()}this.peek().kind==="ON"&&this.peekAt(1).kind==="DUPLICATE"&&(m=this.parseOnDuplicate());let g;if(this.peek().kind==="REPLACE"||this.isSoftKeyword("REPLACE")){if(this.advance(),!this.isSoftKeyword("SUBTABLES"))throw new S("REPLACE must be followed by SUBTABLES (...).",this.peek());if(this.advance(),this.expect("("),g=this.parseIdentList(),this.expect(")"),new Set(g).size!==g.length)throw new S("REPLACE SUBTABLES contains duplicates.",this.prev())}let T=o.filter(N=>N.kind==="SUBTABLE");if(T.length){if(f)throw new S("IMPORT subtables cannot use SELECT projection.",this.prev());if(l==="JSON"){if(T.some(N=>N.rowIdSourceHeader))throw new S("JSON subtable IMPORT does not accept ROW ID SOURCE.",this.prev());if(g)throw new S("REPLACE SUBTABLES is CSV-only; JSON uses nested-array replacement semantics.",this.prev())}else{if(t!=="UPDATE_RECORD_NUMBER"||!y)throw new S("CSV subtable IMPORT requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.",this.prev());if(R!=="BY_NAME")throw new S("CSV subtable IMPORT requires BY NAME.",this.prev());if(!g)throw new S("CSV subtable IMPORT requires REPLACE SUBTABLES (...).",this.prev());let N=new Set(g);for(let v of T){if(!v.rowIdSourceHeader)throw new S(`CSV subtable ${v.subtableCode} requires ROW ID SOURCE <header>.`,this.prev());if(!N.has(v.subtableCode))throw new S(`IMPORT declares child columns for non-replaced subtable ${v.subtableCode}.`,this.prev())}for(let v of N)if(!T.some(P=>P.subtableCode===v))throw new S(`REPLACE SUBTABLES target ${v} is not declared in INTO.`,this.prev())}}else if(g)throw new S("REPLACE SUBTABLES requires subtable targets in INTO.",this.prev());if(t){if(l!=="CSV")throw new S("IMPORT UPDATE supports CSV only.",this.prev());if(R!=="BY_NAME")throw new S("IMPORT UPDATE requires BY NAME.",this.prev());if(!y)throw new S("IMPORT UPDATE requires MATCH RECORD NUMBER SOURCE <header>.",this.peek());if(m)throw new S("IMPORT UPDATE and ON DUPLICATE are mutually exclusive.",this.prev())}else if(y)throw new S("MATCH RECORD NUMBER SOURCE requires IMPORT UPDATE.",this.prev());let h=this.parseCheckGroups(),I=this.parseDmlControlSuffix();return{type:"IMPORT",appId:r,fields:a,targets:o,source:l==="JSON"?{kind:"JSON",sourceName:c}:{kind:"CSV",sourceName:c,encoding:d,hasHeader:u,mappingMode:R,ignoreUnknownColumns:E,...p?{columns:p}:{},...f?{projection:f}:{}},...t?{writeMode:t,recordNumberSourceHeader:y}:{},...g?{replaceSubtables:g}:{},...m?{keyFields:m}:{},...h,...I}}validateImportProjectionScope(t,n){if(Array.isArray(t)){t.forEach(i=>this.validateImportProjectionScope(i,n));return}if(t===null||typeof t!="object")return;let r=t;if(r.type==="SCALAR_SUBQUERY"||r.type==="SCALAR_SUBQUERY_COL")throw new S("IMPORT projection cannot use subqueries.",n);if(typeof r.tableAlias=="string")throw new S("IMPORT projection cannot use qualified column references.",n);Object.values(r).forEach(i=>this.validateImportProjectionScope(i,n))}parseValidate(){let t=this.advance(),n=this.parseIdentifier(),{appId:r,subtableCode:i}=gt(n,this.prev());if(i)throw new S(`VALIDATE APP${r}$${i} \u306F\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002VALIDATE APP${r} (${i}) \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());let o;if(this.consume("(")){o=[];do{let u=this.parseIdentifier();if(this.consume("(")){let p=this.peek().kind===")"?[]:this.parseIdentList();this.expect(")"),o.push({kind:"SUBTABLE",subtableCode:u,children:p})}else o.push({kind:"FIELD",field:u})}while(this.consume(","));this.expect(")")}let a;this.isSoftKeyword("SUMMARY")&&(this.advance(),a=!0);let s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=this.parseCheckGroups(),c;if(this.consume("INTO")){let u=this.peek();if(u.kind!=="IDENT"||!u.value.startsWith("#"))throw new S("VALIDATE INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",u);c=this.parseTableName()}let d={type:"VALIDATE",appId:r,targets:o,...a?{summary:a}:{},where:s,...l,...c?{errorTable:c}:{}};return this.assertValidateExpressions(d,t),d}assertValidateExpressions(t,n){let r=i=>{if(Array.isArray(i)){i.forEach(r);return}if(i===null||typeof i!="object")return;let o=i;if(o.type==="EXISTS"||o.type==="SUBQUERY_IN_LIST"||o.type==="SCALAR_SUBQUERY")throw new S("VALIDATE \u306E WHERE / CHECK \u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD"&&o.tableAlias!==null&&o.tableAlias!==void 0)throw new S("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(o.type==="FIELD_REF"&&typeof o.field=="string"&&o.field.includes("."))throw new S("VALIDATE \u306E WHERE / CHECK \u3067\u306F\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);Object.values(o).forEach(r)};r(t.where),r(t.checkGroups)}parseAssert(){this.expect("ASSERT");let t=this.peek(),n=this.isSoftKeyword("WARN");n&&(this.requireDialect1(t),this.advance());let r=this.parseAssertCondition(),i=this.parseFlowMessage();return{type:"ASSERT",...r,...n?{warn:!0}:{},...i!==void 0?{message:i}:{}}}parseExit(){let t=this.advance();if(this.requireDialect1(t),!this.isSoftKeyword("SUCCESS"))throw new S("EXIT \u306E\u5F8C\u306B\u306F SUCCESS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.peek().kind!=="IF"&&!this.isSoftKeyword("IF"))throw new S("EXIT SUCCESS \u306E\u5F8C\u306B\u306F IF \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=this.parseAssertCondition();if(!this.consume(","))throw new S("EXIT SUCCESS IF \u306B\u306F\u672B\u5C3E\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u6587\u5B57\u5217\u304C\u5FC5\u8981\u3067\u3059",this.peek());let r=this.expect("STRING","EXIT SUCCESS IF \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return{type:"EXIT",...n,message:r.value}}parseAssertCondition(){let t=this.pos,n=this.parseAssertOperand(),r=this.peek();if(this.consume("BETWEEN")){let a=this.parseAssertOperand();this.expect("AND","ASSERT \u306E BETWEEN \u306B\u306F AND \u304C\u5FC5\u8981\u3067\u3059\uFF08\u4F8B: ASSERT (SELECT COUNT(*) FROM #t) BETWEEN 1 AND 500\uFF09");let s=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:"BETWEEN",right:null,low:a,high:s,text:this.renderTokenRange(t,this.pos)}}let i=this.tryAssertCompareOp();if(i===null)throw new S("ASSERT \u306B\u306F\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08= <> < <= > >=\uFF09\u307E\u305F\u306F BETWEEN \u304C\u5FC5\u8981\u3067\u3059\uFF08\u5024\u306E\u307F\u306E ASSERT \u306F\u4E0D\u53EF\uFF09",r);let o=this.parseAssertOperand();return this.rejectAssertCompound(),{left:n,op:i,right:o,low:null,high:null,text:this.renderTokenRange(t,this.pos)}}parseFlowMessage(){if(this.consume(","))return this.requireDialect1(this.prev()),this.expect("STRING","ASSERT \u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}requireDialect1(t){if(!this.capabilities.dialect1)throw new S("\u3053\u306E\u69CB\u6587\u306B\u306F -- @ksql dialect: 1 \u306E\u5BA3\u8A00\u304C\u5FC5\u8981\u3067\u3059",t)}finishVariableReference(t){let n={type:"VARIABLE",name:t.value.slice(1).toLowerCase()};if(this.peek().kind!=="("||!this.capabilities.dialect1)return n;let r=t.value.slice(1).toUpperCase();if(!Nr(r))throw new S(`\u4F7F\u7528\u53EF\u80FD\u306A as-of \u95A2\u6570\u306F ${yo.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:br(r)}}parseAssertOperand(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: ASSERT (SELECT COUNT(*) * 2 FROM APP100) > 10\uFF09",this.peek());if(!n.columns.some(i=>i.type==="WILDCARD"||i.type==="PARENT_WILDCARD")&&n.columns.length>1)throw new S("scalar subquery in ASSERT must return exactly 1 column.",t);return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="("||t.kind==="-"){let n=this.parseArithAddSub();return this.rejectNonLiteralArith(n,t),n.type==="NUMBER",n}throw this.tryStringFuncName()!==null?new S("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",t):new S("ASSERT \u306E\u5F0F\u306B\u306F\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF09",t)}rejectNonLiteralArith(t,n){if(t.type==="FIELD_REF")throw new S(`ASSERT \u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08FROM \u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u3042\u308A\u307E\u305B\u3093\uFF09: ${t.field}`,n);if(t.type==="STRING_FUNC")throw new S("ASSERT \u306E\u5F0F\u3067\u306F\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\uFF08\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",n);t.type==="ARITH"&&(this.rejectNonLiteralArith(t.left,n),this.rejectNonLiteralArith(t.right,n))}tryAssertCompareOp(){switch(this.peek().kind){case"=":return this.advance(),"=";case"!=":return this.advance(),"!=";case"<>":return this.advance(),"<>";case">":return this.advance(),">";case"<":return this.advance(),"<";case">=":return this.advance(),">=";case"<=":return this.advance(),"<=";default:return null}}rejectAssertCompound(){let t=this.peek();if(t.kind==="AND"||t.kind==="OR")throw new S("ASSERT \u306F AND / OR \u306B\u3088\u308B\u8907\u5408\u6761\u4EF6\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093\uFF08\u8907\u6570\u306E ASSERT \u6587\u306B\u5206\u3051\u3066\u304F\u3060\u3055\u3044\uFF09",t)}renderTokenRange(t,n){let r="";for(let i=t;i<n;i++){let o=this.tokens[i],a;o.kind==="STRING"?a=`'${o.value.replace(/'/g,"''")}'`:o.kind==="BIDENT"?a=`\`${o.value}\``:a=o.value,r.length>0&&Vy(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:Me},a=i?this.parseJoins():[],s=this.consume("WHERE")?this.parseWhereExpr(void 0,!0):null,l=[],c,d=null;if(this.consume("GROUP")){if(this.expect("BY"),this.peek().kind==="DISTINCT"||this.isSoftKeyword("DISTINCT"))throw new S("B65: GROUP BY DISTINCT is not supported in Phase1.",this.peek());if(this.isGroupingSetsStart()?c=this.parseGroupingSetsClause():this.isRollupStart()?c=this.parseRollupClause():this.isCubeStart()?c=this.parseCubeClause():l=this.parseGroupByKeys(),c&&this.peek().kind===",")throw new S("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());this.consume("HAVING")&&(d=this.parseWhereExpr("HAVING"))}let u="CANONICAL",p=[];if(this.consume("ORDER"))this.expect("BY"),p=this.parseOrderBy();else if(this.consume("KORDER")){if(!t)throw new S("KORDER BY \u306F\u5229\u7528\u8005\u3078\u7D50\u679C\u3092\u8FD4\u3059\u30C8\u30C3\u30D7\u30EC\u30D9\u30EB SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",this.prev());u="KINTONE_NATIVE",this.expect("BY"),p=this.parseOrderBy()}let f=this.consume("LIMIT")?this.parseUnsignedInt():null,R=this.consume("OFFSET")?this.parseUnsignedInt():null,E=r.some(y=>y.type==="WINDOW_COL"),m=r.some(y=>this.selectColumnHasAggregate(y));if(E&&(l.length>0||c!==void 0||m))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F GROUP BY / \u96C6\u8A08\u95A2\u6570\u3068\u540C\u3058 SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(c&&u==="KINTONE_NATIVE")throw new S("B65: KORDER BY cannot be combined with grouping sets in Phase1.",this.peek());return this.validateAggregateGroupKeyRefs(r,d,l,c),{type:"SELECT",distinct:n,columns:r,from:o,joins:a,where:s,groupBy:l,...c?{grouping:c}:{},having:d,orderMode:u,orderBy:p,limit:f,offset:R}}parseWith(){this.expect("WITH");let t=this.isSoftKeyword("RECURSIVE")&&this.peekAt(1).kind!=="AS"&&this.peekAt(1).kind!=="(";t&&this.advance();let n=[],r=0;try{do{let o=this.parseIdentifier(),a=this.parseOptionalCteColumnAliases();this.expect("AS"),this.expect("("),this.activeCteDefinition={name:o,recursiveWith:t,phase:"SEED"};let s,l,c=this.peek().kind;if(c==="SHOW")s=this.parseShow();else if(c==="DESCRIBE"||c==="DESC")s=this.parseDescribe();else if(c==="IDENT"&&this.peek().value.toUpperCase()==="GENERATE_SERIES")s=this.parseGenerateSeries();else if(t){let p=this.parseRecursiveCteCandidate(o);s=p.query,l=p.recursiveSpec}else s=this.tryParseUnionChain(this.parseSelect());this.expect(")");let d=t&&this.isSoftKeyword("CYCLE")?this.parseRecursiveCycleClause():null;if(d&&!l)throw new S("CYCLE \u53E5\u306F\u81EA\u5DF1\u53C2\u7167\u3059\u308B\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());if(l&&(l={...l,cycle:d},this.validateRecursiveCte(o,a,l),r++,r>1))throw new S("WITH RECURSIVE \u3067\u5B9A\u7FA9\u3067\u304D\u308B\u518D\u5E30 CTE \u306F1\u500B\u307E\u3067\u3067\u3059",this.prev());if(a&&!l)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306F WITH RECURSIVE \u306E\u518D\u5E30 CTE \u306B\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059",this.prev());let u={name:o,query:s};a&&(u.columnAliases=a),l&&(u.recursiveSpec=l),n.push(u),this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.add(o)}while(this.consume(","));let i=this.tryParseUnionChain(this.parseSelect());return t?{type:"WITH",ctes:n,query:i,recursive:!0}:{type:"WITH",ctes:n,query:i}}finally{this.activeCteDefinition=null,this.provisionalRecursiveCte=null,this.cteNames.clear()}}parseOptionalCteColumnAliases(){if(!this.consume("("))return;let t=[];if(this.peek().kind===")")throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u306F1\u500B\u4EE5\u4E0A\u306E\u5217\u540D\u304C\u5FC5\u8981\u3067\u3059",this.peek());do t.push(this.parseIdentifier());while(this.consume(","));if(this.expect(")"),new Set(t).size!==t.length)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u306B\u540C\u3058\u5217\u540D\u3092\u91CD\u8907\u3057\u3066\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());return t}parseRecursiveCteCandidate(t){let n=this.parseSelect();if(this.peek().kind!=="UNION")return{query:n};this.advance();let r=this.consume("ALL");this.activeCteDefinition={name:t,recursiveWith:!0,phase:"RECURSIVE_TERM"},this.provisionalRecursiveCte={name:t,references:0};let i=this.parseSelect(),o=this.provisionalRecursiveCte.references;this.provisionalRecursiveCte=null;let a={type:"UNION",all:r,left:n,right:i};if(a=this.tryParseUnionChain(a),this.activeCteDefinition={name:t,recursiveWith:!0,phase:"SEED"},o===0)return{query:a};if(!r||a.type!=="UNION"||a.left!==n||a.right!==i)throw new S("\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(o!==1)throw new S("\u518D\u5E30\u9805\u304B\u3089\u306E\u81EA\u5DF1\u53C2\u7167\u306F\u3061\u3087\u3046\u30691\u56DE\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());return{query:a,recursiveSpec:{seed:n,recursiveTerm:i,unionAll:!0,cycle:null}}}parseRecursiveCycleClause(){this.advance();let t=this.parseIdentifier();this.expect("SET","CYCLE \u306E\u5217\u540D\u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentifier();if(!this.isSoftKeyword("TO"))throw new S("CYCLE \u306E mark \u5217\u306E\u5F8C\u306B\u306F TO \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let r=this.expect("STRING","CYCLE TO \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(!this.isSoftKeyword("DEFAULT"))throw new S("CYCLE TO \u306E\u5024\u306E\u5F8C\u306B\u306F DEFAULT \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let i=this.expect("STRING","CYCLE DEFAULT \u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");if(r.value===i.value)throw new S("CYCLE \u306E TO \u3068 DEFAULT \u306B\u306F\u7570\u306A\u308B\u6587\u5B57\u5217\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);return{column:t,markColumn:n,markValue:r.value,defaultValue:i.value,exposePath:!1}}validateRecursiveCte(t,n,r){let i=this.prev(),o=r.seed,a=r.recursiveTerm,{groupBy:s}=a;if(o.columns.length!==a.columns.length)throw new S("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(n&&n.length!==o.columns.length)throw new S("CTE \u306E\u5217\u540D\u30EA\u30B9\u30C8\u3068 SELECT \u306E\u5217\u6570\u3092\u4E00\u81F4\u3055\u305B\u3066\u304F\u3060\u3055\u3044",i);if(o.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD")||a.columns.some(d=>d.type==="WILDCARD"||d.type==="PARENT_WILDCARD"))throw new S("\u518D\u5E30 CTE \u306E seed \u3068\u518D\u5E30\u9805\u3067\u306F\u5217\u3092\u660E\u793A\u7684\u306B\u5C04\u5F71\u3057\u3066\u304F\u3060\u3055\u3044",i);if(a.distinct||s.length>0||a.grouping!==void 0||a.having!==null||a.orderBy.length>0||a.orderMode!=="CANONICAL"||a.limit!==null||a.offset!==null)throw new S("\u518D\u5E30\u9805\u3067\u306F DISTINCT\u3001\u96C6\u8A08\u3001window\u3001GROUP BY\u3001HAVING\u3001ORDER BY\u3001LIMIT\u3001OFFSET \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);if(a.joins.length!==1||a.joins[0].type!=="INNER")throw new S("\u518D\u5E30\u9805\u306F\u81EA\u5DF1\u53C2\u7167\u3068\u7269\u7406 source \u307E\u305F\u306F\u5148\u884C CTE \u306E INNER JOIN 1\u500B\u3067\u69CB\u6210\u3057\u3066\u304F\u3060\u3055\u3044",i);if([a.from.cteName,a.joins[0].table.cteName].filter(d=>d===t).length!==1)throw new S("\u518D\u5E30\u9805\u306E INNER JOIN \u306B\u306F\u81EA\u5DF1\u53C2\u7167\u3092\u3061\u3087\u3046\u30691\u56DE\u542B\u3081\u3066\u304F\u3060\u3055\u3044",i);if(this.containsRecursiveForbiddenNode(a.columns)||this.containsRecursiveForbiddenNode(a.where))throw new S("\u518D\u5E30\u9805\u3067\u306F\u96C6\u8A08\u3001window\u3001DISTINCT\u3001subquery \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",i);let c=n??o.columns.map(d=>this.selectColumnOutputName(d));if(r.cycle){if(c.filter(u=>u===r.cycle.column).length!==1)throw new S("CYCLE \u5217\u306F\u518D\u5E30 CTE \u306E\u51FA\u529B\u52171\u500B\u3078\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059",i);if(c.includes(r.cycle.markColumn))throw new S("CYCLE \u306E mark \u5217\u306F\u518D\u5E30 CTE \u306E\u65E2\u5B58\u51FA\u529B\u5217\u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093",i)}}containsRecursiveForbiddenNode(t){if(Array.isArray(t))return t.some(r=>this.containsRecursiveForbiddenNode(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="AGGREGATE"||n.type==="AGG_REF"||n.type==="ARITH_AGG_COL"||n.type==="WINDOW_COL"||n.type==="SCALAR_SUBQUERY"||n.type==="SCALAR_SUBQUERY_COL"||n.type==="SUBQUERY_IN_LIST"||n.type==="EXISTS"?!0:Object.values(n).some(r=>this.containsRecursiveForbiddenNode(r))}selectColumnOutputName(t){return"alias"in t&&typeof t.alias=="string"?t.alias:t.type==="FIELD"?t.field:null}parseGenerateSeries(){let t=this.advance();if(t.kind!=="IDENT"||t.value.toUpperCase()!=="GENERATE_SERIES")throw new S("GENERATE_SERIES \u304C\u5FC5\u8981\u3067\u3059",t);this.expect("(");let n=[];if(this.peek().kind!==")")do{let i=this.peek();if(i.kind==="STRING"){this.advance(),n.push({type:"STRING",value:i.value});continue}if(i.kind==="VARIABLE"){this.advance(),n.push(this.finishVariableReference(i));continue}let o="";(i.kind==="+"||i.kind==="-")&&(o=i.kind==="-"?"-":"+",this.advance());let a=this.peek();if(a.kind!=="NUMBER")throw new S("GENERATE_SERIES \u306E\u5F15\u6570\u306B\u306F\u6570\u5024\u3001\u6587\u5B57\u5217\u3001\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",a);this.advance(),n.push(Ne(`${o}${a.value}`))}while(this.consume(","));this.expect(")");let r=this.consume("AS")?this.parseIdentifier():"generate_series";return{type:"GENERATE_SERIES",args:n,columnAlias:r}}tryParseUnionChain(t){if(this.peek().kind!=="UNION")return t;if(t.type==="SELECT"&&t.orderMode==="KINTONE_NATIVE")throw new S("KORDER BY \u306F UNION \u5206\u5C90\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance();let n=this.consume("ALL"),r=this.parseSelect(),i={type:"UNION",all:n,left:t,right:r};return this.tryParseUnionChain(i)}parseSelectColumns(){let t=[];do t.push(this.parseSelectColumn());while(this.consume(","));return t}parseSelectArith(t){let n=this.allowSelectArithVariable;this.allowSelectArithVariable=!0;try{return t()}finally{this.allowSelectArithVariable=n}}parseSelectColumn(){if(this.consume("*"))return{type:"WILDCARD"};if(this.isUnsupportedGroupingIdStart())throw new S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){let a=this.parseGroupingRef(),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"GROUPING_COL",ref:a,alias:s?.alias??null},s)}let t=this.tryValueWindowFunc();if(t!==null)return this.parseValueWindowColumn(t);if(this.tryAggregateFunc()===null&&this.hasNestedAggregateWindowInSelectColumn())throw new S(zs,this.peek());if(this.isNonAggregateArithmeticStartWithAggregate())throw new S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.tryAggregateFunc()===null&&this.hasTopLevelTokenBeforeValueEnd("||")){let a=this.parseScalarValueExpr({allowAggregateArgs:!0}),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_VALUE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="VARIABLE"){let a=this.finishVariableReference(this.advance()),s=Vn(a.name),l=null;if(s===null){if(!this.consume("AS"))throw new S("SELECT \u5217\u306E\u30D0\u30C3\u30C1\u5909\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());l=this.parseAliasName()}else this.consume("AS")&&(l=this.parseAliasName());return this.withAliasDisplay({type:"VARIABLE_COL",name:a.name,alias:l?.alias??null},l)}let n=this.tryWindowFunc();if(n!==null)return this.parseWindowColumn(n);if(this.peek().kind==="CASE"){let a=this.parseCaseWhenExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.peek().kind==="IF"){let a=this.parseIfExpr(!0),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"CASE_COL",expr:a,alias:s?.alias??null},s)}if(this.tryStringFuncName()!==null){let a=this.parseStringFuncExpr();if(this.isArithOp(this.peek().kind)){let l=this.parseSelectArith(()=>this.continueArith(a)),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"STRFUNC_COL",expr:a,alias:s?.alias??null},s)}let r=this.tryAggregateFunc();if(r!==null){let a=this.parseAggregateRef(r);if(this.isSoftKeyword("OVER"))return this.parseAggregateWindowColumn(a);if(this.isArithOp(this.peek().kind)){let l=this.continueAggArith(a),c=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_AGG_COL",expr:l,alias:c?.alias??null},c)}let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"AGGREGATE",func:a.func,distinct:a.distinct,arg:a.arg,...a.separator!==void 0?{separator:a.separator}:{},alias:s?.alias??null},s)}if(this.peek().kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let a=this.parseSelect();this.expect(")");let s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"SCALAR_SUBQUERY_COL",query:a,alias:s?.alias??null},s)}if(this.peek().kind==="STRING"){let a=this.expect("STRING").value,s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"LITERAL_COL",value:a,alias:s?.alias??null},s)}if(this.peek().kind==="("||this.peek().kind==="NUMBER"){let a=this.parseSelectArith(()=>this.parseArithAddSub()),s=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:a,alias:s?.alias??null},s)}let i=this.parseColumnFieldRef();if(i==="_p.*")return{type:"PARENT_WILDCARD"};if(i==="_parent.*")throw new S("_parent.* \u306F\u5EC3\u6B62\u3057\u307E\u3057\u305F\u3002_p.* \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044",this.prev());if(this.isArithOp(this.peek().kind)){let a={type:"FIELD_REF",field:i},s=this.parseSelectArith(()=>this.continueArith(a)),l=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"ARITH_COL",expr:s,alias:l?.alias??null},l)}let o=this.consume("AS")?this.parseAliasName():null;return this.withAliasDisplay({type:"FIELD",field:i,alias:o?.alias??null},o)}tryWindowFunc(){return vp[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(Pr[r.kind]!==void 0&&this.tokens[n+1]?.kind==="("){let i=0;for(let o=n+1;o<this.tokens.length;o++){let a=this.tokens[o];if(a.kind==="(")i++;else if(a.kind===")"&&--i===0){let s=this.tokens[o+1];if(s?.kind==="IDENT"&&s.value.toUpperCase()==="OVER")return!0;break}}}if(this.tryValueWindowFunc(n)!==null)return!0;r.kind==="("?t++:r.kind===")"&&t--}return!1}parseWindowColumn(t){if(this.advance(),this.expect("("),this.peek().kind!==")")throw new S(`${t} \u306F\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u305B\u3093`,this.peek());this.expect(")"),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let n=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let o=this.parseQualifiedIdent();n.push({type:"FIELD",tableAlias:o.tableAlias,field:o.field})}while(this.consume(","))}let r=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[];if(this.expect(")"),!this.consume("AS"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let i=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",func:t,partitionBy:n,orderBy:r,alias:i.alias},i)}parseValueWindowColumn(t){this.advance(),this.expect("(");let n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1}),r=1;if(this.consume(",")){let s=this.expect("NUMBER",`${t} \u306E offset \u306F\u975E\u8CA0\u306E\u6574\u6570\u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`);if(r=Number(s.value),!Number.isSafeInteger(r)||r<0)throw new S(`${t} \u306E offset \u306F\u975E\u8CA0\u306E safe integer \u30EA\u30C6\u30E9\u30EB\u3060\u3051\u3067\u3059`,s)}this.expect(")",`${t} \u306F expr \u3068\u7701\u7565\u53EF\u80FD\u306A offset \u306E 2 \u5F15\u6570\u307E\u3067\u3067\u3059`),this.expectSoftKeyword("OVER",`${t} \u306B\u306F OVER (...) \u304C\u5FC5\u8981\u3067\u3059`),this.expect("(");let i=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();i.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}if(!this.consume("ORDER"))throw new S(`${t} \u306E OVER \u306B\u306F ORDER BY \u304C\u5FC5\u8981\u3067\u3059`,this.peek());this.expect("BY");let o=this.parseOrderBy(!1);if(this.expect(")"),this.isArithOp(this.peek().kind)||this.peek().kind==="||")throw new S(zs,this.peek());if(!this.consume("AS"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"VALUE",valueFunc:t,arg:n,offset:r,partitionBy:i,orderBy:o,alias:a.alias},a)}parseAggregateWindowColumn(t){if(!new Set(["SUM","COUNT","AVG","MIN","MAX"]).has(t.func))throw new S(`${t.func} \u306E\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u306F\u672A\u5BFE\u5FDC\u3067\u3059\u3002\u5BFE\u5FDC\u306F SUM / COUNT / AVG / MIN / MAX \u3067\u3059`,this.peek());if(t.distinct)throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u96C6\u8A08\u3067\u306F\u5F15\u6570\u306E DISTINCT \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());this.advance(),this.expect("(");let r=[];if(this.isSoftKeyword("PARTITION")){this.advance(),this.expect("BY","PARTITION \u306E\u5F8C\u306B\u306F BY \u304C\u5FC5\u8981\u3067\u3059");do{let s=this.parseQualifiedIdent();r.push({type:"FIELD",tableAlias:s.tableAlias,field:s.field})}while(this.consume(","))}let i=this.consume("ORDER")?(this.expect("BY"),this.parseOrderBy(!1)):[],o=i.length>0?{unit:"RANGE",source:"DEFAULT"}:null;if(this.isSoftKeyword("ROWS")||this.isSoftKeyword("RANGE")){if(i.length===0)throw new S("\u30D5\u30EC\u30FC\u30E0\u53E5\u306B\u306F OVER (ORDER BY ...) \u304C\u5FC5\u8981\u3067\u3059",this.peek());let s=this.advance().value.toUpperCase();if(!(this.consume("BETWEEN")&&this.consumeSoftKeyword("UNBOUNDED")&&this.consumeSoftKeyword("PRECEDING")&&this.consume("AND")&&this.consumeSoftKeyword("CURRENT")&&this.consumeSoftKeyword("ROW")))throw new S("\u5BFE\u5FDC\u3059\u308B\u30D5\u30EC\u30FC\u30E0\u306F BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW \u3060\u3051\u3067\u3059",this.peek());o={unit:s,source:"EXPLICIT"}}if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S(zs,this.peek());if(!this.consume("AS"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let a=this.parseAliasName();return this.withAliasDisplay({type:"WINDOW_COL",windowKind:"AGGREGATE",aggFunc:t.func,arg:t.arg,frame:o,partitionBy:r,orderBy:i,alias:a.alias},a)}selectColumnHasAggregate(t){return t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"?!0:t.type==="STRFUNC_COL"?t.expr.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_VALUE_COL"?this.scalarValueHasAggregate(t.expr):t.type==="CASE_COL"?this.nodeHasAggregate(t.expr):!1}nodeHasAggregate(t){if(t===null||typeof t!="object")return!1;if(Array.isArray(t))return t.some(r=>this.nodeHasAggregate(r));let n=t;return n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:n.type==="SELECT"||n.type==="SCALAR_SUBQUERY"?!1:Object.values(n).some(r=>this.nodeHasAggregate(r))}stringFuncArgHasAggregate(t){return t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:this.scalarValueHasAggregate(t)}scalarValueHasAggregate(t){return t.type==="STRING_FUNC"?t.args.some(n=>this.stringFuncArgHasAggregate(n)):t.type==="SCALAR_ARITH"||t.type==="CONCAT_OP"?this.scalarValueHasAggregate(t.left)||this.scalarValueHasAggregate(t.right):t.type==="CASE_WHEN"?this.nodeHasAggregate(t):!1}isArithOp(t){return t==="+"||t==="-"||t==="*"||t==="/"||t==="%"}continueAggArith(t){return this.continueAggArithAddSub(this.continueAggArithMulDiv(t))}continueAggArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggPrimary()}}return t}continueAggArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp();t={type:"AGG_ARITH",left:t,op:n,right:this.parseAggArithMulDiv()}}return t}parseAggArithMulDiv(){return this.continueAggArithMulDiv(this.parseAggPrimary())}parseAggPrimary(){if(this.consume("(")){let n=this.continueAggArith(this.parseAggPrimary());return this.expect(")"),n}if(this.peek().kind==="-"){this.advance();let n=this.parseAggPrimary();return n.type==="NUMBER"?Ne(`-${z(n)}`):{type:"AGG_ARITH",left:Ne("0"),op:"-",right:n}}if(this.peek().kind==="NUMBER"){let n=this.advance();return Ne(n.value)}if(this.peek().kind==="VARIABLE"){let n=this.advance();return this.finishVariableReference(n)}let t=this.tryAggregateFunc();if(t!==null){let n=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),n}if(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT"){let n=this.peek(),r=this.parseQualifiedIdent(),i={type:"AGG_GROUP_KEY",field:r.field,...r.tableAlias?{tableAlias:r.tableAlias}:{}};return this.aggregateGroupKeyTokens.set(i,n),i}throw new S("\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u306F\u96C6\u8A08\u95A2\u6570\u307E\u305F\u306F\u6570\u5024\u304C\u5FC5\u8981\u3067\u3059",this.peek())}isNonAggregateArithmeticStartWithAggregate(){let t=this.peek();if(this.tryAggregateFunc()!==null||t.kind==="CASE"||t.kind==="IF"||this.isGroupingFunctionStart()||this.tryStringFuncName()!==null||!["IDENT","BIDENT","VARIABLE","("].includes(t.kind))return!1;let n=0,r=!1;for(let i=this.pos;i<this.tokens.length;i++){let o=this.tokens[i];if(n===0&&i>this.pos&&(o.kind===","||o.kind==="AS"||o.kind==="FROM"||o.kind===";"||o.kind==="EOF"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="AND"||o.kind==="OR"))break;if(this.isArithOp(o.kind)&&(r=!0),Pr[o.kind]!==void 0&&this.tokens[i+1]?.kind==="(")return r;if(o.kind==="(")n++;else if(o.kind===")"&&(n--,n<0))break}return!1}validateAggregateGroupKeyRefs(t,n,r,i){let o=[],a=d=>{if(Array.isArray(d)){d.forEach(a);return}if(d===null||typeof d!="object")return;let u=d;if(!(u.type==="SELECT"||u.type==="SCALAR_SUBQUERY")){if(u.type==="AGG_GROUP_KEY"){o.push(d);return}Object.values(u).forEach(a)}};if(a(t),a(n),o.length===0)return;let s=o[0],l=this.aggregateGroupKeyTokens.get(s)??this.peek();if(i!==void 0)throw new S("ROLLUP / CUBE / GROUPING SETS \u3067\u306F\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u3051\u307E\u305B\u3093\uFF08\u5C0F\u8A08\u30FB\u7DCF\u8A08\u884C\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\uFF09\u3002",l);if(r.length===0)throw new S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u66F8\u304F\u306B\u306F GROUP BY \u304C\u5FC5\u8981\u3067\u3059\uFF08${this.aggregateGroupKeyDisplay(s)}\uFF09\u3002`,l);let c=new Set(r.filter(d=>d.type==="FIELD_NAME").map(d=>d.name));for(let d of o){let u=this.aggregateGroupKeyDisplay(d);if(!c.has(u))throw new S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u306F GROUP BY \u306B\u66F8\u3044\u305F\u8868\u8A18\u3068\u4E00\u81F4\u3059\u308B\u5217\u3060\u3051\u3067\u3059\uFF08${u}\uFF09\u3002\u30B0\u30EB\u30FC\u30D7\u5185\u3067\u5024\u304C\u5B9A\u307E\u3089\u306A\u3044\u305F\u3081\u3067\u3059\u3002`,this.aggregateGroupKeyTokens.get(d)??l)}}aggregateGroupKeyDisplay(t){return t.tableAlias?`${t.tableAlias}.${t.field}`:t.field}parseScalarValueExpr(t={}){let n=this.scalarAllowsAggregateArgs,r=this.scalarAllowsCase;this.scalarAllowsAggregateArgs=t.allowAggregateArgs===!0,this.scalarAllowsCase=t.allowCase!==!1;let i;try{i=this.parseScalarAddSubConcat(this.scalarAllowsCase)}finally{this.scalarAllowsAggregateArgs=n,this.scalarAllowsCase=r}let o=this.peek();if(o.kind==="IS"||o.kind==="="||o.kind==="!="||o.kind==="<>"||o.kind===">"||o.kind==="<"||o.kind===">="||o.kind==="<="||o.kind==="LIKE"||o.kind==="KLIKE"||o.kind==="IN"||o.kind==="BETWEEN")throw new S("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",o);return i}parseScalarAddSubConcat(t){let n=this.parseScalarMulDiv(t);for(;this.peek().kind==="+"||this.peek().kind==="-"||this.peek().kind==="||";){let r=this.advance(),i=this.parseScalarMulDiv(t);n=r.kind==="||"?{type:"CONCAT_OP",left:n,right:i}:{type:"SCALAR_ARITH",left:n,op:r.kind==="+"?"+":"-",right:i}}return n}parseScalarMulDiv(t){let n=this.parseScalarPrimary(t);for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let r=this.advance(),i=r.kind==="*"?"*":r.kind==="/"?"/":"%";n={type:"SCALAR_ARITH",left:n,op:i,right:this.parseScalarPrimary(t)}}return n}parseScalarPrimary(t){let n=this.peek();if(n.kind==="("){if(this.peekAt(1).kind==="SELECT")throw new S("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u30B5\u30D6\u30AF\u30A8\u30EA\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);this.advance();let r=this.parseScalarAddSubConcat(t);return this.expect(")"),r}if(n.kind==="+"||n.kind==="-"){if(this.advance(),this.peek().kind==="+"||this.peek().kind==="-")throw new S("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseScalarPrimary(t);if(r.type==="NUMBER")return Ne(`${n.kind==="-"?"-":"+"}${z(r)}`);if(n.kind==="+")throw new S("\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059",n);return{type:"SCALAR_ARITH",left:Ne("0"),op:"-",right:r}}if(n.kind==="STRING")return this.advance(),{type:"STRING",value:n.value};if(n.kind==="NUMBER")return this.advance(),Ne(n.value);if(n.kind==="VARIABLE")return this.advance(),this.finishVariableReference(n);if(n.kind==="CASE"){if(!t)throw new S("\u3053\u306E\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u3067\u306F CASE \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);return this.parseCaseWhenExpr()}if(this.tryAggregateFunc()!==null)throw new S(this.insideAggregateArg>0?"\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093":"\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306B\u96C6\u7D04\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();if(n.kind==="IDENT"||n.kind==="BIDENT")return this.advance(),this.consume(".")?{type:"FIELD",tableAlias:n.value,field:this.parseIdentifier()}:{type:"FIELD",tableAlias:null,field:n.value};throw new S("\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u304C\u5FC5\u8981\u3067\u3059",n)}hasTopLevelTokenBeforeValueEnd(t){let n=0;for(let r=this.pos;r<this.tokens.length;r++){let i=this.tokens[r].kind;if(i==="("||i==="[")n++;else if(i===")"||i==="]"){if(n===0)break;n--}if(i===t)return!0;if(n===0&&(i===","||i==="AS"||i==="FROM"||i==="WHERE"||i==="WHEN"||i==="THEN"||i==="ELSE"||i==="END"||i===";"||i==="EOF"))break}return!1}parseArithAddSub(){return this.continueArithAddSub(this.parseArithMulDiv())}parseArithMulDiv(){return this.continueArithMulDiv(this.parseArithPrimary())}continueArith(t){return this.continueArithAddSub(this.continueArithMulDiv(t))}continueArithMulDiv(t){for(;this.peek().kind==="*"||this.peek().kind==="/"||this.peek().kind==="%";){let n=this.parseArithOp(),r=this.parseArithPrimary();t={type:"ARITH",left:t,op:n,right:r}}return t}continueArithAddSub(t){for(;this.peek().kind==="+"||this.peek().kind==="-";){let n=this.parseArithOp(),r=this.parseArithMulDiv();t={type:"ARITH",left:t,op:n,right:r}}return t}parseArithPrimary(){if(this.consume("(")){let n=this.parseArithAddSub();return this.expect(")"),n}if(this.allowUnaryPlusNumber&&this.peek().kind==="+"){this.advance();let n=this.expect("NUMBER","\u5358\u9805 + \u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");return Ne(`+${n.value}`)}if(this.peek().kind==="-"){if(this.advance(),this.peek().kind==="-"||this.peek().kind==="+")throw new S("\u5358\u9805\u7B26\u53F7\u3092\u91CD\u306D\u3066\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseArithPrimary();return n.type==="NUMBER"?Ne(`-${z(n)}`):{type:"ARITH",left:Ne("0"),op:"-",right:n}}if(this.tryStringFuncName()!==null)return this.parseStringFuncExpr();let t=this.peek();if(t.kind==="NUMBER")return this.advance(),Ne(t.value);if(this.allowSelectArithVariable&&t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="IDENT"||t.kind==="BIDENT"){this.advance();let n=t.value;if(this.peek().kind==="."){this.advance();let r=this.advance();n=`${n}.${r.value}`}return{type:"FIELD_REF",field:n}}throw new S("\u7B97\u8853\u5F0F\u306E\u30AA\u30DA\u30E9\u30F3\u30C9\u306B\u306F\u8B58\u5225\u5B50\u30FB\u6570\u5024\u30FB\u62EC\u5F27\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t)}parseIfExpr(t=!1){this.advance(),this.expect("(");let n=this.parseCaseCondition(t);this.expect(",");let r=this.parseCaseResult(t);this.expect(",");let i=this.parseCaseResult(t);return this.expect(")"),{type:"CASE_WHEN",branches:[{condition:n,result:r}],elseResult:i}}parseCaseWhenExpr(t=!1){this.expect("CASE");let n=[];for(;this.peek().kind==="WHEN";){this.advance();let i=this.parseCaseCondition(t);this.expect("THEN");let o=this.parseCaseResult(t);n.push({condition:i,result:o})}if(n.length===0)throw new S("CASE \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let r=null;return this.consume("ELSE")&&(r=this.parseCaseResult(t)),this.expect("END"),{type:"CASE_WHEN",branches:n,elseResult:r}}parseCaseCondition(t){return t?this.parseWhereExpr("SELECT_CASE"):this.parseWhereExpr()}parseCaseResult(t=!1){let n=this.peek();if(this.insideAggregateArg>0&&this.tryAggregateFunc()!==null)throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",n);if(n.kind==="[")return this.parseArrayLiteral();let r=this.tryAggregateFunc();if(r!==null&&t){let i=this.parseAggregateRef(r);return this.rejectAggregateWindowOutsideSelect(),this.continueAggArith(i)}return this.hasTopLevelTokenBeforeValueEnd("||")?this.parseScalarValueExpr({allowAggregateArgs:!0}):n.kind==="STRING"?(this.advance(),{type:"STRING",value:n.value}):this.tryStringFuncName()!==null?this.parseStringFuncExpr():this.parseArithAddSub()}tryStringFuncName(){if(this.peekAt(1).kind==="("){let n=qs[this.peek().kind];if(n==="LEFT"||n==="RIGHT")return n}let t=qs[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(_p.includes(r)&&this.peekAt(1).kind==="(")return r;if(this.peekAt(1).kind==="("){let i=r==="DATE_SUB"?"\u3002\u65E5\u4ED8\u3092\u6E1B\u7B97\u3059\u308B\u306B\u306F DATE_ADD \u306E\u52A0\u7B97\u5024\u3078\u8CA0\u6570\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"";throw new S(`\u300C${n.value}\u300D\u3068\u3044\u3046\u95A2\u6570\u306F\u3042\u308A\u307E\u305B\u3093${i}`,n)}}return null}parseStringFuncExpr(){let t=this.peek(),n=this.tryStringFuncName();try{return this.parseStringFuncExprBody()}catch(r){if(!(r instanceof S))throw r;let i=t.value.toUpperCase(),o=n==="DATE_ADD"?`${i} \u306E\u69CB\u6587\u306F DATE_ADD(\u5217, n, '\u5358\u4F4D') \u3067\u3059\u3002`:`${i} \u306E\u5F15\u6570\u69CB\u6587\u304C\u4E0D\u6B63\u3067\u3059\u3002`;throw new S(`${o}${r.rawMessage}`,r.token)}}parseStringFuncExprBody(){let t=this.peek().kind,n=this.tryStringFuncName();if(this.advance(),this.expect("("),t==="CAST"){let i=this.parseStringFuncArg();this.expect("AS");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}if(t==="CONVERT"){let i=this.parseStringFuncArg();this.expect(",");let o=this.parseCastType();return this.expect(")"),{type:"STRING_FUNC",func:"CAST",args:[i,o]}}let r=[];if(this.peek().kind!==")")do r.push(this.parseStringFuncArg());while(this.consume(","));return this.expect(")"),{type:"STRING_FUNC",func:n,args:r}}parseCastType(){let t=this.peek(),n;if(t.kind==="IDENT"||t.kind==="BIDENT")this.advance(),n=t.value.toUpperCase();else throw new S("\u30AD\u30E3\u30B9\u30C8\u5148\u306E\u578B\u540D\uFF08TEXT, NUMBER, INT \u306A\u3069\uFF09\u304C\u5FC5\u8981\u3067\u3059",t);this.peek().kind==="("&&(this.advance(),this.parseUnsignedInt(),this.expect(")"));let r=Wy(n);if(r===null)throw new S(`\u4E0D\u660E\u306A\u30AD\u30E3\u30B9\u30C8\u578B\u300C${n}\u300D\u3002TEXT \u307E\u305F\u306F NUMBER \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);return{type:"STRING",value:r}}parseStringFuncArg(){if(this.scalarAllowsAggregateArgs){let t=this.pos;try{let n=this.parseAggPrimary(),r=this.continueAggArith(n);if(this.hasAggregateOperand(r))return r}catch{}this.pos=t}return this.parseScalarAddSubConcat(this.scalarAllowsCase)}hasAggregateOperand(t){return t.type==="AGG_REF"?!0:t.type==="AGG_ARITH"?this.hasAggregateOperand(t.left)||this.hasAggregateOperand(t.right):!1}tryAggregateFunc(){return Pr[this.peek().kind]??null}parseAggregateRef(t){this.advance(),this.expect("(");let n=this.consume("DISTINCT"),r=n?this.prev():null;if(t==="MODE"&&r)throw new S("MODE \u3067\u306F DISTINCT \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);let i;if(this.consume("*")){if(!My(t))throw new S(`${t}(*) \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30D5\u30A3\u30FC\u30EB\u30C9\u307E\u305F\u306F\u5F0F\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,this.prev());i={type:"WILDCARD"}}else i=this.parseAggregateArgExpr();let o;if(this.isSoftKeyword("SEPARATOR")){let a=this.advance();if(t!=="GROUP_CONCAT")throw new S("SEPARATOR \u306F GROUP_CONCAT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",a);o=this.expect("STRING","SEPARATOR \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value}return this.expect(")"),{type:"AGG_REF",func:t,distinct:n,arg:i,...o!==void 0?{separator:o}:{}}}isAggregateArgEnd(){return this.peek().kind===")"||this.isSoftKeyword("SEPARATOR")}parseAggregateArgExpr(){let t=this.pos;try{let n=this.parseArithAddSub();if(this.isAggregateArgEnd())return n}catch{}this.pos=t,this.insideAggregateArg++;try{let n;try{n=this.parseScalarValueExpr({allowCase:!0,allowAggregateArgs:!1})}catch(r){if(r instanceof S){if(r.message.includes("\u6BD4\u8F03\u30FB\u8FF0\u8A9E"))throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u306B\u6BD4\u8F03\u30FB\u8FF0\u8A9E\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3057\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: SUM(CASE WHEN amount > 0 THEN 1 ELSE 0 END)",r.token);if(r.message.includes("\u96C6\u7D04\u95A2\u6570"))throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r.token)}throw r}if(!this.isAggregateArgEnd())throw new S("\u3053\u306E\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5F62\u5F0F\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002CASE \u3067\u5024\u3092\u660E\u793A\u3059\u308B\u304B\u3001CTE \u3067\u5F0F\u3092\u5217\u306B\u3057\u3066\u304B\u3089\u96C6\u8A08\u3057\u3066\u304F\u3060\u3055\u3044\u3002",this.peek());return this.assertNoNestedAggregate(n),n}finally{this.insideAggregateArg--}}assertNoNestedAggregate(t){let n=r=>{if(r===null||typeof r!="object")return;let i=r;if(i.type==="AGG_REF"||i.type==="AGG_ARITH")throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());for(let o of Object.values(i))n(o)};n(t)}parseTableRef(){let t=this.peek();if(t.kind==="IDENT"&&t.value.toUpperCase()==="GENERATE_SERIES"&&this.peekAt(1).kind==="(")throw new S("GENERATE_SERIES \u306F WITH \u306E CTE \u672C\u4F53\u306B\u66F8\u3044\u3066\u304F\u3060\u3055\u3044\u3002\u4F8B: WITH s AS (GENERATE_SERIES(1, 5)) SELECT generate_series FROM s",t);let n=this.parseTableName();if(this.capabilities.dialect1&&this.bareTempTableNames.has(n)){let s=`#${n}`;return this.tempTableRefs.push({...this.prev(),value:s}),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:s}}if(t.kind==="IDENT"&&n.startsWith("#"))return this.tempTableRefs.push(this.prev()),{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.cteNames.has(n))return{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};if(this.activeCteDefinition?.name===n){if(this.activeCteDefinition.recursiveWith&&this.activeCteDefinition.phase==="RECURSIVE_TERM"&&this.provisionalRecursiveCte?.name===n)return this.provisionalRecursiveCte.references++,{appId:0,alias:this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias(),cteName:n};let s=this.activeCteDefinition.recursiveWith?this.activeCteDefinition.phase==="RECURSIVE_TERM"?"\u518D\u5E30 CTE \u306F seed SELECT UNION ALL recursive SELECT \u306E2\u5206\u5C90\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044":"\u518D\u5E30 CTE \u306E seed \u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093":"CTE \u306E\u5B9A\u7FA9\u5185\u304B\u3089\u81EA\u5206\u81EA\u8EAB\u3092\u53C2\u7167\u3057\u3066\u3044\u307E\u3059\u3002\u81EA\u5DF1\u53C2\u7167\u306B\u306F `WITH RECURSIVE` \u304C\u5FC5\u8981\u3067\u3059";throw new S(s,t)}let{appId:r,subtableCode:i}=gt(n,this.prev());if(i){let s=this.consume("AS")?this.parseTableAliasName():this.tryParseImplicitAlias();return{appId:r,alias:s,cteName:null,subtableCode:i}}let o=this.tryParseImplicitAlias(),a=this.consume("AS")?this.parseTableAliasName():o??n;return{appId:r,alias:a,cteName:null}}parseTableAliasName(){let t=this.peek();if((t.kind==="IDENT"||t.kind==="BIDENT")&&t.value.startsWith("#"))throw new S("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);return this.parseIdentifier()}tryParseImplicitAlias(){let t=this.peek().kind;return t==="IDENT"||t==="BIDENT"?t==="IDENT"&&this.peek().value.toUpperCase()==="VALIDATE"&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="ONLY"||t==="IDENT"&&this.peek().value.toUpperCase()==="CHECK"&&this.peekAt(1).kind==="WHEN"||t==="IDENT"&&this.peek().value.toUpperCase()==="KEY"&&this.peekAt(1).kind==="("?null:this.parseTableAliasName():null}parseJoins(){let t=[];for(;;){let n=this.tryJoinType();if(n===null)break;let r=this.parseTableRef();if(n==="CROSS"){if(this.peek().kind==="ON")throw new S("CROSS JOIN \u306B ON \u53E5\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());t.push({type:"CROSS",table:r,on:null});continue}this.expect("ON");let i=this.parseJoinCondition();t.push({type:n,table:r,on:i})}return t}tryJoinType(){if(this.consume("INNER")){if(this.peek().kind==="CROSS")throw new S("CROSS JOIN \u306B INNER \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"INNER"}if(this.consume("LEFT")){if(this.peek().kind==="CROSS")throw new S("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"LEFT"}if(this.consume("RIGHT")){if(this.peek().kind==="CROSS")throw new S("CROSS JOIN \u306B LEFT / RIGHT \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002",this.peek());return this.expect("JOIN"),"RIGHT"}return this.consume("CROSS")?(this.expect("JOIN"),"CROSS"):this.consume("JOIN")?"INNER":null}parseJoinCondition(){let t=this.parseQualifiedIdent();this.expect("=");let n=this.parseQualifiedIdent();return{left:t,right:n}}parseQualifiedIdent(){let t=this.parseIdentifier();if(this.consume(".")){if(this.peek().kind==="*")throw new S("\u3053\u3053\u3067\u306F * \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());let n=this.parseIdentifier();return{tableAlias:t,field:n}}return{tableAlias:null,field:t}}parseWhereExpr(t=this.groupingFieldContext,n=this.allowRelativeDateFunctions){let r=this.groupingFieldContext,i=this.allowRelativeDateFunctions;this.groupingFieldContext=t??r,this.allowRelativeDateFunctions=n;try{return this.parseOrExpr()}finally{this.groupingFieldContext=r,this.allowRelativeDateFunctions=i}}parseOrExpr(){let t=this.parseAndExpr();for(;this.consume("OR");){let n=this.parseAndExpr();t={type:"LOGICAL",op:"OR",left:t,right:n}}return t}parseAndExpr(){let t=this.parseNotExpr();for(;this.consume("AND");){let n=this.parseNotExpr();t={type:"LOGICAL",op:"AND",left:t,right:n}}return t}parseNotExpr(){if(this.consume("EXISTS")){this.expect("(");let t=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!1,query:t}}if(this.consume("NOT")){if(this.consume("EXISTS")){this.expect("(");let n=this.parseSelect();return this.expect(")"),{type:"EXISTS",not:!0,query:n}}return{type:"NOT",expr:this.parseNotExpr()}}return this.parseCompareExpr()}isArithParen(){let t=0,n=this.pos;for(;n<this.tokens.length;){let r=this.tokens[n].kind;if(r==="(")t++;else if(r===")"&&(t--,t===0)){let i=this.tokens[n+1]?.kind;return i==="*"||i==="/"||i==="+"||i==="-"}n++}return!1}parseCompareExpr(){if(this.peek().kind==="("&&!this.isArithParen()){this.advance();let i=this.parseWhereExpr();return this.expect(")"),{type:"GROUP",expr:i}}let t=this.parseFieldValue();if(this.consume("IS")){let i=this.consume("NOT");return this.expect("NULL"),{type:"NULL_CHECK",field:t,not:i}}if(this.consume("BETWEEN")){let i=this.parseWhereSqlValue();this.expect("AND");let o=this.parseWhereSqlValue();return{type:"LOGICAL",op:"AND",left:{type:"BINARY",op:">=",left:t,right:i},right:{type:"BINARY",op:"<=",left:t,right:o}}}if(this.consume("NOT")){if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"NOT_IN",left:t,right:i}}if(this.consume("LIKE")){let i=this.parseSqlValue();return{type:"BINARY",op:"NOT_LIKE",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"NOT_KLIKE",left:t,right:i}}throw new S("NOT \u306E\u5F8C\u306B\u306F IN\u3001LIKE\u3001KLIKE \u306E\u3044\u305A\u308C\u304B\u304C\u5FC5\u8981\u3067\u3059",this.peek())}if(this.consume("IN")){let i=this.parseInRight();return{type:"BINARY",op:"IN",left:t,right:i}}if(this.consume("KLIKE")){let i=this.parseKlikePattern();return{type:"BINARY",op:"KLIKE",left:t,right:i}}let n=this.parseCompareOp(),r=this.parseWhereSqlValue(n!=="LIKE");return{type:"BINARY",op:n,left:t,right:r}}parseCompareOp(){let t=this.advance();switch(t.kind){case"=":return"=";case"!=":return"!=";case"<>":return"<>";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"LIKE";default:throw new S("\u6BD4\u8F03\u6F14\u7B97\u5B50\uFF08=, !=, >, <, >=, <=, LIKE, KLIKE, IN, IS\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseKlikePattern(){let t=this.peek();if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);throw new S("KLIKE / NOT KLIKE \u306E\u53F3\u8FBA\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u307E\u305F\u306F\u30D0\u30C3\u30C1\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059",t)}parseFieldValue(){if(this.groupingFieldContext==="HAVING"&&this.isNonAggregateArithmeticStartWithAggregate())throw new S(`\u96C6\u8A08\u7B97\u8853\u5F0F\u306F\u96C6\u8A08\u95A2\u6570\u304B\u3089\u59CB\u307E\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08${this.peek().value}\uFF09\u3002`,this.peek());if(this.isUnsupportedGroupingIdStart())throw new S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(this.groupingFieldContext==="FORBIDDEN"||this.insideAggregateArg>0)throw new S("B65: GROUPING() is only allowed in SELECT, SELECT CASE conditions, HAVING, and direct ORDER BY.",this.peek());return{type:"GROUPING_FIELD",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let r=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_FIELD",expr:this.continueArith(r)}:{type:"FUNC_FIELD",expr:r}}let t=this.tryAggregateFunc();if(t!==null){if(this.insideAggregateArg>0)throw new S("\u96C6\u8A08\u95A2\u6570\u306E\u5F15\u6570\u5185\u306B\u96C6\u8A08\u95A2\u6570\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let r=this.parseAggregateRef(t);return this.rejectAggregateWindowOutsideSelect(),this.isArithOp(this.peek().kind)?{type:"AGG_FIELD",expr:this.continueAggArith(r)}:{type:"FIELD",tableAlias:null,field:pe(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 Ne(`+${r.value}`)}return this.allowRelativeDateFunctions&&n.kind==="IDENT"&&this.peekAt(1).kind==="("&&re(n.value.toUpperCase())?this.parseRelativeDateFunction():this.parseSqlValue()}parseRelativeDateFunction(){let t=this.expect("IDENT"),n=t.value.toUpperCase();switch(this.expect("("),n){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return this.expect(")",`${n}() \u306F\u5F15\u6570\u3092\u53D7\u3051\u53D6\u308A\u307E\u305B\u3093`),{type:"KINTONE_FUNC",name:n,args:{kind:"NONE"}};case"FROM_TODAY":{let r="";if(this.consume("-")&&(r="-"),this.peek().kind==="+")throw new S("FROM_TODAY \u306E offset \u306B + \u7B26\u53F7\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let i=this.expect("NUMBER","FROM_TODAY \u306B\u306F\u6574\u6570 offset \u3068\u5358\u4F4D\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(i.value))throw new S("FROM_TODAY \u306E offset \u306F10\u9032\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);let o=`${r}${i.value}`,a=Number(o);if(!Number.isSafeInteger(a))throw new S("FROM_TODAY \u306E offset \u306F\u5B89\u5168\u306A\u6574\u6570\u306E\u7BC4\u56F2\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",i);this.expect(",","FROM_TODAY \u306E offset \u3068\u5358\u4F4D\u306F\u30AB\u30F3\u30DE\u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let s=this.expect("IDENT","FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F\u975E\u5F15\u7528\u306E DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059"),l=s.value.toUpperCase();if(!Ky(l))throw new S("FROM_TODAY \u306E\u5358\u4F4D\u306B\u306F DAYS / WEEKS / MONTHS / YEARS \u304C\u5FC5\u8981\u3067\u3059",s);this.expect(")","FROM_TODAY \u306F offset \u3068\u5358\u4F4D\u306E2\u5F15\u6570\u3060\u3051\u3092\u53D7\u3051\u53D6\u308A\u307E\u3059");let c=String(a===0?0:a);return{type:"KINTONE_FUNC",name:n,args:{kind:"FROM_TODAY",offset:a,offsetText:c,unit:l}}}case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":{let r=null;if(this.peek().kind!==")"){let i=this.expect("IDENT",`${n} \u306E\u66DC\u65E5\u306B\u306F\u975E\u5F15\u7528\u306E SUNDAY ... SATURDAY \u304C\u5FC5\u8981\u3067\u3059`),o=i.value.toUpperCase();if(!Gy(o))throw new S(`${n} \u306E\u66DC\u65E5\u304C\u4E0D\u6B63\u3067\u3059`,i);r=o}return this.expect(")",`${n} \u306F\u66DC\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"WEEK",weekday:r}}}case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":{let r=null;if(this.peek().kind!==")"){let i=this.peek();if(i.kind==="IDENT"&&i.value.toUpperCase()==="LAST")this.advance(),r="LAST";else if(i.kind==="NUMBER"&&/^\d+$/.test(i.value)){this.advance();let o=Number(i.value);if(!$y(o))throw new S(`${n} \u306E\u65E5\u306F 1 \u304B\u3089 31 \u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,i);r=o}else throw new S(`${n} \u306E\u65E5\u306F\u975E\u5F15\u7528\u306E LAST \u307E\u305F\u306F 1 \u304B\u3089 31 \u304C\u5FC5\u8981\u3067\u3059`,i)}return this.expect(")",`${n} \u306F\u65E5\u3092\u6700\u59271\u500B\u3060\u3051\u53D7\u3051\u53D6\u308A\u307E\u3059`),{type:"KINTONE_FUNC",name:n,args:{kind:"MONTH",day:r}}}default:throw new S(`\u672A\u77E5\u306E\u76F8\u5BFE\u65E5\u4ED8\u95A2\u6570 ${n} \u3067\u3059`,t)}}parseSqlValue(){let t=this.peek();if(t.kind==="VARIABLE")return this.advance(),this.finishVariableReference(t);if(t.kind==="STRING")return this.advance(),{type:"STRING",value:t.value};if(Lp(t.kind))return this.advance(),this.expect("("),this.expect(")"),{type:"KINTONE_FUNC",name:Or[t.kind]};if(t.kind==="CASE")return{type:"CASE_VALUE",expr:this.parseCaseWhenExpr()};if(t.kind==="IF")return{type:"CASE_VALUE",expr:this.parseIfExpr()};if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let n=this.parseSelect();if(this.expect(")"),this.isArithOp(this.peek().kind))throw new S("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u306E\u5F8C\u306B\u7B97\u8853\u6F14\u7B97\u5B50\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u30B5\u30D6\u30AF\u30A8\u30EA\u5185\u3067\u8A08\u7B97\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: (SELECT AVG(\u5408\u8A08\u8CBB\u7528)/2 FROM APP88)\uFF09",this.peek());return{type:"SCALAR_SUBQUERY",query:n}}if(t.kind==="NUMBER"||t.kind==="IDENT"||t.kind==="BIDENT"||t.kind==="("||t.kind==="-"||this.tryStringFuncName()!==null){let n=this.parseArithAddSub();return n.type==="NUMBER"?n:{type:"ARITH_VALUE",expr:n}}throw new S("\u5024\uFF08\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u30FBTODAY()\u30FBNOW()\u30FBLOGINUSER()\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}parseInRight(){if(this.consume("(")){let n=this.parseInListOrSubquery();return this.expect(")"),n}let t=this.expect("VARIABLE","IN / NOT IN \u306E\u5F8C\u306B\u306F (\u5024\u30EA\u30B9\u30C8\u307E\u305F\u306F SELECT) \u304B\u914D\u5217\u5909\u6570\u304C\u5FC5\u8981\u3067\u3059");return this.peek().kind==="("&&this.capabilities.dialect1?{type:"IN_LIST",values:[this.finishVariableReference(t)]}:{type:"VARIABLE_IN_LIST",name:t.value.slice(1).toLowerCase()}}parseInListOrSubquery(){if(this.peek().kind==="SELECT"){let t=this.parseSelect(),n=t.columns[0],r=n&&n.type==="FIELD"?n.alias??n.field:null;return{type:"SUBQUERY_IN_LIST",query:t,column:r}}return{type:"IN_LIST",values:this.parseInValues()}}parseInValues(){let t=[],n="IN \u30EA\u30B9\u30C8\u306B\u306F\u6587\u5B57\u5217\u3001\u6570\u5024\u3001\u30D0\u30C3\u30C1\u5909\u6570\u3001\u307E\u305F\u306F\u5358\u72EC\u306E LOGINUSER() \u304C\u5FC5\u8981\u3067\u3059",r="LOGINUSER() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";do{let i=this.advance();if(i.kind==="STRING")t.push({type:"STRING",value:i.value});else if(i.kind==="NUMBER")t.push(Ne(i.value));else if(i.kind==="-"||i.kind==="+"){let o=this.peek();if(o.kind!=="NUMBER")throw new S(n,i);this.advance();let a=i.kind==="-"?"-":"+";t.push(Ne(`${a}${o.value}`))}else if(i.kind==="VARIABLE")t.push(this.finishVariableReference(i));else if(i.kind==="LOGINUSER"){if(t.length>0)throw new S(r,i);if(this.expect("(","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","LOGINUSER \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"LOGINUSER"}),this.peek().kind===",")throw new S(r,this.peek())}else if(i.kind==="PRIMARY_ORGANIZATION"){let o="PRIMARY_ORGANIZATION() \u306F IN / NOT IN \u30EA\u30B9\u30C8\u306E\u5358\u72EC\u8981\u7D20\u3068\u3057\u3066\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059";if(t.length>0)throw new S(o,i);if(this.expect("(","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),this.expect(")","PRIMARY_ORGANIZATION \u306E\u76F4\u5F8C\u306B\u306F\u7A7A\u5F15\u6570\u306E () \u304C\u5FC5\u8981\u3067\u3059"),t.push({type:"KINTONE_FUNC",name:"PRIMARY_ORGANIZATION"}),this.peek().kind===",")throw new S(o,this.peek())}else throw new S(n,i)}while(this.consume(","));return t}parseIdentList(){let t=[];do t.push(this.parseIdentifier());while(this.consume(","));return t}parseGroupByKeys(){let t=[];do{if(t.length>0&&(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart()))throw new S("B65: ordinary GROUP BY items cannot be mixed with grouping elements.",this.peek());t.push(this.parseGroupByKey())}while(this.consume(","));return t}isRollupStart(){return this.isSoftKeyword("ROLLUP")&&this.peekAt(1).kind==="("}isCubeStart(){return this.isSoftKeyword("CUBE")&&this.peekAt(1).kind==="("}isGroupingSetsStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SETS"&&this.peekAt(2).kind==="("}isGroupingFunctionStart(){return this.isSoftKeyword("GROUPING")&&this.peekAt(1).kind==="("}isUnsupportedGroupingIdStart(){return this.isSoftKeyword("GROUPING_ID")&&this.peekAt(1).kind==="("}groupingItemSyntaxKey(t){return`${t.tableAlias??""}\0${t.field}`}groupingAllItems(t){let n=new Set,r=[];for(let i of t)for(let o of i.items){let a=this.groupingItemSyntaxKey(o);n.has(a)||(n.add(a),r.push(o))}return r}parseGroupingFieldItem(){if(this.isRollupStart()||this.isGroupingSetsStart()||this.isCubeStart())throw new S("B65: nested grouping elements are not supported in Phase1.",this.peek());let t=this.peek(),n=this.parseQualifiedIdent();if(this.peek().kind!==","&&this.peek().kind!==")")throw new S("B65: grouping items must be physical field references only.",t);return{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}parseGroupingSetsClause(){if(this.advance(),this.advance(),this.expect("("),this.peek().kind===")")throw new S("B65: GROUPING SETS requires at least one grouping set; use (()) for the empty set.",this.peek());let t=[];do if(this.consume("(")){let n=[];if(this.peek().kind!==")")do n.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")"),t.push({items:n})}else t.push({items:[this.parseGroupingFieldItem()]});while(this.consume(","));return this.expect(")"),{type:"GROUPING_SETS",source:"GROUPING_SETS",allItems:this.groupingAllItems(t),sets:t}}parseRollupClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new S("B65: ROLLUP requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Array.from({length:t.length+1},(r,i)=>({items:t.slice(0,t.length-i)}));return{type:"GROUPING_SETS",source:"ROLLUP",allItems:this.groupingAllItems(n),sets:n}}parseCubeClause(){if(this.advance(),this.expect("("),this.peek().kind===")")throw new S("B65: CUBE requires at least one field.",this.peek());let t=[];do t.push(this.parseGroupingFieldItem());while(this.consume(","));this.expect(")");let n=Ip(t);return{type:"GROUPING_SETS",source:"CUBE",allItems:this.groupingAllItems(n),sets:n}}parseGroupingRef(){let t=this.advance();if(this.expect("("),this.peek().kind===")")throw new S("B65: GROUPING() requires exactly one physical field argument.",this.peek());let n=this.parseQualifiedIdent();if(this.peek().kind!==")")throw new S("B65: GROUPING() requires exactly one physical field argument.",t);return this.expect(")"),{type:"GROUPING_REF",field:{type:"FIELD",tableAlias:n.tableAlias,field:n.field}}}parseGroupByKey(){if(this.tryStringFuncName()!==null){let n=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(n)}:{type:"FUNC_KEY",expr:n}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let t=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let n={type:"FIELD_REF",field:t};return{type:"ARITH_KEY",expr:this.continueArith(n)}}return{type:"FIELD_NAME",name:t}}parseOrderBy(t=!0){let n=[];do{let r=this.parseOrderByKey(t),i="ASC";this.consume("DESC")?i="DESC":this.consume("ASC"),n.push({key:r,direction:i})}while(this.consume(","));return n}parseOrderByKey(t=!0){let n=this.tryAggregateFunc();if(n!==null){let i=this.pos,o=this.parseAggregateRef(n);if(this.isSoftKeyword("OVER"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek());this.pos=i}if(this.isUnsupportedGroupingIdStart())throw new S("B65: GROUPING_ID is not supported in Phase1.",this.peek());if(this.isGroupingFunctionStart()){if(!t)throw new S("B65: GROUPING() is not allowed in window ORDER BY.",this.peek());return{type:"GROUPING_KEY",ref:this.parseGroupingRef()}}if(this.tryStringFuncName()!==null){let i=this.parseStringFuncExpr();return this.isArithOp(this.peek().kind)?{type:"ARITH_KEY",expr:this.continueArith(i)}:{type:"FUNC_KEY",expr:i}}if(this.peek().kind==="("||this.peek().kind==="NUMBER")return{type:"ARITH_KEY",expr:this.parseArithAddSub()};let r=this.parseFieldPath();if(this.isArithOp(this.peek().kind)){let i={type:"FIELD_REF",field:r};return{type:"ARITH_KEY",expr:this.continueArith(i)}}return{type:"FIELD_NAME",name:r}}parseInsert(){this.expect("INSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=gt(t,this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let d=this.parseSelect();if(this.isApplyBlockStart()||this.prev().kind==="IDENT"&&this.prev().value.toUpperCase()==="APPLY"&&(this.peek().kind==="IDENT"||this.peek().kind==="BIDENT")&&this.peekAt(1).kind==="(")throw new S("INSERT INTO ... SELECT \u306F APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r)throw new S("INSERT INTO ... SELECT \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3067\u306F\u672A\u5BFE\u5FDC\u3067\u3059",this.prev());let u=this.parseCheckGroups(),p=this.parseDmlControlSuffix();return{type:"INSERT_SELECT",appId:n,fields:i,select:d,...u,...p}}this.expect("VALUES");let o=[];do{this.expect("(");let d=this.parseInsertRow(i.length,!0);this.expect(")"),o.push(d)}while(this.consume(","));let a=[];for(;this.isApplyBlockStart();)a.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(a.length>0&&this.isSoftKeyword("CHECK"))throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(a.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let s=this.parseCheckGroups(),l=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new S("APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&s.checkGroups)throw new S("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(l.validateOnly||l.onErrorSkip))throw new S("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let c=a.length>0?{applyBlocks:a}:{};return r?{type:"INSERT",appId:n,subtableCode:r,fields:i,values:o,...c,...s,...l}:{type:"INSERT",appId:n,fields:i,values:o,...c,...s,...l}}parseUpsert(){this.expect("UPSERT"),this.expect("INTO"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=gt(t,this.prev());if(r)throw new S("UPSERT \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("(");let i=this.parseIdentList();if(this.expect(")"),this.peek().kind==="SELECT"){let u=this.parseSelect(),p=this.parseOnDuplicate();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());let f=this.parseCheckGroups(),R=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("UPSERT INTO ... SELECT \u306F ON INSERT / ON UPDATE APPLY \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.peek());return{type:"UPSERT_SELECT",appId:n,fields:i,select:u,keyFields:p,...f,...R}}this.expect("VALUES");let o=[];do this.expect("("),o.push(this.parseInsertRow(i.length,!1)),this.expect(")");while(this.consume(","));let a=this.parseOnDuplicate(),s=this.parseUpsertApplyBranches(),l=s.onInsertApplyBlocks!==void 0||s.onUpdateApplyBlocks!==void 0;if(l&&this.isSoftKeyword("CHECK"))throw new S("UPSERT \u306E\u5206\u5C90 APPLY \u306F CHECK \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());if(l&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("UPSERT \u306E\u5206\u5C90 APPLY \u306F ON ERROR SKIP / REJECT LIMIT \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isUpsertApplyBranchStart()||this.isApplyBlockStart())throw new S("ON INSERT / ON UPDATE APPLY \u306F CHECK / VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{type:"UPSERT",appId:n,fields:i,values:o,keyFields:a,...s,...c,...d}}parseOnDuplicate(){if(this.capabilities.dialect1&&this.consumeSoftKeyword("KEY")){this.expect("(","KEY \u306E\u5F8C\u306B\u306F (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059");let n=this.parseIdentList();if(this.expect(")"),n.length===0)throw new S("KEY \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return n}if(this.expectKeyword("ON","UPSERT \u306B\u306F ON DUPLICATE (\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9) \u304C\u5FC5\u8981\u3067\u3059"),!this.consume("DUPLICATE"))throw new S("ON \u306E\u5F8C\u306B\u306F DUPLICATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.expect("(");let t=this.parseIdentList();if(this.expect(")"),t.length===0)throw new S("ON DUPLICATE \u306B\u306F\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.prev());return t}parseMergeAsUpsert(){let t=this.advance();this.expect("INTO","MERGE \u306E\u5F8C\u306B\u306F INTO \u304C\u5FC5\u8981\u3067\u3059"),this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=gt(n,this.prev());if(i)throw new S("MERGE \u306F\u307E\u3060\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());this.expect("AS","MERGE \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseTableAliasName();this.expectSoftKeyword("USING","MERGE \u306B\u306F USING <source> AS alias \u304C\u5FC5\u8981\u3067\u3059");let a=this.pos,s=this.parseTableRef();if(!this.tokens.slice(a,this.pos).some(I=>I.kind==="AS")||s.alias===null)throw new S("MERGE \u306E USING \u30BD\u30FC\u30B9\u306B\u306F AS alias \u304C\u5FC5\u8981\u3067\u3059",this.peek());let c=s.alias;this.expect("ON","MERGE \u306B\u306F ON t.key = s.key \u306E\u5358\u4E00\u30AD\u30FC\u7B49\u5024\u304C\u5FC5\u8981\u3067\u3059");let d=this.parseMergeQualifiedField("MERGE \u306E ON \u5DE6\u8FBA\u306F targetAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(!this.consume("="))throw new S("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\uFF08t.key = s.key\uFF09\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u3084\u975E\u7B49\u5024\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let u=this.parseMergeQualifiedField("MERGE \u306E ON \u53F3\u8FBA\u306F sourceAlias.key \u306E\u5F62\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044");if(d.alias.toLowerCase()!==o.toLowerCase()||u.alias.toLowerCase()!==c.toLowerCase())throw new S(`MERGE \u306E ON \u306F ${o}.key = ${c}.key \u306E\u5225\u540D\u4FEE\u98FE\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`,t);if(this.peek().kind==="AND"||this.peek().kind==="OR")throw new S("MERGE \u306E ON \u306F\u5358\u4E00\u30AD\u30FC\u306E\u7B49\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002\u8907\u6570\u6761\u4EF6\u306F\u9023\u7D50\u30AD\u30FC\u30D5\u30A3\u30FC\u30EB\u30C9\u3067\u7F6E\u304D\u63DB\u3048\u3066\u304F\u3060\u3055\u3044",this.peek());let p=null,f=null,R=null;for(;this.peek().kind==="WHEN";){let I=this.advance();if(this.consume("NOT")){if(this.expectSoftKeyword("MATCHED","WHEN NOT \u306E\u5F8C\u306B\u306F MATCHED \u304C\u5FC5\u8981\u3067\u3059"),f!==null)throw new S("WHEN NOT MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);if(this.expect("THEN","WHEN NOT MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("INSERT","WHEN NOT MATCHED THEN \u306E\u5F8C\u306B\u306F INSERT \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT \u306B\u306F\u5217\u30EA\u30B9\u30C8\u304C\u5FC5\u8981\u3067\u3059"),f=this.parseIdentList(),this.expect(")"),this.expect("VALUES","MERGE INSERT \u306E\u5217\u30EA\u30B9\u30C8\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059"),this.expect("(","MERGE INSERT VALUES \u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),R=this.parseMergeValueList(),this.expect(")"),f.length!==R.length)throw new S("MERGE INSERT \u306E\u5217\u6570\u3068 VALUES \u306E\u5024\u6570\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093",I)}else{if(this.expectSoftKeyword("MATCHED","WHEN \u306E\u5F8C\u306B\u306F MATCHED \u307E\u305F\u306F NOT MATCHED \u304C\u5FC5\u8981\u3067\u3059"),p!==null)throw new S("WHEN MATCHED \u53E5\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059",I);this.expect("THEN","WHEN MATCHED \u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059"),this.expect("UPDATE","WHEN MATCHED THEN \u306E\u5F8C\u306B\u306F UPDATE \u304C\u5FC5\u8981\u3067\u3059"),this.expect("SET","WHEN MATCHED THEN UPDATE \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059"),p=this.parseMergeAssignments(o)}}if(p===null||f===null||R===null)throw new S("WHEN MATCHED / WHEN NOT MATCHED \u306E\u4E21\u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u66F4\u65B0\u306E\u307F\u306F UPDATE ... FROM\u3001\u633F\u5165\u306E\u307F\u306F INSERT ... SELECT \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044\uFF09",this.peek());if(!f.some(I=>I.toLowerCase()===d.field.toLowerCase()))throw new S(`MERGE \u306E ON \u30AD\u30FC ${d.field} \u306F INSERT \u5217\u30EA\u30B9\u30C8\u306B\u542B\u3081\u3066\u304F\u3060\u3055\u3044`,t);let E=new Map;f.forEach((I,N)=>E.set(I.toLowerCase(),R[N]));for(let I of p){let N=I.field.toLowerCase(),v=E.get(N);if(v!==void 0&&!this.mergeExpressionsEqual(v,I.value,c))throw new S(`MERGE \u306E\u5217 ${I.field} \u306F\u4E21\u53E5\u306E\u5F0F\u304C\u4E00\u81F4\u3059\u308B\u5834\u5408\u306E\u307F MERGE \u3092 UPSERT \u3078\u6B63\u898F\u5316\u3067\u304D\u307E\u3059`,t);v===void 0&&(f.push(I.field),R.push(I.value),E.set(N,I.value))}let m=R.map(I=>this.mergeValueToSelectColumn(I,c,t)),y=s.cteName!==null?{...s,alias:null}:{...s,alias:`APP${s.appId}${s.subtableCode?`$${s.subtableCode}`:""}`},g={type:"SELECT",distinct:!1,columns:m,from:y,joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null},T=this.parseCheckGroups(),h=this.parseDmlControlSuffix();return{type:"UPSERT_SELECT",appId:r,fields:f,select:g,keyFields:[d.field],...T,...h}}parseMergeQualifiedField(t){let n=this.peek(),r=this.parseFieldPath(),i=this.splitQualifiedField(r);if(i.alias===null)throw new S(t,n);return{alias:i.alias,field:i.field}}parseMergeAssignments(t){let n=[];do{let r=this.peek(),i=this.parseFieldPath(),o=this.splitQualifiedField(i);if(o.alias!==null&&o.alias.toLowerCase()!==t.toLowerCase())throw new S(`MERGE UPDATE SET \u306E\u5DE6\u8FBA\u306F target alias ${t} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);this.expect("="),n.push({field:o.field,value:this.parseAssignmentValue()})}while(this.consume(","));return n}parseMergeValueList(){let t=[];if(this.peek().kind===")")return t;do t.push(this.parseAssignmentValue());while(this.consume(","));return t}mergeExpressionsEqual(t,n,r){return this.mergeNormalizedValueEqual(this.normalizeMergeValue(t,r,!0),this.normalizeMergeValue(n,r,!0))}normalizeMergeValue(t,n,r=!1){if(Array.isArray(t))return t.map(o=>this.normalizeMergeValue(o,n,r));if(t===null||typeof t!="object")return t;let i=t;if(r&&i.type==="NUMBER")return{type:"NUMBER",value:i.value};if(i.type==="SOURCE_FIELD")return String(i.alias).toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{type:"FIELD_REF",field:i.field};if(i.type==="FIELD_REF"&&typeof i.field=="string"){let o=this.splitQualifiedField(i.field);return o.alias!==null&&o.alias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,field:o.field}}return i.type==="FIELD"&&typeof i.tableAlias=="string"?i.tableAlias.toLowerCase()!==n.toLowerCase()?{type:"INVALID_SOURCE"}:{...i,tableAlias:null}:Object.fromEntries(Object.entries(i).map(([o,a])=>[o,this.normalizeMergeValue(a,n,r)]))}mergeNormalizedValueEqual(t,n){if(t===n)return!0;if(Array.isArray(t)||Array.isArray(n))return Array.isArray(t)&&Array.isArray(n)&&t.length===n.length&&t.every((s,l)=>this.mergeNormalizedValueEqual(s,n[l]));if(t===null||n===null||typeof t!="object"||typeof n!="object")return!1;let r=t,i=n,o=Object.keys(r),a=Object.keys(i);return o.length===a.length&&o.every(s=>Object.prototype.hasOwnProperty.call(i,s)&&this.mergeNormalizedValueEqual(r[s],i[s]))}mergeValueToSelectColumn(t,n,r){let i=this.normalizeMergeValue(t,n);if(this.mergeValueContainsInvalidSource(i))throw new S(`MERGE \u306E\u5F0F\u306F source alias ${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3057\u3066\u304F\u3060\u3055\u3044`,r);let o=i;switch(o.type){case"FIELD_REF":return{type:"FIELD",field:String(o.field),alias:null};case"STRING":return{type:"LITERAL_COL",value:String(o.value),alias:null};case"NUMBER":return{type:"ARITH_COL",expr:o,alias:null};case"ARITH":return{type:"ARITH_COL",expr:o,alias:null};case"STRING_FUNC":return{type:"STRFUNC_COL",expr:o,alias:null};case"CASE_VALUE":return{type:"CASE_COL",expr:o.expr,alias:null};default:throw new S("MERGE \u306E\u4EE3\u5165\u5F0F\u306F\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9\u30FB\u30EA\u30C6\u30E9\u30EB\u30FB\u7B97\u8853\u5F0F\u30FB\u6587\u5B57\u5217\u95A2\u6570\u30FBCASE \u306E\u3044\u305A\u308C\u304B\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",r)}}mergeValueContainsInvalidSource(t){if(Array.isArray(t))return t.some(r=>this.mergeValueContainsInvalidSource(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="INVALID_SOURCE"||Object.values(n).some(r=>this.mergeValueContainsInvalidSource(r))}isUpsertApplyBranchStart(){return this.peek().kind==="ON"&&(this.peekAt(1).kind==="INSERT"||this.peekAt(1).kind==="UPDATE")}parseUpsertApplyBranches(){let t,n;for(;this.isUpsertApplyBranchStart();){this.advance();let r=this.advance(),i=r.kind==="INSERT";if(i&&t||!i&&n)throw new S(`ON ${i?"INSERT":"UPDATE"} APPLY \u306F 1 \u56DE\u3060\u3051\u6307\u5B9A\u3067\u304D\u307E\u3059`,r);if(!this.isApplyBlockStart())throw new S(`ON ${i?"INSERT":"UPDATE"} \u306E\u5F8C\u306B\u306F APPLY \u30D6\u30ED\u30C3\u30AF\u304C\u5FC5\u8981\u3067\u3059`,this.peek());let o=[];for(;this.isApplyBlockStart();)o.push(this.parseApplyBlock());i?t=o:n=o}if(this.isApplyBlockStart())throw new S("UPSERT \u306E APPLY \u306B\u306F ON INSERT \u307E\u305F\u306F ON UPDATE \u304C\u5FC5\u8981\u3067\u3059",this.peek());return{...t?{onInsertApplyBlocks:t}:{},...n?{onUpdateApplyBlocks:n}:{}}}parseArrayLiteral(){this.expect("[");let t=[];if(this.peek().kind!=="]")do{let n=this.expect("STRING");t.push({type:"STRING",value:n.value})}while(this.consume(","));return this.expect("]"),{type:"ARRAY",elements:t}}parseInsertRow(t,n){let r=[];do if(this.peek().kind==="[")r.push(this.parseArrayLiteral());else if(this.peek().kind==="CASE"){let i=this.parseCaseWhenExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="IF"){let i=this.parseIfExpr();r.push({type:"CASE_VALUE",expr:i})}else if(this.peek().kind==="-"||this.peek().kind==="+"){let i=this.advance(),o=this.expect("NUMBER","INSERT \u306E\u5358\u9805\u7B26\u53F7\u306E\u76F4\u5F8C\u306B\u306F\u6570\u5024\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059");r.push(Ne(`${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(Ne(i.value));else if(n&&this.isDialect1AsOfCall(i))r.push(this.finishVariableReference(i));else{let o=this.isDialect1AsOfCall(i)?" INSERT ... VALUES \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u6587\u578B\u3067\u306F INSERT ... SELECT \u3067\u6CE8\u5165\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"";throw new S(`INSERT \u306E\u5024\u306B\u306F\u6587\u5B57\u5217\u30FB\u6570\u5024\u30FB\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u30FBCASE WHEN \u304C\u5FC5\u8981\u3067\u3059${o}`,i)}}while(this.consume(","));if(r.length!==t)throw new S(`\u30AB\u30E9\u30E0\u6570\uFF08${t}\uFF09\u3068\u5024\u306E\u6570\uFF08${r.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`,this.prev());return r}isDialect1AsOfCall(t){return this.capabilities.dialect1===!0&&t.kind==="VARIABLE"&&Nr(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}=gt(t,this.prev());this.expect("SET");let i=this.parseAssignments();if(r&&i.some(p=>p.value.type==="STRING_FUNC"))throw new S("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",this.prev());let o=null;if(this.consume("FROM")){let p=this.parseTableRef();if(p.subtableCode)throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.prev());if(p.cteName!==null&&!p.cteName.startsWith("#"))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306F #temp \u307E\u305F\u306F APP<n> \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08CTE \u306F\u975E\u5BFE\u5FDC\uFF09",this.prev());if(!p.alias)throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u306B\u306F\u30A8\u30A4\u30EA\u30A2\u30B9\u304C\u5FC5\u8981\u3067\u3059",this.prev());if(p.alias.toLowerCase()===`app${n}`.toLowerCase())throw new S(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u66F4\u65B0\u5148 APP${n} \u3068\u540C\u540D\u306B\u3067\u304D\u307E\u305B\u3093`,this.prev());o={appId:p.appId,cteName:p.cteName,alias:p.alias,targetJoinField:"",joinKeyField:"",targetFilter:null}}let a=this.peek();if(!this.consume("WHERE"))throw new S("UPDATE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u8981\u3067\u3059\uFF08\u5168\u4EF6\u66F4\u65B0\u3092\u9632\u3050\u305F\u3081\uFF09",a);let s=this.parseWhereExpr(void 0,!0),l=[];for(;this.isApplyBlockStart();)l.push(this.parseApplyBlock());if(this.isSoftKeyword("APPLY")&&this.peekAt(1).kind==="IDENT"&&this.peekAt(1).value.toUpperCase()==="SUBTABLE")throw new S("APPLY SUBTABLE noun is not supported; use APPLY <field> (...)",this.peek());if(l.length>0&&this.peek().kind==="WHERE")throw new S("\u89AA WHERE \u306F APPLY \u30D6\u30ED\u30C3\u30AF\u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(o!==null){if(r)throw new S("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE ... FROM \u306F\u30B5\u30DD\u30FC\u30C8\u3057\u3066\u3044\u307E\u305B\u3093",a);this.validateUpdateFromAssignments(i,o.alias,a);let p=this.decomposeUpdateFromWhere(s,n,o.alias,a);o.targetJoinField=p.targetJoinField,o.joinKeyField=p.joinKeyField,o.targetFilter=p.targetFilter}else{if(i.some(p=>p.value.type==="SOURCE_FIELD"))throw new S("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",a);if(i.some(p=>p.value.type==="STRING_FUNC"&&this.nodeContainsAnyQualifier(p.value)))throw new S("UPDATE SET \u306E\u6587\u5B57\u5217\u95A2\u6570\u3067\u306F\u66F4\u65B0\u5148\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",a)}if(l.length>0&&this.isSoftKeyword("CHECK"))throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u5F8C\u306B CHECK \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());if(l.length>0&&(this.peek().kind==="ON"||this.isSoftKeyword("REJECT")))throw new S("ON ERROR SKIP / REJECT LIMIT \u306F APPLY \u3068\u4F75\u7528\u3067\u304D\u307E\u305B\u3093",this.peek());let c=this.parseCheckGroups(),d=this.parseDmlControlSuffix();if(this.isSoftKeyword("APPLY"))throw new S("APPLY \u306F VALIDATE ONLY \u3088\u308A\u524D\u306B\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());if(r&&c.checkGroups)throw new S("CHECK \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());if(r&&(d.validateOnly||d.onErrorSkip))throw new S("VALIDATE ONLY / ON ERROR SKIP \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u305B\u3093",this.prev());let u=l.length>0?{applyBlocks:l}:{};return o!==null?{type:"UPDATE",appId:n,assignments:i,where:s,from:o,...u,...c,...d}:r?{type:"UPDATE",appId:n,subtableCode:r,assignments:i,where:s,...u,...c,...d}:{type:"UPDATE",appId:n,assignments:i,where:s,...u,...c,...d}}isApplyBlockStart(){return this.isSoftKeyword("APPLY")&&(this.peekAt(1).kind==="IDENT"||this.peekAt(1).kind==="BIDENT")&&this.peekAt(2).kind==="("}parseApplyBlock(){this.advance();let t=this.parseIdentifier();if(this.expect("("),this.peek().kind===")"||this.peek().kind===";")throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u306F\u64CD\u4F5C\u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",this.peek());let n=[];for(;n.push(this.parseApplyOperation()),!(!this.consume(";")||this.peek().kind===")");)if(this.peek().kind===";")throw new S("APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u7A7A\u306E\u64CD\u4F5C\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek());this.expect(")","APPLY \u30D6\u30ED\u30C3\u30AF\u306E\u672B\u5C3E\u306B\u306F ) \u304C\u5FC5\u8981\u3067\u3059");let r=n.some(o=>o.kind==="PATCH"||o.kind==="APPEND"||o.kind==="REMOVE"),i=n.some(o=>o.kind==="ADD"||o.kind==="REMOVE_VALUE");if(r&&i)throw new S("1 \u3064\u306E APPLY \u30D6\u30ED\u30C3\u30AF\u306B\u884C\u64CD\u4F5C\u3068\u591A\u5024\u64CD\u4F5C\u306F\u6DF7\u5728\u3067\u304D\u307E\u305B\u3093",this.prev());return i?{field:t,targetKind:"MULTI_VALUE",operations:n}:{field:t,targetKind:"SUBTABLE",operations:n}}parseApplyOperation(){if(this.isSoftKeyword("ADD"))return this.advance(),{kind:"ADD",value:this.expect("STRING","ADD \u306E\u5F8C\u306B\u306F\u6587\u5B57\u5217\u30EA\u30C6\u30E9\u30EB\u304C\u5FC5\u8981\u3067\u3059").value};if(this.isSoftKeyword("PATCH")){this.advance(),this.expect("SET","PATCH \u306E\u5F8C\u306B\u306F SET \u304C\u5FC5\u8981\u3067\u3059");let t=this.parseAssignments(),n=this.parseApplyRowSelector(),r=this.parseExpectRowsGuard();return{kind:"PATCH",assignments:t,selector:n,...r?{expectRows:r}:{}}}if(this.isSoftKeyword("APPEND")){if(this.advance(),this.expect("(","APPEND \u306E\u5F8C\u306B\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u304C\u5FC5\u8981\u3067\u3059"),this.peek().kind===")")throw new S("APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093",this.peek());let t=[];do t.push(this.parseIdentifier());while(this.consume(","));this.expect(")"),this.expect("VALUES","APPEND \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u4E00\u89A7\u306E\u5F8C\u306B\u306F VALUES \u304C\u5FC5\u8981\u3067\u3059");let n=[];do this.expect("(","APPEND VALUES \u306E\u5404\u884C\u306F ( \u3067\u59CB\u3081\u3066\u304F\u3060\u3055\u3044"),n.push(this.parseInsertRow(t.length,!1)),this.expect(")");while(this.consume(","));return{kind:"APPEND",fields:t,values:n}}if(this.isSoftKeyword("REMOVE")){if(this.advance(),this.peek().kind==="STRING")return{kind:"REMOVE_VALUE",value:this.advance().value};let t=this.parseApplyRowSelector(),n=this.parseExpectRowsGuard();return{kind:"REMOVE",selector:t,...n?{expectRows:n}:{}}}throw new S("APPLY \u306E\u64CD\u4F5C\u306B\u306F PATCH / APPEND / REMOVE / ADD \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseApplyRowSelector(){if(this.consume("WHERE"))return{kind:"WHERE",where:this.parseWhereExpr(void 0,!0)};if(this.consume("ALL")){if(!this.isSoftKeyword("ROWS"))throw new S("ALL \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());return this.advance(),{kind:"ALL_ROWS"}}throw new S("PATCH / REMOVE \u306B\u306F WHERE \u307E\u305F\u306F ALL ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek())}parseExpectRowsGuard(){if(this.isSoftKeyword("EXPECT")){if(this.advance(),!this.isSoftKeyword("ROWS"))throw new S("EXPECT \u306E\u5F8C\u306B\u306F ROWS \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),this.consume("BETWEEN")){let t=this.parseExpectRowsCount();this.expect("AND","EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u3068\u4E0A\u9650\u306F AND \u3067\u533A\u5207\u3063\u3066\u304F\u3060\u3055\u3044");let n=this.parseExpectRowsCount();if(t>n)throw new S("EXPECT ROWS BETWEEN \u306E\u4E0B\u9650\u306F\u4E0A\u9650\u4EE5\u4E0B\u306B\u3057\u3066\u304F\u3060\u3055\u3044",this.peek());return{kind:"BETWEEN",min:t,max:n}}if(this.isSoftKeyword("AT")){if(this.advance(),this.peek().value.toUpperCase()==="LEAST")return this.advance(),{kind:"AT_LEAST",count:this.parseExpectRowsCount()};if(this.isSoftKeyword("MOST"))return this.advance(),{kind:"AT_MOST",count:this.parseExpectRowsCount()};throw new S("EXPECT ROWS AT \u306E\u5F8C\u306B\u306F LEAST \u307E\u305F\u306F MOST \u304C\u5FC5\u8981\u3067\u3059",this.peek())}return{kind:"EXACT",count:this.parseExpectRowsCount()}}}parseExpectRowsCount(){let t=this.expect("NUMBER","EXPECT ROWS \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(t.value)||!Number.isSafeInteger(Number(t.value)))throw new S("EXPECT ROWS \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",t);return Number(t.value)}parseCheckGroups(){let t=[];for(;this.isSoftKeyword("CHECK")&&this.peekAt(1).kind==="WHEN";){let n=this.advance(),r=[];for(;this.consume("WHEN");){let i=this.parseWhereExpr();this.expect("THEN","CHECK WHEN \u306E\u6761\u4EF6\u306E\u5F8C\u306B\u306F THEN \u304C\u5FC5\u8981\u3067\u3059");let o=this.parseScalarValueExpr({allowCase:!1});r.push({condition:i,message:o})}if(r.length===0)throw new S("CHECK \u306E\u5F8C\u306B\u306F WHEN \u304C\u6700\u4F4E 1 \u3064\u5FC5\u8981\u3067\u3059",n);t.push({rules:r})}return t.length>0?{checkGroups:t}:{}}parseDmlControlSuffix(){if(this.peek().kind==="ON")return this.parseOnErrorSkipSuffix();if(this.isSoftKeyword("REJECT"))throw new S("REJECT LIMIT \u306B\u306F ON ERROR SKIP INTO \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(!this.isSoftKeyword("VALIDATE"))return{};let t=this.advance();if(!this.isSoftKeyword("ONLY"))throw new S("VALIDATE \u306E\u5F8C\u306B\u306F ONLY \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance();let n=null;if(this.consume("INTO")){let r=this.peek();if(r.kind!=="IDENT"||!r.value.startsWith("#"))throw new S("VALIDATE ONLY INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",r);n=this.parseTableName()}if(this.peek().kind==="ON"||this.isSoftKeyword("REJECT"))throw new S("VALIDATE ONLY \u3068 ON ERROR / REJECT LIMIT \u306F\u4F75\u8A18\u3067\u304D\u307E\u305B\u3093",t);return{validateOnly:!0,validationErrorTable:n}}parseOnErrorSkipSuffix(){let t=this.advance();if(!this.isSoftKeyword("ERROR"))throw new S("ON \u306E\u5F8C\u306B\u306F ERROR \u304C\u5FC5\u8981\u3067\u3059",this.peek());if(this.advance(),!this.isSoftKeyword("SKIP"))throw new S("ON ERROR \u306E\u5F8C\u306B\u306F SKIP \u304C\u5FC5\u8981\u3067\u3059",this.peek());this.advance(),this.expect("INTO","ON ERROR SKIP \u306B\u306F INTO #\u4E00\u6642\u30C6\u30FC\u30D6\u30EB \u304C\u5FC5\u8981\u3067\u3059");let n=this.peek();if(n.kind!=="IDENT"||!n.value.startsWith("#"))throw new S("ON ERROR SKIP INTO \u306B\u306F # \u3067\u59CB\u307E\u308B\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",n);let r=this.parseTableName(),i=null;if(this.isSoftKeyword("REJECT")){this.advance(),this.expect("LIMIT","REJECT \u306E\u5F8C\u306B\u306F LIMIT \u304C\u5FC5\u8981\u3067\u3059");let o=this.expect("NUMBER","REJECT LIMIT \u306B\u306F 0 \u4EE5\u4E0A\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059");if(!/^\d+$/.test(o.value))throw new S("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o);if(i=Number(o.value),!Number.isSafeInteger(i))throw new S("REJECT LIMIT \u306F 0 \u4EE5\u4E0A\u306E\u5B89\u5168\u306A\u6574\u6570\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044",o)}if(this.isSoftKeyword("REJECT")||this.isSoftKeyword("VALIDATE")||this.peek().kind==="ON")throw new S("ON ERROR SKIP \u306E\u53E5\u304C\u91CD\u8907\u307E\u305F\u306F\u7AF6\u5408\u3057\u3066\u3044\u307E\u3059",t);return{onErrorSkip:!0,errorTable:r,rejectLimit:i}}isSoftKeyword(t){return this.peek().kind==="IDENT"&&this.peek().value.toUpperCase()===t}rejectAggregateWindowOutsideSelect(){if(this.isSoftKeyword("OVER"))throw new S("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u306F SELECT \u5217\u306B\u306E\u307F\u8A18\u8FF0\u3067\u304D\u307E\u3059",this.peek())}validateUpdateFromAssignments(t,n,r){for(let i of t){if(i.value.type==="STRING_FUNC")throw new S("UPDATE ... FROM \u306E SET \u3067\u306F\u6587\u5B57\u5217\u95A2\u6570\u3092\u76F4\u63A5\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(i.value.type==="SOURCE_FIELD"){if(i.value.alias.toLowerCase()!==n.toLowerCase())throw new S(`UPDATE ... FROM \u306E SET \u53C2\u7167\u306F\u30BD\u30FC\u30B9 alias ${n} \u3067\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`,r);continue}if(this.nodeContainsQualifiedField(i.value,n))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217\u306F SET \u306E\u76F4\u63A5\u5024\u3068\u3057\u3066\u306E\u307F\u53C2\u7167\u3067\u304D\u307E\u3059",r);if(i.value.type==="SCALAR_SUBQUERY")throw new S("UPDATE ... FROM \u306E SET \u3067\u306F\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",r);if(this.nodeContainsAnyQualifier(i.value))throw new S("UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u5F0F\u3067\u306F\u30D5\u30A3\u30FC\u30EB\u30C9\u3092\u4FEE\u98FE\u3057\u306A\u3044\u3067\u304F\u3060\u3055\u3044",r)}}decomposeUpdateFromWhere(t,n,r,i){let o=this.flattenTopLevelAnd(t),a=[];if(o.forEach((d,u)=>{let p=this.matchUpdateFromJoin(d,n,r);p!==null&&a.push({index:u,...p})}),a.length!==1)throw new S("UPDATE ... FROM \u306E WHERE \u306B\u306F target.key = source.key \u306E\u7D50\u5408\u7B49\u5024\u304C\u3061\u3087\u3046\u30691\u3064\u5FC5\u8981\u3067\u3059",i);let s=a[0];for(let d=0;d<o.length;d++){if(d!==s.index&&this.nodeContainsQualifiedField(o[d],r))throw new S("UPDATE ... FROM \u306E\u30BD\u30FC\u30B9 alias \u306F\u7D50\u5408\u7B49\u5024\u4EE5\u5916\u306E WHERE \u6761\u4EF6\u3067\u306F\u53C2\u7167\u3067\u304D\u307E\u305B\u3093",i);if(d!==s.index&&this.nodeContainsForeignQualifier(o[d],n))throw new S(`UPDATE ... FROM \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30EB\u30BF\u306F APP${n} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u3060\u3051\u3092\u53C2\u7167\u3067\u304D\u307E\u3059`,i)}let c=o.filter((d,u)=>u!==s.index).reduce((d,u)=>d===null?u:{type:"LOGICAL",op:"AND",left:d,right:u},null);return{targetJoinField:s.targetField,joinKeyField:s.sourceField,targetFilter:c}}flattenTopLevelAnd(t){return t.type==="GROUP"?this.flattenTopLevelAnd(t.expr):t.type==="LOGICAL"&&t.op==="AND"?[...this.flattenTopLevelAnd(t.left),...this.flattenTopLevelAnd(t.right)]:[t]}matchUpdateFromJoin(t,n,r){if(t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD")return null;let i=t.right.type==="ARITH_VALUE"&&t.right.expr.type==="FIELD_REF"?this.splitQualifiedField(t.right.expr.field):null;if(i===null)return null;let o={alias:t.left.tableAlias,field:t.left.field};return this.isTargetRef(o,n)&&this.isSourceRef(i,r)?{targetField:o.field,sourceField:i.field}:this.isSourceRef(o,r)&&this.isTargetRef(i,n)?{targetField:i.field,sourceField:o.field}:null}splitQualifiedField(t){let n=t.indexOf(".");return n<0?{alias:null,field:t}:{alias:t.slice(0,n),field:t.slice(n+1)}}isTargetRef(t,n){return t.alias===null||t.alias.toLowerCase()===`app${n}`.toLowerCase()}isSourceRef(t,n){return t.alias?.toLowerCase()===n.toLowerCase()}nodeContainsQualifiedField(t,n){if(Array.isArray(t))return t.some(i=>this.nodeContainsQualifiedField(i,n));if(t===null||typeof t!="object")return!1;let r=t;if(r.type==="FIELD"&&typeof r.tableAlias=="string"&&r.tableAlias.toLowerCase()===n.toLowerCase())return!0;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=this.splitQualifiedField(r.field);if(this.isSourceRef(i,n))return!0}return Object.values(r).some(i=>this.nodeContainsQualifiedField(i,n))}nodeContainsForeignQualifier(t,n){if(Array.isArray(t))return t.some(o=>this.nodeContainsForeignQualifier(o,n));if(t===null||typeof t!="object")return!1;let r=t,i=`app${n}`.toLowerCase();if(r.type==="FIELD"&&typeof r.tableAlias=="string")return r.tableAlias.toLowerCase()!==i;if(r.type==="FIELD_REF"&&typeof r.field=="string"){let o=this.splitQualifiedField(r.field);if(o.alias!==null)return o.alias.toLowerCase()!==i}return Object.values(r).some(o=>this.nodeContainsForeignQualifier(o,n))}nodeContainsAnyQualifier(t){if(Array.isArray(t))return t.some(r=>this.nodeContainsAnyQualifier(r));if(t===null||typeof t!="object")return!1;let n=t;return n.type==="FIELD"&&typeof n.tableAlias=="string"||n.type==="FIELD_REF"&&typeof n.field=="string"&&this.splitQualifiedField(n.field).alias!==null?!0:Object.values(n).some(r=>this.nodeContainsAnyQualifier(r))}parseAssignments(){let t=[];do{let n=this.parseIdentifier();this.expect("=");let r=this.parseAssignmentValue();t.push({field:n,value:r})}while(this.consume(","));return t}parseAssignmentValue(){let t=this.peek();if(this.hasTopLevelTokenBeforeValueEnd("||")){let i=this.parseScalarValueExpr();if(i.type==="CONCAT_OP"||i.type==="SCALAR_ARITH"||i.type==="STRING_FUNC")return i;if(i.type==="CASE_WHEN")return{type:"CASE_VALUE",expr:i};throw new S("SET \u306E\u5024\u306B\u306F\u9023\u7D50\u3092\u542B\u3080\u30B9\u30AB\u30E9\u30FC\u5024\u5F0F\u304C\u5FC5\u8981\u3067\u3059",t)}if(t.kind==="VARIABLE")return this.parseSqlValue();if(t.kind==="STRING")return this.parseSqlValue();if(Lp(t.kind))return this.parseSqlValue();if(t.kind==="IN")return this.parseSqlValue();if(t.kind==="CASE"||t.kind==="IF")return this.parseSqlValue();if(t.kind==="[")return this.parseArrayLiteral();if(t.kind==="("&&this.peekAt(1).kind==="SELECT"){this.advance();let i=this.parseSelect();return this.expect(")"),{type:"SCALAR_SUBQUERY",query:i}}let n=this.allowUnaryPlusNumber;this.allowUnaryPlusNumber=!0;let r;try{r=this.parseArithAddSub()}finally{this.allowUnaryPlusNumber=n}if(r.type==="NUMBER"||r.type==="ARITH"||r.type==="STRING_FUNC")return r;if(r.type==="FIELD_REF"){let i=r.field.indexOf(".");if(i>0&&i<r.field.length-1)return{type:"SOURCE_FIELD",alias:r.field.slice(0,i),field:r.field.slice(i+1)}}throw new S("SET \u306E\u5024\u306B\u30D5\u30A3\u30FC\u30EB\u30C9\u53C2\u7167\u3092\u5358\u72EC\u3067\u6307\u5B9A\u3059\u308B\u3053\u3068\u306F\u3067\u304D\u307E\u305B\u3093",t)}parseArithOp(){let t=this.advance();switch(t.kind){case"+":return"+";case"-":return"-";case"*":return"*";case"/":return"/";case"%":return"%";default:throw new S("\u7B97\u8853\u6F14\u7B97\u5B50\uFF08+ - * / %\uFF09\u304C\u5FC5\u8981\u3067\u3059",t)}}parseDelete(){this.expect("DELETE"),this.expect("FROM"),this.rejectTempTableDml();let t=this.parseIdentifier(),{appId:n,subtableCode:r}=gt(t,this.prev()),i=this.peek();if(!this.consume("WHERE"))throw new S("DELETE \u6587\u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u5168\u4EF6\u524A\u9664\u3092\u9632\u3050\u305F\u3081\uFF09",i);let o=this.parseWhereExpr(void 0,!0);return r?{type:"DELETE",appId:n,subtableCode:r,where:o}:{type:"DELETE",appId:n,where:o}}parseReorder(){this.expect("REORDER");let t=this.consume("ALL");this.rejectTempTableDml();let n=this.parseIdentifier(),{appId:r,subtableCode:i}=gt(n,this.prev());if(!i)throw new S("REORDER \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u306E\u307F\u6307\u5B9A\u3067\u304D\u307E\u3059\uFF08\u4F8B: REORDER APP100$\u660E\u7D30 ...\uFF09",this.prev());this.expect("BY");let o=this.parseOrderBy();if(o.length===0)throw new S("REORDER \u306B\u306F BY \u30AD\u30FC\u304C\u5FC5\u8981\u3067\u3059",this.prev());let a=null;if(t){if(this.peek().kind==="WHERE")throw new S("REORDER ALL \u3067\u306F WHERE \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093",this.peek())}else{let s=this.peek();if(!this.consume("WHERE"))throw new S("REORDER \u306B\u306F WHERE \u53E5\u304C\u5FC5\u9808\u3067\u3059\uFF08\u8AA4\u64CD\u4F5C\u9632\u6B62\uFF09",s);a=this.parseWhereExpr(void 0,!0)}return{type:"REORDER",appId:r,subtableCode:i,all:t,by:o,where:a}}peek(){return this.tokens[this.pos]??{kind:"EOF",value:"",pos:-1}}peekAt(t){return this.tokens[this.pos+t]??{kind:"EOF",value:"",pos:-1}}prev(){return this.tokens[this.pos-1]??{kind:"EOF",value:"",pos:-1}}advance(){let t=this.peek();return t.kind!=="EOF"&&this.pos++,t}consume(t){return this.peek().kind===t?(this.advance(),!0):!1}expect(t,n){let r=this.peek();if(r.kind!==t)throw new S(n??`\u300C${t}\u300D\u304C\u5FC5\u8981\u3067\u3059`,r);return this.advance()}expectKeyword(t,n){return this.expect(t,n)}parseUnsignedInt(){let t=this.expect("NUMBER","\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059"),n=Number(t.value);if(!Number.isInteger(n)||n<0)throw new S("\u6B63\u306E\u6574\u6570\u304C\u5FC5\u8981\u3067\u3059",t);return n}parseIdentifier(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT"){if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new S("\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u540D\uFF08# \u3067\u59CB\u307E\u308B\u540D\u524D\uFF09\u306F FROM / JOIN / CREATE / DROP TEMP TABLE \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059",t);return this.advance(),t.value}let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new S("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}parseTableName(){let t=this.peek();if(t.kind==="IDENT"||t.kind==="BIDENT")return this.advance(),t.value;let n=this.tryParseDigitPrefixedIdentifier();if(n!==null)return n;throw new S("\u30D5\u30A3\u30FC\u30EB\u30C9\u540D\u307E\u305F\u306F\u30C6\u30FC\u30D6\u30EB\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}tryParseDigitPrefixedIdentifier(){let t=this.peek(),n=this.peekAt(1);return t.kind!=="NUMBER"||!/^\d+$/.test(t.value)||n.kind!=="IDENT"||n.pos!==t.pos+t.value.length?null:(this.advance(),this.advance(),t.value+n.value)}rejectTempTableDml(){let t=this.peek();if(t.kind==="IDENT"&&t.value.startsWith("#"))throw new S(`DML on temp table ${t.value} is not supported.`,t)}parseAliasName(){let t=this.peek();if(t.value.startsWith("#"))throw new S("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u306B # \u3067\u59CB\u307E\u308B\u540D\u524D\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093",t);if(t.kind==="IDENT"||t.kind==="BIDENT"||po.has(t.value.toUpperCase()))return this.advance(),{alias:t.value.toLowerCase(),display:t.value};throw new S("\u30A8\u30A4\u30EA\u30A2\u30B9\u540D\u304C\u5FC5\u8981\u3067\u3059",t)}withAliasDisplay(t,n){return n!==null&&Object.defineProperty(t,"aliasDisplay",{value:n.display,enumerable:!1}),t}parseFieldPath(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;this.advance();let n=this.parseIdentifier();return`${t}.${n}`}parseColumnFieldRef(){let t=this.parseIdentifier();if(this.peek().kind!==".")return t;if(this.advance(),this.consume("*"))return`${t}.*`;let n=this.parseIdentifier();return`${t}.${n}`}};function Wy(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 gt(e,t){let n=e.match(/^[Aa][Pp][Pp](\d+)(?:\$(.+))?$/);if(!n)throw new S(`\u30C6\u30FC\u30D6\u30EB\u540D\u306F APP + \u6570\u5B57\uFF08\u307E\u305F\u306F APP + \u6570\u5B57 + $\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\uFF09\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF08\u4F8B: APP100 / APP100$\u660E\u7D30\uFF09\u3002\u300C${e}\u300D\u306F\u7121\u52B9\u3067\u3059`,t);return{appId:Number(n[1]),subtableCode:n[2]??null}}function Lr(e){switch(e.type){case"BOOLEAN":return{type:"BOOLEAN",value:!e.value};case"BINARY":{let t=Hy(e.op);if(t===null)throw new de(`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:Lr(e.left),right:Lr(e.right)};case"NOT":return e.expr;case"GROUP":return{type:"GROUP",expr:Lr(e.expr)};case"EXISTS":return{...e,not:!e.not}}}function Hy(e){switch(e){case"=":return"!=";case"!=":case"<>":return"=";case">":return"<=";case"<":return">=";case">=":return"<";case"<=":return">";case"LIKE":return"NOT_LIKE";case"NOT_LIKE":return"LIKE";case"KLIKE":return"NOT_KLIKE";case"NOT_KLIKE":return"KLIKE";case"IN":return"NOT_IN";case"NOT_IN":return"IN"}}function Dp(e){return e.includes("%")||e.includes("_")}function _r(e){return e.type==="BINARY"&&(e.op==="LIKE"||e.op==="NOT_LIKE")}function qt(e){return e.type==="BINARY"&&(e.op==="KLIKE"||e.op==="NOT_KLIKE")}function zt(e){if(e===null)return!1;if(_r(e))return!0;switch(e.type){case"LOGICAL":return zt(e.left)||zt(e.right);case"NOT":case"GROUP":return zt(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function Pe(e){if(e===null)return!1;if(qt(e))return!0;switch(e.type){case"LOGICAL":return Pe(e.left)||Pe(e.right);case"NOT":case"GROUP":return Pe(e.expr);case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return!1}}function j(e){switch(e.type){case"BINARY":return Yy(e);case"NULL_CHECK":return zy(e);case"LOGICAL":return qy(e);case"NOT":return Jy(e);case"GROUP":return Xy(e);case"EXISTS":throw new de("EXISTS \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"BOOLEAN":throw new de("internal error: BOOLEAN predicate reached kintone query conversion")}}function Yy(e){if(_r(e))throw new de("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=Mp(e.left),n=jy(e.op),r=Qy(e.right,e.op);return`${t} ${n} ${r}`}function jy(e){switch(e){case"=":return"=";case"!=":case"<>":return"!=";case">":return">";case"<":return"<";case">=":return">=";case"<=":return"<=";case"LIKE":return"like";case"NOT_LIKE":return"not like";case"KLIKE":return"like";case"NOT_KLIKE":return"not like";case"IN":return"in";case"NOT_IN":return"not in"}}function zy(e){let t=Mp(e.field);return e.not?`${t} != ""`:`${t} = ""`}function qy(e){let t=j(e.left),n=j(e.right),r=e.op==="AND"?"and":"or",i=Up(e.left)?`(${t})`:t,o=Up(e.right)?`(${n})`:n;return`${i} ${r} ${o}`}function Jy(e){return j(Lr(e.expr))}function Xy(e){return`(${j(e.expr)})`}function Mp(e){if(e.type==="FUNC_FIELD")throw new de(`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 de("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 de("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 de("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 de("GROUPING() \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");return ag(e.field)}function Qy(e,t){switch(e.type){case"VARIABLE":throw new de(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"VARIABLE_IN_LIST":throw new de(`\u672A\u89E3\u6C7A\u306E\u914D\u5217\u5909\u6570 @${e.name} \u304C\u3042\u308A\u307E\u3059`);case"STRING":return xp(e);case"NUMBER":return z(e);case"KINTONE_FUNC":return kp(e);case"IN_LIST":return ig(e,t);case"ARITH_VALUE":throw new de("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 de("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 de("IN (SELECT ...) \u306F kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u3067\u304D\u307E\u305B\u3093");case"SCALAR_SUBQUERY":throw new de("\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 de("\u914D\u5217\u30EA\u30C6\u30E9\u30EB\u306F WHERE \u53E5\u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}}function xp(e){return`"${e.value.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function kp(e){switch(e.name){case"TODAY":case"NOW":case"LOGINUSER":case"PRIMARY_ORGANIZATION":return`${e.name}()`}return Zy(e)}function Zy(e){switch(e.name){case"YESTERDAY":case"TOMORROW":case"THIS_YEAR":case"LAST_YEAR":case"NEXT_YEAR":return e.args?.kind!=="NONE"?vr():`${e.name}()`;case"FROM_TODAY":return e.args?.kind!=="FROM_TODAY"||!ng(e.args.offset,e.args.offsetText)||!eg.has(e.args.unit)?vr():`${e.name}(${e.args.offsetText}, ${e.args.unit})`;case"THIS_WEEK":case"LAST_WEEK":case"NEXT_WEEK":return e.args?.kind!=="WEEK"||e.args.weekday!==null&&!tg.has(e.args.weekday)?vr():e.args.weekday===null?`${e.name}()`:`${e.name}(${e.args.weekday})`;case"THIS_MONTH":case"LAST_MONTH":case"NEXT_MONTH":return e.args?.kind!=="MONTH"||!rg(e.args.day)?vr():e.args.day===null?`${e.name}()`:`${e.name}(${e.args.day})`}return vr()}var eg=new Set(["DAYS","WEEKS","MONTHS","YEARS"]),tg=new Set(["SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY"]);function ng(e,t){return!Number.isSafeInteger(e)||!/^(?:0|[1-9]\d*|-[1-9]\d*)$/.test(t)?!1:Number(t)===e}function rg(e){return e===null||e==="LAST"||typeof e=="number"&&Number.isInteger(e)&&e>=1&&e<=31}function vr(){throw new de("internal error: invalid relative date function AST reached kintone query conversion")}function ig(e,t){if(t!=="IN"&&t!=="NOT_IN")throw new de("IN_LIST \u306F IN / NOT IN \u6F14\u7B97\u5B50\u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059");return og(e.values),`(${e.values.map(r=>r.type==="STRING"?xp(r):r.type==="NUMBER"?z(r):kp(r)).join(",")})`}function og(e){let t=e.find(n=>n.type==="VARIABLE");if(t?.type==="VARIABLE")throw new de(`\u672A\u89E3\u6C7A\u306E\u30D0\u30C3\u30C1\u5909\u6570 @${t.name} \u304C\u3042\u308A\u307E\u3059`)}function ag(e){return/^[\w$\u3000-\u9FFF]+$/u.test(e)?e:`"${e.replace(/"/g,'\\"')}"`}function Up(e){return e.type==="LOGICAL"}var de=class extends Error{constructor(t){super(t),this.name="KintoneQueryError"}};var Fp=Symbol("ksql.groupingRowMeta"),Kp=new WeakMap;function Js(e,t){return Object.defineProperty(e,Fp,{value:{includedCanonicalIds:t},enumerable:!1,configurable:!1,writable:!1}),e}function Xs(e){return e[Fp]}function sg(e){return Xs(e)?.includedCanonicalIds}function Gp(e,t){Kp.set(e,t)}function Hn(e,t){let n=sg(t);if(!n)throw new Error("internal error: GROUPING() evaluation requires B65 grouping row membership.");let r=Kp.get(e);if(!r)throw new Error("internal error: GROUPING() reference was not resolved during B65 planning.");return n.has(r)?"0":"1"}var ho=["$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 Qs(e){return e.startsWith("_")||e.startsWith("$")}var lg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function el(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(el);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"?lg.test(t.field):Object.values(t).some(el)}function ug(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 Ye(e)||el(e)?"AGGREGATE_DEPENDENT":"SAFE"}}var cg=["_pid","_rid","_idx"];function Zs(e){return[...new Set(e)]}function pg(e){switch(e.kind){case"APP":return Zs([...e.fieldCodes,...ho]);case"SUBTABLE":return Zs([...e.childFieldCodes,...cg,...e.parentFieldCodes.map(t=>`_p.${t}`)]);case"MATERIALIZED":return Zs(e.columns)}}function $p(e,t){return[e.from,...e.joins.map(r=>r.table)].map((r,i)=>({sourceIndex:i,qualifier:r.alias??r.cteName,columns:pg(t(r,i))}))}function Bp(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 Vp(e,t){return e.qualifier===null?t:`${e.qualifier}.${t}`}function Wp(e,t){let n=e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`,r=e.tableAlias===null?Bp(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:Vp(a,r.fieldCode)}}function dg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function fg(e,t,n){let r=Bp(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:Vp(l,r.fieldCode)}}if(r.qualifier!==null)return{kind:"UNKNOWN",name:e};let a=t.flatMap((l,c)=>dg(l)===e?[{column:l,columnIndex:c}]:[]);if(a.length>1)return{kind:"ALIAS_REJECT",reason:"DUPLICATE"};if(a.length===1){let l=a[0],c=ug(l.column);return c==="SAFE"?{kind:"ALIAS_SAFE",columnIndex:l.columnIndex}:{kind:"ALIAS_REJECT",reason:c==="AGGREGATE_DEPENDENT"?"AGGREGATE":"POST_GROUP_ONLY"}}return t.some(l=>l.type==="AGGREGATE"&&l.alias===null&&pe(l.func,l.distinct,l.arg)===e)?{kind:"ALIAS_REJECT",reason:"AGGREGATE"}:{kind:"UNKNOWN",name:e}}function Hp(e,t,n){return{items:e.map(r=>r.type==="FIELD_NAME"?fg(r.name,t,n):{kind:"EXPRESSION"})}}var Eg="B65_NON_GROUPED_DEPENDENCY",nl=new Map([["ARITH_COL","expr"],["ARITH_AGG_COL","expr"],["STRFUNC_COL","expr"],["SCALAR_VALUE_COL","expr"],["CASE_COL","expr"],["ARITH_KEY","expr"],["FUNC_KEY","expr"],["FUNC_FIELD","expr"],["ARITH_FIELD","expr"],["CASE_FIELD","expr"],["ARITH_VALUE","expr"],["CASE_VALUE","expr"],["AGG_FIELD","expr"]]);function Ao(e){if(e.startsWith("_p."))return{type:"FIELD",tableAlias:null,field:e};let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function rl(e){let t=e.type;if(t==="FIELD_REF"&&typeof e.field=="string")return Ao(e.field);if(t==="AGG_GROUP_KEY"&&typeof e.field=="string")return{type:"FIELD",tableAlias:typeof e.tableAlias=="string"?e.tableAlias:null,field:e.field};if(t==="FIELD"&&typeof e.field=="string"){if(e.aggregateRef!==void 0)return null;let n=typeof e.tableAlias=="string"?e.tableAlias:null;return n===null?Ao(e.field):{type:"FIELD",tableAlias:n,field:e.field}}return null}function il(e){return e.type==="SELECT"||e.type==="SCALAR_SUBQUERY"||e.type==="SCALAR_SUBQUERY_COL"||e.type==="SUBQUERY_IN_LIST"||e.type==="EXISTS"}function jp(e){return e.type==="AGGREGATE"||e.type==="AGG_REF"}function zp(e){return e.type==="WINDOW_COL"}function Rg(e){let t=e.value;return typeof t!="number"?"?":Object.is(t,-0)?"0":String(t)}function Jt(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number")return String(e);if(Array.isArray(e)){let c=e.map(d=>Jt(d,t));return c.some(d=>d===null)?null:`[${c.join(",")}]`}if(typeof e!="object")return null;let n=e,r=n.type;if(r==="VARIABLE"||r==="VARIABLE_COL"||il(n))return null;if(r==="GROUP"&&n.expr!==void 0)return Jt(n.expr,t);let i=typeof r=="string"?nl.get(r):void 0;if(i!==void 0)return Jt(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:${Rg(n)}`;if(r==="BOOLEAN")return`BOOLEAN:${String(n.value)}`;let o=rl(n);if(o!==null)try{return`FIELD:${t(o)}`}catch{return null}if(r==="FIELD"&&n.aggregateRef!==void 0)return null;let a=new Set(["alias","aliasDisplay","raw","separator","distinct","source"]),s=[];for(let c of Object.keys(n)){if(c==="type"||a.has(c))continue;let d=Jt(n[c],t);if(d===null)return null;s.push(`${c}=${d}`)}return`${r==="ARITH"||r==="SCALAR_ARITH"?"ARITH":String(r??"OBJECT")}(${s.join(",")})`}function mg(e){return"alias"in e&&typeof e.alias=="string"?e.alias:null}function yg(e){let t=new Map;for(let n of e){let r=mg(n);r!==null&&t.set(r,[...t.get(r)??[],n])}return t}function ol(e){return e.tableAlias===null?e.field:`${e.tableAlias}.${e.field}`}var gg=/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/;function So(e){if(e&&typeof e=="object"){let t=e,n=rl(t);if(n!==null)return ol(n);if(t.type==="FIELD_NAME"&&typeof t.name=="string")return t.name;if(t.type==="WILDCARD")return"*";if(t.type==="PARENT_WILDCARD")return"_p.*";let r=t.alias;if(typeof r=="string"&&r.length>0)return r;let i=typeof t.type=="string"?nl.get(t.type):void 0;if(i!==void 0){let a=So(t[i]);if(a!=="\u5F0F")return a}let o=t.func;if(typeof o=="string"&&o.length>0)return`${o}(...)`}return"\u5F0F"}function Yp(e,t,n,r){let i=n==="WILDCARD"?"wildcard":ol(n),o=So(t),a=r.groupingLabel===null?"GROUP BY \u304C\u306A\u3044\u305F\u3081\u5165\u529B\u5168\u4F53\u304C1\u30B0\u30EB\u30FC\u30D7\u306B\u306A\u308A":`${r.groupingLabel} \u306E\u5404\u30B0\u30EB\u30FC\u30D7\u3067\u306F`,s=n==="WILDCARD"?"\u5FC5\u8981\u306A grouping \u5217\u3092\u660E\u793A\u3057\u3066 SELECT \u3057\u3066\u304F\u3060\u3055\u3044\u3002":`\u300C${i}\u300D\u3092 MIN() \u306A\u3069\u306E\u96C6\u8A08\u95A2\u6570\u3067\u5305\u3080\u304B\u3001GROUP BY \u3078\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002`,l=n!=="WILDCARD"&&n.tableAlias===null&&o===i&&r.migrationSourceSql!==void 0?r.migrationGroupingFields&&r.migrationGroupingFields.length>0?` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT ${r.migrationGroupingFields.join(", ")}, MIN(${i}) FROM ${r.migrationSourceSql} GROUP BY ${r.migrationGroupingFields.join(", ")}\u300D\u3002`:` \u5B9F\u884C\u53EF\u80FD\u306A\u66F8\u304D\u63DB\u3048\u4F8B: \u300CSELECT MIN(${i}) FROM ${r.migrationSourceSql}\u300D\u3002`:"";return new Error(`ArgumentError: ${e} \u5F0F\u300C${o}\u300D\u306F\u96C6\u8A08\u3082\u30B0\u30EB\u30FC\u30D7\u5316\u3082\u3055\u308C\u3066\u3044\u307E\u305B\u3093\uFF08${r.sourceLabel}\u3001\u975E\u30B0\u30EB\u30FC\u30D7\u5316\u4F9D\u5B58: ${i}\uFF09\u3002${a}\u3001\u3069\u306E\u884C\u306E\u5024\u3092\u8FD4\u3059\u304B\u6C7A\u307E\u308A\u307E\u305B\u3093\u3002${s}${l} (reason=${Eg})`)}function En(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){for(let a of e)En(a,t);return}let n=e;if(il(n)||jp(n)||zp(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 Yp(t.clause,t.expression,"WILDCARD",t.policy);let r=rl(n);if(r!==null){if(t.clause!=="SELECT"&&r.tableAlias===null&&gg.test(r.field))return;if(t.clause!=="SELECT"&&r.tableAlias===null){let l=t.aliases.get(r.field)??[];if(l.length===1&&!t.resolvingAliases.has(r.field)){let c=new Set(t.resolvingAliases);c.add(r.field),En(l[0],{...t,resolvingAliases:c});return}}let a=Jt(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 Yp(t.clause,t.expression,r,t.policy);return}let i=Jt(n,t.policy.resolveField);if(i!==null&&t.policy.identities.has(i))return;let o=typeof n.type=="string"?nl.get(n.type):void 0;if(o!==void 0){En(n[o],t);return}for(let a of Object.keys(n))a==="type"||a==="alias"||a==="aliasDisplay"||a==="raw"||En(n[a],t)}function Dr(e,t){let n=yg(e.columns);for(let r of e.columns)r.type!=="WINDOW_COL"&&En(r,{clause:"SELECT",expression:r,policy:t,aliases:n,resolvingAliases:new Set});e.having!==null&&En(e.having,{clause:"HAVING",expression:e.having,policy:t,aliases:n,resolvingAliases:new Set});for(let r of e.orderBy){let i=r.key.type==="FIELD_NAME"?Ao(r.key.name):r.key;En(i,{clause:"ORDER BY",expression:i,policy:t,aliases:n,resolvingAliases:new Set})}}function tl(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(tl);let t=e;return il(t)||zp(t)?!1:jp(t)||t.type==="ARITH_AGG_COL"?!0:Object.values(t).some(tl)}function Yn(e){return te(e).type!=="NONE"||e.columns.some(t=>t.type!=="WINDOW_COL"&&tl(t))}function hg(e){return e.type==="FIELD_NAME"?Ao(e.name):e.expr}function qp(e,t,n){let r=te(e);if(r.type!=="PLAIN")throw new Error("InternalError: ordinary dependency policy requires plain GROUP BY.");let i=r.allItems,o=f=>{let R=Wp(f,n);if(R.kind==="AMBIGUOUS")throw new Error(`ArgumentError: field ${R.name} is ambiguous across multiple sources.`);return R.kind==="UNKNOWN"?`unknown:${R.name}`:`source:${R.sourceIndex}:${R.fieldCode}`},a=new Set;t.items.forEach((f,R)=>{if(f.kind==="PHYSICAL"){a.add(`FIELD:source:${f.sourceIndex}:${f.fieldCode}`);return}if(f.kind==="ALIAS_SAFE"){let E=Jt(e.columns[f.columnIndex],o);E!==null&&a.add(E);return}if(f.kind==="EXPRESSION"){let E=Jt(hg(i[R]),o);E!==null&&a.add(E)}});let s=[e.from,...e.joins.map(f=>f.table)],l=f=>`APP${f.appId}${f.subtableCode!=null?`$${f.subtableCode}`:""}`,c=s.map(f=>f.cteName??l(f)).join(" / "),d=`GROUP BY ${i.map(f=>f.type==="FIELD_NAME"?f.name:So(f)).join(", ")}`,u=s.length===1&&s[0].cteName===null?`${l(s[0])}${s[0].alias&&s[0].alias!==l(s[0])?` ${s[0].alias}`:""}`:void 0,p=i.every((f,R)=>f.type==="FIELD_NAME"&&t.items[R]?.kind==="PHYSICAL")?i.map(f=>f.name):void 0;return{identities:a,resolveField:o,sourceLabel:c,groupingLabel:d,migrationSourceSql:u,migrationGroupingFields:p}}function To(e){if(te(e).type!=="NONE"||!Yn(e))return;let t={identities:new Set,resolveField:n=>`ast:${ol(n)}`,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:null,migrationSourceSql:e.from.cteName===null&&e.joins.length===0?`APP${e.from.appId}${e.from.alias&&e.from.alias!==`APP${e.from.appId}`?` ${e.from.alias}`:""}`:void 0};Dr(e,t)}function Jp(e){return`FIELD:${e}`}var Xp=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 al(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function je(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>je(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=>je(r,t))}}function bo(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>bo(r,t));return}let n=e;if(!(n.type==="SELECT"||n.type==="SCALAR_SUBQUERY")){if(n.type==="AGGREGATE"||n.type==="AGG_REF"){je(n.arg,t);return}Object.values(n).forEach(r=>bo(r,t))}}function Ye(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Ye);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(Ye)}function Ag(e){return!("alias"in e)||e.alias===null?!1:e.type==="AGGREGATE"||e.type==="ARITH_AGG_COL"?!0:e.type==="STRFUNC_COL"||e.type==="SCALAR_VALUE_COL"||e.type==="CASE_COL"?Ye(e):!1}function Sg(e,t,n){let r=t(e.field);if(!r.physical)throw new Error(`ArgumentError: grouping reference ${al(e.field)} must resolve to a physical APP field.`);if(!n.has(r.canonicalId))throw new Error(`ArgumentError: GROUPING argument ${al(e.field)} is not present in grouping allItems (reason=B65_GROUPING_ARG_NOT_ITEM).`);Gp(e,r.canonicalId)}function sl(e){let t=te(e),n=[];for(let i of e.columns)i.type!=="WINDOW_COL"&&je(i,n);je(e.having,n),je(e.orderBy,n);let r=[];je(e.where,r),je(e.joins,r),bo(e.columns,r),bo(e.having,r);for(let i of e.columns)i.type==="WINDOW_COL"&&je(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.");To(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 Qp(e,t,n=()=>{}){sl(e);let r=te(e),i=[];for(let c of e.columns)c.type!=="WINDOW_COL"&&je(c,i);if(je(e.having,i),je(e.orderBy,i),r.type!=="GROUPING_SETS")return null;let o=bp(e,t),a=new Set,s=[];for(let c of o.allItems){let d=c;if(!d.physical)throw new Error(`ArgumentError: grouping item ${al(c.field)} must resolve to a physical APP field.`);a.has(d.canonicalId)||(a.add(d.canonicalId),s.push(d))}n({expandedSetCount:r.sets.length,canonicalItemCount:a.size});for(let c of i)Sg(c,t,a);Dr(e,{identities:new Set([...a].map(Jp)),resolveField:c=>t(c).canonicalId,sourceLabel:e.from.cteName??`APP${e.from.appId}`,groupingLabel:`GROUP BY ${r.source}`});let l=new Set;for(let c of s)l.add(c.directKey),c.unqualifiedBridgeKey!==null&&l.add(c.unqualifiedBridgeKey);for(let c of e.columns){if(!Ag(c))continue;let d="alias"in c?c.alias:null;if(d!==null&&l.has(d))throw new Error(`ArgumentError: aggregate alias ${d} collides with a grouping runtime key (reason=B65_AGGREGATE_ALIAS_COLLISION).`)}return o}function Tg(e){return e.some(t=>t.type==="WINDOW_COL")}function ze(e){return e.from.subtableCode||e.joins.some(t=>t.table.subtableCode)||e.joins.length>0||te(e).type!=="NONE"||e.distinct||Tg(e.columns)||e.columns.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="SCALAR_SUBQUERY_COL"||t.type==="CASE_COL"&&Ye(t.expr)||t.type==="STRFUNC_COL"&&rd(t.expr)||t.type==="SCALAR_VALUE_COL"&&Mr(t.expr))||_t(e.where)||e.orderBy.some(t=>t.key.type!=="FIELD_NAME")?"FULL_SCAN":"SIMPLE"}function _t(e){if(e===null)return!1;switch(e.type){case"BOOLEAN":return!0;case"BINARY":return Zp(e.left)||e.right.type==="ARITH_VALUE"||e.right.type==="CASE_VALUE"||e.right.type==="SUBQUERY_IN_LIST"||e.right.type==="SCALAR_SUBQUERY"||_r(e);case"NULL_CHECK":return Zp(e.field);case"LOGICAL":return _t(e.left)||_t(e.right);case"NOT":case"GROUP":return _t(e.expr);case"EXISTS":return!0}}function Zp(e){return e.type==="FUNC_FIELD"||e.type==="ARITH_FIELD"||e.type==="CASE_FIELD"}function Co(e){let t=[],r=(e.limit!==null||e.offset!==null)&&e.orderBy.length===0;if(e.where!==null&&t.push(j(e.where)),e.orderBy.length>0){let i=e.orderBy.map(Ig).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:wg(e.columns),totalCount:!1}}function nd(e,t){let n=[];return e.where!==null&&e.joins.length===0&&!_t(e.where)&&n.push(j(e.where)),{app:t,query:n.join(" "),fields:[]}}function Rn(e,t,n){let i=od(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 Ig(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 wg(e){if(e.some(r=>r.type==="WILDCARD"||r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"))return[];let n=[];for(let r of e)r.type==="FIELD"?n.push(Po(r.field)):r.type==="ARITH_COL"?Ur(r.expr,n):r.type==="STRFUNC_COL"?ll(r.expr,n):r.type==="SCALAR_VALUE_COL"&&jn(r.expr,n);return[...new Set(n)]}function bg(e,t){Ur(e.left,t),Ur(e.right,t)}function Ur(e,t){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached SELECT field collection.`);e.type==="FIELD_REF"?t.push(Po(e.field)):e.type==="ARITH"?bg(e,t):e.type==="STRING_FUNC"&&ll(e,t)}function Po(e){let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function ll(e,t){for(let n of e.args)Ng(n,t)}function Ng(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){No(e,t);return}jn(e,t)}function jn(e,t){if(e.type==="FIELD"){t.push(Po(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field));return}if(e.type==="STRING_FUNC"){ll(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){jn(e.left,t),jn(e.right,t);return}if(e.type==="CASE_WHEN"){for(let n of e.branches)ed(n.result,t);e.elseResult&&ed(e.elseResult,t)}}function ed(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){No(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Ur(e,t);return}jn(e,t)}}function No(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&Cg(e.arg,t);return}e.type==="AGG_ARITH"&&(No(e.left,t),No(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push(Po(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field))}function Cg(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Ur(e,t):jn(e,t)}function rd(e){return e.args.some(t=>t.type==="AGG_REF"||t.type==="AGG_ARITH"?!0:t.type==="AGG_GROUP_KEY"||t.type==="VARIABLE"?!1:Mr(t))}function Mr(e){return e.type==="STRING_FUNC"?rd(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Mr(e.left)||Mr(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>td(t.result))||e.elseResult!==null&&td(e.elseResult):!1}function td(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:Mr(e)}function id(e,t){let n=new Set,r=od(e,t,{includeMaterialized:!0,unqualified:n});return{bySource:new Map([...r.entries()].map(([i,o])=>[i,new Set(o.fields)])),unqualified:n}}function od(e,t,n){let r=[e.from,...e.joins.map(A=>A.table)],i=[e.from,...e.joins.map(A=>A.table)].filter(A=>A.cteName===null),o=n?r:i,a=new Map;for(let A of o)a.set(A,{table:A,allFields:!1,fields:new Set});if(a.size===0)return a;let s=o[0]??null,l=o.find(A=>!!A.subtableCode)??null,c=new Map;for(let A of o)A.alias&&c.set(A.alias,A),A.cteName!==null?c.set(A.cteName,A):A.subtableCode||(c.set(`APP${A.appId}`,A),c.set(`app${A.appId}`,A));let d=Pg(e.columns),u=A=>{let w=a.get(A);w&&(w.allFields=!0,w.fields.clear())},p=()=>{for(let A of o)u(A)},f=()=>{for(let A of o)A.subtableCode&&u(A)},R=(A,w)=>{let M=a.get(A);if(!(!M||M.allFields)){if(A.subtableCode){if(w.startsWith("_p.")){let O=w.slice(3);O&&O!=="*"&&M.fields.add(O);return}return void 0}w&&M.fields.add(w)}},E=(A,w="select",M)=>{if(!A||A==="*")return;if(A==="_p.*"){f();return}if(A.endsWith(".*")){let F=A.slice(0,-2);if(!F){p();return}if(F==="_p"){f();return}let W=c.get(F);if(W){u(W);return}return}if(w==="groupBy"&&M!==void 0){if(M.kind==="PHYSICAL"){let F=r[M.sourceIndex];F&&(n||F.cteName===null)&&R(F,M.fieldCode)}return}if((w==="orderBy"||w==="having"||w==="groupBy")&&d.has(A)||(w==="orderBy"||w==="having"||w==="groupBy")&&Og(A))return;let O=A.indexOf(".");if(O>0){let F=A.slice(0,O),W=A.slice(O+1);if(F==="_p"){l&&R(l,`_p.${W}`);return}let G=c.get(F);if(G){R(G,W);return}if(n)return}n?n.unqualified.add(A):s&&R(s,A)},m=(A,w,M="select")=>{if(w){if(w==="_p"){l&&R(l,`_p.${A}`);return}let O=c.get(w);if(O){R(O,A);return}if(n)return}E(A,M)},y=(A,w="select")=>{if(A.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${A.name} reached source-aware field collection.`);if(A.type==="FIELD_REF"){E(A.field,w);return}if(A.type==="ARITH"){y(A.left,w),y(A.right,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}},g=(A,w="select")=>{if(A.type==="AGG_REF"){A.arg.type!=="WILDCARD"&&N(A.arg,w);return}A.type==="AGG_ARITH"&&(g(A.left,w),g(A.right,w)),A.type==="AGG_GROUP_KEY"&&m(A.field,A.tableAlias??null,w)},T=(A,w="select")=>{if(A.type==="AGG_REF"||A.type==="AGG_ARITH"||A.type==="AGG_GROUP_KEY"||A.type==="VARIABLE"){g(A,w);return}I(A,w)},h=(A,w="select")=>{for(let M of A.args)T(M,w)},I=(A,w="select")=>{if(A.type==="FIELD"){m(A.field,A.tableAlias,w);return}if(A.type==="STRING_FUNC"){h(A,w);return}if(A.type==="SCALAR_ARITH"||A.type==="CONCAT_OP"){I(A.left,w),I(A.right,w);return}A.type==="CASE_WHEN"&&P(A,w)},N=(A,w="select")=>{if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,w);return}I(A,w)},v=(A,w="select")=>{if(A.type!=="ARRAY"){if(A.type==="AGG_REF"||A.type==="AGG_ARITH"){g(A,w);return}if(A.type==="FIELD_REF"||A.type==="ARITH"){y(A,w);return}I(A,w)}},P=(A,w="select")=>{for(let M of A.branches)C(M.condition,w),v(M.result,w);A.elseResult&&v(A.elseResult,w)},x=(A,w="select")=>{if(A.type==="FIELD"){if(A.aggregateRef){g(A.aggregateRef,w);return}m(A.field,A.tableAlias,w);return}if(A.type==="FUNC_FIELD"){h(A.expr,w);return}if(A.type==="AGG_FIELD"){g(A.expr,w);return}if(A.type==="ARITH_FIELD"){y(A.expr,w);return}A.type!=="GROUPING_FIELD"&&P(A.expr,w)},U=(A,w="select")=>{if(A.type==="ARITH_VALUE"){y(A.expr,w);return}if(A.type==="CASE_VALUE"){P(A.expr,w);return}},C=(A,w="where")=>{if(A)switch(A.type){case"BINARY":x(A.left,w),U(A.right,w);return;case"NULL_CHECK":x(A.field,w);return;case"LOGICAL":C(A.left,w),C(A.right,w);return;case"NOT":case"GROUP":C(A.expr,w);return;case"EXISTS":case"BOOLEAN":return}},D=(A,w)=>{if(A.type==="FIELD_NAME"){E(A.name,"groupBy",w);return}if(A.type==="ARITH_KEY"){y(A.expr,"groupBy");return}h(A.expr,"groupBy")},b=(A,w="orderBy")=>{if(A.type==="FIELD_NAME"){E(A.name,w);return}if(A.type==="ARITH_KEY"){y(A.expr,w);return}A.type!=="GROUPING_KEY"&&h(A.expr,w)};for(let A of e.columns)switch(A.type){case"WILDCARD":p();break;case"PARENT_WILDCARD":f();break;case"FIELD":E(A.field,"select");break;case"LITERAL_COL":break;case"VARIABLE_COL":throw new Error(`internal error: unresolved SELECT variable @${A.name}`);case"AGGREGATE":A.arg.type!=="WILDCARD"&&N(A.arg,"select");break;case"ARITH_AGG_COL":g(A.expr,"select");break;case"ARITH_COL":y(A.expr,"select");break;case"CASE_COL":P(A.expr,"select");break;case"STRFUNC_COL":h(A.expr,"select");break;case"SCALAR_VALUE_COL":I(A.expr,"select");break;case"GROUPING_COL":break;case"SCALAR_SUBQUERY_COL":break;case"WINDOW_COL":(A.windowKind==="AGGREGATE"||A.windowKind==="VALUE")&&A.arg.type!=="WILDCARD"&&N(A.arg,"select");for(let w of A.partitionBy)m(w.field,w.tableAlias,"select");for(let w of A.orderBy)b(w.key,"select");break}for(let A of e.joins)A.type!=="CROSS"&&(m(A.on.left.field,A.on.left.tableAlias,"where"),m(A.on.right.field,A.on.right.tableAlias,"where"));C(e.where,"where");let _=te(e);if(_.type==="PLAIN")_.allItems.forEach((A,w)=>D(A,t?.items[w]));else if(_.type==="GROUPING_SETS")for(let A of _.allItems)m(A.field,A.tableAlias,"select");C(e.having,"having");for(let A of e.orderBy)b(A.key);return a}function Pg(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(pe(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 Og(e){return/^(COUNT|SUM|AVG|MAX|MIN|GROUP_CONCAT|STDDEV_POP|STDDEV_SAMP|VAR_POP|VAR_SAMP|MEDIAN|MODE)\(/i.test(e)}function Xt(e){if(e.ctes.length!==1)return!1;let t=e.ctes[0];if(t.query.type!=="SELECT"||ze(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||wp(n)||n.distinct?!1:!n.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")}function Qt(e){let t=e.ctes[0].query,n=e.query,r=Oo(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 Oo(e,t){if(e===null||t===null)return e;switch(e.type){case"BINARY":return{...e,left:ad(e.left,t)};case"NULL_CHECK":return{...e,field:ad(e.field,t)};case"LOGICAL":return{...e,left:Oo(e.left,t),right:Oo(e.right,t)};case"NOT":case"GROUP":return{...e,expr:Oo(e.expr,t)};case"EXISTS":case"BOOLEAN":return e}}function ad(e,t){return e.type==="FIELD"&&e.tableAlias===t?{...e,tableAlias:null}:e}var Lg=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME","CREATOR","MODIFIER"]),_g=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function ne(e){let t;e.fieldType==="RECORD_NUMBER"||e.fieldType==="__ID__"?t="recordNumber":e.fieldType==="NUMBER"?t="number":e.fieldType==="CALC"?t=e.sortKind==="number"?"number":"string":_g.has(e.fieldType)?t="option":Lg.has(e.fieldType)?t="string":t="unsupported";let n=e.optionOrder?new Map(Object.entries(e.optionOrder)):void 0;return{fieldType:e.fieldType,compareMode:t,inSubtable:e.inSubtable===!0,requiresCollectionOperators:e.inSubtable===!0||e.requiresCollectionOperators===!0,...n&&n.size>0?{optionOrder:n}:{}}}function B(e,t=e==="number"?"KSQL_NUMBER":"KSQL_STRING"){return{fieldType:t,compareMode:e,inSubtable:!1,requiresCollectionOperators:!1}}function zn(e,t,n){return{...e,source:{appId:t,fieldCode:n}}}function Lo(e,t){if(e===t)return!0;if(!e||!t||e.fieldType!==t.fieldType||e.compareMode!==t.compareMode||e.inSubtable!==t.inSubtable||e.requiresCollectionOperators!==t.requiresCollectionOperators||e.source?.appId!==t.source?.appId||e.source?.fieldCode!==t.source?.fieldCode)return!1;let n=e.optionOrder,r=t.optionOrder;if(n===r)return!0;if(!n||!r||n.size!==r.size)return!1;for(let[i,o]of n)if(r.get(i)!==o)return!1;return!0}var qe=["=","!=",">","<",">=","<="],vg=new Set(["DATE","DATETIME","CREATED_TIME","UPDATED_TIME"]),Dg=new Set(qe),Ug=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"])]]),Mg=new Map([["TODAY",new Set(qe)],["NOW",new Set(qe)],["LOGINUSER",new Set(["in","not in"])],["PRIMARY_ORGANIZATION",new Set(["in","not in"])]]),xg=["=","!=","in","not in"],kg=new Map([["RECORD_NUMBER",new Set([...qe,"in","not in"])],["__ID__",new Set([...qe,"in","not in"])],["CREATOR",new Set(["in","not in"])],["MODIFIER",new Set(["in","not in"])],["CREATED_TIME",new Set(qe)],["UPDATED_TIME",new Set(qe)],["DATE",new Set(qe)],["TIME",new Set(qe)],["DATETIME",new Set(qe)],["SINGLE_LINE_TEXT",new Set(["=","!=","in","not in","like","not like"])],["LINK",new Set(["=","!=","in","not in","like","not like"])],["NUMBER",new Set([...qe,"in","not in"])],["CALC",new Set([...qe,"in","not in"])],["MULTI_LINE_TEXT",new Set(["like","not like"])],["RICH_TEXT",new Set(["like","not like"])],["CHECK_BOX",new Set(["in","not in"])],["RADIO_BUTTON",new Set(["in","not in"])],["DROP_DOWN",new Set(["in","not in"])],["MULTI_SELECT",new Set(["in","not in"])],["FILE",new Set(["like","not like"])],["USER_SELECT",new Set(["in","not in"])],["ORGANIZATION_SELECT",new Set(["in","not in"])],["GROUP_SELECT",new Set(["in","not in"])],["STATUS",new Set(xg)],["STATUS_ASSIGNEE",new Set(["in","not in"])]]),Fg=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"])]]),cl=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"]),ud=new Set(["CHECK_BOX","MULTI_SELECT","FILE","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE","CATEGORY"]);function vo(e){return kg.get(e)??new Set}function cd(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"&&cl.has(o.fieldType)&&vo(o.fieldType).has("in")&&o.optionOrder?.has(i.right.value)===!0){let a=i.op==="="?"IN":"NOT_IN";return n.push({field:i.left,originalOperator:i.op,normalizedOperator:a,value:i.right.value}),{...i,op:a,right:{type:"IN_LIST",values:[i.right]}}}}return i}if(i.type==="LOGICAL"){let o=r(i.left),a=r(i.right);return o===i.left&&a===i.right?i:{...i,left:o,right:a}}if(i.type==="GROUP"||i.type==="NOT"){let o=r(i.expr);return o===i.expr?i:{...i,expr:o}}return i};return{normalizedWhere:r(e),rewrites:n}}function Te(e,t){return e===null?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT"}]}:kr(e,t)}function kr(e,t){switch(e.type){case"BOOLEAN":return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};case"BINARY":return Kg(e.op,e.left,e.right,t);case"NULL_CHECK":return e.field.type!=="FIELD"?ul():Bg(e.field,e.not?"IS NOT NULL":"IS NULL",t);case"EXISTS":return ul();case"GROUP":return kr(e.expr,t);case"NOT":{let n=kr(e.expr,t);return n.capability!=="SUPERSET_PREFILTER"?n:dd(n.reasons)?Kr({capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"},...n.reasons]}):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}case"LOGICAL":{let n=kr(e.left,t),r=kr(e.right,t);return Wg(e.op,n,r)}}}function Kg(e,t,n,r){if(n.type==="KINTONE_FUNC"&&re(n.name))return Gg(e,t,n,r);if(n.type==="KINTONE_FUNC"&&sd(n))return ld(e,t,n,r);if(n.type==="IN_LIST"){let d=n.values.filter(u=>u.type==="KINTONE_FUNC");if(d.length>0)return n.values.length===1&&d.length===1?ld(e,t,d[0],r):_o("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",d[0].name,t.type==="FIELD"?t.field:void 0,t.type==="FIELD"?r(t)?.fieldType:void 0,Fr(e))}if(t.type!=="FIELD")return ul();let i=r(t);if(!i)return qn("WHERE_FIELD_UNRESOLVED",t.field,void 0,Fr(e));let o=Fr(e);if(!pd(i.fieldType,o))return qn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",t.field,i.fieldType,o);if(!Vg(i.fieldType,e))return qn("WHERE_OPERATOR_UNSUPPORTED",t.field,i.fieldType,o);let a=vo(i.fieldType),s=n.type==="STRING"||n.type==="NUMBER"||n.type==="IN_LIST"||sd(n),l=!i.requiresCollectionOperators||o!=="="&&o!=="!=",c=e==="LIKE"||e==="NOT_LIKE";return s&&l&&a.has(o)&&!c?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",field:t.field,fieldType:i.fieldType,operator:o}]}:{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:t.field,fieldType:i.fieldType,operator:o}]}}function sd(e){return e.type==="KINTONE_FUNC"&&cn.has(e.name)}function ld(e,t,n,r){let i=Fr(e),o=n.name;if(!cn.has(o)||t.type!=="FIELD")return _o("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED",o,void 0,void 0,i);let a=r(t),s=Ug.get(o);return!a||!s.has(a.fieldType)||a.inSubtable||a.requiresCollectionOperators?_o("WHERE_KINTONE_FUNCTION_FIELD_TYPE_UNSUPPORTED",o,t.field,a?.fieldType,i):Mg.get(o).has(i)?{capability:"EXACT_PUSHDOWN",reasons:[{code:"WHERE_EXACT",functionName:o,field:t.field,fieldType:a.fieldType,operator:i}]}:_o("WHERE_KINTONE_FUNCTION_OPERATOR_UNSUPPORTED",o,t.field,a.fieldType,i)}function Gg(e,t,n,r){let i=Fr(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?$g(n)?Dg.has(i)?!vg.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 $g(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 Bg(e,t,n){let r=n(e);return r?pd(r.fieldType,t)?!cl.has(r.fieldType)&&!ud.has(r.fieldType)?qn("WHERE_OPERATOR_UNSUPPORTED",e.field,r.fieldType,t):{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_RESIDUAL",field:e.field,fieldType:r.fieldType,operator:t}]}:qn("WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE",e.field,r.fieldType,t):qn("WHERE_FIELD_UNRESOLVED",e.field,void 0,t)}function pd(e,t){let n=Fg.get(e);return n===void 0||n.has(t)}function Vg(e,t){return cl.has(e)?!0:ud.has(e)?t==="="||t==="!="||t==="<>"||t==="IN"||t==="NOT_IN"||t==="LIKE"||t==="NOT_LIKE"||t==="KLIKE"||t==="NOT_KLIKE":!1}function Fr(e){switch(e){case"<>":return"!=";case"IN":return"in";case"NOT_IN":return"not in";case"LIKE":case"KLIKE":return"like";case"NOT_LIKE":case"NOT_KLIKE":return"not like";default:return e}}function Wg(e,t,n){let r=[...t.reasons,...n.reasons];return t.capability==="UNSUPPORTED"||n.capability==="UNSUPPORTED"?Kr({capability:"UNSUPPORTED",reasons:r}):t.capability==="EXACT_PUSHDOWN"&&n.capability==="EXACT_PUSHDOWN"?{capability:"EXACT_PUSHDOWN",reasons:r}:e==="AND"&&(t.capability==="EXACT_PUSHDOWN"||n.capability==="EXACT_PUSHDOWN"||t.capability==="SUPERSET_PREFILTER"||n.capability==="SUPERSET_PREFILTER")?Kr({capability:"SUPERSET_PREFILTER",reasons:[{code:"WHERE_SUPERSET_PREFILTER"},...r]}):Kr({capability:"LOCAL_ONLY",reasons:r})}function ul(){return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]}}function qn(e,t,n,r){return{capability:"UNSUPPORTED",reasons:[{code:e,field:t,fieldType:n,operator:r}]}}function _o(e,t,n,r,i){return Kr({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function xr(e,t,n,r,i){return fd({capability:"UNSUPPORTED",reasons:[{code:e,functionName:t,field:n,fieldType:r,operator:i}]})}function dd(e){return e.some(t=>t.code.startsWith("WHERE_RELATIVE_DATE_")||t.functionName!==void 0&&re(t.functionName))}function Hg(e){return e.some(t=>t.code.startsWith("WHERE_KINTONE_FUNCTION_")||t.functionName!==void 0&&cn.has(t.functionName))}function fd(e){if(e.capability==="EXACT_PUSHDOWN"||!dd(e.reasons)||e.reasons.some(n=>n.code==="WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN"))return e;let t=e.reasons.find(n=>n.code.startsWith("WHERE_RELATIVE_DATE_")||n.functionName!==void 0&&re(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_RELATIVE_DATE_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function Yg(e){if(e.capability==="EXACT_PUSHDOWN"||!Hg(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&&cn.has(n.functionName));return{capability:e.capability,reasons:[...e.reasons,{code:"WHERE_KINTONE_FUNCTION_REQUIRES_EXACT_PUSHDOWN",functionName:t.functionName,field:t.field,fieldType:t.fieldType,operator:t.operator}]}}function Kr(e){return Yg(fd(e))}function Gr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return!1;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999)return!1;let o=new Date(0);return o.setUTCFullYear(n,r-1,i),o.setUTCHours(0,0,0,0),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i}function Do(e){let t=/^(\d{2}):(\d{2})$/.exec(e);return t!==null&&Number(t[1])<=23&&Number(t[2])<=59}function Uo(e){let t=/^(\d{4}-\d{2}-\d{2})T(\d{2}):(\d{2}):(\d{2})Z$/.exec(e);return!t||!Gr(t[1])?!1:Number(t[2])<=23&&Number(t[3])<=59&&Number(t[4])<=59}function Mo(e){let t=e.raw??String(e.value),n=be(t);if(n===null)return!1;if(n.sign===0)return z(e)==="0";let r=Math.max(n.scale,0),i=Math.max(n.coefficient.length-n.scale,0);if(r>10||i+r>30)return!1;let o=Ks(n);return z(e)===o}var jg=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]),zg=new Set(["CREATOR","MODIFIER","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),qg=new Set(["SINGLE_LINE_TEXT","LINK","MULTI_LINE_TEXT","RICH_TEXT","FILE"]),Jg=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]);function xo(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"?qg.has(r)&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="__ID__"||n==="$id"?Qg(e.right)&&(e.op==="="||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")?"exact":"unsafe":r==="RECORD_NUMBER"||r==="CALC"?Xg(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"&&Mo(o))||(e.op==="="||e.op==="!="||e.op==="<>"||e.op==="<"||e.op===">"||e.op==="<="||e.op===">=")&&e.right.type==="NUMBER"&&Mo(e.right)?"exact":"unsafe":zg.has(r)?pl(e)?"exact":"unsafe":r==="SINGLE_LINE_TEXT"||r==="LINK"?pl(e)||(e.op==="="||e.op==="!="||e.op==="<>")&&e.right.type==="STRING"&&e.right.value!==""?"exact":"unsafe":r==="DATE"||r==="TIME"||Jg.has(r)?e.op!=="="&&e.op!=="!="&&e.op!=="<>"&&e.op!=="<"&&e.op!==">"&&e.op!=="<="&&e.op!==">="||e.right.type!=="STRING"?"unsafe":r==="DATE"?Gr(e.right.value)?"exact":"unsafe":r==="TIME"?Do(e.right.value)?"exact":"unsafe":Uo(e.right.value)?"exact":"unsafe":jg.has(r)?!pl(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 Ed(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 pl(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 Xg(e){let t=n=>n.type==="NUMBER"&&Mo(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 Qg(e){return e.type==="NUMBER"&&Number.isSafeInteger(e.value)&&e.value>0}function dl(e,t={}){return Go(e,t).condition}function Go(e,t={}){return ko(e,n=>Zg(n,t))}function $r(e,t={}){return Fo(e,n=>Ed(n,r=>Ko(r,t)))}function ko(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=ko(e.left,t),r=ko(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 ko(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return{condition:null,relation:null}}}function Fo(e,t){switch(e.type){case"BINARY":return t(e)?e:null;case"LOGICAL":if(e.op!=="AND")return null;{let n=Fo(e.left,t),r=Fo(e.right,t);return n&&r?{...e,left:n,right:r}:n??r??null}case"GROUP":return Fo(e.expr,t);case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}function Zg(e,t){if(eh(e,t)||th(e,t))return"exact";if(e.left.type!=="FIELD"||!Ko(e.left,t))return"unsafe";let n=t.fieldTypes?.get(e.left.field);return n===void 0||n.startsWith("KSQL_")||Te(e,i=>{if(!Ko(i,t))return;let o=t.fieldTypes?.get(i.field);return o===void 0?void 0:ne({fieldType:o})}).capability!=="EXACT_PUSHDOWN"?"unsafe":xo(e,{fieldCode:e.left.field,fieldType:n,fieldOptions:t.fieldOptions?.get(e.left.field)})}function eh(e,t){return t.allowKlike===!1||e.op!=="KLIKE"&&e.op!=="NOT_KLIKE"||e.left.type!=="FIELD"||!Ko(e.left,t)?!1:e.right.type==="STRING"||t.allowUnresolvedKlikeVariables===!0&&e.right.type==="VARIABLE"}function th(e,t){return!nh(e.left,t)||e.right.type!=="NUMBER"?!1:e.op==="="||e.op===">"||e.op==="<"||e.op===">="||e.op==="<="}function nh(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 Ko(e,t){let n=t.tableAlias??null;return e.tableAlias===n?!0:t.allowUnqualifiedFields===!0&&e.tableAlias===null}function Br(e,t={}){let n=e!==null&&t.extractCondition!==!1?Go(e,t):{condition:null,relation:null},{condition:r,relation:i}=n,o=new Set;Jn(r,o);let a=new Set;return Jn(e,a),{condition:r,relation:i,appliedKlikes:o,allKlikes:[...a]}}function mn(e,t={}){let n=e.joins.every(u=>u.type==="INNER"||u.type==="CROSS"),r={allowKlike:n,allowUnresolvedKlikeVariables:t.allowUnresolvedVariables},i=!e.from.subtableCode&&e.from.cteName===null,o=e.joins.length===0||e.from.alias!==null,a=Br(e.where,{...r,extractCondition:i&&o&&n,tableAlias:e.from.alias??void 0,allowUnqualifiedFields:e.joins.length===0,fieldTypes:t.fieldTypesByApp?.get(e.from.appId),fieldOptions:t.fieldOptionsByApp?.get(e.from.appId)}),s=a.condition,l=new Map,c=new Map;if(e.where!==null)for(let u of e.joins){if(u.type!=="INNER"&&u.type!=="CROSS"||!u.table.alias||u.table.subtableCode||u.table.cteName!==null)continue;let p=Go(e.where,{...r,tableAlias:u.table.alias,fieldTypes:t.fieldTypesByApp?.get(u.table.appId),fieldOptions:t.fieldOptionsByApp?.get(u.table.appId)});p.condition!==null&&p.relation!==null&&(l.set(u.table.alias,p.condition),c.set(u.table.alias,p.relation))}let d=new Set(a.appliedKlikes);for(let u of l.values())Jn(u,d);return{mainCondition:s,mainRelation:a.relation,joinConditions:l,joinRelations:c,appliedKlikes:d,allKlikes:a.allKlikes}}function fl(e){return e.allKlikes.filter(t=>!e.appliedKlikes.has(t))}function Jn(e,t){if(e!==null){if(qt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Jn(e.left,t),Jn(e.right,t);return;case"NOT":case"GROUP":Jn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}var rh=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})}),ml=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})}),Vr="v1";function q(e){throw new Error(`UnsupportedError: APPLY ${Vr} scope does not support ${e}`)}function ih(e,t){let n=Vr;Vr=e;try{return t()}finally{Vr=n}}function oh(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 Zn(e,t){return ih(e,()=>ah(t,rh[e]))}function ah(e,t){let n=oh(e);if(n===null)return;if(n.type==="UPSERT"){lh(n,t);return}let r=n.applyBlocks;if(El(r),!t.multipleBlocks&&r.length!==1&&q("multiple APPLY blocks in this phase"),n.type==="INSERT"){uh(n,r,t);return}let i=n;i.subtableCode&&q("a subtable UPDATE as the parent statement in this phase"),!t.updateFrom&&i.from!=null&&q("UPDATE ... FROM in this phase"),!t.check&&i.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&i.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&i.rejectLimit!=null&&q("REJECT LIMIT in this phase"),ch(i.where,t.multipleParents),md(r,t)}function md(e,t){for(let n of e){for(let r of n.operations)t.operations.has(r.kind)||q(`${r.kind} in this phase`);yd(n);for(let r of n.operations){if(r.kind==="APPEND"){for(let i of r.fields)$o(i,"APPEND targets");Qn(r.values,"APPEND values");continue}if(r.kind==="REMOVE"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.selector.kind==="WHERE"&&Rd(r.selector.where,t.idxSelectors);continue}if(r.kind==="PATCH"){!t.expectRows&&r.expectRows&&q("EXPECT ROWS in this phase"),r.assignments.length===0&&q("an empty PATCH operation in this phase");for(let i of r.assignments){if(i.field.startsWith("_")||i.field.startsWith("$"))throw new Error(`ArgumentError: APPLY assignment target ${i.field} is a system field.`);i.field.includes(".")&&q("parent or qualified PATCH targets in this phase")}Qn(r.assignments,"PATCH assignments"),r.selector.kind==="WHERE"&&Rd(r.selector.where,t.idxSelectors)}}}}function yd(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 sh=new Set(["MULTI_SELECT","CHECK_BOX","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function gd(e,t){if(yd(e),e.targetKind==="MULTI_VALUE"){if(!sh.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 El(e){let t=new Set;for(let n of e){if(t.has(n.field))throw new Error(`ArgumentError: APPLY ${Vr} scope allows only one block for table ${n.field}`);t.add(n.field)}}function lh(e,t){t.upsert||q("UPSERT in this phase"),!t.check&&e.checkGroups?.length&&q("CHECK in this phase"),!t.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!t.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase");let n=e.onInsertApplyBlocks??[],r=e.onUpdateApplyBlocks??[];El(n),El(r),!t.multipleBlocks&&(n.length>1||r.length>1)&&q("multiple APPLY blocks in this phase"),hd(n,"UPSERT ON INSERT"),md(r,{...t,idxSelectors:!1,expectRows:!1})}function hd(e,t){for(let n of e)for(let r of n.operations){r.kind!=="APPEND"&&q(`${r.kind} for ${t} in this phase`);for(let i of r.fields)$o(i,"APPEND targets");Qn(r.values,"APPEND values")}}function uh(e,t,n){n.insert||q("INSERT in this phase"),e.subtableCode&&q("a subtable INSERT as the parent statement in this phase"),!n.check&&e.checkGroups?.length&&q("CHECK in this phase"),!n.onErrorSkip&&e.onErrorSkip&&q("ON ERROR SKIP in this phase"),!n.rejectLimit&&e.rejectLimit!=null&&q("REJECT LIMIT in this phase"),hd(t,"INSERT")}function vt(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 Wr(e,t){let n=ml[e],r="validateOnly"in t&&t.validateOnly===!0;if(t.type!=="EXPLAIN"&&!r&&yl(t)&&e!=="phase15b")throw new Error(`UnsupportedError: APPLY ${Xn(e)} multi-value execution is not connected`);if(t.type==="UPSERT"&&(t.onInsertApplyBlocks?.length||t.onUpdateApplyBlocks?.length)){if(t.validateOnly!==!0&&!n.upsertWrite)throw new Error(`UnsupportedError: APPLY ${Xn(e)} UPSERT execution is not connected`);return}if(t.type==="INSERT"&&t.applyBlocks?.length){if(t.validateOnly!==!0&&!n.insertWrite)throw new Error(`UnsupportedError: APPLY ${Xn(e)} INSERT execution is not connected`);return}if(!(t.type!=="UPDATE"||!t.applyBlocks?.length)&&!n.multipleParentPreflight&&!vt(t.where))throw new Error(`UnsupportedError: APPLY ${Xn(e)} execution does not support multiple-parent APPLY`)}function yl(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 Ad(e,t){if(!(t.type!=="UPDATE"||!t.applyBlocks?.length||vt(t.where))&&!ml[e].publicMultipleParentWrite)throw new Error(`UnsupportedError: APPLY ${Xn(e)} public multiple-parent write is not connected`)}function er(e){if(!ml[e].internalPreparedWrite)throw new Error(`UnsupportedError: APPLY ${Xn(e)} internal prepared write is not available`)}function Xn(e){return`Phase ${e.slice(5)}`}function ch(e,t){vt(e)||(e.type==="BINARY"&&e.op==="="&&e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="$id"&&q("a parent $id that is not a positive safe integer in this phase"),t||q("a parent WHERE other than the single condition $id = <positive safe integer> in this phase"),Rl(e,t))}function Rl(e,t){if(Array.isArray(e)){for(let o of e)Rl(o,t);return}if(e===null||typeof e!="object")return;let n=e,r=typeof n.type=="string"?n.type:null,i=typeof n.op=="string"?n.op:null;!t&&(i==="KLIKE"||i==="NOT_KLIKE")&&q("KLIKE in parent WHERE"),(r==="SELECT"||r==="SCALAR_SUBQUERY"||r==="SUBQUERY_IN_LIST"||r==="EXISTS")&&q("subqueries in parent WHERE"),(r==="WINDOW_COL"||r==="AGGREGATE"||r==="AGG_REF"||r==="AGG_ARITH"||r==="ARITH_AGG_COL")&&q("aggregate or window expressions in parent WHERE"),(r==="FIELD"||r==="FIELD_REF")&&typeof n.field=="string"&&/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(n.field)&&q("aggregate or window expressions in parent WHERE"),r==="KINTONE_FUNC"&&!(typeof n.name=="string"&&re(n.name))&&q("non-deterministic kintone functions in parent WHERE");for(let o of Object.values(n))Rl(o,t)}function Rd(e,t){Qn(e,"child row selectors",t)}function Qn(e,t,n=!1){if(Array.isArray(e)){for(let s of e)Qn(s,t,n);return}if(e===null||typeof e!="object")return;let r=e,i=typeof r.type=="string"?r.type:null,o=typeof r.kind=="string"?r.kind:null,a=typeof r.op=="string"?r.op:null;if((a==="KLIKE"||a==="NOT_KLIKE")&&q(`KLIKE in ${t}`),(i==="SELECT"||i==="SCALAR_SUBQUERY"||i==="SUBQUERY_IN_LIST"||i==="EXISTS")&&q(`subqueries in ${t}`),(i==="WINDOW_COL"||i==="AGGREGATE"||i==="AGG_REF"||i==="AGG_ARITH"||i==="ARITH_AGG_COL")&&q(`aggregate or window expressions in ${t}`),i==="KINTONE_FUNC"&&!(typeof r.name=="string"&&re(r.name))&&q(`non-deterministic kintone functions in ${t}`),i==="FIELD"){let s=r.tableAlias,l=r.field;s!=null&&q(`qualified or parent field references in ${t}`),$o(l,t,n)}if(i==="FIELD_REF"&&$o(r.field,t,n),!(o==="PATCH"||o==="APPEND"||o==="REMOVE"))for(let s of Object.values(r))Qn(s,t,n)}function $o(e,t,n=!1){if(typeof e!="string")return;let r=e.toLowerCase();r==="_idx"&&!n&&q(`_idx in ${t}`),(r.startsWith("_p.")||r.includes("."))&&q(`parent or qualified field references in ${t}`),/^(count|sum|avg|min|max|group_concat)\s*\(/i.test(e)&&q(`aggregate expressions in ${t}`)}var Se=class extends Error{constructor(t){super(`ArgumentError: ${t}`),this.name="ArgumentError"}};function Sd(e){Td(e)}function hl(e){if(fl(e).length>0)throw new Se("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 Td(e){switch(e.type){case"SELECT":tr(e);return;case"UNION":Sl(e);return;case"WITH":Id(e);return;case"EXPLAIN":Td(e.query);return;case"CREATE_TEMP_TABLE":Al(e.query);return;case"SET_VARIABLE":case"DECLARE_VARIABLE":case"ASSERT":case"EXIT":yn(e);return;case"UPDATE":if(e.applyBlocks?.length&&!vt(e.where)&&Pe(e.where)){gl(e.where),yn(e);return}if(Zt(e)&&e.subtableCode)throw new Se("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.applyBlocks?.length&&!e.subtableCode&&Pe(e.where)&&!fh(e,e.where)){gl(e.where),yn(e);return}if(Zt(e))throw new Se("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(Zt(e)&&e.subtableCode)throw new Se("KLIKE / NOT KLIKE \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306E WHERE \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");if(!e.subtableCode&&Pe(e.where)){gl(e.where),yn(e);return}if(Zt(e))throw new Se("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(Zt(e))throw new Se("KLIKE / NOT KLIKE \u306F INSERT / INSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"UPSERT":case"UPSERT_SELECT":if(Zt(e))throw new Se("KLIKE / NOT KLIKE \u306F UPSERT / UPSERT SELECT \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093");return;case"REORDER":if(Zt(e))throw new Se("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(Zt(e))throw new Se("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 gl(e){Vo(e,t=>{if(!qt(t))return;let n=t.right;if(n.type!=="STRING"&&n.type!=="VARIABLE")throw new Se("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 Se("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 Al(e){e.type==="SELECT"?tr(e):e.type==="UNION"?Sl(e):Id(e)}function Sl(e){Al(e.left),tr(e.right)}function Id(e){if(Xt(e)){tr(Qt(e));return}for(let t of e.ctes)t.query.type==="SELECT"?tr(t.query):t.query.type==="UNION"&&Sl(t.query);Al(e.query)}function tr(e){if(dh(e),Pe(e.where)&&!(ze(e)==="SIMPLE"&&e.from.cteName===null&&e.joins.every(n=>n.table.cteName===null))){let n=mn(e,{allowUnresolvedVariables:!0});if(fl(n).length===0){yn(e);return}if(ph(e)){yn(e);return}throw new Se("FULL_SCAN \u306E KLIKE / NOT KLIKE \u306F\u3001\u7269\u7406\u30C6\u30FC\u30D6\u30EB\u306B\u5BFE\u3059\u308B AND \u30EA\u30FC\u30D5\u3068\u3057\u3066\u5FC5\u305A\u62BC\u3057\u4E0B\u3052\u3089\u308C\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002OR / NOT \u914D\u4E0B\u3001CTE\u30FB\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3001LEFT / RIGHT JOIN \u3067\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093")}yn(e)}function ph(e){return e.where!==null&&Ae(e.where).length>0&&e.joins.length>0&&e.joins.every(t=>t.type==="INNER"||t.type==="CROSS")&&[e.from,...e.joins.map(t=>t.table)].every(t=>t.alias!==null&&t.cteName===null&&!t.subtableCode)}function dh(e){Vo(e,t=>{if(!qt(t))return;if(!Bo(e.where,t))throw new Se("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 Se("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 Se("KLIKE / NOT KLIKE \u306E\u691C\u7D22\u8A9E\u306B % \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002SQL \u30EF\u30A4\u30EB\u30C9\u30AB\u30FC\u30C9\u691C\u7D22\u306B\u306F LIKE \u3092\u4F7F\u7528\u3057\u3066\u304F\u3060\u3055\u3044")})}function yn(e){Wo(e,t=>{t.type==="SELECT"&&tr(t)},!0)}function Zt(e){let t=!1;return Wo(e,n=>{n.type==="BINARY"&&(n.op==="KLIKE"||n.op==="NOT_KLIKE")&&(t=!0)}),t}function fh(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 Bo(e,t){if(e===null)return!1;if(e===t)return!0;switch(e.type){case"LOGICAL":return Bo(e.left,t)||Bo(e.right,t);case"NOT":case"GROUP":return Bo(e.expr,t);case"BINARY":case"NULL_CHECK":case"EXISTS":return!1;case"BOOLEAN":return!1}}function Vo(e,t){if(Array.isArray(e)){for(let r of e)Vo(r,t);return}if(e===null||typeof e!="object")return;let n=e;(n.type==="BINARY"||n.type==="NULL_CHECK"||n.type==="LOGICAL"||n.type==="NOT"||n.type==="GROUP"||n.type==="EXISTS")&&t(n);for(let r of Object.values(n))r!==e&&Eh(r)||Vo(r,t)}function Wo(e,t,n=!1){if(Array.isArray(e)){for(let i of e)Wo(i,t);return}if(e===null||typeof e!="object")return;let r=e;n||t(r);for(let i of Object.values(r))Wo(i,t)}function Eh(e){return e!==null&&typeof e=="object"&&e.type==="SELECT"}var Hr=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 wd(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(Rh(t))throw new Hr;return;default:return}}function Rh(e){let t=!1;return Ho(e,n=>{t||!Object.prototype.hasOwnProperty.call(n,"where")||mh(n.where)&&(t=!0)}),t}function mh(e){let t=!1;return Ho(e,n=>{n.type==="KINTONE_FUNC"&&n.name==="PRIMARY_ORGANIZATION"&&(t=!0)}),t}function Ho(e,t){if(Array.isArray(e)){for(let r of e)Ho(r,t);return}if(e===null||typeof e!="object")return;let n=e;t(n);for(let r of Object.values(n))Ho(r,t)}function en(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 Yo(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 en(e,t,1,1);case"SUBSTRING":case"LPAD":case"RPAD":case"REGEXP_LIKE":case"REGEXP_SUBSTR":return en(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 en(e,t,2,2);case"CONCAT":case"COALESCE":case"GREATEST":case"LEAST":return en(e,t,2);case"REPLACE":case"TRANSLATE":case"DATE_ADD":return en(e,t,3,3);case"REGEXP_REPLACE":return en(e,t,3,5);case"ROUND":case"FLOOR":case"CEIL":case"TRUNCATE":return en(e,t,1,2);case"CURRENT_DATE":case"CURRENT_TIMESTAMP":return en(e,t,0,0)}}var wl=1e4,Dt=wl,Z=e=>new Error(`ArgumentError: ${e}`),yh=e=>e.type==="VARIABLE",tn=e=>e?.type==="STRING"&&e.fromVariable===!0;function gh(e){return e.type==="NUMBER"?Number(z(e)):e.value}function nr(e){let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return null;let n=Number(t[1]),r=Number(t[2]),i=Number(t[3]);if(n<1||n>9999||r<1||r>12||i<1||i>31)return null;let o=new Date(0);return o.setUTCHours(0,0,0,0),o.setUTCFullYear(n,r-1,i),o.getUTCFullYear()===n&&o.getUTCMonth()===r-1&&o.getUTCDate()===i?{year:n,month:r,day:i}:null}function Tl(e){let t=nr(e),n=new Date(0);return n.setUTCHours(0,0,0,0),n.setUTCFullYear(t.year,t.month-1,t.day),Math.trunc(n.getTime()/864e5)}function hh(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 bd(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 Yr(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 jr(e){let t=be(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 Nd(e){return typeof e=="string"&&(/^\d{4}-\d{2}-\d{2}T/.test(e)||/^\d{2}:\d{2}(?::\d{2})?$/.test(e))}function jo(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 Il(e){return e.year*12+e.month-1}function Cd(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 Ah(e,t,n){let r=Tl(`${String(e.year).padStart(4,"0")}-${String(e.month).padStart(2,"0")}-${String(e.day).padStart(2,"0")}`),i=Tl(`${String(t.year).padStart(4,"0")}-${String(t.month).padStart(2,"0")}-${String(t.day).padStart(2,"0")}`);if(n.unit==="DAY")return jo(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=Il(t)+(n.coefficient<0&&t.day!==1?1:0);return jo(Il(e),s,n.coefficient)}let o=t.month===1&&t.day===1,a=t.year+(n.coefficient<0&&!o?1:0);return jo(e.year,a,n.coefficient)}function Pd(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 Sh(e){let t=Math.floor(e/12),n=e-t*12+1;return Pd(t,n,1)}function Od(e){if(e.args.length<2||e.args.length>3)throw Z("GENERATE_SERIES \u306F start\u3001stop \u3068\u7701\u7565\u53EF\u80FD\u306A step \u306E2\u500B\u307E\u305F\u306F3\u500B\u306E\u5F15\u6570\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");let t=e.args.map(g=>gh(g));["start","stop","step"].forEach((g,T)=>{if(t[T]==="")throw Z(`GENERATE_SERIES \u306E ${g} \u306B\u7A7A\u6587\u5B57\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002`)});let[n,r,i]=t,[o,a,s]=e.args,l=typeof n=="string"?nr(n):null,c=typeof r=="string"?nr(r):null,d=typeof n=="string"&&/^\d{4}-/.test(n),u=typeof r=="string"&&/^\d{4}-/.test(r);if([n,r].some(Nd))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(l||c||d||u||typeof n=="string"&&typeof r=="string"&&!(tn(o)&&tn(a)&&Yr(n)!==null&&Yr(r)!==null)){if(!l||!c)throw Z(l&&typeof r!="string"||c&&typeof n!="string"?"GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002":"GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(i!==void 0&&typeof i!="string")throw Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let g=i===void 0?{coefficient:1,unit:"DAY"}:bd(i);return Cd(l,g.unit),{kind:"DATE",start:n,stop:r,step:g.coefficient,dateUnit:g.unit,rowCount:Ah(l,c,g)}}let p=o.type==="NUMBER"?jr(o):tn(o)?Yr(n):null,f=a.type==="NUMBER"?jr(a):tn(a)?Yr(r):null;if(p===null||f===null)throw(o.type==="NUMBER"||tn(o))&&(a.type==="NUMBER"||tn(a))?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E start \u3068 stop \u306F\u3001\u4E21\u65B9\u3092\u6574\u6570\u307E\u305F\u306F\u4E21\u65B9\u3092 DATE \u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let R=i===void 0?1:s?.type==="NUMBER"?jr(s):tn(s)?Yr(i):null;if(R===null)throw s?.type==="NUMBER"||tn(s)?Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002"):Z("GENERATE_SERIES \u306E step \u304C\u7CFB\u5217\u306E\u578B\u3068\u4E00\u81F4\u3057\u307E\u305B\u3093\u3002\u6574\u6570\u7CFB\u5217\u306B\u306F\u6574\u6570\u3001DATE \u7CFB\u5217\u306B\u306F day\u3001month\u3001year \u5358\u4F4D\u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002");let E=p,m=f,y=R;if(y===0)throw Z("GENERATE_SERIES \u306E step \u306B 0 \u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002");return{kind:"INTEGER",start:E,stop:m,step:y,rowCount:jo(E,m,y)}}function Th(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(yh)){["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"&&jr(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(Nd(o.value))throw Z("GENERATE_SERIES \u306F Phase 1 \u3067\u306F\u6574\u6570\u3068 DATE \u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\u3002DATETIME \u3068 TIME \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002");if(/^\d{4}-/.test(o.value)&&nr(o.value)===null)throw Z("GENERATE_SERIES \u306E\u65E5\u4ED8\u5F15\u6570\u306B\u306F\u5B9F\u5728\u3059\u308B YYYY-MM-DD \u5F62\u5F0F\u306E DATE \u3092\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002")}});let n=e.args[2];if(n?.type==="NUMBER"){let r=jr(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=bd(n.value),i=e.args[0];if(i?.type==="STRING"){let o=nr(i.value);o&&Cd(o,r.unit)}}return null}let t=Od(e);if(t.rowCount>Dt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Dt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);return t.rowCount}function Ld(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=Th(a.query);s===null?o=!1:i+=s}else t(a.query);if(o&&i>Dt)throw Z(`\u3053\u306E WITH \u6587\u306E GENERATE_SERIES \u751F\u6210\u4EF6\u6570\u5408\u8A08 ${i} \u884C\u304C\u4E0A\u9650 ${Dt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);t(r.query);return}Object.values(r).forEach(t)};t(e)}function zo(e){let t=Od(e);if(t.rowCount>Dt)throw Z(`GENERATE_SERIES \u306E\u751F\u6210\u4EF6\u6570 ${t.rowCount} \u884C\u304C\u4E0A\u9650 ${Dt} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let n=[];if(t.kind==="INTEGER"){let r=t.start;for(let i=0;i<t.rowCount;i++)if(n.push(String(r)),i+1<t.rowCount){let o=r+t.step;if(!Number.isSafeInteger(o))throw Z("GENERATE_SERIES \u306E\u6570\u5024\u7CFB\u5217\u306F\u6574\u6570\u306E start\u3001stop\u3001step \u306E\u307F\u3092\u53D7\u3051\u4ED8\u3051\u307E\u3059\u3002");r=o}}else{let r=nr(t.start);if(t.dateUnit==="MONTH"){let i=Il(r);for(let o=0;o<t.rowCount;o++)n.push(Sh(i+o*t.step))}else if(t.dateUnit==="YEAR")for(let i=0;i<t.rowCount;i++)n.push(Pd(r.year+i*t.step,1,1));else{let i=Tl(t.start);for(let o=0;o<t.rowCount;o++)n.push(hh(i+o*t.step))}}return{...t,values:n}}function Je(e){Ih(e),wd(e),Sd(e),Ld(e)}function Ih(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;Yo(i.func,i.args)}Object.values(r).forEach(t)};t(e)}var wh=/^(\s*)--\s*@ksql\s+([^:\s]+)\s*:\s*(.*)$/i;function qo(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=Ch(e,o),l=e.slice(o,s.contentEnd);if(!/^\s*--/.test(l))break;a=s.next;let c=wh.exec(l);if(c){i=!0;let d=c[2],u=d.toLowerCase(),p=c[3],f=p.indexOf("#"),R=f<0?p:p.slice(0,f),E=R.match(/^\s*/)?.[0].length??0,m=R.trim(),y=o+c.index+c[0].length-p.length+E;bh(u)?r.has(u)?n.push(Be(e,y,{severity:"warning",code:le.HEADER_DUPLICATE_KEY,message:`Duplicate @ksql header key "${u}" was ignored; the first value is retained.`})):(r.add(u),Nh(t,u,m,e,y,n)):n.push(Be(e,y,{severity:"warning",code:le.HEADER_UNKNOWN_KEY,message:`Unknown @ksql header key "${d}" was ignored.`}))}o=s.next}return{meta:t,diagnostics:n,hasDirectives:i,headerEnd:a}}function bh(e){return e==="name"||e==="depends_on"||e==="timeout"||e==="dialect"}function Nh(e,t,n,r,i,o){if(t==="name"){n?e.name=n:o.push(Be(r,i,{severity:"error",code:le.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(Be(r,i,{severity:"error",code:le.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(Be(r,i,{severity:"error",code:le.HEADER_INVALID_TIMEOUT,message:"@ksql timeout must be a positive integer."})):e.timeout=Number(n);return}n!=="0"&&n!=="1"?o.push(Be(r,i,{severity:"error",code:le.HEADER_INVALID_DIALECT,message:"@ksql dialect must be 0 or 1."})):e.dialect=Number(n)}function Ch(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 bd(e,t={}){let n=jo(e),r=[...n.diagnostics],i=e,o=[],a=Kn(e).filter(l=>l.source==="logical"),s=Eh(t.apps);for(let l of a)s?.has(l.logicalName)||r.push(Be(e,l.start,{severity:"error",code:le.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===le.LOGICAL_APP_UNRESOLVED)){let l=lo(e,"flow",{resolveLogicalApp(c){return s.get(c)}});i=l.normalizedSql,o=l.rewriteSegments}if(a.length>0&&r.some(l=>l.code===le.LOGICAL_APP_UNRESOLVED))return{meta:n.meta,statements:[],statementRanges:[],diagnostics:r};try{let l=new jt(new Ot(i).tokenize(),{dialect1:n.meta.dialect===1}).parseStatementsWithRanges(),c=l.statementRanges.map(d=>({start:Sl(d.start,o,"start"),end:Sl(d.end,o,"end")}));return l.statements.forEach((d,u)=>{try{Je(d)}catch(p){r.push(Be(e,c[u]?.start??0,{severity:"error",code:le.PARSE_ERROR,message:wd(p),statementIndex:u}))}}),{meta:n.meta,statements:l.statements,statementRanges:c,diagnostics:r}}catch(l){let c=l instanceof S?l.token.pos:l instanceof Ue?l.pos:0,d=Sl(c,o,"start");return r.push(Be(e,d,{severity:"error",code:l instanceof Ue?le.LEX_ERROR:l instanceof S&&l.rawMessage.includes("-- @ksql dialect: 1")?le.DIALECT1_REQUIRED:le.PARSE_ERROR,message:l instanceof S?l.rawMessage:wd(l),statementIndex:Rh(e,d)})),{meta:n.meta,statements:[],statementRanges:[],diagnostics:r}}}function Eh(e){if(e===void 0)return;let t=new Map;for(let[n,r]of Object.entries(e))try{t.set(Gn(n),r)}catch{}return t}function wd(e){return e instanceof Error?e.message:String(e)}function Rh(e,t){try{let n=new Ot(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 Sl(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 Nd(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function ir(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function mh(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 Tl(e){return ir(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Cd(e){return!Tl(e)&&(mh(e.type)||ir(e.type))}var Pd=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function xe(e,t){for(let n of t)e.add(n)}function zo(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"&&Pd.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=>zo(i,t)):zo(r,t))}function qo(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"&&!Pd.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=>qo(i,t)):qo(r,t))}function nn(e){let t=new Set;if(ir(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":xe(t,rr(e));break;case"UNION":xe(t,Ld(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&xe(t,nn(n.query));xe(t,nn(e.query));break;case"CREATE_TEMP_TABLE":xe(t,nn(e.query));break;default:break}return zo(e)&&t.add("STATISTICAL_AGGREGATE"),qo(e)&&t.add("AGGREGATE"),t}function Od(e){return nn(e).size>0}function Ld(e){let t=e.left.type==="SELECT"?rr(e.left):Ld(e.left);return xe(t,rr(e.right)),e.all||t.add("DISTINCT"),t}function rr(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"&&xe(t,rr(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)xe(t,nr(i.condition));return xe(t,nr(e.where)),xe(t,nr(e.having)),zo(e)&&t.add("STATISTICAL_AGGREGATE"),qo(e)&&t.add("AGGREGATE"),t}function nr(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")&&xe(t,rr(e.right.query));break;case"LOGICAL":xe(t,nr(e.left)),xe(t,nr(e.right));break;case"NOT":case"GROUP":xe(t,nr(e.expr));break;case"EXISTS":xe(t,rr(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function _d(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Dd(e){if(!e||typeof e!="object")return null;let t=e;return t.type!=="INSERT"?null:Array.isArray(t.values)?t.values.length:null}var Jo=16,vd=64,se=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function jr(e,t,n){if(Array.isArray(e)){for(let r of e)jr(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))jr(a,t,n)}}var gh=new Set(["=","!=","<>",">","<",">=","<="]);function Il(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Il(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(Bn(r.name)!==null)return;t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",c=n&&i==="BINARY"&&a==="right"&&l&&gh.has(String(r.op));Il(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?c:o?n:!1)}}}function yh(e){let t=e.type==="EXPLAIN"?e.query:e;return ir(t.type)||t.type==="VALIDATE"}function wl(e){if(Array.isArray(e)){for(let t of e)wl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&rl(e);for(let n of Object.values(t))wl(n)}}function bl(e){if(e.length===0)throw new se("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{wl(u)}catch(f){throw f instanceof Error?new se(f.message,p):f}try{Qn("phase15b",u),Je(u)}catch(f){throw f instanceof Ae||f instanceof Wr?new se(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new se(f.message,p):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let p=u==="SET_VARIABLE"?"SET":"DECLARE";throw new se(`ArgumentError: ${p} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let p=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new se(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((u,p)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let D=u.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in u&&u.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new se(D,p)}let R=Nd(u),E=[],m=[],g=new Set,y=new Set,T=new Set,h=[];Il(u,h);let I=new Set;for(let D of h){let P=o.get(D.name);if(P===void 0)throw new se(`ParseError: variable @${D.name} is not defined before statement ${p+1}.`,p);if(P.kind==="scalar"&&D.kind==="array-in-list")throw new se(`ParseError: scalar variable @${D.name} cannot be used as IN @${D.name}; use IN (@${D.name}) instead.`,p);if(P.kind==="array"&&D.kind!=="array-in-list")throw new se(`ParseError: array variable @${D.name} can only be used as IN @${D.name}.`,p);if(P.relativeDate&&yh(u))throw new se(`ArgumentError: RELATIVE_DATE variable @${D.name} cannot be used in DML or VALIDATE statements.`,p);if(P.relativeDate&&!D.relativeDateAllowed)throw new se(`ArgumentError: RELATIVE_DATE variable @${D.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(D.name)||(P.referencedBy.push(p),I.add(D.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new se(`ParseError: variable @${u.name} is already defined.`,p);if(o.set(u.name,{index:p,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>vd)throw new se(`ParseError: batch exceeds ${vd} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?jr(u.query,g,y):u.type==="DROP_TEMP_TABLE"||jr(u,g,y);let N=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let D=new Set,P=new Set;jr(u.select,D,P),N=D.size>0&&P.size===0}for(let D of g){let P=t.get(D);if(P===void 0)throw new se(`ParseError: temp table ${D} is not defined in this batch.`,p);T.add(P)}if(f){let D=u.type==="VALIDATE"?u.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:u.type==="IMPORT"&&u.targets?.some(U=>U.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(U=>U.field)]:"fields"in u?u.fields:[],P=JSON.stringify(D),M=t.get(f);if(M===void 0){if(t.set(f,p),n.set(f,P),r.push(f),E.push(f),t.size>Jo)throw new se(`ParseError: batch exceeds ${Jo} temp tables.`,p)}else{if(n.get(f)!==P)throw new se(`ParseError: validation error table ${f} has a different payload schema.`,p);T.add(M)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new se(`ParseError: temp table ${u.name} is already defined.`,p);if(t.set(u.name,p),r.push(u.name),E.push(u.name),t.size>Jo)throw new se(`ParseError: batch exceeds ${Jo} temp tables.`,p)}if(u.type==="DROP_TEMP_TABLE"){let D=t.get(u.name);if(D===void 0)throw new se(`ParseError: temp table ${u.name} is not defined in this batch.`,p);T.add(D),m.push(u.name),t.delete(u.name)}i.push({index:p,statementType:R,isDml:Tl(u),isReadOnly:Cd(u),hasWhere:_d(u),insertValuesCount:Dd(u),appIds:[...y].sort((D,P)=>D-P),tempTablesCreated:E,tempTablesReferenced:[...g],tempTablesDropped:m,dependsOn:[...T].sort((D,P)=>D-P),tempOnlySource:N,targetAppId:ir(R)&&typeof u.appId=="number"?u.appId:null,isUpdateFrom:u.type==="UPDATE"&&u.from!=null,isValidationOnly:"validateOnly"in u&&u.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in u&&u.onErrorSkip===!0,requiresCompleteInput:Od(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),c=i.some(u=>u.requiresCompleteInput),d=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:c,tempTables:r,variables:d,warnings:d.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}function rn(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function hh(e,t){return e<t?-1:e>t?1:0}function Ud(e){if(e==="")return{band:0};let t=we(e);if(t!==null)return{band:2,value:t};let n=Number(e);return n===Number.NEGATIVE_INFINITY?{band:1}:n===Number.POSITIVE_INFINITY?{band:3}:e==="NaN"?{band:4}:{band:5,value:e}}function Ah(e,t){let n=Ud(e),r=Ud(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?co(n.value,r.value):n.band===5&&r.band===5?rn(n.value,r.value):0}function Md(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 Sh(e,t,n){let r=Md(e,n),i=Md(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=rn(r.normalizedId,i.normalizedId);return o!==0?o:rn(r.display,i.display)}function Th(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 xd(e,t){let n=t.optionOrder??new Map,i=[...new Set(Th(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(kd),i}function kd(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:rn(e.label,t.label)}function Ih(e,t,n){let r=xd(e,n),i=xd(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=kd(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function st(e,t,n){switch(n.compareMode){case"string":return rn(e,t);case"number":return Ah(e,t);case"recordNumber":return Sh(e,t,n.fieldType==="RECORD_NUMBER");case"option":return Ih(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function vt(e,t,n,r=B("string")){let i=st(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 Fd(e,t){if(t==="least"&&e.includes(""))return"";let n=t==="greatest"?e.filter(o=>o!==""):[...e];if(n.length===0)return"";let r=n.every(o=>!Number.isNaN(Number(o))),i=(o,a)=>{if(r){let s=we(o),l=we(a),c=s!==null&&l!==null?co(s,l):hh(Number(o),Number(a));if(c!==0)return c}return rn(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function Re(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(Ge(t,e.field));if(e.type==="STRING_FUNC")return Number(me(e,t,void 0,void 0,n));let r=Re(e.left,t,n),i=Re(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 Pe(e,t,n,r,i={}){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Ge(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 me(e,t,n,r,i);case"CASE_WHEN":return Ve(e,t,n,r,i);case"CONCAT_OP":return me({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r,i);case"SCALAR_ARITH":{let o=Number(Pe(e.left,t,n,r,i)),a=Number(Pe(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 Ut(e,t,n,r,i={}){switch(e.type){case"CASE_WHEN":return Bd(e,t,n,r,i);case"SCALAR_ARITH":{let o=Ut(e.left,t,n,r,i),a=Ut(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=Ut(e.left,t,n,r,i),a=Ut(e.right,t,n,r,i);return`${o??""}${a??""}`}default:return Pe(e,t,n,r,i)}}function Xo(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 wh(e){return e>=55296&&e<=56319}function bh(e){return e>=56320&&e<=57343}function Zo(e,t){return t>0&&t<e.length&&wh(e.charCodeAt(t-1))&&bh(e.charCodeAt(t))}function Gd(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 Cl(e,t){let n=Math.min(Math.max(0,t),e.length);return Zo(e,n)&&(n-=1),e.slice(0,n)}function Nh(e,t){let n=Math.max(0,e.length-t);return Zo(e,n)&&(n+=1),e.slice(n)}function Ch(e,t,n){let r=Gd(t,e.length),i=Gd(n,e.length);return i<=r?"":(Zo(e,r)&&(r+=1),Zo(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function Ph(e,t){let n=e.repeat(Math.ceil(t/e.length));return Cl(n,t)}var Oh=200,zr=new Map;function Lh(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 Nl(e,t,n=!1){let r=Lh(t)+(n?"g":""),i=`${e}\0${r}`,o=zr.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(zr.size>=Oh){let s=zr.keys().next().value;s!==void 0&&zr.delete(s)}return zr.set(i,a),a}function _h(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function Dh(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 vh(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let d=Number(s+l);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=2;continue}}let c=Number(s);if(c>=1&&c<=n.length){i+=n[c-1]??"",o+=1;continue}}i+="$"}return i}function Uh(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,c=a.length-(l?3:2),d=a.slice(0,c);return vh(n,o,d,l?s:void 0)})}function me(e,t,n,r,i={}){Wo(e.func,e.args);let o=e.args.map(a=>Bh(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 Ch(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?"":Cl(a,s)}case"RIGHT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":Nh(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 Cl(a,s);let l=o[2]??" ";if(l==="")return a;let c=Ph(l,s-a.length);return e.func==="LPAD"?c+a:a+c}case"GREATEST":case"LEAST":return Fd(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 Nl(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{_h(o[2]);let a=Dh(o[4]),s=Nl(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):Uh(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return Nl(o[1],o[2]??"").exec(o[0])?.[0]??"";case"TRANSLATE":{let a=[...o[1]],s=[...o[2]];if(a.length!==s.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${a.length}, to=${s.length}\uFF09`);let l=new Map;return a.forEach((c,d)=>{l.has(c)||l.set(c,s[d])}),[...o[0]].map(c=>l.get(c)??c).join("")}case"COALESCE":return o.find(a=>a!=="")??"";case"NULLIF":return(o[0]??"")===(o[1]??"")?"":o[0]??"";case"ISNULL":return(o[0]??"")!==""?o[0]??"":o[1]??"";case"ROUND":return Xo("round",Number(o[0]??"0"),Number(o[1]??"0"));case"FLOOR":return Xo("floor",Number(o[0]??"0"),Number(o[1]??"0"));case"CEIL":return Xo("ceil",Number(o[0]??"0"),Number(o[1]??"0"));case"TRUNCATE":return Xo("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 Kh(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 Qo(o[0])?String(Pl(o[0])+1):"";case"QUARTER":return Qo(o[0])?String(Math.ceil(Number(o[0].slice(5,7))/3)):"";case"WEEK":return Qo(o[0])?String($d(o[0])):"";case"DATE_FORMAT":return xh(o[0]??"",o[1]??"");case"DATEDIFF":return kh(o[0]??"",o[1]??"");case"DATE_ADD":return Fh(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return Gh(o[0]);case"ABS":return String(Math.abs(Number(o[0]??"0")));case"MOD":{let a=Number(o[0]??"0"),s=Number(o[1]??"0");return String(s!==0?a%s:NaN)}case"POWER":return String(Math.pow(Number(o[0]??"0"),Number(o[1]??"0")));case"SQRT":return String(Math.sqrt(Number(o[0]??"0")));case"CURRENT_DATE":{let a=i.statementInstant??new Date,s=a.getFullYear(),l=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${s}-${l}-${c}`}case"CURRENT_TIMESTAMP":return(i.statementInstant??new Date).toISOString()}}function qr(e){return{y:e.slice(0,4)||"0000",mo:e.slice(5,7)||"01",d:e.slice(8,10)||"01",h:e.length>=13?e.slice(11,13):"00",mi:e.length>=16?e.slice(14,16):"00",sec:e.length>=19?e.slice(17,19):"00"}}function ea(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 Qo(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=ea(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 Pl(e){return ea(e).getUTCDay()}function Kd(e){let t=ea(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function Mh(e){return Kd(e).getUTCFullYear()}function $d(e){let t=Kd(e),n=t.getUTCFullYear(),r=ea(`${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 xh(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=qr(e),l=Qo(e);return t.replace(/%[YymcdeHiswavG]/g,c=>{switch(c){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(Pl(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][Pl(e)]:"";case"%v":return l?String($d(e)).padStart(2,"0"):"";case"%G":return l?String(Mh(e)).padStart(4,"0"):"";default:return c}})}function kh(e,t){if(e.length<10||t.length<10)return"0";let n=qr(e),r=qr(t),i=Date.UTC(+n.y,+n.mo-1,+n.d),o=Date.UTC(+r.y,+r.mo-1,+r.d);return String(Math.round((i-o)/864e5))}function Fh(e,t,n){if(n!=="YEAR"&&n!=="MONTH"&&n!=="DAY")throw new Error("ArgumentError: DATE_ADD unit must be YEAR, MONTH, or DAY.");if(!e||e.length<10)return e;let{y:r,mo:i,d:o}=qr(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let p=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(p,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),c=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${l}-${c}-${d}`}function Gh(e){if(!e||e.length<10)return e;let{y:t,mo:n}=qr(e),r=new Date(Date.UTC(+t,+n,0)),i=String(r.getUTCFullYear()).padStart(4,"0"),o=String(r.getUTCMonth()+1).padStart(2,"0"),a=String(r.getUTCDate()).padStart(2,"0");return`${i}-${o}-${a}`}function Kh(e,t){if(/^-?\d+$/.test(t.trim()))return $h(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,c=s+l,d=i.toFixed(c),[u,p=""]=d.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,R=p?`${f}.${p}`:f;return n?R+"%":R}function $h(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 Bh(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(Jr(e,t)):e.type==="NUMBER"?z(e):String(Pe(e,t,n,r,i))}function Jr(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[pe(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ge(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(Jr(e.left,t)),r=Number(Jr(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 Ge(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}function ue(e,t,n,r,i,o={}){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return Vh(e,t,n,r,i,o);case"NULL_CHECK":return qh(e,t);case"LOGICAL":return Jh(e,t,n,r,i,o);case"NOT":return!ue(e.expr,t,n,r,i,o);case"GROUP":return ue(e.expr,t,n,r,i,o);case"EXISTS":{let a=e.resolved;return e.not?!a:a}}}function Vh(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=Jd(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=Hh(e.left,s,i);return Wh(e.op,a,e.right,t,s,n,l,i,o)}function Wh(e,t,n,r,i,o,a=B("string"),s,l={}){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(zh(n.values),d=new Set(n.values.map(p=>p.type==="NUMBER"?i==="NUMBER"?z(p):String(p.value):p.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let u=jh(t,d,i);return e==="IN"?u:!u}if(e==="LIKE"){let d=Ol(n,r,o,void 0,l);return qd(t,d)}if(e==="NOT_LIKE"){let d=Ol(n,r,o,void 0,l);return!qd(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let c=Ol(n,r,o,s,l);return vt(e,t,c,a)}var Vd=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Hh(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?ne({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(Vd.has(e.expr.func)?"number":"string");if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return B("number");if(o.type==="STRING_FUNC")return B(Vd.has(o.func)?"number":"string");if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var Wd=new Set(["CHECK_BOX","MULTI_SELECT"]),Hd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),Yh=new Set(["CREATOR","MODIFIER"]);function jh(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>vt("=",e,a,o))}let i;if(Wd.has(n)||Hd.has(n)||Yh.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Wd.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Hd.has(n)?!Array.isArray(i)||!i.every(Yd)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Yd(i)?t.has(i.code):r()}function Yd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function zh(e){let t=e.find(r=>r.type==="VARIABLE");if(t?.type==="VARIABLE")throw new Error(`ParseError: unresolved batch variable @${t.name}.`);let n=e.find(r=>r.type==="KINTONE_FUNC");if(n?.type==="KINTONE_FUNC")throw new Error(`${n.name}: ${Pt}`)}function qh(e,t){let n=Jd(e.field,t);return e.not?n!=="":n===""}function Jh(e,t,n,r,i,o={}){return e.op==="AND"?ue(e.left,t,n,r,i,o)&&ue(e.right,t,n,r,i,o):ue(e.left,t,n,r,i,o)||ue(e.right,t,n,r,i,o)}function Jd(e,t,n,r,i={}){if(e.type==="FUNC_FIELD")return me(e.expr,t,void 0,void 0,i);if(e.type==="AGG_FIELD")return String(Jr(e.expr,t));if(e.type==="ARITH_FIELD")return String(Re(e.expr,t,i));if(e.type==="CASE_FIELD")return Ve(e.expr,t,n,r,i);if(e.type==="GROUPING_FIELD")return Wn(e.ref,t);if(e.aggregateRef){let a=e.aggregateRef;return Ge(t,pe(a.func,a.distinct,a.arg))}let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Ge(t,o)}function Ol(e,t,n,r,i={}){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return z(e);case"KINTONE_FUNC":return Xh(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"?Ge(t,e.expr.field):e.expr.type==="STRING_FUNC"?me(e.expr,t,void 0,void 0,i):String(Re(e.expr,t,i));case"CASE_VALUE":return Ve(e.expr,t,n,r,i);case"ARRAY":return e.elements.map(o=>o.value).join(",")}}function Ve(e,t,n,r,i={}){for(let o of e.branches)if(ue(o.condition,t,n,void 0,r,i))return zd(o.result,t,n,r,i);return e.elseResult!==null?zd(e.elseResult,t,n,r,i):""}function Bd(e,t,n,r,i={}){for(let o of e.branches)if(ue(o.condition,t,n,void 0,r,i))return jd(o.result,t,n,r,i);return e.elseResult===null?null:jd(e.elseResult,t,n,r,i)}function jd(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[pe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[mt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?Re(e,t,i):Ut(e,t,n,r,i)}function zd(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[pe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[mt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(Re(e,t,i)):String(Pe(e,t,n,r,i))}function Xd(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 Xh(e){throw re(e)?new Error(`${e}: ${cn}`):Fn(e)?new Error(`${e}: ${Pt}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var ta=new Map,Qh=200;function qd(e,t){if(!Np(t))return e.includes(t);let n=ta.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"),ta.size>=Qh&&ta.clear(),ta.set(t,n)}return n.test(e)}function or(e){return Zd(e)}function Qd(e){return Zd(e.flatMap(t=>t.rules.map(n=>n.condition)))}function Zd(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 Oe("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 Oe("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 Oe(e){return new S(e,{kind:"EOF",value:"CHECK",pos:0})}function na(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ue(a.condition,t,n))continue;let s=Pe(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Ll(e){if(zt(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 Zh=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),eA=new Set(["CHECK_BOX","MULTI_SELECT"]);function Qr(e,t=new Map,n={}){let r=e.values.map(i=>tA(e.fields,i,t,n));return ti(r,100).map(i=>({app:e.appId,records:i}))}function tA(e,t,n,r){let i={};return e.forEach((o,a)=>{let s=t[a];s.type==="CASE_VALUE"?i[o]={value:Mt(s.expr,{},n.get(o),r)}:i[o]={value:yt(s,n.get(o))}}),i}function Zr(e){Ll(e.where);let t=df(e);return{app:e.appId,query:j(e.where),fields:["$id",...t],totalCount:!1}}function ei(e,t,n=new Map){let r=nA(e.assignments,n);return ti(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function nA(e,t){let n={};for(let{field:r,value:i}of e)i.type==="ARITH"||i.type==="SCALAR_ARITH"||i.type==="CONCAT_OP"||i.type==="CASE_VALUE"||i.type==="STRING_FUNC"||i.type==="SOURCE_FIELD"||(n[r]={value:yt(i,t.get(r))});return n}function rf(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 oa(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 _l(e){Ll(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?of(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?ar(n,t):n.type==="STRING_FUNC"?Dl(n,t):n.type==="CASE_VALUE"&&af(n.expr,t);return df(e).forEach(n=>t.add(n)),{app:e.appId,query:j(e.where),fields:["$id",...t],totalCount:!1}}function of(e,t){Xr(e.left,t),Xr(e.right,t)}function Xr(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"?of(e,t):e.type==="STRING_FUNC"&&Dl(e,t)}function Dl(e,t){for(let n of e.args)rA(n,t)}function rA(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){ia(e,t);return}ar(e,t)}function ar(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){Dl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){ar(e.left,t),ar(e.right,t);return}e.type==="CASE_WHEN"&&af(e,t)}function ia(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&iA(e.arg,t);return}e.type==="AGG_ARITH"&&(ia(e.left,t),ia(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function iA(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Xr(e,t):ar(e,t)}function ef(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){ia(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Xr(e,t);return}ar(e,t)}}function af(e,t){for(let n of e.branches)ra(n.condition,t),ef(n.result,t);e.elseResult!==null&&ef(e.elseResult,t)}function ra(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&Xr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":ra(e.left,t),ra(e.right,t);break;case"NOT":case"GROUP":ra(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function vl(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=sf(o),l={};for(let{field:c,value:d}of e.assignments)l[c]={value:Ul(d,s,n.get(c),o,r)};return{id:a,record:l}});return ti(i,100).map(o=>({app:e.appId,records:o}))}function Ul(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?xl(e,r):Re(e,t,i));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Pe(e,t,void 0,void 0,i));if(e.type==="STRING_FUNC")return me(e,t,void 0,void 0,i);if(e.type==="CASE_VALUE")return Mt(e.expr,t,n,i);if(e.type==="SOURCE_FIELD")throw new oe("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return yt(e,n)}function aa(e,t,n,r={}){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return z(e);if(e.type==="ARITH")return String(Re(e,t,r));if(e.type==="CASE_VALUE")return Ve(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 oA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function Ml(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=sf(o),c={};for(let{field:d,value:u}of e.assignments){let p=n.get(d);if(u.type==="SOURCE_FIELD"){if(oA.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: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(a,u.field))throw new oe(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let f=a[u.field];if(typeof f!="string")throw new oe(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((p==="NUMBER"||p==="CALC")&&f!==""&&!Number.isFinite(Number(f)))throw new oe(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${f}`);c[d]={value:yt({type:"STRING",value:f},p)}}else{if(u.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");u.type==="ARITH"?c[d]={value:String(xl(u,o))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?c[d]={value:String(Pe(u,l,void 0,void 0,r))}:u.type==="CASE_VALUE"?c[d]={value:Mt(u.expr,l,p,r)}:c[d]={value:yt(u,p)}}}return{id:s,record:c}});return ti(i,100).map(o=>({app:e.appId,records:o}))}function sf(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function xl(e,t){let n=tf(e.left,t),r=tf(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 tf(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 xl(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 kl(e){return Ll(e.where),{app:e.appId,query:j(e.where),fields:["$id"],totalCount:!1}}function lf(e,t){return ti(t,100).map(n=>({app:e,ids:n}))}function uf(e){return Zh.has(e??"")}function aA(e){return eA.has(e??"")}function sA(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 lA(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function cf(e,t){return uf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):aA(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?sA(e):t==="DATE"?lA(e):e}function pf(e,t){return uf(t)?e.map(n=>({code:n})):e}function nf(e,t,n,r){if(e.type==="ARRAY")return pf(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"?cf(e.value,n):e.type==="STRING_FUNC"?me(e,t,void 0,void 0,r):e.type==="FIELD_REF"||e.type==="ARITH"?String(Re(e,t,r)):String(Pe(e,t,void 0,void 0,r))}function df(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(or(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function Mt(e,t,n,r={}){for(let i of e.branches)if(ue(i.condition,t,void 0,void 0,void 0,r))return nf(i.result,t,n,r);return e.elseResult!==null?nf(e.elseResult,t,n,r):""}function yt(e,t){let n=Fl(e,t);if(!n.ok)throw new oe(n.message);return n.value}function Fl(e,t){try{return{ok:!0,value:uA(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function uA(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 cf(e.value,t);case"NUMBER":return z(e);case"ARRAY":return pf(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 ti(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 Gl=new Set(["CHECK_BOX","MULTI_SELECT"]),cA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ni(e){throw new Error(`ArgumentError: ${e}`)}function ff(e,t,n){let r=pA(n.fieldType,e.field),i=dA(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)&&ni(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(g)}.`);let c=i.filter(g=>!l.has(g)),d=a.filter(g=>!o.has(g)),u=[...c,...d],p=new Set(i.filter(g=>l.has(g))).size,f=new Set,R=new Set,E=e.operations.map(g=>{let y=g.kind==="ADD"?f:R,T=!y.has(g.value);return y.add(g.value),{kind:g.kind,value:g.value,changed:g.value!==""&&T&&(g.kind==="ADD"?!o.has(g.value):o.has(g.value))}}),m=Gl.has(r)?u:u.map(g=>({code:g}));return{field:e.field,fieldType:r,operations:E,postImageValue:m,addedValues:d.length,removedValues:p,changedValues:d.length+p}}function pA(e,t){return Gl.has(e)||cA.has(e)?e:ni(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function dA(e,t,n){if(!Array.isArray(e))return ni(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Gl.has(t)?typeof i!="string"?ni(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?ni(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function J(e){throw new Error(`ArgumentError: ${e}`)}function Bl(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?J("APPLY parent selector must be a single positive $id."):t.right.value}function xt(e,t){let n=e.applyBlocks;if(!n?.length)return J("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)Kl(s.field,null,r),fA(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&J(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(u=>u.field===s.field)&&J(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(u=>u.code===s.field&&!u.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?J(`APPLY target ${s.field} is not a SUBTABLE.`):J(`APPLY target ${s.field} does not exist as a top-level field.`);if(pd(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&J(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let c=l,d=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,c),a.set(s.field,d);for(let u of s.operations)if(u.kind==="PATCH"){for(let p of u.assignments)Kl(p.field,s.field,r,d),$l(p.value,s.field,r,d);u.selector.kind==="WHERE"&&$l(u.selector.where,s.field,r,d)}else if(u.kind==="APPEND"){let p=new Set;for(let f of u.fields)p.has(f)&&J(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),Kl(f,s.field,r,d)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&$l(u.selector.where,s.field,r,d)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function fA(e,t){ri(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&J(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&J(`APPLY parent FILE reference ${n} is not supported.`)})}function Kl(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&J(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);t!==null&&o?.inSubtable&&J(`APPLY child ${e} does not belong to subtable ${t}.`),J(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&J(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function $l(e,t,n,r){ri(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&J(`APPLY child reference ${i} does not belong to subtable ${t}.`),J(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function sa(e,t){let n=xt(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)ri(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]=hf(i?.value);return n}function Rf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??xt(t,r),o=Hl(n.$id?.value,"APPLY snapshot $id"),a=Bl(t);return o!==a&&J(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),gf(t,n,i,o,e.evaluationContext)}function mf(e,t,n,r=xt(e,n),i={}){let o=new Set;return t.map(a=>{let s=Hl(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&J(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),gf(e,a,r,s,i)})}function gf(e,t,n,r,i={}){let o=Hl(t.$revision?.value,"APPLY snapshot $revision"),a=[],s=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let C=n.targetMultiValueFields.get(u.field);C||J(`APPLY multi-value metadata for ${u.field} is missing.`),s.push(ff(u,t[u.field]?.value,C));continue}let p=n.childrenByTable.get(u.field),f=hA(t,u.field),R=new Set;for(let C of f)C.id||J(`APPLY snapshot for ${u.field} contains a row without _rid.`),R.has(C.id)&&J(`APPLY snapshot for ${u.field} contains duplicate _rid ${C.id}.`),R.add(C.id);let E=C=>C.field==="_rid"?"SINGLE_LINE_TEXT":C.field==="_idx"?"NUMBER":p.get(C.field)?.fieldType,m=[],g=[],y=[],T=new Set,h=new Set,I=new Set,N=u.operations.some(C=>C.kind==="REMOVE");for(let[C,v]of u.operations.entries()){if(v.kind==="APPEND"){let O=Vl(v,p,u.field,i);y.push({kind:"APPEND",addedRows:O.length}),g.push(...O);continue}if(v.kind==="REMOVE"){let O=mA(v,f,E,u.field,i);v.expectRows&&Ef(v.expectRows,O.length,r,u.field,C,v.kind),y.push({kind:"REMOVE",removedRows:O.length});for(let A of O){let w=f[A].id;h.has(A)&&J(`APPLY row ${w} is selected by both PATCH and REMOVE.`),I.has(A)&&J(`APPLY removes row ${w} more than once.`),I.add(A)}continue}if(v.kind!=="PATCH")continue;let b=RA(v,f,E,u.field,i);v.expectRows&&Ef(v.expectRows,b.length,r,u.field,C,v.kind),y.push({kind:"PATCH",matchedRows:b.length,changedRows:b.length});for(let O of b){let A=f[O];I.has(O)&&J(`APPLY row ${A.id} is selected by both PATCH and REMOVE.`),h.add(O);let w=la(A,O);for(let k of v.assignments){let L=`${A.id}\0${k.field}`;T.has(L)&&J(`APPLY patches cell ${A.id}.${k.field} more than once.`),T.add(L),m.push({rowIndex:O,field:k.field,value:aa(k.value,w,E,i)})}}}let D=new Map;for(let C of m){let v=D.get(C.rowIndex)??{};v[C.field]={value:C.value},D.set(C.rowIndex,v)}let M=[...f.flatMap((C,v)=>I.has(v)?[]:[{id:C.id,value:{...C.value,...D.get(v)??{}}}]),...g],U={table:u.field,operations:y,changedSubtableRows:D.size+I.size+g.length,deletedRows:I.size,snapshotRowIds:f.map(C=>C.id),postImageRows:M};N?a.push({...U,payloadShape:"FULL_SURVIVORS",removedRowIds:f.flatMap((C,v)=>I.has(v)?[C.id]:[]),payloadRows:M.map(C=>({...C.id===void 0?{}:{id:C.id},value:C.value}))}):a.push({...U,payloadShape:"PATCH_ONLY",payloadRows:[...f.map((C,v)=>{let b=D.get(v);return b?{id:C.id,value:b}:{id:C.id}}),...g.map(C=>({value:C.value}))]})}let l=AA(t),c={};for(let u of e.assignments){let p=n.fieldsByCode.get(u.field)?.fieldType;c[u.field]={value:Ul(u.value,l,p,t,i)}}let d={...t};Object.assign(d,c);for(let u of a)d[u.table]={value:u.postImageRows};for(let u of s)d[u.field]={value:u.postImageValue};return{app:e.appId,parentId:r,revision:o,parentRows:1,changedSubtableRows:a.reduce((u,p)=>u+p.changedSubtableRows,0),parentValues:c,postImage:d,tables:a,multiValues:s}}function Ef(e,t,n,r,i,o){if(e.kind==="EXACT"?t===e.count:e.kind==="BETWEEN"?t>=e.min&&t<=e.max:e.kind==="AT_LEAST"?t>=e.count:t<=e.count)return;let s=e.kind==="EXACT"?`exactly ${e.count}`:e.kind==="BETWEEN"?`between ${e.min} and ${e.max}`:e.kind==="AT_LEAST"?`at least ${e.count}`:`at most ${e.count}`;J(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function ua(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return J(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,c)=>{let d=a[c];return d?.value?l.id===void 0?{value:d.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,d.value[u]]))}:J(`APPLY normalized post-image for ${o.table} row ${c+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:J(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function Vl(e,t,n,r={}){return e.values.map(i=>({value:EA(e,i,t,n,r)}))}function EA(e,t,n,r,i){if(t.length!==e.fields.length)return J(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let o=new Map(e.fields.map((s,l)=>[s,t[l]])),a={};for(let s of n.values()){if(s.fieldType==="FILE"||s.writable===!1)continue;let l=o.get(s.code);a[s.code]={value:l===void 0?Wl(s):l.type==="CASE_VALUE"?Mt(l.expr,{},s.fieldType,i):yt(l,s.fieldType)}}return a}function Wl(e){return e.defaultValue!==void 0&&e.defaultValue!==null?e.defaultValue:["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(e.fieldType)?[]:""}function RA(e,t,n,r,i={}){return yf(e.selector,t,n,r,i)}function mA(e,t,n,r,i={}){return yf(e.selector,t,n,r,i)}function yf(e,t,n,r,i={}){if(e.kind==="ALL_ROWS")return t.map((c,d)=>d);let o=e.where,a=t.flatMap((c,d)=>ue(o,la(c,d),n,void 0,void 0,i)?[d]:[]),s=gA(o);s!==null&&a.length===0&&J(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=yA(o);return l!==null&&a.length===0&&J(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function gA(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 yA(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 hA(e,t){let n=e[t]?.value;return Array.isArray(n)?n.map(r=>{let i=r;return{id:typeof i.id=="string"?i.id:"",value:i.value&&typeof i.value=="object"?i.value:{}}}):J(`APPLY snapshot field ${t} is not a subtable value.`)}function Hl(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&J(`${t} must be a positive integer.`),n}function AA(e){let t={};for(let[n,r]of Object.entries(e))t[n]=hf(r?.value);return t}function hf(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 ri(e,t){if(Array.isArray(e)){e.forEach(r=>ri(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))ri(r,t)}function fe(e){throw new Error(`ArgumentError: ${e}`)}function pa(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?fe("APPLY snapshot $revision must be a positive integer."):t}function ii(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return fe("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return fe("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&fe(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&fe(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&fe(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),SA(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Af(e){if(e.records.length===0)return[];let t=e.plans[0]?.app;if(!Number.isSafeInteger(t)||t<=0||e.plans.length!==e.records.length)return fe("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function SA(e){let t=Yl(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(d=>d.id===void 0?[]:[d.id]);for(let d of e.payloadRows)d.id===void 0&&d.value===void 0&&fe(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Yl(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&fe(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let d=e.payloadRows.slice(0,t.length).map(p=>p.id??"");ca(t,d,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(p=>p.id!==void 0)&&fe(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(p=>p.id??"");ca(t,u,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(p=>p.id!==void 0)&&fe(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(d=>d.kind==="REMOVE")||fe(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Yl(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&fe(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&fe(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(d=>d.id===void 0?[]:[d.id]),o=new Set(r),a=new Set(i);for(let d of r)a.has(d)&&fe(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${d}.`);let s=t.filter(d=>!o.has(d));ca(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(d=>d.id??"");ca(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(d=>d.id!==void 0)||e.postImageRows.slice(i.length).some(d=>d.id!==void 0))&&fe(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(d=>d.value===void 0)&&fe(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((d,u)=>!jl(d.value,e.postImageRows[u]?.value))&&fe(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let c=new Set([...i,...r]);(c.size!==t.length||t.some(d=>!c.has(d)))&&fe(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Yl(e,t){let n=[...e],r=new Set;for(let i of n)i||fe(`APPLY ${t} contains an empty row id.`),r.has(i)&&fe(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function ca(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&fe(n)}function jl(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)=>jl(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)&&jl(n[a],r[a]))}function Sf(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 Tf(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Sf(t.digits,"digits",1,30),r=Sf(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 If(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 TA=new Set(["CHECK_BOX","MULTI_SELECT"]),IA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function We(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=wA(e);if(i!==""&&!bA(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=oi(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:NA(t.fieldType),message:o}}if(t.required&&da(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!da(r)&&t.fieldType==="NUMBER"){let i=String(r),o=we(i);if(o===null)return{ok:!1,code:"ERR_TYPE_NUMBER",message:`${t.code} \u306F\u6570\u5024\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(t.minValue!=null&&po(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&&po(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}=If(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(!da(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!gn(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!da(r)&&IA.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 wA(e){return e==null?"":fa(e)&&e.type==="NUMBER"?z(e):fa(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function bA(e,t){if(t==="DATE")return gn(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return gn(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?gn(n.slice(0,10),"DATE")&&gn(n.slice(11),"TIME"):gn(n,"DATETIME")}function oi(e,t){if(fa(e)){let r=Fl(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(TA.has(t)){if(n==="")return[];try{let r=JSON.parse(n);if(Array.isArray(r))return r.map(String)}catch{}return n.split(",").map(r=>r.trim())}return n}function fa(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function yn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(fa(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function da(e){return e===""||Array.isArray(e)&&e.length===0}function NA(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function gn(e,t){if(t==="TIME"){let c=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return c!==null&&Number(c[1])<=23&&Number(c[2])<=59&&Number(c[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&gn(l,"TIME")}var sr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function zl(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(d=>typeof d=="object"&&d!==null&&"code"in d),c=a;try{c=oi(a,s)}catch{}i.record[o]={value:l?a:c}}}}function ql(e,t,n,r,i,o,a,s=[],l=!0,c=!0,d={}){let u=new Map(i.map(m=>[m.code,m])),p=[],f=new Set,R=[];d.validateUpdateBuiltIns===!1&&zl(e,r,i);let E;for(let m of e){m.record??={};let g=c?[...m.preErrors]:[],y=[],T=[],h=m.mode==="create"||d.validateUpdateBuiltIns!==!1;for(let P of r){if(!m.payload.has(P))continue;let M=m.payload.get(P),U=u.get(P).fieldType,C=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(U)&&Array.isArray(M)&&M.every(b=>typeof b=="object"&&b!==null&&"code"in b);if(!h)continue;let v=We(M,u.get(P),a);v.ok?m.record[P]={value:C?M:v.value}:y.push({field:P,code:v.code,message:v.message})}if(l&&m.mode==="create")for(let P of i){if(P.inSubtable||m.payload.has(P.code))continue;if(yn(P.defaultValue)){let U=We("",P,a);U.ok?P.required&&y.push({field:P.code,code:"ERR_REQUIRED",message:`${P.code} \u306F\u5FC5\u9808\u3067\u3059`}):y.push({field:P.code,code:U.code,message:U.message})}else{let U=We(P.defaultValue,P,a);U.ok||y.push({field:P.code,code:U.code,message:`\u65E2\u5B9A\u5024: ${U.message}`})}}if(s.length>0){let P=m.evaluationRow??Object.fromEntries([...m.payload].map(([C,v])=>[C,Xe(v)])),M=m.evaluationFieldTypes,U=C=>{let v=C.tableAlias?`${C.tableAlias}.${C.field}`:C.field;return M?.get(v)??M?.get(C.field)};try{for(let C of na(s,P,U))T.push({field:"",code:"ERR_CHECK",message:C.message})}catch(C){E??=C}}let I=P=>P.map(M=>{let U={};for(let C of n)U[C]=Xe(m.payload.get(C));return U.$err_statement=String(o),U.$err_operation=t,U.$err_row=String(m.rowNumber),U.$err_field=M.field,U.$err_code=M.code,U.$err_message=M.message,U.$err_value="",U.$err_subtable="",U.$err_subrow="",U.$err_subrow_id="",U}),N={rowNumber:m.rowNumber,preErrors:I(g),builtInErrors:I(y),checkErrors:I(T)};R.push(N);let D=[...N.preErrors,...N.builtInErrors,...N.checkErrors];D.length>0&&f.add(m.rowNumber),p.push(...D)}if(E!==void 0)throw E;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:R}}function Xe(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 Jl=["required","length","range","choice"];function Xl(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 Ql(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 CA(e){return Xl(e).length>0}function PA(e){return e.fieldType==="NUMBER"||CA(e)}function Ea(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function Zl(e,t){let{topByCode:n,childrenByTable:r}=Ql(t),i=PA;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,c)=>{let d=c?`${c}\0${l.code}`:l.code;if(a.has(d))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(d),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...c?{subtableCode:c}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let u=r.get(l.subtableCode);if(!u)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let p of l.children){let f=u.find(R=>R.code===p);if(!f){let R=[...r.entries()].some(([E,m])=>E!==l.subtableCode&&m.some(g=>g.code===p));throw new Error(R?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let c=l.field;if(c==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let d=n.get(c);if(d?.fieldType==="SUBTABLE"){let u=(r.get(c)??[]).filter(i);if(u.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${c} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);u.forEach(p=>s(p,c));continue}if(d){s(d);continue}throw[...r.values()].some(u=>u.some(p=>p.code===c))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${c}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function ai(e,t){return yn(e)?"":Xe(oi(e,t))}var OA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),si=sr;function ht(e,t=["$id"]){let n=Ql(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!OA.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 hn(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 An(e,t,n,r,i=1,o="UPDATE"){let a=LA(e),s=[],l=new Set,c=[...t.payloadFields,...si],d=Xe(e.$id?.value),u=(p,f,R,E)=>{l.add(i);let m={};for(let g of t.payloadFields)m[g]=g==="$id"?d:Xe(e[g]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=p.code,m.$err_code=R.code,m.$err_message=R.message,m.$err_value=ai(f,p.fieldType),m.$err_subtable=E?.subtable??"",m.$err_subrow=E?String(E.subrow):"",m.$err_subrow_id=E?.subrowId??"",s.push(m)};for(let p of t.topLevel){let f=e[p.code]?.value,R=We(f,p,n);R.ok?a[p.code]={value:wf(f,p.fieldType,R.value)}:u(p,f,R)}for(let[p,f]of t.subtables){let R=e[p]?.value;if(!Array.isArray(R))continue;let E=a[p]?.value;for(let m=0;m<R.length;m++){let g=R[m],y=E[m];for(let T of f){let h=g.value?.[T.code]?.value,I=We(h,T,n);I.ok?(y.value??={},y.value[T.code]={value:wf(h,T.fieldType,I.value)}):u(T,h,I,Ea(p,m,g))}}}return{normalizedRecord:a,errors:s,columns:c,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function wf(e,t,n){return["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(t)&&Array.isArray(e)&&e.every(r=>typeof r=="object"&&r!==null&&"code"in r)?e:n}function LA(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 Ra(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;bf(o,"dmlMaxRows"),bf(a,"dmlMaxSubtableRows");for(let T of n)pa(T);let l=mf(t,n,r,i),c=ht(r,t.assignments.map(T=>T.field)),d=l.some(T=>hn(T.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=l.map((T,h)=>An(T.postImage,c,u,s,e.parentRowNumbers?.[h]??h+1));if(!t.validateOnly){let T=p.flatMap(h=>h.errors);if(T.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:T})}`)}let f=l.length,R=l.reduce((T,h)=>T+h.changedSubtableRows,0),E=f>o||R>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&R>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((T,h)=>ua(T,p[h].normalizedRecord)),g=m.flatMap(T=>ii(T).records),y=p.map(T=>({errors:T.errors,columns:T.columns,invalidRows:T.invalidRows,errorCount:T.errorCount}));return Nf({plans:m,records:g,validations:y,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:R,dmlMaxSubtableRows:a,wouldExceed:E}})}function bf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Nf(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))Nf(n,t);return Object.freeze(e)}var eu=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function ma(e,t){if(new Set(e.fields).size!==e.fields.length)return At("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Cf(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return At(`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 At(`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 At(`APPLY INSERT supports APPEND only (${l.kind}).`);let c=new Set;for(let d of l.fields){if(c.has(d))return At(`APPLY APPEND specifies child ${d} more than once.`);c.add(d),Cf(d,o.field,n,s)}for(let d of l.values)if(d.length!==l.fields.length)return At(`APPLY APPEND for ${o.field} has ${d.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function _A(e,t,n=ma(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Qr(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),c=s.operations.flatMap(d=>Vl(d,l,s.field));return{table:s.field,rows:c,addedRows:c.length}});return o.map((s,l)=>{let c={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||eu.has(u.fieldType)||(c[u.code]=s[u.code]??{value:Wl(u)});let d={...s};for(let u of a){let p=u.rows.map(f=>({value:f.value}));c[u.table]={value:p},d[u.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:c,record:d}})}async function li(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;Pf(r,"dmlMaxRows"),Pf(i,"dmlMaxSubtableRows");let a=e.metadata??ma(t,n),s=_A(t,n,a,e.parentRowNumbers),l=n.filter(h=>h.fieldType==="SUBTABLE"||h.fieldType!=="FILE"&&h.writable!==!1&&!eu.has(h.fieldType)),c=ht(l,t.fields),d=s.some(h=>hn(h.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=s.map(h=>An(h.postImage,c,u,o,h.parentRowNumber,"INSERT"));if(!t.validateOnly){let h=p.flatMap(I=>I.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:h})}`)}let f=s.length,R=s.reduce((h,I)=>h+I.tables.reduce((N,D)=>N+D.addedRows,0),0),E=f>r||R>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&R>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((h,I)=>{let N=p[I].normalizedRecord,D={};for(let P of t.fields)D[P]=N[P];for(let P of h.tables){let M=N[P.table]?.value;D[P.table]={value:P.rows.map((U,C)=>({value:Object.fromEntries(Object.keys(U.value).map(v=>[v,M[C]?.value?.[v]??U.value[v]]))}))}}return{...h,postImage:N,record:D}}),g=m.map(h=>h.record),y=[];for(let h=0;h<g.length;h+=100)y.push({app:t.appId,records:g.slice(h,h+100)});let T=p.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return Of({applyBlocks:t.applyBlocks??[],candidates:m,records:g,batches:y,validations:T,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:R,dmlMaxSubtableRows:i,wouldExceed:E}})}function Cf(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return At(`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?At(`APPLY child ${e} does not belong to subtable ${t}.`):At(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||eu.has(i.fieldType))return At(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Pf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function At(e){throw new Error(`ArgumentError: ${e}`)}function Of(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))Of(n,t);return Object.freeze(e)}async function _f(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;Lf(i,"dmlMaxRows"),Lf(o,"dmlMaxSubtableRows"),xA(t,n);let s=n.filter(g=>g.targetId===void 0),l=n.filter(g=>g.targetId!==void 0),c=DA(t,s.map(g=>g.sourceRowIndex)),d=await li({statement:c,fieldInfos:r,metadata:ma(c,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(g=>g.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],p=new Set;for(let g of l){let y=g.targetId;p.has(y)&&tu(`UPSERT APPLY resolves more than one source row to parent $id ${y}.`),p.add(y),g.snapshot||tu(`UPSERT APPLY snapshot for parent $id ${y} is missing.`);let T=Number(g.snapshot.$id?.value);T!==y&&tu(`UPSERT APPLY snapshot $id ${T} does not match target $id ${y}.`);let h=vA(t,g.sourceRowIndex,y),I=h.applyBlocks?.length?xt(h,r):UA(r);u.push(await Ra({statement:h,snapshots:[g.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[g.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=MA(u,i,o),R=d.guards.parentRows+f.guards.parentRows,E=d.guards.subtableRows+f.guards.subtableRows,m=R>i||E>o;if(!t.validateOnly){let g=[...d.validations.flatMap(y=>y.errors),...f.validations.flatMap(y=>y.errors)];if(g.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d.validations[0]?.columns??f.validations[0]?.columns??[],errors:g})}`)}if(!t.validateOnly&&R>i)throw new Error(`ArgumentError: APPLY parent rows (${R}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&E>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${o}).`);return nu({create:d,update:f,createBatches:d.batches,updateBatches:kA(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:R,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:m,create:d.guards,update:f.guards}})}function DA(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function vA(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 UA(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function MA(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 nu({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 xA(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 kA(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 Lf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function tu(e){throw new Error(`ArgumentError: ${e}`)}function nu(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))nu(n,t);return Object.freeze(e)}function ci(e){return lr("UPDATE",[Uf(e)])}function ru(e){return lr("INSERT",[vf(e)])}function iu(e){return lr("UPSERT",[vf(e.create),Uf(e.update)])}function Qe(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function ya(e,t,n){return e.type==="UPDATE"?lr("UPDATE",[ga("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?lr("INSERT",[ga("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):lr("UPSERT",[ga("insert",e.onInsertApplyBlocks??[],null,!1,t,n),ga("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function lr(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function vf(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 Uf(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:Df(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:Df(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 Df(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:ui(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:ui(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:ui(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:ui(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:ui(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function ui(e,t){return e==null||t===null?null:e+t}function ga(e,t,n,r,i,o){let a=t.map(d=>{let u=d.operations.map(f=>FA(f,n)),p=u.every(f=>f.count!==null)?u.reduce((f,R)=>f+R.count,0):null;return{targetKind:d.targetKind,field:d.field,operations:u,changedCount:p}}),s=a.filter(d=>d.targetKind==="SUBTABLE"),l=s.every(d=>d.changedCount!==null)?s.reduce((d,u)=>d+u.changedCount,0):null,c=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:c},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function FA(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 St=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 Mf(e,t,n){Zn("phase10c");let r=Af(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 St({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function xf(e,t,n){Zn("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 St({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function kf(e,t,n){Zn("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let c=e.createBatches[l];try{let d=await t.postRecords({app:c.app,records:[...c.records]});r.push(d.ids)}catch(d){throw new St({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},d)}i+=1,a+=c.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let c=e.updateBatches[l];try{await t.putRecords({app:c.app,records:[...c.records]})}catch(d){throw new St({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},d)}o+=1,s+=c.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var GA=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function KA(e){if(!GA.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 $A(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=KA(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 ou(e,t){let n=$A(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 BA(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 Ff(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 BA(i)?!0:Object.values(i).some(n)};return n(e)}function Gf(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 kt(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)}},ha=class{constructor(t,n=kt({})){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 Aa=50;function su(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+=Aa){let o=e.values.slice(i,i+Aa);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var au=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),VA=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function WA(e,t){return e==="DATE"?Gr(t):e==="TIME"?_o(t):au.has(e)?Do(t):!1}function HA(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":au.has(e)?au.has(t.fieldType):!1}function lu(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=Lo(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!VA.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(!HA(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=>!WA(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];st(s,i,n)<0&&(i=s),st(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var uu=Al;function di(e,t,n=uu){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function Kf(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 Tt(e){if(e===null)return!1;switch(e.type){case"BINARY":return Sa(e.left);case"NULL_CHECK":return Sa(e.field);case"LOGICAL":return Tt(e.left)||Tt(e.right);case"NOT":case"GROUP":return Tt(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Sa(e){if(Array.isArray(e))return e.some(Sa);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(Sa)}async function Ke(e,t,n,r,i={}){let o=i.pageSize??YA,a=Math.max(1,i.parallel??jA),s=i.maxRecords??zA,l=i.onLimit??"error",c=i.stopAfter;if(c!==void 0&&(!Number.isSafeInteger(c)||c<=0||c>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let d=c??s,u=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],f=!1,R=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,E=0,m=0,g=Vf(n,E),y=await Bf(e,t,g,u,o,m);if($f(y,i),p.push(...y.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new lt(R)}if(y.records.length<o)return p;for(m+=o,m>=pu&&(E=Wf(y.records),m=0);;){if(c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new lt(R)}let T=d-p.length,h=Math.ceil(T/o),I=Math.max(1,Math.min(a,h)),N=[];for(let U=0;U<I;U++){let C=m+U*o;if(C>=pu)break;N.push(C)}let D=Vf(n,E),P=await Promise.all(N.map(U=>Bf(e,t,D,u,o,U)));for(let U of P)$f(U,i);let M=!1;for(let U of P){if(p.push(...U.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new lt(R)}if(U.records.length<o){M=!0;break}}if(M)break;if(m+=o*N.length,m>=pu){let U=P[P.length-1];E=Wf(U.records),m=0}}return p}function $f(e,t){e.searchAborted&&t.onSearchAborted?.()}function Hf(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 YA=500,jA=1,zA=1e4,pu=1e4;async function Bf(e,t,n,r,i,o){let a=qA(n,i,o);return e({app:t,query:a,fields:r})}function Vf(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 qA(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function Wf(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 lt=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};async function ut(e,t,n,r,i){let o=await Ke(e,t,n,r,{maxRecords:i.maxRecords,parallel:i.parallel,onLimit:i.onLimit??"error",onTruncate:i.onTruncate,onSearchAborted:i.onSearchAborted});return{records:o,metrics:{fetchedRows:o.length}}}async function fi(e,t,n,r){let{records:i,metrics:o}=await ut(e,t,n,["$id"],r);return{ids:Hf(i),metrics:o}}function cr(e,t){if(e.tableAlias!==null){let r=t.filter(o=>o.alias===e.tableAlias);if(r.length>1)return Object.freeze({status:"AMBIGUOUS"});if(r.length===0)return Object.freeze({status:"UNKNOWN"});let i=r[0];return i.fieldTypes.has(e.field)?jf(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"}):jf(n[0],e.field)}function fu(e,t){if(e.left.type!=="FIELD")return Ei();let n=cr(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Ei();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Se(e,a=>{let s=cr(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:ne({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Ei();let o=Uo(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?Ei():Object.freeze({relation:o,owner:n})}function zf(e,t){let n=he(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=cr(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Se(e,o=>{let a=cr(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:ne({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function qf(e,t){let n=new Set;Sn(e,n);let i=(e===null?[]:Qf(ur(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=JA(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)Sn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(ZA(e,t)),fetchQueriesByAlias:new Map,...o})}function Jf(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Tn(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||e.allKlikes.some(a=>!e.appliedKlikes.has(a)))return e;let n=new Map,r=(a,s)=>{let l=n.get(a);l?l.push(s):n.set(a,[s])};try{if(e.serverFunctionCandidate.variant==="EXACT_LEAF")for(let a of e.items)r(a.targetAlias,pr(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(c=>c.alias===a.targetAlias&&c.appId===a.appId&&c.sourceKind==="APP"))return e;let l=pr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!Tn(Ca(l),a.functionOccurrences))return e;r(a.targetAlias,l)}}catch{return e}let i=new Map;for(let[a,s]of n)i.set(a,s.length===1?s[0]:s.map(l=>`(${l})`).join(" and "));let o=e.serverFunctionConsumptions.map(a=>{let s=i.get(a.targetAlias);return s?Object.freeze({...a,fetchBinding:Object.freeze({status:"BOUND_TO_TARGET_FETCH",targetAlias:a.targetAlias,appId:a.appId,query:s})}):null});return o.some(a=>a===null)?e:Object.freeze({...e,serverFunctionCandidate:Object.freeze({...e.serverFunctionCandidate,fetchContract:"CONFIRMED"}),serverFunctionConsumptions:Object.freeze(o),fetchQueriesByAlias:i})}function dr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!Tn(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&&!Tn(Ca(n),r))return!1}return!(e.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"&&(e.serverFunctionConsumptions.length!==1||e.serverFunctionConsumptions[0].consumption!=="whole-where"||e.residualWhere!==null||e.allKlikes.some(t=>!e.appliedKlikes.has(t))||Xf(QA(e))!==e.allKlikes.length))}function JA(e,t){if(e===null)return Yf(null);let n=Object.freeze([...he(e)]);if(n.length===0)return Yf(e);let r=XA(e,t,n);if(r!==null)return r;let i=wa(e),o=[],a=new Set;for(let u of i){let p=zf(u,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,relation:"exact"},R;try{R=pr(f,t)}catch{continue}let E=Ca(R);Tn(E,p.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),functionOccurrences:p.functionOccurrences,relation:p.relation,consumption:"leaf",serializedPredicate:R,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=ba(e,a),l=Object.freeze(s===null?[]:[...he(s)]),c=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),d=Tn(n,c)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:d,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:c,residualWhere:s,residualServerFunctionOccurrences:l}}function XA(e,t,n){let r=Ta(e,t);if(r===null)return null;let i={targetAlias:r.alias,appId:r.appId,predicate:e,relation:"exact"},o;try{o=pr(i,t)}catch{return null}if(!Tn(Ca(o),n))return null;let a=new Set;if(Sn(e,a),Xf(o)!==a.size)return null;let s=Object.freeze(Ia(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 Ta(e,t){switch(e.type){case"BINARY":{if(he(e).length>0){let i=zf(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=fu(e,t);return r.relation==="exact"&&r.owner!==void 0?r.owner:null}case"LOGICAL":{let n=Ta(e.left,t),r=Ta(e.right,t);return n!==null&&r!==null&&Pa(n,r)?n:null}case"GROUP":case"NOT":return Ta(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function Ia(e){switch(e.type){case"BINARY":return he(e).length>0?[e]:[];case"LOGICAL":return[...Ia(e.left),...Ia(e.right)];case"GROUP":case"NOT":return Ia(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Yf(e){let t=e===null?[]:he(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function wa(e){switch(e.type){case"BINARY":return he(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...wa(e.left),...wa(e.right)]:[];case"GROUP":return wa(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function ba(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=ba(e.left,t),r=ba(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=ba(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function Ca(e){let t=[];for(let n of Ir){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 Tn(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 Xf(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function QA(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function ZA(e,t){if(e===null)return[];let n=new Set,r=i=>{if(i.type==="BINARY"){if(i.left.type!=="FIELD"){n.add("UNSAFE_RELATION");return}let o=cr(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Na(i.right)){n.add("CROSS_TABLE_BINARY");return}fu(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(eE(i)){n.add("KLIKE_OR");return}let o=ur(i.left,t),a=ur(i.right,t);if(o.length!==1||a.length!==1||!Pa(o[0].owner,a[0].owner)){n.add("CROSS_ALIAS_OR");return}}r(i.left),r(i.right);return}if(i.type==="GROUP"){r(i.expr);return}if(i.type==="NOT"){n.add("NOT");return}n.add("UNSAFE_RELATION")};return r(e),[...n].map(i=>Object.freeze({reason:i}))}function pr(e,t){return Ri(e.predicate,e,t),j(e.predicate)}function Ri(e,t,n){switch(e.type){case"LOGICAL":Ri(e.left,t,n),Ri(e.right,t,n);return;case"GROUP":Ri(e.expr,t,n);return;case"NOT":Ri(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Na(e.right))throw du(t,"predicate contains a non-target or RHS field reference");let r=cr(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw du(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw du(t,"predicate shape is outside the Phase A serializer contract")}}function du(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function ur(e,t){switch(e.type){case"BINARY":{let n=fu(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=ur(e.left,t),r=ur(e.right,t);if(e.op==="AND")return Qf([...n,...r]);if(eE(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return Pa(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:Zf(i.relation,o.relation)}]:[]}case"GROUP":return ur(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Qf(e){let t=[];for(let n of e){let r=t.findIndex(o=>Pa(o.owner,n.owner));if(r<0){t.push(n);continue}let i=t[r];t[r]={owner:i.owner,predicate:{type:"LOGICAL",op:"AND",left:i.predicate,right:n.predicate},relation:Zf(i.relation,n.relation)}}return t}function jf(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Ei(){return Object.freeze({relation:"unsafe"})}function Pa(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function Zf(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Sn(e,t){if(e!==null){if(qt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Sn(e.left,t),Sn(e.right,t);return;case"NOT":case"GROUP":Sn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function eE(e){let t=new Set;return Sn(e,t),t.size>0}function Na(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Na);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Na)}function Eu(e,t){let n=$r(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}function eS(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function tS(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function mi(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=eS(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"&&!tS(t,a.key.name))||n.push("ORDER_KEY_NOT_REST_EQUIVALENT"),e.whereCapability!=="EXACT_PUSHDOWN"&&n.push("WHERE_NOT_EXACT"),e.staticMode!=="SIMPLE"&&n.push("QUERY_SHAPE_LOCAL"),(t.limit===null||t.limit<0||t.limit>500)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>1e4)&&n.push("OFFSET_NOT_REST_WINDOW"),t.limit!==null&&t.limit>e.maxRecords&&n.push("MAX_RECORDS_WINDOW"),e.hasKlike&&n.push("KLIKE_NOT_REST_WINDOW"),n.length===0?{kind:"CANONICAL_REST_TOP_N",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[]}:{kind:"CANONICAL_LOCAL",requiresCompleteInput:i.length>0,localOrderBy:t.orderBy.length>0,applyLocalOffsetLimit:t.orderBy.length>0,reasonCodes:[...new Set(n)]}}var nS=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 rS(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function gi(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,c=e.orderSemantics.get(l);if(!c){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(rS(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!c.source||c.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}nS.has(c.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${c.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var Oa=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"}},La=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}},_a=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 tE(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 _a(a).message}}return{records:n,cleanupWarning:o}}function Ru(e){let t=[];e.where&&t.push(j(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var iS={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 nE(e,t){let n=iS[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 rE(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=>nE(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=nE(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var fr=new WeakMap,gu=new WeakMap,oS="\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 Su(e){if(gu.has(e))return e;let t;return t=new Proxy(e,{get(n,r,i){return typeof r!="string"||Object.prototype.hasOwnProperty.call(n,r)?Reflect.get(n,r,i):Ne(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&Ne(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=Ne(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),gu.set(t,e),t}function ct(e){return gu.get(e)??e}function EE(e){let t=fr.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},fr.set(e,t)),t}function It(e,t,n,r=[]){let i=EE(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function Ze(e,t){return fr.get(e)?.byColumn.get(t)}function Ne(e,t){return fr.get(e)?.byLookupKey.get(t)}function Ft(e,t){return fr.has(e)?void 0:e[t]}function iE(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(pe(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=>Ne(a,o)===void 0&&a[o]===void 0))&&n.add(oS)}function aS(e){let t=fr.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=js(e);return r&&Ys(n,r.includedCanonicalIds),n}function Gt(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 sS(e,t,n,r={}){if(n.type==="CROSS"){let p=di(e.length,t.length);if(!p.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${p.outputRows} \u884C\uFF08\u5DE6 ${p.leftRows} \u884C \xD7 \u53F3 ${p.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${p.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let R of e)for(let E of t)f.push({...R,...E});return f}let{on:i,type:o}=n,a=lS(i,e,t,r.leftColumns,r.rightColumns),s=yu(a.left),l=yu(a.right);if(aE(e,s,r.leftColumns),aE(t,l,r.rightColumns),o==="RIGHT"){let p=new Map;for(let E of e){let m=E[s]??"",g=p.get(m);g?g.push(E):p.set(m,[E])}let f={};for(let E of r.leftColumns??Object.keys(e[0]??{}))f[E]="";let R=[];for(let E of t){let m=E[l]??"",g=p.get(m)??[];if(g.length>0)for(let y of g)R.push({...y,...E});else R.push({...f,...E})}return R}let c=new Map;for(let p of t){let f=p[l]??"",R=c.get(f);R?R.push(p):c.set(f,[p])}let d=[],u={};for(let p of r.rightColumns??Object.keys(t[0]??{}))u[p]="";for(let p of e){let f=p[s]??"",R=c.get(f)??[];if(R.length>0)for(let E of R)d.push({...p,...E});else o==="LEFT"&&d.push({...p,...u})}return d}function yu(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function lS(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=oE(o),l=oE(a),c=p=>{if(p.tableAlias){let m=s.has(p.tableAlias),g=l.has(p.tableAlias);if(m!==g)return m?"LEFT":"RIGHT"}let f=yu(p),R=o.includes(f),E=a.includes(f);return R!==E?R?"LEFT":"RIGHT":"UNKNOWN"},d=c(e.left),u=c(e.right);return d==="RIGHT"&&u==="LEFT"?{left:e.right,right:e.left}:e}function oE(e){let t=new Set;for(let n of e){let r=n.indexOf(".");r>0&&t.add(n.slice(0,r))}return t}function aE(e,t,n){if(e.length>0?e.some(i=>!Object.prototype.hasOwnProperty.call(i,t)):n!==void 0&&!n.includes(t))throw new Error(`ArgumentError: JOIN key ${t} is not available in the materialized table.`)}function uS(e,t,n,r,i,o={}){return t===null?e:e.filter(a=>ue(t,a,n,r,i,o))}function RE(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&Ye(t.expr)||t.type==="STRFUNC_COL"&&Ii(t.expr)||t.type==="SCALAR_VALUE_COL"&&on(t.expr))}function cS(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let c=t.map((u,p)=>dS(u,l,i?.items[p],n,o)).join("\0"),d=a.get(c);d?d.push(l):a.set(c,[l])}a.size===0&&t.length===0&&RE(n)&&a.set("",[]);let s=[];for(let l of a.values()){let c=Su({...l[0]});for(let d of t)d.type==="ARITH_KEY"?c[bu(d.expr)]=String(Re(d.expr,l[0],o.evaluationContext)):d.type==="FUNC_KEY"&&(c[an(d.expr)]=me(d.expr,l[0],void 0,void 0,o.evaluationContext));mE(c,l,n,r,o.evaluationContext),s.push(c)}return s}function pS(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let c={children:new Map},d=[];for(let p of e){let f=c;for(let R of l.items){let E=sE(R,p),m=f.children.get(E);m||(m={children:new Map},f.children.set(E,m)),f=m}f.rows||(s(),f.rows=[],d.push(f.rows)),f.rows.push(p)}e.length===0&&l.items.length===0&&(s(),c.rows=[],d.push(c.rows));let u=new Set(l.items.map(p=>p.canonicalId));for(let p of d){let f=Su({...p[0]}),R=new Map;for(let E of l.items)R.has(E.canonicalId)||R.set(E.canonicalId,sE(E,p[0]));for(let E of t.allItems){let m=R.get(E.canonicalId)??"";f[E.directKey]=m,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=m)}mE(f,p,n,r,i.evaluationContext),Ys(f,u),o.push(f)}}return o}function sE(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function mE(e,t,n,r,i={}){for(let[o,a]of n.entries())if(a.type==="AGGREGATE"){let s=pe(a.func,a.distinct,a.arg),l=String(Ai(a.func,a.distinct,a.arg,a.separator,t,r,i));It(e,o,l,a.alias?[a.alias,s]:[s])}else if(a.type==="ARITH_AGG_COL"){Da(e,t,a.expr,r,i);let s=a.alias??Si(a.expr);It(e,o,String(yi(a.expr,t,r,i)),[s])}else if(a.type==="STRFUNC_COL"&&Ii(a.expr)){Da(e,t,a.expr,r,i);let s=a.alias??an(a.expr),l=Nu(a.expr,t,r);It(e,o,me(l,e,void 0,void 0,i),[s])}else if(a.type==="SCALAR_VALUE_COL"&&on(a.expr)){Da(e,t,a.expr,r,i);let s=a.alias??wt(a.expr),l=hi(a.expr,t,r);It(e,o,String(Pe(l,e,void 0,void 0,i)),[s])}else if(a.type==="CASE_COL"&&Ye(a.expr)){Da(e,t,a.expr,r,i);let s=TE(a.expr,t,r),c=Ve(s,e,void 0,d=>d.aggregateRef?yE(d.aggregateRef,r):void 0,i);It(e,o,c,[hu(a.alias,o)])}}function hu(e,t){return e??`__ksql_case_column_${t}`}function Au(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>Au(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=>Au(r,t))}function Da(e,t,n,r,i={}){let o=[];Au(n,o);for(let a of o){let s=pe(a.func,a.distinct,a.arg);if(Ne(e,s)!==void 0)continue;let l=String(Ai(a.func,a.distinct,a.arg,a.separator,t,r,i));EE(e).byLookupKey.set(s,l)}}function dS(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=va(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"?me(e.expr,t,void 0,void 0,i.evaluationContext):String(Re(e.expr,t,i.evaluationContext))}function Ai(e,t,n,r,i,o,a={}){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let s=gE(e,n,i,a).filter(R=>R!==null),l=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",c=l?s.map(R=>{let E=Number(R);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${R}`);return E}):null,d=t?l?[...new Set(c)]:[...new Set(s)]:l?c:s;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?Ti(n,o):void 0,p=typeof u=="string"?B(u):u??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(s.length===0)return"";let R=new Map;for(let g of s)R.set(g,(R.get(g)??0)+1);let E="",m=0;for(let[g,y]of R){if(y>m){E=g,m=y;continue}if(y!==m)continue;let T=st(g,E,p);(T<0||T===0&&rn(g,E)<0)&&(E=g)}return E}if(e==="MIN"||e==="MAX"){let R=d;if(R.length===0)return"";let E=R[0];for(let m of R.slice(1)){let g=st(m,E,p);(e==="MAX"&&g>0||e==="MIN"&&g<0)&&(E=m)}return E}let f=l?d:d.map(Number);switch(e){case"SUM":return f.reduce((R,E)=>R+E,0);case"AVG":return f.length===0?0:f.reduce((R,E)=>R+E,0)/f.length;case"MEDIAN":{if(f.length===0)return"";let R=[...f].sort((m,g)=>m-g),E=Math.floor(R.length/2);return R.length%2===1?R[E]:(R[E-1]+R[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let R=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(f.length===0||R&&f.length<2)return"";let E=f[0],m=0,g=0,y=0;for(let h of f){let I=h-E;m++;let N=I-g;g+=N/m,y+=N*(I-g)}let T=Math.max(0,y/(R?m-1:m));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(T):T}}}function gE(e,t,n,r={}){return n.map(i=>{let o=ct(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=Re(t,o,r);if(isNaN(s))return null;a=String(s)}else{let s=Ut(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 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 yi(e,t,n,r={}){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Ai(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(Ge(t[0]??{},a))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let i=yi(e.left,t,n,r),o=yi(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 Si(e){return mt(e)}function Ti(e,t){if(e.type==="FIELD_REF")return t?.(fS(e.field))??"string";if(e.type==="FIELD")return t?.(e)??"string";if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return"number";if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return"string";if(e.type==="STRING_FUNC"){let o=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);return e.func==="CAST"?e.args[1]?.type==="STRING"&&e.args[1].value==="NUMBER"?"number":"string":o.has(e.func)?"number":"string"}let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Ti(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 yE(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return B("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return B("string");let n=e.arg.type==="WILDCARD"?"string":Ti(e.arg,t)??"string";return typeof n=="string"?B(n):n}function ES(e,t,n,r,i={}){return t===null?e:e.filter(o=>ue(t,aS(o),n,void 0,r,i))}function RS(e,t,n,r,i,o={}){if(e.length===0)return e;let a=mS(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i,evaluationContext:o}),s=new Set;return e.filter(l=>{let c=a(l);return s.has(c)?!1:(s.add(c),!0)})}function mS(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(wS(t,a,o))}function Tu(e,t,n,r,i,o,a={}){return t.length===0?e:hE(e,t,n,r,i,o,a).rows.map(s=>s.row)}function hE(e,t,n,r,i,o,a={}){let s=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(AE.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let u=i?.get(d.name);if(u)return{semantics:u};let p=n?.get(d.name);return p?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:p}}:{semantics:B(r?.get(d.name)??"string")}}),l=e.map(d=>({row:d,keys:t.map(({key:u},p)=>({s:hS(u,d,o,a)}))})),c=(d,u)=>gS(d,u,t,s);return l.sort(c),{rows:l,compare:c}}function gS(e,t,n,r){for(let i=0;i<n.length;i++){let o=yS(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function yS(e,t,n){return st(e.s,t.s,n.semantics)}var AE=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function hS(e,t,n,r={}){let i=ct(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??Ne(t,e.name)??i[e.name]??"";case"ARITH_KEY":return String(Re(e.expr,i,r));case"FUNC_KEY":return me(e.expr,i,void 0,void 0,r);case"GROUPING_KEY":return Wn(e.ref,t)}}function Iu(e,t,n,r,i={}){let o=new Map;for(let[a,s]of e.entries()){if(!("alias"in s)||s.alias===null)continue;let l=s.alias;switch(s.type){case"FIELD":o.set(l,c=>Ge(ct(c),s.field));break;case"LITERAL_COL":o.set(l,()=>s.value);break;case"AGGREGATE":{o.set(l,c=>Ze(c,a)??"0");break}case"ARITH_AGG_COL":{o.set(l,c=>Ze(c,a)??"0");break}case"WINDOW_COL":o.set(l,c=>Ze(c,a)??"");break;case"ARITH_COL":o.set(l,c=>String(Re(s.expr,ct(c),i)));break;case"STRFUNC_COL":{let c=an(s.expr);o.set(l,d=>Ii(s.expr)?Ze(d,a)??Ne(d,c)??me(s.expr,ct(d),n,r,i):me(s.expr,ct(d),n,r,i));break}case"CASE_COL":o.set(l,c=>Ye(s.expr)?Ze(c,a)??"":Ve(s.expr,ct(c),n,r,i));break;case"SCALAR_VALUE_COL":{let c=wt(s.expr);o.set(l,d=>on(s.expr)?Ze(d,a)??Ne(d,c)??"":String(Pe(s.expr,ct(d),n,r,i)));break}case"SCALAR_SUBQUERY_COL":o.set(l,()=>t?.get(a)??"");break;case"GROUPING_COL":o.set(l,c=>Wn(s.ref,c));break;case"VARIABLE_COL":break}}return(a,s)=>o.get(a)?.(s)}function wu(e,t,n,r,i,o,a={}){let s=t.map((l,c)=>({column:l,columnIndex:c})).filter(l=>l.column.type==="WINDOW_COL");if(e.length===0||s.length===0)return e;for(let l=0;l<e.length;l++)e[l]=Su(e[l]);for(let{column:l,columnIndex:c}of s){let d=new Map;for(let u of e){let p=JSON.stringify(l.partitionBy.map(R=>IS(u,R))),f=d.get(p);f?f.push(u):d.set(p,[u])}for(let u of d.values()){let p=hE(u,l.orderBy,n,r,i,void 0,a),f=p.rows;if(fo(l)){TS(l,c,p,o,a);continue}if(ks(l)){SS(l,c,f,a);continue}if(!xs(l))throw new Error(`InternalError: unknown window kind ${l.windowKind??"undefined"}`);let R=1,E=1;for(let m=0;m<f.length;m++){m>0&&p.compare(f[m-1],f[m])!==0&&(R=m+1,E++);let g=l.func==="ROW_NUMBER"?m+1:l.func==="RANK"?R:E;It(f[m].row,c,String(g),[l.alias])}}}return e}function AS(e,t,n={}){let r=Ut(e,ct(t),void 0,void 0,n);return r==null||typeof r=="number"&&!Number.isFinite(r)?"":String(r)}function SS(e,t,n,r={}){let i=n.map(a=>AS(e.arg,a.row,r)),o=e.valueFunc==="LAG"?-1:1;for(let a=0;a<n.length;a++){let s=a+o*e.offset;It(n[a].row,t,s>=0&&s<i.length?i[s]:"",[e.alias])}}function TS(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:gE(e.aggFunc,e.arg,o.map(f=>f.row),i),s=e.arg.type==="WILDCARD"?void 0:Ti(e.arg,r),l=typeof s=="string"?B(s):s??B("string"),c=[],d=0,u=0,p;for(let f=0;f<o.length;f++){let R=a?.[f]??null;if(e.arg.type==="WILDCARD")d++;else if(R!==null)if(e.aggFunc==="COUNT")d++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")u+=Number(R),d++;else if(p===void 0)p=R;else{let m=st(R,p,l);(e.aggFunc==="MAX"&&m>0||e.aggFunc==="MIN"&&m<0)&&(p=R)}let E=e.aggFunc==="COUNT"?d:e.aggFunc==="SUM"?u:e.aggFunc==="AVG"?d===0?0:u/d:p??0;c.push(String(E))}if(e.frame===null){let f=c[c.length-1];for(let R of o)It(R.row,t,f,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let f=0;f<o.length;){let R=f;for(;R+1<o.length&&n.compare(o[R],o[R+1])===0;)R++;for(let E=f;E<=R;E++)It(o[E].row,t,c[R],[e.alias]);f=R+1}return}for(let f=0;f<o.length;f++)It(o[f].row,t,c[f],[e.alias])}function IS(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Ge(ct(e),n)}function Ua(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function va(e,t,n,r={}){let i=ct(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 Ge(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=pe(e.func,e.distinct,e.arg);return Ze(t,n)??Ne(t,e.alias??o)??Ne(t,o)??Ft(t,e.alias??o)??Ft(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??Si(e.expr);return Ze(t,n)??Ne(t,o)??Ft(t,o)??"0"}case"ARITH_COL":return String(Re(e.expr,i,r.evaluationContext));case"CASE_COL":return Ye(e.expr)?Ze(t,n)??Ne(t,hu(e.alias,n))??Ft(t,hu(e.alias,n))??"":Ve(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return Wn(e.ref,t);case"STRFUNC_COL":{let o=an(e.expr);return Ii(e.expr)?Ze(t,n)??Ne(t,e.alias??o)??Ne(t,o)??Ft(t,e.alias??o)??Ft(t,o)??me(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext):me(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext)}case"SCALAR_VALUE_COL":{let o=wt(e.expr);return on(e.expr)?Ze(t,n)??Ne(t,e.alias??o)??Ne(t,o)??Ft(t,e.alias??o)??Ft(t,o)??"":String(Pe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return Ze(t,n)??Ne(t,e.alias)??Ft(t,e.alias)??""}}function wS(e,t,n={}){return e.map((r,i)=>{let o=va(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function In(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let R=e.map(m=>{let g=dE(uE(m),a),y=va(t[0],m,0,{wildcardKeys:Object.keys(g)}),T={};if(typeof y!="string")for(let[h,I]of y.entries)I!==null&&(T[h]=I);return T}),E=R.length>0?Object.keys(R[0]):[...i??[]];return{rows:R,columns:E}}let l=PS(t),c=CS(t),d=t.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD"),u=d?null:bS(t,l,c),p=u??[];return d&&e.length===0?{rows:[],columns:NS(t,l,c)}:{rows:e.map((R,E)=>{let m={},g={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys(dE(uE(R),a)),parentWildcardKeys:Object.keys(R).filter(y=>y.startsWith("_p.")).sort()};for(let[y,T]of t.entries()){let h=va(T,R,y,g);switch(T.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[I,N]of h.entries)N!==null&&(m[I]=N);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[I,N]of h.entries)N!==null&&(m[I]=N),E===0&&p.push(I);break}case"FIELD":{let I=u?.[y]??T.alias??l.get(y)??T.field;m[I]=h,u===null&&E===0&&p.push(I);break}case"LITERAL_COL":{let I=u?.[y]??T.alias??`'${T.value}'`;m[I]=h,u===null&&E===0&&p.push(I);break}case"AGGREGATE":{let I=pe(T.func,T.distinct,T.arg),N=u?.[y]??T.alias??I;m[N]=h,u===null&&E===0&&p.push(N);break}case"ARITH_AGG_COL":{let I=u?.[y]??T.alias??Si(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"ARITH_COL":{let I=u?.[y]??T.alias??bu(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"CASE_COL":{let I=u?.[y]??T.alias??c.get(y)??"case";m[I]=h,u===null&&E===0&&p.push(I);break}case"GROUPING_COL":{let I=u?.[y]??T.alias??`GROUPING(${T.ref.field.tableAlias?`${T.ref.field.tableAlias}.`:""}${T.ref.field.field})`;m[I]=h,u===null&&E===0&&p.push(I);break}case"STRFUNC_COL":{let I=u?.[y]??T.alias??an(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"SCALAR_VALUE_COL":{let I=u?.[y]??T.alias??wt(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"SCALAR_SUBQUERY_COL":{let I=u?.[y]??T.alias??"(subquery)";m[I]=h,u===null&&E===0&&p.push(I);break}case"WINDOW_COL":{let I=u?.[y]??T.alias;m[I]=h,u===null&&E===0&&p.push(I);break}}}return m}),columns:p}}function bS(e,t,n){return e.map((r,i)=>SE(r,i,t,n))}function NS(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=SE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function SE(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??pe(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Si(e.expr);case"ARITH_COL":return e.alias??bu(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??an(e.expr);case"SCALAR_VALUE_COL":return e.alias??wt(e.expr);case"GROUPING_COL":return e.alias??`GROUPING(${e.ref.field.tableAlias?`${e.ref.field.tableAlias}.`:""}${e.ref.field.field})`;case"SCALAR_SUBQUERY_COL":return e.alias??"(subquery)";case"WINDOW_COL":return e.alias;case"WILDCARD":case"PARENT_WILDCARD":throw new Error("internal: computeOutputKey received a wildcard column")}}function CS(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 PS(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=lE(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=lE(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 lE(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function uE(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function bu(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?z(n):n.type==="STRING_FUNC"?an(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function an(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Si(n):n.type==="VARIABLE"?`@${n.name}`:wt(n));return`${e.func}(${t.join(",")})`}function wt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return an(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${wt(e.left)}${e.op}${wt(e.right)}`;case"CONCAT_OP":return`${wt(e.left)}||${wt(e.right)}`}}function OS(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:on(e)}function on(e){return e.type==="STRING_FUNC"?Ii(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?on(e.left)||on(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>cE(t.result))||e.elseResult!==null&&cE(e.elseResult):!1}function cE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:on(e)}function Ii(e){return e.args.some(t=>OS(t))}function LS(e,t,n){if(e.type==="AGG_REF"){let r=Ai(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=yi(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(Ge(t[0]??{},r)),raw:Ge(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?Nu(e,t,n):hi(e,t,n)}function hi(e,t,n){return e.type==="STRING_FUNC"?Nu(e,t,n):e.type==="CASE_WHEN"?TE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:hi(e.left,t,n),right:hi(e.right,t,n)}:e}function pE(e,t,n){if(e.type==="AGG_REF"){let r=Ai(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=yi(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:hi(e,t,n)}function TE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:pE(r.result,t,n)})),elseResult:e.elseResult===null?null:pE(e.elseResult,t,n)}}function Nu(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>LS(r,t,n))}}function dE(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 fE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function mu(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function _S(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,B("number"));else if(r.type==="WINDOW_COL"){if(xs(r)||fo(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,B("number"));else if((fo(r)||ks(r))&&r.arg.type!=="WILDCARD"){let i=Ti(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?B(i):i)}}else r.type==="AGGREGATE"?r.func==="COUNT"||r.func==="SUM"||r.func==="AVG"||r.func==="STDDEV_POP"||r.func==="STDDEV_SAMP"||r.func==="VAR_POP"||r.func==="VAR_SAMP"||r.func==="MEDIAN"?n.set(r.alias,B("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,B("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,B("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,B(AE.has(r.expr.func)?"number":"string"));return n}function Cu(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:c,havingFieldSemanticsResolver:d,aggregateSortKindResolver:u,appliedKlikes:p,sourceColumns:f,tableColumns:R,hiddenQualifiedAliases:E,resolvedGroupingSpec:m,plainGroupByPlan:g,warnings:y,evaluationContext:T}=e,h=_S(t.columns,u);for(let[v,b]of a??[])h.set(v,b);let I=[],N=t.from.alias;I=(n.get(N)??n.get(null)??[]).map(v=>Gt(v,N));let P=mu(fE(R?.get(N),N),void 0,I);for(let v of t.joins){let b=v.table.alias,A=(n.get(b)??[]).map(k=>Gt(k,b)),w=mu(fE(R?.get(b),b),void 0,A);I=sS(I,A,v,{leftColumns:P,rightColumns:w}),P=mu(P,w,I)}let M=e.residualWhere!==void 0?e.residualWhere:t.where;I=uS(I,M,s,p,l,T);let U=ee(t);if(U.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");I=pS(I,m,t.columns,u,{maxGeneratedRows:5e4,evaluationContext:T})}else(U.type==="PLAIN"||RE(t.columns))&&(I=cS(I,U.type==="PLAIN"?U.allItems:[],t.columns,u,U.type==="PLAIN"?g:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:T}));iE(t.columns,I,y);let C=v=>v.aggregateRef?yE(v.aggregateRef,u):d?.(v);return iE(t.having,I,y),I=ES(I,t.having,c,C,T),I=wu(I,t.columns,i,o,h,u,T),t.distinct&&(I=RS(I,t.columns,r,s,l,T)),I=Tu(I,t.orderBy,i,o,h,Iu(t.columns,r,s,l,T),T),I=Ua(I,t.limit,t.offset),In(I,t.columns,r,s,f,l,E,T)}function IE(e,t){let n=[];for(let r of e){let i=Pu(r.$id?.value),o=DS(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[c,d]of Object.entries(r)){if(c===t)continue;let u=Pu(d?.value);l[`_p.${c}`]={value:u}}for(let[c,d]of Object.entries(s.value??{}))l[c]={value:Pu(d?.value)};n.push(l)}}return n}function DS(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function Pu(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 vS(e,t={}){let n=new Ot(e).tokenize(),r=new jt(n,t).parseStatements();return r.forEach(Je),r}function wE(e,t={}){let n=jo(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:vS(i,o),meta:n.meta}}function bE(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function NE(e,t){let n=wi(e);for(let[r,i]of Object.entries(t))n[r]=wi(i);return n}function CE(e){let t=[...e.preErrors.map(i=>Ou(i)),...e.postImageErrors.map(i=>Ou(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Ou(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]=wi(e.normalizedPostImage[i])}return{errors:t,invalidRows:n.size,invalidRowNumbers:n,writeRecord:r}}function Ou(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 wi(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(wi(a,t));return o}let i={};t.set(n,i);for(let[o,a]of Object.entries(e))i[o]=wi(a,t);return i}function OE(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"&&at(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 _u(e){return OE(e,!0)}function Ma(e,t){let n=[],r=new Set,i=o=>{if(Array.isArray(o)){o.forEach(i);return}if(o===null||typeof o!="object"||r.has(o))return;r.add(o);let a=o;if(a.type==="SELECT"&&o!==t){n.push(o);return}Object.values(a).forEach(i)};return i(e),n}function pt(e,t,n,r,i=!0,o=!0,a=r){let s=_u(e.where);s.length>0&&n.push({kind:r?"FORBIDDEN":"SELECT",source:e,where:e.where,functionNames:s,path:t,allowPhase2Prefilter:i,allowFullScanExact:o,relativeFunctionOccurrences:he(e.where)}),Ma(e,e).forEach((l,c)=>pt(l,`${t}.select-source[${c}]`,n,a,a?!1:i,a?!1:o,a))}function bi(e,t,n,r,i=!0){e.left.type==="UNION"?bi(e.left,`${t}.left`,n,r,i):pt(e.left,`${t}.left`,n,r,!0,i),pt(e.right,`${t}.right`,n,r,!0,i)}function PE(e,t,n,r){if(!r&&Xt(e)){pt(Qt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?pt(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&bi(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?pt(e.query,`${t}.main`,n,r,!1,!r,!0):bi(e.query,`${t}.main`,n,!0,!1)}function LE(e,t,n,r=!1){switch(e.type){case"SELECT":pt(e,t,n,r);return;case"UNION":bi(e,t,n,r);return;case"WITH":PE(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?PE(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?bi(e.query,`${t}.query`,n,!0,!1):pt(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":LE(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=_u(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:he(e.where)}),Ma(e,e).forEach((o,a)=>pt(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=_u(e.where);if(i.length>0){let o=r||!!e.subtableCode||e.type==="UPDATE"&&(e.from!=null||!!e.applyBlocks?.length);n.push({kind:o?"FORBIDDEN":"DML",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:he(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=OE(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}Ma(e,e).forEach((o,a)=>pt(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:Ma(e,e).forEach((i,o)=>pt(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function xa(e,t){let n=new Map;for(let r of t){if(!at(r))return!1;n.set(r,(n.get(r)??0)+1)}for(let[r,i]of n)if((e.match(new RegExp(`\\b${r}\\s*\\(`,"g"))?.length??0)<i)return!1;return!0}function Du(e,t){return t.eligible===!0&&ze(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function US(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)&&dr(t)}function MS(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function xS(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 Fn(e)?(n.some(r=>r!==Pt)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(Pt)||n.push(Pt)):n.includes(cn)||n.push(cn),[...new Set(n)]}function Lu(e,t){let n=e.functionNames[0],r=Fn(n)?Pt:cn,i=xS(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function _E(e,t){let n=[];LE(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let d=MS(i);return r.push(d),{hasRelativeDate:i.functionNames.some(re),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Lu(i)}}if(i.kind==="SELECT"){let d=i.source,u=d.from.cteName===null&&!d.from.subtableCode&&d.joins.length===0,p=ze(d),f=await t.select(d),R="";try{R=i.where===null?"":j(i.where)}catch{R=""}let E=u&&p==="SIMPLE"&&(d.orderBy.length===0||d.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&xa(R,i.relativeFunctionOccurrences),m,g;if(!E&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(d);I?.eligible===!0&&Du(d,I)&&(m=I.plan,g=!0,E=!0)}let y;!E&&f.capability==="EXACT_PUSHDOWN"&&(y=so({select:d,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:R||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,y&&(m=y.prefilterPlan,E=!0));let T;if(!E&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(d);I!==null&&US(d,I)&&(T=I,E=!0)}let h={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:f,restQuery:R,...m?{prefilterPlan:m,phase2PrefilterEligible:g}:{},...y?{fullScanExactPlan:y,allowForm:y.allowForm}:{},...T?{joinServerFunctionPlan:T,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:T.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!E,allowed:E};if(r.push(h),!E)return{hasRelativeDate:n.some(I=>I.functionNames.some(re)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Lu(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":j(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&xa(s,i.relativeFunctionOccurrences),c={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(c),!l)return{hasRelativeDate:n.some(d=>d.functionNames.some(re)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Lu(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(re)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function vu(e){if(!e.allowed&&e.rejection){let t=Fn(e.rejection.functionName)?Pt:cn,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 Uu(e,t,n={}){let r=Se(e.where,t),i=(T,h="INELIGIBLE")=>({eligible:!1,disposition:h,reasonCodes:T,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=Ci(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=kS(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!FS(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=KS(e.where,t),l=$r(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),c=n.serialize??j,d=n.containsFunctions??xa,u=[];for(let T of a.leaves){let h=Ka(T);if(h===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let I;try{I=c(T)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!d(I,[h]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(T)}let p=GS(l.condition),f=new Set(u),R=Fa(e.where,f,p);if(R===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let E;try{E=c(R)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=u.map(T=>Ka(T));if(!d(E,[...new Set(m)])||!$S(E,m))return i(["PREFILTER_FUNCTION_MISSING"]);let g=n.rewriteResidual?n.rewriteResidual(e.where,f):Ga(e.where,f);if(g!==null&&Ci(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 T of m)y.add(T);return{eligible:!0,plan:{prefilterWhere:R,residualWhere:g,exactRelativeLeaves:u,relativeFunctionNames:y,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function kS(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}Ci(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Ci(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Ka(o)===null)return;if(Se(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Ci(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 Ka(e){return e.right.type==="KINTONE_FUNC"&&at(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&at(e.right.values[0].name)?e.right.values[0].name:null}function Ci(e){let t=[],n=r=>{if(r.type==="BINARY"&&Ka(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 FS(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 GS(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 Fa(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=Fa(e.left,t,n),i=Fa(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=Fa(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Ni={type:"BOOLEAN",value:!0};function Ga(e,t){if(e.type==="BINARY"&&t.has(e))return Ni;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=Ga(e.left,t)??Ni,r=Ga(e.right,t)??Ni;return ka(n)?ka(r)?null:r:ka(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=Ga(e.expr,t)??Ni;return ka(n)?Ni:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function ka(e){return e.type==="BOOLEAN"&&e.value}function KS(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 $S(e,t){let n=new Map;for(let r of t){if(!Ir.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 W=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function DE(e,t){if(!t)throw new W("IMPORT source capability is not available.");let n=t(e);if(!n)throw new W(`source "${e}" is not supplied.`);return n}async function $a(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new W("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new W("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function BS(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new W(`invalid ${t.toUpperCase()} byte sequence.`)}}function VS(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let c=e[a];if(i){if(c==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=c,a++;continue}if(o&&c!==","&&c!=="\r"&&c!==`
10
- `)throw new W(`unexpected character after closing quote at offset ${a}.`);if(c==='"'){if(r.length!==0)throw new W(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(c===","){s(),a++;continue}if(c==="\r"||c===`
9
+ `?n+=2:n<e.length&&n++,{contentEnd:r,next:n}}function vd(e,t={}){let n=qo(e),r=[...n.diagnostics],i=e,o=[],a=$n(e).filter(l=>l.source==="logical"),s=Ph(t.apps);for(let l of a)s?.has(l.logicalName)||r.push(Be(e,l.start,{severity:"error",code:le.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===le.LOGICAL_APP_UNRESOLVED)){let l=co(e,"flow",{resolveLogicalApp(c){return s.get(c)}});i=l.normalizedSql,o=l.rewriteSegments}if(a.length>0&&r.some(l=>l.code===le.LOGICAL_APP_UNRESOLVED))return{meta:n.meta,statements:[],statementRanges:[],diagnostics:r};try{let l=new jt(new Lt(i).tokenize(),{dialect1:n.meta.dialect===1}).parseStatementsWithRanges(),c=l.statementRanges.map(d=>({start:bl(d.start,o,"start"),end:bl(d.end,o,"end")}));return l.statements.forEach((d,u)=>{try{Je(d)}catch(p){r.push(Be(e,c[u]?.start??0,{severity:"error",code:le.PARSE_ERROR,message:_d(p),statementIndex:u}))}}),{meta:n.meta,statements:l.statements,statementRanges:c,diagnostics:r}}catch(l){let c=l instanceof S?l.token.pos:l instanceof Ue?l.pos:0,d=bl(c,o,"start");return r.push(Be(e,d,{severity:"error",code:l instanceof Ue?le.LEX_ERROR:l instanceof S&&l.rawMessage.includes("-- @ksql dialect: 1")?le.DIALECT1_REQUIRED:le.PARSE_ERROR,message:l instanceof S?l.rawMessage:_d(l),statementIndex:Oh(e,d)})),{meta:n.meta,statements:[],statementRanges:[],diagnostics:r}}}function Ph(e){if(e===void 0)return;let t=new Map;for(let[n,r]of Object.entries(e))try{t.set(Gn(n),r)}catch{}return t}function _d(e){return e instanceof Error?e.message:String(e)}function Oh(e,t){try{let n=new Lt(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 bl(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 Dd(e){if(!e||typeof e!="object")return"UNKNOWN";let t=e;return typeof t.type=="string"?t.type:"UNKNOWN"}function or(e){return e==="INSERT"||e==="INSERT_SELECT"||e==="UPDATE"||e==="DELETE"||e==="UPSERT"||e==="UPSERT_SELECT"||e==="REORDER"||e==="IMPORT"}function Lh(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 Nl(e){return or(e.type)&&!("validateOnly"in e&&e.validateOnly===!0)}function Ud(e){return!Nl(e)&&(Lh(e.type)||or(e.type))}var Md=new Set(["STDDEV_POP","STDDEV_SAMP","VAR_POP","VAR_SAMP","MEDIAN","MODE"]);function xe(e,t){for(let n of t)e.add(n)}function Jo(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"&&Md.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=>Jo(i,t)):Jo(r,t))}function Xo(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"&&!Md.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=>Xo(i,t)):Xo(r,t))}function nn(e){let t=new Set;if(or(e.type))return t.add("DML"),t;switch(e.type){case"VALIDATE":t.add("VALIDATE");break;case"SELECT":xe(t,ir(e));break;case"UNION":xe(t,kd(e));break;case"WITH":for(let n of e.ctes)n.query.type!=="GENERATE_SERIES"&&xe(t,nn(n.query));xe(t,nn(e.query));break;case"CREATE_TEMP_TABLE":xe(t,nn(e.query));break;default:break}return Jo(e)&&t.add("STATISTICAL_AGGREGATE"),Xo(e)&&t.add("AGGREGATE"),t}function xd(e){return nn(e).size>0}function kd(e){let t=e.left.type==="SELECT"?ir(e.left):kd(e.left);return xe(t,ir(e.right)),e.all||t.add("DISTINCT"),t}function ir(e){let t=new Set;e.joins.some(r=>r.type==="CROSS")&&t.add("CROSS_JOIN");let n=te(e);n.type==="GROUPING_SETS"&&t.add("GROUPING_SETS"),n.type==="PLAIN"&&t.add("GROUP_BY"),e.distinct&&t.add("DISTINCT"),e.orderBy.length>0&&t.add("LOCAL_ORDER");for(let r of e.columns)if(r.type==="WINDOW_COL"&&r.windowKind==="AGGREGATE"?t.add("AGGREGATE_WINDOW"):r.type==="WINDOW_COL"&&r.orderBy.length>0&&t.add("WINDOW_ORDER"),r.type==="SCALAR_SUBQUERY_COL"&&xe(t,ir(r.query)),r.type==="CASE_COL")for(let i of r.expr.branches)xe(t,rr(i.condition));return xe(t,rr(e.where)),xe(t,rr(e.having)),Jo(e)&&t.add("STATISTICAL_AGGREGATE"),Xo(e)&&t.add("AGGREGATE"),t}function rr(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")&&xe(t,ir(e.right.query));break;case"LOGICAL":xe(t,rr(e.left)),xe(t,rr(e.right));break;case"NOT":case"GROUP":xe(t,rr(e.expr));break;case"EXISTS":xe(t,ir(e.query));break;case"NULL_CHECK":case"BOOLEAN":break}return t}function Fd(e){if(!e||typeof e!="object")return!1;let t=e;return t.where!==null&&t.where!==void 0}function Kd(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 Qo=16,Gd=64,se=class extends Error{constructor(n,r){super(n);this.statementIndex=r}};function zr(e,t,n){if(Array.isArray(e)){for(let r of e)zr(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.cteName;typeof i=="string"&&i.startsWith("#")&&t.add(i);let o=r.appId;typeof o=="number"&&o>0&&n.add(o);for(let a of Object.values(r))zr(a,t,n)}}var _h=new Set(["=","!=","<>",">","<",">=","<="]);function Cl(e,t,n=!1){if(Array.isArray(e)){for(let r of e)Cl(r,t,n);return}if(e!==null&&typeof e=="object"){let r=e,i=r.type;if((i==="VARIABLE"||i==="VARIABLE_COL"||i==="VARIABLE_IN_LIST")&&typeof r.name=="string"){if(Vn(r.name)!==null)return;t.push({name:r.name,kind:i==="VARIABLE"?"scalar":i==="VARIABLE_COL"?"select-column":"array-in-list",relativeDateAllowed:n});return}let o=i==="BINARY"||i==="LOGICAL"||i==="NOT"||i==="GROUP"||i==="NULL_CHECK"||i==="BOOLEAN";for(let[a,s]of Object.entries(r)){let l=s!==null&&typeof s=="object"&&s.type==="VARIABLE",c=n&&i==="BINARY"&&a==="right"&&l&&_h.has(String(r.op));Cl(s,t,a==="where"?!0:i==="BINARY"&&a==="right"&&l?c:o?n:!1)}}}function vh(e){let t=e.type==="EXPLAIN"?e.query:e;return or(t.type)||t.type==="VALIDATE"}function Pl(e){if(Array.isArray(e)){for(let t of e)Pl(t);return}if(e!==null&&typeof e=="object"){let t=e;t.type==="SELECT"&&sl(e);for(let n of Object.values(t))Pl(n)}}function Ol(e){if(e.length===0)throw new se("ArgumentError: SQL is empty.",0);if(e.forEach((u,p)=>{try{Pl(u)}catch(f){throw f instanceof Error?new se(f.message,p):f}try{Zn("phase15b",u),Je(u)}catch(f){throw f instanceof Se||f instanceof Hr?new se(f.message,p):f instanceof Error&&/^(UnsupportedError|ArgumentError): APPLY /.test(f.message)?new se(f.message,p):f}}),e.length===1){let u=e[0].type;if(u==="SET_VARIABLE"||u==="DECLARE_VARIABLE"){let p=u==="SET_VARIABLE"?"SET":"DECLARE";throw new se(`ArgumentError: ${p} variable requires a batch.`,0)}if(u==="CREATE_TEMP_TABLE"||u==="DROP_TEMP_TABLE"){let p=u==="CREATE_TEMP_TABLE"?"CREATE TEMP TABLE":"DROP TEMP TABLE";throw new se(`ArgumentError: ${p} requires a batch (temp tables are batch-scoped).`,0)}}let t=new Map,n=new Map,r=[],i=[],o=new Map,a=[];e.forEach((u,p)=>{let f=u.type==="VALIDATE"&&u.errorTable?u.errorTable:"validationErrorTable"in u&&u.validationErrorTable?u.validationErrorTable:"onErrorSkip"in u&&u.onErrorSkip?u.errorTable??null:null;if(e.length===1&&f){let v=u.type==="VALIDATE"?"ArgumentError: VALIDATE INTO requires a batch.":"onErrorSkip"in u&&u.onErrorSkip?"ArgumentError: ON ERROR SKIP requires a batch.":"ArgumentError: VALIDATE ONLY INTO requires a batch.";throw new se(v,p)}let R=Dd(u),E=[],m=[],y=new Set,g=new Set,T=new Set,h=[];Cl(u,h);let I=new Set;for(let v of h){let P=o.get(v.name);if(P===void 0)throw new se(`ParseError: variable @${v.name} is not defined before statement ${p+1}.`,p);if(P.kind==="scalar"&&v.kind==="array-in-list")throw new se(`ParseError: scalar variable @${v.name} cannot be used as IN @${v.name}; use IN (@${v.name}) instead.`,p);if(P.kind==="array"&&v.kind!=="array-in-list")throw new se(`ParseError: array variable @${v.name} can only be used as IN @${v.name}.`,p);if(P.relativeDate&&vh(u))throw new se(`ArgumentError: RELATIVE_DATE variable @${v.name} cannot be used in DML or VALIDATE statements.`,p);if(P.relativeDate&&!v.relativeDateAllowed)throw new se(`ArgumentError: RELATIVE_DATE variable @${v.name} can only be used as a WHERE comparison right operand or BETWEEN boundary.`,p);I.has(v.name)||(P.referencedBy.push(p),I.add(v.name))}if(u.type==="SET_VARIABLE"||u.type==="DECLARE_VARIABLE"){if(o.has(u.name))throw new se(`ParseError: variable @${u.name} is already defined.`,p);if(o.set(u.name,{index:p,kind:u.type==="SET_VARIABLE"&&u.expr.type==="ARRAY"?"array":"scalar",relativeDate:u.type==="DECLARE_VARIABLE"&&u.annotation==="RELATIVE_DATE",referencedBy:[]}),a.push(u.name),a.length>Gd)throw new se(`ParseError: batch exceeds ${Gd} variables.`,p)}u.type==="CREATE_TEMP_TABLE"?zr(u.query,y,g):u.type==="DROP_TEMP_TABLE"||zr(u,y,g);let N=!1;if(u.type==="INSERT_SELECT"||u.type==="UPSERT_SELECT"){let v=new Set,P=new Set;zr(u.select,v,P),N=v.size>0&&P.size===0}for(let v of y){let P=t.get(v);if(P===void 0)throw new se(`ParseError: temp table ${v} is not defined in this batch.`,p);T.add(P)}if(f){let v=u.type==="VALIDATE"?u.summary?["$id","$err_subtable","$err_field","$err_code","$err_count"]:["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"]:u.type==="IMPORT"&&u.targets?.some(U=>U.kind==="SUBTABLE")?[...new Set(u.targets.flatMap(U=>U.kind==="FIELD"?[U.field]:U.children)),"$err_subtable","$err_subrow","$err_source_row"]:u.type==="UPDATE"?["$id",...u.assignments.map(U=>U.field)]:"fields"in u?u.fields:[],P=JSON.stringify(v),x=t.get(f);if(x===void 0){if(t.set(f,p),n.set(f,P),r.push(f),E.push(f),t.size>Qo)throw new se(`ParseError: batch exceeds ${Qo} temp tables.`,p)}else{if(n.get(f)!==P)throw new se(`ParseError: validation error table ${f} has a different payload schema.`,p);T.add(x)}}if(u.type==="CREATE_TEMP_TABLE"){if(t.has(u.name))throw new se(`ParseError: temp table ${u.name} is already defined.`,p);if(t.set(u.name,p),r.push(u.name),E.push(u.name),t.size>Qo)throw new se(`ParseError: batch exceeds ${Qo} temp tables.`,p)}if(u.type==="DROP_TEMP_TABLE"){let v=t.get(u.name);if(v===void 0)throw new se(`ParseError: temp table ${u.name} is not defined in this batch.`,p);T.add(v),m.push(u.name),t.delete(u.name)}i.push({index:p,statementType:R,isDml:Nl(u),isReadOnly:Ud(u),hasWhere:Fd(u),insertValuesCount:Kd(u),appIds:[...g].sort((v,P)=>v-P),tempTablesCreated:E,tempTablesReferenced:[...y],tempTablesDropped:m,dependsOn:[...T].sort((v,P)=>v-P),tempOnlySource:N,targetAppId:or(R)&&typeof u.appId=="number"?u.appId:null,isUpdateFrom:u.type==="UPDATE"&&u.from!=null,isValidationOnly:"validateOnly"in u&&u.validateOnly===!0,isOnErrorSkip:"onErrorSkip"in u&&u.onErrorSkip===!0,requiresCompleteInput:xd(u)})});let s=i.some(u=>u.isDml),l=i.some(u=>u.isValidationOnly),c=i.some(u=>u.requiresCompleteInput),d=a.map(u=>({name:u,kind:o.get(u).kind,referencedBy:[...o.get(u).referencedBy]}));return{statementCount:e.length,isReadOnlyBatch:!s&&i.every(u=>u.isReadOnly),containsDml:s,containsValidationOnly:l,requiresCompleteInput:c,tempTables:r,variables:d,warnings:d.filter(u=>u.referencedBy.length===0).map(u=>`variable @${u.name} is never used.`),statements:i}}function rn(e,t){let n=e[Symbol.iterator](),r=t[Symbol.iterator]();for(;;){let i=n.next(),o=r.next();if(i.done||o.done)return i.done&&o.done?0:i.done?-1:1;let a=i.value.codePointAt(0)??0,s=o.value.codePointAt(0)??0;if(a<s)return-1;if(a>s)return 1}}function Dh(e,t){return e<t?-1:e>t?1:0}function $d(e){if(e==="")return{band:0};let t=be(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 Uh(e,t){let n=$d(e),r=$d(t);return n.band!==r.band?n.band<r.band?-1:1:n.band===2&&r.band===2?fo(n.value,r.value):n.band===5&&r.band===5?rn(n.value,r.value):0}function Bd(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 Mh(e,t,n){let r=Bd(e,n),i=Bd(t,n);if(r.empty||i.empty)return r.empty===i.empty?0:r.empty?-1:1;if(r.normalizedId.length!==i.normalizedId.length)return r.normalizedId.length<i.normalizedId.length?-1:1;let o=rn(r.normalizedId,i.normalizedId);return o!==0?o:rn(r.display,i.display)}function xh(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 Vd(e,t){let n=t.optionOrder??new Map,i=[...new Set(xh(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(Wd),i}function Wd(e,t){return e.knownBand!==t.knownBand?e.knownBand<t.knownBand?-1:1:e.rank!==t.rank?e.rank<t.rank?-1:1:rn(e.label,t.label)}function kh(e,t,n){let r=Vd(e,n),i=Vd(t,n),o=Math.min(r.length,i.length);for(let a=0;a<o;a++){let s=Wd(r[a],i[a]);if(s!==0)return s}return r.length<i.length?-1:r.length>i.length?1:0}function ut(e,t,n){switch(n.compareMode){case"string":return rn(e,t);case"number":return Uh(e,t);case"recordNumber":return Mh(e,t,n.fieldType==="RECORD_NUMBER");case"option":return kh(e,t,n);case"unsupported":throw new Error(`ArgumentError: values of type ${n.fieldType} cannot be compared.`)}}function Ut(e,t,n,r=B("string")){let i=ut(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 Hd(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=be(o),l=be(a),c=s!==null&&l!==null?fo(s,l):Dh(Number(o),Number(a));if(c!==0)return c}return rn(o,a)};return n.reduce((o,a)=>{let s=i(a,o);return t==="greatest"?s>0?a:o:s<0?a:o})}function 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(Ke(t,e.field));if(e.type==="STRING_FUNC")return Number(ye(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 Oe(e,t,n,r,i={}){switch(e.type){case"STRING":return e.value;case"NUMBER":return e.value;case"FIELD":return Ke(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 ye(e,t,n,r,i);case"CASE_WHEN":return Ve(e,t,n,r,i);case"CONCAT_OP":return ye({type:"STRING_FUNC",func:"CONCAT",args:[e.left,e.right]},t,n,r,i);case"SCALAR_ARITH":{let o=Number(Oe(e.left,t,n,r,i)),a=Number(Oe(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 Mt(e,t,n,r,i={}){switch(e.type){case"CASE_WHEN":return qd(e,t,n,r,i);case"SCALAR_ARITH":{let o=Mt(e.left,t,n,r,i),a=Mt(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=Mt(e.left,t,n,r,i),a=Mt(e.right,t,n,r,i);return`${o??""}${a??""}`}default:return Oe(e,t,n,r,i)}}function Zo(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 Fh(e){return e>=55296&&e<=56319}function Kh(e){return e>=56320&&e<=57343}function ta(e,t){return t>0&&t<e.length&&Fh(e.charCodeAt(t-1))&&Kh(e.charCodeAt(t))}function Yd(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 _l(e,t){let n=Math.min(Math.max(0,t),e.length);return ta(e,n)&&(n-=1),e.slice(0,n)}function Gh(e,t){let n=Math.max(0,e.length-t);return ta(e,n)&&(n+=1),e.slice(n)}function $h(e,t,n){let r=Yd(t,e.length),i=Yd(n,e.length);return i<=r?"":(ta(e,r)&&(r+=1),ta(e,i)&&(i-=1),e.slice(r,Math.max(r,i)))}function Bh(e,t){let n=e.repeat(Math.ceil(t/e.length));return _l(n,t)}var Vh=200,qr=new Map;function Wh(e){if(/[^ims]/.test(e))throw new Error("ArgumentError: regular expression flags may contain only i, m, or s.");if(new Set(e).size!==e.length)throw new Error("ArgumentError: regular expression flags must not contain duplicates.");return`${e}u`}function Ll(e,t,n=!1){let r=Wh(t)+(n?"g":""),i=`${e}\0${r}`,o=qr.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(qr.size>=Vh){let s=qr.keys().next().value;s!==void 0&&qr.delete(s)}return qr.set(i,a),a}function Hh(e){if(e.includes("$`")||e.includes("$'"))throw new Error("ArgumentError: REGEXP_REPLACE replacement must not contain $` or $'.")}function Yh(e){if(e===void 0)return 0;if(!/^\d+$/.test(e))throw new Error("ArgumentError: REGEXP_REPLACE occurrence must be a non-negative integer.");return Number(e)}function jh(e,t,n,r){let i="";for(let o=0;o<e.length;o+=1){let a=e[o];if(a!=="$"||o+1>=e.length){i+=a;continue}let s=e[o+1];if(s==="$"){i+="$",o+=1;continue}if(s==="&"){i+=t,o+=1;continue}if(s==="<"&&r!==void 0){let l=e.indexOf(">",o+2);if(l>=0){i+=r[e.slice(o+2,l)]??"",o=l;continue}}if(/\d/.test(s)){let l=e[o+2];if(l!==void 0&&/\d/.test(l)){let d=Number(s+l);if(d>=1&&d<=n.length){i+=n[d-1]??"",o+=2;continue}}let c=Number(s);if(c>=1&&c<=n.length){i+=n[c-1]??"",o+=1;continue}}i+="$"}return i}function zh(e,t,n,r){let i=0;return e.replace(t,(o,...a)=>{if(i+=1,i!==r)return o;let s=a[a.length-1],l=typeof s=="object"&&s!==null,c=a.length-(l?3:2),d=a.slice(0,c);return jh(n,o,d,l?s:void 0)})}function ye(e,t,n,r,i={}){Yo(e.func,e.args);let o=e.args.map(a=>nA(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 $h(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?"":_l(a,s)}case"RIGHT":{let a=o[0],s=Math.trunc(Number(o[1]));return Number.isNaN(s)||s<=0?"":Gh(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 _l(a,s);let l=o[2]??" ";if(l==="")return a;let c=Bh(l,s-a.length);return e.func==="LPAD"?c+a:a+c}case"GREATEST":case"LEAST":return Hd(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 Ll(o[1],o[2]??"").test(o[0])?"1":"0";case"REGEXP_REPLACE":{Hh(o[2]);let a=Yh(o[4]),s=Ll(o[1],o[3]??"",!0);return a===0?o[0].replace(s,o[2]):zh(o[0],s,o[2],a)}case"REGEXP_SUBSTR":return Ll(o[1],o[2]??"").exec(o[0])?.[0]??"";case"TRANSLATE":{let a=[...o[1]],s=[...o[2]];if(a.length!==s.length)throw new Error(`ArgumentError: TRANSLATE \u306E from \u3068 to \u306F\u540C\u3058\u6587\u5B57\u6570\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\uFF08from=${a.length}, to=${s.length}\uFF09`);let l=new Map;return a.forEach((c,d)=>{l.has(c)||l.set(c,s[d])}),[...o[0]].map(c=>l.get(c)??c).join("")}case"COALESCE":return o.find(a=>a!=="")??"";case"NULLIF":return(o[0]??"")===(o[1]??"")?"":o[0]??"";case"ISNULL":return(o[0]??"")!==""?o[0]??"":o[1]??"";case"ROUND":return Zo("round",Number(o[0]??"0"),Number(o[1]??"0"));case"FLOOR":return Zo("floor",Number(o[0]??"0"),Number(o[1]??"0"));case"CEIL":return Zo("ceil",Number(o[0]??"0"),Number(o[1]??"0"));case"TRUNCATE":return Zo("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 eA(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 ea(o[0])?String(vl(o[0])+1):"";case"QUARTER":return ea(o[0])?String(Math.ceil(Number(o[0].slice(5,7))/3)):"";case"WEEK":return ea(o[0])?String(zd(o[0])):"";case"DATE_FORMAT":return Jh(o[0]??"",o[1]??"");case"DATEDIFF":return Xh(o[0]??"",o[1]??"");case"DATE_ADD":return Qh(o[0]??"",Number(o[1]??"0"),(o[2]??"DAY").toUpperCase());case"LAST_DAY":return Zh(o[0]);case"ABS":return String(Math.abs(Number(o[0]??"0")));case"MOD":{let a=Number(o[0]??"0"),s=Number(o[1]??"0");return String(s!==0?a%s:NaN)}case"POWER":return String(Math.pow(Number(o[0]??"0"),Number(o[1]??"0")));case"SQRT":return String(Math.sqrt(Number(o[0]??"0")));case"CURRENT_DATE":{let a=i.statementInstant??new Date,s=a.getFullYear(),l=String(a.getMonth()+1).padStart(2,"0"),c=String(a.getDate()).padStart(2,"0");return`${s}-${l}-${c}`}case"CURRENT_TIMESTAMP":return(i.statementInstant??new Date).toISOString()}}function Jr(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 na(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 ea(e){let t=e.slice(0,10);if(!/^\d{4}-\d{2}-\d{2}$/.test(t))return!1;let n=na(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 vl(e){return na(e).getUTCDay()}function jd(e){let t=na(e),n=t.getUTCDay()||7;return t.setUTCDate(t.getUTCDate()+4-n),t}function qh(e){return jd(e).getUTCFullYear()}function zd(e){let t=jd(e),n=t.getUTCFullYear(),r=na(`${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 Jh(e,t){if(!e||e.length<10)return"";let{y:n,mo:r,d:i,h:o,mi:a,sec:s}=Jr(e),l=ea(e);return t.replace(/%[YymcdeHiswavG]/g,c=>{switch(c){case"%Y":return n;case"%y":return n.slice(2);case"%m":return r;case"%c":return String(parseInt(r,10));case"%d":return i;case"%e":return String(parseInt(i,10));case"%H":return o;case"%i":return a;case"%s":return s;case"%w":return l?String(vl(e)):"";case"%a":return l?["\u65E5","\u6708","\u706B","\u6C34","\u6728","\u91D1","\u571F"][vl(e)]:"";case"%v":return l?String(zd(e)).padStart(2,"0"):"";case"%G":return l?String(qh(e)).padStart(4,"0"):"";default:return c}})}function Xh(e,t){if(e.length<10||t.length<10)return"0";let n=Jr(e),r=Jr(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 Qh(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}=Jr(e),a=new Date(Date.UTC(+r,+i-1,+o)),s=u=>{let p=a.getUTCDate();a.setUTCDate(1),u();let f=new Date(a.getTime());f.setUTCMonth(f.getUTCMonth()+1),f.setUTCDate(0),a.setUTCDate(Math.min(p,f.getUTCDate()))};switch(n){case"YEAR":s(()=>a.setUTCFullYear(a.getUTCFullYear()+t));break;case"MONTH":s(()=>a.setUTCMonth(a.getUTCMonth()+t));break;case"DAY":a.setUTCDate(a.getUTCDate()+t);break}let l=String(a.getUTCFullYear()).padStart(4,"0"),c=String(a.getUTCMonth()+1).padStart(2,"0"),d=String(a.getUTCDate()).padStart(2,"0");return`${l}-${c}-${d}`}function Zh(e){if(!e||e.length<10)return e;let{y:t,mo:n}=Jr(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 eA(e,t){if(/^-?\d+$/.test(t.trim()))return tA(e,Math.max(0,Number(t)));let n=t.endsWith("%"),r=t.includes(","),i=n?e*100:e,o=t.replace(/%$/,"").lastIndexOf("."),a=o>=0?t.slice(o+1).replace(/%$/,""):"",s=(a.match(/0/g)??[]).length,l=(a.match(/#/g)??[]).length,c=s+l,d=i.toFixed(c),[u,p=""]=d.split(".");l>0&&(p=p.replace(/0+$/,""));let f=r?u.replace(/\B(?=(\d{3})+(?!\d))/g,","):u,R=p?`${f}.${p}`:f;return n?R+"%":R}function tA(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 nA(e,t,n,r,i={}){return e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"?String(Xr(e,t)):e.type==="NUMBER"?z(e):String(Oe(e,t,n,r,i))}function Xr(e,t){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return t[pe(e.func,e.distinct,e.arg)]??"";if(e.type==="AGG_GROUP_KEY"){let i=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ke(t,i))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let n=Number(Xr(e.left,t)),r=Number(Xr(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 Ke(e,t){let n=e[t];if(n!==void 0)return n;let r=t.indexOf(".");if(r>0){let i=e[t.slice(r+1)];if(i!==void 0)return i}return""}function ue(e,t,n,r,i,o={}){switch(e.type){case"BOOLEAN":return e.value;case"BINARY":return rA(e,t,n,r,i,o);case"NULL_CHECK":return uA(e,t);case"LOGICAL":return cA(e,t,n,r,i,o);case"NOT":return!ue(e.expr,t,n,r,i,o);case"GROUP":return ue(e.expr,t,n,r,i,o);case"EXISTS":{let a=e.resolved;return e.not?!a:a}}}function rA(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=rf(e.left,t,n,i,o),s=e.left.type==="FIELD"?n?.(e.left):void 0,l=oA(e.left,s,i);return iA(e.op,a,e.right,t,s,n,l,i,o)}function iA(e,t,n,r,i,o,a=B("string"),s,l={}){if(e==="IN"||e==="NOT_IN"){let d=null;if(n.type==="IN_LIST"&&(lA(n.values),d=new Set(n.values.map(p=>p.type==="NUMBER"?i==="NUMBER"?z(p):String(p.value):p.value))),n.type==="SUBQUERY_IN_LIST"&&(d=n.resolved),d===null)return e==="NOT_IN";let u=sA(t,d,i);return e==="IN"?u:!u}if(e==="LIKE"){let d=Dl(n,r,o,void 0,l);return nf(t,d)}if(e==="NOT_LIKE"){let d=Dl(n,r,o,void 0,l);return!nf(t,d)}if(e==="KLIKE"||e==="NOT_KLIKE")throw new Error("KLIKE / NOT KLIKE \u306F JavaScript \u5074\u3067\u306F\u8A55\u4FA1\u3067\u304D\u307E\u305B\u3093\uFF08SIMPLE SELECT \u3067\u306E\u307F\u4F7F\u7528\u3067\u304D\u307E\u3059\uFF09");let c=Dl(n,r,o,s,l);return Ut(e,t,c,a)}var Jd=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function oA(e,t,n){if(e.type==="FIELD")return n?.(e)??(t?ne({fieldType:t}):B("string"));if(e.type==="ARITH_FIELD"||e.type==="AGG_FIELD")return B("number");if(e.type==="FUNC_FIELD")return B(Jd.has(e.expr.func)?"number":"string");if(e.type==="CASE_FIELD"){let i=[...e.expr.branches.map(o=>o.result),...e.expr.elseResult?[e.expr.elseResult]:[]].map(o=>{if(o.type==="NUMBER"||o.type==="ARITH")return B("number");if(o.type==="STRING_FUNC")return B(Jd.has(o.func)?"number":"string");if(o.type==="FIELD_REF"){let a=o.field.indexOf("."),s=a>0?{type:"FIELD",tableAlias:o.field.slice(0,a),field:o.field.slice(a+1)}:{type:"FIELD",tableAlias:null,field:o.field};return n?.(s)??B("string")}return B("string")});if(i.length>0&&i.every(o=>o.compareMode===i[0].compareMode))return i[0]}return e.type==="GROUPING_FIELD"?B("number"):B("string")}var Xd=new Set(["CHECK_BOX","MULTI_SELECT"]),Qd=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","STATUS_ASSIGNEE"]),aA=new Set(["CREATOR","MODIFIER"]);function sA(e,t,n){let r=()=>t.has(e);if(n===void 0)return r();if(n==="NUMBER"){let o=B("number");return[...t].some(a=>Ut("=",e,a,o))}let i;if(Xd.has(n)||Qd.has(n)||aA.has(n))try{i=JSON.parse(e)}catch{return r()}else return r();return Xd.has(n)?!Array.isArray(i)||!i.every(o=>typeof o=="string")?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o)):Qd.has(n)?!Array.isArray(i)||!i.every(Zd)?r():i.length===0&&t.has("")?!0:i.some(o=>t.has(o.code)):Zd(i)?t.has(i.code):r()}function Zd(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)&&typeof e.code=="string"}function lA(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}: ${Ot}`)}function uA(e,t){let n=rf(e.field,t);return e.not?n!=="":n===""}function cA(e,t,n,r,i,o={}){return e.op==="AND"?ue(e.left,t,n,r,i,o)&&ue(e.right,t,n,r,i,o):ue(e.left,t,n,r,i,o)||ue(e.right,t,n,r,i,o)}function rf(e,t,n,r,i={}){if(e.type==="FUNC_FIELD")return ye(e.expr,t,void 0,void 0,i);if(e.type==="AGG_FIELD")return String(Xr(e.expr,t));if(e.type==="ARITH_FIELD")return String(me(e.expr,t,i));if(e.type==="CASE_FIELD")return Ve(e.expr,t,n,r,i);if(e.type==="GROUPING_FIELD")return Hn(e.ref,t);if(e.aggregateRef){let a=e.aggregateRef;return Ke(t,pe(a.func,a.distinct,a.arg))}let o=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Ke(t,o)}function Dl(e,t,n,r,i={}){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"VARIABLE_IN_LIST":throw new Error(`ParseError: unresolved batch array variable @${e.name}.`);case"STRING":return e.value;case"NUMBER":return z(e);case"KINTONE_FUNC":return pA(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"?Ke(t,e.expr.field):e.expr.type==="STRING_FUNC"?ye(e.expr,t,void 0,void 0,i):String(me(e.expr,t,i));case"CASE_VALUE":return Ve(e.expr,t,n,r,i);case"ARRAY":return e.elements.map(o=>o.value).join(",")}}function Ve(e,t,n,r,i={}){for(let o of e.branches)if(ue(o.condition,t,n,void 0,r,i))return tf(o.result,t,n,r,i);return e.elseResult!==null?tf(e.elseResult,t,n,r,i):""}function qd(e,t,n,r,i={}){for(let o of e.branches)if(ue(o.condition,t,n,void 0,r,i))return ef(o.result,t,n,r,i);return e.elseResult===null?null:ef(e.elseResult,t,n,r,i)}function ef(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[pe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[yt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?me(e,t,i):Mt(e,t,n,r,i)}function tf(e,t,n,r,i={}){return e.type==="ARRAY"?e.elements.map(o=>o.value).join(","):e.type==="AGG_REF"?t[pe(e.func,e.distinct,e.arg)]??"":e.type==="AGG_ARITH"?t[yt(e)]??"":e.type==="FIELD_REF"?t[e.field]??"":e.type==="ARITH"?String(me(e,t,i)):String(Oe(e,t,n,r,i))}function of(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 pA(e){throw re(e)?new Error(`${e}: ${pn}`):Kn(e)?new Error(`${e}: ${Ot}`):new Error(`InternalError: unexpected KINTONE_FUNC name: ${e}`)}var ra=new Map,dA=200;function nf(e,t){if(!Dp(t))return e.includes(t);let n=ra.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"),ra.size>=dA&&ra.clear(),ra.set(t,n)}return n.test(e)}function ar(e){return sf(e)}function af(e){return sf(e.flatMap(t=>t.rules.map(n=>n.condition)))}function sf(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 Le("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 Le("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 Le(e){return new S(e,{kind:"EOF",value:"CHECK",pos:0})}function ia(e,t,n){let r=[];return e.forEach((i,o)=>{for(let a of i.rules){if(!ue(a.condition,t,n))continue;let s=Oe(a.message,t);r.push({groupIndex:o,message:s==null?"":String(s)});break}}),r}function Ul(e){if(zt(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 fA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),EA=new Set(["CHECK_BOX","MULTI_SELECT"]);function Zr(e,t=new Map,n={}){let r=e.values.map(i=>RA(e.fields,i,t,n));return ni(r,100).map(i=>({app:e.appId,records:i}))}function RA(e,t,n,r){let i={};return e.forEach((o,a)=>{let s=t[a];s.type==="CASE_VALUE"?i[o]={value:xt(s.expr,{},n.get(o),r)}:i[o]={value:ht(s,n.get(o))}}),i}function ei(e){Ul(e.where);let t=hf(e);return{app:e.appId,query:j(e.where),fields:["$id",...t],totalCount:!1}}function ti(e,t,n=new Map){let r=mA(e.assignments,n);return ni(t,100).map(i=>({app:e.appId,records:i.map(o=>({id:o,record:r}))}))}function mA(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:ht(i,t.get(r))});return n}function pf(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 sa(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 Ml(e){Ul(e.where);let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"?df(n,t):n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP"?sr(n,t):n.type==="STRING_FUNC"?xl(n,t):n.type==="CASE_VALUE"&&ff(n.expr,t);return hf(e).forEach(n=>t.add(n)),{app:e.appId,query:j(e.where),fields:["$id",...t],totalCount:!1}}function df(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 DML field collection.`);e.type==="FIELD_REF"?t.add(e.field):e.type==="ARITH"?df(e,t):e.type==="STRING_FUNC"&&xl(e,t)}function xl(e,t){for(let n of e.args)yA(n,t)}function yA(e,t){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"||e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"){aa(e,t);return}sr(e,t)}function sr(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){xl(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){sr(e.left,t),sr(e.right,t);return}e.type==="CASE_WHEN"&&ff(e,t)}function aa(e,t){if(e.type==="AGG_REF"){e.arg.type!=="WILDCARD"&&gA(e.arg,t);return}e.type==="AGG_ARITH"&&(aa(e.left,t),aa(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field)}function gA(e,t){e.type==="FIELD_REF"||e.type==="ARITH"?Qr(e,t):sr(e,t)}function lf(e,t){if(e.type!=="ARRAY"){if(e.type==="AGG_REF"||e.type==="AGG_ARITH"){aa(e,t);return}if(e.type==="FIELD_REF"||e.type==="ARITH"){Qr(e,t);return}sr(e,t)}}function ff(e,t){for(let n of e.branches)oa(n.condition,t),lf(n.result,t);e.elseResult!==null&&lf(e.elseResult,t)}function oa(e,t){switch(e.type){case"BINARY":e.left.type==="FIELD"?t.add(e.left.field):e.left.type==="ARITH_FIELD"&&Qr(e.left.expr,t);break;case"NULL_CHECK":e.field.type==="FIELD"&&t.add(e.field.field);break;case"LOGICAL":oa(e.left,t),oa(e.right,t);break;case"NOT":case"GROUP":oa(e.expr,t);break;case"EXISTS":case"BOOLEAN":break}}function kl(e,t,n=new Map,r={}){let i=t.map(o=>{let a=Number(o.$id.value),s=Ef(o),l={};for(let{field:c,value:d}of e.assignments)l[c]={value:Fl(d,s,n.get(c),o,r)};return{id:a,record:l}});return ni(i,100).map(o=>({app:e.appId,records:o}))}function Fl(e,t,n,r,i={}){if(e.type==="ARITH")return String(r?Gl(e,r):me(e,t,i));if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")return String(Oe(e,t,void 0,void 0,i));if(e.type==="STRING_FUNC")return ye(e,t,void 0,void 0,i);if(e.type==="CASE_VALUE")return xt(e.expr,t,n,i);if(e.type==="SOURCE_FIELD")throw new oe("SOURCE_FIELD \u306F UPDATE ... FROM \u5C02\u7528\u3067\u3059");return ht(e,n)}function la(e,t,n,r={}){if(e.type==="STRING")return e.value;if(e.type==="NUMBER")return z(e);if(e.type==="ARITH")return String(me(e,t,r));if(e.type==="CASE_VALUE")return Ve(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 hA=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);function Kl(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=Ef(o),c={};for(let{field:d,value:u}of e.assignments){let p=n.get(d);if(u.type==="SOURCE_FIELD"){if(hA.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: ${d}\uFF09`);if(!Object.prototype.hasOwnProperty.call(a,u.field))throw new oe(`UPDATE ... FROM \u306E\u30BD\u30FC\u30B9\u5217 ${u.field} \u304C\u5B58\u5728\u3057\u307E\u305B\u3093`);let f=a[u.field];if(typeof f!="string")throw new oe(`UPDATE ... FROM \u306E SOURCE_FIELD \u306F\u30B9\u30AB\u30E9\u30FC\u5024\u306E\u307F\u5BFE\u5FDC\u3057\u3066\u3044\u307E\u3059\uFF08\u5217: ${u.field}\uFF09`);if((p==="NUMBER"||p==="CALC")&&f!==""&&!Number.isFinite(Number(f)))throw new oe(`\u6570\u5024\u30D5\u30A3\u30FC\u30EB\u30C9 ${d} \u306B\u5909\u63DB\u3067\u304D\u306A\u3044\u5024\u3067\u3059: ${f}`);c[d]={value:ht({type:"STRING",value:f},p)}}else{if(u.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");u.type==="ARITH"?c[d]={value:String(Gl(u,o))}:u.type==="SCALAR_ARITH"||u.type==="CONCAT_OP"?c[d]={value:String(Oe(u,l,void 0,void 0,r))}:u.type==="CASE_VALUE"?c[d]={value:xt(u.expr,l,p,r)}:c[d]={value:ht(u,p)}}}return{id:s,record:c}});return ni(i,100).map(o=>({app:e.appId,records:o}))}function Ef(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,typeof n.value=="string"?n.value:JSON.stringify(n.value??"")]))}function Gl(e,t){let n=uf(e.left,t),r=uf(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 uf(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 Gl(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 $l(e){return Ul(e.where),{app:e.appId,query:j(e.where),fields:["$id"],totalCount:!1}}function Rf(e,t){return ni(t,100).map(n=>({app:e,ids:n}))}function mf(e){return fA.has(e??"")}function AA(e){return EA.has(e??"")}function SA(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 TA(e){return!e||/^\d{4}-\d{2}-\d{2}$/.test(e)?e:e.replace(/\//g,"-")}function yf(e,t){return mf(t)?e===""?[]:e.split(",").map(n=>({code:n.trim()})):AA(t)?e===""?[]:e.split(",").map(n=>n.trim()):t==="DATETIME"?SA(e):t==="DATE"?TA(e):e}function gf(e,t){return mf(t)?e.map(n=>({code:n})):e}function cf(e,t,n,r){if(e.type==="ARRAY")return gf(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"?yf(e.value,n):e.type==="STRING_FUNC"?ye(e,t,void 0,void 0,r):e.type==="FIELD_REF"||e.type==="ARITH"?String(me(e,t,r)):String(Oe(e,t,void 0,void 0,r))}function hf(e){if(!e.checkGroups)return[];let t=`app${e.appId}`.toLowerCase();return[...new Set(ar(e.checkGroups).filter(n=>n.tableAlias===null||n.tableAlias.toLowerCase()===t).map(n=>n.field).filter(n=>n!=="$id"))]}function xt(e,t,n,r={}){for(let i of e.branches)if(ue(i.condition,t,void 0,void 0,void 0,r))return cf(i.result,t,n,r);return e.elseResult!==null?cf(e.elseResult,t,n,r):""}function ht(e,t){let n=Bl(e,t);if(!n.ok)throw new oe(n.message);return n.value}function Bl(e,t){try{return{ok:!0,value:IA(e,t)}}catch(n){return{ok:!1,message:n instanceof Error?n.message:String(n)}}}function IA(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 yf(e.value,t);case"NUMBER":return z(e);case"ARRAY":return gf(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 ni(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 Vl=new Set(["CHECK_BOX","MULTI_SELECT"]),wA=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function ri(e){throw new Error(`ArgumentError: ${e}`)}function Af(e,t,n){let r=bA(n.fieldType,e.field),i=NA(t,r,e.field),o=new Set(i),a=[],s=new Set,l=new Set;for(let y of e.operations){let g=y.value;g!==""&&(y.kind==="ADD"?(s.has(g)||a.push(g),s.add(g)):l.add(g))}for(let y of s)l.has(y)&&ri(`APPLY multi-value field ${e.field} has conflicting ADD and REMOVE for ${JSON.stringify(y)}.`);let c=i.filter(y=>!l.has(y)),d=a.filter(y=>!o.has(y)),u=[...c,...d],p=new Set(i.filter(y=>l.has(y))).size,f=new Set,R=new Set,E=e.operations.map(y=>{let g=y.kind==="ADD"?f:R,T=!g.has(y.value);return g.add(y.value),{kind:y.kind,value:y.value,changed:y.value!==""&&T&&(y.kind==="ADD"?!o.has(y.value):o.has(y.value))}}),m=Vl.has(r)?u:u.map(y=>({code:y}));return{field:e.field,fieldType:r,operations:E,postImageValue:m,addedValues:d.length,removedValues:p,changedValues:d.length+p}}function bA(e,t){return Vl.has(e)||wA.has(e)?e:ri(`APPLY multi-value target ${t} has unsupported type ${e}.`)}function NA(e,t,n){if(!Array.isArray(e))return ri(`APPLY snapshot for ${n} must be an array.`);let r=e.map((i,o)=>Vl.has(t)?typeof i!="string"?ri(`APPLY snapshot for ${n} must contain string values (item ${o+1}).`):i:typeof i!="object"||i===null||typeof i.code!="string"?ri(`APPLY snapshot for ${n} must contain {code: string} values (item ${o+1}).`):i.code);return[...new Set(r.filter(i=>i!==""))]}function J(e){throw new Error(`ArgumentError: ${e}`)}function Yl(e){let t=e.where;return t.type!=="BINARY"||t.op!=="="||t.left.type!=="FIELD"||t.left.tableAlias!==null||t.left.field!=="$id"||t.right.type!=="NUMBER"||!Number.isSafeInteger(t.right.value)||t.right.value<=0?J("APPLY parent selector must be a single positive $id."):t.right.value}function kt(e,t){let n=e.applyBlocks;if(!n?.length)return J("APPLY block is missing.");let r=new Map(t.map(s=>[s.code,s])),i=new Map,o=new Map,a=new Map;for(let s of e.assignments)Wl(s.field,null,r),CA(s.value,r);for(let s of n){(i.has(s.field)||o.has(s.field))&&J(`APPLY has more than one block for field ${s.field}.`),e.assignments.some(u=>u.field===s.field)&&J(`APPLY target ${s.field} is also assigned by parent SET.`);let l=t.find(u=>u.code===s.field&&!u.inSubtable);if(!l)return s.targetKind==="SUBTABLE"?J(`APPLY target ${s.field} is not a SUBTABLE.`):J(`APPLY target ${s.field} does not exist as a top-level field.`);if(gd(s,l.fieldType),s.targetKind==="MULTI_VALUE"){l.writable===!1&&J(`APPLY target ${s.field} is not writable (${l.fieldType}).`),o.set(s.field,l);continue}let c=l,d=new Map(t.filter(u=>u.inSubtable&&u.subtableCode===s.field).map(u=>[u.code,u]));i.set(s.field,c),a.set(s.field,d);for(let u of s.operations)if(u.kind==="PATCH"){for(let p of u.assignments)Wl(p.field,s.field,r,d),Hl(p.value,s.field,r,d);u.selector.kind==="WHERE"&&Hl(u.selector.where,s.field,r,d)}else if(u.kind==="APPEND"){let p=new Set;for(let f of u.fields)p.has(f)&&J(`APPLY APPEND specifies child ${f} more than once.`),p.add(f),Wl(f,s.field,r,d)}else u.kind==="REMOVE"&&u.selector.kind==="WHERE"&&Hl(u.selector.where,s.field,r,d)}return{targetTables:i,targetMultiValueFields:o,childrenByTable:a,fieldsByCode:r}}function CA(e,t){ii(e,n=>{if(n==="$id"||n==="$revision")return;let r=t.get(n);(!r||r.inSubtable)&&J(`APPLY parent reference ${n} is not a top-level field.`),r.fieldType==="FILE"&&J(`APPLY parent FILE reference ${n} is not supported.`)})}function Wl(e,t,n,r){(e.startsWith("_")||e.startsWith("$"))&&J(`APPLY assignment target ${e} is a system field.`);let i=t===null?[...n.values()].find(o=>o.code===e&&!o.inSubtable):r?.get(e);if(!i){let o=n.get(e);t!==null&&o?.inSubtable&&J(`APPLY child ${e} does not belong to subtable ${t}.`),J(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1)&&J(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Hl(e,t,n,r){ii(e,i=>{if(i==="_rid"||i==="_idx"||r.has(i))return;n.get(i)?.inSubtable&&J(`APPLY child reference ${i} does not belong to subtable ${t}.`),J(`APPLY child reference ${i} does not exist in subtable ${t}.`)})}function ua(e,t){let n=kt(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)ii(i.value,o=>{let a=n.fieldsByCode.get(o);!a?.inSubtable&&a?.fieldType!=="FILE"&&r.add(o)});return[...r]}function ca(e,t){let n={_rid:e.id??"",_idx:String(t)};for(let[r,i]of Object.entries(e.value??{}))n[r]=Nf(i?.value);return n}function Tf(e){let{statement:t,snapshot:n,fieldInfos:r}=e,i=e.metadata??kt(t,r),o=ql(n.$id?.value,"APPLY snapshot $id"),a=Yl(t);return o!==a&&J(`APPLY snapshot $id ${o} does not match requested $id ${a}.`),wf(t,n,i,o,e.evaluationContext)}function If(e,t,n,r=kt(e,n),i={}){let o=new Set;return t.map(a=>{let s=ql(a.$id?.value,"APPLY snapshot $id");return o.has(s)&&J(`APPLY snapshots contain duplicate parentId ${s}.`),o.add(s),wf(e,a,r,s,i)})}function wf(e,t,n,r,i={}){let o=ql(t.$revision?.value,"APPLY snapshot $revision"),a=[],s=[];for(let u of e.applyBlocks){if(u.targetKind==="MULTI_VALUE"){let C=n.targetMultiValueFields.get(u.field);C||J(`APPLY multi-value metadata for ${u.field} is missing.`),s.push(Af(u,t[u.field]?.value,C));continue}let p=n.childrenByTable.get(u.field),f=DA(t,u.field),R=new Set;for(let C of f)C.id||J(`APPLY snapshot for ${u.field} contains a row without _rid.`),R.has(C.id)&&J(`APPLY snapshot for ${u.field} contains duplicate _rid ${C.id}.`),R.add(C.id);let E=C=>C.field==="_rid"?"SINGLE_LINE_TEXT":C.field==="_idx"?"NUMBER":p.get(C.field)?.fieldType,m=[],y=[],g=[],T=new Set,h=new Set,I=new Set,N=u.operations.some(C=>C.kind==="REMOVE");for(let[C,D]of u.operations.entries()){if(D.kind==="APPEND"){let _=jl(D,p,u.field,i);g.push({kind:"APPEND",addedRows:_.length}),y.push(..._);continue}if(D.kind==="REMOVE"){let _=LA(D,f,E,u.field,i);D.expectRows&&Sf(D.expectRows,_.length,r,u.field,C,D.kind),g.push({kind:"REMOVE",removedRows:_.length});for(let A of _){let w=f[A].id;h.has(A)&&J(`APPLY row ${w} is selected by both PATCH and REMOVE.`),I.has(A)&&J(`APPLY removes row ${w} more than once.`),I.add(A)}continue}if(D.kind!=="PATCH")continue;let b=OA(D,f,E,u.field,i);D.expectRows&&Sf(D.expectRows,b.length,r,u.field,C,D.kind),g.push({kind:"PATCH",matchedRows:b.length,changedRows:b.length});for(let _ of b){let A=f[_];I.has(_)&&J(`APPLY row ${A.id} is selected by both PATCH and REMOVE.`),h.add(_);let w=ca(A,_);for(let M of D.assignments){let O=`${A.id}\0${M.field}`;T.has(O)&&J(`APPLY patches cell ${A.id}.${M.field} more than once.`),T.add(O),m.push({rowIndex:_,field:M.field,value:la(M.value,w,E,i)})}}}let v=new Map;for(let C of m){let D=v.get(C.rowIndex)??{};D[C.field]={value:C.value},v.set(C.rowIndex,D)}let x=[...f.flatMap((C,D)=>I.has(D)?[]:[{id:C.id,value:{...C.value,...v.get(D)??{}}}]),...y],U={table:u.field,operations:g,changedSubtableRows:v.size+I.size+y.length,deletedRows:I.size,snapshotRowIds:f.map(C=>C.id),postImageRows:x};N?a.push({...U,payloadShape:"FULL_SURVIVORS",removedRowIds:f.flatMap((C,D)=>I.has(D)?[C.id]:[]),payloadRows:x.map(C=>({...C.id===void 0?{}:{id:C.id},value:C.value}))}):a.push({...U,payloadShape:"PATCH_ONLY",payloadRows:[...f.map((C,D)=>{let b=v.get(D);return b?{id:C.id,value:b}:{id:C.id}}),...y.map(C=>({value:C.value}))]})}let l=UA(t),c={};for(let u of e.assignments){let p=n.fieldsByCode.get(u.field)?.fieldType;c[u.field]={value:Fl(u.value,l,p,t,i)}}let d={...t};Object.assign(d,c);for(let u of a)d[u.table]={value:u.postImageRows};for(let u of s)d[u.field]={value:u.postImageValue};return{app:e.appId,parentId:r,revision:o,parentRows:1,changedSubtableRows:a.reduce((u,p)=>u+p.changedSubtableRows,0),parentValues:c,postImage:d,tables:a,multiValues:s}}function Sf(e,t,n,r,i,o){if(e.kind==="EXACT"?t===e.count:e.kind==="BETWEEN"?t>=e.min&&t<=e.max:e.kind==="AT_LEAST"?t>=e.count:t<=e.count)return;let s=e.kind==="EXACT"?`exactly ${e.count}`:e.kind==="BETWEEN"?`between ${e.min} and ${e.max}`:e.kind==="AT_LEAST"?`at least ${e.count}`:`at most ${e.count}`;J(`APPLY EXPECT ROWS mismatch for parent $id ${n}, table ${r}, operation ${i+1} (${o}): expected ${s}, actual ${t}.`)}function pa(e,t){let n=e.tables.map(o=>{let a=t[o.table]?.value;if(!Array.isArray(a)||a.length!==o.postImageRows.length)return J(`APPLY normalized post-image for ${o.table} has an unexpected row count.`);let s=o.payloadRows.map((l,c)=>{let d=a[c];return d?.value?l.id===void 0?{value:d.value}:l.value===void 0?{id:l.id}:{id:l.id,value:Object.fromEntries(Object.keys(l.value).map(u=>[u,d.value[u]]))}:J(`APPLY normalized post-image for ${o.table} row ${c+1} has no value.`)});return{...o,payloadRows:s,postImageRows:a}}),r=Object.fromEntries(Object.keys(e.parentValues).map(o=>[o,t[o]??e.parentValues[o]])),i=e.multiValues.map(o=>{let a=t[o.field]?.value;return Array.isArray(a)?{...o,postImageValue:a}:J(`APPLY normalized post-image for ${o.field} is not an array.`)});return{...e,parentValues:r,tables:n,multiValues:i,postImage:t}}function jl(e,t,n,r={}){return e.values.map(i=>({value:PA(e,i,t,n,r)}))}function PA(e,t,n,r,i){if(t.length!==e.fields.length)return J(`APPLY APPEND for ${r} has ${t.length} values for ${e.fields.length} fields.`);let o=new Map(e.fields.map((s,l)=>[s,t[l]])),a={};for(let s of n.values()){if(s.fieldType==="FILE"||s.writable===!1)continue;let l=o.get(s.code);a[s.code]={value:l===void 0?zl(s):l.type==="CASE_VALUE"?xt(l.expr,{},s.fieldType,i):ht(l,s.fieldType)}}return a}function zl(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 OA(e,t,n,r,i={}){return bf(e.selector,t,n,r,i)}function LA(e,t,n,r,i={}){return bf(e.selector,t,n,r,i)}function bf(e,t,n,r,i={}){if(e.kind==="ALL_ROWS")return t.map((c,d)=>d);let o=e.where,a=t.flatMap((c,d)=>ue(o,ca(c,d),n,void 0,void 0,i)?[d]:[]),s=_A(o);s!==null&&a.length===0&&J(`APPLY _rid ${s} does not exist in snapshot table ${r}.`);let l=vA(o);return l!==null&&a.length===0&&J(`APPLY _idx ${l} does not exist in snapshot table ${r}.`),a}function _A(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 vA(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 DA(e,t){let n=e[t]?.value;return Array.isArray(n)?n.map(r=>{let i=r;return{id:typeof i.id=="string"?i.id:"",value:i.value&&typeof i.value=="object"?i.value:{}}}):J(`APPLY snapshot field ${t} is not a subtable value.`)}function ql(e,t){let n=Number(e);return(!Number.isSafeInteger(n)||n<=0)&&J(`${t} must be a positive integer.`),n}function UA(e){let t={};for(let[n,r]of Object.entries(e))t[n]=Nf(r?.value);return t}function Nf(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function ii(e,t){if(Array.isArray(e)){e.forEach(r=>ii(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))ii(r,t)}function fe(e){throw new Error(`ArgumentError: ${e}`)}function fa(e){let t=Number(e.$revision?.value);return!Number.isSafeInteger(t)||t<=0?fe("APPLY snapshot $revision must be a positive integer."):t}function oi(e){if(!Number.isSafeInteger(e.parentId)||e.parentId<=0)return fe("APPLY plan parentId must be a positive integer.");if(!Number.isSafeInteger(e.revision)||e.revision<=0)return fe("APPLY plan revision must be a positive integer.");let t={...e.parentValues},n=new Set(Object.keys(t));for(let i of e.multiValues)n.has(i.field)&&fe(`APPLY plan contains duplicate top-level field ${i.field}.`),n.add(i.field),t[i.field]={value:i.postImageValue};let r=new Set;for(let i of e.tables)n.has(i.table)&&fe(`APPLY plan contains duplicate top-level field ${i.table}.`),r.has(i.table)&&fe(`APPLY plan contains duplicate table ${i.table}.`),r.add(i.table),n.add(i.table),MA(i),t[i.table]={value:i.payloadRows};return{app:e.app,records:[{id:e.parentId,revision:e.revision,record:t}]}}function Cf(e){if(e.records.length===0)return[];let t=e.plans[0]?.app;if(!Number.isSafeInteger(t)||t<=0||e.plans.length!==e.records.length)return fe("prepared APPLY plans and records must have the same positive-app parent count.");let n=[];for(let r=0;r<e.records.length;r+=100)n.push({app:t,records:e.records.slice(r,r+100)});return n}function MA(e){let t=Jl(e.snapshotRowIds,`${e.table} snapshot`),n=e.payloadRows.flatMap(d=>d.id===void 0?[]:[d.id]);for(let d of e.payloadRows)d.id===void 0&&d.value===void 0&&fe(`APPLY ${e.payloadShape} table ${e.table} contains an APPEND row without value.`);if(Jl(n,`${e.table} payload`),e.payloadShape==="PATCH_ONLY"){e.operations.some(p=>p.kind==="REMOVE")&&fe(`APPLY PATCH_ONLY table ${e.table} cannot contain REMOVE.`);let d=e.payloadRows.slice(0,t.length).map(p=>p.id??"");da(t,d,`APPLY PATCH_ONLY table ${e.table} must retain every snapshot row id in order.`),e.payloadRows.slice(t.length).some(p=>p.id!==void 0)&&fe(`APPLY PATCH_ONLY table ${e.table} must place every APPEND row after snapshot rows.`);let u=e.postImageRows.slice(0,t.length).map(p=>p.id??"");da(t,u,`APPLY PATCH_ONLY table ${e.table} post-image must retain every snapshot row id in order.`),e.postImageRows.slice(t.length).some(p=>p.id!==void 0)&&fe(`APPLY PATCH_ONLY table ${e.table} post-image must place every APPEND row after snapshot rows.`);return}e.operations.some(d=>d.kind==="REMOVE")||fe(`APPLY FULL_SURVIVORS table ${e.table} requires a REMOVE operation.`);let r=Jl(e.removedRowIds,`${e.table} removed`);e.deletedRows!==r.length&&fe(`APPLY FULL_SURVIVORS table ${e.table} deleted row count does not match removed ids.`),e.payloadRows.length!==e.postImageRows.length&&fe(`APPLY FULL_SURVIVORS table ${e.table} payload/post-image row counts must match.`);let i=e.postImageRows.flatMap(d=>d.id===void 0?[]:[d.id]),o=new Set(r),a=new Set(i);for(let d of r)a.has(d)&&fe(`APPLY FULL_SURVIVORS table ${e.table} has intersecting survivor/removed id ${d}.`);let s=t.filter(d=>!o.has(d));da(s,i,`APPLY FULL_SURVIVORS table ${e.table} must retain every survivor in snapshot order.`);let l=e.payloadRows.slice(0,i.length).map(d=>d.id??"");da(i,l,`APPLY FULL_SURVIVORS table ${e.table} payload must enumerate every survivor in order.`),(e.payloadRows.slice(i.length).some(d=>d.id!==void 0)||e.postImageRows.slice(i.length).some(d=>d.id!==void 0))&&fe(`APPLY FULL_SURVIVORS table ${e.table} must place every APPEND row after survivors.`),e.payloadRows.some(d=>d.value===void 0)&&fe(`APPLY FULL_SURVIVORS table ${e.table} requires values for every survivor.`),e.payloadRows.some((d,u)=>!Xl(d.value,e.postImageRows[u]?.value))&&fe(`APPLY FULL_SURVIVORS table ${e.table} payload must contain every post-image child value.`);let c=new Set([...i,...r]);(c.size!==t.length||t.some(d=>!c.has(d)))&&fe(`APPLY FULL_SURVIVORS table ${e.table} does not partition every snapshot row.`)}function Jl(e,t){let n=[...e],r=new Set;for(let i of n)i||fe(`APPLY ${t} contains an empty row id.`),r.has(i)&&fe(`APPLY ${t} contains duplicate row id ${i}.`),r.add(i);return n}function da(e,t,n){(e.length!==t.length||e.some((r,i)=>r!==t[i]))&&fe(n)}function Xl(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)=>Xl(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)&&Xl(n[a],r[a]))}function Pf(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 Of(e){let t=e.numberPrecision;if(t==null||typeof t!="object")throw new Error("SettingsError: numberPrecision is missing from app settings.");let n=Pf(t.digits,"digits",1,30),r=Pf(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 Lf(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 xA=new Set(["CHECK_BOX","MULTI_SELECT"]),kA=new Set(["DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT"]);function We(e,t,n){if(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME"){let i=FA(e);if(i!==""&&!KA(i,t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`}}let r;try{r=ai(e,t.fieldType)}catch(i){let o=i instanceof Error?i.message:String(i);return{ok:!1,code:GA(t.fieldType),message:o}}if(t.required&&Ea(r))return{ok:!1,code:"ERR_REQUIRED",message:`${t.code} \u306F\u5FC5\u9808\u3067\u3059`};if(!Ea(r)&&t.fieldType==="NUMBER"){let i=String(r),o=be(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&&Eo(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&&Eo(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}=Lf(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(!Ea(r)&&(t.fieldType==="DATE"||t.fieldType==="TIME"||t.fieldType==="DATETIME")&&!gn(String(r),t.fieldType))return{ok:!1,code:"ERR_TYPE_DATE",message:`${t.code} \u306E\u65E5\u4ED8\u30FB\u6642\u523B\u5F62\u5F0F\u304C\u4E0D\u6B63\u3067\u3059`};if(typeof r=="string"){let i=r.length,o=t.minLength==null?null:Number(t.minLength),a=t.maxLength==null?null:Number(t.maxLength);if(Number.isFinite(o)&&i<o)return{ok:!1,code:"ERR_LENGTH_MIN",message:`${t.code} \u306F ${o} \u6587\u5B57\u4EE5\u4E0A\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`};if(Number.isFinite(a)&&i>a)return{ok:!1,code:"ERR_LENGTH_MAX",message:`${t.code} \u306F ${a} \u6587\u5B57\u4EE5\u4E0B\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044`}}return!Ea(r)&&kA.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 FA(e){return e==null?"":Ra(e)&&e.type==="NUMBER"?z(e):Ra(e)&&e.type==="STRING"?e.value:typeof e=="string"||typeof e=="number"?String(e):""}function KA(e,t){if(t==="DATE")return gn(e.replace(/\//g,"-"),"DATE");if(t==="TIME")return gn(e,"TIME");let n=e.replace(/\//g,"-").replace(" ","T");return/T\d{2}:\d{2}$/.test(n)&&(n+=":00"),/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(n)?gn(n.slice(0,10),"DATE")&&gn(n.slice(11),"TIME"):gn(n,"DATETIME")}function ai(e,t){if(Ra(e)){let r=Bl(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(xA.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 Ra(e){return typeof e=="object"&&e!==null&&typeof e.type=="string"}function hn(e){if(e==null||e==="")return!0;if(Array.isArray(e))return e.length===0;if(Ra(e)){if(e.type==="STRING")return e.value==="";if(e.type==="ARRAY")return e.elements.length===0}return!1}function Ea(e){return e===""||Array.isArray(e)&&e.length===0}function GA(e){return e==="NUMBER"?"ERR_TYPE_NUMBER":"ERR_TYPE_DATE"}function gn(e,t){if(t==="TIME"){let c=/^(\d{2}):(\d{2})(?::(\d{2}))?$/.exec(e);return c!==null&&Number(c[1])<=23&&Number(c[2])<=59&&Number(c[3]??0)<=59}let n=t==="DATE"?e:e.slice(0,10),r=/^(\d{4})-(\d{2})-(\d{2})$/.exec(n);if(!r)return!1;let i=Number(r[1]),o=Number(r[2]),a=Number(r[3]),s=new Date(Date.UTC(i,o-1,a));if(s.getUTCFullYear()!==i||s.getUTCMonth()!==o-1||s.getUTCDate()!==a)return!1;if(t==="DATE")return!0;let l=e.slice(11,e.endsWith("Z")?-1:e.length-6).replace(/\.\d+$/,"");return/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2})?(?:\.\d+)?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&gn(l,"TIME")}var lr=["$err_statement","$err_operation","$err_row","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id"];function Ql(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(d=>typeof d=="object"&&d!==null&&"code"in d),c=a;try{c=ai(a,s)}catch{}i.record[o]={value:l?a:c}}}}function Zl(e,t,n,r,i,o,a,s=[],l=!0,c=!0,d={}){let u=new Map(i.map(m=>[m.code,m])),p=[],f=new Set,R=[];d.validateUpdateBuiltIns===!1&&Ql(e,r,i);let E;for(let m of e){m.record??={};let y=c?[...m.preErrors]:[],g=[],T=[],h=m.mode==="create"||d.validateUpdateBuiltIns!==!1;for(let P of r){if(!m.payload.has(P))continue;let x=m.payload.get(P),U=u.get(P).fieldType,C=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(U)&&Array.isArray(x)&&x.every(b=>typeof b=="object"&&b!==null&&"code"in b);if(!h)continue;let D=We(x,u.get(P),a);D.ok?m.record[P]={value:C?x:D.value}:g.push({field:P,code:D.code,message:D.message})}if(l&&m.mode==="create")for(let P of i){if(P.inSubtable||m.payload.has(P.code))continue;if(hn(P.defaultValue)){let U=We("",P,a);U.ok?P.required&&g.push({field:P.code,code:"ERR_REQUIRED",message:`${P.code} \u306F\u5FC5\u9808\u3067\u3059`}):g.push({field:P.code,code:U.code,message:U.message})}else{let U=We(P.defaultValue,P,a);U.ok||g.push({field:P.code,code:U.code,message:`\u65E2\u5B9A\u5024: ${U.message}`})}}if(s.length>0){let P=m.evaluationRow??Object.fromEntries([...m.payload].map(([C,D])=>[C,Xe(D)])),x=m.evaluationFieldTypes,U=C=>{let D=C.tableAlias?`${C.tableAlias}.${C.field}`:C.field;return x?.get(D)??x?.get(C.field)};try{for(let C of ia(s,P,U))T.push({field:"",code:"ERR_CHECK",message:C.message})}catch(C){E??=C}}let I=P=>P.map(x=>{let U={};for(let C of n)U[C]=Xe(m.payload.get(C));return U.$err_statement=String(o),U.$err_operation=t,U.$err_row=String(m.rowNumber),U.$err_field=x.field,U.$err_code=x.code,U.$err_message=x.message,U.$err_value="",U.$err_subtable="",U.$err_subrow="",U.$err_subrow_id="",U}),N={rowNumber:m.rowNumber,preErrors:I(y),builtInErrors:I(g),checkErrors:I(T)};R.push(N);let v=[...N.preErrors,...N.builtInErrors,...N.checkErrors];v.length>0&&f.add(m.rowNumber),p.push(...v)}if(E!==void 0)throw E;return{errors:p,invalidRows:f.size,invalidRowNumbers:f,candidateResults:R}}function Xe(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 eu=["required","length","range","choice"];function tu(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 nu(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 $A(e){return tu(e).length>0}function BA(e){return e.fieldType==="NUMBER"||$A(e)}function ma(e,t,n){return{subtable:e,subrow:t+1,subrowId:String(n.id??"")}}function ru(e,t){let{topByCode:n,childrenByTable:r}=nu(t),i=BA;if(e.targets===void 0)return[...t.filter(l=>!l.inSubtable&&l.fieldType!=="SUBTABLE"&&i(l)),...t.filter(l=>l.inSubtable&&!!l.subtableCode&&i(l))].map(l=>({field:l,...l.subtableCode?{subtableCode:l.subtableCode}:{}}));let o=[],a=new Set,s=(l,c)=>{let d=c?`${c}\0${l.code}`:l.code;if(a.has(d))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059\u3002`);if(a.add(d),!i(l))throw new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${l.code} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5236\u7D04\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);o.push({field:l,...c?{subtableCode:c}:{}})};for(let l of e.targets){if(l.kind==="SUBTABLE"){let u=r.get(l.subtableCode);if(!u)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`);if(l.children.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u306F1\u3064\u4EE5\u4E0A\u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u5FC5\u8981\u3067\u3059\u3002`);for(let p of l.children){let f=u.find(R=>R.code===p);if(!f){let R=[...r.entries()].some(([E,m])=>E!==l.subtableCode&&m.some(y=>y.code===p));throw new Error(R?`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5C5E\u3057\u3066\u3044\u307E\u305B\u3093\u3002`:`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${p} \u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${l.subtableCode} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}s(f,l.subtableCode)}continue}let c=l.field;if(c==="$id")throw new Error("ArgumentError: VALIDATE \u3067\u306F\u30B7\u30B9\u30C6\u30E0\u30D5\u30A3\u30FC\u30EB\u30C9 $id \u3092\u76E3\u67FB\u3067\u304D\u307E\u305B\u3093\u3002");let d=n.get(c);if(d?.fieldType==="SUBTABLE"){let u=(r.get(c)??[]).filter(i);if(u.length===0)throw new Error(`ArgumentError: VALIDATE \u306E\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB ${c} \u306B\u306F\u76E3\u67FB\u53EF\u80FD\u306A\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9\u304C\u3042\u308A\u307E\u305B\u3093\u3002`);u.forEach(p=>s(p,c));continue}if(d){s(d);continue}throw[...r.values()].some(u=>u.some(p=>p.code===c))?new Error(`ArgumentError: VALIDATE \u306E\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u6240\u6709\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u3092\u542B\u3080 T(${c}) \u5F62\u5F0F\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\u3002`):new Error(`ArgumentError: VALIDATE \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${c} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093\u3002`)}return o}function si(e,t){return hn(e)?"":Xe(ai(e,t))}var VA=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]),li=lr;function At(e,t=["$id"]){let n=nu(e),r=n.topLevel.filter(o=>o.fieldType!=="SUBTABLE"&&o.fieldType!=="FILE"&&!VA.has(o.fieldType)),i=new Map;for(let[o,a]of n.childrenByTable)i.set(o,a.filter(s=>s.fieldType!=="FILE"));return{topLevel:r,subtables:i,payloadFields:["$id",...new Set(t.filter(o=>o!=="$id"))]}}function An(e,t){if(t.topLevel.some(n=>n.fieldType==="NUMBER"&&n.code in e))return!0;for(let[n,r]of t.subtables){if(!r.some(o=>o.fieldType==="NUMBER"))continue;let i=e[n]?.value;if(Array.isArray(i))for(let o of i){let a=o?.value;if(r.some(s=>s.fieldType==="NUMBER"&&!!a&&s.code in a))return!0}}return!1}function Sn(e,t,n,r,i=1,o="UPDATE"){let a=WA(e),s=[],l=new Set,c=[...t.payloadFields,...li],d=Xe(e.$id?.value),u=(p,f,R,E)=>{l.add(i);let m={};for(let y of t.payloadFields)m[y]=y==="$id"?d:Xe(e[y]?.value);m.$err_statement=String(r),m.$err_operation=o,m.$err_row=String(i),m.$err_field=p.code,m.$err_code=R.code,m.$err_message=R.message,m.$err_value=si(f,p.fieldType),m.$err_subtable=E?.subtable??"",m.$err_subrow=E?String(E.subrow):"",m.$err_subrow_id=E?.subrowId??"",s.push(m)};for(let p of t.topLevel){let f=e[p.code]?.value,R=We(f,p,n);R.ok?a[p.code]={value:_f(f,p.fieldType,R.value)}:u(p,f,R)}for(let[p,f]of t.subtables){let R=e[p]?.value;if(!Array.isArray(R))continue;let E=a[p]?.value;for(let m=0;m<R.length;m++){let y=R[m],g=E[m];for(let T of f){let h=y.value?.[T.code]?.value,I=We(h,T,n);I.ok?(g.value??={},g.value[T.code]={value:_f(h,T.fieldType,I.value)}):u(T,h,I,ma(p,m,y))}}}return{normalizedRecord:a,errors:s,columns:c,invalidRows:l.size,invalidRowNumbers:l,errorCount:s.length}}function _f(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 WA(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 ya(e){let{statement:t,snapshots:n,fieldInfos:r,metadata:i,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:s=1}=e;vf(o,"dmlMaxRows"),vf(a,"dmlMaxSubtableRows");for(let T of n)fa(T);let l=If(t,n,r,i),c=At(r,t.assignments.map(T=>T.field)),d=l.some(T=>An(T.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=l.map((T,h)=>Sn(T.postImage,c,u,s,e.parentRowNumbers?.[h]??h+1));if(!t.validateOnly){let T=p.flatMap(h=>h.errors);if(T.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:T})}`)}let f=l.length,R=l.reduce((T,h)=>T+h.changedSubtableRows,0),E=f>o||R>a;if(!t.validateOnly&&f>o)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${o}).`);if(!t.validateOnly&&R>a)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${a}).`);let m=l.map((T,h)=>pa(T,p[h].normalizedRecord)),y=m.flatMap(T=>oi(T).records),g=p.map(T=>({errors:T.errors,columns:T.columns,invalidRows:T.invalidRows,errorCount:T.errorCount}));return Df({plans:m,records:y,validations:g,guards:{revisionRequired:!0,parentRows:f,dmlMaxRows:o,subtableRows:R,dmlMaxSubtableRows:a,wouldExceed:E}})}function vf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function Df(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))Df(n,t);return Object.freeze(e)}var iu=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function ga(e,t){if(new Set(e.fields).size!==e.fields.length)return St("DML target fields contain duplicates.");let n=new Map(t.map(o=>[o.code,o]));for(let o of e.fields)Uf(o,null,n);let r=new Map,i=new Map;for(let o of e.applyBlocks??[]){if(r.has(o.field))return St(`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 St(`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 St(`APPLY INSERT supports APPEND only (${l.kind}).`);let c=new Set;for(let d of l.fields){if(c.has(d))return St(`APPLY APPEND specifies child ${d} more than once.`);c.add(d),Uf(d,o.field,n,s)}for(let d of l.values)if(d.length!==l.fields.length)return St(`APPLY APPEND for ${o.field} has ${d.length} values for ${l.fields.length} fields.`)}}return{targetTables:r,targetMultiValueFields:new Map,childrenByTable:i,fieldsByCode:n}}function HA(e,t,n=ga(e,t),r){let i=new Map(t.map(s=>[s.code,s.fieldType])),o=Zr(e,i).flatMap(s=>s.records);if(r&&r.length!==o.length)throw new Error("InternalError: APPLY create parent row number count differs from VALUES rows.");let a=(e.applyBlocks??[]).map(s=>{let l=n.childrenByTable.get(s.field),c=s.operations.flatMap(d=>jl(d,l,s.field));return{table:s.field,rows:c,addedRows:c.length}});return o.map((s,l)=>{let c={};for(let u of t)u.inSubtable||u.fieldType==="SUBTABLE"||u.fieldType==="FILE"||u.writable===!1||iu.has(u.fieldType)||(c[u.code]=s[u.code]??{value:zl(u)});let d={...s};for(let u of a){let p=u.rows.map(f=>({value:f.value}));c[u.table]={value:p},d[u.table]={value:p}}return{parentRowNumber:r?.[l]??l+1,tables:a,postImage:c,record:d}})}async function ui(e){let{statement:t,fieldInfos:n,dmlMaxRows:r,dmlMaxSubtableRows:i,statementNumber:o=1}=e;Mf(r,"dmlMaxRows"),Mf(i,"dmlMaxSubtableRows");let a=e.metadata??ga(t,n),s=HA(t,n,a,e.parentRowNumbers),l=n.filter(h=>h.fieldType==="SUBTABLE"||h.fieldType!=="FILE"&&h.writable!==!1&&!iu.has(h.fieldType)),c=At(l,t.fields),d=s.some(h=>An(h.postImage,c));if(d&&!e.loadNumberPrecision)throw new Error("InternalError: APPLY number precision loader is required for NUMBER post-images.");let u=d?await e.loadNumberPrecision():void 0,p=s.map(h=>Sn(h.postImage,c,u,o,h.parentRowNumber,"INSERT"));if(!t.validateOnly){let h=p.flatMap(I=>I.errors);if(h.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:p[0]?.columns??[],errors:h})}`)}let f=s.length,R=s.reduce((h,I)=>h+I.tables.reduce((N,v)=>N+v.addedRows,0),0),E=f>r||R>i;if(!t.validateOnly&&f>r)throw new Error(`ArgumentError: APPLY parent rows (${f}) exceed dmlMaxRows (${r}).`);if(!t.validateOnly&&R>i)throw new Error(`ArgumentError: APPLY changed subtable rows (${R}) exceed dmlMaxSubtableRows (${i}).`);let m=s.map((h,I)=>{let N=p[I].normalizedRecord,v={};for(let P of t.fields)v[P]=N[P];for(let P of h.tables){let x=N[P.table]?.value;v[P.table]={value:P.rows.map((U,C)=>({value:Object.fromEntries(Object.keys(U.value).map(D=>[D,x[C]?.value?.[D]??U.value[D]]))}))}}return{...h,postImage:N,record:v}}),y=m.map(h=>h.record),g=[];for(let h=0;h<y.length;h+=100)g.push({app:t.appId,records:y.slice(h,h+100)});let T=p.map(h=>({errors:h.errors,columns:h.columns,invalidRows:h.invalidRows,errorCount:h.errorCount}));return xf({applyBlocks:t.applyBlocks??[],candidates:m,records:y,batches:g,validations:T,guards:{revisionRequired:!1,parentRows:f,dmlMaxRows:r,subtableRows:R,dmlMaxSubtableRows:i,wouldExceed:E}})}function Uf(e,t,n,r){if(e.startsWith("_")||e.startsWith("$"))return St(`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?St(`APPLY child ${e} does not belong to subtable ${t}.`):St(`APPLY ${t===null?"parent field":"child"} ${e} does not exist.`)}if(i.fieldType==="SUBTABLE"||i.fieldType==="FILE"||i.writable===!1||iu.has(i.fieldType))return St(`APPLY assignment target ${e} is not writable (${i.fieldType}).`)}function Mf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function St(e){throw new Error(`ArgumentError: ${e}`)}function xf(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))xf(n,t);return Object.freeze(e)}async function Ff(e){let{statement:t,matches:n,fieldInfos:r,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a=1}=e;kf(i,"dmlMaxRows"),kf(o,"dmlMaxSubtableRows"),JA(t,n);let s=n.filter(y=>y.targetId===void 0),l=n.filter(y=>y.targetId!==void 0),c=YA(t,s.map(y=>y.sourceRowIndex)),d=await ui({statement:c,fieldInfos:r,metadata:ga(c,r),dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:s.map(y=>y.sourceRowIndex+1),loadNumberPrecision:e.loadNumberPrecision}),u=[],p=new Set;for(let y of l){let g=y.targetId;p.has(g)&&ou(`UPSERT APPLY resolves more than one source row to parent $id ${g}.`),p.add(g),y.snapshot||ou(`UPSERT APPLY snapshot for parent $id ${g} is missing.`);let T=Number(y.snapshot.$id?.value);T!==g&&ou(`UPSERT APPLY snapshot $id ${T} does not match target $id ${g}.`);let h=jA(t,y.sourceRowIndex,g),I=h.applyBlocks?.length?kt(h,r):zA(r);u.push(await ya({statement:h,snapshots:[y.snapshot],fieldInfos:r,metadata:I,dmlMaxRows:i,dmlMaxSubtableRows:o,statementNumber:a,parentRowNumbers:[y.sourceRowIndex+1],loadNumberPrecision:e.loadNumberPrecision}))}let f=qA(u,i,o),R=d.guards.parentRows+f.guards.parentRows,E=d.guards.subtableRows+f.guards.subtableRows,m=R>i||E>o;if(!t.validateOnly){let y=[...d.validations.flatMap(g=>g.errors),...f.validations.flatMap(g=>g.errors)];if(y.length>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:d.validations[0]?.columns??f.validations[0]?.columns??[],errors:y})}`)}if(!t.validateOnly&&R>i)throw new Error(`ArgumentError: APPLY parent rows (${R}) exceed dmlMaxRows (${i}).`);if(!t.validateOnly&&E>o)throw new Error(`ArgumentError: APPLY changed subtable rows (${E}) exceed dmlMaxSubtableRows (${o}).`);return au({create:d,update:f,createBatches:d.batches,updateBatches:XA(f.records,t.appId),guards:{revisionRequired:f.guards.parentRows>0,parentRows:R,dmlMaxRows:i,subtableRows:E,dmlMaxSubtableRows:o,wouldExceed:m,create:d.guards,update:f.guards}})}function YA(e,t){return{type:"INSERT",appId:e.appId,fields:[...e.fields],values:t.map(n=>e.values[n]),applyBlocks:e.onInsertApplyBlocks??[],validateOnly:!0}}function jA(e,t,n){let r=e.fields.map((i,o)=>({field:i,value:e.values[t][o]}));return{type:"UPDATE",appId:e.appId,subtableCode:null,assignments:r,from:null,where:{type:"BINARY",op:"=",left:{type:"FIELD",tableAlias:null,field:"$id"},right:{type:"NUMBER",value:n,raw:String(n)}},applyBlocks:e.onUpdateApplyBlocks??[],validateOnly:!0}}function zA(e){return{targetTables:new Map,targetMultiValueFields:new Map,childrenByTable:new Map,fieldsByCode:new Map(e.map(t=>[t.code,t]))}}function qA(e,t,n){let r=e.flatMap(s=>s.plans),i=e.flatMap(s=>s.records),o=e.flatMap(s=>s.validations),a=r.reduce((s,l)=>s+l.changedSubtableRows,0);return au({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 JA(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 XA(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 kf(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`)}function ou(e){throw new Error(`ArgumentError: ${e}`)}function au(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))au(n,t);return Object.freeze(e)}function pi(e){return ur("UPDATE",[$f(e)])}function su(e){return ur("INSERT",[Gf(e)])}function lu(e){return ur("UPSERT",[Gf(e.create),$f(e.update)])}function Qe(e,t){let n=t.failedBranch?.toLowerCase(),r=e.branches.map(i=>{let o=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInserts:t.successfulUpdates:t.successfulParents,a=e.statementKind==="UPSERT"?i.branch==="insert"?t.successfulInsertChunks:t.successfulUpdateChunks:t.successfulChunks,s=n===i.branch;return{...i,...o!==void 0?{successfulParents:o}:{},chunk:{...i.chunk,...a!==void 0?{successfulChunks:a}:{},...s&&t.failedChunkIndex!==void 0?{failedChunkIndex:t.failedChunkIndex}:{},...s&&t.failedStage!==void 0?{failedStage:t.failedStage}:{}}}});return{...e,branches:r,partialSuccess:{possible:!0,successfulParents:t.successfulParents,successfulChunks:t.successfulChunks,...n?{failedBranch:n}:{},...t.retryAttempted!==void 0?{retryAttempted:t.retryAttempted}:{}}}}function Aa(e,t,n){return e.type==="UPDATE"?ur("UPDATE",[ha("update",e.applyBlocks??[],null,!0,t,n)]):e.type==="INSERT"?ur("INSERT",[ha("insert",e.applyBlocks??[],e.values.length,!1,t,n)]):ur("UPSERT",[ha("insert",e.onInsertApplyBlocks??[],null,!1,t,n),ha("update",e.onUpdateApplyBlocks??[],null,!0,t,n)])}function ur(e,t){return{statementKind:e,branches:t,nonTransactional:!0,partialSuccess:{possible:!0}}}function Gf(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 $f(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:Kf(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:Kf(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 Kf(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:ci(i.count,n.count),...n.matchedRows!==void 0?{matchedRows:ci(i.matchedRows,n.matchedRows)}:{},...n.changedRows!==void 0?{changedRows:ci(i.changedRows,n.changedRows)}:{},...n.addedRows!==void 0?{addedRows:ci(i.addedRows,n.addedRows)}:{},...n.removedRows!==void 0?{removedRows:ci(i.removedRows,n.removedRows)}:{}}}):t.map(n=>({...n}))}function ci(e,t){return e==null||t===null?null:e+t}function ha(e,t,n,r,i,o){let a=t.map(d=>{let u=d.operations.map(f=>QA(f,n)),p=u.every(f=>f.count!==null)?u.reduce((f,R)=>f+R.count,0):null;return{targetKind:d.targetKind,field:d.field,operations:u,changedCount:p}}),s=a.filter(d=>d.targetKind==="SUBTABLE"),l=s.every(d=>d.changedCount!==null)?s.reduce((d,u)=>d+u.changedCount,0):null,c=n===null||l===null?null:n>i||l>o;return{branch:e,parentRows:n,targets:a,guards:{revisionRequired:r,parentRows:n,dmlMaxRows:i,subtableRows:l,dmlMaxSubtableRows:o,wouldExceed:c},chunk:{size:100,plannedChunks:n===null?null:Math.ceil(n/100)},deletedParentRows:e==="insert"?0:null}}function QA(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 Tt=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 Bf(e,t,n){er("phase10c");let r=Cf(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 Tt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"UPDATE",updatedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Vf(e,t,n){er("phase13c");let r=[],i=0,o=0;for(let a=0;a<e.batches.length;a+=1){let s=e.batches[a];try{let l=await t.postRecords({app:s.app,records:[...s.records]});r.push(l.ids)}catch(l){throw new Tt({successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i,successfulParents:o,failedChunkIndex:a,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},l)}i+=1,o+=s.records.length}return{type:"INSERT",createdIds:r,insertedCount:o,successfulChunks:i,successfulParents:o,nonTransactional:!0}}async function Wf(e,t,n){er("phase14c");let r=[],i=0,o=0,a=0,s=0;for(let l=0;l<e.createBatches.length;l+=1){let c=e.createBatches[l];try{let d=await t.postRecords({app:c.app,records:[...c.records]});r.push(d.ids)}catch(d){throw new Tt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"INSERT",failedStage:"POST_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"POST_CHUNK",failedBranch:"INSERT",retryAttempted:!1})}:{}},d)}i+=1,a+=c.records.length}for(let l=0;l<e.updateBatches.length;l+=1){let c=e.updateBatches[l];try{await t.putRecords({app:c.app,records:[...c.records]})}catch(d){throw new Tt({successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,failedChunkIndex:l,failedBranch:"UPDATE",failedStage:"PUT_CHUNK",nonTransactional:!0,retryAttempted:!1,...n?{diagnostic:Qe(n,{successfulChunks:i+o,successfulParents:a+s,successfulInserts:a,successfulUpdates:s,successfulInsertChunks:i,successfulUpdateChunks:o,failedChunkIndex:l,failedStage:"PUT_CHUNK",failedBranch:"UPDATE",retryAttempted:!1})}:{}},d)}o+=1,s+=c.records.length}return{type:"UPSERT",createdIds:r,insertedCount:a,updatedCount:s,successfulChunks:i+o,successfulParents:a+s,successfulInsertChunks:i,successfulUpdateChunks:o,nonTransactional:!0}}var ZA=/^[A-Za-z_][A-Za-z0-9_]{0,63}$/;function eS(e){if(!ZA.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 tS(e){let t=Object.create(null);for(let[n,r]of Object.entries(e??{})){let i=eS(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 uu(e,t){let n=tS(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 nS(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 Hf(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 nS(i)?!0:Object.values(i).some(n)};return n(e)}function Yf(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 Ft(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 di=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)}},Sa=class{constructor(t,n=Ft({})){this.cteName=t;this.limits=n;this.rows=0;this.expansions=0}observeDepth(t){if(t>this.limits.depth)throw new di("DEPTH",this.limits.depth,t,this.cteName)}addRow(){if(this.rows++,this.rows>this.limits.rows)throw new di("ROWS",this.limits.rows,this.rows,this.cteName)}addExpansion(){if(this.expansions++,this.expansions>this.limits.expansions)throw new di("EXPANSIONS",this.limits.expansions,this.expansions,this.cteName)}};var Ta=50;function pu(e,t,n){if(e.kind==="RANGE")return[`${t} >= ${n(e.min)} and ${t} <= ${n(e.max)}`];if(e.kind!=="IN")return[];let r=[];for(let i=0;i<e.values.length;i+=Ta){let o=e.values.slice(i,i+Ta);r.push(`${t} in (${o.map(n).join(",")})`)}return r}var cu=new Set(["DATETIME","CREATED_TIME","UPDATED_TIME"]),rS=new Set(["SINGLE_LINE_TEXT","LINK","NUMBER","CALC","DROP_DOWN","RADIO_BUTTON","CHECK_BOX","MULTI_SELECT","STATUS"]);function iS(e,t){return e==="DATE"?Gr(t):e==="TIME"?Do(t):cu.has(e)?Uo(t):!1}function oS(e,t){return!t||t.compareMode!=="string"?!1:e==="DATE"?t.fieldType==="DATE":e==="TIME"?t.fieldType==="TIME":cu.has(e)?cu.has(t.fieldType):!1}function du(e){if(e.sourceRowCount===0)return{kind:"EMPTY_SOURCE"};if(!e.fieldType)return{kind:"FALLBACK",reason:"JOIN_KEY_FIELD_TYPE_UNRESOLVED"};let t=vo(e.fieldType);if(t.has("in")){if(e.values===void 0)return{kind:"FALLBACK",reason:"JOIN_KEY_VALUES_RUNTIME"};if(e.hasEmptyValue&&!rS.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(!oS(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=>!iS(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];ut(s,i,n)<0&&(i=s),ut(s,o,n)>0&&(o=s)}return{kind:"RANGE",min:i,max:o,relation:"superset"}}var fu=wl;function fi(e,t,n=fu){let r=e===0||t===0?0:e*t;return{leftRows:e,rightRows:t,outputRows:r,limit:n,allowed:r<=n}}function jf(e,t){let n=te(e);return n.type!=="GROUPING_SETS"?null:{source:n.source,expandedSetCount:n.sets.length,groupingItemCount:t??n.allItems.length,setLimit:64,itemLimit:16,outputRowLimit:5e4}}function It(e){if(e===null)return!1;switch(e.type){case"BINARY":return Ia(e.left);case"NULL_CHECK":return Ia(e.field);case"LOGICAL":return It(e.left)||It(e.right);case"NOT":case"GROUP":return It(e.expr);case"EXISTS":case"BOOLEAN":return!1}}function Ia(e){if(Array.isArray(e))return e.some(Ia);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(Ia)}async function Ge(e,t,n,r,i={}){let o=i.pageSize??aS,a=Math.max(1,i.parallel??sS),s=i.maxRecords??lS,l=i.onLimit??"error",c=i.stopAfter;if(c!==void 0&&(!Number.isSafeInteger(c)||c<=0||c>s))throw new RangeError("stopAfter must be a positive safe integer <= maxRecords");let d=c??s,u=r.length>0&&!r.includes("$id")?[...r,"$id"]:r,p=[],f=!1,R=`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${s} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,E=0,m=0,y=Jf(n,E),g=await qf(e,t,y,u,o,m);if(zf(g,i),p.push(...g.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new ct(R)}if(g.records.length<o)return p;for(m+=o,m>=Ru&&(E=Xf(g.records),m=0);;){if(c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>=s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new ct(R)}let T=d-p.length,h=Math.ceil(T/o),I=Math.max(1,Math.min(a,h)),N=[];for(let U=0;U<I;U++){let C=m+U*o;if(C>=Ru)break;N.push(C)}let v=Jf(n,E),P=await Promise.all(N.map(U=>qf(e,t,v,u,o,U)));for(let U of P)zf(U,i);let x=!1;for(let U of P){if(p.push(...U.records),c!==void 0&&p.length>=c)return p.slice(0,c);if(p.length>s){if(l==="truncate")return!f&&i.onTruncate&&(i.onTruncate(s),f=!0),p.slice(0,s);throw new ct(R)}if(U.records.length<o){x=!0;break}}if(x)break;if(m+=o*N.length,m>=Ru){let U=P[P.length-1];E=Xf(U.records),m=0}}return p}function zf(e,t){e.searchAborted&&t.onSearchAborted?.()}function Qf(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 aS=500,sS=1,lS=1e4,Ru=1e4;async function qf(e,t,n,r,i,o){let a=uS(n,i,o);return e({app:t,query:a,fields:r})}function Jf(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 uS(e,t,n){let r=e.trimEnd(),i=`limit ${t} offset ${n}`;return r?`${r} ${i}`:i}function Xf(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 ct=class extends Error{constructor(n,r=!1){super(n);this.completeInputWrapped=r;this.name="FetchAllLimitError"}};async function pt(e,t,n,r,i){let o=await Ge(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 Ei(e,t,n,r){let{records:i,metrics:o}=await pt(e,t,n,["$id"],r);return{ids:Qf(i),metrics:o}}function pr(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)?eE(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"}):eE(n[0],e.field)}function yu(e,t){if(e.left.type!=="FIELD")return Ri();let n=pr(e.left,t);if(n.status!=="OWNED"||n.source.sourceKind!=="APP")return Ri();let r=n.source.fieldTypes.get(n.fieldCode);if(r===void 0||r.startsWith("KSQL_")||Te(e,a=>{let s=pr(a,t);if(s.status!=="OWNED"||s.source!==n.source)return;let l=s.source.fieldTypes.get(s.fieldCode);return l===void 0?void 0:ne({fieldType:l})}).capability!=="EXACT_PUSHDOWN")return Ri();let o=xo(e,{fieldCode:n.fieldCode,fieldType:r,fieldOptions:n.source.fieldOptions?.get(n.fieldCode)});return o==="unsafe"?Ri():Object.freeze({relation:o,owner:n})}function tE(e,t){let n=Ae(e);if(n.length===0||e.left.type!=="FIELD")return Object.freeze({relation:"unsafe"});let r=pr(e.left,t);return r.status!=="OWNED"||r.source.sourceKind!=="APP"?Object.freeze({relation:"unsafe"}):Te(e,o=>{let a=pr(o,t);if(a.status!=="OWNED"||a.source!==r.source)return;let s=a.source.fieldTypes.get(a.fieldCode);return s===void 0?void 0:ne({fieldType:s})}).capability!=="EXACT_PUSHDOWN"?Object.freeze({relation:"unsafe"}):Object.freeze({relation:"function-leaf-exact",owner:r,functionOccurrences:Object.freeze([...n])})}function nE(e,t){let n=new Set;Tn(e,n);let i=(e===null?[]:oE(cr(e,t))).map(s=>Object.freeze({targetAlias:s.owner.alias,appId:s.owner.appId,predicate:s.predicate,relation:s.relation})),o=cS(e,t),a=new Set;if(o.serverFunctionCandidate?.variant==="WHOLE_WHERE_EXACT")for(let s of n)a.add(s);else for(let s of i)Tn(s.predicate,a);return Object.freeze({items:Object.freeze(i),appliedKlikes:a,allKlikes:Object.freeze([...n]),rejections:Object.freeze(fS(e,t)),fetchQueriesByAlias:new Map,...o})}function rE(e,t){if(e.serverFunctionCandidate?.staticContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!In(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||e.allKlikes.some(a=>!e.appliedKlikes.has(a)))return e;let n=new Map,r=(a,s)=>{let l=n.get(a);l?l.push(s):n.set(a,[s])};try{if(e.serverFunctionCandidate.variant==="EXACT_LEAF")for(let a of e.items)r(a.targetAlias,dr(a,t));for(let a of e.serverFunctionConsumptions){if(!t.find(c=>c.alias===a.targetAlias&&c.appId===a.appId&&c.sourceKind==="APP"))return e;let l=dr({targetAlias:a.targetAlias,appId:a.appId,predicate:a.predicate,relation:"exact"},t);if(l!==a.serializedPredicate||!In(Oa(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 fr(e){if(e.serverFunctionCandidate===null||e.serverFunctionCandidate.staticContract!=="CONFIRMED"||e.serverFunctionCandidate.fetchContract!=="CONFIRMED"||e.serverFunctionConsumptions.length===0||e.residualServerFunctionOccurrences.length!==0||!In(e.allServerFunctionOccurrences,e.adoptedServerFunctionOccurrences)||!e.serverFunctionConsumptions.every(t=>{let n=t.fetchBinding;return n!=="PENDING_STEP_2"&&n.status==="BOUND_TO_TARGET_FETCH"&&n.targetAlias===t.targetAlias&&n.appId===t.appId&&n.query===e.fetchQueriesByAlias.get(t.targetAlias)&&n.query.includes(t.serializedPredicate)}))return!1;for(let[t,n]of e.fetchQueriesByAlias){let r=e.serverFunctionConsumptions.filter(i=>i.targetAlias===t).flatMap(i=>[...i.functionOccurrences]);if(r.length>0&&!In(Oa(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))||iE(dS(e))!==e.allKlikes.length))}function cS(e,t){if(e===null)return Zf(null);let n=Object.freeze([...Ae(e)]);if(n.length===0)return Zf(e);let r=pS(e,t,n);if(r!==null)return r;let i=Na(e),o=[],a=new Set;for(let u of i){let p=tE(u,t);if(p.relation!=="function-leaf-exact")continue;let f={targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,relation:"exact"},R;try{R=dr(f,t)}catch{continue}let E=Oa(R);In(E,p.functionOccurrences)&&(a.add(u),o.push(Object.freeze({targetAlias:p.owner.alias,appId:p.owner.appId,predicate:u,functionLeaves:Object.freeze([u]),functionOccurrences:p.functionOccurrences,relation:p.relation,consumption:"leaf",serializedPredicate:R,staticProof:Object.freeze({classifier:"EXACT_PUSHDOWN",ownership:"OWNED",serialization:"OCCURRENCE_MULTISET_EXACT",residualIdentityConsumption:"CONFIRMED"}),fetchBinding:"PENDING_STEP_2"})))}let s=Ca(e,a),l=Object.freeze(s===null?[]:[...Ae(s)]),c=Object.freeze(o.flatMap(u=>[...u.functionOccurrences])),d=In(n,c)&&l.length===0?"CONFIRMED":"INCOMPLETE";return{serverFunctionCandidate:Object.freeze({variant:"EXACT_LEAF",staticContract:d,fetchContract:"PENDING_STEP_2"}),serverFunctionConsumptions:Object.freeze(o),allServerFunctionOccurrences:n,adoptedServerFunctionOccurrences:c,residualWhere:s,residualServerFunctionOccurrences:l}}function pS(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=dr(i,t)}catch{return null}if(!In(Oa(o),n))return null;let a=new Set;if(Tn(e,a),iE(o)!==a.size)return null;let s=Object.freeze(ba(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(Ae(e).length>0){let i=tE(e,t);return i.relation==="function-leaf-exact"?i.owner:null}let r=yu(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&&La(n,r)?n:null}case"GROUP":case"NOT":return wa(e.expr,t);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return null}}function ba(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return[...ba(e.left),...ba(e.right)];case"GROUP":case"NOT":return ba(e.expr);case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Zf(e){let t=e===null?[]:Ae(e);return{serverFunctionCandidate:null,serverFunctionConsumptions:Object.freeze([]),allServerFunctionOccurrences:Object.freeze([...t]),adoptedServerFunctionOccurrences:Object.freeze([]),residualWhere:e,residualServerFunctionOccurrences:Object.freeze([...t])}}function Na(e){switch(e.type){case"BINARY":return Ae(e).length>0?[e]:[];case"LOGICAL":return e.op==="AND"?[...Na(e.left),...Na(e.right)]:[];case"GROUP":return Na(e.expr);case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function Ca(e,t){if(e.type==="BINARY")return t.has(e)?null:e;if(e.type==="LOGICAL"){if(e.op!=="AND")return e;let n=Ca(e.left,t),r=Ca(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=Ca(e.expr,t);return n===null?null:n===e.expr?e:{...e,expr:n}}return e}function Oa(e){let t=[];for(let n of wr){let r=new RegExp(`\\b${n}\\s*\\(`,"g"),i;for(;(i=r.exec(e))!==null;)t.push({name:n,index:i.index})}return t.sort((n,r)=>n.index-r.index).map(n=>n.name)}function In(e,t){if(e.length!==t.length)return!1;let n=new Map;for(let r of e)n.set(r,(n.get(r)??0)+1);for(let r of t){let i=n.get(r);if(i===void 0)return!1;i===1?n.delete(r):n.set(r,i-1)}return n.size===0}function iE(e){return[...e.matchAll(/\s(?:not\s+)?like\s/g)].length}function dS(e){let t=e.serverFunctionConsumptions[0];return t===void 0?"":e.fetchQueriesByAlias.get(t.targetAlias)??""}function fS(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=pr(i.left,t);if(o.status==="AMBIGUOUS"){n.add("AMBIGUOUS_FIELD");return}if(o.status==="UNKNOWN"){n.add("UNKNOWN_FIELD_OR_METADATA");return}if(Pa(i.right)){n.add("CROSS_TABLE_BINARY");return}yu(i,t).relation==="unsafe"&&n.add("UNSAFE_RELATION");return}if(i.type==="LOGICAL"){if(i.op==="OR"){if(sE(i)){n.add("KLIKE_OR");return}let o=cr(i.left,t),a=cr(i.right,t);if(o.length!==1||a.length!==1||!La(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 dr(e,t){return mi(e.predicate,e,t),j(e.predicate)}function mi(e,t,n){switch(e.type){case"LOGICAL":mi(e.left,t,n),mi(e.right,t,n);return;case"GROUP":mi(e.expr,t,n);return;case"NOT":mi(e.expr,t,n);return;case"BINARY":{if(e.left.type!=="FIELD"||Pa(e.right))throw mu(t,"predicate contains a non-target or RHS field reference");let r=pr(e.left,n);if(r.status!=="OWNED"||r.alias!==t.targetAlias||r.appId!==t.appId||r.source.sourceKind!=="APP")throw mu(t,`field ${e.left.field} is not uniquely owned by the target`);return}case"NULL_CHECK":case"EXISTS":case"BOOLEAN":throw mu(t,"predicate shape is outside the Phase A serializer contract")}}function mu(e,t){return new Error(`InternalError: JOIN pushdown ownership guard failed for ${e.targetAlias}/APP${e.appId}: ${t}.`)}function cr(e,t){switch(e.type){case"BINARY":{let n=yu(e,t);return n.relation==="unsafe"||n.owner===void 0?[]:[{owner:n.owner,predicate:e,relation:n.relation}]}case"LOGICAL":{let n=cr(e.left,t),r=cr(e.right,t);if(e.op==="AND")return oE([...n,...r]);if(sE(e))return[];if(n.length!==1||r.length!==1)return[];let i=n[0],o=r[0];return La(i.owner,o.owner)?[{owner:i.owner,predicate:{type:"LOGICAL",op:"OR",left:i.predicate,right:o.predicate},relation:aE(i.relation,o.relation)}]:[]}case"GROUP":return cr(e.expr,t).map(n=>({...n,predicate:{type:"GROUP",expr:n.predicate}}));case"NOT":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return[]}}function oE(e){let t=[];for(let n of e){let r=t.findIndex(o=>La(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:aE(i.relation,n.relation)}}return t}function eE(e,t){return Object.freeze({status:"OWNED",alias:e.alias,appId:e.appId,fieldCode:t,source:e})}function Ri(){return Object.freeze({relation:"unsafe"})}function La(e,t){return e.alias===t.alias&&e.appId===t.appId&&e.source===t.source}function aE(e,t){return e==="exact"&&t==="exact"?"exact":"superset"}function Tn(e,t){if(e!==null){if(qt(e)){t.add(e);return}switch(e.type){case"LOGICAL":Tn(e.left,t),Tn(e.right,t);return;case"NOT":case"GROUP":Tn(e.expr,t);return;case"BINARY":case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}}function sE(e){let t=new Set;return Tn(e,t),t.size>0}function Pa(e){if(e===null||typeof e!="object")return!1;if(Array.isArray(e))return e.some(Pa);let t=e;return t.type==="FIELD"||t.type==="FIELD_REF"?!0:Object.values(t).some(Pa)}function gu(e,t){let n=Br(e,{allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:t.fieldTypes,fieldOptions:t.fieldOptions});return{prefilter:n.condition,appliedKlikes:n.appliedKlikes,unappliedKlikes:n.allKlikes.filter(r=>!n.appliedKlikes.has(r))}}function ES(e,t){return e.key.type==="FIELD_NAME"?t.get(e.key.name):void 0}function RS(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function yi(e){let{stmt:t}=e,n=[],r=t.columns.flatMap(a=>a.type==="WINDOW_COL"?a.orderBy:[]),i=[...t.orderBy,...r];for(let a of i){if(a.key.type!=="FIELD_NAME")continue;let s=ES(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"&&!RS(t,a.key.name))||n.push("ORDER_KEY_NOT_REST_EQUIVALENT"),e.whereCapability!=="EXACT_PUSHDOWN"&&n.push("WHERE_NOT_EXACT"),e.staticMode!=="SIMPLE"&&n.push("QUERY_SHAPE_LOCAL"),(t.limit===null||t.limit<0||t.limit>500)&&n.push("LIMIT_NOT_REST_WINDOW"),((t.offset??0)<0||(t.offset??0)>1e4)&&n.push("OFFSET_NOT_REST_WINDOW"),t.limit!==null&&t.limit>e.maxRecords&&n.push("MAX_RECORDS_WINDOW"),e.hasKlike&&n.push("KLIKE_NOT_REST_WINDOW"),n.length===0?{kind:"CANONICAL_REST_TOP_N",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[]}:{kind:"CANONICAL_LOCAL",requiresCompleteInput:i.length>0,localOrderBy:t.orderBy.length>0,applyLocalOffsetLimit:t.orderBy.length>0,reasonCodes:[...new Set(n)]}}var mS=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 yS(e,t){return e.columns.some(n=>"alias"in n&&n.alias===t)}function gi(e){let{stmt:t}=e,n=[];t.orderMode!=="KINTONE_NATIVE"&&n.push("KORDER_MODE_REQUIRED"),(t.from.cteName!==null||t.from.subtableCode||e.staticMode!=="SIMPLE")&&n.push("KORDER_QUERY_SHAPE_UNSUPPORTED"),e.whereCapability!=="EXACT_PUSHDOWN"&&(n.push(...(e.whereReasons??[]).filter(s=>s.functionName!==void 0).map(s=>s.code)),n.push("KORDER_WHERE_NOT_EXACT")),e.hasKlike&&n.push("KORDER_KLIKE_UNSUPPORTED"),t.orderBy.length===0&&n.push("KORDER_KEY_REQUIRED");for(let s of t.orderBy){if(s.key.type!=="FIELD_NAME"){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(key=${s.key.type})`);continue}let l=s.key.name,c=e.orderSemantics.get(l);if(!c){n.push(`KORDER_KEY_UNRESOLVED(field=${l})`);continue}if(yS(t,l)){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}if(l!=="$id"){if(!c.source||c.source.fieldCode!==l){n.push(`KORDER_KEY_NOT_DIRECT_FIELD(field=${l})`);continue}mS.has(c.fieldType)||n.push(`KORDER_TYPE_UNSUPPORTED(field=${l}, type=${c.fieldType})`)}}(t.limit===null||!Number.isSafeInteger(t.limit)||t.limit<0)&&n.push(`KORDER_LIMIT_INVALID(limit=${String(t.limit)})`);let r=t.offset??0;(!Number.isSafeInteger(r)||r<0)&&n.push(`KORDER_OFFSET_INVALID(offset=${r})`);let i=t.limit===null?Number.NaN:r+t.limit;t.limit!==null&&!Number.isSafeInteger(i)&&n.push(`KORDER_SCAN_ROWS_INVALID(offset=${r}, limit=${t.limit})`);let o=[...new Set(n)];if(o.length>0)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; ${o.join(", ")}). Use ORDER BY for canonical local ordering or simplify the query.`);let a=t.limit<=500&&r<=1e4&&t.limit<=e.maxRecords;if(!a&&i>e.maxRecords)throw new Error(`ArgumentError: KORDER BY cannot be executed (mode=KINTONE_NATIVE; KORDER_SCAN_ROWS_EXCEEDS_MAX_RECORDS(scanRows=${i}, maxRecords=${e.maxRecords})). Use ORDER BY for canonical local ordering, raise maxRecords, or reduce LIMIT/OFFSET.`);return{kind:a?"KORDER_NATIVE":"KORDER_CURSOR",requiresCompleteInput:!1,localOrderBy:!1,applyLocalOffsetLimit:!1,reasonCodes:[],scanRows:i}}var _a=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"}},va=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}},Da=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 lE(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 Da(a).message}}return{records:n,cleanupWarning:o}}function hu(e){let t=[];e.where&&t.push(j(e.where));let n=e.orderBy.map(r=>{if(r.key.type!=="FIELD_NAME")throw new Error("ArgumentError: KORDER cursor key must be a direct field.");return`${r.key.name} ${r.direction==="ASC"?"asc":"desc"}`});return t.push(`order by ${n.join(", ")}`),t.join(" ")}var gS={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 uE(e,t){let n=gS[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 cE(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=>uE(s.fieldType,s.code)==="PROCESS")?(await n()).enable:!1;return[...r.filter(s=>{let l=uE(s.fieldType,s.code);return l==="RECORD"||l==="PROCESS"&&o}).map(s=>s.code),"$revision","$id"]}var Er=new WeakMap,Su=new WeakMap,hS="\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 bu(e){if(Su.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):Ce(t,r)},has(n,r){return Reflect.has(n,r)||typeof r=="string"&&Ce(t,r)!==void 0},getOwnPropertyDescriptor(n,r){let i=Reflect.getOwnPropertyDescriptor(n,r);if(i||typeof r!="string")return i;let o=Ce(t,r);return o===void 0?void 0:{configurable:!0,enumerable:!1,writable:!1,value:o}}}),Su.set(t,e),t}function dt(e){return Su.get(e)??e}function SE(e){let t=Er.get(e);return t||(t={byColumn:new Map,byLookupKey:new Map},Er.set(e,t)),t}function wt(e,t,n,r=[]){let i=SE(e);i.byColumn.set(t,n);for(let o of r)i.byLookupKey.set(o,n)}function Ze(e,t){return Er.get(e)?.byColumn.get(t)}function Ce(e,t){return Er.get(e)?.byLookupKey.get(t)}function Kt(e,t){return Er.has(e)?void 0:e[t]}function pE(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(pe(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=>Ce(a,o)===void 0&&a[o]===void 0))&&n.add(hS)}function AS(e){let t=Er.get(e)?.byLookupKey;if(!t||t.size===0)return e;let n={...e};for(let[i,o]of t)n[i]=o;let r=Xs(e);return r&&Js(n,r.includedCanonicalIds),n}function Gt(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 SS(e,t,n,r={}){if(n.type==="CROSS"){let p=fi(e.length,t.length);if(!p.allowed)throw new Error(`ArgumentError: CROSS JOIN \u306E\u751F\u6210\u4EF6\u6570 ${p.outputRows} \u884C\uFF08\u5DE6 ${p.leftRows} \u884C \xD7 \u53F3 ${p.rightRows} \u884C\uFF09\u304C\u4E0A\u9650 ${p.limit} \u884C\u3092\u8D85\u3048\u3066\u3044\u307E\u3059\u3002`);let f=[];for(let R of e)for(let E of t)f.push({...R,...E});return f}let{on:i,type:o}=n,a=TS(i,e,t,r.leftColumns,r.rightColumns),s=Tu(a.left),l=Tu(a.right);if(fE(e,s,r.leftColumns),fE(t,l,r.rightColumns),o==="RIGHT"){let p=new Map;for(let E of e){let m=E[s]??"",y=p.get(m);y?y.push(E):p.set(m,[E])}let f={};for(let E of r.leftColumns??Object.keys(e[0]??{}))f[E]="";let R=[];for(let E of t){let m=E[l]??"",y=p.get(m)??[];if(y.length>0)for(let g of y)R.push({...g,...E});else R.push({...f,...E})}return R}let c=new Map;for(let p of t){let f=p[l]??"",R=c.get(f);R?R.push(p):c.set(f,[p])}let d=[],u={};for(let p of r.rightColumns??Object.keys(t[0]??{}))u[p]="";for(let p of e){let f=p[s]??"",R=c.get(f)??[];if(R.length>0)for(let E of R)d.push({...p,...E});else o==="LEFT"&&d.push({...p,...u})}return d}function Tu(e){return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field}function TS(e,t,n,r,i){let o=r??Object.keys(t[0]??{}),a=i??Object.keys(n[0]??{}),s=dE(o),l=dE(a),c=p=>{if(p.tableAlias){let m=s.has(p.tableAlias),y=l.has(p.tableAlias);if(m!==y)return m?"LEFT":"RIGHT"}let f=Tu(p),R=o.includes(f),E=a.includes(f);return R!==E?R?"LEFT":"RIGHT":"UNKNOWN"},d=c(e.left),u=c(e.right);return d==="RIGHT"&&u==="LEFT"?{left:e.right,right:e.left}:e}function dE(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 fE(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 IS(e,t,n,r,i,o={}){return t===null?e:e.filter(a=>ue(t,a,n,r,i,o))}function TE(e){return e.some(t=>t.type==="AGGREGATE"||t.type==="ARITH_AGG_COL"||t.type==="CASE_COL"&&Ye(t.expr)||t.type==="STRFUNC_COL"&&wi(t.expr)||t.type==="SCALAR_VALUE_COL"&&on(t.expr))}function wS(e,t,n,r,i,o={}){if(i&&i.items.length!==t.length)throw new Error("InternalError: plain GROUP BY resolution plan length does not match group keys.");let a=new Map;for(let l of e){let c=t.map((u,p)=>NS(u,l,i?.items[p],n,o)).join("\0"),d=a.get(c);d?d.push(l):a.set(c,[l])}a.size===0&&t.length===0&&TE(n)&&a.set("",[]);let s=[];for(let l of a.values()){let c=bu({...l[0]});for(let d of t)d.type==="ARITH_KEY"?c[Ou(d.expr)]=String(me(d.expr,l[0],o.evaluationContext)):d.type==="FUNC_KEY"&&(c[an(d.expr)]=ye(d.expr,l[0],void 0,void 0,o.evaluationContext));IE(c,l,n,r,o.evaluationContext),s.push(c)}return s}function bS(e,t,n,r,i={}){let o=[],a=0,s=()=>{if(a++,i.maxGeneratedRows!==void 0&&a>i.maxGeneratedRows)throw new Error(`LimitError: B65 generated grouping rows ${a} exceed limit ${i.maxGeneratedRows} (reason=GROUPING_OUTPUT_LIMIT_EXCEEDED).`)};for(let l of t.sets){let c={children:new Map},d=[];for(let p of e){let f=c;for(let R of l.items){let E=EE(R,p),m=f.children.get(E);m||(m={children:new Map},f.children.set(E,m)),f=m}f.rows||(s(),f.rows=[],d.push(f.rows)),f.rows.push(p)}e.length===0&&l.items.length===0&&(s(),c.rows=[],d.push(c.rows));let u=new Set(l.items.map(p=>p.canonicalId));for(let p of d){let f=bu({...p[0]}),R=new Map;for(let E of l.items)R.has(E.canonicalId)||R.set(E.canonicalId,EE(E,p[0]));for(let E of t.allItems){let m=R.get(E.canonicalId)??"";f[E.directKey]=m,E.unqualifiedBridgeKey!==null&&(f[E.unqualifiedBridgeKey]=m)}IE(f,p,n,r,i.evaluationContext),Js(f,u),o.push(f)}}return o}function EE(e,t){return t?t[e.directKey]??(e.unqualifiedBridgeKey===null?void 0:t[e.unqualifiedBridgeKey])??"":""}function IE(e,t,n,r,i={}){for(let[o,a]of n.entries())if(a.type==="AGGREGATE"){let s=pe(a.func,a.distinct,a.arg),l=String(Si(a.func,a.distinct,a.arg,a.separator,t,r,i));wt(e,o,l,a.alias?[a.alias,s]:[s])}else if(a.type==="ARITH_AGG_COL"){Ua(e,t,a.expr,r,i);let s=a.alias??Ti(a.expr);wt(e,o,String(hi(a.expr,t,r,i)),[s])}else if(a.type==="STRFUNC_COL"&&wi(a.expr)){Ua(e,t,a.expr,r,i);let s=a.alias??an(a.expr),l=Lu(a.expr,t,r);wt(e,o,ye(l,e,void 0,void 0,i),[s])}else if(a.type==="SCALAR_VALUE_COL"&&on(a.expr)){Ua(e,t,a.expr,r,i);let s=a.alias??bt(a.expr),l=Ai(a.expr,t,r);wt(e,o,String(Oe(l,e,void 0,void 0,i)),[s])}else if(a.type==="CASE_COL"&&Ye(a.expr)){Ua(e,t,a.expr,r,i);let s=OE(a.expr,t,r),c=Ve(s,e,void 0,d=>d.aggregateRef?bE(d.aggregateRef,r):void 0,i);wt(e,o,c,[Iu(a.alias,o)])}}function Iu(e,t){return e??`__ksql_case_column_${t}`}function wu(e,t){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(r=>wu(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=>wu(r,t))}function Ua(e,t,n,r,i={}){let o=[];wu(n,o);for(let a of o){let s=pe(a.func,a.distinct,a.arg);if(Ce(e,s)!==void 0)continue;let l=String(Si(a.func,a.distinct,a.arg,a.separator,t,r,i));SE(e).byLookupKey.set(s,l)}}function NS(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=Ma(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"?ye(e.expr,t,void 0,void 0,i.evaluationContext):String(me(e.expr,t,i.evaluationContext))}function Si(e,t,n,r,i,o,a={}){if(n.type==="WILDCARD")return e==="COUNT"?i.length:0;let s=wE(e,n,i,a).filter(R=>R!==null),l=e==="STDDEV_POP"||e==="STDDEV_SAMP"||e==="VAR_POP"||e==="VAR_SAMP"||e==="MEDIAN",c=l?s.map(R=>{let E=Number(R);if(!Number.isFinite(E))throw new Error(`ArgumentError: ${e} \u306E\u5F15\u6570\u306B\u975E\u6570\u5024\u307E\u305F\u306F\u975E\u6709\u9650\u306E\u5024\u304C\u3042\u308A\u307E\u3059: ${R}`);return E}):null,d=t?l?[...new Set(c)]:[...new Set(s)]:l?c:s;if(e==="COUNT")return d.length;if(e==="GROUP_CONCAT")return d.join(r??",");let u=e==="MIN"||e==="MAX"||e==="MODE"?Ii(n,o):void 0,p=typeof u=="string"?B(u):u??(n.type==="FIELD_REF"||n.type==="FIELD"||n.type==="STRING"||n.type==="CONCAT_OP"||n.type==="CASE_WHEN"?B("string"):B("number"));if(e==="MODE"){if(s.length===0)return"";let R=new Map;for(let y of s)R.set(y,(R.get(y)??0)+1);let E="",m=0;for(let[y,g]of R){if(g>m){E=y,m=g;continue}if(g!==m)continue;let T=ut(y,E,p);(T<0||T===0&&rn(y,E)<0)&&(E=y)}return E}if(e==="MIN"||e==="MAX"){let R=d;if(R.length===0)return"";let E=R[0];for(let m of R.slice(1)){let y=ut(m,E,p);(e==="MAX"&&y>0||e==="MIN"&&y<0)&&(E=m)}return E}let f=l?d:d.map(Number);switch(e){case"SUM":return f.reduce((R,E)=>R+E,0);case"AVG":return f.length===0?0:f.reduce((R,E)=>R+E,0)/f.length;case"MEDIAN":{if(f.length===0)return"";let R=[...f].sort((m,y)=>m-y),E=Math.floor(R.length/2);return R.length%2===1?R[E]:(R[E-1]+R[E])/2}case"VAR_POP":case"VAR_SAMP":case"STDDEV_POP":case"STDDEV_SAMP":{let R=e==="VAR_SAMP"||e==="STDDEV_SAMP";if(f.length===0||R&&f.length<2)return"";let E=f[0],m=0,y=0,g=0;for(let h of f){let I=h-E;m++;let N=I-y;y+=N/m,g+=N*(I-y)}let T=Math.max(0,g/(R?m-1:m));return e==="STDDEV_POP"||e==="STDDEV_SAMP"?Math.sqrt(T):T}}}function wE(e,t,n,r={}){return n.map(i=>{let o=dt(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=Mt(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 CS(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function hi(e,t,n,r={}){if(e.type==="NUMBER")return e.value;if(e.type==="AGG_REF")return Number(Si(e.func,e.distinct,e.arg,e.separator,t,n,r));if(e.type==="AGG_GROUP_KEY"){let a=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return Number(Ke(t[0]??{},a))}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);let i=hi(e.left,t,n,r),o=hi(e.right,t,n,r);switch(e.op){case"+":return i+o;case"-":return i-o;case"*":return i*o;case"/":return o!==0?i/o:NaN;case"%":return o!==0?i%o:NaN}}function Ti(e){return yt(e)}function Ii(e,t){if(e.type==="FIELD_REF")return t?.(CS(e.field))??"string";if(e.type==="FIELD")return t?.(e)??"string";if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return"number";if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return"string";if(e.type==="STRING_FUNC"){let o=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);return e.func==="CAST"?e.args[1]?.type==="STRING"&&e.args[1].value==="NUMBER"?"number":"string":o.has(e.func)?"number":"string"}let n=[...e.branches.map(o=>o.result),...e.elseResult===null?[]:[e.elseResult]].filter(o=>o.type!=="ARRAY").map(o=>Ii(o,t));if(n.length===0||n.some(o=>o===void 0))return"string";let r=n.map(o=>typeof o=="string"?o:o.compareMode==="number"||o.compareMode==="recordNumber"?"number":"string");if(!r.every(o=>o===r[0]))return"string";let i=n[0];return n.every(o=>JSON.stringify(o)===JSON.stringify(i))?i:r[0]}function bE(e,t){if(e.func==="COUNT"||e.func==="SUM"||e.func==="AVG"||e.func==="STDDEV_POP"||e.func==="STDDEV_SAMP"||e.func==="VAR_POP"||e.func==="VAR_SAMP"||e.func==="MEDIAN")return B("number");if(e.func==="GROUP_CONCAT"||e.func==="MODE")return B("string");let n=e.arg.type==="WILDCARD"?"string":Ii(e.arg,t)??"string";return typeof n=="string"?B(n):n}function PS(e,t,n,r,i={}){return t===null?e:e.filter(o=>ue(t,AS(o),n,void 0,r,i))}function OS(e,t,n,r,i,o={}){if(e.length===0)return e;let a=LS(e,t,{scalarCache:n,resolveFieldType:r,resolveFieldSemantics:i,evaluationContext:o}),s=new Set;return e.filter(l=>{let c=a(l);return s.has(c)?!1:(s.add(c),!0)})}function LS(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(FS(t,a,o))}function Nu(e,t,n,r,i,o,a={}){return t.length===0?e:NE(e,t,n,r,i,o,a).rows.map(s=>s.row)}function NE(e,t,n,r,i,o,a={}){let s=t.map(({key:d})=>{if(d.type==="ARITH_KEY")return{semantics:B("number")};if(d.type==="FUNC_KEY")return{semantics:B(CE.has(d.expr.func)?"number":"string")};if(d.type==="GROUPING_KEY")return{semantics:B("number")};let u=i?.get(d.name);if(u)return{semantics:u};let p=n?.get(d.name);return p?{semantics:{fieldType:"MULTI_SELECT",compareMode:"option",inSubtable:!1,requiresCollectionOperators:!1,optionOrder:p}}:{semantics:B(r?.get(d.name)??"string")}}),l=e.map(d=>({row:d,keys:t.map(({key:u},p)=>({s:DS(u,d,o,a)}))})),c=(d,u)=>_S(d,u,t,s);return l.sort(c),{rows:l,compare:c}}function _S(e,t,n,r){for(let i=0;i<n.length;i++){let o=vS(e.keys[i],t.keys[i],r[i]);if(o!==0)return n[i].direction==="ASC"?o:-o}return 0}function vS(e,t,n){return ut(e.s,t.s,n.semantics)}var CE=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function DS(e,t,n,r={}){let i=dt(t);switch(e.type){case"FIELD_NAME":return n?.(e.name,t)??Ce(t,e.name)??i[e.name]??"";case"ARITH_KEY":return String(me(e.expr,i,r));case"FUNC_KEY":return ye(e.expr,i,void 0,void 0,r);case"GROUPING_KEY":return Hn(e.ref,t)}}function Cu(e,t,n,r,i={}){let o=new Map;for(let[a,s]of e.entries()){if(!("alias"in s)||s.alias===null)continue;let l=s.alias;switch(s.type){case"FIELD":o.set(l,c=>Ke(dt(c),s.field));break;case"LITERAL_COL":o.set(l,()=>s.value);break;case"AGGREGATE":{o.set(l,c=>Ze(c,a)??"0");break}case"ARITH_AGG_COL":{o.set(l,c=>Ze(c,a)??"0");break}case"WINDOW_COL":o.set(l,c=>Ze(c,a)??"");break;case"ARITH_COL":o.set(l,c=>String(me(s.expr,dt(c),i)));break;case"STRFUNC_COL":{let c=an(s.expr);o.set(l,d=>wi(s.expr)?Ze(d,a)??Ce(d,c)??ye(s.expr,dt(d),n,r,i):ye(s.expr,dt(d),n,r,i));break}case"CASE_COL":o.set(l,c=>Ye(s.expr)?Ze(c,a)??"":Ve(s.expr,dt(c),n,r,i));break;case"SCALAR_VALUE_COL":{let c=bt(s.expr);o.set(l,d=>on(s.expr)?Ze(d,a)??Ce(d,c)??"":String(Oe(s.expr,dt(d),n,r,i)));break}case"SCALAR_SUBQUERY_COL":o.set(l,()=>t?.get(a)??"");break;case"GROUPING_COL":o.set(l,c=>Hn(s.ref,c));break;case"VARIABLE_COL":break}}return(a,s)=>o.get(a)?.(s)}function Pu(e,t,n,r,i,o,a={}){let s=t.map((l,c)=>({column:l,columnIndex:c})).filter(l=>l.column.type==="WINDOW_COL");if(e.length===0||s.length===0)return e;for(let l=0;l<e.length;l++)e[l]=bu(e[l]);for(let{column:l,columnIndex:c}of s){let d=new Map;for(let u of e){let p=JSON.stringify(l.partitionBy.map(R=>kS(u,R))),f=d.get(p);f?f.push(u):d.set(p,[u])}for(let u of d.values()){let p=NE(u,l.orderBy,n,r,i,void 0,a),f=p.rows;if(Ro(l)){xS(l,c,p,o,a);continue}if($s(l)){MS(l,c,f,a);continue}if(!Gs(l))throw new Error(`InternalError: unknown window kind ${l.windowKind??"undefined"}`);let R=1,E=1;for(let m=0;m<f.length;m++){m>0&&p.compare(f[m-1],f[m])!==0&&(R=m+1,E++);let y=l.func==="ROW_NUMBER"?m+1:l.func==="RANK"?R:E;wt(f[m].row,c,String(y),[l.alias])}}}return e}function US(e,t,n={}){let r=Mt(e,dt(t),void 0,void 0,n);return r==null||typeof r=="number"&&!Number.isFinite(r)?"":String(r)}function MS(e,t,n,r={}){let i=n.map(a=>US(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;wt(n[a].row,t,s>=0&&s<i.length?i[s]:"",[e.alias])}}function xS(e,t,n,r,i={}){let o=n.rows,a=e.arg.type==="WILDCARD"?null:wE(e.aggFunc,e.arg,o.map(f=>f.row),i),s=e.arg.type==="WILDCARD"?void 0:Ii(e.arg,r),l=typeof s=="string"?B(s):s??B("string"),c=[],d=0,u=0,p;for(let f=0;f<o.length;f++){let R=a?.[f]??null;if(e.arg.type==="WILDCARD")d++;else if(R!==null)if(e.aggFunc==="COUNT")d++;else if(e.aggFunc==="SUM"||e.aggFunc==="AVG")u+=Number(R),d++;else if(p===void 0)p=R;else{let m=ut(R,p,l);(e.aggFunc==="MAX"&&m>0||e.aggFunc==="MIN"&&m<0)&&(p=R)}let E=e.aggFunc==="COUNT"?d:e.aggFunc==="SUM"?u:e.aggFunc==="AVG"?d===0?0:u/d:p??0;c.push(String(E))}if(e.frame===null){let f=c[c.length-1];for(let R of o)wt(R.row,t,f,[e.alias]);return}if(e.frame.unit==="RANGE"){for(let f=0;f<o.length;){let R=f;for(;R+1<o.length&&n.compare(o[R],o[R+1])===0;)R++;for(let E=f;E<=R;E++)wt(o[E].row,t,c[R],[e.alias]);f=R+1}return}for(let f=0;f<o.length;f++)wt(o[f].row,t,c[f],[e.alias])}function kS(e,t){let n=t.tableAlias?`${t.tableAlias}.${t.field}`:t.field;return Ke(dt(e),n)}function xa(e,t,n){let r=n??0;return t===null?e.slice(r):e.slice(r,r+t)}function Ma(e,t,n,r={}){let i=dt(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 Ke(i,e.field);case"LITERAL_COL":return e.value;case"AGGREGATE":{let o=pe(e.func,e.distinct,e.arg);return Ze(t,n)??Ce(t,e.alias??o)??Ce(t,o)??Kt(t,e.alias??o)??Kt(t,o)??"0"}case"ARITH_AGG_COL":{let o=e.alias??Ti(e.expr);return Ze(t,n)??Ce(t,o)??Kt(t,o)??"0"}case"ARITH_COL":return String(me(e.expr,i,r.evaluationContext));case"CASE_COL":return Ye(e.expr)?Ze(t,n)??Ce(t,Iu(e.alias,n))??Kt(t,Iu(e.alias,n))??"":Ve(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext);case"GROUPING_COL":return Hn(e.ref,t);case"STRFUNC_COL":{let o=an(e.expr);return wi(e.expr)?Ze(t,n)??Ce(t,e.alias??o)??Ce(t,o)??Kt(t,e.alias??o)??Kt(t,o)??ye(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext):ye(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext)}case"SCALAR_VALUE_COL":{let o=bt(e.expr);return on(e.expr)?Ze(t,n)??Ce(t,e.alias??o)??Ce(t,o)??Kt(t,e.alias??o)??Kt(t,o)??"":String(Oe(e.expr,i,r.resolveFieldType,r.resolveFieldSemantics,r.evaluationContext))}case"SCALAR_SUBQUERY_COL":return r.scalarCache?.get(n)??"";case"WINDOW_COL":return Ze(t,n)??Ce(t,e.alias)??Kt(t,e.alias)??""}}function FS(e,t,n={}){return e.map((r,i)=>{let o=Ma(r,t,i,n);return typeof o=="string"?o:o.entries.map(([,a])=>a)})}function wn(e,t,n,r,i,o,a,s={}){if(t.length===1&&t[0].type==="WILDCARD"){let R=e.map(m=>{let y=hE(mE(m),a),g=Ma(t[0],m,0,{wildcardKeys:Object.keys(y)}),T={};if(typeof g!="string")for(let[h,I]of g.entries)I!==null&&(T[h]=I);return T}),E=R.length>0?Object.keys(R[0]):[...i??[]];return{rows:R,columns:E}}let l=BS(t),c=$S(t),d=t.some(R=>R.type==="WILDCARD"||R.type==="PARENT_WILDCARD"),u=d?null:KS(t,l,c),p=u??[];return d&&e.length===0?{rows:[],columns:GS(t,l,c)}:{rows:e.map((R,E)=>{let m={},y={scalarCache:n,resolveFieldType:r,resolveFieldSemantics:o,evaluationContext:s,wildcardKeys:Object.keys(hE(mE(R),a)),parentWildcardKeys:Object.keys(R).filter(g=>g.startsWith("_p.")).sort()};for(let[g,T]of t.entries()){let h=Ma(T,R,g,y);switch(T.type){case"VARIABLE_COL":break;case"WILDCARD":if(typeof h!="string")for(let[I,N]of h.entries)N!==null&&(m[I]=N);break;case"PARENT_WILDCARD":{if(typeof h!="string")for(let[I,N]of h.entries)N!==null&&(m[I]=N),E===0&&p.push(I);break}case"FIELD":{let I=u?.[g]??T.alias??l.get(g)??T.field;m[I]=h,u===null&&E===0&&p.push(I);break}case"LITERAL_COL":{let I=u?.[g]??T.alias??`'${T.value}'`;m[I]=h,u===null&&E===0&&p.push(I);break}case"AGGREGATE":{let I=pe(T.func,T.distinct,T.arg),N=u?.[g]??T.alias??I;m[N]=h,u===null&&E===0&&p.push(N);break}case"ARITH_AGG_COL":{let I=u?.[g]??T.alias??Ti(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"ARITH_COL":{let I=u?.[g]??T.alias??Ou(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"CASE_COL":{let I=u?.[g]??T.alias??c.get(g)??"case";m[I]=h,u===null&&E===0&&p.push(I);break}case"GROUPING_COL":{let I=u?.[g]??T.alias??`GROUPING(${T.ref.field.tableAlias?`${T.ref.field.tableAlias}.`:""}${T.ref.field.field})`;m[I]=h,u===null&&E===0&&p.push(I);break}case"STRFUNC_COL":{let I=u?.[g]??T.alias??an(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"SCALAR_VALUE_COL":{let I=u?.[g]??T.alias??bt(T.expr);m[I]=h,u===null&&E===0&&p.push(I);break}case"SCALAR_SUBQUERY_COL":{let I=u?.[g]??T.alias??"(subquery)";m[I]=h,u===null&&E===0&&p.push(I);break}case"WINDOW_COL":{let I=u?.[g]??T.alias;m[I]=h,u===null&&E===0&&p.push(I);break}}}return m}),columns:p}}function KS(e,t,n){return e.map((r,i)=>PE(r,i,t,n))}function GS(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=PE(a,o,t,n);i.has(s)||(i.add(s),r.push(s))}return r}function PE(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??pe(e.func,e.distinct,e.arg);case"ARITH_AGG_COL":return e.alias??Ti(e.expr);case"ARITH_COL":return e.alias??Ou(e.expr);case"CASE_COL":return e.alias??r.get(t)??"case";case"STRFUNC_COL":return e.alias??an(e.expr);case"SCALAR_VALUE_COL":return e.alias??bt(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 $S(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 BS(e){let t=new Map;for(let r of e){if(r.type!=="FIELD"||r.alias)continue;let i=RE(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=RE(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 RE(e){if(e.startsWith("_p."))return e;let t=e.indexOf(".");return t<=0?e:e.slice(t+1)||e}function mE(e){let t={};for(let[n,r]of Object.entries(e))n.startsWith("_p.")||(t[n]=r);return t}function Ou(e){let t=n=>{if(n.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${n.name} reached arithmetic column labeling.`);return n.type==="FIELD_REF"?n.field:n.type==="NUMBER"?z(n):n.type==="STRING_FUNC"?an(n):`(${t(n.left)}${n.op}${t(n.right)})`};return e.type==="ARITH"?`${t(e.left)}${e.op}${t(e.right)}`:t(e)}function an(e){let t=e.args.map(n=>n.type==="AGG_REF"||n.type==="AGG_ARITH"||n.type==="AGG_GROUP_KEY"?Ti(n):n.type==="VARIABLE"?`@${n.name}`:bt(n));return`${e.func}(${t.join(",")})`}function bt(e){switch(e.type){case"STRING":return`'${e.value}'`;case"NUMBER":return z(e);case"VARIABLE":return`@${e.name}`;case"FIELD":return e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;case"STRING_FUNC":return an(e);case"CASE_WHEN":return"case";case"SCALAR_ARITH":return`${bt(e.left)}${e.op}${bt(e.right)}`;case"CONCAT_OP":return`${bt(e.left)}||${bt(e.right)}`}}function VS(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="AGG_GROUP_KEY"||e.type==="VARIABLE"?!1:on(e)}function on(e){return e.type==="STRING_FUNC"?wi(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?on(e.left)||on(e.right):e.type==="CASE_WHEN"?e.branches.some(t=>yE(t.result))||e.elseResult!==null&&yE(e.elseResult):!1}function yE(e){return e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?!1:on(e)}function wi(e){return e.args.some(t=>VS(t))}function WS(e,t,n){if(e.type==="AGG_REF"){let r=Si(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=hi(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}if(e.type==="AGG_GROUP_KEY"){let r=e.tableAlias?`${e.tableAlias}.${e.field}`:e.field;return{type:"NUMBER",value:Number(Ke(t[0]??{},r)),raw:Ke(t[0]??{},r)}}if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved aggregate arithmetic variable @${e.name}.`);return e.type==="STRING_FUNC"?Lu(e,t,n):Ai(e,t,n)}function Ai(e,t,n){return e.type==="STRING_FUNC"?Lu(e,t,n):e.type==="CASE_WHEN"?OE(e,t,n):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?{...e,left:Ai(e.left,t,n),right:Ai(e.right,t,n)}:e}function gE(e,t,n){if(e.type==="AGG_REF"){let r=Si(e.func,e.distinct,e.arg,e.separator,t,n);return typeof r=="number"?{type:"NUMBER",value:r,raw:String(r)}:{type:"STRING",value:r}}if(e.type==="AGG_ARITH"){let r=hi(e,t,n);return{type:"NUMBER",value:r,raw:String(r)}}return e.type==="ARRAY"||e.type==="FIELD_REF"||e.type==="ARITH"?e:Ai(e,t,n)}function OE(e,t,n){return{...e,branches:e.branches.map(r=>({...r,result:gE(r.result,t,n)})),elseResult:e.elseResult===null?null:gE(e.elseResult,t,n)}}function Lu(e,t,n){return{type:"STRING_FUNC",func:e.func,args:e.args.map(r=>WS(r,t,n))}}function hE(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 AE(e,t){if(e!==void 0)return t?e.flatMap(n=>[`${t}.${n}`,n]):[...e]}function Au(e,t,n){if(!(e===void 0&&t===void 0&&n.length===0))return[...new Set([...e??[],...t??[],...Object.keys(n[0]??{})])]}function HS(e,t){let n=new Map;for(let r of e)if(!(!("alias"in r)||!r.alias))if(r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL")n.set(r.alias,B("number"));else if(r.type==="WINDOW_COL"){if(Gs(r)||Ro(r)&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG"))n.set(r.alias,B("number"));else if((Ro(r)||$s(r))&&r.arg.type!=="WILDCARD"){let i=Ii(r.arg,t)??"string";n.set(r.alias,typeof i=="string"?B(i):i)}}else r.type==="AGGREGATE"?r.func==="COUNT"||r.func==="SUM"||r.func==="AVG"||r.func==="STDDEV_POP"||r.func==="STDDEV_SAMP"||r.func==="VAR_POP"||r.func==="VAR_SAMP"||r.func==="MEDIAN"?n.set(r.alias,B("number")):r.func==="GROUP_CONCAT"&&n.set(r.alias,B("string")):r.type==="LITERAL_COL"||r.type==="CASE_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="SCALAR_VALUE_COL"?n.set(r.alias,B("string")):r.type==="STRFUNC_COL"&&n.set(r.alias,B(CE.has(r.expr.func)?"number":"string"));return n}function _u(e){let{stmt:t,tables:n,scalarCache:r,optionOrders:i,sortKinds:o,orderSemantics:a,fieldTypeResolver:s,fieldSemanticsResolver:l,havingFieldTypeResolver:c,havingFieldSemanticsResolver:d,aggregateSortKindResolver:u,appliedKlikes:p,sourceColumns:f,tableColumns:R,hiddenQualifiedAliases:E,resolvedGroupingSpec:m,plainGroupByPlan:y,warnings:g,evaluationContext:T}=e,h=HS(t.columns,u);for(let[D,b]of a??[])h.set(D,b);let I=[],N=t.from.alias;I=(n.get(N)??n.get(null)??[]).map(D=>Gt(D,N));let P=Au(AE(R?.get(N),N),void 0,I);for(let D of t.joins){let b=D.table.alias,A=(n.get(b)??[]).map(M=>Gt(M,b)),w=Au(AE(R?.get(b),b),void 0,A);I=SS(I,A,D,{leftColumns:P,rightColumns:w}),P=Au(P,w,I)}let x=e.residualWhere!==void 0?e.residualWhere:t.where;I=IS(I,x,s,p,l,T);let U=te(t);if(U.type==="GROUPING_SETS"){if(!m)throw new Error("internal error: B65 grouping sets require a metadata-resolved grouping spec.");I=bS(I,m,t.columns,u,{maxGeneratedRows:5e4,evaluationContext:T})}else(U.type==="PLAIN"||TE(t.columns))&&(I=wS(I,U.type==="PLAIN"?U.allItems:[],t.columns,u,U.type==="PLAIN"?y:void 0,{scalarCache:r,resolveFieldType:s,resolveFieldSemantics:l,evaluationContext:T}));pE(t.columns,I,g);let C=D=>D.aggregateRef?bE(D.aggregateRef,u):d?.(D);return pE(t.having,I,g),I=PS(I,t.having,c,C,T),I=Pu(I,t.columns,i,o,h,u,T),t.distinct&&(I=OS(I,t.columns,r,s,l,T)),I=Nu(I,t.orderBy,i,o,h,Cu(t.columns,r,s,l,T),T),I=xa(I,t.limit,t.offset),wn(I,t.columns,r,s,f,l,E,T)}function LE(e,t){let n=[];for(let r of e){let i=vu(r.$id?.value),o=YS(r[t]?.value);if(o.length!==0)for(let a=0;a<o.length;a++){let s=o[a],l={_pid:{value:i},_rid:{value:s.id??""},_idx:{value:String(a)}};for(let[c,d]of Object.entries(r)){if(c===t)continue;let u=vu(d?.value);l[`_p.${c}`]={value:u}}for(let[c,d]of Object.entries(s.value??{}))l[c]={value:vu(d?.value)};n.push(l)}}return n}function YS(e){return Array.isArray(e)?e.filter(t=>!!t&&typeof t=="object"):[]}function vu(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 jS(e,t={}){let n=new Lt(e).tokenize(),r=new jt(n,t).parseStatements();return r.forEach(Je),r}function _E(e,t={}){let n=qo(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:jS(i,o),meta:n.meta}}function vE(e){return["$id",...new Set([...e.topLevel.map(t=>t.code).filter(t=>t!=="$id"&&t!=="$revision"),...e.subtables.keys()])]}function DE(e,t){let n=bi(e);for(let[r,i]of Object.entries(t))n[r]=bi(i);return n}function UE(e){let t=[...e.preErrors.map(i=>Du(i)),...e.postImageErrors.map(i=>Du(i,i.$err_subtable!=="")),...e.checkErrors.map(i=>Du(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 Du(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 xE(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"&&lt(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 Mu(e){return xE(e,!0)}function ka(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 ft(e,t,n,r,i=!0,o=!0,a=r){let s=Mu(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:Ae(e.where)}),ka(e,e).forEach((l,c)=>ft(l,`${t}.select-source[${c}]`,n,a,a?!1:i,a?!1:o,a))}function Ni(e,t,n,r,i=!0){e.left.type==="UNION"?Ni(e.left,`${t}.left`,n,r,i):ft(e.left,`${t}.left`,n,r,!0,i),ft(e.right,`${t}.right`,n,r,!0,i)}function ME(e,t,n,r){if(!r&&Xt(e)){ft(Qt(e),`${t}.inlined`,n,!1,!0,!0);return}e.ctes.forEach((i,o)=>{i.query.type==="SELECT"?ft(i.query,`${t}.cte[${o}]`,n,r,!1,!r,!0):i.query.type==="UNION"&&Ni(i.query,`${t}.cte[${o}]`,n,!0,!1)}),e.query.type==="SELECT"?ft(e.query,`${t}.main`,n,r,!1,!r,!0):Ni(e.query,`${t}.main`,n,!0,!1)}function kE(e,t,n,r=!1){switch(e.type){case"SELECT":ft(e,t,n,r);return;case"UNION":Ni(e,t,n,r);return;case"WITH":ME(e,t,n,r);return;case"CREATE_TEMP_TABLE":e.query.type==="WITH"?ME(e.query,`${t}.query`,n,!1):e.query.type==="UNION"?Ni(e.query,`${t}.query`,n,!0,!1):ft(e.query,`${t}.query`,n,!1,!1,!0,!0);return;case"EXPLAIN":kE(e.query,`${t}.query`,n,r);return;case"VALIDATE":case"REORDER":{let i=Mu(e.where);i.length>0&&n.push({kind:"FORBIDDEN",source:e,where:e.where,functionNames:i,path:t,allowFullScanExact:!1,relativeFunctionOccurrences:Ae(e.where)}),ka(e,e).forEach((o,a)=>ft(o,`${t}.select-source[${a}]`,n,!0,!0,!1));return}case"UPDATE":case"DELETE":{let i=Mu(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:Ae(e.where)})}if(e.type==="UPDATE"&&e.applyBlocks?.length){let o=xE(e.applyBlocks,!0);o.length>0&&n.push({kind:"FORBIDDEN",source:e,where:null,functionNames:o,path:`${t}.apply`,allowFullScanExact:!1,relativeFunctionOccurrences:[]})}ka(e,e).forEach((o,a)=>ft(o,`${t}.select-source[${a}]`,n,r,!1,!1));return}default:ka(e,e).forEach((i,o)=>ft(i,`${t}.select-source[${o}]`,n,r,!1,!1))}}function Fa(e,t){let n=new Map;for(let r of t){if(!lt(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 xu(e,t){return t.eligible===!0&&ze(e)==="FULL_SCAN"&&e.orderMode!=="KINTONE_NATIVE"&&e.from.cteName===null&&!e.from.subtableCode&&e.joins.length===0}function zS(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)&&fr(t)}function qS(e){return{kind:e.kind,source:e.source,functionNames:e.functionNames,path:e.path,clientWhereEvaluation:!0,allowed:!1}}function JS(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 Kn(e)?(n.some(r=>r!==Ot)||n.unshift("WHERE_KINTONE_FUNCTION_CONTEXT_UNSUPPORTED"),n.includes(Ot)||n.push(Ot)):n.includes(pn)||n.push(pn),[...new Set(n)]}function Uu(e,t){let n=e.functionNames[0],r=Kn(n)?Ot:pn,i=JS(n,t);return{functionName:n,path:e.path,code:i.find(o=>o!==r)??r,reasonCodes:i}}async function FE(e,t){let n=[];kE(e,"statement",n);let r=[];for(let i of n){if(i.kind==="FORBIDDEN"){let d=qS(i);return r.push(d),{hasRelativeDate:i.functionNames.some(re),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Uu(i)}}if(i.kind==="SELECT"){let d=i.source,u=d.from.cteName===null&&!d.from.subtableCode&&d.joins.length===0,p=ze(d),f=await t.select(d),R="";try{R=i.where===null?"":j(i.where)}catch{R=""}let E=u&&p==="SIMPLE"&&(d.orderBy.length===0||d.orderMode==="KINTONE_NATIVE")&&f.capability==="EXACT_PUSHDOWN"&&Fa(R,i.relativeFunctionOccurrences),m,y;if(!E&&i.allowPhase2Prefilter!==!1&&f.capability==="SUPERSET_PREFILTER"&&t.prefilterDecomposition){let I=await t.prefilterDecomposition(d);I?.eligible===!0&&xu(d,I)&&(m=I.plan,y=!0,E=!0)}let g;!E&&f.capability==="EXACT_PUSHDOWN"&&(g=uo({select:d,selectMode:p,capability:f,context:{allowFullScanExact:i.allowFullScanExact},serializedWholeWhere:R||null,relativeFunctionNames:i.relativeFunctionOccurrences})??void 0,g&&(m=g.prefilterPlan,E=!0));let T;if(!E&&t.joinServerFunctionPlan){let I=await t.joinServerFunctionPlan(d);I!==null&&zS(d,I)&&(T=I,E=!0)}let h={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,selectMode:p,capability:f,restQuery:R,...m?{prefilterPlan:m,phase2PrefilterEligible:y}:{},...g?{fullScanExactPlan:g,allowForm:g.allowForm}:{},...T?{joinServerFunctionPlan:T,allowForm:"JOIN_SERVER_FUNCTION_EXACT",joinServerFunctionVariant:T.serverFunctionCandidate.variant}:{},clientWhereEvaluation:!E,allowed:E};if(r.push(h),!E)return{hasRelativeDate:n.some(I=>I.functionNames.some(re)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Uu(i,f)};continue}let o=i.source,a=await t.dml(o),s="";try{s=i.where===null?"":j(i.where)}catch{s=""}let l=a.capability==="EXACT_PUSHDOWN"&&Fa(s,i.relativeFunctionOccurrences),c={kind:i.kind,source:i.source,functionNames:i.functionNames,path:i.path,capability:a,restQuery:s,clientWhereEvaluation:!l,allowed:l};if(r.push(c),!l)return{hasRelativeDate:n.some(d=>d.functionNames.some(re)),hasServerOnlyWhereFunction:!0,nodes:r,allowed:!1,rejection:Uu(i,a)}}return{hasRelativeDate:n.some(i=>i.functionNames.some(re)),hasServerOnlyWhereFunction:n.length>0,nodes:r,allowed:!0}}function ku(e){if(!e.allowed&&e.rejection){let t=Kn(e.rejection.functionName)?Ot:pn,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 Fu(e,t,n={}){let r=Te(e.where,t),i=(T,h="INELIGIBLE")=>({eligible:!1,disposition:h,reasonCodes:T,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=Pi(e.where);if(o.length===0)return i(["NO_RELATIVE_DATE"]);let a=XS(e.where,t);if(!a.ok)return i(a.reasonCodes);if(!QS(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=eT(e.where,t),l=Br(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0,allowKlike:!0,fieldTypes:s.fieldTypes,fieldOptions:s.fieldOptions}),c=n.serialize??j,d=n.containsFunctions??Fa,u=[];for(let T of a.leaves){let h=Ba(T);if(h===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let I;try{I=c(T)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}if(!d(I,[h]))return i(["PREFILTER_FUNCTION_MISSING"]);u.push(T)}let p=ZS(l.condition),f=new Set(u),R=Ga(e.where,f,p);if(R===null)return i(["RELATIVE_DATE_LEAF_COUNT_MISMATCH"]);let E;try{E=c(R)}catch{return i(["PREFILTER_SERIALIZATION_FAILED"])}let m=u.map(T=>Ba(T));if(!d(E,[...new Set(m)])||!tT(E,m))return i(["PREFILTER_FUNCTION_MISSING"]);let y=n.rewriteResidual?n.rewriteResidual(e.where,f):$a(e.where,f);if(y!==null&&Pi(y).length>0)return i(["RESIDUAL_RELATIVE_DATE_REMAINED"]);if(y===null)return i(["DEFER_TO_PHASE1"],"DEFER_PHASE1");let g=new Set;for(let T of m)g.add(T);return{eligible:!0,plan:{prefilterWhere:R,residualWhere:y,exactRelativeLeaves:u,relativeFunctionNames:g,appliedKlikes:l.appliedKlikes,capability:r.capability,reasons:r.reasons}}}function XS(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}Pi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"NOT":Pi(o).length>0&&(r="RELATIVE_DATE_CONTEXT_UNSUPPORTED");return;case"BINARY":{if(Ba(o)===null)return;if(Te(o,t).capability!=="EXACT_PUSHDOWN"){r="RELATIVE_DATE_LEAF_NOT_EXACT";return}n.push(o);return}case"EXISTS":Pi(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 Ba(e){return e.right.type==="KINTONE_FUNC"&&lt(e.right.name)?e.right.name:e.right.type==="IN_LIST"&&e.right.values.length===1&&e.right.values[0].type==="KINTONE_FUNC"&&lt(e.right.values[0].name)?e.right.values[0].name:null}function Pi(e){let t=[],n=r=>{if(r.type==="BINARY"&&Ba(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 QS(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 ZS(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 Ga(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=Ga(e.left,t,n),i=Ga(e.right,t,n);return r!==null&&i!==null?{...e,left:r,right:i}:r??i}case"GROUP":{let r=Ga(e.expr,t,n);return r===null?null:{...e,expr:r}}case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return null}}var Ci={type:"BOOLEAN",value:!0};function $a(e,t){if(e.type==="BINARY"&&t.has(e))return Ci;switch(e.type){case"LOGICAL":{if(e.op!=="AND")return e;let n=$a(e.left,t)??Ci,r=$a(e.right,t)??Ci;return Ka(n)?Ka(r)?null:r:Ka(r)?n:n===e.left&&r===e.right?e:{...e,left:n,right:r}}case"GROUP":{let n=$a(e.expr,t)??Ci;return Ka(n)?Ci:n===e.expr?e:{...e,expr:n}}case"BINARY":case"NULL_CHECK":case"NOT":case"EXISTS":case"BOOLEAN":return e}}function Ka(e){return e.type==="BOOLEAN"&&e.value}function eT(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 tT(e,t){let n=new Map;for(let r of t){if(!wr.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 H=class extends Error{constructor(t){super(`ImportSourceError: ${t}`),this.name="ImportSourceError"}};function KE(e,t){if(!t)throw new H("IMPORT source capability is not available.");let n=t(e);if(!n)throw new H(`source "${e}" is not supplied.`);return n}async function Va(e,t){let n=t.get(e);return n||(n=e.load().then(r=>{if(!(r.bytes instanceof Uint8Array))throw new H("loader must return Uint8Array bytes.");if(r.bytes.byteLength>10485760)throw new H("source exceeds the 10485760 byte limit.");return r}),t.set(e,n)),n}function nT(e,t){try{return new TextDecoder(t==="sjis"?"shift_jis":"utf-8",{fatal:!0}).decode(e).replace(/^\uFEFF/,"")}catch{throw new H(`invalid ${t.toUpperCase()} byte sequence.`)}}function rT(e){let t=[],n=[],r="",i=!1,o=!1,a=0,s=()=>{n.push(r),r="",o=!1},l=()=>{s(),t.push(n),n=[]};for(;a<e.length;){let c=e[a];if(i){if(c==='"'){if(e[a+1]==='"'){r+='"',a+=2;continue}i=!1,o=!0,a++;continue}r+=c,a++;continue}if(o&&c!==","&&c!=="\r"&&c!==`
10
+ `)throw new H(`unexpected character after closing quote at offset ${a}.`);if(c==='"'){if(r.length!==0)throw new H(`quote in unquoted cell at offset ${a}.`);i=!0,a++;continue}if(c===","){s(),a++;continue}if(c==="\r"||c===`
11
11
  `){c==="\r"&&e[a+1]===`
12
- `&&a++,l(),a++;continue}r+=c,a++}if(i)throw new W("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function WS(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new W(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new W(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Ba(e,t){let n=VS(BS(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}`)),WS(r),i.length===0)throw new W("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new W(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var HS=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),YS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Pi=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 vE(e,t,n){if(!HS.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Pi;return YS.has(t??"")?r.map(i=>({code:i})):r}function Kt(e,t,n,r){throw new W(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function UE(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new W("JSON source is not valid UTF-8.")}}function ME(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
12
+ `&&a++,l(),a++;continue}r+=c,a++}if(i)throw new H("unterminated quoted cell.");return(r.length>0||n.length>0||o)&&l(),t}function iT(e){let t=new Set;e.forEach((n,r)=>{if(n==="")throw new H(`CSV column ${r+1} has an empty name.`);if(t.has(n))throw new H(`CSV column name "${n}" is duplicated.`);t.add(n)})}function Wa(e,t){let n=rT(nT(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}`)),iT(r),i.length===0)throw new H("CSV has no data rows.");return i.forEach((o,a)=>{if(o.length!==r.length)throw new H(`CSV row ${a+(t.hasHeader?2:1)} has ${o.length} cells; expected ${r.length}.`)}),{columns:r,rows:i}}var oT=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),aT=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),Oi=class extends Error{constructor(){super("multiple-value CSV cell contains an empty LF-delimited item");this.code="ERR_IMPORT_MULTI_EMPTY_ITEM";this.name="ImportCsvValueError"}};function GE(e,t,n){if(!oT.has(t??""))return e;if(e==="")return[];let r=e.split(/\r\n|\n/);if(r.some(i=>i===""))throw new Oi;return aT.has(t??"")?r.map(i=>({code:i})):r}function $t(e,t,n,r){throw new H(`JSON ${e} (offset=${t}, line=${n}, column=${r}).`)}function $E(e){try{return new TextDecoder("utf-8",{fatal:!0}).decode(e)}catch{throw new H("JSON source is not valid UTF-8.")}}function BE(e){let t=[],n=0,r=1,i=1,o=()=>{let s=e[n++];return s===`
13
13
  `?(r++,i=1):i++,s},a=()=>({offset:n,line:r,column:i});for(;n<e.length;){let s=e[n];if(s===" "||s===" "||s==="\r"||s===`
14
- `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let R=o();if(R==='"'){f=!0;break}if(R.charCodeAt(0)<32&&Kt("string contains an unescaped control character",l.offset,l.line,l.column),R!=="\\"){p+=R;continue}n>=e.length&&Kt("string has an unterminated escape",l.offset,l.line,l.column);let E=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
15
- `,r:"\r",t:" "};if(E in m){p+=m[E];continue}E!=="u"&&Kt(`has invalid escape \\${E}`,n-2,r,Math.max(1,i-2));let g=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(g)||Kt("has invalid unicode escape",n,r,i);for(let T=0;T<4;T++)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)))&&Kt("has an unpaired high surrogate",n,r,i),o(),o();let T=e.slice(n,n+4);for(let I=0;I<4;I++)o();let h=Number.parseInt(T,16);(h<56320||h>57343)&&Kt("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(y-55296<<10)+h-56320)}else y>=56320&&y<=57343?Kt("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(y)}f||Kt("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let c=e.slice(n),d=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(c)?.[0];if(d){for(let p=0;p<d.length;p++)o();t.push({kind:"number",lexeme:d,...l});continue}let u=/^(true|false|null)/.exec(c)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}Kt(`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 Va(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Wa(e){if(e.byteLength===0)throw new W("JSON source is empty.");let t=ME(UE(e)),n=0,r=(c,d=t[n])=>{throw new W(`JSON ${c} (offset=${d.offset}, line=${d.line}, column=${d.column}).`)},i=(c,d)=>c.kind==="punct"&&c.value===d,o=c=>{let d=t[n];(d.kind!=="punct"||d.value!==c)&&r(`expected ${c}; found ${Va(d)}`,d),n++},a=()=>{let c=t[n++];if(c.kind==="string")return c.value;if(c.kind==="number")return{kind:"number",lexeme:c.lexeme};if(c.kind==="literal")return c.value;if(c.kind==="punct"&&c.value==="{"){let d=new Map;if(i(t[n],"}"))return n++,d;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${Va(u)}`,u);let p=u.value;d.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),d.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return d}if(c.kind==="punct"&&c.value==="["){let d=[];if(i(t[n],"]"))return n++,d;for(;;){d.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return d}return r(`expected a value; found ${Va(c)}`,c)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Va(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 W("JSON source contains no records.");return l.forEach((c,d)=>{if(!(c instanceof Map))throw new W(`JSON record ${d+1} must be an object.`)}),l}var jS=new Set(["CHECK_BOX","MULTI_SELECT"]),xE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function bt(e,t,n){throw new W(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function zS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function qS(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&bt(n,t.code,"boolean is not accepted."),zS(e)){t.fieldType==="NUMBER"&&bt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&bt(n,t.code,`JSON number ${e.lexeme} must be a non-negative-zero safe integer lexeme.`);let i=Number(e.lexeme);return Number.isSafeInteger(i)||bt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&bt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||bt(n,t.code,"unsupported value type."),!jS.has(t.fieldType)&&!xE.has(t.fieldType)&&bt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&bt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&bt(n,t.code,"array elements must not contain duplicates."),xE.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Mu(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new W("JSON source is UTF-8 only.");let i=Wa(t.bytes);if(i.length>r)throw new W(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new W("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,c)=>{for(let p of l.keys())o.has(p)||bt(c+1,p,"unknown key (not declared in INTO).");let d={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),d[p.code]=qS(l.get(p.code),p,c+1));a.push(d),s.push(u)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function xu(e,t,n,r,i,o){let a=Ba(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new W(`source rows (${a.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new W("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((g,y)=>[g,y]));for(let g of r)if(!l.has(g))throw new W(`ERR_IMPORT_MISSING_COLUMN: required header "${g}" is missing.`);let c=new Map(i.map(g=>[g.code,g])),d=new Set(r);if(o&&d.has(o))throw new W("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new W(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],p=[],f=g=>a.rows.filter(y=>y[g]!=="").length,R=g=>g.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":g.inSubtable||g.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":g.writable===!1?`non-writable ${g.fieldType} field`:`known export-only ${g.fieldType} field`;for(let[g,y]of a.columns.entries()){if(d.has(y)||y===o)continue;let T=c.get(y);if(T)u.push({column:y,reason:R(T),nonEmptyCells:f(g)});else if(e.ignoreUnknownColumns)p.push({column:y,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(g)});else throw new W(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${y}".`)}for(let g of r){let y=c.get(g);if(!y)throw new Error(`ArgumentError: DML target field ${g} does not exist.`);if(y.inSubtable||y.writable===!1||y.fieldType==="FILE"||y.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${g} is not writable (${y.fieldType}).`)}let E=[];return{rows:a.rows.map(g=>{let y=[],T={};for(let h of r){let I=g[l.get(h)];try{T[h]=vE(I,c.get(h)?.fieldType,{cliKintone:!0})}catch(N){if(!(N instanceof Pi))throw N;T[h]=I,y.push({field:h,code:N.code,message:N.message})}}return E.push(y),T}),columns:[...r],columnMeta:new Map(r.map(g=>[g,{fieldType:c.get(g)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:E,...o?{recordNumberSourceValues:a.rows.map(g=>g[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:u,ignoredUnknownColumns:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((c,d)=>[c,l[d]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Oi=(e,t,n)=>{throw new W(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function kE(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new W("JSON source is UTF-8 only.");let o=Wa(t.bytes);if(o.length>r)throw new W(`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 W("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,c)=>{let d=c+1;for(let R of l.keys())a.has(R)||Oi(d,R,"unknown key (not declared in INTO).");let u=new Map,p=new Map,f=new Set;for(let R of n){let E=R.kind==="FIELD"?R.field:R.subtableCode;if(!l.has(E))continue;let m=l.get(E);if(R.kind==="FIELD"){m instanceof Map&&Oi(d,E,"object is not accepted for a top-level field."),u.set(E,m);continue}Array.isArray(m)||Oi(d,E,"subtable value must be an array."),f.add(E);let g=new Set(R.children),y=m.map((T,h)=>{T instanceof Map||Oi(d,E,`childRow=${h+1} must be an object.`);let I=T;for(let N of I.keys())g.has(N)||Oi(d,N,`unknown child key in subtable ${E} at childRow=${h+1}.`);if(s++,s>i)throw new W(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:h+1,values:I}});p.set(E,y)}return{rowNumber:d,top:u,subtables:p,replacementTables:f}})}}function FE(e,t,n,r,i,o){let a=Ba(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new W('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((p,f)=>[p,f]));if(o&&!s.has(o))throw new W(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(p=>p.kind==="FIELD"),c=n.filter(p=>p.kind==="SUBTABLE");for(let p of l)if(!s.has(p.field))throw new W(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of c){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new W(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new W(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let d=[],u;if(a.rows.forEach((p,f)=>{let R=f+2,E=p[0];if(E!==""&&E!=="*")throw new W(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(E)} at source row ${R}.`);if(E==="*"){if(d.length>=i)throw new W(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:d.length+1,markerRowNumber:R,top:new Map(l.map(m=>[m.field,p[s.get(m.field)]])),subtables:new Map(c.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},d.push(u)}else if(u){for(let m of l){let g=p[s.get(m.field)];if(g!==""&&g!==u.top.get(m.field))throw new W(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${R}.`)}if(o){let m=p[s.get(o)];if(m!==""&&m!==u.recordNumberSourceValue)throw new W(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new W(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let m of c){let g=p[s.get(m.rowIdSourceHeader)],y=new Map(m.children.map(h=>[h,p[s.get(h)]]));if(g===""&&[...y.values()].every(h=>h===""))continue;let T=u.subtables.get(m.subtableCode);T.push({childRowNumber:T.length+1,sourceRowNumber:R,...g?{rowId:g}:{},values:y})}}),d.length===0)throw new W("CSV has no parent rows.");return{records:d}}var JS=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),XS=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Gu(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function BE(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)GE(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let R=a.get(p.subtableCode)??new Map;for(let E of p.children)GE(E,R.get(E),p.subtableCode)}let c=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),d=e.records.map(p=>QS(p,s,l,o,a,r,i,c)),u=d.flatMap(p=>[...p.errors]);return{parents:d,errors:u,invalidParentRows:new Set(d.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:c}}function QS(e,t,n,r,i,o,a,s){let l=[],c={};for(let p of t)e.top.has(p.field)&&Fu(e.top.get(p.field),r.get(p.field),o,c,p.field,l,ku(e,a,p.field));let d={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||KE(p,o,d,l,ku(e,a,p.code));let u=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let R=[];for(let E of e.subtables.get(p.subtableCode)){f.childRows++;let m=l.length,g={},y=i.get(p.subtableCode);for(let T of p.children){let h=y.get(T),I=ku(e,a,T,p.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(T)?Fu(E.values.get(T),h,o,g,T,l,I):KE(h,o,g,l,I)}l.length===m?(f.validChildRows++,R.push(g)):f.invalidChildRows++}u.set(p.subtableCode,R)}return{parentRow:e.rowNumber,valid:l.length===0,top:c,subtables:u,replacementTables:e.replacementTables,errors:l}}function GE(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&&XS.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function KE(e,t,n,r,i){let o=yn(e.defaultValue)?"":e.defaultValue;Fu(o,e,t,n,e.code,r,i,!yn(e.defaultValue))}function Fu(e,t,n,r,i,o,a,s=!1){let l=ZS(e),c=We(l,t,n);c.ok?r[i]={value:eT(l,t)?l:c.value}:o.push({...a,code:c.code,message:s?`\u65E2\u5B9A\u5024: ${c.message}`:c.message})}function ZS(e){return $E(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:$E(t)?t.lexeme:t):e}function $E(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function eT(e,t){return JS.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function ku(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 Ku=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function $u(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":tT(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 tT(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 Bu(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 VE(e,t){return Bu(e,t,"DROP")}function WE(e){for(let t of e.records)for(let[n,r]of t.subtables)for(let i of r)if(i.rowId!==void 0||i.values.has("_rid")||i.values.has("id"))throw new Error(`ArgumentError: JSON IMPORT subtable ${n} does not accept _rid/id; rows are always newly numbered.`)}function HE(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,c])=>{let d=a?.record[l]?.value,u=Array.isArray(d)?d.length:0;return{table:l,existingRows:u,inputRows:c.length,addRows:c.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function nT(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function YE(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 jE(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],c=l===void 0?void 0:r.get(l),d=[...o.errors];if(!c||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:d};let u=new Map,p=[];for(let f of o.replacementTables){let R=nT(c.record,f),E=new Set(R.map(N=>N.id).filter(N=>!!N)),m=s.subtables.get(f)??[],g=o.subtables.get(f)??[],y=0,T=0,h=0,I=m.map((N,D)=>{let P=g[D]??{};return N.rowId&&E.has(N.rowId)?(y++,{rowId:N.rowId,record:P}):(N.rowId&&((i.get(N.rowId)??[]).some(U=>U.parentId!==l||U.table!==f)&&d.push({operation:"UPDATE",parentRow:o.parentRow,field:N.rowId,subtable:f,subrow:N.childRowNumber,sourceRow:N.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${N.rowId}`,sourceValues:N.values}),h++),T++,{record:P})});u.set(f,I),p.push({table:f,existingRows:R.length,inputRows:m.length,updateRows:y,addRows:T,deleteRows:R.length-y,rowIdNotFound:h})}return{parentRow:o.parentRow,targetId:l,...c.revision===void 0?{}:{revision:c.revision},valid:d.length===0,top:o.top,subtables:u,tables:p,errors:d}})}var Vu="#__import_source";function zE(e){return{...e,from:{appId:0,alias:null,cteName:Vu}}}function rT(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function Wu(e,t){let n=e.map(rT),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 iT="\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",rs=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"}},ye=new WeakMap;var kn=new WeakMap,cs=new WeakMap,Zu=Symbol("statementEvaluationContext");function hR(e){return e[Zu]?e:{...e,[Zu]:{statementInstant:new Date}}}function ae(e){return e[Zu]??{}}var qE=new WeakMap,oT=1,aT=1;function sT(e,t){if(t)return t;let n=qE.get(e);return n||(n=`client:${oT++}`,qE.set(e,n)),n}function AR(e){return`${e}\0inv:${aT++}`}function lT(){return{getCalls:0,postCalls:0,putCalls:0,deleteCalls:0,fieldCalls:0,numberPrecisionCalls:0,appsCalls:0,processStatusCalls:0,cursorCreateCalls:0,cursorGetCalls:0,cursorDeleteCalls:0,cursorRecordsScanned:0,cursorActiveCurrent:0,cursorActivePeak:0,cursorCleanupFailures:0,cursorCreateOutcomeUnknown:0,cursorQuarantinedCurrent:0,fetchedRows:0,limitReached:!1,limitReachedApps:[],elapsedMs:0}}var SR=Symbol("limitMetricsSink");function Nc(e,t){let n=e[SR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function uT(e,t){return{[SR]:t,getRecords:async n=>{t.getCalls+=1;let r=await e.getRecords(n);return t.fetchedRows+=r.records.length,r},openCursor:async n=>{t.cursorCreateCalls+=1;let r;try{r=await e.openCursor(n)}catch(a){throw a instanceof Error&&a.name==="CursorCreateOutcomeUnknownError"&&(t.cursorCreateOutcomeUnknown+=1,t.cursorQuarantinedCurrent+=1),a}t.cursorActiveCurrent+=1,t.cursorActivePeak=Math.max(t.cursorActivePeak,t.cursorActiveCurrent);let i=!1,o=()=>{i||(i=!0,t.cursorActiveCurrent-=1)};return{totalCount:r.totalCount,nextPage:async()=>{t.cursorGetCalls+=1;let a=await r.nextPage();return t.cursorRecordsScanned+=a.records.length,a.next||o(),a},close:async()=>{i||(t.cursorDeleteCalls+=1);try{await r.close(),o()}catch(a){throw t.cursorCleanupFailures+=1,t.cursorQuarantinedCurrent+=1,a}}}},postRecords:n=>(t.postCalls+=1,e.postRecords(n)),putRecords:n=>(t.putCalls+=1,e.putRecords(n)),deleteRecords:n=>(t.deleteCalls+=1,e.deleteRecords(n)),getApps:()=>(t.appsCalls+=1,e.getApps()),getFields:n=>(t.fieldCalls+=1,e.getFields(n)),getNumberPrecision:n=>(t.numberPrecisionCalls+=1,e.getNumberPrecision(n)),getProcessStatuses:n=>(t.processStatusCalls+=1,e.getProcessStatuses(n))}}var JE=Symbol("searchAbortFailClosed");function Cc(e,t,n){return n&&e[JE]?e:{...e,...n?{[JE]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new rs;return i}}}function TR(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 cT(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(iT),{...e,warnings:[...n]}}async function ec(e,t,n){let r=await Xi(e,t,n);return vu(r),r}async function Xi(e,t,n){return _E(e,{select:async r=>{let{resolver:i}=await On(r,t,n);return Se(r.where,i)},dml:r=>$R(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await On(r,t,n);return Uu(r,i)},joinServerFunctionPlan:async r=>{await On(r,t,n);let i=await ds(r,t,n),o=ps(r,i);return o===null?null:(dr(o.joinPlan)&&Mc.set(r,o),o.joinPlan)}})}async function XE(e,t,n,r){n=hR(n);let i=await Xi(e,t,r);e.type!=="EXPLAIN"&&vu(i);let o=nc(e);if(o!==null&&!JI(e))throw new Error(qa(o,"in a batch"));if(Qn("phase15b",e),Vr("phase15b",e),Je(e),e.type!=="EXPLAIN"&&await kT(e,t,r),e.type==="IMPORT")return cm(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 hc(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 Hc(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 pT(e,t,n,r);case"SELECT":return Bt(sc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return ZR(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Kc(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return WI(e,t,n,r);case"INSERT_SELECT":return qc(e,t,n,r);case"UPSERT":return uw(e,t,n,r);case"UPSERT_SELECT":return Qc(e,t,n,r);case"UPDATE":return hc(e,t,n,r);case"DELETE":return lw(e,t,n,r);case"REORDER":return Rw(e,t,n,r);case"SHOW_APPS":return Em(t);case"DESCRIBE":return Rm(e,t,r);case"EXPLAIN":return Nw(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?it(n.dmlMaxRows,"dmlMaxRows",Vt):Vt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",_e):_e,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions);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 vR(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var Pc=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Oc=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Lc(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 IR(e=!1){let t=e?Oc:Pc;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function pT(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return wR(e,t,n,r)}async function wR(e,t,n,r){let i=await X(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=Zl(e,i),l=new Set(s.flatMap(L=>Xl(L.field))),c={present:Jl.filter(L=>l.has(L)),absent:Jl.filter(L=>!l.has(L))},d=e.checkGroups??[],u=or(d);for(let L of u){if(L.field!=="$id"&&!o.has(L.field)&&!a.has(L.field))throw Oe(`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"),xn(e,p);let f=Lc(e.where),R=[...new Set(["$id",...s.map(L=>L.subtableCode??L.field.code),...f,...u.map(L=>L.field)])];for(let L of f){if(L!=="$id"&&!o.has(L)&&!a.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${e.appId}.`);if(L!=="$id"&&!o.has(L)&&a.has(L))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let E=s.some(L=>L.field.fieldType==="NUMBER")?await Ct(e.appId,t,r):void 0,m=L=>L.field==="$id"?ne({fieldType:"__ID__"}):o.get(L.field)?.semantics??(o.has(L.field)?ne(o.get(L.field)):void 0),g=Se(e.where,m);if(g.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(g)}).`);let y=new Map([...o].map(([L,F])=>[L,F.fieldType])),T=new Map([...o.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),h=e.where===null?null:g.capability==="EXACT_PUSHDOWN"?e.where:ll(e.where,{allowUnqualifiedFields:!0,fieldTypes:y,fieldOptions:T,allowKlike:!1}),I=h===null?"":j(h),D=(await Ke(t.getRecords,e.appId,I,R,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(L=>({id:String(L.$id?.value??""),record:L,flat:Gt(L,null)})).filter(L=>e.where===null||ue(e.where,L.flat,F=>p.get(F.field),void 0,void 0,ae(n))),P=[],M=new Map,U=new Map,C=new Set,v=0,b=L=>{if(C.add(L.id),v+=1,e.summary){let $=JSON.stringify([L.id,L.subtable??"",L.field,L.code]),x=U.get($);x?x.$err_count=String(Number(x.$err_count)+1):U.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]),H=M.get(F);H?(H.$err_count=String(Number(H.$err_count)+1),L.subrow!==void 0&&(H.$err_subrow=`${H.$err_subrow},${L.subrow}`,H.$err_subrow_id=`${H.$err_subrow_id},${L.subrowId??""}`)):M.set(F,{$id:L.id,$err_field:L.field,$err_code:L.code,$err_message:L.message,$err_value:L.value,$err_subtable:L.subtable??"",$err_subrow:L.subrow===void 0?"":String(L.subrow),$err_subrow_id:L.subrowId??"",$err_count:"1"})},O=s.filter(L=>!L.subtableCode),A=new Map;for(let L of s){if(!L.subtableCode)continue;let F=A.get(L.subtableCode)??[];F.push(L),A.set(L.subtableCode,F)}for(let L of D){for(let F of O){let H=L.record[F.field.code]?.value,$=We(H,F.field,E);$.ok||b({id:L.id,field:F.field.code,code:$.code,message:$.message,value:ai(H,F.field.fieldType)})}for(let[F,H]of A){let $=L.record[F]?.value;if(Array.isArray($))for(let x=0;x<$.length;x++){let G=$[x];for(let Y of H){let K=G.value?.[Y.field.code]?.value,_=We(K,Y.field,E);if(!_.ok){let V=Ea(F,x,G);b({id:L.id,field:Y.field.code,code:_.code,message:_.message,value:ai(K,Y.field.fieldType),...V})}}}}for(let F of na(d,L.flat,H=>p.get(H.field)))b({id:L.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)P.push(...U.values());else for(let L of M.values()){let F=Number(L.$err_count);L.$err_subtable!==""&&F>=2&&(L.$err_message=`${L.$err_message}\uFF08${F}\u884C: ${L.$err_subrow}\uFF09`),P.push(L)}let k={type:"SELECT",columns:[...e.summary?Oc:Pc],rows:P,rowCount:P.length,validateStats:{errorRecords:C.size,errorCount:v,constraintMetadata:c}};return ye.set(k,IR(e.summary===!0)),k}var rt=1e4;function Nt(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,c)=>l!==n[c])||!dT(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 dT(e,t){if(e===t)return!0;if(!e||!t||e.size!==t.size)return!1;for(let[n,r]of e){let i=t.get(n);if(!i||i.displayName!==r.displayName||i.sortKind!==r.sortKind||i.fieldType!==r.fieldType||!Po(i.semantics,r.semantics))return!1}return!0}var Nn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};function bR(e,t,n,r={},i){kt(r);let o=[...e],a=bl(o);if(o.forEach(R=>Vr("phase15b",R)),r.allowApplyMutation!==!0&&o.some(R=>fl(R)||R.type==="UPSERT"&&gT(R)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(r.continueOnError&&a.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let R of a.statements){if(!R.isDml||R.tempTablesReferenced.length===0||R.statementType==="INSERT_SELECT"||R.statementType==="UPSERT_SELECT")continue;let E=o[R.index];if(!(E?.type==="UPDATE"&&E.from?.cteName!=null))throw new se(`ArgumentError: temp table references in ${R.statementType} are not supported yet.`,R.index)}let s=ou(o,r.variables),l=DR(o,s),c={...r,variables:s},d=$s(r.asOf??new Date,r.timezone),u=new Map;for(let[R,E]of Object.entries(d.values))u.set(wr(R),{type:"string",value:E});let p=lT(),f=Date.now();return{statements:o,analysis:a,metrics:p,options:c,client:uT(n,p),cacheContext:AR(sT(n,r.cacheContext)),tempTables:new Map,variables:u,relativeDateVariables:l,clock:ae(hR(c)),dialect:t,startedAt:f,deadline:r.timeoutMs!=null?f+r.timeoutMs:null,failed:new Set,cursorCleanups:new Set,...i?{onChunkWritten:i}:{},nextIndex:0,aborted:null,disposed:!1,busy:!1}}async function NR(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=Cc(t.client,a,r.statementType!=="SELECT"&&r.statementType!=="UNION"&&r.statementType!=="WITH"||Ff(e)),l=TR(s);t.cursorCleanups.add(l.closeActive);let c=t.deadline!==null?t.deadline-Date.now():null,d=t.onChunkWritten?mT(l.client,n,e,t.onChunkWritten):l.client,u=await _R(yT({stmt:e,info:r,client:d,options:t.options,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect}),c,l.closeActive);u.result&&(u.result=cT(u.result,a));let{exitTriggered:p,...f}=u;return p&&(t.aborted="exit"),t.metrics.elapsedMs=Date.now()-t.startedAt,{...i,status:"success",...f}}catch(o){return t.failed.add(n),o instanceof Nn?t.aborted="timeout":o instanceof $i?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:PT(o)}}finally{t.busy=!1}}function fT(e){let t=async()=>{throw new Error("PreviewWriteBlockedError: previewStatement blocked a write API call.")};return{...e,postRecords:t,putRecords:t,deleteRecords:t}}async function CR(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=ET(e),a=RT(e),s=QE(t.metrics);try{if(t.aborted)return t.aborted!=="exit"&&t.failed.add(r),Hu(o,a);if(i.dependsOn.find(E=>t.failed.has(E))!==void 0)return t.failed.add(r),Hu(o,a);if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(r),t.aborted="timeout",Hu(o,a);let c={aborted:!1},d=Cc(t.client,c,!0),u=TR(d);t.cursorCleanups.add(u.closeActive);let p=fT(u.client),f=t.deadline!==null?t.deadline-Date.now():null,R=await _R(hT({stmt:e,info:i,client:p,options:t.options,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect},n),f,u.closeActive);return t.metrics.elapsedMs=Date.now()-t.startedAt,{...R,reads:QE(t.metrics)-s}}catch(l){throw t.failed.add(r),l instanceof Nn?t.aborted="timeout":t.options.continueOnError||(t.aborted="fail-fast"),t.metrics.elapsedMs=Date.now()-t.startedAt,l}finally{t.busy=!1}}function QE(e){return e.getCalls+e.cursorCreateCalls+e.cursorGetCalls}function ET(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 RT(e){if("appId"in e&&typeof e.appId=="number")return e.appId;throw new Error("ArgumentError: previewStatement requires a DML target app.")}function Hu(e,t){return{kind:"PREVIEW",operation:e,appId:t,counts:{insert:0,update:0,delete:0},samples:[],reads:0,estimatedWrites:0}}async function PR(e){e.disposed||(e.disposed=!0,await Promise.all([...e.cursorCleanups].map(t=>t().catch(()=>{}))),e.cursorCleanups.clear(),om(e.cacheContext),e.metrics.elapsedMs=Date.now()-e.startedAt)}function mT(e,t,n,r){let i=0,o=async(l,c,d,u)=>{await r({statementIndex:t,appId:l,operation:c,records:d,chunkIndex:i++,...u===void 0?{}:{lastKeyValue:u}})},a=(n.type==="UPSERT"||n.type==="UPSERT_SELECT")&&n.keyFields.length===1?n.keyFields[0]:void 0,s=l=>{if(a===void 0||l.length===0)return;let c=l[l.length-1][a]?.value;return typeof c=="string"?c:void 0};return{...e,postRecords:async l=>{let c=await e.postRecords(l);return await o(l.app,"INSERT",l.records.length,s(l.records)),c},putRecords:async l=>{await e.putRecords(l),await o(l.app,"UPDATE",l.records.length,s(l.records.map(c=>c.record)))},deleteRecords:async l=>{await e.deleteRecords(l),await o(l.app,"DELETE",l.ids.length)}}}function gT(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 yT(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:c,dialect:d}=e;if(t.type==="SET_VARIABLE"){let p=Ki(t,s);if(Je(p),await ec(p,r,o),p.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:p.expr.elements.map(f=>({type:"string",value:f.value}))});else if(p.expr.type==="SCALAR_SUBQUERY")try{let f=await xR(p.expr.query,r,i,o,a),R=await MR(p.expr.query,r,o,a),E=R?Number(f):Number.NaN;s.set(t.name,R&&Number.isFinite(E)?{type:"number",value:E,raw:f}:{type:"string",value:f})}catch(f){throw f instanceof Pn?new Error(`ArgumentError: ${f.message}`):f}else s.set(t.name,ZE(p.expr,c));return{}}if(t.type==="DECLARE_VARIABLE"){if(t.annotation==="RELATIVE_DATE")return s.set(t.name,{type:"relative-date",value:l.get(t.name)}),{};let p=i.variables??{};if(Object.prototype.hasOwnProperty.call(p,t.name))s.set(t.name,{type:"string",value:p[t.name]});else{let f=ZE(t.default,c);s.set(t.name,{type:"string",value:f.type==="number"?f.raw??String(f.value):f.value})}return{}}let u=Ki(t,s);if(Qn("phase15b",u),Vr("phase15b",u),Je(u),d===1&&(u.type==="INSERT"||u.type==="UPDATE"||u.type==="DELETE")&&u.subtableCode)throw new Error("ArgumentError: dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(d===1&&(u.type==="UPSERT"||u.type==="UPSERT_SELECT")){let p=pn(u)[0];if(p)throw new Error(`ArgumentError: ${p.message}`);let f=await X(u.appId,r,o),R=pn(u,f)[0];if(R)throw new Error(`ArgumentError: ${R.message}`)}if(await ec(u,r,o),u.type==="VALIDATE"){let p=await wR(u,r,{...i,onLimitReached:"error"},o);return u.errorTable&&Nt(a,u.errorTable,p.columns,p.rows,i.tempTableMaxRows??rt,ye.get(p)??IR(u.summary===!0)),{result:p}}if(u.type==="IMPORT")return{result:await cm(u,r,i,o,a)};if("validateOnly"in u&&u.validateOnly===!0){let p=await Hc(u,r,{...i,onLimitReached:"error"},o,a,n.index+1);return u.validationErrorTable&&Nt(a,u.validationErrorTable,p.columns,p.errors,i.tempTableMaxRows??rt,kn.get(p)??new Map),{result:p}}if("onErrorSkip"in u&&u.onErrorSkip===!0)return{result:await gc(u,r,{...i,onLimitReached:"error"},o,a,n.index+1)};if(u.type==="CREATE_TEMP_TABLE"){let p={...i,maxRecords:i.tempTableMaxRows??rt,onLimitReached:"error"},f=await CT(u.query,r,p,o,a);return a.set(u.name,{rows:f.rows,columns:f.columns,columnMeta:ye.get(f)}),{tempTable:u.name,rowCount:f.rows.length}}if(t.type==="DROP_TEMP_TABLE")return a.delete(t.name),{tempTable:t.name};if(t.type==="EXPLAIN"){let p=u;bc.set(p,a);try{return{result:await XE(p,r,i,o)}}finally{bc.delete(p)}}if(u.type==="ASSERT"){let p=await vR(u,r,i,o,a);return p.warning!==void 0?{result:p}:{}}if(u.type==="EXIT"){let p=await vT(u,r,i,o,a);return{result:p,...p.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(u.type==="SELECT"||u.type==="UNION")return{result:await Et(u,r,i,a,o,i.captureColumnMeta===!0)};if(u.type==="WITH")return{result:await Kc(u,r,i,o,a)};if(u.type==="INSERT_SELECT")return{result:await qc(u,r,i,o,a)};if(u.type==="UPSERT_SELECT")return{result:await Qc(u,r,i,o,a)};if(u.type==="UPDATE"&&u.from?.cteName!=null)return{result:await hc(u,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}return{result:await XE(u,r,i,o)}}async function hT(e,t){let{stmt:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,dialect:l}=e,c=Ki(n,s);if(Qn("phase15b",c),Vr("phase15b",c),Je(c),l===1&&(c.type==="INSERT"||c.type==="UPDATE"||c.type==="DELETE")&&c.subtableCode)throw new Error("ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.");if(l===1&&(c.type==="UPSERT"||c.type==="UPSERT_SELECT")){let d=pn(c)[0];if(d)throw new Error(`ArgumentError: ${d.message}`);let u=await X(c.appId,r,o),p=pn(c,u)[0];if(p)throw new Error(`ArgumentError: ${p.message}`)}switch(await ec(c,r,o),c.type){case"INSERT":return ST(c,r,i,o,t);case"INSERT_SELECT":return TT(c,r,i,o,a,t);case"UPDATE":return IT(c,r,i,o,a,t);case"DELETE":return wT(c,r,i,o,t);case"UPSERT":return bT(c,r,i,o,t);case"UPSERT_SELECT":return NT(c,r,i,o,a,t);default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function Dn(e,t,n,r){let i=e==="UPSERT"?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:i}}function Cn(e,t){return Object.fromEntries(t.map(n=>[n,Xe(e?.[n]?.value)]))}function AT(e){if(e.length!==0)return e.length===1?e[0]:JSON.stringify(e)}async function ST(e,t,n,r,i){let o=await Le(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await Te(e.appId,t,r),l=Qr(e,s,ae(n)).flatMap(c=>c.records);return Rt(l,e.fields,o,a),Dn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,i).map(c=>({kind:"insert",after:Cn(c,e.fields)})))}async function OR(e,t,n,r,i,o){let a=await gs.materialize(e,t,n,r,i,o);if(zc(a),a.columns.length!==e.fields.length){let c=e.type==="INSERT_SELECT"?"INSERT":"UPSERT";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${a.columns.length}\uFF09\u3068 ${c} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)}let s=await Te(e.appId,t,r);return{records:a.rows.map((c,d)=>{let u={};return e.fields.forEach((p,f)=>{a.importPresence&&!a.importPresence[d]?.has(p)||(u[p]={value:Wc(c[a.columns[f]]??"",s.get(p))})}),u}),fieldTypes:s}}async function TT(e,t,n,r,i,o){let a=await Le(e.appId,e.fields,t,r),s=await $e(e.appId,e.fields,a,t,r),{records:l}=await OR(e,t,n,r,i,a);return l.forEach(c=>Rt([c],e.fields.filter(d=>d in c),a,s)),Dn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,o).map(c=>({kind:"insert",after:Cn(c,e.fields)})))}async function IT(e,t,n,r,i,o){let a=e.assignments.map(p=>p.field),s=await Le(e.appId,a,t,r),l=await $e(e.appId,a,s,t,r);if(await sn(e,t,r),He(e.where))return Dn("UPDATE",e.appId,{insert:0,update:0,delete:0},[]);let c=await sm(e,t,n,r,i,a),d=c.map(p=>p.record);Rt(d,a,s,l);let u=c.slice(0,o).map(p=>({kind:"update",before:Cn(p.validationSnapshot,a),after:Cn(p.record,a)}));return Dn("UPDATE",e.appId,{insert:0,update:c.length,delete:0},u)}async function wT(e,t,n,r,i){if(await sn(e,t,r),He(e.where))return Dn("DELETE",e.appId,{insert:0,update:0,delete:0},[]);let o=kl(e),a=await fi(t.getRecords,o.app,o.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});return Dn("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 LR(e,t,n,r,i,o,a,s){for(let p of e.keyFields)if(!e.fields.includes(p))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${p}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);t.forEach(p=>Rt([p],e.fields.filter(f=>f in p),r,i));let l=t.map(p=>e.keyFields.map(f=>Xe(p[f]?.value))),c=await Ar(e.appId,e.keyFields,l,o,a,n,e.fields),d=[],u=[];return t.forEach((p,f)=>{let R=hr(c,l[f]),E=AT(l[f]);R===void 0?d.push({kind:"insert",...E===void 0?{}:{key:E},after:Cn(p,e.fields)}):u.push({kind:"update",...E===void 0?{}:{key:E},before:Cn(c.snapshots?.get(R),e.fields),after:Cn(p,e.fields)})}),Dn("UPSERT",e.appId,{insert:d.length,update:u.length,delete:0},[...d,...u].slice(0,s))}async function bT(e,t,n,r,i){let o=await Le(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await Te(e.appId,t,r),l=e.values.map(c=>Object.fromEntries(e.fields.map((d,u)=>{let p=c[u];return[d,{value:p.type==="CASE_VALUE"?Mt(p.expr,{},s.get(d),ae(n)):yt(p,s.get(d))}]})));return LR(e,l,s,o,a,t,n,i)}async function NT(e,t,n,r,i,o){let a=await Le(e.appId,e.fields,t,r),s=await $e(e.appId,e.fields,a,t,r),{records:l,fieldTypes:c}=await OR(e,t,n,r,i,a);return LR(e,l,c,a,s,t,n,o)}async function CT(e,t,n,r,i){return e.type==="WITH"?Kc(e,t,n,r,i,!0):Et(e,t,n,i,r,!0)}async function _R(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Nn;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(c=>{l=setTimeout(c,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Nn)})()},t)})])}catch(a){throw a instanceof Nn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function PT(e){let t;if(e instanceof St)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Yu(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:OT(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Yu(r),message:r}}else{let n=String(e);t={code:Yu(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Yu(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function OT(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function LT(e,t=!1,n=!1){let r=new Ot(e).tokenize();return new jt(r,{import:t,dialect1:n}).parseStatements()}function _T(e,t){try{let n=LT(`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 DR(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)?_T(r.name,t[r.name]):r.default);return n}function ZE(e,t={}){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:z(e)};case"KINTONE_FUNC":return{type:"string",value:Xd(e.name,t)};case"STRING_FUNC":return{type:"string",value:me(e,{},void 0,void 0,t)};case"ARITH":{let n=Re(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 Ki(e,t){return tc(e,t,!1)}function qa(e,t){return Bn(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 tc(e,t,n){if(Array.isArray(e))return e.map(r=>tc(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(qa(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(qa(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,tc(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(qa(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=DT(i);if(o.type==="SELECT"&&et(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&et(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 et(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function DT(e){if(e.type==="NOT"&&et(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&et(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(et(t,!1)||et(n,!1))return{type:"BOOLEAN",value:!1};if(et(t,!0))return n;if(et(n,!0))return t}else if(e.op==="OR"){if(et(t,!0)||et(n,!0))return{type:"BOOLEAN",value:!0};if(et(t,!1))return n;if(et(n,!1))return t}}return e}function nc(e){if(Array.isArray(e)){for(let t of e){let n=nc(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=nc(n);if(r!==null)return r}}return null}var $i=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},Pn=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function vR(e,t,n,r,i){let o=await UR(e,t,n,r,i);if(!o.passed){if(e.warn===!0)return{type:"ASSERT",condition:e.text,passed:!1,warning:e.message??`assertion failed: ${e.text} (actual: ${o.actual}).`};let a=e.message!==void 0?` ${e.message}`:"";throw new $i(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function vT(e,t,n,r,i){let o=await UR(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function UR(e,t,n,r,i){let o=await Ha(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 Ha(e.low,t,n,r,i),c=await Ha(e.high,t,n,r,i);return{passed:vt(">=",o.value,l.value,ju(o,l))&&vt("<=",o.value,c.value,ju(o,c)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await Ha(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string"):ju(o,a);return{passed:vt(e.op,o.value,a.value,s),actual:o.value}}function ju(e,t){return B(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function Ha(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:z(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(rc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await xR(e.query,t,n,r,i),a=await MR(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof Pn?new $i(o.message):o}}}async function MR(e,t,n,r){let i=e.columns[0],o=i?.type==="ARITH_COL"||i?.type==="ARITH_AGG_COL"||i?.type==="WINDOW_COL"&&(i.windowKind===void 0||i.windowKind==="RANKING"||i.windowKind==="AGGREGATE"&&(i.aggFunc==="COUNT"||i.aggFunc==="SUM"||i.aggFunc==="AVG"))||i?.type==="AGGREGATE"&&(i.func==="COUNT"||i.func==="SUM"||i.func==="AVG"||i.func==="STDDEV_POP"||i.func==="STDDEV_SAMP"||i.func==="VAR_POP"||i.func==="VAR_SAMP"||i.func==="MEDIAN");if(i?.type==="AGGREGATE"&&i.func==="MODE"||i?.type==="WINDOW_COL"&&i.windowKind==="VALUE"||i?.type==="WINDOW_COL"&&i.windowKind==="AGGREGATE"&&(i.aggFunc==="MIN"||i.aggFunc==="MAX")){let a=(await Wi(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function xR(e,t,n,r,i){let{query:o,probed:a}=UT(e),s=await ki(o,t,n,r,i);if(s.columns.length!==1)throw new Pn(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new Pn("scalar subquery returned no rows (expected 1 row).");if(s.rowCount>1){let l=a&&s.rowCount===2?"2 or more rows":`${s.rowCount} rows`;throw new Pn(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function UT(e){return ee(e).type!=="NONE"||e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function rc(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=rc(e.left),n=rc(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 Qi(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||Tt(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await X(p,t,n);return[p,new Map(f.map(R=>[R.code,R]))]}))),l=new Set,c=p=>{if(Array.isArray(p)){p.forEach(c);return}if(p===null||typeof p!="object")return;let f=p;if(f.type==="SELECT")return;let R=String(f.op),E=f.right,m=["=","!=","<>"].includes(R)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(R)||m)){let g=f.left;g?.type==="FIELD"&&typeof g.field=="string"&&l.add(g.field)}Object.values(f).forEach(c)};c(e.where),c(e.having);for(let p of e.columns)p.type==="CASE_COL"&&c(p.expr);let d=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let E=await Vc(p,t,n);E&&d.set(p,E)}));let u=(p,f,R)=>{if(f==="$id")return jn(ne({fieldType:"__ID__"}),p.appId,"$id");if(R&&p.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let E=s.get(p.appId)?.get(Ee(p,f));if(!E)return;let m=E.semantics??ne(E),g=E.fieldType==="STATUS"&&d.has(p.appId)?{...m,optionOrder:d.get(p.appId)}:m;return jn(g,p.appId,E.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let R=o.find(E=>ce(E)===p.tableAlias);return R?R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):u(R,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):u(e.from,p.field,!0);let f=o.flatMap(R=>{let E=R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(p.field)?.semantics:u(R,p.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(R=>Xa(R,p.field)!==void 0))return f.length>1?B("string"):void 0}}var kR=new WeakMap;async function On(e,t,n,r,i=!1){let o=await Qi(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=rd(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&kR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function MT(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function FR(e){return MT(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function eR(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=Fe(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===ce(e.from)}):r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function tR(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 GR(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"||eR(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`+tR(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||eR(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`+tR(n,"VALUE"));return i}function _c(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=ye.get(e);return r&&ye.set(n,r),n}function Dc(e){let t=n=>{if(n===null||typeof n!="object")return!1;if(Array.isArray(n))return n.some(t);let r=n;return r.type==="CASE_WHEN"&&r.branches?.some(i=>Tt(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function KR(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Fe(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=B("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=B("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Un(r.arg,o=>{let a=t(o);return a?{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}:void 0}).semantics):r.type==="AGGREGATE"?r.func==="MIN"||r.func==="MAX"||r.func==="MODE"?r.arg.type!=="WILDCARD"&&(i=Un(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=vn(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function Ln(e){let t=e.reasons.find(r=>r.code==="WHERE_FIELD_UNRESOLVED"||r.code==="WHERE_OPERATOR_UNSUPPORTED"||r.code==="WHERE_OPERATOR_INVALID_FOR_FIELD_TYPE")??e.reasons[0];return[t?.field?`field=${t.field}`:null,t?.fieldType?`type=${t.fieldType}`:null,t?.operator?`operator=${t.operator}`:null,t?.code?`reason=${t.code}`:null].filter(r=>r!==null).join(", ")||"reason=WHERE_UNSUPPORTED"}function is(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function $R(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=Tt(e.where)?await X(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Se(null,()=>{}):Se(e.where,o=>{if(o.field==="$id")return ne({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?ne(a):void 0)})}async function sn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await $R(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new oe(`WHERE predicate cannot be represented by kintone REST (${Ln(r)})`)}async function Bt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l,c=new Set;if(await Vi(e,t,r,i),KT(e))return l=VT(e,n),o&&ye.set(l,await Wi(e,l.columns,t,r,i,a)),l;let{resolver:d}=await On(e,t,r,i,FR(e)),u=GR(e,d,s),p=await mr(e,t,r,i);await mm(e,t,n,r,c,i);let f=oI(e,Se(e.where,d));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(f)}).`);let R=ze(e),E,m;if(f.capability==="SUPERSET_PREFILTER"){let P=await Qi(e,t,r,i),M=Uu(e,P);M.eligible&&Du(e,M)&&(E=M.plan)}if(E===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let P=null;try{P=j(e.where)}catch{P=null}m=so({select:e,selectMode:R,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:P,relativeFunctionNames:he(e.where)})??void 0,m&&(E=m.prefilterPlan)}let g=f.capability==="EXACT_PUSHDOWN"?R:"FULL_SCAN",y=await Yi(e,t,r,i),T=is(e)?(e.orderMode==="KINTONE_NATIVE"?gi:mi)({stmt:e,staticMode:g,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:y.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Ce(e.where)}):null,h=await HT(e,T?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":g,t,r),I=vc(e,n,T),D=m!==void 0&&(R==="FULL_SCAN"||T?.kind==="CANONICAL_LOCAL")?Cc(t,{aborted:!1},!0):t;try{g==="SIMPLE"?l=await WT(e,D,I.effectiveOptions,r,T,y):l=await lI(e,D,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&E===void 0,y,E,p)}catch(P){VR(I,P)}return o&&ye.set(l,await Wi(e,l.columns,t,r,i,a)),_c(l,[...c,...u,...h])}function ic(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 BR(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 mr(e,t,n,r){let i=ee(e);if(!Hn(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(u=>u.table)],s=new Map,l=await Promise.all(a.map(async u=>{if(u.cteName!==null){let E=r?.get(u.cteName);if(!E)throw new Error(`InternalError: materialized schema ${u.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let p=await X(u.appId,t,n);if(!u.subtableCode){for(let E of p){if(E.inSubtable!==!0||!E.subtableCode)continue;let m=s.get(E.code)??[];m.push({appId:u.appId,owner:E.subtableCode}),s.set(E.code,BR(m))}return{kind:"APP",fieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=p.filter(E=>E.inSubtable&&E.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:p.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}})),c=Up(e,(u,p)=>l[p]),d=Fp(o,e.columns,c);return xT(e,o,d,s),Dr(e,Bp(e,d,c)),d}function xT(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let c=t[l],d=c?.type==="FIELD_NAME"?c.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,p=s.name.indexOf("."),f=p>=0?s.name.slice(p+1):s.name,R=r.get(s.name)??r.get(f)??[];throw R.length>0?new Error(ic(s.name,R)):new Error(`ArgumentError: unknown field code(s): ${s.name}${u}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var Bi=new WeakMap;async function kT(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;if(a.type==="SELECT"){for(let s of Object.values(a))await i(s);await Vi(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function FT(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let p=await X(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),s=(u,p)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(p);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,p)=>{if(p==="$id")return"$id";let f=Ee(u,p);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},c=(u,p)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?f.columns.includes(p):!0},d=(u,p,f,R)=>{let E=i.filter(y=>y.cteName===null&&l(y,f.field)!==null).length,m=i.some(y=>c(y,f.field)),g=ce(u);return{canonicalId:`source:${p}:APP${u.appId}:${R}`,directKey:f.tableAlias&&g?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!m?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let m=i.findIndex(T=>ce(T)===u.tableAlias);if(m<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let g=i[m];if(g.cteName!==null)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} resolves to materialized source ${g.cteName}; physical APP fields are required.`);let y=l(g,u.field);if(y===null){let T=s(g,Ee(g,u.field));throw T!==null&&T!==""?new Error(ic(u.field,[{appId:g.appId,owner:T}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${g.appId}.`)}return d(g,m,u,y)}let p=i.flatMap((m,g)=>{if(m.cteName!==null)return[];let y=l(m,u.field);return y===null?[]:[{table:m,tableIndex:g,code:y}]}),f=i.filter(m=>c(m,u.field));if(p.length+f.length>1)throw new Error(`ArgumentError: field ${u.field} is ambiguous across multiple sources.`);if(p.length===1&&f.length===0){let m=p[0];return d(m.table,m.tableIndex,u,m.code)}if(f.length===1)throw new Error(`ArgumentError: field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let R=i.flatMap(m=>{if(m.cteName!==null)return[];let g=s(m,Ee(m,u.field));return g===null||g===""?[]:[{appId:m.appId,owner:g}]}),E=BR(R);throw E.length>0?new Error(ic(u.field,E)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function Vi(e,t,n,r){Bi.delete(e);let i=ee(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await FT(e,t,n,r),c=Hp(e,l,Wp);c&&Bi.set(e,c);return}if(!Hn(e))return;if(i.type==="NONE"){Ao(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await mr(e,t,n,r)}function GT(e){let t=[...e].join(", "),n=[["AGGREGATE_WINDOW","\u96C6\u8A08\u30A6\u30A3\u30F3\u30C9\u30A6\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUPING_SETS","\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["STATISTICAL_AGGREGATE","\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C"],["AGGREGATE","\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["GROUP_BY","\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C"],["DISTINCT","DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C"]],r=n.some(([s])=>e.has(s)),i=e.has("LOCAL_ORDER")||e.has("WINDOW_ORDER"),o=e.size===1&&e.has("STATISTICAL_AGGREGATE")?"\u7D71\u8A08\u96C6\u7D04\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUPING_SETS")?"\u5C0F\u8A08\u30FB\u7DCF\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("AGGREGATE")?"\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("GROUP_BY")?"\u30B0\u30EB\u30FC\u30D7\u96C6\u8A08\u306E\u6B63\u3057\u3044\u7D50\u679C":e.size===1&&e.has("DISTINCT")?"DISTINCT \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("GROUPING_SETS")?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C";return`${e.size===1&&e.has("CROSS_JOIN")?"CROSS JOIN \u306E\u6B63\u3057\u3044\u7D50\u679C":e.has("DML")||e.has("VALIDATE")?o:r&&i?"\u30AF\u30A8\u30EA\u306E\u6B63\u3057\u3044\u7D50\u679C":r?n.find(([s])=>e.has(s))[1]:"ORDER BY\u306E\u6B63\u3057\u3044\u7D50\u679C"}\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: ${t}\u3002`}function vc(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?nn({...e,orderBy:[]}):nn(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function VR(e,t){throw e.reasons.size>0&&t instanceof lt&&!t.completeInputWrapped?new lt(GT(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function oc(e,t){try{return await t()}catch(n){VR(e,n)}}function He(e){return e?.type==="BOOLEAN"&&e.value===!1}function KT(e){return e.from.appId===0&&e.from.cteName===Me}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"?Uc(e):!1}function $T(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Di(e)}function Di(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Uc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Di(e.left)||Di(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:Di(n))):!1}function Uc(e){return e.args.some(t=>$T(t))}function BT(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(Uc(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Di(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 VT(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.");BT(e);let n=wu([{}],e.columns,void 0,void 0,void 0,void 0,ae(t)),{rows:r,columns:i}=In(n,e.columns,void 0,void 0,void 0,void 0,void 0,ae(t)),o=Ua(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function WT(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?jR(e):e,s=bo(a),l=i?.kind==="CANONICAL_LOCAL"?En(e,e.from):s.fields,c=await xc(e,t,r),d=Fc(e,c),u=e.columns.some(P=>P.type==="CASE_COL")?await Qi(e,t,r,void 0,Dc(e)):void 0,p=n.maxRecords??1e4,f=new Set,R=n.onLimitReached??"error",E=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,g=e.limit===null?null:(e.offset??0)+e.limit,y=e.orderBy.length===0&&g!==null&&g<=p&&!Ce(e.where)?g:void 0,T;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)T=[];else if(i?.kind==="KORDER_CURSOR"){let P=await tE({client:t,app:s.app,fields:s.fields,query:Ru(e),offset:e.offset??0,limit:e.limit});T=P.records,P.cleanupWarning&&f.add(P.cleanupWarning)}else if(m)T=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let P=e.where?j(e.where):"";T=await Ke(t.getRecords,s.app,P,l,{parallel:E,maxRecords:p,stopAfter:y,onLimit:R,onTruncate:M=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${M} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${M} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Nc(t,e.from.appId)}})}let h=T.map(P=>Gt(P,null));m||(h=Tu(h,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Iu(e.columns,void 0,d.row,u,ae(n)),ae(n)),h=Ua(h,e.limit,e.offset));let{rows:I,columns:N}=In(h,e.columns,void 0,d.row,void 0,u,void 0,ae(n)),D=await $c(e,I,N,t,r);return{type:"SELECT",rows:I,columns:D,rowCount:I.length,warnings:[...f]}}async function HT(e,t,n,r){let i=[],o=new Map,a=(c,d)=>{if(d.length===0)return;let u=o.get(c);u||(u=new Set,o.set(c,u));for(let p of d)u.add(p)},s=new Map,l=(c,d)=>{let u=s.get(c);u||(u=new Set,s.set(c,u));for(let p of d)u.add(p)};if(t==="SIMPLE"){let c=bo(e);a(c.app,c.fields),e.from.subtableCode||l(c.app,c.fields)}else{let c=[e.from,...e.joins.map(d=>d.table)].filter(d=>d.cteName===null);for(let d of c){let u=En(e,d);a(d.appId,u),d.subtableCode||l(d.appId,u)}}for(let[c,d]of o.entries()){let u=[...d].filter(m=>!zs(m));if(u.length===0)continue;let p=await X(c,n,r);if(p.length===0)continue;let f=new Set(p.map(m=>m.code)),R=u.filter(m=>!f.has(m));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (APP${c})`);let E=s.get(c);if(E){let m=p.filter(g=>g.inSubtable===!0&&E.has(g.code));for(let g of m){let y=g.subtableCode??"",T=y?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${y}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${g.code} \u306F${T}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${c} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(y?`APP${c}$${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 nR(e){return e.cteName??`APP${e.appId}`}function YT(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function jT(e,t){return zs(t)||e.validCodes.has(t)}function zu(e,t){return e.table.cteName!==null?e.validCodes.has(t):jT(e,t)}function zT(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 qT(e,t,n,r){let i=[e.from,...e.joins.map(d=>d.table)],o=new Map,a=new Set;for(let d of i){let u=ce(d);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let d of i){if(d.cteName===null||d.cteName===Me)continue;let u=n.get(d.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${d.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${d.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${d.cteName}.`);o.set(d,u)}let s=new Map;await Promise.all(i.map(async d=>{let u=o.get(d);if(u){s.set(d,{table:d,label:nR(d),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(d.cteName===Me)return;let p=await X(d.appId,t,r);s.set(d,{table:d,label:nR(d),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let d of s.values())for(let u of YT(d.table))l.set(u,d);for(let d of e.joins)if(d.type!=="CROSS")for(let u of[d.on.left,d.on.right]){if(!u.tableAlias)continue;let p=l.get(u.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!zu(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let c=Xp(e);for(let[d,u]of c.bySource){let p=s.get(d);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...u].filter(R=>!zu(p,R));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let d of c.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>zu(f,d))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${d} (${p})`)}}async function Ja(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Ja(e.left,t,n,r,i),await Ja(e.right,t,n,r,i);return}await qT(e,t,n,r);for(let o of zT(e))await Ja(o,t,n,r,i)}}function WR(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?Kr(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?Kr(e.where,{tableAlias:e.from.alias}):null}function vi(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"?vi(e.left)||vi(e.right):e.type==="GROUP"||e.type==="NOT"?vi(e.expr):!1}var Mc=new WeakMap;function ps(e,t){if(e.joins.length===0||e.where===null||e.joins.some(f=>f.type!=="INNER"&&f.type!=="CROSS"))return null;let n=[e.from,...e.joins.map(f=>f.table)];if(n.some(f=>f.alias===null||f.cteName!==null||!!f.subtableCode))return null;let r=n.map(f=>({alias:f.alias,appId:f.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(f.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(f.appId)})),i=qf(e.where,r),o=Jf(i,r),a=new Map,s=new Map;for(let[f,R]of o.fetchQueriesByAlias)s.set(f,R);for(let f of o.items)s.has(f.targetAlias)||s.set(f.targetAlias,pr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,c=a.get(l)??null,d=new Map(a);d.delete(l);let u=new Map(o.items.map(f=>[f.targetAlias,f.relation])),p=u.get(l)??null;return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:c,mainRelation:p,joinConditions:d,joinRelations:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function ds(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let c=r.get(s);c?c.push(l):r.set(s,[l])};if(i(e.from.appId,WR(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=Kr(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[c,d]=await Promise.all([Te(s,t,n),SI(s,t,n)]),u=JT(l).filter(p=>c.get(p)==="STATUS");if(u.length>0){let p=await Rs(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(R=>R.name));for(let R of u)d.set(R,f)}}return[s,c,d]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function JT(e){let t=new Set,n=r=>{if(r.type==="BINARY"){r.left.type==="FIELD"&&t.add(r.left.field);return}if(r.type==="LOGICAL"){n(r.left),n(r.right);return}(r.type==="GROUP"||r.type==="NOT")&&n(r.expr)};for(let r of e)n(r);return[...t]}function $t(e,t){if(e!==null)switch(e.type){case"BINARY":(e.op==="IN"||e.op==="NOT_IN")&&e.left.type==="FIELD"&&t.push(e.left),e.left.type==="CASE_FIELD"&&as(e.left.expr,t),e.right.type==="CASE_VALUE"&&as(e.right.expr,t);return;case"LOGICAL":$t(e.left,t),$t(e.right,t);return;case"NOT":case"GROUP":$t(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function as(e,t){for(let n of e.branches)$t(n.condition,t)}function XT(e){let t=[];$t(e.where,t),$t(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&as(n.expr,t);return t}function ce(e){return e.alias??e.cteName}function HR(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>ce(n)===t)}function fs(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function xc(e,t,n){let r=XT(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=HR(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 Te(s,t,n)]));return new Map(a)}function Fe(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function kc(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||wn(t,n)}function wn(e,t){if(e.type==="FIELD_REF"){t.push(Fe(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){wn(e.left,t),wn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){wn(e.left,t),wn(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"&&wn(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"?gr(n,t):n.type!=="ARRAY"&&wn(n,t)}function gr(e,t){if(e.type==="AGG_REF"){kc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(gr(e.left,t),gr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function ac(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")gr(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;Ui(n,t)}}function Ui(e,t){if(e.type==="STRING_FUNC"){ac(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Ui(e.left,t),Ui(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"?ac(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?gr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Ui(r,t)}}function QT(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;kc(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function ZT(e){let t=[];for(let n of e)n.type==="AGGREGATE"?kc(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?gr(n.expr,t):n.type==="STRFUNC_COL"?ac(n.expr,t):n.type==="SCALAR_VALUE_COL"?Ui(n.expr,t):n.type==="CASE_COL"&&QT(n.expr,t);return t}var eI=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function tI(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":eI.has(e.fieldType)?"string":void 0}async function YR(e,t,n,r){let i=ZT(e.columns);if(i.length===0)return;let o=new Set,a=fs(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let R=HR(e,f.tableAlias);R&&R.cteName===null&&o.add(R.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let R of a)o.add(R.appId);let s=new Map(await Promise.all([...o].map(async f=>{let R=await X(f,t,n);return[f,new Map(R.map(E=>[E.code,E]))]}))),l=new Map,c=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,R])=>{if(![...c].some(m=>R.get(m)?.fieldType==="STATUS"))return;let E=await Vc(f,t,n);E&&l.set(f,E)}));let d=[e.from,...e.joins.map(f=>f.table)],u=(f,R)=>{let E=f.semantics??ne(f);return f.fieldType==="STATUS"&&l.has(R)?{...E,optionOrder:l.get(R)}:E};return f=>{let R;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)R=s.get(e.from.appId)?.get(f.field);else{let m=d.find(g=>ce(g)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");R=s.get(m.appId)?.get(Ee(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");R=s.get(e.from.appId)?.get(Ee(e.from,f.field))}else{let m=d.flatMap(g=>{if(g.cteName!==null){let T=r?.get(g.cteName);return T?.columns.includes(f.field)?[T.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let y=s.get(g.appId)?.get(Ee(g,f.field));return y?[u(y,g.appId)]:[]});return m.length!==1?void 0:m[0]}if(!R)return;let E=f.tableAlias!==null?d.find(m=>ce(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(R,E?.appId??e.from.appId)}}function Ee(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Xa(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function ke(e,t){let n=e.semantics??ne(e);return{sortKind:tI(e),fieldType:e.fieldType,semantics:t===void 0?n:jn(n,t,e.code)}}function jR(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function Z(e){return{sortKind:e,semantics:B(e)}}function tt(){return{semantics:B("string","KSQL_UNKNOWN")}}function zR(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function nt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:ne({fieldType:"__ID__"})};if(e==="_rid")return Z("string");if(e==="_pid"||e==="_idx"||e==="$revision")return Z("number")}var nI=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function vn(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?Z("number"):Z("string")}return nI.has(e.func)?Z("number"):Z("string")}function yr(e,t){return e.type==="STRING"?Z("string"):e.type==="ARRAY"?zR():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?tt():Un(e.arg,t):e.func==="GROUP_CONCAT"?Z("string"):Z("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?Z("number"):e.type==="STRING_FUNC"?vn(e):e.type==="FIELD_REF"?t(Fe(e.field))??tt():e.type==="FIELD"?t(e)??tt():tt()}function Es(e){if(e.length===0)return tt();let t=e[0],n=r=>{if(!r)return;let{source:i,...o}=r;return o};return e.every(r=>r.sortKind===t.sortKind&&r.fieldType===t.fieldType&&Po(n(r.semantics),n(t.semantics)))?e.every(i=>Po(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?zR("KSQL_MIXED_UNSUPPORTED"):tt()}function Un(e,t){if(e.type==="FIELD_REF")return t(Fe(e.field))??tt();if(e.type==="FIELD")return t(e)??tt();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return Z("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return Z("string");if(e.type==="STRING_FUNC")return vn(e);let n=e.branches.map(r=>yr(r.result,t));return e.elseResult&&n.push(yr(e.elseResult,t)),Es(n)}function qR(e,t){return e.windowKind==="VALUE"?Un(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?Z("number"):e.arg.type==="WILDCARD"?tt():Un(e.arg,t):Z("number")}function Qa(e,t){return{...e??{},displayName:t}}function rI(e){return e.columns.some(t=>t.type==="FIELD"||t.type==="WILDCARD"||t.type==="PARENT_WILDCARD"||t.type==="CASE_COL"||t.type==="AGGREGATE"&&(t.func==="MIN"||t.func==="MAX"||t.func==="MODE")||t.type==="WINDOW_COL"&&(t.windowKind==="VALUE"||t.windowKind==="AGGREGATE"&&(t.aggFunc==="MIN"||t.aggFunc==="MAX")))}async function Wi(e,t,n,r,i,o=!1){let a=new Map;rI(e)&&await Promise.all(fs(e).map(async E=>{if(a.has(E.appId))return;let m=await X(E.appId,n,r);a.set(E.appId,new Map(m.map(g=>[g.code,g])))}));let s=[e.from,...e.joins.map(E=>E.table)],l=o&&i===void 0&&s.every(E=>E.cteName===null),c=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let T=a.get(e.from.appId)?.get(E.field);return T?ke(T,e.from.appId):void 0}let g=s.find(T=>ce(T)===E.tableAlias);if(!g)return;if(g.cteName!==null)return i?.get(g.cteName)?.columnMeta?.get(E.field);let y=a.get(g.appId)?.get(Ee(g,E.field));return y?ke(y,g.appId):nt(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(E.field);let g=a.get(e.from.appId)?.get(Ee(e.from,E.field));return g?ke(g,e.from.appId):nt(E.field)}let m=s.flatMap(g=>{if(g.cteName!==null){let h=i?.get(g.cteName);return h?.columns.includes(E.field)?[h.columnMeta?.get(E.field)]:[]}let y=a.get(g.appId)?.get(Ee(g,E.field)),T=y?ke(y,g.appId):nt(E.field);return T?[T]:[]});return m.length===1?m[0]:void 0},d=E=>{if(!l)return;let m=s.filter(g=>{if(E.tableAlias!==null&&ce(g)!==E.tableAlias)return!1;let y=Ee(g,E.field);return a.get(g.appId)?.has(y)===!0||nt(E.field)!==void 0});return m.length===1?m[0].appId:void 0},u=(E,m)=>{let g=d(m);return E&&g!==void 0?{...E,publicSourceApp:g}:E},p=new Map,f=e.columns.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let E of t){let m=Fe(E),g=u(c(m),m);p.set(E,Qa(g,g?.displayName??E))}return p}if(f)for(let E of t){let m=Fe(E),g=u(c(m),m);p.set(E,Qa(g,g?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,m)=>{let g=f?"alias"in E&&E.alias?E.alias:void 0:t[m];if(!g)return;let y;if(E.type==="FIELD"){let T=Fe(E.field);y=u(c(T),T)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?y=Z("string"):E.func==="COUNT"||E.func==="SUM"||E.func==="AVG"||E.func==="STDDEV_POP"||E.func==="STDDEV_SAMP"||E.func==="VAR_POP"||E.func==="VAR_SAMP"||E.func==="MEDIAN"?y=Z("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(y=Un(E.arg,c));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")y=Z("number");else if(E.type==="GROUPING_COL")y=Z("number");else if(E.type==="LITERAL_COL")y=Z("string");else if(E.type==="SCALAR_VALUE_COL"){let T=E.expr;T.type==="STRING_FUNC"?y=vn(T):T.type==="NUMBER"||T.type==="SCALAR_ARITH"?y=Z("number"):T.type==="FIELD"?y=c(T):y=Z("string")}else if(E.type==="STRFUNC_COL")y=vn(E.expr);else if(E.type==="WINDOW_COL")y=qR(E,c);else if(E.type==="CASE_COL"){let T=E.expr.branches.map(h=>yr(h.result,c));E.expr.elseResult&&T.push(yr(E.expr.elseResult,c)),y=Es(T)}else E.type==="SCALAR_SUBQUERY_COL"&&(y=tt());p.set(g,Qa(y,E.aliasDisplay??g))}),p}function iI(e,t){let n=ye.get(e),r=ye.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],c=l===void 0?void 0:r?.get(l),d;if(s&&c){let u=Es([s,c]),p=s.publicSourceApp===c.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...R}=u;d=p===void 0?R:{...R,publicSourceApp:p}}else d=tt();i.set(o,Qa(d,s?.displayName??o))}),i}function Fc(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let c=n.find(d=>ce(d)===s.tableAlias);return!c||c.cteName!==null?void 0:Xa(c,s.field)??t.get(c.appId)?.get(Ee(c,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Xa(e.from,s.field)??t.get(e.from.appId)?.get(Ee(e.from,s.field));if(n.some(c=>c.cteName!==null))return;let l=r.flatMap(c=>{let d=Xa(c,s.field)??t.get(c.appId)?.get(Ee(c,s.field));return d?[d]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var JR=new WeakSet,Gc=new WeakMap;function sc(e){return JR.add(e),e}function oI(e,t){return Gc.set(e,t),t}function XR(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 aI(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function sI(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":j(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new rs;if(!aI(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=In([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function lI(e,t,n,r,i,o=!0,a,s,l){let c=Gc.get(e);if(JR.has(e)&&c!==void 0&&XR(e,c)){let _=await sI(e,t);if(_!==null)return _}let d=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([qi(e.where,t,n,r,u,i),qi(e.having,t,n,r,u,i)]);let[f,R,E]=await Promise.all([ds(e,t,r),xc(e,t,r),YR(e,t,r,i)]),m=Fc(e,R),g=await Qi(e,t,r,i,Tt(e.having)||Dc(e)),y=KR(e,g),T=Mc.get(e);if(T&&!dr(T.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let h=T??ps(e,f)??Rn(e,f);Rl(h);let I="joinPlan"in h?h:null,N=I&&dr(I.joinPlan)?I:null,D=t,P=h.mainCondition,M=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let U=s?s.prefilterWhere:N?null:P,C=N?.queriesByAlias.get(e.from.alias)??"",v=await ym(e.columns,t,n,r,u,i),b=He(e.where),O=b?Promise.resolve([]):Mi(e,e.from,D,d,p,!0,n.onLimitReached??"error",u,U,N?!1:o,l,C),A=[],w=[];for(let _ of e.joins){if(b){A.push({join:_,promise:Promise.resolve([])});continue}let V=_.table.alias?N?.queriesByAlias.get(_.table.alias)??"":"",te=N?null:_.table.alias?M.get(_.table.alias)??null:null;te!==null||V!==""?A.push({join:_,promise:Mi(e,_.table,D,d,p,!1,n.onLimitReached??"error",u,te,!0,l,V)}):w.push(_)}let k=a?Promise.resolve(a):Yi(e,t,r,i);k.catch(()=>{});let L=await O,F=new Map;F.set(e.from.alias,L);for(let{join:_,promise:V}of A)F.set(_.table.alias,await V);await Promise.all(w.map(async _=>{let te=await im(e,_,F,D,d,p,n.onLimitReached??"error",u,r,i,null,l,"")??await Mi(e,_.table,D,d,p,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(_.table.alias,te)}));let{optionOrders:H,sortKinds:$,semantics:x}=await k,{rows:G,columns:Y}=Cu({tables:F,stmt:e,scalarCache:v,optionOrders:H,sortKinds:$,orderSemantics:x,fieldTypeResolver:m.row,fieldSemanticsResolver:g,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:y,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:N?{residualWhere:N.joinPlan.residualWhere}:{},resolvedGroupingSpec:Bi.get(e),plainGroupByPlan:l,warnings:u,evaluationContext:ae(n)}),K=await $c(e,G,Y,t,r);return{type:"SELECT",rows:G,columns:K,rowCount:G.length,warnings:[...u]}}function uI(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 lc(e,t,n){uI(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,c)=>{s[l]=a[e.columns[c]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=ye.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let c=e.columns[l],d=n?.get(s)??(c===void 0?void 0:o?.get(c));d&&a.set(s,{...d,displayName:s})}),ye.set(i,a)}return i}function QR(e,t,n,r){let i=lc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:cI(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&&ye.set(l,iI(e,t)),l}async function ZR(e,t,n,r,i=!1,o=!1){let a=vc(e,n,null);return oc(a,async()=>{let s=a.effectiveOptions,[l,c]=await Promise.all([e.left.type==="UNION"?ZR(e.left,t,s,r,i,o):Bt(sc(e.left),t,s,r,void 0,i,o,"DERIVED"),Bt(sc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return QR(l,c,e.all,i)})}function cI(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 em(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function pI(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(em);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 rR(e){return e.columns.map((t,n)=>em(t)??`__b53_column_${n}`)}function iR(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 tm(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 X(s.appId,t,n);o.set(s.appId,new Map(l.map(c=>[c.code,c])))}));let a=(s,l)=>{if(s.cteName!==null)return r.get(s.cteName)?.columnMeta?.get(l);let c=o.get(s.appId)?.get(Ee(s,l));return c?ke(c,s.appId):nt(l)};return s=>{if(s.tableAlias!==null){let c=i.find(d=>ce(d)===s.tableAlias);return c?a(c,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(c=>a(c,s.field)).filter(c=>c!==void 0);return l.length===1?l[0]:void 0}}function Li(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>Li(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:Fe(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=Fe(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){Li(r.left,t,!0),Li(r.right,t,!0);return}for(let i of Object.values(r))Li(i,t,n)}async function oR(e,t,n,r,i){let o=await tm(e,n,r,i);e.columns.forEach(c=>Li(c,o));let a=await Wi(e,rR(e),n,r,i),s=rR(e),l=new Map;return t.forEach((c,d)=>{let u=a.get(s[d]);if(!u?.semantics||u.semantics.fieldType==="KSQL_UNKNOWN"||u.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${d+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(c,{...u,displayName:c})}),l}function ln(e){return`${e.appId}:${e.subtableCode??""}`}function nm(...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(ln(r))&&t.set(ln(r),r);return[...t.values()]}function dI(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function fI(e){let t=new Map,n=r=>{for(let i of r)t.set(ln(i),null)};for(let r of e){let i=fs(r);for(let s of i){let l=ln(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let c=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(u=>u.table)].find(u=>ce(u)?.toLowerCase()===s.toLowerCase());if(!c){n(i);return}if(c.cteName!==null)return;let d=t.get(ln(c));d!==null&&d?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let c=dI(l.field),d=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:c.alias;o(d,c.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(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 EI(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 RI(e,t,n,r){let i=fI(e),o=await Promise.all(nm(...e).map(async(a,s)=>{let l=await Bt(EI(a,i.get(ln(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),c=`__b53_source_${s}`;return[ln(a),{name:c,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:ye.get(l)}}]}));return new Map(o)}function aR(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(ln(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 sR(e,t,n){return e.cteName===null?void 0:n.get(e.cteName)?.columnMeta?.get(t)}function qu(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=we(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function lR(e,t){let n=t.joins[0];if(!n||n.type!=="INNER")throw new Error("PlanningError: \u518D\u5E30\u9805\u306E INNER JOIN \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");let r=t.from.cteName===e?t.from:n.table,i=r===t.from?n.table:t.from,o=ce(r),a=n.on.left.tableAlias===o,s=n.on.right.tableAlias===o;if(a===s)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u3092\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{self:r,source:i,selfField:a?n.on.left.field:n.on.right.field,sourceField:a?n.on.right.field:n.on.left.field}}async function mI(e,t,n,r,i){let o=e.recursiveSpec,a=pI(e),s=await oR(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let c=await oR(o.recursiveTerm,a,t,i,l);a.forEach(($,x)=>{let G=s.get($),Y=c.get($);if(!G||!Y||!iR(G,Y))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${x+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let d=lR(e.name,o.recursiveTerm),u=await tm(o.recursiveTerm,t,i,l),p=u({type:"FIELD",tableAlias:ce(d.self),field:d.selfField}),f=u({type:"FIELD",tableAlias:ce(d.source),field:d.sourceField});if(!p||!f||!iR(p,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let R=await RI([o.seed,o.recursiveTerm],t,n,i),E=new Map(r);for(let $ of R.values())E.set($.name,$.table);let m=aR(o.seed,R),g=aR(o.recursiveTerm,R),y=await Et(m,t,n,E,i,!0,!0),T=lc(y,a,s),h=o.cycle,I=h?s.get(h.column):void 0,N=new Map(s);h&&N.set(h.markColumn,{...Z("string"),displayName:h.markColumn});let D=h?[...a,h.markColumn]:[...a],P=[],M=[],U=new Set([...T.warnings??[],...[...R.values()].flatMap($=>$.warnings)]),C=new ha(e.name,kt(n)),v=$=>{C.addRow(),P.push($)};for(let $ of T.rows){let x=h?String($[h.column]??""):"",G=h?{...$,[h.markColumn]:h.defaultValue}:$;v(G),M.push({row:$,path:h?[x]:[]})}let b=lR(e.name,g),O=b.source.cteName===null?void 0:E.get(b.source.cteName);if(!O)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let A=sR(b.self,b.selfField,l)??sR(b.source,b.sourceField,E);if(!A?.semantics||A.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${b.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let w=new Map;for(let $ of O.rows){let x=String($[b.sourceField]??""),G=qu(x,A.semantics),Y=w.get(G);Y?Y.push($):w.set(G,[$])}let k=w.has(qu("",A.semantics)),L=0,F=!1;for(;M.length>0;){L++;let $=[];for(let x of M){let G=String(x.row[b.selfField]??"");!F&&G===""&&k&&(U.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${b.selfField} = ${b.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 Y=w.get(qu(G,A.semantics))??[];for(let te of Y){let De=String(te[b.sourceField]??"");vt("=",G,De,A.semantics)&&C.addExpansion()}if(Y.length===0)continue;let K=new Map(E);K.set(e.name,{rows:[x.row],columns:a,columnMeta:s});let _=await Et(g,t,n,K,i,!0,!0);for(let te of _.warnings??[])U.add(te);let V=lc(_,a,s);V.rows.length>0&&C.observeDepth(L);for(let te of V.rows){if(!h){v(te),$.push({row:te,path:[]});continue}let De=String(te[h.column]??""),Wt=x.path.some(ie=>vt("=",ie,De,I.semantics));v({...te,[h.markColumn]:Wt?h.markValue:h.defaultValue}),Wt||$.push({row:te,path:[...x.path,De]})}}M=$}let H={type:"SELECT",rows:P,columns:D,rowCount:P.length,warnings:[...U]};return ye.set(H,N),H}async function Kc(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&Xt(e))return Bt(Qt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let c of e.ctes){let d;c.recursiveSpec?d=await mI(c,t,n,a,r):c.query.type==="SHOW_APPS"?d=await Em(t):c.query.type==="DESCRIBE"?d=await Rm(c.query,t,r):c.query.type==="GENERATE_SERIES"?d=rm(c.query):d=await Et(c.query,t,n,a,r,!0);for(let u of d.warnings??[])s.add(u);a.set(c.name,{rows:d.rows,columns:d.columns,columnMeta:ye.get(d),...c.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:c.query.columnAlias}:{}})}let l=await Et(e.query,t,n,a,r,o);return _c(l,[...s])}function rm(e){let t=Yo(e),n={type:"SELECT",columns:[e.columnAlias],rows:t.values.map(i=>({[e.columnAlias]:i})),rowCount:t.rowCount,warnings:[]},r=t.kind==="INTEGER"?{sortKind:"number",fieldType:"NUMBER",semantics:ne({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:ne({fieldType:"DATE"})};return ye.set(n,new Map([[e.columnAlias,r]])),n}async function Et(e,t,n,r,i,o=!1,a=!1){if(a||await Ja(e,t,r,i),e.type==="UNION"){let[c,d]=await Promise.all([Et(e.left,t,n,r,i,o,!0),Et(e.right,t,n,r,i,o,!0)]);return QR(c,d,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Me||e.joins.some(c=>c.table.cteName!=null)))return Bt(e,t,n,i,r,o,!1,"DERIVED");let l=await gI(e,t,n,r,i);return o&&ye.set(l,await Wi(e,l.columns,t,i,r)),l}async function gI(e,t,n,r,i){await Vi(e,t,i,r);let o=Bi.get(e),a=await mr(e,t,i,r),s=new Set,l=K=>{if(K.alias!==null||K.cteName===null)return K;let _=ce(K);return s.add(_),{...K,alias:_}};e={...e,from:l(e.from),joins:e.joins.map(K=>({...K,table:l(K.table)}))};let c=new Set;for(let K of[e.from,...e.joins.map(_=>_.table)]){let _=ce(K);if(_!==null){if(c.has(_))throw new Error(`ArgumentError: effective alias ${_} is used by multiple tables.`);c.add(_)}}let d=K=>{let _=r.get(K);if(!_)throw new Error(`ArgumentError: materialized source ${K} is not available.`);return _};for(let K of[e.from,...e.joins.map(_=>_.table)])K.cteName!==null&&d(K.cteName);let{resolver:u}=await On(e,t,i,r,FR(e)),p=GR(e,u,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,R=new Set,E=n.fetchParallel??1;await Promise.all([qi(e.where,t,n,i,R,r),qi(e.having,t,n,i,R,r),mm(e,t,n,i,R,r)]);let m=Se(e.where,u);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(m)}).`);let g=await Yi(e,t,i,r),y=is(e)?(e.orderMode==="KINTONE_NATIVE"?gi:mi)({stmt:e,staticMode:"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:g.semantics,maxRecords:f,hasKlike:Ce(e.where)}):null,T=vc(e,n,y),h=T.effectiveOptions,[I,N,D]=await Promise.all([ds(e,t,i),xc(e,t,i),YR(e,t,i,r)]),P=Fc(e,N),M=await Qi(e,t,i,r,Tt(e.having)||Dc(e)),U=KR(e,M),C=ps(e,I)??Rn(e,I);Rl(C);let v=t,b=await ym(e.columns,t,h,i,R,r),O=Promise.resolve(g);O.catch(()=>{});let A=new Map,w=new Map;if(e.from.cteName!=null){let K=d(e.from.cteName);A.set(e.from.alias,K.rows.map(uR)),w.set(e.from.alias,K.columns)}else{let K=await oc(T,()=>Mi(e,e.from,v,f,E,!0,h.onLimitReached??"error",R,C.mainCondition,m.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,K)}let k=e.joins.map(K=>oc(T,async()=>{if(K.table.cteName!=null){let _=d(K.table.cteName);A.set(K.table.alias,_.rows.map(uR)),w.set(K.table.alias,_.columns)}else{let _=K.table.alias?C.joinConditions.get(K.table.alias)??null:null,te=await im(e,K,A,v,f,E,h.onLimitReached??"error",R,i,r,_,a)??await Mi(e,K.table,v,f,E,!1,h.onLimitReached??"error",R,_,!0,a);A.set(K.table.alias,te)}}));await Promise.all(k);let{optionOrders:L,sortKinds:F,semantics:H}=await O,$=e.joins.length===0&&e.from.cteName!=null?d(e.from.cteName).columns:void 0,{rows:x,columns:G}=Cu({tables:A,stmt:e,scalarCache:b,optionOrders:L,sortKinds:F,orderSemantics:H,fieldTypeResolver:P.row,fieldSemanticsResolver:M,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:U,aggregateSortKindResolver:D,appliedKlikes:C.appliedKlikes,sourceColumns:$,tableColumns:w,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:ae(n)}),Y=await $c(e,x,G,t,i);return _c({type:"SELECT",rows:x,columns:Y,rowCount:x.length,warnings:[...R]},p)}async function $c(e,t,n,r,i){if(t.length!==0||n.length!==0||e.columns.length!==1||e.columns[0].type!=="WILDCARD"||e.joins.length!==0||e.from.cteName!==null)return[...n];let o=await X(e.from.appId,r,i);return rE(o,e.from.subtableCode,()=>Rs(e.from.appId,r,i))}function uR(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function Mi(e,t,n,r,i,o,a,s,l=null,c=!0,d,u=""){let p=En(e,t,d),f=g=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${g} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${g} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Nc(n,t.appId),Gf(e,t,o))throw new lt(`\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&&c?qp(e,t.appId).query:"",y=[l!==null?j(l):"",u].filter(N=>N!==""),T=y.length>1?y.map(N=>`(${N})`).join(" and "):y[0]??"",h=g&&T?`(${g}) and (${T})`:g||T;return(await ut(n.getRecords,t.appId,h,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let R=o&&c&&e.joins.length===0&&e.where!==null&&Gc.get(e)?.capability==="EXACT_PUSHDOWN"&&!Lt(e.where)?j(e.where):"",m=(await ut(n.getRecords,t.appId,R,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return IE(m,t.subtableCode)}var Rr=50;function yI(e){let t=we(e);return t!==null?JSON.stringify(t):e}function uc(e){return JSON.stringify(e)}function Mn(e,t){return JSON.stringify(e.map((n,r)=>t[r]?yI(n):n))}function hr(e,t){let n=e.raw.get(uc(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(Mn(t,e.numericKey))}async function Ar(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,c=t.map(g=>o.get(g)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:c,...a?{snapshots:new Map}:{}},u=(g,y,T)=>{let h=g.get(y);(h===void 0||T>h)&&g.set(y,T)},p=(g,y)=>{u(d.raw,uc(g),y),c.some(Boolean)&&u(d.normalized,Mn(g,c),y)},f=new Set,R=[],E=new Set;for(let g of n){let y=uc(g);E.has(y)||(E.add(y),g.some(T=>T==="")?R.push(g):f.add(g[0]))}let m=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let g of Zi([...f],Rr)){let y=`${t[0]} in (${g.map(Hi).join(",")})`,T=await Ke(r.getRecords,e,y,m,{maxRecords:s,parallel:l});for(let h of T){let I=Number(h.$id?.value);Number.isFinite(I)&&(d.snapshots?.set(I,h),p(t.map(N=>Bc(h[N]?.value)),I))}}for(let g of R){let y=t.map((I,N)=>`${I} = ${Hi(g[N])}`).join(" and "),T=a?[...new Set(["$id",...a])]:["$id"],h=await Ke(r.getRecords,e,y,T,{maxRecords:s,parallel:l});if(h.length!==0){for(let I of h){let N=Number(I.$id?.value);Number.isFinite(N)&&d.snapshots?.set(N,I)}p(g,hI(h))}}return d}function hI(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 Bc(e){return typeof e=="string"?e:e==null?"":String(e)}function Hi(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function Zi(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var AI=6,Za=Aa*AI;async function im(e,t,n,r,i,o,a,s,l,c,d=null,u,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,R=t.on.right.tableAlias;if(!f||!R)return null;let E,m,g;if(f===t.table.alias&&R!==t.table.alias)E=R,m=t.on.right.field,g=t.on.left.field;else if(R===t.table.alias&&f!==t.table.alias)E=f,m=t.on.left.field,g=t.on.right.field;else return null;let y=n.get(E);if(!y)return null;let T=[e.from,...e.joins.map(A=>A.table)].find(A=>ce(A)===E),h=(await X(t.table.appId,r,l)).find(A=>A.code===Ee(t.table,g)),I=h?ke(h,t.table.appId):nt(g),N;if(T?.cteName!==null&&T?.cteName!==void 0)N=c?.get(T.cteName)?.columnMeta?.get(m);else if(T){let A=(await X(T.appId,r,l)).find(w=>w.code===Ee(T,m));N=A?ke(A,T.appId):nt(m)}let D=[],P=!1;for(let A of y){let w=A[m]?.value,k=Bc(w);(w==null||k.length===0)&&(P=!0),D.push(k)}let M=lu({fieldType:I?.fieldType,sourceSemantics:N?.semantics,sourceRowCount:y.length,values:D,hasEmptyValue:P,maxInKeys:Za});if(M.kind==="EMPTY_SOURCE")return[];if(M.kind==="FALLBACK"){if(M.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let A=new Set(D).size;s.add(`JOIN\u30AD\u30FC\u304C ${A} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${Za} \u4EF6\uFF09\u3002`)}return null}if(M.kind==="RANGE_CANDIDATE")return null;let U=su(M,g,Hi);if(U.length===0)return s.add(`JOIN\u30AD\u30FC\u304C 0 \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${Za} \u4EF6\uFF09\u3002`),null;let C=En(e,t.table,u),v=A=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${A} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${A} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),Nc(r,t.table.appId)},b=[],O=new Set;for(let A of U){let k=[d!==null?j(d):"",p].filter(F=>F!=="").reduce((F,H)=>`(${F}) and (${H})`,A),L=await ut(r.getRecords,t.table.appId,k,C,{parallel:o,maxRecords:i,onLimit:a,onTruncate:v});for(let F of L.records){let H=`${F.$id?.value??""}:${JSON.stringify(F)}`;O.has(H)||(O.add(H),b.push(F))}}return b}var cc=new Map,pc=new Map,dc=new Map,fc=new Map,Ec=new Map,Rc=new Map;function om(e){cc.delete(e),pc.delete(e),dc.delete(e),fc.delete(e),Ec.delete(e),Rc.delete(e)}function Sr(e,t,n){return e.get(t)?.get(n)}function Tr(e,t,n,r){let i=e.get(t);i||(i=new Map,e.set(t,i)),i.set(n,r)}async function X(e,t,n){let r=Sr(fc,n,e);if(r)return r;let i=t.getFields(e);return Tr(fc,n,e,i),i}async function Ct(e,t,n){let r=Sr(Rc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Tr(Rc,n,e,i),i}async function Rs(e,t,n){let r=Sr(Ec,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Tr(Ec,n,e,i),i}async function Vc(e,t,n){let r=await Rs(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Te(e,t,n){let r=Sr(cc,n,e);if(r)return r;let i=await X(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Tr(cc,n,e,o),o}async function mc(e,t,n){let r=Sr(pc,n,e);if(r)return r;let i=await X(e,t,n),o=new Map;for(let a of i){if(!a.optionOrder)continue;let s=Object.entries(a.optionOrder);s.length!==0&&o.set(a.code,new Map(s))}return Tr(pc,n,e,o),o}async function SI(e,t,n){let r=await mc(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function cR(e,t,n){let r=Sr(dc,n,e);if(r)return r;let i=await X(e,t,n),o=new Map;for(let a of i)a.sortKind&&o.set(a.code,a.sortKind);return Tr(dc,n,e,o),o}function TI(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 II(e,t,n,r){let i=TI(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let p=await X(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let E=s.get(e.from.appId)?.get(u.field);return E?ke(E,e.from.appId):void 0}let f=o.find(E=>ce(E)===u.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(u.field);let R=s.get(f.appId)?.get(Ee(f,u.field));return R?ke(R,f.appId):nt(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(u.field);let f=s.get(e.from.appId)?.get(Ee(e.from,u.field));return f?ke(f,e.from.appId):nt(u.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),g=m?.columns.includes(u.field)?m.columnMeta?.get(u.field):void 0;return g?[g]:[]}let R=s.get(f.appId)?.get(Ee(f,u.field)),E=R?ke(R,f.appId):nt(u.field);return E?[E]:[]});return p.length>1&&a.add(u.field),p.length===1?p[0]:void 0},c=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let p;if(u.type==="FIELD")p=l(Fe(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")p=Z("number");else if(u.type==="WINDOW_COL")p=qR(u,l);else if(u.type==="GROUPING_COL")p=Z("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")p=Z("string");else if(u.type==="STRFUNC_COL")p=vn(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")p=tt();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(R=>yr(R.result,l));u.expr.elseResult&&f.push(yr(u.expr.elseResult,l)),p=Es(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(p=Un(u.arg,l)):p=u.func==="GROUP_CONCAT"?Z("string"):Z("number"));p?.semantics&&c.set(u.alias,p.semantics)}let d=new Map;for(let u of i){let p=c.get(u)??l(Fe(u))?.semantics;if(!p){let R=Fe(u);R.tableAlias===null&&a.has(R.field)&&d.set(u,ne({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await Rs(p.source.appId,t,n);R.enable&&R.states!==null&&(f={...p,optionOrder:new Map(R.states.map(E=>[E.name,E.index]))})}d.set(u,f)}return d}async function Yi(e,t,n,r){let i=e.columns.some(l=>l.type==="WINDOW_COL"&&l.orderBy.length>0);if(e.orderBy.length===0&&!i)return{optionOrders:new Map,sortKinds:new Map,semantics:new Map};let[o,a,s]=await Promise.all([wI(e,t,n),bI(e,t,n),II(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function wI(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 mc(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await mc(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}async function bI(e,t,n){let r=new Map,i=[e.from,...e.joins.map(a=>a.table)],o=new Set;for(let a of i){if(a.cteName!=null||o.has(a.appId))continue;o.add(a.appId);let s=await cR(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await cR(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}function Wc(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 NI=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function CI(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||NI.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function Le(e,t,n,r){let i=await X(e,n,r);return CI(e,t,i),i}async function $e(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?Ct(e,r,i):void 0}function Rt(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),c=o[s]?.value??"",d=We(c,l,r);if(!d.ok)throw new Error(`DmlValidationError: ${d.code} ${d.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(c)&&c.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:u?c:d.value}}})}async function PI(e,t,n,r,i){let o=await Le(e.appId,e.fields,t,r),a=await li({statement:e,fieldInfos:o,dmlMaxRows:it(n.dmlMaxRows,"dmlMaxRows",Vt),dmlMaxSubtableRows:it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",_e),statementNumber:i,loadNumberPrecision:()=>Ct(e.appId,t,r)});return rw(e,a,o)}async function OI(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await am(e,t,n,r,i);return ow(e,a,o)}async function am(e,t,n,r,i){let o=await Le(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=dm(e),l=new Set;for(let m of s){let g=Mn(m,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 c=await Ar(e.appId,e.keyFields,s,t,n,a),d=s.map(m=>hr(c,m)),u=new Map,p=[...new Set(d.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of Zi(p,100)){let g=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let y of g.records){let T=Number(y.$id?.value);Number.isSafeInteger(T)&&T>0&&u.set(T,y)}}let R=d.map((m,g)=>({sourceRowIndex:g,...m===void 0?{}:{targetId:m,snapshot:u.get(m)}})),E=await _f({statement:e,matches:R,fieldInfos:o,dmlMaxRows:it(n.dmlMaxRows,"dmlMaxRows",Vt),dmlMaxSubtableRows:it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",_e),statementNumber:i,loadNumberPrecision:()=>Ct(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function LI(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await Le(e.appId,e.fields,t,r),o=await li({statement:e,fieldInfos:i,dmlMaxRows:it(n.dmlMaxRows,"dmlMaxRows",Vt),dmlMaxSubtableRows:it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",_e),loadNumberPrecision:()=>Ct(e.appId,t,r)}),a=ru(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:ms(a),applyDiagnostic:a}))throw new ge("INSERT",o.guards.parentRows);let s=await xf(o,t,a);return{...s,diagnostic:Qe(a,s)}}async function _I(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await am(e,t,n,r,1),o=iu(i);if(n.confirm){let s=ms(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 kf(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Qe(o,a)}}function DI(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 ms(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=DI(n?Ya(n):[],r?Ya(r):[]),a=vI(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),c=o.reduce((p,f)=>p+f.appendRows,0),d=o.reduce((p,f)=>p+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:c,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:d,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=Ya(n),f=Ya(r);return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:p.reduce((R,E)=>R+E.appendRows,0),tables:p},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),addedSubtableRows:f.reduce((R,E)=>R+E.appendRows,0),tables:f,deletedRows:f.reduce((R,E)=>R+E.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return u}function Ya(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=_n(t,"APPEND"),r=_n(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function _n(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function vI(e){let t=new Map;for(let n of e.filter(r=>r.targetKind==="MULTI_VALUE")){let r={field:n.field,fieldType:n.fieldType??"UNKNOWN",addedValues:_n(n,"ADD"),removedValues:_n(n,"REMOVE_VALUE"),changedValues:n.changedCount??0,parents:(n.postImages??[]).map(o=>({parentId:o.parentId,postImage:o.value}))},i=t.get(n.field);t.set(n.field,i?{...i,addedValues:i.addedValues+r.addedValues,removedValues:i.removedValues+r.removedValues,changedValues:i.changedValues+r.changedValues,parents:[...i.parents,...r.parents]}:r)}return[...t.values()]}async function Hc(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return PI(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return OI(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await pm(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Yc(e,t,n,r,i,o)).result}var ss=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Yc(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",c=e.type==="UPDATE"?["$id",...e.assignments.map(O=>O.field)]:[...e.fields];if(new Set(c).size!==c.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let d=e.type==="UPDATE"?e.assignments.map(O=>O.field):e.fields,u=await Le(e.appId,d,t,r);e.type==="UPDATE"&&await sn(e,t,r);let p=new Map(u.map(O=>[O.code,O])),f=await $e(e.appId,d,u,t,r),R=ht(u,c),E=bE(R),m=(await UI(e,l,t,n,r,i,p,e.type==="UPDATE"?E:void 0)).sort((O,A)=>O.rowNumber-A.rowNumber),g=m.filter(O=>O.mode==="update"),y=e.type==="UPDATE"?xI:e.type.startsWith("UPSERT")?O=>kI(O,t,n.maxRecords??1e4):void 0,T=n.loadUpdateModeSnapshots??y,h=g.length>0&&T!==void 0,I=new Map;if(h){zl(g,d,u);let O=await T({appId:e.appId,candidates:g,fields:E}),A=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 k=O.get(w.targetId);if(!k)throw new Error(`InternalError: update-mode snapshot is missing for record ${w.targetId}.`);let L=NE(k,w.record??{});A.set(w.rowNumber,L)}f===void 0&&[...A.values()].some(w=>hn(w,R))&&(f=await Ct(e.appId,t,r));for(let w of g){let k=A.get(w.rowNumber);if(!k)throw new Error(`InternalError: validation post-image is missing for row ${w.rowNumber}.`);I.set(w.rowNumber,An(k,R,f,o,w.rowNumber,l))}}let N=ql(m,l,c,d,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!h}),{errors:D,invalidRows:P,invalidRowNumbers:M}=N;if(h){let O=new Map(N.candidateResults.map(A=>[A.rowNumber,A]));D=[],M=new Set;for(let A of m){let w=O.get(A.rowNumber);if(!w)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...w.preErrors,...w.builtInErrors,...w.checkErrors];D.push(...F),F.length>0&&M.add(A.rowNumber);continue}let k=I.get(A.rowNumber);if(!k)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let L=CE({rowNumber:A.rowNumber,setFields:d,normalizedPostImage:k.normalizedRecord,preErrors:w.preErrors,postImageErrors:k.errors,checkErrors:w.checkErrors});A.record=L.writeRecord,D.push(...L.errors);for(let F of L.invalidRowNumbers)M.add(F)}P=M.size}let U=[...c,...sr],C={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-P,invalidRows:P,errorCount:D.length,columns:U,errors:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},v=new Map;for(let O of c){if(O==="$id"){v.set(O,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ne({fieldType:"RECORD_NUMBER"})});continue}let A=p.get(O);A&&v.set(O,ke(A,e.appId))}let b=new Set(["$err_statement","$err_row"]);for(let O of sr)v.set(O,Z(b.has(O)?"number":"string"));return kn.set(C,v),{result:C,candidates:m,invalidRowNumbers:M,columnMeta:v}}async function gc(e,t,n,r,i,o){let a=await Yc(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");Nt(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??rt,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new ss(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let c=a.candidates.filter(R=>!a.invalidRowNumbers.has(R.rowNumber));if(n.confirm){let R=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(c.length,R))throw new ge(R,c.length)}let d={affectedRows:c.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let R=[];for(let E=0;E<c.length;E+=100){let m=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(g=>g.record)});R.push(m.ids)}return{type:"INSERT",createdIds:R,insertedCount:R.flat().length,...d}}if(e.type==="UPDATE"){let R=c.map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:E.targetId,record:E.record}});for(let E=0;E<R.length;E+=100)await t.putRecords({app:e.appId,records:R.slice(E,E+100)});return{type:"UPDATE",updatedCount:R.length,...d}}let u=c.filter(R=>R.mode==="create"),p=c.filter(R=>R.mode==="update").map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:R.targetId,record:R.record}}),f=0;for(let R=0;R<u.length;R+=100){let E=await t.postRecords({app:e.appId,records:u.slice(R,R+100).map(m=>m.record)});f+=E.ids.length}for(let R=0;R<p.length;R+=100)await t.putRecords({app:e.appId,records:p.slice(R,R+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...d}}async function UI(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return sm(e,n,r,i,o,s);let l,c,d,u,p;if(e.type==="INSERT"||e.type==="UPSERT")pR(e,e.fields),p=new Map(e.fields.map(h=>[h,a.get(h)?.fieldType??""])),xn(e,p),l=e.values.map(h=>h.map((I,N)=>I.type==="CASE_VALUE"?Mt(I.expr,{},a.get(e.fields[N])?.fieldType,ae(r)):I));else{let h=await gs.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(h.columns.length<e.fields.length||!I&&h.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${h.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(I&&new Set(h.columns).size!==h.columns.length)throw Oe("CHECK \u4ED8\u304D DML \u30BD\u30FC\u30B9 SELECT \u306E\u51FA\u529B\u540D\u306F\u4E00\u610F\u3067\u3042\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059");pR(e,h.columns),c=h.rows,d=h.importPresence,u=h.importRowErrors;let N=h.columnMeta;p=new Map(h.columns.map(D=>{let P=N?.get(D),M=P?.fieldType??(P?.semantics?.compareMode==="number"||P?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[D,M]})),xn(e,p),l=h.rows.map(D=>h.columns.map(P=>D[P]??""))}let f=l.map((h,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((N,D)=>d&&!d[I]?.has(N)?[]:[[N,h[D]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:c?.[I]??Object.fromEntries(e.fields.map((N,D)=>[N,Xe(h[D])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let h of e.keyFields)if(!e.fields.includes(h))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${h}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let R=new Map([...a].map(([h,I])=>[h,I.fieldType])),E=f.map(h=>e.keyFields.map(I=>Xe(h.payload.get(I)))),m=e.keyFields.map(h=>R.get(h)==="NUMBER"),g=new Map;for(let h of E){let I=Mn(h,m);g.set(I,(g.get(I)??0)+1)}let y=cs.has(e);if(y&&[...g.values()].some(h=>h>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let T=await Ar(e.appId,e.keyFields,E,n,r,R);return f.forEach((h,I)=>{let N=E[I],D=hr(T,N);h.mode=D===void 0?"create":"update",D!==void 0&&(h.targetId=D),e.keyFields.forEach((P,M)=>{N[M]===""&&h.preErrors.push({field:P,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${P} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!y&&(g.get(Mn(N,m))??0)>1&&h.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function jc(e){return e.checkGroups?or(e.checkGroups):[]}function pR(e,t){let n=new Set(t);for(let r of jc(e)){if(r.tableAlias!==null)throw Oe(`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 Oe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var MI=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function xn(e,t){if(e.checkGroups)for(let n of Qd(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(MI.has(i??""))throw Oe(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function sm(e,t,n,r,i,o){if(e.from)return GI(e,e.from,t,n,r,i,o);await gm(e.assignments,t,n,r);let a=await Te(e.appId,t,r),s=lm(e,a);xn(e,yc(a,e.appId));let l,c=new Map,d=new Map;if(oa(e)){let u=_l(e),p=[...new Set([...u.fields,...s,...o??[]])],f=await ut(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=es(f.records),c=d,l=vl(e,f.records,a,ae(n)).flatMap(R=>R.records)}else{let u=Zr(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await ut(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=es(f.records),c=d,l=ei(e,[...c.keys()],a).flatMap(R=>R.records)}else if(o){let p=await ut(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=es(p.records),l=ei(e,[...d.keys()],a).flatMap(f=>f.records)}else{let p=await fi(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=ei(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((u,p)=>u.id-p.id).map((u,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:d.get(u.id),evaluationRow:FI(c.get(u.id),e.appId),evaluationFieldTypes:yc(a,e.appId)}))}function es(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 xI(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 kI(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 lt(`\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 Zi(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let c=l.$id?.value,d=Number(c);if(!Number.isSafeInteger(d)||d<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(c)}.`);if(!i.has(d))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${d}.`);if(o.has(d))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${d}.`);o.set(d,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function lm(e,t){if(e.from)return[];let n=new Set;for(let r of jc(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw Oe(`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 Oe(`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 FI(e,t){if(!e)return{};let n=Gt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function yc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function GI(e,t,n,r,i,o,a){let s=await Dm(e,t,n,i,o);xn(e,s.evaluationTypes);let l=await um(e,t,n,r,i,o,a),c=await Te(e.appId,n,i),d=Ml(e,l,c,ae(r)).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?es(l.map(f=>f.target)):new Map;return d.sort((f,R)=>f.id-R.id).map((f,R)=>({rowNumber:R+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(E=>[E.field,f.record[E.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:p.get(f.id),evaluationRow:Hw(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var KI=Rr,$I=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function um(e,t,n,r,i,o,a){let s=await BI(e,t,n,i),l=await Dm(e,t,n,i,o),c=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],d=[...new Set([t.joinKeyField,...c])],u=await VI(t,d,c,n,r,i,o),p=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let N=dR(I[t.joinKeyField],s,"source");if(p.has(N))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${N}.`);p.set(N,I),f.set(N,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let R=r.maxRecords??1e4,E=[...new Set([...sw(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":Zr({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,g=[],y=new Set,T=0;for(let I of Zi([...f.values()],KI)){let N=`${t.targetJoinField} in (${I.map(Hi).join(",")})`,D=m?`(${N}) and (${m})`:N,P=await ut(n.getRecords,e.appId,D,E,{maxRecords:R,parallel:r.fetchParallel??1,onLimit:"error"});if(T+=P.records.length,T>R)throw new lt(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${R} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let M of P.records){let U=M.$id?.value;if(typeof U!="string"||U==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");y.has(U)||(y.add(U),g.push(M))}}let h=[];for(let I of g){let N=I[t.targetJoinField]?.value,D=dR(N,s,"target");if(D===null)continue;let P=p.get(D);P!==void 0&&h.push({target:I,source:P})}return h}async function BI(e,t,n,r){if(t.targetJoinField==="$id")return"id";let i=(await X(e.appId,n,r)).find(o=>o.code===t.targetJoinField);if(!i)throw new Error(`ArgumentError: UPDATE ... FROM target column ${t.targetJoinField} does not exist.`);if(i.inSubtable||i.writable===!1||i.fieldType!=="SINGLE_LINE_TEXT"&&i.fieldType!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support target join field type ${i.fieldType} (${t.targetJoinField}).`);return i.fieldType==="NUMBER"?"number":"string"}async function VI(e,t,n,r,i,o,a){if(e.cteName!==null){let d=a?.get(e.cteName);if(!d)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(!d.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return d.rows}let s=await Te(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let d of n){if(d!=="$id"&&!s.has(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);let u=d==="$id"?"RECORD_NUMBER":s.get(d);if($I.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${d}).`)}return(await ut(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(d=>Gt(d,null))}function dR(e,t,n){if(typeof e!="string")throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a scalar string: ${String(e)}`);if(t==="string"){if(e===""){if(n==="target")return null;throw new Error("ArgumentError: UPDATE ... FROM source key must not be empty.")}return e}if(t==="number"&&n==="target"&&e==="")return null;if(t==="id"){let i=e.trim(),o=Number(i);if(i===""||!Number.isSafeInteger(o)||o<=0)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a positive safe integer: ${e}`);return String(o)}let r=we(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function eo(e,t,n,r,i){let o=await Yc(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new ge(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(R=>R.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<u.length;p+=100)await t.putRecords({app:e.appId,records:u.slice(p,p+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),c=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),d=0;for(let u=0;u<l.length;u+=100){let p=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});d+=p.ids.length}for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPSERT",insertedCount:d,updatedCount:c.length}}async function WI(e,t,n,r){if(e.applyBlocks?.length)return LI(e,t,n,r);if(e.checkGroups?.length)return eo(e,t,n,r);if(e.subtableCode)return cw(e,t,n,r);let i=await Le(e.appId,e.fields,t,r),o=await $e(e.appId,e.fields,i,t,r),a=await Te(e.appId,t,r),s=Qr(e,a,ae(n));Rt(s.flatMap(c=>c.records),e.fields,i,o);let l=[];for(let c of s){let d=await t.postRecords(c);l.push(d.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function HI(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Me},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function cm(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=DE(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let x=new Set(e.targets.filter(G=>G.kind==="SUBTABLE").map(G=>G.subtableCode));if(e.replaceSubtables.some(G=>!x.has(G)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let G of e.targets.filter(Y=>Y.kind==="SUBTABLE"))if(!G.rowIdSourceHeader||!e.replaceSubtables.includes(G.subtableCode))throw new Error(`ArgumentError: CSV subtable ${G.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,p=await X(e.appId,t,r),f=u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children),R=p.some(x=>f.includes(x.code)&&x.fieldType==="NUMBER")?await Ct(e.appId,t,r):void 0,E=await $a(o,new Map),m=e.source.kind==="JSON"?kE(e.source,E,u,n.maxRecords??1e4):FE(e.source,E,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),g=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",y=BE(m,u,p,R,g);if(e.source.kind==="CSV")return YI(e,m,y,p,t,n,i);Gu(y,e.rejectLimit);let T=[...new Set(u.flatMap(x=>x.kind==="FIELD"?[x.field]:x.children))],h=$u(y.errors,T),I=[...T,...Ku],N=y.invalidParentRows.size,D={preflight:"ACTUAL_DATA",parents:{total:y.parents.length,valid:y.parents.length-N,invalid:N,mutationCandidates:y.parents.filter(x=>x.valid).length},tables:Object.fromEntries(y.tableCounts),writesKintone:!1},P={type:"VALIDATION",operation:g,validatedRows:y.parents.length,validRows:y.parents.length-N,invalidRows:N,errorCount:h.length,columns:I,errors:h,importDetail:D,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&Nt(i,e.validationErrorTable,I,h,n.tempTableMaxRows??rt,new Map),e.validateOnly)return P;if(WE(m),y.errors.length>0&&!e.onErrorSkip){let x=y.errors[0];throw new Error(`DmlValidationError: ${x.code} ${x.message} (row=${x.parentRow}, field=${x.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Nt(i,e.errorTable,I,h,n.tempTableMaxRows??rt,new Map)}let M=y.parents.filter(x=>x.valid),U=new Map(p.map(x=>[x.code,x.fieldType])),C=M.map(()=>{});if(e.keyFields){for(let _ of e.keyFields)if(!e.fields.includes(_))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${_}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let x=e.keyFields.map(_=>U.get(_)==="NUMBER"),G=new Set,Y=M.map(_=>e.keyFields.map(V=>String(_.top[V]?.value??"")));for(let _ of Y){let V=Mn(_,x);if(G.has(V))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");G.add(V)}let K=await Ar(e.appId,e.keyFields,Y,t,n,U);Y.forEach((_,V)=>{C[V]=hr(K,_)})}let v=u.filter(x=>x.kind==="SUBTABLE").map(x=>x.subtableCode),b=new Map,O=C.filter(x=>x!==void 0);for(let x of Zi([...new Set(O)],100)){let G=await t.getRecords({app:e.appId,query:`$id in (${x.join(",")}) limit 500`,fields:["$id","$revision",...v]});for(let Y of G.records){let K=Number(Y.$id?.value),_=Number(Y.$revision?.value);Number.isFinite(K)&&b.set(K,{id:K,...Number.isFinite(_)?{revision:_}:{},record:Y})}}let A=HE(M,C,b),w={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(x=>x.mode==="INSERT").length,updatedParents:A.filter(x=>x.mode==="UPDATE").length,hasDeletes:A.some(x=>x.tables.some(G=>G.deleteRows>0)),parents:A.map(x=>({parentRow:x.parentRow,mode:x.mode,...x.targetId===void 0?{}:{targetId:x.targetId},tables:x.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new ge(e.keyFields?"UPDATE":"INSERT",A.length)}let k=x=>new Map(Object.entries(x).map(([G,Y])=>[G,Y.value])),L=x=>VE(k(x.top),new Map([...x.subtables].map(([G,Y])=>[G,Y.map(K=>({values:k(K)}))]))),F=A.filter(x=>x.mode==="INSERT"),H=A.filter(x=>x.mode==="UPDATE"),$=[];for(let x=0;x<F.length;x+=100){let G=await t.postRecords({app:e.appId,records:F.slice(x,x+100).map(L)});$.push(G.ids)}for(let x=0;x<H.length;x+=100)await t.putRecords({app:e.appId,records:H.slice(x,x+100).map(G=>({id:G.targetId,...G.revision===void 0?{}:{revision:G.revision},record:L(G)}))});return e.keyFields?{type:"UPSERT",insertedCount:$.flat().length,updatedCount:H.length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}:{type:"INSERT",createdIds:$,insertedCount:$.flat().length,affectedRows:A.length,skippedRows:y.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return jI(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:HI(),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};cs.set(s,l);let c=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await Hc(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&Nt(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??rt,kn.get(u)??new Map),c(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",gc(s,t,n,r,i,1));return c(u)}let d=await(s.type==="UPSERT_SELECT"?Qc(s,t,n,r,i):qc(s,t,n,r,i));return c(d)}async function YI(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");YE(t.records);let s=t.records.map(b=>b.recordNumberSourceValue??""),l=Wu(s,e.recordNumberSourceHeader),c=[...e.replaceSubtables],d=[...new Set(r.filter(b=>!b.inSubtable&&b.fieldType==="SUBTABLE").map(b=>b.code))],u=await Ke(i.getRecords,e.appId,"",["$id","$revision",...d],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let b of u){let O=Number(b.$id?.value),A=Number(b.$revision?.value);if(Number.isFinite(O)){p.set(O,{id:O,...Number.isFinite(A)?{revision:A}:{},record:b});for(let w of d){let k=b[w]?.value;if(Array.isArray(k)){for(let L of k)if(L.id){let F=f.get(L.id)??[];F.push({parentId:O,table:w}),f.set(L.id,F)}}}}}let R=l.normalized.map(b=>b===null?void 0:Number(b)),E=n.parents.map((b,O)=>{let A=[...b.errors];for(let k of l.errors[O])A.push({operation:"UPDATE",parentRow:b.parentRow,field:k.field,code:k.code,message:k.message,sourceValues:t.records[O].top});let w=R[O];return w!==void 0&&!p.has(w)&&A.push({operation:"UPDATE",parentRow:b.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`,sourceValues:t.records[O].top}),{...b,valid:A.length===0,errors:A}}),m=jE(t.records,E,R,p,f),g=m.flatMap(b=>[...b.errors]),y=new Set(m.filter(b=>!b.valid).map(b=>b.parentRow)),T={...n,parents:E,errors:g,invalidParentRows:y};Gu(T,e.rejectLimit);let h=m.filter(b=>b.valid),I=m.flatMap(b=>b.tables),N=(b,O)=>I.filter(A=>A.table===b).reduce((A,w)=>A+Number(w[O]),0),D=Object.fromEntries(c.map(b=>[b,{existingRows:N(b,"existingRows"),inputRows:N(b,"inputRows"),updateRows:N(b,"updateRows"),addRows:N(b,"addRows"),deleteRows:N(b,"deleteRows"),rowIdNotFound:N(b,"rowIdNotFound")}])),P={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:h.length,insertedParents:0,updatedParents:h.length,hasDeletes:h.some(b=>b.tables.some(O=>O.deleteRows>0)),totalDeleteRows:h.flatMap(b=>b.tables).reduce((b,O)=>b+O.deleteRows,0),rowIdNotFound:h.flatMap(b=>b.tables).reduce((b,O)=>b+O.rowIdNotFound,0),invalidParents:y.size,parents:h.map(b=>({parentRow:b.parentRow,mode:"UPDATE",targetId:b.targetId,tables:b.tables}))},M=[...new Set(e.targets.flatMap(b=>b.kind==="FIELD"?[b.field]:b.children))],U=$u(g,M),C=[...M,...Ku];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&Nt(a,e.validationErrorTable,C,U,o.tempTableMaxRows??rt,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-y.size,invalidRows:y.size,errorCount:U.length,columns:C,errors:U,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:h.length,invalid:y.size,mutationCandidates:h.length},tables:D,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:P.rowIdNotFound,writesKintone:!1}}}if(g.length&&!e.onErrorSkip){let b=g[0];throw new Error(`DmlValidationError: ${b.code} ${b.message} (row=${b.parentRow}, field=${b.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Nt(a,e.errorTable,C,U,o.tempTableMaxRows??rt,new Map)}if(h.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(h.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:P}))throw new ge("UPDATE",h.length)}let v=b=>new Map(Object.entries(b).map(([O,A])=>[O,A.value]));for(let b of h){let O=Bu(v(b.top),new Map([...b.subtables].map(([A,w])=>[A,w.map(k=>({...k.rowId?{rowId:k.rowId}:{},values:v(k.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:b.targetId,...b.revision===void 0?{}:{revision:b.revision},record:O}]})}return{type:"UPDATE",updatedCount:h.length,affectedRows:h.length,skippedRows:y.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}async function jI(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 Le(e.appId,e.fields,n,i),s=await $e(e.appId,e.fields,a,n,i),l=await $a(t,new Map),c=xu(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),d=c.recordNumberSourceValues;if(!d)throw new Error("InternalError: record-number source values were not materialized.");let u=Wu(d,e.recordNumberSourceHeader),p=new Set,f=[...new Set(u.normalized.filter(P=>P!==null))];for(let P=0;P<f.length;P+=100){let M=f.slice(P,P+100),U=await n.getRecords({app:e.appId,query:`$id in (${M.join(",")}) limit 500`,fields:["$id"]});for(let C of U.records){let v=C.$id?.value;typeof v=="string"&&v!==""&&p.add(v.replace(/^0+(?=\d)/,""))}}let R=new Map(a.map(P=>[P.code,P])),E=new Map(e.fields.map(P=>[P,R.get(P)?.fieldType??"SINGLE_LINE_TEXT"])),m=c.rows.map((P,M)=>{let U=u.normalized[M],C=[...c.importRowErrors?.[M]??[],...u.errors[M]];return U!==null&&!p.has(U)&&C.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${U} does not exist in APP${e.appId}`}),{rowNumber:M+1,operation:"UPDATE",mode:"update",...U!==null&&p.has(U)?{targetId:Number(U)}:{},payload:new Map([[e.recordNumberSourceHeader,d[M]],...e.fields.map(v=>[v,P[v]??""])]),preErrors:C,record:{},evaluationRow:P,evaluationFieldTypes:E}}),g=[e.recordNumberSourceHeader,...e.fields],y=ql(m,"UPDATE",g,e.fields,a,1,s,e.checkGroups??[],!1),T=[...g,...sr],h={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-y.invalidRows,invalidRows:y.invalidRows,errorCount:y.errors.length,columns:T,errors:y.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(h,{importAudit:c.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&Nt(o,e.validationErrorTable,T,y.errors,r.tempTableMaxRows??rt,new Map),h}if(!e.onErrorSkip&&y.invalidRows>0){let P=y.errors[0];throw new Error(`DmlValidationError: ${P.$err_code} ${P.$err_message} (row=${P.$err_row}, field=${P.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(Nt(o,e.errorTable,T,y.errors,r.tempTableMaxRows??rt,new Map),e.rejectLimit!=null&&y.invalidRows>e.rejectLimit)throw new ss(`rejected rows (${y.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,h)}let I=m.filter(P=>!y.invalidRowNumbers.has(P.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new ge("UPDATE",I.length);let N=I.map(P=>({id:P.targetId,record:P.record}));for(let P=0;P<N.length;P+=100)await n.putRecords({app:e.appId,records:N.slice(P,P+100)});let D={type:"UPDATE",updatedCount:N.length,...e.onErrorSkip?{affectedRows:N.length,skippedRows:y.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(D,{insertedCount:0,importAudit:c.importAudit}),D}async function zI(e,t,n,r,i,o){let a=cs.get(e);if(!a){let E=i&&i.size>0?await Et(e.select,t,n,i,r,!0):await Bt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:ye.get(E)}}let s=await $a(a.handle,a.cache),l=n.maxRecords??1e4,c=new Map((o??[]).map(E=>[E.code,E])),d=e.fields.map(E=>({code:E,fieldType:c.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?Mu(a.source,s,d,l):xu(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=zE(a.source.projection),f=new Map(i??[]);f.set(Vu,u);let R=await Et(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:R.rows,columns:R.columns,columnMeta:ye.get(R)}}var gs={materialize:zI};function zc(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 qc(e,t,n,r,i){if(e.checkGroups?.length)return eo(e,t,n,r,i);let o=await Le(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await gs.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(zc(s),c.length!==e.fields.length){let f=c.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${c.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new ge("INSERT",l.length);let d=await Te(e.appId,t,r),u=l.map((f,R)=>{let E={};return e.fields.forEach((m,g)=>{if(s.importPresence&&!s.importPresence[R]?.has(m))return;let y=f[c[g]]??"";E[m]={value:Wc(y,d.get(m))}}),E});u.forEach(f=>Rt([f],e.fields.filter(R=>R in f),o,a));let p=[];for(let f=0;f<u.length;f+=100){let R=u.slice(f,f+100),E=await t.postRecords({app:e.appId,records:R});p.push(E.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function hc(e,t,n,r,i){if(e.applyBlocks?.length)return pm(e,t,n,r);if(e.checkGroups?.length&&He(e.where)){let R=await Le(e.appId,e.assignments.map(m=>m.field),t,r);await $e(e.appId,e.assignments.map(m=>m.field),R,t,r);let E=await Te(e.appId,t,r);return lm(e,E),xn(e,yc(E,e.appId)),await sn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return eo(e,t,n,r,i);if(e.subtableCode)return await sn(e,t,r),pw(e,t,n,r);let o=await Le(e.appId,e.assignments.map(R=>R.field),t,r),a=e.assignments.map(R=>R.field),s=await $e(e.appId,a,o,t,r);if(await sn(e,t,r),He(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return aw(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await gm(e.assignments,t,n,r);let c=await Te(e.appId,t,r);if(oa(e)){let R=_l(e),m=(await ut(t.getRecords,R.app,R.query,[...R.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,g=vl(e,m,c,ae(n));if(Rt(g.flatMap(y=>y.records.map(T=>T.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new ge("UPDATE",m.length);for(let y of g)await t.putRecords(y);return{type:"UPDATE",updatedCount:m.length}}let d=Zr(e),p=(await fi(t.getRecords,d.app,d.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=ei(e,p,c);if(Rt(f.flatMap(R=>R.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new ge("UPDATE",p.length);for(let R of f)await t.putRecords(R);return{type:"UPDATE",updatedCount:p.length}}async function pm(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!_t(e.where))return qI(e,t,n,r,i);let o=await X(e.appId,t,r),a=xt(e,o),s=sa(e,o),l=Bl(e),c=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(c.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(c.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let d=Number(c.records[0].$id?.value);if(d!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${d} does not match requested $id ${l}.`);pa(c.records[0]);let u=Rf({statement:e,snapshot:c.records[0],fieldInfos:o,metadata:a,evaluationContext:ae(n)}),p=ht(o,e.assignments.map(I=>I.field)),f=hn(u.postImage,p)?await Ct(e.appId,t,r):void 0,R=An(u.postImage,p,f,i);if(!e.validateOnly&&R.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:R.columns,errors:R.errors})}`);let E=it(n.dmlMaxRows,"dmlMaxRows",Vt),m=it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",_e),g=u.parentRows>E||u.changedSubtableRows>m;if(e.validateOnly){let I=ci({plans:[u],records:ii(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:g}}),N={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:R.invalidRows===0?1:0,invalidRows:R.invalidRows===0?0:1,errorCount:R.errorCount,columns:[...R.columns],errors:R.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:ji(I.branches[0]),guards:zi(I.branches[0]),deletedRows:{total:u.tables.reduce((D,P)=>D+P.deletedRows,0),parentRows:u.tables.some(D=>D.deletedRows>0)?1:0},diagnostic:I};return kn.set(N,ys(R.columns,o,e.appId)),N}if(u.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${E}).`);if(u.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let y=ua(u,R.normalizedRecord),T=ii(y),h=ci({plans:[y],records:T.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:g}});if(n.confirm){let I=ms(h,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:h}))throw new ge("UPDATE",u.parentRows)}return await t.putRecords(T),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:Qe(h,{successfulChunks:1,successfulParents:u.parentRows})}}async function qI(e,t,n,r,i){let o=it(n.dmlMaxRows,"dmlMaxRows",Vt),a=it(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",_e),s=await X(e.appId,t,r),l=xt(e,s),c;if(ls(e))c=await ZI(e,t,n,s,r);else{let f=sa(e,s),R=Zr(e).query,E=o+1;c=await Ke(t.getRecords,e.appId,R,[...f],{pageSize:Math.min(500,E),parallel:n.fetchParallel??1,maxRecords:E,stopAfter:E,onLimit:"error"})}if(!e.validateOnly&&c.length>o)throw new Error(`ArgumentError: APPLY parent rows (${c.length}) exceed dmlMaxRows (${o}).`);let d=await Ra({statement:e,snapshots:c,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>Ct(e.appId,t,r)});if(e.validateOnly)return iw(e,d,s);fd("phase15b",e);let u=ci(d);if(n.confirm){let f=ms(u);if(!await n.confirm(d.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new ge("UPDATE",d.guards.parentRows)}let p=await Mf(d,t,u);return{...p,diagnostic:Qe(u,p)}}function ls(e){return(e.applyBlocks?.length??0)>0&&!_t(e.where)&&(zt(e.where)||Ce(e.where))}function JI(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&ls(t)&&Ce(t.where)}var XI=`APPLY \u8907\u6570\u89AA UPDATE \u306E\u89AA WHERE \u306B\u3001\u5B89\u5168\u306B\u62BC\u3057\u4E0B\u3052\u3089\u308C\u306A\u3044 KLIKE / NOT KLIKE \u304C\u3042\u308A\u307E\u3059\u3002
14
+ `){o();continue}let l=a();if("{}[]:,".includes(s)){o(),t.push({kind:"punct",value:s,...l});continue}if(s==='"'){o();let p="",f=!1;for(;n<e.length;){let R=o();if(R==='"'){f=!0;break}if(R.charCodeAt(0)<32&&$t("string contains an unescaped control character",l.offset,l.line,l.column),R!=="\\"){p+=R;continue}n>=e.length&&$t("string has an unterminated escape",l.offset,l.line,l.column);let E=o(),m={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:`
15
+ `,r:"\r",t:" "};if(E in m){p+=m[E];continue}E!=="u"&&$t(`has invalid escape \\${E}`,n-2,r,Math.max(1,i-2));let y=e.slice(n,n+4);/^[0-9a-fA-F]{4}$/.test(y)||$t("has invalid unicode escape",n,r,i);for(let T=0;T<4;T++)o();let g=Number.parseInt(y,16);if(g>=55296&&g<=56319){(e.slice(n,n+2)!=="\\u"||!/^[0-9a-fA-F]{4}$/.test(e.slice(n+2,n+6)))&&$t("has an unpaired high surrogate",n,r,i),o(),o();let T=e.slice(n,n+4);for(let I=0;I<4;I++)o();let h=Number.parseInt(T,16);(h<56320||h>57343)&&$t("has an invalid surrogate pair",n-4,r,Math.max(1,i-4)),p+=String.fromCodePoint(65536+(g-55296<<10)+h-56320)}else g>=56320&&g<=57343?$t("has an unpaired low surrogate",n-4,r,Math.max(1,i-4)):p+=String.fromCharCode(g)}f||$t("string is unterminated",l.offset,l.line,l.column),t.push({kind:"string",value:p,...l});continue}let c=e.slice(n),d=/^-?(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?/.exec(c)?.[0];if(d){for(let p=0;p<d.length;p++)o();t.push({kind:"number",lexeme:d,...l});continue}let u=/^(true|false|null)/.exec(c)?.[0];if(u){for(let p=0;p<u.length;p++)o();t.push({kind:"literal",value:u==="true"?!0:u==="false"?!1:null,...l});continue}$t(`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 Ha(e){return e.kind==="eof"?"end of input":e.kind==="punct"?e.value:e.kind}function Ya(e){if(e.byteLength===0)throw new H("JSON source is empty.");let t=BE($E(e)),n=0,r=(c,d=t[n])=>{throw new H(`JSON ${c} (offset=${d.offset}, line=${d.line}, column=${d.column}).`)},i=(c,d)=>c.kind==="punct"&&c.value===d,o=c=>{let d=t[n];(d.kind!=="punct"||d.value!==c)&&r(`expected ${c}; found ${Ha(d)}`,d),n++},a=()=>{let c=t[n++];if(c.kind==="string")return c.value;if(c.kind==="number")return{kind:"number",lexeme:c.lexeme};if(c.kind==="literal")return c.value;if(c.kind==="punct"&&c.value==="{"){let d=new Map;if(i(t[n],"}"))return n++,d;for(;;){let u=t[n++];if(u.kind!=="string")return r(`object key must be a string; found ${Ha(u)}`,u);let p=u.value;d.has(p)&&r(`duplicate key ${JSON.stringify(p)}`,u),o(":"),d.set(p,a());let f=t[n];if(i(f,"}")){n++;break}o(",")}return d}if(c.kind==="punct"&&c.value==="["){let d=[];if(i(t[n],"]"))return n++,d;for(;;){d.push(a());let u=t[n];if(i(u,"]")){n++;break}o(",")}return d}return r(`expected a value; found ${Ha(c)}`,c)},s=a();t[n].kind!=="eof"&&r(`has trailing data; found ${Ha(t[n])}`);let l=s instanceof Map?[s]:Array.isArray(s)?s:r("root must be an object or array.",t[0]);if(l.length===0)throw new H("JSON source contains no records.");return l.forEach((c,d)=>{if(!(c instanceof Map))throw new H(`JSON record ${d+1} must be an object.`)}),l}var sT=new Set(["CHECK_BOX","MULTI_SELECT"]),VE=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]);function Nt(e,t,n){throw new H(`JSON field validation failed (row=${e}, field=${t}): ${n}`)}function lT(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&!(e instanceof Map)&&e.kind==="number"}function uT(e,t,n){if(e===null)return"";if(typeof e=="string")return e;if(typeof e=="boolean"&&Nt(n,t.code,"boolean is not accepted."),lT(e)){t.fieldType==="NUMBER"&&Nt(n,t.code,"precision target requires a JSON string."),(!/^-?(?:0|[1-9]\d*)$/.test(e.lexeme)||e.lexeme==="-0")&&Nt(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)||Nt(n,t.code,`JSON number ${e.lexeme} is outside the safe integer range.`),String(i)}e instanceof Map&&Nt(n,t.code,"object is not accepted for a flat field."),Array.isArray(e)||Nt(n,t.code,"unsupported value type."),!sT.has(t.fieldType)&&!VE.has(t.fieldType)&&Nt(n,t.code,"array is accepted only for multi-value fields.");let r=e.map(i=>(typeof i!="string"&&Nt(n,t.code,"array elements must be strings."),i));return new Set(r).size!==r.length&&Nt(n,t.code,"array elements must not contain duplicates."),VE.has(t.fieldType)?JSON.stringify(r.map(i=>({code:i}))):JSON.stringify(r)}function Ku(e,t,n,r){if(t.encoding&&t.encoding!=="utf8")throw new H("JSON source is UTF-8 only.");let i=Ya(t.bytes);if(i.length>r)throw new H(`source rows (${i.length}) exceed maxRecords (${r}).`);let o=new Map(n.map(l=>[l.code,l]));if(o.size!==n.length)throw new H("JSON target fields contain duplicates.");let a=[],s=[];return i.forEach((l,c)=>{for(let p of l.keys())o.has(p)||Nt(c+1,p,"unknown key (not declared in INTO).");let d={},u=new Set;for(let p of n)l.has(p.code)&&(u.add(p.code),d[p.code]=uT(l.get(p.code),p,c+1));a.push(d),s.push(u)}),{rows:a,columns:n.map(l=>l.code),columnMeta:new Map(n.map(l=>[l.code,{fieldType:l.fieldType}])),importPresence:s}}function Gu(e,t,n,r,i,o){let a=Wa(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(a.rows.length>n)throw new H(`source rows (${a.rows.length}) exceed maxRecords (${n}).`);if(e.mappingMode==="BY_NAME"){if(!r||!i)throw new Error("InternalError: BY NAME requires destination form metadata.");if(new Set(r).size!==r.length)throw new H("ERR_IMPORT_HEADER_REUSED: a BY NAME header cannot be consumed more than once.");let l=new Map(a.columns.map((y,g)=>[y,g]));for(let y of r)if(!l.has(y))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${y}" is missing.`);let c=new Map(i.map(y=>[y.code,y])),d=new Set(r);if(o&&d.has(o))throw new H("ERR_IMPORT_HEADER_REUSED: record-number source header is lookup-only and cannot be a write target.");if(o&&!l.has(o))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let u=[],p=[],f=y=>a.rows.filter(g=>g[y]!=="").length,R=y=>y.fieldType==="FILE"?"FILE attachment is outside flat IMPORT scope":y.inSubtable||y.fieldType==="SUBTABLE"?"subtable field is not writable in Phase 3":y.writable===!1?`non-writable ${y.fieldType} field`:`known export-only ${y.fieldType} field`;for(let[y,g]of a.columns.entries()){if(d.has(g)||g===o)continue;let T=c.get(g);if(T)u.push({column:g,reason:R(T),nonEmptyCells:f(y)});else if(e.ignoreUnknownColumns)p.push({column:g,reason:"unknown column ignored by explicit policy",nonEmptyCells:f(y)});else throw new H(`ERR_IMPORT_UNKNOWN_COLUMN: unknown CSV header "${g}".`)}for(let y of r){let g=c.get(y);if(!g)throw new Error(`ArgumentError: DML target field ${y} does not exist.`);if(g.inSubtable||g.writable===!1||g.fieldType==="FILE"||g.fieldType==="SUBTABLE")throw new Error(`ArgumentError: DML target field ${y} is not writable (${g.fieldType}).`)}let E=[];return{rows:a.rows.map(y=>{let g=[],T={};for(let h of r){let I=y[l.get(h)];try{T[h]=GE(I,c.get(h)?.fieldType,{cliKintone:!0})}catch(N){if(!(N instanceof Oi))throw N;T[h]=I,g.push({field:h,code:N.code,message:N.message})}}return E.push(g),T}),columns:[...r],columnMeta:new Map(r.map(y=>[y,{fieldType:c.get(y)?.fieldType??"SINGLE_LINE_TEXT"}])),importRowErrors:E,...o?{recordNumberSourceValues:a.rows.map(y=>y[l.get(o)])}:{},importAudit:{mapping:"BY_NAME",writtenColumns:[...r],ignoredKnownColumns:u,ignoredUnknownColumns:p}}}return{rows:a.rows.map(l=>Object.fromEntries(a.columns.map((c,d)=>[c,l[d]]))),columns:a.columns,columnMeta:new Map(a.columns.map(l=>[l,{fieldType:"SINGLE_LINE_TEXT"}]))}}var Li=(e,t,n)=>{throw new H(`JSON subtable validation failed (parentRow=${e}, field=${t}): ${n}`)};function WE(e,t,n,r,i=r){if(t.encoding&&t.encoding!=="utf8")throw new H("JSON source is UTF-8 only.");let o=Ya(t.bytes);if(o.length>r)throw new H(`source parent rows (${o.length}) exceed maxRecords (${r}).`);let a=new Map(n.map(l=>[l.kind==="FIELD"?l.field:l.subtableCode,l]));if(a.size!==n.length)throw new H("IMPORT targets contain duplicates.");let s=0;return{records:o.map((l,c)=>{let d=c+1;for(let R of l.keys())a.has(R)||Li(d,R,"unknown key (not declared in INTO).");let u=new Map,p=new Map,f=new Set;for(let R of n){let E=R.kind==="FIELD"?R.field:R.subtableCode;if(!l.has(E))continue;let m=l.get(E);if(R.kind==="FIELD"){m instanceof Map&&Li(d,E,"object is not accepted for a top-level field."),u.set(E,m);continue}Array.isArray(m)||Li(d,E,"subtable value must be an array."),f.add(E);let y=new Set(R.children),g=m.map((T,h)=>{T instanceof Map||Li(d,E,`childRow=${h+1} must be an object.`);let I=T;for(let N of I.keys())y.has(N)||Li(d,N,`unknown child key in subtable ${E} at childRow=${h+1}.`);if(s++,s>i)throw new H(`source child rows (${s}) exceed limit (${i}).`);return{childRowNumber:h+1,values:I}});p.set(E,g)}return{rowNumber:d,top:u,subtables:p,replacementTables:f}})}}function HE(e,t,n,r,i,o){let a=Wa(t.bytes,{encoding:e.encoding??t.encoding??"utf8",hasHeader:e.hasHeader,columns:e.columns});if(!e.hasHeader||a.columns[0]!=="*")throw new H('ERR_IMPORT_MARKER: first CSV header must be "*".');let s=new Map(a.columns.map((p,f)=>[p,f]));if(o&&!s.has(o))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${o}" is missing.`);let l=n.filter(p=>p.kind==="FIELD"),c=n.filter(p=>p.kind==="SUBTABLE");for(let p of l)if(!s.has(p.field))throw new H(`ERR_IMPORT_MISSING_COLUMN: required header "${p.field}" is missing.`);for(let p of c){if(!p.rowIdSourceHeader||!s.has(p.rowIdSourceHeader))throw new H(`ERR_IMPORT_MISSING_COLUMN: row-ID header for ${p.subtableCode} is missing.`);for(let f of p.children)if(!s.has(f))throw new H(`ERR_IMPORT_MISSING_COLUMN: required child header "${f}" is missing.`)}let d=[],u;if(a.rows.forEach((p,f)=>{let R=f+2,E=p[0];if(E!==""&&E!=="*")throw new H(`ERR_IMPORT_MARKER: invalid marker ${JSON.stringify(E)} at source row ${R}.`);if(E==="*"){if(d.length>=i)throw new H(`source parent rows exceed maxRecords (${i}).`);u={rowNumber:d.length+1,markerRowNumber:R,top:new Map(l.map(m=>[m.field,p[s.get(m.field)]])),subtables:new Map(c.map(m=>[m.subtableCode,[]])),replacementTables:new Set(r),...o?{recordNumberSourceValue:p[s.get(o)]}:{}},d.push(u)}else if(u){for(let m of l){let y=p[s.get(m.field)];if(y!==""&&y!==u.top.get(m.field))throw new H(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${m.field} at source row ${R}.`)}if(o){let m=p[s.get(o)];if(m!==""&&m!==u.recordNumberSourceValue)throw new H(`ERR_IMPORT_PARENT_VALUE_ON_CONTINUATION: ${o} at source row ${R}.`)}}else throw new H(`ERR_IMPORT_MARKER: first data row must start a parent (source row ${R}).`);for(let m of c){let y=p[s.get(m.rowIdSourceHeader)],g=new Map(m.children.map(h=>[h,p[s.get(h)]]));if(y===""&&[...g.values()].every(h=>h===""))continue;let T=u.subtables.get(m.subtableCode);T.push({childRowNumber:T.length+1,sourceRowNumber:R,...y?{rowId:y}:{},values:g})}}),d.length===0)throw new H("CSV has no parent rows.");return{records:d}}var cT=new Set(["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"]),pT=new Set(["SUBTABLE","FILE","CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function Vu(e,t){if(t!=null&&e.invalidParentRows.size>t)throw new Error(`RejectLimitExceededError: rejected parents (${e.invalidParentRows.size}) exceed REJECT LIMIT (${t}).`)}function qE(e,t,n,r,i){let o=new Map(n.filter(p=>!p.inSubtable).map(p=>[p.code,p])),a=new Map;for(let p of n)if(p.inSubtable&&p.subtableCode){let f=a.get(p.subtableCode);f||a.set(p.subtableCode,f=new Map),f.set(p.code,p)}let s=t.filter(p=>p.kind==="FIELD"),l=t.filter(p=>p.kind==="SUBTABLE");for(let p of s)YE(p.field,o.get(p.field),void 0);for(let p of l){let f=o.get(p.subtableCode);if(!f||f.fieldType!=="SUBTABLE")throw new Error(`ArgumentError: IMPORT subtable ${p.subtableCode} does not exist.`);let R=a.get(p.subtableCode)??new Map;for(let E of p.children)YE(E,R.get(E),p.subtableCode)}let c=new Map(l.map(p=>[p.subtableCode,{parentsPresent:0,childRows:0,validChildRows:0,invalidChildRows:0}])),d=e.records.map(p=>dT(p,s,l,o,a,r,i,c)),u=d.flatMap(p=>[...p.errors]);return{parents:d,errors:u,invalidParentRows:new Set(d.filter(p=>!p.valid).map(p=>p.parentRow)),tableCounts:c}}function dT(e,t,n,r,i,o,a,s){let l=[],c={};for(let p of t)e.top.has(p.field)&&Bu(e.top.get(p.field),r.get(p.field),o,c,p.field,l,$u(e,a,p.field));let d={};if(a==="INSERT")for(let p of r.values())p.fieldType==="SUBTABLE"||p.writable===!1||e.top.has(p.code)||jE(p,o,d,l,$u(e,a,p.code));let u=new Map;for(let p of n){if(!e.subtables.has(p.subtableCode))continue;let f=s.get(p.subtableCode);f.parentsPresent++;let R=[];for(let E of e.subtables.get(p.subtableCode)){f.childRows++;let m=l.length,y={},g=i.get(p.subtableCode);for(let T of p.children){let h=g.get(T),I=$u(e,a,T,p.subtableCode,E.childRowNumber,E.sourceRowNumber??e.markerRowNumber);E.values.has(T)?Bu(E.values.get(T),h,o,y,T,l,I):jE(h,o,y,l,I)}l.length===m?(f.validChildRows++,R.push(y)):f.invalidChildRows++}u.set(p.subtableCode,R)}return{parentRow:e.rowNumber,valid:l.length===0,top:c,subtables:u,replacementTables:e.replacementTables,errors:l}}function YE(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&&pT.has(t.fieldType))throw new Error(`ArgumentError: IMPORT ${n?`child ${n}.${e}`:`field ${e}`} is not writable (${t.fieldType}).`)}function jE(e,t,n,r,i){let o=hn(e.defaultValue)?"":e.defaultValue;Bu(o,e,t,n,e.code,r,i,!hn(e.defaultValue))}function Bu(e,t,n,r,i,o,a,s=!1){let l=fT(e),c=We(l,t,n);c.ok?r[i]={value:ET(l,t)?l:c.value}:o.push({...a,code:c.code,message:s?`\u65E2\u5B9A\u5024: ${c.message}`:c.message})}function fT(e){return zE(e)?e.lexeme:Array.isArray(e)?e.map(t=>t instanceof Map?t:zE(t)?t.lexeme:t):e}function zE(e){return typeof e=="object"&&e!==null&&e.kind==="number"}function ET(e,t){return cT.has(t.fieldType)&&Array.isArray(e)&&e.every(n=>typeof n=="object"&&n!==null&&"code"in n)}function $u(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 Wu=["$err_statement","$err_operation","$err_row","$err_field","$err_subtable","$err_subrow","$err_source_row","$err_code","$err_message"];function Hu(e,t,n=1){return e.map(r=>{let i={};for(let o of t)i[o]=r.sourceValues.get(o)==null?"":RT(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 RT(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 Yu(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 JE(e,t){return Yu(e,t,"DROP")}function XE(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 QE(e,t,n){return e.map((r,i)=>{let o=t[i],a=o===void 0?void 0:n.get(o);if(o!==void 0&&!a)throw new Error(`InternalError: IMPORT UPSERT target APP record ${o} was not loaded.`);let s=[...r.subtables].map(([l,c])=>{let d=a?.record[l]?.value,u=Array.isArray(d)?d.length:0;return{table:l,existingRows:u,inputRows:c.length,addRows:c.length,deleteRows:u}});return{parentRow:r.parentRow,mode:o===void 0?"INSERT":"UPDATE",...o===void 0?{}:{targetId:o,revision:a?.revision},top:r.top,subtables:r.subtables,tables:s}})}function mT(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function ZE(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 eR(e,t,n,r,i){return t.map((o,a)=>{let s=e[a],l=n[a],c=l===void 0?void 0:r.get(l),d=[...o.errors];if(!c||l===void 0)return{parentRow:o.parentRow,targetId:l??0,valid:!1,top:o.top,subtables:new Map,tables:[],errors:d};let u=new Map,p=[];for(let f of o.replacementTables){let R=mT(c.record,f),E=new Set(R.map(N=>N.id).filter(N=>!!N)),m=s.subtables.get(f)??[],y=o.subtables.get(f)??[],g=0,T=0,h=0,I=m.map((N,v)=>{let P=y[v]??{};return N.rowId&&E.has(N.rowId)?(g++,{rowId:N.rowId,record:P}):(N.rowId&&((i.get(N.rowId)??[]).some(U=>U.parentId!==l||U.table!==f)&&d.push({operation:"UPDATE",parentRow:o.parentRow,field:N.rowId,subtable:f,subrow:N.childRowNumber,sourceRow:N.sourceRowNumber,code:"ERR_IMPORT_FIELD_OWNERSHIP",message:`rowIdOwnedElsewhere: ${N.rowId}`,sourceValues:N.values}),h++),T++,{record:P})});u.set(f,I),p.push({table:f,existingRows:R.length,inputRows:m.length,updateRows:g,addRows:T,deleteRows:R.length-g,rowIdNotFound:h})}return{parentRow:o.parentRow,targetId:l,...c.revision===void 0?{}:{revision:c.revision},valid:d.length===0,top:o.top,subtables:u,tables:p,errors:d}})}var ju="#__import_source";function tR(e){return{...e,from:{appId:0,alias:null,cteName:ju}}}function yT(e){return/^[0-9]+$/.test(e)?e.replace(/^0+(?=\d)/,""):null}function zu(e,t){let n=e.map(yT),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 gT="\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",os=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"}},ge=new WeakMap;var kn=new WeakMap,Ar=new WeakMap,ic=Symbol("statementEvaluationContext"),Lc=Symbol("nativeUpsertExecution"),PR=Symbol("nativeUpsertExplainCapability");function hT(e,t,n){return{...e,[Lc]:t,...n===void 0?{}:{[PR]:n}}}function OR(e){return e[Lc]===!0}function AT(e){return Lc in e}function ST(e){return e[PR]}function LR(e){return e[ic]?e:{...e,[ic]:{statementInstant:new Date}}}function ae(e){return e[ic]??{}}var nR=new WeakMap,TT=1,IT=1;function wT(e,t){if(t)return t;let n=nR.get(e);return n||(n=`client:${TT++}`,nR.set(e,n)),n}function _R(e){return`${e}\0inv:${IT++}`}function bT(){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 vR=Symbol("limitMetricsSink");function _c(e,t){let n=e[vR];n&&(n.limitReached=!0,n.limitReachedApps.includes(t)||n.limitReachedApps.push(t))}function NT(e,t){let n={[vR]: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 eo(e)&&(n.upsertRecords=r=>(t.putCalls+=1,t.nativeUpsertCalls+=1,e.upsertRecords(r))),n}var rR=Symbol("searchAbortFailClosed");function vc(e,t,n){return n&&e[rR]?e:{...e,...n?{[rR]:!0}:{},getRecords:async r=>{let i=await e.getRecords(r);if(i.searchAborted&&(t.aborted=!0,n))throw new os;return i}}}function DR(e){let t=new Set;return{client:{...e,openCursor:async n=>{let r=await e.openCursor(n);t.add(r);let i=()=>t.delete(r);return{totalCount:r.totalCount,async nextPage(){let o=await r.nextPage();return o.next||i(),o},async close(){try{await r.close()}finally{i()}}}}},closeActive:async()=>{await Promise.all([...t].map(n=>n.close().catch(()=>{})))}}}function CT(e,t){if(!t.aborted||e.type!=="SELECT")return e;let n=new Set(e.warnings??[]);return n.add(gT),{...e,warnings:[...n]}}async function oc(e,t,n){let r=await Qi(e,t,n);return ku(r),r}async function Qi(e,t,n){return FE(e,{select:async r=>{let{resolver:i}=await Ln(r,t,n);return Te(r.where,i)},dml:r=>QR(r,t,n),prefilterDecomposition:async r=>{if(r.where===null)return null;let{resolver:i}=await Ln(r,t,n);return Fu(r,i)},joinServerFunctionPlan:async r=>{await Ln(r,t,n);let i=await Rs(r,t,n),o=Es(r,i);return o===null?null:(fr(o.joinPlan)&&Gc.set(r,o),o.joinPlan)}})}async function iR(e,t,n,r){n=LR(n);let i=await Qi(e,t,r);e.type!=="EXPLAIN"&&ku(i);let o=sc(e);if(o!==null&&!yw(e))throw new Error(Xa(o,"in a batch"));if(Zn("phase15b",e),Wr("phase15b",e),Je(e),e.type!=="EXPLAIN"&&await eI(e,t,r),e.type==="IMPORT")return wm(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 Ic(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 Xc(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 PT(e,t,n,r);case"SELECT":return Vt(dc(e),t,n,r,void 0,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"UNION":return cm(e,t,n,r,n.captureColumnMeta===!0,n.captureColumnMeta===!0);case"WITH":return Hc(e,t,n,r,void 0,n.captureColumnMeta===!0);case"INSERT":return pw(e,t,n,r);case"INSERT_SELECT":return tp(e,t,n,r);case"UPSERT":return Lw(e,t,n,r);case"UPSERT_SELECT":return op(e,t,n,r);case"UPDATE":return Ic(e,t,n,r);case"DELETE":return Ow(e,t,n,r);case"REORDER":return xw(e,t,n,r);case"SHOW_APPS":return Pm(t);case"DESCRIBE":return Om(e,t,r);case"EXPLAIN":return jw(e,t,r,n.maxRecords??1e4,n.cursorMaxActive??2,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?ot(n.dmlMaxRows,"dmlMaxRows",Wt):Wt,e.query.type==="UPDATE"&&e.query.applyBlocks?.length?ot(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve):ve,i,n.recursiveCteMaxDepth,n.recursiveCteMaxRows,n.recursiveCteMaxExpansions,AT(n)?{surface:"CLI",enableNativeUpsert:OR(n),clientHasNativeUpsert:ST(n)??eo(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 WR(e,t,n,r);case"EXIT":throw new Error("ArgumentError: EXIT SUCCESS IF \u306F\u30D0\u30C3\u30C1\u5C02\u7528\u3067\u3059")}}var Dc=["$id","$err_field","$err_code","$err_message","$err_value","$err_subtable","$err_subrow","$err_subrow_id","$err_count"],Uc=["$id","$err_subtable","$err_field","$err_code","$err_count"];function Mc(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 UR(e=!1){let t=e?Uc:Dc;return new Map(t.map(n=>[n,{fieldType:n==="$id"||n==="$err_count"?"KSQL_NUMBER":"KSQL_STRING",sortKind:n==="$id"||n==="$err_count"?"number":"string",semantics:B(n==="$id"||n==="$err_count"?"number":"string")}]))}async function PT(e,t,n,r){if(e.errorTable)throw new Error("ArgumentError: VALIDATE INTO requires a batch.");return MR(e,t,n,r)}async function MR(e,t,n,r){let i=await Q(e.appId,t,r),o=new Map(i.filter(O=>!O.inSubtable).map(O=>[O.code,O])),a=new Set(i.filter(O=>O.inSubtable).map(O=>O.code)),s=ru(e,i),l=new Set(s.flatMap(O=>tu(O.field))),c={present:eu.filter(O=>l.has(O)),absent:eu.filter(O=>!l.has(O))},d=e.checkGroups??[],u=ar(d);for(let O of u){if(O.field!=="$id"&&!o.has(O.field)&&!a.has(O.field))throw Le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u306F APP${e.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(O.field!=="$id"&&!o.has(O.field)&&a.has(O.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let p=new Map([...o].map(([O,F])=>[O,F.fieldType]));p.set("$id","RECORD_NUMBER"),xn(e,p);let f=Mc(e.where),R=[...new Set(["$id",...s.map(O=>O.subtableCode??O.field.code),...f,...u.map(O=>O.field)])];for(let O of f){if(O!=="$id"&&!o.has(O)&&!a.has(O))throw new Error(`ArgumentError: WHERE field ${O} does not exist in APP${e.appId}.`);if(O!=="$id"&&!o.has(O)&&a.has(O))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${O} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let E=s.some(O=>O.field.fieldType==="NUMBER")?await Pt(e.appId,t,r):void 0,m=O=>O.field==="$id"?ne({fieldType:"__ID__"}):o.get(O.field)?.semantics??(o.has(O.field)?ne(o.get(O.field)):void 0),y=Te(e.where,m);if(y.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${_n(y)}).`);let g=new Map([...o].map(([O,F])=>[O,F.fieldType])),T=new Map([...o.values()].flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[])),h=e.where===null?null:y.capability==="EXACT_PUSHDOWN"?e.where:dl(e.where,{allowUnqualifiedFields:!0,fieldTypes:g,fieldOptions:T,allowKlike:!1}),I=h===null?"":j(h),v=(await Ge(t.getRecords,e.appId,I,R,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(O=>({id:String(O.$id?.value??""),record:O,flat:Gt(O,null)})).filter(O=>e.where===null||ue(e.where,O.flat,F=>p.get(F.field),void 0,void 0,ae(n))),P=[],x=new Map,U=new Map,C=new Set,D=0,b=O=>{if(C.add(O.id),D+=1,e.summary){let G=JSON.stringify([O.id,O.subtable??"",O.field,O.code]),k=U.get(G);k?k.$err_count=String(Number(k.$err_count)+1):U.set(G,{$id:O.id,$err_subtable:O.subtable??"",$err_field:O.field,$err_code:O.code,$err_count:"1"});return}let F=JSON.stringify([O.id,O.subtable??"",O.field,O.code,O.message]),W=x.get(F);W?(W.$err_count=String(Number(W.$err_count)+1),O.subrow!==void 0&&(W.$err_subrow=`${W.$err_subrow},${O.subrow}`,W.$err_subrow_id=`${W.$err_subrow_id},${O.subrowId??""}`)):x.set(F,{$id:O.id,$err_field:O.field,$err_code:O.code,$err_message:O.message,$err_value:O.value,$err_subtable:O.subtable??"",$err_subrow:O.subrow===void 0?"":String(O.subrow),$err_subrow_id:O.subrowId??"",$err_count:"1"})},_=s.filter(O=>!O.subtableCode),A=new Map;for(let O of s){if(!O.subtableCode)continue;let F=A.get(O.subtableCode)??[];F.push(O),A.set(O.subtableCode,F)}for(let O of v){for(let F of _){let W=O.record[F.field.code]?.value,G=We(W,F.field,E);G.ok||b({id:O.id,field:F.field.code,code:G.code,message:G.message,value:si(W,F.field.fieldType)})}for(let[F,W]of A){let G=O.record[F]?.value;if(Array.isArray(G))for(let k=0;k<G.length;k++){let K=G[k];for(let Y of W){let $=K.value?.[Y.field.code]?.value,L=We($,Y.field,E);if(!L.ok){let V=ma(F,k,K);b({id:O.id,field:Y.field.code,code:L.code,message:L.message,value:si($,Y.field.fieldType),...V})}}}}for(let F of ia(d,O.flat,W=>p.get(W.field)))b({id:O.id,field:"",code:"ERR_CHECK",message:F.message,value:""})}if(e.summary)P.push(...U.values());else for(let O of x.values()){let F=Number(O.$err_count);O.$err_subtable!==""&&F>=2&&(O.$err_message=`${O.$err_message}\uFF08${F}\u884C: ${O.$err_subrow}\uFF09`),P.push(O)}let M={type:"SELECT",columns:[...e.summary?Uc:Dc],rows:P,rowCount:P.length,validateStats:{errorRecords:C.size,errorCount:D,constraintMetadata:c}};return ge.set(M,UR(e.summary===!0)),M}var rt=1e4;function Ct(e,t,n,r,i,o){let a=e.get(t);if(a&&(a.columns.length!==n.length||a.columns.some((l,c)=>l!==n[c])||!OT(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 OT(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||!Lo(i.semantics,r.semantics))return!1}return!0}var Cn=class extends Error{constructor(){super("TimeoutError: batch timeout exceeded.")}};function xR(e,t,n,r={},i,o=!1){Ft(r);let a=[...e],s=Ol(a);if(a.forEach(E=>Wr("phase15b",E)),r.allowApplyMutation!==!0&&a.some(E=>yl(E)||E.type==="UPSERT"&&UT(E)))throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(r.continueOnError&&s.containsDml)throw new Error("ArgumentError: continueOnError is not allowed for batches containing DML.");for(let E of s.statements){if(!E.isDml||E.tempTablesReferenced.length===0||E.statementType==="INSERT_SELECT"||E.statementType==="UPSERT_SELECT")continue;let m=a[E.index];if(!(m?.type==="UPDATE"&&m.from?.cteName!=null))throw new se(`ArgumentError: temp table references in ${E.statementType} are not supported yet.`,E.index)}let l=uu(a,r.variables),c=VR(a,l),d=hT({...r,variables:l},o),u=Hs(r.asOf??new Date,r.timezone),p=new Map;for(let[E,m]of Object.entries(u.values))p.set(br(E),{type:"string",value:m});let f=bT(),R=Date.now();return{statements:a,analysis:s,metrics:f,options:d,client:NT(n,f),cacheContext:_R(wT(n,r.cacheContext)),tempTables:new Map,variables:p,relativeDateVariables:c,clock:ae(LR(d)),dialect:t,startedAt:R,deadline:r.timeoutMs!=null?R+r.timeoutMs:null,failed:new Set,cursorCleanups:new Set,...i?{onChunkWritten:i}:{},nextIndex:0,aborted:null,disposed:!1,busy:!1}}async function kR(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 m={...i,status:"skipped",skippedReason:t.aborted};return t.aborted!=="exit"&&t.failed.add(n),m}let o=r.dependsOn.find(m=>t.failed.has(m));if(o!==void 0){let m=t.analysis.statements[o].tempTablesCreated[0]??`statement ${o}`;return t.failed.add(n),{...i,status:"skipped",skippedReason:`dependency: ${m}`}}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=vc(t.client,a,r.statementType!=="SELECT"&&r.statementType!=="UNION"&&r.statementType!=="WITH"||Hf(e)),l=DR(s);t.cursorCleanups.add(l.closeActive);let c=t.deadline!==null?t.deadline-Date.now():null,d=t.onChunkWritten?DT(l.client,n,e,t.onChunkWritten):l.client,u=t.options.confirm,p=u?{...t.options,confirm:(m,y,g)=>u(m,y,{statementIndex:n,statementCount:t.statements.length,statementType:r.statementType,targetAppId:r.targetAppId,...g?.importDetail?{importDetail:g.importDetail}:{},...g?.applyDetail?{applyDetail:g.applyDetail}:{},...g?.applyDiagnostic?{applyDiagnostic:g.applyDiagnostic}:{}})}:t.options,f=await BR(MT({stmt:e,info:r,client:d,options:p,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect}),c,l.closeActive);f.result&&(f.result=CT(f.result,a));let{exitTriggered:R,...E}=f;return R&&(t.aborted="exit"),t.metrics.elapsedMs=Date.now()-t.startedAt,{...i,status:"success",...E}}catch(o){return t.failed.add(n),o instanceof Cn?t.aborted="timeout":o instanceof Bi?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:HT(o)}}finally{t.busy=!1}}function LT(e){let t=async()=>{throw new Error("PreviewWriteBlockedError: previewStatement blocked a write API call.")},n={...e,postRecords:t,putRecords:t,deleteRecords:t};return eo(e)&&(n.upsertRecords=t),n}async function FR(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=_T(e),a=vT(e),s=oR(t.metrics);try{if(t.aborted)return t.aborted!=="exit"&&t.failed.add(r),qu(o,a);if(i.dependsOn.find(E=>t.failed.has(E))!==void 0)return t.failed.add(r),qu(o,a);if(t.deadline!==null&&Date.now()>=t.deadline)return t.failed.add(r),t.aborted="timeout",qu(o,a);let c={aborted:!1},d=vc(t.client,c,!0),u=DR(d);t.cursorCleanups.add(u.closeActive);let p=LT(u.client),f=t.deadline!==null?t.deadline-Date.now():null,R=await BR(xT({stmt:e,info:i,client:p,options:t.options,cacheContext:t.cacheContext,tempTables:t.tempTables,variables:t.variables,relativeDateVariables:t.relativeDateVariables,clock:t.clock,dialect:t.dialect},n),f,u.closeActive);return t.metrics.elapsedMs=Date.now()-t.startedAt,{...R,reads:oR(t.metrics)-s}}catch(l){throw t.failed.add(r),l instanceof Cn?t.aborted="timeout":t.options.continueOnError||(t.aborted="fail-fast"),t.metrics.elapsedMs=Date.now()-t.startedAt,l}finally{t.busy=!1}}function oR(e){return e.getCalls+e.cursorCreateCalls+e.cursorGetCalls}function _T(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 vT(e){if("appId"in e&&typeof e.appId=="number")return e.appId;throw new Error("ArgumentError: previewStatement requires a DML target app.")}function qu(e,t){return{kind:"PREVIEW",operation:e,appId:t,counts:{insert:0,update:0,delete:0},samples:[],reads:0,estimatedWrites:0}}async function KR(e){e.disposed||(e.disposed=!0,await Promise.all([...e.cursorCleanups].map(t=>t().catch(()=>{}))),e.cursorCleanups.clear(),hm(e.cacheContext),e.metrics.elapsedMs=Date.now()-e.startedAt)}function DT(e,t,n,r){let i=0,o=async(c,d,u,p,f)=>{await r({statementIndex:t,appId:c,operation:d,records:u,chunkIndex:i++,...p===void 0?{}:{lastKeyValue:p},...f??{}})},a=(n.type==="UPSERT"||n.type==="UPSERT_SELECT")&&n.keyFields.length===1?n.keyFields[0]:void 0,s=c=>{if(a===void 0||c.length===0)return;let d=c[c.length-1][a]?.value;return typeof d=="string"?d:void 0},l={...e,postRecords:async c=>{let d=await e.postRecords(c);return await o(c.app,"INSERT",c.records.length,s(c.records)),d},putRecords:async c=>{await e.putRecords(c),await o(c.app,"UPDATE",c.records.length,s(c.records.map(d=>d.record)))},deleteRecords:async c=>{await e.deleteRecords(c),await o(c.app,"DELETE",c.ids.length)}};return eo(e)&&(l.upsertRecords=async c=>{let d=await e.upsertRecords(c),u=mm(d,c.records.length);return await o(c.app,"UPSERT",c.records.length,c.records[c.records.length-1]?.updateKey.value,u),d}),l}function UT(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 MT(e){let{stmt:t,info:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,relativeDateVariables:l,clock:c,dialect:d}=e;if(t.type==="SET_VARIABLE"){let p=$i(t,s);if(Je(p),await oc(p,r,o),p.expr.type==="ARRAY")s.set(t.name,{type:"array",elements:p.expr.elements.map(f=>({type:"string",value:f.value}))});else if(p.expr.type==="SCALAR_SUBQUERY")try{let f=await jR(p.expr.query,r,i,o,a),R=await YR(p.expr.query,r,o,a),E=R?Number(f):Number.NaN;s.set(t.name,R&&Number.isFinite(E)?{type:"number",value:E,raw:f}:{type:"string",value:f})}catch(f){throw f instanceof On?new Error(`ArgumentError: ${f.message}`):f}else s.set(t.name,aR(p.expr,c));return{}}if(t.type==="DECLARE_VARIABLE"){if(t.annotation==="RELATIVE_DATE")return s.set(t.name,{type:"relative-date",value:l.get(t.name)}),{};let p=i.variables??{};if(Object.prototype.hasOwnProperty.call(p,t.name))s.set(t.name,{type:"string",value:p[t.name]});else{let f=aR(t.default,c);s.set(t.name,{type:"string",value:f.type==="number"?f.raw??String(f.value):f.value})}return{}}let u=$i(t,s);if(Zn("phase15b",u),Wr("phase15b",u),Je(u),d===1&&(u.type==="INSERT"||u.type==="UPDATE"||u.type==="DELETE")&&u.subtableCode)throw new Error("ArgumentError: dialect 1 \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB\u3078\u306E DML \u306F\u3067\u304D\u307E\u305B\u3093\u3002SELECT \u306F\u53EF\u80FD\u3067\u3059\u3002\u89AA\u30A2\u30D7\u30EA\u3092\u5BFE\u8C61\u306B\u3057\u3066\u304F\u3060\u3055\u3044\u3002");if(d===1&&(u.type==="UPSERT"||u.type==="UPSERT_SELECT")){let p=dn(u)[0];if(p)throw new Error(`ArgumentError: ${p.message}`);let f=await Q(u.appId,r,o),R=dn(u,f)[0];if(R)throw new Error(`ArgumentError: ${R.message}`)}if(await oc(u,r,o),u.type==="VALIDATE"){let p=await MR(u,r,{...i,onLimitReached:"error"},o);return u.errorTable&&Ct(a,u.errorTable,p.columns,p.rows,i.tempTableMaxRows??rt,ge.get(p)??UR(u.summary===!0)),{result:p}}if(u.type==="IMPORT")return{result:await wm(u,r,i,o,a)};if("validateOnly"in u&&u.validateOnly===!0){let p=await Xc(u,r,{...i,onLimitReached:"error"},o,a,n.index+1);return u.validationErrorTable&&Ct(a,u.validationErrorTable,p.columns,p.errors,i.tempTableMaxRows??rt,kn.get(p)??new Map),{result:p}}if("onErrorSkip"in u&&u.onErrorSkip===!0)return{result:await Sc(u,r,{...i,onLimitReached:"error"},o,a,n.index+1)};if(u.type==="CREATE_TEMP_TABLE"){let p={...i,maxRecords:i.tempTableMaxRows??rt,onLimitReached:"error"},f=await WT(u.query,r,p,o,a);return a.set(u.name,{rows:f.rows,columns:f.columns,columnMeta:ge.get(f)}),{tempTable:u.name,rowCount:f.rows.length}}if(t.type==="DROP_TEMP_TABLE")return a.delete(t.name),{tempTable:t.name};if(t.type==="EXPLAIN"){let p=u;Oc.set(p,a);try{return{result:await iR(p,r,i,o)}}finally{Oc.delete(p)}}if(u.type==="ASSERT"){let p=await WR(u,r,i,o,a);return p.warning!==void 0?{result:p}:{}}if(u.type==="EXIT"){let p=await JT(u,r,i,o,a);return{result:p,...p.exited?{exitTriggered:!0}:{}}}if(n.tempTablesReferenced.length>0){if(u.type==="SELECT"||u.type==="UNION")return{result:await mt(u,r,i,a,o,i.captureColumnMeta===!0)};if(u.type==="WITH")return{result:await Hc(u,r,i,o,a)};if(u.type==="INSERT_SELECT")return{result:await tp(u,r,i,o,a)};if(u.type==="UPSERT_SELECT")return{result:await op(u,r,i,o,a)};if(u.type==="UPDATE"&&u.from?.cteName!=null)return{result:await Ic(u,r,i,o,a)};throw new Error(`ArgumentError: temp table references in ${t.type} are not supported yet.`)}return{result:await iR(u,r,i,o)}}async function xT(e,t){let{stmt:n,client:r,options:i,cacheContext:o,tempTables:a,variables:s,dialect:l}=e,c=$i(n,s);if(Zn("phase15b",c),Wr("phase15b",c),Je(c),l===1&&(c.type==="INSERT"||c.type==="UPDATE"||c.type==="DELETE")&&c.subtableCode)throw new Error("ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.");if(l===1&&(c.type==="UPSERT"||c.type==="UPSERT_SELECT")){let d=dn(c)[0];if(d)throw new Error(`ArgumentError: ${d.message}`);let u=await Q(c.appId,r,o),p=dn(c,u)[0];if(p)throw new Error(`ArgumentError: ${p.message}`)}switch(await oc(c,r,o),c.type){case"INSERT":return FT(c,r,i,o,t);case"INSERT_SELECT":return KT(c,r,i,o,a,t);case"UPDATE":return GT(c,r,i,o,a,t);case"DELETE":return $T(c,r,i,o,t);case"UPSERT":return BT(c,r,i,o,t);case"UPSERT_SELECT":return VT(c,r,i,o,a,t);default:throw new Error("ArgumentError: previewStatement accepts DML only; send read-only statements to executeStatement.")}}function Dn(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 Pn(e,t){return Object.fromEntries(t.map(n=>[n,Xe(e?.[n]?.value)]))}function kT(e){if(e.length!==0)return e.length===1?e[0]:JSON.stringify(e)}async function FT(e,t,n,r,i){let o=await _e(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await Ie(e.appId,t,r),l=Zr(e,s,ae(n)).flatMap(c=>c.records);return it(l,e.fields,o,a),Dn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,i).map(c=>({kind:"insert",after:Pn(c,e.fields)})))}async function GR(e,t,n,r,i,o){let a=await Ss.materialize(e,t,n,r,i,o);if(ep(a),a.columns.length!==e.fields.length){let c=e.type==="INSERT_SELECT"?"INSERT":"UPSERT";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${a.columns.length}\uFF09\u3068 ${c} \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)}let s=await Ie(e.appId,t,r);return{records:a.rows.map((c,d)=>{let u={};return e.fields.forEach((p,f)=>{a.importPresence&&!a.importPresence[d]?.has(p)||(u[p]={value:Jc(c[a.columns[f]]??"",s.get(p))})}),u}),fieldTypes:s}}async function KT(e,t,n,r,i,o){let a=await _e(e.appId,e.fields,t,r),s=await $e(e.appId,e.fields,a,t,r),{records:l}=await GR(e,t,n,r,i,a);return l.forEach(c=>it([c],e.fields.filter(d=>d in c),a,s)),Dn("INSERT",e.appId,{insert:l.length,update:0,delete:0},l.slice(0,o).map(c=>({kind:"insert",after:Pn(c,e.fields)})))}async function GT(e,t,n,r,i,o){let a=e.assignments.map(p=>p.field),s=await _e(e.appId,a,t,r),l=await $e(e.appId,a,s,t,r);if(await sn(e,t,r),He(e.where))return Dn("UPDATE",e.appId,{insert:0,update:0,delete:0},[]);let c=await Sm(e,t,n,r,i,a),d=c.map(p=>p.record);it(d,a,s,l);let u=c.slice(0,o).map(p=>({kind:"update",before:Pn(p.validationSnapshot,a),after:Pn(p.record,a)}));return Dn("UPDATE",e.appId,{insert:0,update:c.length,delete:0},u)}async function $T(e,t,n,r,i){if(await sn(e,t,r),He(e.where))return Dn("DELETE",e.appId,{insert:0,update:0,delete:0},[]);let o=$l(e),a=await Ei(t.getRecords,o.app,o.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});return Dn("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 $R(e,t,n,r,i,o,a,s){for(let f of e.keyFields)if(!e.fields.includes(f))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${f}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);t.forEach(f=>it([f],e.fields.filter(R=>R in f),r,i));let l=t.map(f=>e.keyFields.map(R=>Xe(f[R]?.value))),c=gs(jc(e,o,a,r,l)).execution.status==="ELIGIBLE",d=await Tr(e.appId,e.keyFields,l,o,a,n,e.fields),u=[],p=[];return t.forEach((f,R)=>{let E=Sr(d,l[R]),m=kT(l[R]);E===void 0?u.push({kind:"insert",...m===void 0?{}:{key:m},after:Pn(f,e.fields)}):p.push({kind:"update",...m===void 0?{}:{key:m},before:Pn(d.snapshots?.get(E),e.fields),after:Pn(f,e.fields)})}),Dn("UPSERT",e.appId,{insert:u.length,update:p.length,delete:0},[...u,...p].slice(0,s),c)}async function BT(e,t,n,r,i){let o=await _e(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await Ie(e.appId,t,r),l=Nm(e,s,n);return $R(e,l,s,o,a,t,n,i)}async function VT(e,t,n,r,i,o){let a=await _e(e.appId,e.fields,t,r),s=await $e(e.appId,e.fields,a,t,r),{records:l,fieldTypes:c}=await GR(e,t,n,r,i,a);return $R(e,l,c,a,s,t,n,o)}async function WT(e,t,n,r,i){return e.type==="WITH"?Hc(e,t,n,r,i,!0):mt(e,t,n,i,r,!0)}async function BR(e,t,n){if(t===null)return e;if(t<=0)throw n&&await n(),e.catch(()=>{}),new Cn;let r,i=!1,o=e.then(a=>i?new Promise(()=>{}):a,a=>{if(i)return new Promise(()=>{});throw a});try{return await Promise.race([o,new Promise((a,s)=>{r=setTimeout(()=>{i=!0,(async()=>{if(n){let l;try{await Promise.race([n(),new Promise(c=>{l=setTimeout(c,5e3),l.unref?.()})])}finally{l&&clearTimeout(l)}}s(new Cn)})()},t)})])}catch(a){throw a instanceof Cn&&e.catch(()=>{}),a}finally{r!==void 0&&clearTimeout(r)}}function HT(e){let t;if(e instanceof Tt)t={code:e.name,message:e.message,partialSuccess:e.partialSuccess};else if(e instanceof Error)t={code:(e.name!=="Error"?e.name:null)??Ju(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:YT(e);t={code:typeof n.code=="string"&&n.code.length>0?n.code:Ju(r),message:r}}else{let n=String(e);t={code:Ju(n),message:n}}return Object.defineProperty(t,"cause",{value:e,enumerable:!1,configurable:!1,writable:!1}),t}function Ju(e){return e.match(/^([A-Za-z]+Error):/)?.[1]??"Error"}function YT(e){try{return JSON.stringify(e)??String(e)}catch{return String(e)}}function jT(e,t=!1,n=!1){let r=new Lt(e).tokenize();return new jt(r,{import:t,dialect1:n}).parseStatements()}function zT(e,t){try{let n=jT(`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 VR(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)?zT(r.name,t[r.name]):r.default);return n}function aR(e,t={}){switch(e.type){case"STRING":return{type:"string",value:e.value};case"NUMBER":return{type:"number",value:e.value,raw:z(e)};case"KINTONE_FUNC":return{type:"string",value:of(e.name,t)};case"STRING_FUNC":return{type:"string",value:ye(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 $i(e,t){return ac(e,t,!1)}function Xa(e,t){return Vn(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 ac(e,t,n){if(Array.isArray(e))return e.map(r=>ac(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(Xa(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(Xa(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,ac(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(Xa(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=qT(i);if(o.type==="SELECT"&&et(o.where,!0)&&(o.where=null),(o.type==="UPDATE"||o.type==="DELETE"||o.type==="REORDER")&&et(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 et(e,t){return e!==null&&typeof e=="object"&&e.type==="BOOLEAN"&&(t===void 0||e.value===t)}function qT(e){if(e.type==="NOT"&&et(e.expr))return{type:"BOOLEAN",value:!e.expr.value};if(e.type==="GROUP"&&et(e.expr))return e.expr;if(e.type==="LOGICAL"){let t=e.left,n=e.right;if(e.op==="AND"){if(et(t,!1)||et(n,!1))return{type:"BOOLEAN",value:!1};if(et(t,!0))return n;if(et(n,!0))return t}else if(e.op==="OR"){if(et(t,!0)||et(n,!0))return{type:"BOOLEAN",value:!0};if(et(t,!1))return n;if(et(n,!1))return t}}return e}function sc(e){if(Array.isArray(e)){for(let t of e){let n=sc(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=sc(n);if(r!==null)return r}}return null}var Bi=class extends Error{constructor(t){super(`AssertError: ${t}`),this.name="AssertError"}},On=class extends Error{constructor(t){super(t),this.name="ScalarSubqueryError"}};async function WR(e,t,n,r,i){let o=await HR(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 Bi(`assertion failed: ${e.text} (actual: ${o.actual}).${a}`)}return{type:"ASSERT",condition:e.text}}async function JT(e,t,n,r,i){let o=await HR(e,t,n,r,i);return{type:"EXIT",condition:e.text,exited:o.passed,message:e.message}}async function HR(e,t,n,r,i){let o=await ja(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 ja(e.low,t,n,r,i),c=await ja(e.high,t,n,r,i);return{passed:Ut(">=",o.value,l.value,Xu(o,l))&&Ut("<=",o.value,c.value,Xu(o,c)),actual:o.value}}if(e.right===null)throw new Error("ArgumentError: malformed ASSERT statement.");let a=await ja(e.right,t,n,r,i),s=e.op==="="||e.op==="!="||e.op==="<>"?e.left.type==="NUMBER"||e.left.type==="ARITH"?B("number"):B("string"):Xu(o,a);return{passed:Ut(e.op,o.value,a.value,s),actual:o.value}}function Xu(e,t){return B(e.semantics==="number"&&t.semantics==="number"?"number":"string")}async function ja(e,t,n,r,i){switch(e.type){case"VARIABLE":throw new Error(`ParseError: unresolved batch variable @${e.name}.`);case"NUMBER":return{value:z(e),semantics:"number"};case"STRING":return{value:e.value,semantics:"string"};case"ARITH":return{value:String(lc(e)),semantics:"number"};case"SCALAR_SUBQUERY":try{let o=await jR(e.query,t,n,r,i),a=await YR(e.query,t,r,i);return{value:o,semantics:a?"number":"string"}}catch(o){throw o instanceof On?new Bi(o.message):o}}}async function YR(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 Hi(e,["__scalar__"],t,n,r)).get("__scalar__");o=a?.semantics?.compareMode==="number"||a?.sortKind==="number"}return o}async function jR(e,t,n,r,i){let{query:o,probed:a}=XT(e),s=await Fi(o,t,n,r,i);if(s.columns.length!==1)throw new On(`scalar subquery returned ${s.columns.length} columns (expected 1 column).`);if(s.rowCount===0)throw new On("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 On(`scalar subquery returned ${l} (expected 1 row).`)}return s.rows[0]?.[s.columns[0]]??""}function XT(e){return te(e).type!=="NONE"||e.columns.some(n=>n.type==="AGGREGATE"||n.type==="ARITH_AGG_COL")||e.distinct||e.limit!==null?{query:e,probed:!1}:{query:{...e,limit:2},probed:!0}}function lc(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=lc(e.left),n=lc(e.right);switch(e.op){case"+":return t+n;case"-":return t-n;case"*":return t*n;case"/":return t/n;case"%":return t%n}}throw new Error(`ArgumentError: unsupported operand in ASSERT expression: ${e.type}`)}async function Zi(e,t,n,r,i=!1){let o=[e.from,...e.joins.map(p=>p.table)],a=i||It(e.where)?[...new Set(o.filter(p=>p.cteName===null).map(p=>p.appId))]:[],s=new Map(await Promise.all(a.map(async p=>{let f=await Q(p,t,n);return[p,new Map(f.map(R=>[R.code,R]))]}))),l=new Set,c=p=>{if(Array.isArray(p)){p.forEach(c);return}if(p===null||typeof p!="object")return;let f=p;if(f.type==="SELECT")return;let R=String(f.op),E=f.right,m=["=","!=","<>"].includes(R)&&E?.type==="STRING"&&E.value!=="";if(f.type==="BINARY"&&([">","<",">=","<="].includes(R)||m)){let y=f.left;y?.type==="FIELD"&&typeof y.field=="string"&&l.add(y.field)}Object.values(f).forEach(c)};c(e.where),c(e.having);for(let p of e.columns)p.type==="CASE_COL"&&c(p.expr);let d=new Map;await Promise.all([...s].map(async([p,f])=>{if(![...l].some(m=>f.get(m)?.fieldType==="STATUS"))return;let E=await qc(p,t,n);E&&d.set(p,E)}));let u=(p,f,R)=>{if(f==="$id")return zn(ne({fieldType:"__ID__"}),p.appId,"$id");if(R&&p.subtableCode){if(f==="_rid")return B("string");if(f==="_idx"||f==="_pid")return B("number")}let E=s.get(p.appId)?.get(Ee(p,f));if(!E)return;let m=E.semantics??ne(E),y=E.fieldType==="STATUS"&&d.has(p.appId)?{...m,optionOrder:d.get(p.appId)}:m;return zn(y,p.appId,E.code)};return p=>{if(p.tableAlias!==null){if(p.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return u(e.from,p.field,!1);let R=o.find(E=>ce(E)===p.tableAlias);return R?R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):u(R,p.field,!0):void 0}if(e.joins.length===0)return e.from.cteName!==null?r?.get(e.from.cteName)?.columnMeta?.get(p.field)?.semantics??B("string"):u(e.from,p.field,!0);let f=o.flatMap(R=>{let E=R.cteName!==null?r?.get(R.cteName)?.columnMeta?.get(p.field)?.semantics:u(R,p.field,!0);return E?[E]:[]});if(f.length===1)return f[0];if(!o.some(R=>Za(R,p.field)!==void 0))return f.length>1?B("string"):void 0}}var zR=new WeakMap;async function Ln(e,t,n,r,i=!1){let o=await Zi(e,t,n,r,i);if(e.where===null)return{resolver:o,rewrites:[]};let a=cd(e.where,o);return e.where=a.normalizedWhere,a.rewrites.length>0&&zR.set(e,a.rewrites),{resolver:o,rewrites:a.rewrites}}function QT(e){return e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="AGGREGATE"&&t.orderBy.length>0&&t.frame?.source==="DEFAULT")}function qR(e){return QT(e)||e.columns.some(t=>t.type==="WINDOW_COL"&&t.windowKind==="VALUE")}function sR(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=Fe(o.key.name);return a.field!==i?!1:a.tableAlias===null||a.tableAlias===ce(e.from)}):r!=="DIRECT"||e.joins.length>0||e.from.cteName!==null||e.from.subtableCode!=null?!1:t.some(o=>{if(o.key.type!=="FIELD_NAME")return!1;let a=Fe(o.key.name);return a.field==="$id"||n(a)?.fieldType==="RECORD_NUMBER"})}function lR(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 JR(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"||sR(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`+lR(n,"RANGE"));for(let o of e.columns)o.type!=="WINDOW_COL"||o.windowKind!=="VALUE"||sR(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`+lR(n,"VALUE"));return i}function xc(e,t){if(t.length===0)return e;let n={...e,warnings:[...new Set([...e.warnings??[],...t])]},r=ge.get(e);return r&&ge.set(n,r),n}function kc(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=>It(i.condition))?!0:Object.values(r).some(t)};return e.columns.some(t)}function XR(e,t){let n=new Map;for(let r of e.columns){if(!("alias"in r)||!r.alias)continue;let i;r.type==="FIELD"?i=t(Fe(r.field)):r.type==="ARITH_COL"||r.type==="ARITH_AGG_COL"?i=B("number"):r.type==="WINDOW_COL"?r.windowKind===void 0||r.windowKind==="RANKING"||r.windowKind==="AGGREGATE"&&(r.aggFunc==="COUNT"||r.aggFunc==="SUM"||r.aggFunc==="AVG")?i=B("number"):(r.windowKind==="AGGREGATE"||r.windowKind==="VALUE")&&r.arg.type!=="WILDCARD"&&(i=Mn(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=Mn(r.arg,o=>{let a=t(o);if(a)return{sortKind:a.compareMode==="number"||a.compareMode==="recordNumber"?"number":"string",fieldType:a.fieldType,semantics:a}}).semantics):i=r.func==="GROUP_CONCAT"?B("string"):B("number"):r.type==="STRFUNC_COL"?i=Un(r.expr).semantics:(r.type==="LITERAL_COL"||r.type==="SCALAR_SUBQUERY_COL"||r.type==="CASE_COL"||r.type==="SCALAR_VALUE_COL")&&(i=B("string")),i&&n.set(r.alias,i)}return r=>r.tableAlias===null&&n.has(r.field)?n.get(r.field):t(r)}function _n(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 as(e){return e.orderBy.length>0||e.columns.some(t=>t.type==="WINDOW_COL"&&t.orderBy.length>0)}async function QR(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return{capability:"LOCAL_ONLY",reasons:[{code:"WHERE_EXPRESSION_LOCAL_ONLY"}]};let r=It(e.where)?await Q(e.appId,t,n):[],i=new Map(r.map(o=>[o.code,o]));return e.where.type==="BOOLEAN"&&e.where.value===!1?Te(null,()=>{}):Te(e.where,o=>{if(o.field==="$id")return ne({fieldType:"__ID__"});let a=i.get(o.field);return a?.semantics??(a?ne(a):void 0)})}async function sn(e,t,n){if(e.subtableCode||e.type==="UPDATE"&&e.from!=null)return;let r=await QR(e,t,n);if(r.capability!=="EXACT_PUSHDOWN")throw new oe(`WHERE predicate cannot be represented by kintone REST (${_n(r)})`)}async function Vt(e,t,n,r,i,o=!1,a=!1,s="DIRECT"){let l,c=new Set;if(await Wi(e,t,r,i),rI(e))return l=aI(e,n),o&&ge.set(l,await Hi(e,l.columns,t,r,i,a)),l;let{resolver:d}=await Ln(e,t,r,i,qR(e)),u=JR(e,d,s),p=await yr(e,t,r,i);await Lm(e,t,n,r,c,i);let f=TI(e,Te(e.where,d));if(f.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${_n(f)}).`);let R=ze(e),E,m;if(f.capability==="SUPERSET_PREFILTER"){let P=await Zi(e,t,r,i),x=Fu(e,P);x.eligible&&xu(e,x)&&(E=x.plan)}if(E===void 0&&f.capability==="EXACT_PUSHDOWN"&&e.where!==null){let P=null;try{P=j(e.where)}catch{P=null}m=uo({select:e,selectMode:R,capability:f,context:{allowFullScanExact:!0},serializedWholeWhere:P,relativeFunctionNames:Ae(e.where)})??void 0,m&&(E=m.prefilterPlan)}let y=f.capability==="EXACT_PUSHDOWN"?R:"FULL_SCAN",g=await ji(e,t,r,i),T=as(e)?(e.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:e,staticMode:y,whereCapability:f.capability,whereReasons:f.reasons,orderSemantics:g.semantics,maxRecords:n.maxRecords??1e4,hasKlike:Pe(e.where)}):null,h=await lI(e,T?.kind==="CANONICAL_LOCAL"?"FULL_SCAN":y,t,r),I=Fc(e,n,T),v=m!==void 0&&(R==="FULL_SCAN"||T?.kind==="CANONICAL_LOCAL")?vc(t,{aborted:!1},!0):t;try{y==="SIMPLE"?l=await sI(e,v,I.effectiveOptions,r,T,g):l=await bI(e,v,I.effectiveOptions,r,i,f.capability==="EXACT_PUSHDOWN"&&E===void 0,g,E,p)}catch(P){em(I,P)}return o&&ge.set(l,await Hi(e,l.columns,t,r,i,a)),xc(l,[...c,...u,...h])}function uc(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 ZR(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 yr(e,t,n,r){let i=te(e);if(!Yn(e)||i.type==="GROUPING_SETS"||i.type==="NONE")return;let o=i.allItems,a=[e.from,...e.joins.map(u=>u.table)],s=new Map,l=await Promise.all(a.map(async u=>{if(u.cteName!==null){let E=r?.get(u.cteName);if(!E)throw new Error(`InternalError: materialized schema ${u.cteName} is not available for GROUP BY planning.`);return{kind:"MATERIALIZED",columns:E.columns}}let p=await Q(u.appId,t,n);if(!u.subtableCode){for(let E of p){if(E.inSubtable!==!0||!E.subtableCode)continue;let m=s.get(E.code)??[];m.push({appId:u.appId,owner:E.subtableCode}),s.set(E.code,ZR(m))}return{kind:"APP",fieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}}let f=p.filter(E=>E.inSubtable&&E.subtableCode===u.subtableCode);return{kind:"SUBTABLE",childFieldCodes:(f.length>0?f:p.filter(E=>E.inSubtable&&E.subtableCode===void 0)).map(E=>E.code),parentFieldCodes:p.filter(E=>!E.inSubtable).map(E=>E.code)}})),c=$p(e,(u,p)=>l[p]),d=Hp(o,e.columns,c);return ZT(e,o,d,s),Dr(e,qp(e,d,c)),d}function ZT(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)].flatMap(s=>s.cteName===null?[s.appId]:[]),o=[...new Set(i)],a=o.length===1?o[0]:e.from.cteName===null?e.from.appId:null;n.items.forEach((s,l)=>{if(s.kind==="EXPRESSION"||s.kind==="PHYSICAL"||s.kind==="ALIAS_SAFE")return;let c=t[l],d=c?.type==="FIELD_NAME"?c.name:"(expression)";if(s.kind==="UNKNOWN"){let u=a===null?"":` (APP${a})`,p=s.name.indexOf("."),f=p>=0?s.name.slice(p+1):s.name,R=r.get(s.name)??r.get(f)??[];throw R.length>0?new Error(uc(s.name,R)):new Error(`ArgumentError: unknown field code(s): ${s.name}${u}`)}throw s.kind==="ALIAS_REJECT"?s.reason==="DUPLICATE"?new Error(`ArgumentError: GROUP BY alias ${d} is ambiguous across multiple SELECT columns (reason=GROUP_BY_ALIAS_AMBIGUOUS).`):s.reason==="POST_GROUP_ONLY"?new Error(`ArgumentError: GROUP BY alias ${d} requires post-group evaluation (reason=GROUP_BY_ALIAS_POST_GROUP_ONLY).`):new Error(`ArgumentError: GROUP BY alias ${d} depends on aggregate evaluation (reason=GROUP_BY_ALIAS_AGGREGATE).`):new Error(`InternalError: deferred GROUP BY field ${s.name} reached runtime planning.`)})}var Vi=new WeakMap;async function eI(e,t,n){let r=new Set,i=async o=>{if(o===null||typeof o!="object"||r.has(o))return;if(r.add(o),Array.isArray(o)){for(let s of o)await i(s);return}let a=o;if(a.type==="SELECT"){for(let s of Object.values(a))await i(s);await Wi(o,t,n);return}for(let s of Object.values(a))await i(s)};await i(e)}async function tI(e,t,n,r){let i=[e.from,...e.joins.map(u=>u.table)],o=i.filter(u=>u.cteName===null),a=new Map(await Promise.all([...new Set(o.map(u=>u.appId))].map(async u=>{let p=await Q(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),s=(u,p)=>{if(u.subtableCode)return null;let f=a.get(u.appId)?.get(p);return f?.inSubtable===!0?f.subtableCode??"":null},l=(u,p)=>{if(p==="$id")return"$id";let f=Ee(u,p);return s(u,f)!==null?null:a.get(u.appId)?.has(f)?f:null},c=(u,p)=>{if(u.cteName===null)return!1;let f=r?.get(u.cteName);return f?f.columns.includes(p):!0},d=(u,p,f,R)=>{let E=i.filter(g=>g.cteName===null&&l(g,f.field)!==null).length,m=i.some(g=>c(g,f.field)),y=ce(u);return{canonicalId:`source:${p}:APP${u.appId}:${R}`,directKey:f.tableAlias&&y?`${f.tableAlias}.${f.field}`:f.field,unqualifiedBridgeKey:E===1&&!m?f.field:null,physical:!0}};return u=>{if(u.tableAlias!==null){let m=i.findIndex(T=>ce(T)===u.tableAlias);if(m<0)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} has an unknown table alias.`);let y=i[m];if(y.cteName!==null)throw new Error(`ArgumentError: field ${u.tableAlias}.${u.field} resolves to materialized source ${y.cteName}; physical APP fields are required.`);let g=l(y,u.field);if(g===null){let T=s(y,Ee(y,u.field));throw T!==null&&T!==""?new Error(uc(u.field,[{appId:y.appId,owner:T}])):new Error(`ArgumentError: field ${u.tableAlias}.${u.field} does not exist in APP${y.appId}.`)}return d(y,m,u,g)}let p=i.flatMap((m,y)=>{if(m.cteName!==null)return[];let g=l(m,u.field);return g===null?[]:[{table:m,tableIndex:y,code:g}]}),f=i.filter(m=>c(m,u.field));if(p.length+f.length>1)throw new Error(`ArgumentError: field ${u.field} is ambiguous across multiple sources.`);if(p.length===1&&f.length===0){let m=p[0];return d(m.table,m.tableIndex,u,m.code)}if(f.length===1)throw new Error(`ArgumentError: field ${u.field} resolves to a materialized CTE/temp column; physical APP fields are required.`);let R=i.flatMap(m=>{if(m.cteName!==null)return[];let y=s(m,Ee(m,u.field));return y===null||y===""?[]:[{appId:m.appId,owner:y}]}),E=ZR(R);throw E.length>0?new Error(uc(u.field,E)):new Error(`ArgumentError: field ${u.field} does not exist in a physical APP source.`)}}async function Wi(e,t,n,r){Vi.delete(e);let i=te(e),o=JSON.stringify(e.columns).includes('"GROUPING_')||JSON.stringify(e.orderBy).includes('"GROUPING_');if(i.type==="GROUPING_SETS"||o){let l=await tI(e,t,n,r),c=Qp(e,l,Xp);c&&Vi.set(e,c);return}if(!Yn(e))return;if(i.type==="NONE"){To(e);return}[e.from,...e.joins.map(l=>l.table)].some(l=>l.cteName!==null&&!r?.has(l.cteName))||await yr(e,t,n,r)}function nI(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 Fc(e,t,n){let r=e.type==="SELECT"&&(n?.kind==="CANONICAL_REST_TOP_N"||n?.kind==="KORDER_NATIVE"||n?.kind==="KORDER_CURSOR")?nn({...e,orderBy:[]}):nn(e),i=r.size>0&&t.onLimitReached==="truncate";return{reasons:r,effectiveOptions:i?{...t,onLimitReached:"error"}:t,truncateWasDisabled:i}}function em(e,t){throw e.reasons.size>0&&t instanceof ct&&!t.completeInputWrapped?new ct(nI(e.reasons)+(e.truncateWasDisabled?"onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002":"")+t.message,!0):t}async function cc(e,t){try{return await t()}catch(n){em(e,n)}}function He(e){return e?.type==="BOOLEAN"&&e.value===!1}function rI(e){return e.from.appId===0&&e.from.cteName===Me}function ss(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"?ss(e.left)||ss(e.right):e.type==="STRING_FUNC"?Kc(e):!1}function iI(e){return e.type==="AGG_GROUP_KEY"?!0:e.type==="VARIABLE"?!1:e.type==="AGG_REF"||e.type==="AGG_ARITH"?!0:Di(e)}function Di(e){return e.type==="FIELD"?!0:e.type==="STRING_FUNC"?Kc(e):e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"?Di(e.left)||Di(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"?ss(n):n.type==="AGG_REF"||n.type==="AGG_ARITH"?!0:Di(n))):!1}function Kc(e){return e.args.some(t=>iI(t))}function oI(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(ss(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"STRFUNC_COL":if(Kc(t.expr))throw new Error("ArgumentError: field reference is not allowed without FROM.");break;case"SCALAR_VALUE_COL":if(Di(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 aI(e,t){if(e.joins.length>0||e.where||te(e).type!=="NONE"||e.having||e.orderBy.length>0||e.distinct)throw new Error("ArgumentError: JOIN/WHERE/GROUP BY/HAVING/ORDER BY/DISTINCT are not supported without FROM.");oI(e);let n=Pu([{}],e.columns,void 0,void 0,void 0,void 0,ae(t)),{rows:r,columns:i}=wn(n,e.columns,void 0,void 0,void 0,void 0,void 0,ae(t)),o=xa(r,e.limit,e.offset);return{type:"SELECT",rows:o,columns:i,rowCount:o.length,warnings:[]}}async function sI(e,t,n,r,i,o){let a=i?.kind==="CANONICAL_REST_TOP_N"?im(e):e,s=Co(a),l=i?.kind==="CANONICAL_LOCAL"?Rn(e,e.from):s.fields,c=await $c(e,t,r),d=Vc(e,c),u=e.columns.some(P=>P.type==="CASE_COL")?await Zi(e,t,r,void 0,kc(e)):void 0,p=n.maxRecords??1e4,f=new Set,R=n.onLimitReached??"error",E=n.fetchParallel??1,m=e.orderBy.length>0?i?.kind==="CANONICAL_REST_TOP_N"||i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR":e.limit!==null&&e.limit<=500,y=e.limit===null?null:(e.offset??0)+e.limit,g=e.orderBy.length===0&&y!==null&&y<=p&&!Pe(e.where)?y:void 0,T;if((i?.kind==="KORDER_NATIVE"||i?.kind==="KORDER_CURSOR")&&e.limit===0)T=[];else if(i?.kind==="KORDER_CURSOR"){let P=await lE({client:t,app:s.app,fields:s.fields,query:hu(e),offset:e.offset??0,limit:e.limit});T=P.records,P.cleanupWarning&&f.add(P.cleanupWarning)}else if(m)T=(await t.getRecords({app:s.app,query:s.query,fields:s.fields})).records;else{let P=e.where?j(e.where):"";T=await Ge(t.getRecords,s.app,P,l,{parallel:E,maxRecords:p,stopAfter:g,onLimit:R,onTruncate:x=>{f.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${x} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${x} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),_c(t,e.from.appId)}})}let h=T.map(P=>Gt(P,null));m||(h=Nu(h,e.orderBy,o.optionOrders,o.sortKinds,o.semantics,Cu(e.columns,void 0,d.row,u,ae(n)),ae(n)),h=xa(h,e.limit,e.offset));let{rows:I,columns:N}=wn(h,e.columns,void 0,d.row,void 0,u,void 0,ae(n)),v=await Yc(e,I,N,t,r);return{type:"SELECT",rows:I,columns:v,rowCount:I.length,warnings:[...f]}}async function lI(e,t,n,r){let i=[],o=new Map,a=(c,d)=>{if(d.length===0)return;let u=o.get(c);u||(u=new Set,o.set(c,u));for(let p of d)u.add(p)},s=new Map,l=(c,d)=>{let u=s.get(c);u||(u=new Set,s.set(c,u));for(let p of d)u.add(p)};if(t==="SIMPLE"){let c=Co(e);a(c.app,c.fields),e.from.subtableCode||l(c.app,c.fields)}else{let c=[e.from,...e.joins.map(d=>d.table)].filter(d=>d.cteName===null);for(let d of c){let u=Rn(e,d);a(d.appId,u),d.subtableCode||l(d.appId,u)}}for(let[c,d]of o.entries()){let u=[...d].filter(m=>!Qs(m));if(u.length===0)continue;let p=await Q(c,n,r);if(p.length===0)continue;let f=new Set(p.map(m=>m.code)),R=u.filter(m=>!f.has(m));if(R.length>0)throw new Error(`ArgumentError: unknown field code(s): ${R.join(", ")} (APP${c})`);let E=s.get(c);if(E){let m=p.filter(y=>y.inSubtable===!0&&E.has(y.code));for(let y of m){let g=y.subtableCode??"",T=g?`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u300C${g}\u300D`:"\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB";i.push(`${y.code} \u306F${T}\u306E\u4E2D\u306E\u9805\u76EE\u3067\u3059\u3002APP${c} \u304B\u3089\u306F\u5024\u304C\u53D6\u308C\u305A\u3001\u30A8\u30E9\u30FC\u306B\u306A\u3089\u306A\u3044\u307E\u307E\u5E38\u306B\u7A7A\u306B\u306A\u308A\u307E\u3059\uFF08\u5217\u306F\u7A7A\u3001\u96C6\u8A08\u306F\u7A7A\u3001\`HAVING\` \u306A\u3069\u306E\u6761\u4EF6\u306F\u7A7A\u3068\u306E\u6BD4\u8F03\u306B\u306A\u308A\u307E\u3059\uFF09\u3002`+(g?`APP${c}$${g} \u304B\u3089\u9078\u3093\u3067\u304F\u3060\u3055\u3044\uFF08\u89AA\u306E\u30EC\u30B3\u30FC\u30C9 ID \u306F _pid\u3001\u89AA\u9805\u76EE\u306F _p.<\u30D5\u30A3\u30FC\u30EB\u30C9\u30B3\u30FC\u30C9> \u306B\u306A\u308A\u307E\u3059\uFF09\u3002`:""))}}}return i}function uR(e){return e.cteName??`APP${e.appId}`}function uI(e){return e.alias?[e.alias]:e.cteName!==null?[e.cteName]:[`APP${e.appId}`,`app${e.appId}`]}function cI(e,t){return Qs(t)||e.validCodes.has(t)}function Qu(e,t){return e.table.cteName!==null?e.validCodes.has(t):cI(e,t)}function pI(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 dI(e,t,n,r){let i=[e.from,...e.joins.map(d=>d.table)],o=new Map,a=new Set;for(let d of i){let u=ce(d);if(u!==null){if(a.has(u))throw new Error(`ArgumentError: effective alias ${u} is used by multiple tables.`);a.add(u)}}for(let d of i){if(d.cteName===null||d.cteName===Me)continue;let u=n.get(d.cteName);if(!u)throw new Error(`ArgumentError: materialized source ${d.cteName} is not available.`);if(u.rows.length>0&&u.columns.length===0)throw new Error(`InternalError: materialized source ${d.cteName} has rows but no column schema.`);if(e.joins.length>0&&u.rows.length===0&&u.columns.length===0)throw new Error(`ArgumentError: column schema is unavailable for materialized JOIN source ${d.cteName}.`);o.set(d,u)}let s=new Map;await Promise.all(i.map(async d=>{let u=o.get(d);if(u){s.set(d,{table:d,label:uR(d),validCodes:new Set(u.columns),authoritative:!0,schemaUnavailable:u.rows.length===0&&u.columns.length===0});return}if(d.cteName===Me)return;let p=await Q(d.appId,t,r);s.set(d,{table:d,label:uR(d),validCodes:new Set(p.map(f=>f.code)),authoritative:p.length>0,schemaUnavailable:!1})}));let l=new Map;for(let d of s.values())for(let u of uI(d.table))l.set(u,d);for(let d of e.joins)if(d.type!=="CROSS")for(let u of[d.on.left,d.on.right]){if(!u.tableAlias)continue;let p=l.get(u.tableAlias);if(p&&p.table.cteName!==null&&!p.schemaUnavailable&&!Qu(p,u.field))throw new Error(`ArgumentError: JOIN key ${u.tableAlias}.${u.field} is not available in the materialized table.`)}let c=id(e);for(let[d,u]of c.bySource){let p=s.get(d);if(!p||p.schemaUnavailable||!p.authoritative)continue;let f=[...u].filter(R=>!Qu(p,R));if(f.length>0)throw new Error(`ArgumentError: unknown field code(s): ${f.join(", ")} (${p.label})`)}for(let d of c.unqualified){let u=[...s.values()].filter(f=>!f.schemaUnavailable);if(u.some(f=>Qu(f,d))||[...s.values()].some(f=>f.schemaUnavailable)||u.some(f=>f.table.cteName===null&&!f.authoritative))continue;let p=u.map(f=>f.label).join(", ");throw new Error(`ArgumentError: unknown field code(s): ${d} (${p})`)}}async function Qa(e,t,n,r,i=new Set){if(!i.has(e)){if(i.add(e),e.type==="UNION"){await Qa(e.left,t,n,r,i),await Qa(e.right,t,n,r,i);return}await dI(e,t,n,r);for(let o of pI(e))await Qa(o,t,n,r,i)}}function tm(e){return e.where===null||e.from.subtableCode||e.from.cteName!==null?null:e.joins.length===0?$r(e.where,{tableAlias:e.from.alias??void 0,allowUnqualifiedFields:!0}):e.from.alias?$r(e.where,{tableAlias:e.from.alias}):null}function Ui(e){return e.type==="BINARY"?e.right.type==="STRING"?e.right.value.startsWith("@"):e.right.type==="IN_LIST"?e.right.values.some(t=>t.type==="STRING"&&t.value.startsWith("@")):!1:e.type==="LOGICAL"?Ui(e.left)||Ui(e.right):e.type==="GROUP"||e.type==="NOT"?Ui(e.expr):!1}var Gc=new WeakMap;function Es(e,t){if(e.joins.length===0||e.where===null||e.joins.some(f=>f.type!=="INNER"&&f.type!=="CROSS"))return null;let n=[e.from,...e.joins.map(f=>f.table)];if(n.some(f=>f.alias===null||f.cteName!==null||!!f.subtableCode))return null;let r=n.map(f=>({alias:f.alias,appId:f.appId,sourceKind:"APP",fieldTypes:new Map([...t.fieldTypesByApp.get(f.appId)??new Map,["$id","__ID__"]]),fieldOptions:t.fieldOptionsByApp.get(f.appId)})),i=nE(e.where,r),o=rE(i,r),a=new Map,s=new Map;for(let[f,R]of o.fetchQueriesByAlias)s.set(f,R);for(let f of o.items)s.has(f.targetAlias)||s.set(f.targetAlias,dr(f,r)),a.set(f.targetAlias,f.predicate);let l=e.from.alias,c=a.get(l)??null,d=new Map(a);d.delete(l);let u=new Map(o.items.map(f=>[f.targetAlias,f.relation])),p=u.get(l)??null;return u.delete(l),{joinPlan:o,queriesByAlias:s,mainCondition:c,mainRelation:p,joinConditions:d,joinRelations:u,appliedKlikes:o.appliedKlikes,allKlikes:o.allKlikes}}async function Rs(e,t,n){let r=new Map,i=(s,l)=>{if(l===null)return;let c=r.get(s);c?c.push(l):r.set(s,[l])};if(i(e.from.appId,tm(e)),e.joins.length>0&&e.where!==null&&e.joins.every(s=>s.type==="INNER"||s.type==="CROSS")&&[e.from,...e.joins.map(s=>s.table)].every(s=>s.alias!==null&&s.cteName===null&&!s.subtableCode)){i(e.from.appId,e.where);for(let s of e.joins)i(s.table.appId,e.where)}if(e.where!==null)for(let s of e.joins){if(!s.table.alias||s.table.subtableCode||s.table.cteName!==null)continue;let l=$r(e.where,{tableAlias:s.table.alias});i(s.table.appId,l)}let a=await Promise.all([...r.entries()].map(async([s,l])=>{let[c,d]=await Promise.all([Ie(s,t,n),BI(s,t,n)]),u=fI(l).filter(p=>c.get(p)==="STATUS");if(u.length>0){let p=await hs(s,t,n);if(p.enable&&p.states&&p.states.length>0){let f=new Set(p.states.map(R=>R.name));for(let R of u)d.set(R,f)}}return[s,c,d]}));return{fieldTypesByApp:new Map(a.map(([s,l])=>[s,l])),fieldOptionsByApp:new Map(a.map(([s,,l])=>[s,l]))}}function fI(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 Bt(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":Bt(e.left,t),Bt(e.right,t);return;case"NOT":case"GROUP":Bt(e.expr,t);return;case"NULL_CHECK":case"EXISTS":case"BOOLEAN":return}}function ls(e,t){for(let n of e.branches)Bt(n.condition,t)}function EI(e){let t=[];Bt(e.where,t),Bt(e.having,t);for(let n of e.columns)n.type==="CASE_COL"&&ls(n.expr,t);return t}function ce(e){return e.alias??e.cteName}function nm(e,t){return[e.from,...e.joins.map(n=>n.table)].find(n=>ce(n)===t)}function ms(e){return[e.from,...e.joins.map(t=>t.table)].filter(t=>t.cteName===null)}async function $c(e,t,n){let r=EI(e);if(r.length===0)return new Map;let i=new Set,o=ms(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=nm(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 Ie(s,t,n)]));return new Map(a)}function Fe(e){let t=e.indexOf(".");return t>0?{type:"FIELD",tableAlias:e.slice(0,t),field:e.slice(t+1)}:{type:"FIELD",tableAlias:null,field:e}}function Bc(e,t,n){e!=="MIN"&&e!=="MAX"&&e!=="MODE"||t.type==="WILDCARD"||bn(t,n)}function bn(e,t){if(e.type==="FIELD_REF"){t.push(Fe(e.field));return}if(e.type==="FIELD"){t.push(e);return}if(e.type==="ARITH"){bn(e.left,t),bn(e.right,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){bn(e.left,t),bn(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"&&bn(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"?gr(n,t):n.type!=="ARRAY"&&bn(n,t)}function gr(e,t){if(e.type==="AGG_REF"){Bc(e.func,e.arg,t);return}e.type==="AGG_ARITH"&&(gr(e.left,t),gr(e.right,t)),e.type==="AGG_GROUP_KEY"&&t.push({type:"FIELD",tableAlias:e.tableAlias??null,field:e.field})}function pc(e,t){for(let n of e.args)if(n.type==="AGG_REF"||n.type==="AGG_ARITH")gr(n,t);else if(n.type==="AGG_GROUP_KEY")t.push({type:"FIELD",tableAlias:n.tableAlias??null,field:n.field});else{if(n.type==="VARIABLE")continue;Mi(n,t)}}function Mi(e,t){if(e.type==="STRING_FUNC"){pc(e,t);return}if(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP"){Mi(e.left,t),Mi(e.right,t);return}if(e.type==="CASE_WHEN"){let n=[...e.branches.map(r=>r.result),...e.elseResult?[e.elseResult]:[]];for(let r of n)r.type==="STRING_FUNC"?pc(r,t):r.type==="AGG_REF"||r.type==="AGG_ARITH"?gr(r,t):r.type!=="ARRAY"&&r.type!=="FIELD_REF"&&r.type!=="ARITH"&&Mi(r,t)}}function RI(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;Bc(o.func,o.arg,t);return}i.type==="SELECT"||i.type==="SCALAR_SUBQUERY"||Object.values(i).forEach(n)};n(e)}function mI(e){let t=[];for(let n of e)n.type==="AGGREGATE"?Bc(n.func,n.arg,t):n.type==="ARITH_AGG_COL"?gr(n.expr,t):n.type==="STRFUNC_COL"?pc(n.expr,t):n.type==="SCALAR_VALUE_COL"?Mi(n.expr,t):n.type==="CASE_COL"&&RI(n.expr,t);return t}var yI=new Set(["SINGLE_LINE_TEXT","MULTI_LINE_TEXT","RICH_TEXT","LINK","DROP_DOWN","RADIO_BUTTON","STATUS","DATE","TIME","DATETIME","CREATED_TIME","UPDATED_TIME"]);function gI(e){return e.sortKind!==void 0?e.sortKind:e.fieldType==="NUMBER"||e.fieldType==="RECORD_NUMBER"?"number":yI.has(e.fieldType)?"string":void 0}async function rm(e,t,n,r){let i=mI(e.columns);if(i.length===0)return;let o=new Set,a=ms(e);for(let f of i)if(f.tableAlias!==null){if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){o.add(e.from.appId);continue}let R=nm(e,f.tableAlias);R&&R.cteName===null&&o.add(R.appId)}else if(e.joins.length===0)e.from.cteName===null&&o.add(e.from.appId);else for(let R of a)o.add(R.appId);let s=new Map(await Promise.all([...o].map(async f=>{let R=await Q(f,t,n);return[f,new Map(R.map(E=>[E.code,E]))]}))),l=new Map,c=new Set(i.map(f=>f.field));await Promise.all([...s].map(async([f,R])=>{if(![...c].some(m=>R.get(m)?.fieldType==="STATUS"))return;let E=await qc(f,t,n);E&&l.set(f,E)}));let d=[e.from,...e.joins.map(f=>f.table)],u=(f,R)=>{let E=f.semantics??ne(f);return f.fieldType==="STATUS"&&l.has(R)?{...E,optionOrder:l.get(R)}:E};return f=>{let R;if(f.tableAlias!==null)if(f.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)R=s.get(e.from.appId)?.get(f.field);else{let m=d.find(y=>ce(y)===f.tableAlias);if(!m)return;if(m.cteName!==null)return r?.get(m.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");R=s.get(m.appId)?.get(Ee(m,f.field))}else if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(f.field)?.semantics??B("string");R=s.get(e.from.appId)?.get(Ee(e.from,f.field))}else{let m=d.flatMap(y=>{if(y.cteName!==null){let T=r?.get(y.cteName);return T?.columns.includes(f.field)?[T.columnMeta?.get(f.field)?.semantics??B("string")]:[]}let g=s.get(y.appId)?.get(Ee(y,f.field));return g?[u(g,y.appId)]:[]});return m.length!==1?void 0:m[0]}if(!R)return;let E=f.tableAlias!==null?d.find(m=>ce(m)===f.tableAlias):e.joins.length===0?e.from:void 0;return u(R,E?.appId??e.from.appId)}}function Ee(e,t){return e.subtableCode&&t.startsWith("_p.")?t.slice(3):t}function Za(e,t){if(e.subtableCode){if(t==="_rid")return"SINGLE_LINE_TEXT";if(t==="_idx"||t==="_pid")return"NUMBER"}}function ke(e,t){let n=e.semantics??ne(e);return{sortKind:gI(e),fieldType:e.fieldType,semantics:t===void 0?n:zn(n,t,e.code)}}function im(e){return e.orderBy.some(n=>n.key.type==="FIELD_NAME"&&n.key.name==="$id")?e:{...e,orderBy:[...e.orderBy,{key:{type:"FIELD_NAME",name:"$id"},direction:"ASC"}]}}function ee(e){return{sortKind:e,semantics:B(e)}}function tt(){return{semantics:B("string","KSQL_UNKNOWN")}}function om(e="KSQL_ARRAY"){return{semantics:{fieldType:e,compareMode:"unsupported",inSubtable:!1,requiresCollectionOperators:!1}}}function nt(e){if(e==="$id")return{sortKind:"number",fieldType:"__ID__",semantics:ne({fieldType:"__ID__"})};if(e==="_rid")return ee("string");if(e==="_pid"||e==="_idx"||e==="$revision")return ee("number")}var hI=new Set(["LENGTH","LENGTH_CHAR","INSTR","ROUND","FLOOR","CEIL","TRUNCATE","YEAR","MONTH","DAY","DATEDIFF","ABS","MOD","POWER","SQRT","DAYOFWEEK","QUARTER","WEEK"]);function Un(e){if(e.func==="CAST"){let t=e.args[1];return t?.type==="STRING"&&t.value==="NUMBER"?ee("number"):ee("string")}return hI.has(e.func)?ee("number"):ee("string")}function hr(e,t){return e.type==="STRING"?ee("string"):e.type==="ARRAY"?om():e.type==="AGG_REF"?e.func==="MIN"||e.func==="MAX"||e.func==="MODE"?e.arg.type==="WILDCARD"?tt():Mn(e.arg,t):e.func==="GROUP_CONCAT"?ee("string"):ee("number"):e.type==="AGG_ARITH"||e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH"?ee("number"):e.type==="STRING_FUNC"?Un(e):e.type==="FIELD_REF"?t(Fe(e.field))??tt():e.type==="FIELD"?t(e)??tt():tt()}function ys(e){if(e.length===0)return tt();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&&Lo(n(r.semantics),n(t.semantics)))?e.every(i=>Lo(i.semantics,t.semantics))?t:{...t,semantics:n(t.semantics)}:e.some(r=>r.semantics?.compareMode==="unsupported")?om("KSQL_MIXED_UNSUPPORTED"):tt()}function Mn(e,t){if(e.type==="FIELD_REF")return t(Fe(e.field))??tt();if(e.type==="FIELD")return t(e)??tt();if(e.type==="NUMBER"||e.type==="ARITH"||e.type==="SCALAR_ARITH")return ee("number");if(e.type==="STRING"||e.type==="CONCAT_OP"||e.type==="VARIABLE")return ee("string");if(e.type==="STRING_FUNC")return Un(e);let n=e.branches.map(r=>hr(r.result,t));return e.elseResult&&n.push(hr(e.elseResult,t)),ys(n)}function am(e,t){return e.windowKind==="VALUE"?Mn(e.arg,t):e.windowKind==="AGGREGATE"?e.aggFunc==="COUNT"||e.aggFunc==="SUM"||e.aggFunc==="AVG"?ee("number"):e.arg.type==="WILDCARD"?tt():Mn(e.arg,t):ee("number")}function es(e,t){return{...e??{},displayName:t}}function AI(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 Hi(e,t,n,r,i,o=!1){let a=new Map;AI(e)&&await Promise.all(ms(e).map(async E=>{if(a.has(E.appId))return;let m=await Q(E.appId,n,r);a.set(E.appId,new Map(m.map(y=>[y.code,y])))}));let s=[e.from,...e.joins.map(E=>E.table)],l=o&&i===void 0&&s.every(E=>E.cteName===null),c=E=>{if(E.tableAlias!==null){if(E.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let T=a.get(e.from.appId)?.get(E.field);return T?ke(T,e.from.appId):void 0}let y=s.find(T=>ce(T)===E.tableAlias);if(!y)return;if(y.cteName!==null)return i?.get(y.cteName)?.columnMeta?.get(E.field);let g=a.get(y.appId)?.get(Ee(y,E.field));return g?ke(g,y.appId):nt(E.field)}if(e.joins.length===0){if(e.from.cteName!==null)return i?.get(e.from.cteName)?.columnMeta?.get(E.field);let y=a.get(e.from.appId)?.get(Ee(e.from,E.field));return y?ke(y,e.from.appId):nt(E.field)}let m=s.flatMap(y=>{if(y.cteName!==null){let h=i?.get(y.cteName);return h?.columns.includes(E.field)?[h.columnMeta?.get(E.field)]:[]}let g=a.get(y.appId)?.get(Ee(y,E.field)),T=g?ke(g,y.appId):nt(E.field);return T?[T]:[]});return m.length===1?m[0]:void 0},d=E=>{if(!l)return;let m=s.filter(y=>{if(E.tableAlias!==null&&ce(y)!==E.tableAlias)return!1;let g=Ee(y,E.field);return a.get(y.appId)?.has(g)===!0||nt(E.field)!==void 0});return m.length===1?m[0].appId:void 0},u=(E,m)=>{let y=d(m);return E&&y!==void 0?{...E,publicSourceApp:y}:E},p=new Map,f=e.columns.some(E=>E.type==="WILDCARD"||E.type==="PARENT_WILDCARD");if(e.columns.length===1&&(e.columns[0].type==="WILDCARD"||e.columns[0].type==="PARENT_WILDCARD")){for(let E of t){let m=Fe(E),y=u(c(m),m);p.set(E,es(y,y?.displayName??E))}return p}if(f)for(let E of t){let m=Fe(E),y=u(c(m),m);p.set(E,es(y,y?.displayName??E))}return e.columns.filter(E=>E.type!=="WILDCARD"&&E.type!=="PARENT_WILDCARD").forEach((E,m)=>{let y=f?"alias"in E&&E.alias?E.alias:void 0:t[m];if(!y)return;let g;if(E.type==="FIELD"){let T=Fe(E.field);g=u(c(T),T)}else if(E.type==="AGGREGATE")E.func==="GROUP_CONCAT"?g=ee("string"):E.func==="COUNT"||E.func==="SUM"||E.func==="AVG"||E.func==="STDDEV_POP"||E.func==="STDDEV_SAMP"||E.func==="VAR_POP"||E.func==="VAR_SAMP"||E.func==="MEDIAN"?g=ee("number"):(E.func==="MIN"||E.func==="MAX"||E.func==="MODE")&&E.arg.type!=="WILDCARD"&&(g=Mn(E.arg,c));else if(E.type==="ARITH_AGG_COL"||E.type==="ARITH_COL")g=ee("number");else if(E.type==="GROUPING_COL")g=ee("number");else if(E.type==="LITERAL_COL")g=ee("string");else if(E.type==="SCALAR_VALUE_COL"){let T=E.expr;T.type==="STRING_FUNC"?g=Un(T):T.type==="NUMBER"||T.type==="SCALAR_ARITH"?g=ee("number"):T.type==="FIELD"?g=c(T):g=ee("string")}else if(E.type==="STRFUNC_COL")g=Un(E.expr);else if(E.type==="WINDOW_COL")g=am(E,c);else if(E.type==="CASE_COL"){let T=E.expr.branches.map(h=>hr(h.result,c));E.expr.elseResult&&T.push(hr(E.expr.elseResult,c)),g=ys(T)}else E.type==="SCALAR_SUBQUERY_COL"&&(g=tt());p.set(y,es(g,E.aliasDisplay??y))}),p}function SI(e,t){let n=ge.get(e),r=ge.get(t),i=new Map;return e.columns.forEach((o,a)=>{let s=n?.get(o),l=t.columns[a],c=l===void 0?void 0:r?.get(l),d;if(s&&c){let u=ys([s,c]),p=s.publicSourceApp===c.publicSourceApp?s.publicSourceApp:void 0,{publicSourceApp:f,...R}=u;d=p===void 0?R:{...R,publicSourceApp:p}}else d=tt();i.set(o,es(d,s?.displayName??o))}),i}function Vc(e,t){let n=[e.from,...e.joins.map(s=>s.table)],r=n.filter(s=>s.cteName===null),i=new Set(e.columns.map(s=>"alias"in s?s.alias:null).filter(s=>s!==null)),o=s=>{if(s.tableAlias!==null){if(s.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null)return t.get(e.from.appId)?.get(s.field);let c=n.find(d=>ce(d)===s.tableAlias);return!c||c.cteName!==null?void 0:Za(c,s.field)??t.get(c.appId)?.get(Ee(c,s.field))}if(e.joins.length===0)return e.from.cteName!==null?void 0:Za(e.from,s.field)??t.get(e.from.appId)?.get(Ee(e.from,s.field));if(n.some(c=>c.cteName!==null))return;let l=r.flatMap(c=>{let d=Za(c,s.field)??t.get(c.appId)?.get(Ee(c,s.field));return d?[d]:[]});return l.length===1?l[0]:void 0};return{row:o,having:s=>{if(!(s.tableAlias===null&&i.has(s.field)))return o(s)}}}var sm=new WeakSet,Wc=new WeakMap;function dc(e){return sm.add(e),e}function TI(e,t){return Wc.set(e,t),t}function lm(e,t){if(t.capability!=="EXACT_PUSHDOWN")return!1;let n=e.columns.filter(r=>r.type==="AGGREGATE"&&r.func==="COUNT"&&!r.distinct&&r.arg.type==="WILDCARD");return n.length!==1||e.columns.some(r=>r!==n[0]&&r.type!=="LITERAL_COL")?!1:!e.distinct&&te(e).type==="NONE"&&e.having===null&&e.joins.length===0&&e.from.cteName===null&&!e.from.subtableCode&&e.limit===null&&e.offset===null}function II(e){return typeof e=="string"&&/^(?:0|[1-9]\d*)$/.test(e)}async function wI(e,t){let n=e.columns.find(s=>s.type==="AGGREGATE");if(n?.type!=="AGGREGATE")return null;let r=e.where===null?"":j(e.where),i=await t.getRecords({app:e.from.appId,query:`${r}${r?" ":""}limit 1`,fields:["$id"],totalCount:!0});if(i.searchAborted)throw new os;if(!II(i.totalCount))return null;let o=n.alias??"COUNT(*)",a=wn([{[o]:i.totalCount}],e.columns);return{type:"SELECT",rows:a.rows,columns:a.columns,rowCount:1,warnings:[]}}async function bI(e,t,n,r,i,o=!0,a,s,l){let c=Wc.get(e);if(sm.has(e)&&c!==void 0&&lm(e,c)){let L=await wI(e,t);if(L!==null)return L}let d=n.maxRecords??1e4,u=new Set,p=n.fetchParallel??1;await Promise.all([Ji(e.where,t,n,r,u,i),Ji(e.having,t,n,r,u,i)]);let[f,R,E]=await Promise.all([Rs(e,t,r),$c(e,t,r),rm(e,t,r,i)]),m=Vc(e,R),y=await Zi(e,t,r,i,It(e.having)||kc(e)),g=XR(e,y),T=Gc.get(e);if(T&&!fr(T.joinPlan))throw new Error("InternalError: JOIN server-function fetch binding changed before records API.");let h=T??Es(e,f)??mn(e,f);hl(h);let I="joinPlan"in h?h:null,N=I&&fr(I.joinPlan)?I:null,v=t,P=h.mainCondition,x=h.joinConditions;if(s&&o)throw new Error("internal error: relative-date prefilter must disable original WHERE pushdown.");let U=s?s.prefilterWhere:N?null:P,C=N?.queriesByAlias.get(e.from.alias)??"",D=await vm(e.columns,t,n,r,u,i),b=He(e.where),_=b?Promise.resolve([]):xi(e,e.from,v,d,p,!0,n.onLimitReached??"error",u,U,N?!1:o,l,C),A=[],w=[];for(let L of e.joins){if(b){A.push({join:L,promise:Promise.resolve([])});continue}let V=L.table.alias?N?.queriesByAlias.get(L.table.alias)??"":"",X=N?null:L.table.alias?x.get(L.table.alias)??null:null;X!==null||V!==""?A.push({join:L,promise:xi(e,L.table,v,d,p,!1,n.onLimitReached??"error",u,X,!0,l,V)}):w.push(L)}let M=a?Promise.resolve(a):ji(e,t,r,i);M.catch(()=>{});let O=await _,F=new Map;F.set(e.from.alias,O);for(let{join:L,promise:V}of A)F.set(L.table.alias,await V);await Promise.all(w.map(async L=>{let X=await gm(e,L,F,v,d,p,n.onLimitReached??"error",u,r,i,null,l,"")??await xi(e,L.table,v,d,p,!1,n.onLimitReached??"error",u,null,!0,l,"");F.set(L.table.alias,X)}));let{optionOrders:W,sortKinds:G,semantics:k}=await M,{rows:K,columns:Y}=_u({tables:F,stmt:e,scalarCache:D,optionOrders:W,sortKinds:G,orderSemantics:k,fieldTypeResolver:m.row,fieldSemanticsResolver:y,havingFieldTypeResolver:m.having,havingFieldSemanticsResolver:g,aggregateSortKindResolver:E,appliedKlikes:s?.appliedKlikes??h.appliedKlikes,...s?{residualWhere:s.residualWhere}:N?{residualWhere:N.joinPlan.residualWhere}:{},resolvedGroupingSpec:Vi.get(e),plainGroupByPlan:l,warnings:u,evaluationContext:ae(n)}),$=await Yc(e,K,Y,t,r);return{type:"SELECT",rows:K,columns:$,rowCount:K.length,warnings:[...u]}}function NI(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 fc(e,t,n){NI(t,e.columns);let r=e.rows.map(a=>{let s={};return t.forEach((l,c)=>{s[l]=a[e.columns[c]??l]??""}),s}),i={...e,rows:r,columns:[...t],rowCount:r.length},o=ge.get(e);if(n||o){let a=new Map;t.forEach((s,l)=>{let c=e.columns[l],d=n?.get(s)??(c===void 0?void 0:o?.get(c));d&&a.set(s,{...d,displayName:s})}),ge.set(i,a)}return i}function um(e,t,n,r){let i=fc(t,e.columns),o=[...e.rows,...i.rows],a=n?o:CI(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&&ge.set(l,SI(e,t)),l}async function cm(e,t,n,r,i=!1,o=!1){let a=Fc(e,n,null);return cc(a,async()=>{let s=a.effectiveOptions,[l,c]=await Promise.all([e.left.type==="UNION"?cm(e.left,t,s,r,i,o):Vt(dc(e.left),t,s,r,void 0,i,o,"DERIVED"),Vt(dc(e.right),t,s,r,void 0,i,o,"DERIVED")]);return um(l,c,e.all,i)})}function CI(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 pm(e){return"alias"in e&&typeof e.alias=="string"?e.alias:e.type==="FIELD"?e.field:null}function PI(e){let t=e.recursiveSpec;if(e.columnAliases)return[...e.columnAliases];let n=t.seed.columns.map(pm);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 cR(e){return e.columns.map((t,n)=>pm(t)??`__b53_column_${n}`)}function pR(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 dm(e,t,n,r){let i=[e.from,...e.joins.map(s=>s.table)],o=new Map;await Promise.all(i.filter(s=>s.cteName===null).map(async s=>{if(o.has(s.appId))return;let l=await Q(s.appId,t,n);o.set(s.appId,new Map(l.map(c=>[c.code,c])))}));let a=(s,l)=>{if(s.cteName!==null)return r.get(s.cteName)?.columnMeta?.get(l);let c=o.get(s.appId)?.get(Ee(s,l));return c?ke(c,s.appId):nt(l)};return s=>{if(s.tableAlias!==null){let c=i.find(d=>ce(d)===s.tableAlias);return c?a(c,s.field):void 0}if(i.length===1)return a(i[0],s.field);let l=i.map(c=>a(c,s.field)).filter(c=>c!==void 0);return l.length===1?l[0]:void 0}}function _i(e,t,n=!1){if(e===null||typeof e!="object")return;if(Array.isArray(e)){e.forEach(i=>_i(i,t,n));return}let r=e;if(r.type==="FIELD"){let i=typeof r.tableAlias=="string"||r.tableAlias===null?r:Fe(String(r.field??"")),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${i.tableAlias?`${i.tableAlias}.`:""}${i.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${i.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="FIELD_REF"&&typeof r.field=="string"){let i=Fe(r.field),o=t(i);if(!o?.semantics||o.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u5C04\u5F71\u5217 ${r.field} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);if(n&&o.semantics.compareMode!=="number"&&o.semantics.compareMode!=="recordNumber")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u6570\u5024\u6F14\u7B97\u306B\u6570\u5024\u3067\u306A\u3044\u5217 ${r.field} \u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`);return}if(r.type==="ARITH"||r.type==="SCALAR_ARITH"){_i(r.left,t,!0),_i(r.right,t,!0);return}for(let i of Object.values(r))_i(i,t,n)}async function dR(e,t,n,r,i){let o=await dm(e,n,r,i);e.columns.forEach(c=>_i(c,o));let a=await Hi(e,cR(e),n,r,i),s=cR(e),l=new Map;return t.forEach((c,d)=>{let u=a.get(s[d]);if(!u?.semantics||u.semantics.fieldType==="KSQL_UNKNOWN"||u.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30 CTE \u306E\u7B2C ${d+1} \u5217\u306E\u578B\u3092\u9759\u7684\u306B\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);l.set(c,{...u,displayName:c})}),l}function ln(e){return`${e.appId}:${e.subtableCode??""}`}function fm(...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(ln(r))&&t.set(ln(r),r);return[...t.values()]}function OI(e){let t=e.indexOf(".");return t<0?{alias:null,field:e}:{alias:e.slice(0,t),field:e.slice(t+1)}}function LI(e){let t=new Map,n=r=>{for(let i of r)t.set(ln(i),null)};for(let r of e){let i=ms(r);for(let s of i){let l=ln(s);t.has(l)||t.set(l,new Set)}let o=(s,l)=>{let c=s===null?i.length===1?i[0]:void 0:[r.from,...r.joins.map(u=>u.table)].find(u=>ce(u)?.toLowerCase()===s.toLowerCase());if(!c){n(i);return}if(c.cteName!==null)return;let d=t.get(ln(c));d!==null&&d?.add(l)},a=s=>{if(s==null||typeof s!="object")return;if(Array.isArray(s)){s.forEach(a);return}let l=s;if(l.type==="WILDCARD"||l.type==="PARENT_WILDCARD"){n(i);return}if((l.type==="FIELD"||l.type==="FIELD_REF")&&typeof l.field=="string"){let c=OI(l.field),d=typeof l.tableAlias=="string"?l.tableAlias:l.tableAlias===null?null:c.alias;o(d,c.field);return}if((l.type==="FIELD_NAME"||l.type==="GROUPING_REF")&&typeof l.name=="string"){n(i);return}Object.values(l).forEach(a)};a(r.columns),a(r.where),a(te(r)),a(r.having),a(r.orderBy);for(let s of r.joins){if(s.on===null){n(i);continue}o(s.on.left.tableAlias,s.on.left.field),o(s.on.right.tableAlias,s.on.right.field)}}return t}function _I(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 vI(e,t,n,r){let i=LI(e),o=await Promise.all(fm(...e).map(async(a,s)=>{let l=await Vt(_I(a,i.get(ln(a))??null),t,{...n,onLimitReached:"error"},r,void 0,!0,!1,"DERIVED"),c=`__b53_source_${s}`;return[ln(a),{name:c,warnings:l.warnings??[],table:{rows:l.rows,columns:l.columns,columnMeta:ge.get(l)}}]}));return new Map(o)}function fR(e,t){let n=r=>{if(r.cteName!==null)return r;let i=t.get(ln(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 ER(e,t,n){return e.cteName===null?void 0:n.get(e.cteName)?.columnMeta?.get(t)}function Zu(e,t){if(t.compareMode!=="number"&&t.compareMode!=="recordNumber")return e;let n=be(e);return n===null?`invalid:${e}`:`${n.sign}:${n.coefficient}:${n.scale}`}function RR(e,t){let n=t.joins[0];if(!n||n.type!=="INNER")throw new Error("PlanningError: \u518D\u5E30\u9805\u306E INNER JOIN \u3092\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");let r=t.from.cteName===e?t.from:n.table,i=r===t.from?n.table:t.from,o=ce(r),a=n.on.left.tableAlias===o,s=n.on.right.tableAlias===o;if(a===s)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u3092\u4E00\u610F\u306B\u89E3\u6C7A\u3067\u304D\u307E\u305B\u3093");return{self:r,source:i,selfField:a?n.on.left.field:n.on.right.field,sourceField:a?n.on.right.field:n.on.left.field}}async function DI(e,t,n,r,i){let o=e.recursiveSpec,a=PI(e),s=await dR(o.seed,a,t,i,r),l=new Map(r);l.set(e.name,{rows:[],columns:a,columnMeta:s});let c=await dR(o.recursiveTerm,a,t,i,l);a.forEach((G,k)=>{let K=s.get(G),Y=c.get(G);if(!K||!Y||!pR(K,Y))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u7B2C ${k+1} \u5217\u3067 seed \u3068\u518D\u5E30\u9805\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`)});let d=RR(e.name,o.recursiveTerm),u=await dm(o.recursiveTerm,t,i,l),p=u({type:"FIELD",tableAlias:ce(d.self),field:d.selfField}),f=u({type:"FIELD",tableAlias:ce(d.source),field:d.sourceField});if(!p||!f||!pR(p,f))throw new Error(`PlanningError: \u518D\u5E30 CTE\u300C${e.name}\u300D\u306E\u81EA\u5DF1\u53C2\u7167 JOIN \u30AD\u30FC\u306E\u578B\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);let R=await vI([o.seed,o.recursiveTerm],t,n,i),E=new Map(r);for(let G of R.values())E.set(G.name,G.table);let m=fR(o.seed,R),y=fR(o.recursiveTerm,R),g=await mt(m,t,n,E,i,!0,!0),T=fc(g,a,s),h=o.cycle,I=h?s.get(h.column):void 0,N=new Map(s);h&&N.set(h.markColumn,{...ee("string"),displayName:h.markColumn});let v=h?[...a,h.markColumn]:[...a],P=[],x=[],U=new Set([...T.warnings??[],...[...R.values()].flatMap(G=>G.warnings)]),C=new Sa(e.name,Ft(n)),D=G=>{C.addRow(),P.push(G)};for(let G of T.rows){let k=h?String(G[h.column]??""):"",K=h?{...G,[h.markColumn]:h.defaultValue}:G;D(K),x.push({row:G,path:h?[k]:[]})}let b=RR(e.name,y),_=b.source.cteName===null?void 0:E.get(b.source.cteName);if(!_)throw new Error("PlanningError: \u518D\u5E30\u9805\u306E\u5B8C\u5168\u5B9F\u4F53\u5316 source \u304C\u3042\u308A\u307E\u305B\u3093");let A=ER(b.self,b.selfField,l)??ER(b.source,b.sourceField,E);if(!A?.semantics||A.semantics.compareMode==="unsupported")throw new Error(`PlanningError: \u518D\u5E30\u9805\u306E JOIN \u30AD\u30FC ${b.selfField} \u306E\u578B\u3092\u8A3C\u660E\u3067\u304D\u307E\u305B\u3093`);let w=new Map;for(let G of _.rows){let k=String(G[b.sourceField]??""),K=Zu(k,A.semantics),Y=w.get(K);Y?Y.push(G):w.set(K,[G])}let M=w.has(Zu("",A.semantics)),O=0,F=!1;for(;x.length>0;){O++;let G=[];for(let k of x){let K=String(k.row[b.selfField]??"");!F&&K===""&&M&&(U.add(`\u518D\u5E30 CTE\u300C${e.name}\u300D\u306E JOIN ${b.selfField} = ${b.sourceField} \u3067\u7B2C ${O} \u53CD\u5FA9\u306B\u4E21\u5074\u306E\u7A7A\u30AD\u30FC\u3092\u691C\u51FA\u3057\u307E\u3057\u305F\u3002\u7A7A\u30AD\u30FC\u3069\u3046\u3057\u306F\u4E00\u81F4\u3057\u3001\u30EB\u30FC\u30C8\u7FA4\u3092\u518D\u5C55\u958B\u3057\u5F97\u307E\u3059\u3002`),F=!0);let Y=w.get(Zu(K,A.semantics))??[];for(let X of Y){let he=String(X[b.sourceField]??"");Ut("=",K,he,A.semantics)&&C.addExpansion()}if(Y.length===0)continue;let $=new Map(E);$.set(e.name,{rows:[k.row],columns:a,columnMeta:s});let L=await mt(y,t,n,$,i,!0,!0);for(let X of L.warnings??[])U.add(X);let V=fc(L,a,s);V.rows.length>0&&C.observeDepth(O);for(let X of V.rows){if(!h){D(X),G.push({row:X,path:[]});continue}let he=String(X[h.column]??""),at=k.path.some(ie=>Ut("=",ie,he,I.semantics));D({...X,[h.markColumn]:at?h.markValue:h.defaultValue}),at||G.push({row:X,path:[...k.path,he]})}}x=G}let W={type:"SELECT",rows:P,columns:v,rowCount:P.length,warnings:[...U]};return ge.set(W,N),W}async function Hc(e,t,n,r,i,o=!1){if((i==null||i.size===0)&&Xt(e))return Vt(Qt(e),t,n,r,void 0,o,!1,"DERIVED");let a=new Map(i??[]),s=new Set;for(let c of e.ctes){let d;c.recursiveSpec?d=await DI(c,t,n,a,r):c.query.type==="SHOW_APPS"?d=await Pm(t):c.query.type==="DESCRIBE"?d=await Om(c.query,t,r):c.query.type==="GENERATE_SERIES"?d=Em(c.query):d=await mt(c.query,t,n,a,r,!0);for(let u of d.warnings??[])s.add(u);a.set(c.name,{rows:d.rows,columns:d.columns,columnMeta:ge.get(d),...c.query.type==="GENERATE_SERIES"?{uniqueGeneratedColumn:c.query.columnAlias}:{}})}let l=await mt(e.query,t,n,a,r,o);return xc(l,[...s])}function Em(e){let t=zo(e),n={type:"SELECT",columns:[e.columnAlias],rows:t.values.map(i=>({[e.columnAlias]:i})),rowCount:t.rowCount,warnings:[]},r=t.kind==="INTEGER"?{sortKind:"number",fieldType:"NUMBER",semantics:ne({fieldType:"NUMBER"})}:{sortKind:"string",fieldType:"DATE",semantics:ne({fieldType:"DATE"})};return ge.set(n,new Map([[e.columnAlias,r]])),n}async function mt(e,t,n,r,i,o=!1,a=!1){if(a||await Qa(e,t,r,i),e.type==="UNION"){let[c,d]=await Promise.all([mt(e.left,t,n,r,i,o,!0),mt(e.right,t,n,r,i,o,!0)]);return um(c,d,e.all,o)}if(!(e.from.cteName!=null&&e.from.cteName!==Me||e.joins.some(c=>c.table.cteName!=null)))return Vt(e,t,n,i,r,o,!1,"DERIVED");let l=await UI(e,t,n,r,i);return o&&ge.set(l,await Hi(e,l.columns,t,i,r)),l}async function UI(e,t,n,r,i){await Wi(e,t,i,r);let o=Vi.get(e),a=await yr(e,t,i,r),s=new Set,l=$=>{if($.alias!==null||$.cteName===null)return $;let L=ce($);return s.add(L),{...$,alias:L}};e={...e,from:l(e.from),joins:e.joins.map($=>({...$,table:l($.table)}))};let c=new Set;for(let $ of[e.from,...e.joins.map(L=>L.table)]){let L=ce($);if(L!==null){if(c.has(L))throw new Error(`ArgumentError: effective alias ${L} is used by multiple tables.`);c.add(L)}}let d=$=>{let L=r.get($);if(!L)throw new Error(`ArgumentError: materialized source ${$} is not available.`);return L};for(let $ of[e.from,...e.joins.map(L=>L.table)])$.cteName!==null&&d($.cteName);let{resolver:u}=await Ln(e,t,i,r,qR(e)),p=JR(e,u,"DERIVED",e.joins.length===0&&e.from.cteName!==null?r.get(e.from.cteName)?.uniqueGeneratedColumn:void 0),f=n.maxRecords??1e4,R=new Set,E=n.fetchParallel??1;await Promise.all([Ji(e.where,t,n,i,R,r),Ji(e.having,t,n,i,R,r),Lm(e,t,n,i,R,r)]);let m=Te(e.where,u);if(m.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${_n(m)}).`);let y=await ji(e,t,i,r),g=as(e)?(e.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:e,staticMode:"FULL_SCAN",whereCapability:m.capability,whereReasons:m.reasons,orderSemantics:y.semantics,maxRecords:f,hasKlike:Pe(e.where)}):null,T=Fc(e,n,g),h=T.effectiveOptions,[I,N,v]=await Promise.all([Rs(e,t,i),$c(e,t,i),rm(e,t,i,r)]),P=Vc(e,N),x=await Zi(e,t,i,r,It(e.having)||kc(e)),U=XR(e,x),C=Es(e,I)??mn(e,I);hl(C);let D=t,b=await vm(e.columns,t,h,i,R,r),_=Promise.resolve(y);_.catch(()=>{});let A=new Map,w=new Map;if(e.from.cteName!=null){let $=d(e.from.cteName);A.set(e.from.alias,$.rows.map(mR)),w.set(e.from.alias,$.columns)}else{let $=await cc(T,()=>xi(e,e.from,D,f,E,!0,h.onLimitReached??"error",R,C.mainCondition,m.capability==="EXACT_PUSHDOWN",a));A.set(e.from.alias,$)}let M=e.joins.map($=>cc(T,async()=>{if($.table.cteName!=null){let L=d($.table.cteName);A.set($.table.alias,L.rows.map(mR)),w.set($.table.alias,L.columns)}else{let L=$.table.alias?C.joinConditions.get($.table.alias)??null:null,X=await gm(e,$,A,D,f,E,h.onLimitReached??"error",R,i,r,L,a)??await xi(e,$.table,D,f,E,!1,h.onLimitReached??"error",R,L,!0,a);A.set($.table.alias,X)}}));await Promise.all(M);let{optionOrders:O,sortKinds:F,semantics:W}=await _,G=e.joins.length===0&&e.from.cteName!=null?d(e.from.cteName).columns:void 0,{rows:k,columns:K}=_u({tables:A,stmt:e,scalarCache:b,optionOrders:O,sortKinds:F,orderSemantics:W,fieldTypeResolver:P.row,fieldSemanticsResolver:x,havingFieldTypeResolver:P.having,havingFieldSemanticsResolver:U,aggregateSortKindResolver:v,appliedKlikes:C.appliedKlikes,sourceColumns:G,tableColumns:w,hiddenQualifiedAliases:s,resolvedGroupingSpec:o,plainGroupByPlan:a,evaluationContext:ae(n)}),Y=await Yc(e,k,K,t,i);return xc({type:"SELECT",rows:k,columns:Y,rowCount:k.length,warnings:[...R]},p)}async function Yc(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 cE(o,e.from.subtableCode,()=>hs(e.from.appId,r,i))}function mR(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,{value:n??""}]))}async function xi(e,t,n,r,i,o,a,s,l=null,c=!0,d,u=""){let p=Rn(e,t,d),f=y=>{if(s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${y} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),_c(n,t.appId),Yf(e,t,o))throw new ct(`\u5916\u90E8\u7D50\u5408\u306E\u6B63\u3057\u3044\u7D50\u679C\u306B\u306F\u5B8C\u5168\u306A\u5019\u88DC\u96C6\u5408\u304C\u5FC5\u8981\u3067\u3059\u3002complete input reason: OUTER_JOIN_NON_PRESERVED\uFF08APP${t.appId}\uFF09\u3002onLimit=truncate\u306F\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093\u3002\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${y} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`,!0)};if(!t.subtableCode){let y=o&&c?nd(e,t.appId).query:"",g=[l!==null?j(l):"",u].filter(N=>N!==""),T=g.length>1?g.map(N=>`(${N})`).join(" and "):g[0]??"",h=y&&T?`(${y}) and (${T})`:y||T;return(await pt(n.getRecords,t.appId,h,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records}let R=o&&c&&e.joins.length===0&&e.where!==null&&Wc.get(e)?.capability==="EXACT_PUSHDOWN"&&!_t(e.where)?j(e.where):"",m=(await pt(n.getRecords,t.appId,R,p,{parallel:i,maxRecords:r,onLimit:a,onTruncate:f})).records;return LE(m,t.subtableCode)}var mr=50;function MI(e){let t=be(e);return t!==null?JSON.stringify(t):e}function Ec(e){return JSON.stringify(e)}function un(e,t){return JSON.stringify(e.map((n,r)=>t[r]?MI(n):n))}var yR={1:"CLIENT_CAPABILITY",2:"OPT_IN",3:"KEY_SCHEMA",4:"PLAIN_UPSERT",5:"EMPTY_KEY",6:"SOURCE_DUPLICATE"};function gR(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 ec(e,t,n){if(t.status==="ELIGIBLE")return` ${e}: ELIGIBLE\uFF08${e.includes("statement/data")?"\u6761\u4EF6 3\u301C6 \u3092":"6 \u6761\u4EF6\u3092\u3059\u3079\u3066"}\u6E80\u305F\u3059\uFF09`;if(t.status==="INELIGIBLE")return` ${e}: INELIGIBLE\uFF08\u6761\u4EF6 ${t.condition}: ${yR[t.condition]} \u2014 ${gR(t.condition,!1,n)}\uFF09`;let r=t.unknownConditions.map(({condition:o})=>o),i=t.unknownConditions.map(({condition:o})=>`\u6761\u4EF6 ${o}: ${yR[o]} \u2014 ${gR(o,!0,n,r)}`);return` ${e}: UNKNOWN\uFF08${i.join("; ")}\uFF09`}function xI(e,t){if(t==="DOCUMENT_ONLY")return[ec("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=[ec("native UPSERT eligibility",e.execution,t)];return(e.conditions[1].state==="FAIL"||e.conditions[2].state==="FAIL")&&n.push(ec("native UPSERT statement/data eligibility",e.statement,t)),n}function kI(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPSERT"||t.type==="UPSERT_SELECT"?t:null}function FI(e,t,n){let r=null;if(e.type==="UPSERT")try{r=np(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:Ar.has(e)},fieldInfos:t,rowKeyValues:r})}async function Rm(e,t,n){let r=kI(e);if(!r)return[];let i=await $I(r.appId,t);return xI(FI(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(f=>f!=="")),l=null;if(a!==null&&t!==void 0&&r){let p=new Set;l=!0;for(let f of a){let R=un([...f],[n.fieldType==="NUMBER"]);if(p.has(R)){l=!1;break}p.add(R)}}let c=(p,f)=>({state:p===null?"UNKNOWN":p?"PASS":"FAIL",reason:f}),d={1:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"client capability is not applicable on this surface"}:c(e.clientCapability,"client does not provide upsertRecords"),2:e.surface==="DOCUMENT_ONLY"?{state:"NOT_APPLICABLE",reason:"native setting is not applicable on this surface"}:c(e.enabled,"native UPSERT is disabled"),3:c(i,"update key schema is not a single unique text or number field"),4:c(o,"statement is not a plain UPSERT"),5:c(s,"source contains an empty update key"),6:c(l,"source contains duplicate update keys")},u=p=>{let f=p.find(E=>d[E].state==="FAIL");if(f!==void 0)return{status:"INELIGIBLE",condition:f,reason:d[f].reason};let R=p.filter(E=>d[E].state==="UNKNOWN").map(E=>({condition:E,reason:d[E].reason}));return R.length>0?{status:"UNKNOWN",unknownConditions:R}:{status:"ELIGIBLE"}};return{conditions:d,execution:u([1,2,3,4,5,6]),statement:u([3,4,5,6])}}function eo(e){return"upsertRecords"in e&&typeof e.upsertRecords=="function"}function jc(e,t,n,r,i){return{surface:"EXECUTION",clientCapability:eo(t),enabled:OR(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:Ar.has(e)},fieldInfos:r,rowKeyValues:i}}var us=class extends Error{constructor(){super("NativeUpsertResponseError: upsertRecords returned an invalid response."),this.name="NativeUpsertResponseError"}};function mm(e,t){if(!e||!Array.isArray(e.records)||e.records.length!==t)throw new us;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 us;i.operation==="INSERT"?n+=1:r+=1}return{insertedCount:n,updatedCount:r}}async function ym(e,t,n,r,i,o){if(n.length===0)return{type:"UPSERT",insertedCount:0,updatedCount:0};if(o.confirm&&!await o.confirm(n.length,"UPDATE"))throw new Re("UPDATE",n.length);let a=0,s=0;for(let l=0;l<n.length;l+=100){let c=n.slice(l,l+100).map((p,f)=>{let R={};for(let[E,m]of Object.entries(p))E!==t&&(R[E]=m);return{updateKey:{field:t,value:r[l+f][0]},record:R}}),d=await i.upsertRecords({app:e,upsert:!0,records:c}),u=mm(d,c.length);a+=u.insertedCount,s+=u.updatedCount}return{type:"UPSERT",insertedCount:a,updatedCount:s}}function Sr(e,t){let n=e.raw.get(Ec(t));if(n!==void 0)return n;if(e.numericKey.some(Boolean))return e.normalized.get(un(t,e.numericKey))}async function Tr(e,t,n,r,i,o,a){let s=i.maxRecords??1e4,l=i.fetchParallel??1,c=t.map(y=>o.get(y)==="NUMBER"),d={raw:new Map,normalized:new Map,numericKey:c,...a?{snapshots:new Map}:{}},u=(y,g,T)=>{let h=y.get(g);(h===void 0||T>h)&&y.set(g,T)},p=(y,g)=>{u(d.raw,Ec(y),g),c.some(Boolean)&&u(d.normalized,un(y,c),g)},f=new Set,R=[],E=new Set;for(let y of n){let g=Ec(y);E.has(g)||(E.add(g),y.some(T=>T==="")?R.push(y):f.add(y[0]))}let m=a?[...new Set(["$id",...t,...a])]:["$id",...t];for(let y of to([...f],mr)){let g=`${t[0]} in (${y.map(Yi).join(",")})`,T=await Ge(r.getRecords,e,g,m,{maxRecords:s,parallel:l});for(let h of T){let I=Number(h.$id?.value);Number.isFinite(I)&&(d.snapshots?.set(I,h),p(t.map(N=>zc(h[N]?.value)),I))}}for(let y of R){let g=t.map((I,N)=>`${I} = ${Yi(y[N])}`).join(" and "),T=a?[...new Set(["$id",...a])]:["$id"],h=await Ge(r.getRecords,e,g,T,{maxRecords:s,parallel:l});if(h.length!==0){for(let I of h){let N=Number(I.$id?.value);Number.isFinite(N)&&d.snapshots?.set(N,I)}p(y,KI(h))}}return d}function KI(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 zc(e){return typeof e=="string"?e:e==null?"":String(e)}function Yi(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function to(e,t){let n=[];for(let r=0;r<e.length;r+=t)n.push(e.slice(r,r+t));return n}var GI=6,ts=Ta*GI;async function gm(e,t,n,r,i,o,a,s,l,c,d=null,u,p=""){if(t.type!=="INNER"||!t.table.alias||t.table.subtableCode)return null;let f=t.on.left.tableAlias,R=t.on.right.tableAlias;if(!f||!R)return null;let E,m,y;if(f===t.table.alias&&R!==t.table.alias)E=R,m=t.on.right.field,y=t.on.left.field;else if(R===t.table.alias&&f!==t.table.alias)E=f,m=t.on.left.field,y=t.on.right.field;else return null;let g=n.get(E);if(!g)return null;let T=[e.from,...e.joins.map(A=>A.table)].find(A=>ce(A)===E),h=(await Q(t.table.appId,r,l)).find(A=>A.code===Ee(t.table,y)),I=h?ke(h,t.table.appId):nt(y),N;if(T?.cteName!==null&&T?.cteName!==void 0)N=c?.get(T.cteName)?.columnMeta?.get(m);else if(T){let A=(await Q(T.appId,r,l)).find(w=>w.code===Ee(T,m));N=A?ke(A,T.appId):nt(m)}let v=[],P=!1;for(let A of g){let w=A[m]?.value,M=zc(w);(w==null||M.length===0)&&(P=!0),v.push(M)}let x=du({fieldType:I?.fieldType,sourceSemantics:N?.semantics,sourceRowCount:g.length,values:v,hasEmptyValue:P,maxInKeys:ts});if(x.kind==="EMPTY_SOURCE")return[];if(x.kind==="FALLBACK"){if(x.reason==="JOIN_KEY_LIMIT_EXCEEDED"){let A=new Set(v).size;s.add(`JOIN\u30AD\u30FC\u304C ${A} \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${ts} \u4EF6\uFF09\u3002`)}return null}if(x.kind==="RANGE_CANDIDATE")return null;let U=pu(x,y,Yi);if(U.length===0)return s.add(`JOIN\u30AD\u30FC\u304C 0 \u4EF6\u306E\u305F\u3081 ON \u6700\u9069\u5316\u3092\u30B9\u30AD\u30C3\u30D7\u3057\u3001JOIN\u5148\u3092\u5168\u4EF6\u53D6\u5F97\u3057\u307E\u3059\uFF08\u4E0A\u9650 ${ts} \u4EF6\uFF09\u3002`),null;let C=Rn(e,t.table,u),D=A=>{s.add(`\u53D6\u5F97\u4E0A\u9650\uFF08${A} \u4EF6\uFF09\u306B\u9054\u3057\u305F\u305F\u3081\u3001${A} \u4EF6\u3067\u6253\u3061\u5207\u3063\u3066\u8868\u793A\u3057\u3066\u3044\u307E\u3059\u3002`),_c(r,t.table.appId)},b=[],_=new Set;for(let A of U){let M=[d!==null?j(d):"",p].filter(F=>F!=="").reduce((F,W)=>`(${F}) and (${W})`,A),O=await pt(r.getRecords,t.table.appId,M,C,{parallel:o,maxRecords:i,onLimit:a,onTruncate:D});for(let F of O.records){let W=`${F.$id?.value??""}:${JSON.stringify(F)}`;_.has(W)||(_.add(W),b.push(F))}}return b}var Rc=new Map,mc=new Map,yc=new Map,cs=new Map,gc=new Map,hc=new Map;function hm(e){Rc.delete(e),mc.delete(e),yc.delete(e),cs.delete(e),gc.delete(e),hc.delete(e)}function Fn(e,t,n){return e.get(t)?.get(n)}function Ir(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=Fn(cs,n,e);if(r)return r;let i=t.getFields(e);return Ir(cs,n,e,i),i}async function $I(e,t){let n=Fn(cs,t,e);return n?await n:null}async function Pt(e,t,n){let r=Fn(hc,n,e);if(r)return r;let i=t.getNumberPrecision(e);return Ir(hc,n,e,i),i}async function hs(e,t,n){let r=Fn(gc,n,e);if(r)return r;let i=t.getProcessStatuses(e);return Ir(gc,n,e,i),i}async function qc(e,t,n){let r=await hs(e,t,n);return r.enable&&r.states!==null?new Map(r.states.map(i=>[i.name,i.index])):void 0}async function Ie(e,t,n){let r=Fn(Rc,n,e);if(r)return r;let i=await Q(e,t,n),o=new Map(i.map(a=>[a.code,a.fieldType]));return Ir(Rc,n,e,o),o}async function Ac(e,t,n){let r=Fn(mc,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 Ir(mc,n,e,o),o}async function BI(e,t,n){let r=await Ac(e,t,n);return new Map([...r.entries()].map(([i,o])=>[i,new Set(o.keys())]))}async function hR(e,t,n){let r=Fn(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 Ir(yc,n,e,o),o}function VI(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 WI(e,t,n,r){let i=VI(e);if(i.length===0)return new Map;let o=[e.from,...e.joins.map(u=>u.table)],a=new Set,s=new Map(await Promise.all([...new Set(o.filter(u=>u.cteName===null).map(u=>u.appId))].map(async u=>{let p=await Q(u,t,n);return[u,new Map(p.map(f=>[f.code,f]))]}))),l=u=>{if(u.tableAlias!==null){if(u.tableAlias==="_p"&&e.from.subtableCode&&e.from.cteName===null){let E=s.get(e.from.appId)?.get(u.field);return E?ke(E,e.from.appId):void 0}let f=o.find(E=>ce(E)===u.tableAlias);if(!f)return;if(f.cteName!==null)return r?.get(f.cteName)?.columnMeta?.get(u.field);let R=s.get(f.appId)?.get(Ee(f,u.field));return R?ke(R,f.appId):nt(u.field)}if(e.joins.length===0){if(e.from.cteName!==null)return r?.get(e.from.cteName)?.columnMeta?.get(u.field);let f=s.get(e.from.appId)?.get(Ee(e.from,u.field));return f?ke(f,e.from.appId):nt(u.field)}let p=o.flatMap(f=>{if(f.cteName!==null){let m=r?.get(f.cteName),y=m?.columns.includes(u.field)?m.columnMeta?.get(u.field):void 0;return y?[y]:[]}let R=s.get(f.appId)?.get(Ee(f,u.field)),E=R?ke(R,f.appId):nt(u.field);return E?[E]:[]});return p.length>1&&a.add(u.field),p.length===1?p[0]:void 0},c=new Map;for(let u of e.columns){if(!("alias"in u)||!u.alias)continue;let p;if(u.type==="FIELD")p=l(Fe(u.field));else if(u.type==="ARITH_COL"||u.type==="ARITH_AGG_COL")p=ee("number");else if(u.type==="WINDOW_COL")p=am(u,l);else if(u.type==="GROUPING_COL")p=ee("number");else if(u.type==="LITERAL_COL"||u.type==="SCALAR_VALUE_COL")p=ee("string");else if(u.type==="STRFUNC_COL")p=Un(u.expr);else if(u.type==="SCALAR_SUBQUERY_COL")p=tt();else if(u.type==="CASE_COL"){let f=u.expr.branches.map(R=>hr(R.result,l));u.expr.elseResult&&f.push(hr(u.expr.elseResult,l)),p=ys(f)}else u.type==="AGGREGATE"&&(u.func==="MIN"||u.func==="MAX"||u.func==="MODE"?u.arg.type!=="WILDCARD"&&(p=Mn(u.arg,l)):p=u.func==="GROUP_CONCAT"?ee("string"):ee("number"));p?.semantics&&c.set(u.alias,p.semantics)}let d=new Map;for(let u of i){let p=c.get(u)??l(Fe(u))?.semantics;if(!p){let R=Fe(u);R.tableAlias===null&&a.has(R.field)&&d.set(u,ne({fieldType:"KSQL_AMBIGUOUS"}));continue}let f=p;if(p.fieldType==="STATUS"&&p.source&&e.orderMode!=="KINTONE_NATIVE"){let R=await hs(p.source.appId,t,n);R.enable&&R.states!==null&&(f={...p,optionOrder:new Map(R.states.map(E=>[E.name,E.index]))})}d.set(u,f)}return d}async function ji(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([HI(e,t,n),YI(e,t,n),WI(e,t,n,r)]);return{optionOrders:o,sortKinds:a,semantics:s}}async function HI(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 Ac(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await Ac(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}async function YI(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 hR(a.appId,t,n);for(let[l,c]of s.entries())r.has(l)||r.set(l,c)}for(let a of i){if(a.cteName!=null||!a.alias)continue;let s=await hR(a.appId,t,n);for(let[l,c]of s.entries())r.set(`${a.alias}.${l}`,c)}return r}function Jc(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 jI=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE"]);function zI(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||jI.has(o.fieldType))throw new Error(`ArgumentError: DML target field ${i} is not writable (${o.fieldType}).`)}}async function _e(e,t,n,r){let i=await Q(e,n,r);return zI(e,t,i),i}async function $e(e,t,n,r,i){let o=new Map(n.map(a=>[a.code,a]));return t.some(a=>o.get(a)?.fieldType==="NUMBER")?Pt(e,r,i):void 0}function it(e,t,n,r){let i=new Map(n.map(o=>[o.code,o]));e.forEach((o,a)=>{for(let s of t){let l=i.get(s),c=o[s]?.value??"",d=We(c,l,r);if(!d.ok)throw new Error(`DmlValidationError: ${d.code} ${d.message} (row=${a+1}, field=${s})`);let u=["USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT"].includes(l.fieldType)&&Array.isArray(c)&&c.every(p=>typeof p=="object"&&p!==null&&"code"in p);o[s]={value:u?c:d.value}}})}async function qI(e,t,n,r,i){let o=await _e(e.appId,e.fields,t,r),a=await ui({statement:e,fieldInfos:o,dmlMaxRows:ot(n.dmlMaxRows,"dmlMaxRows",Wt),dmlMaxSubtableRows:ot(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),statementNumber:i,loadNumberPrecision:()=>Pt(e.appId,t,r)});return ww(e,a,o)}async function JI(e,t,n,r,i){let{fieldInfos:o,prepared:a}=await Am(e,t,n,r,i);return Nw(e,a,o)}async function Am(e,t,n,r,i){let o=await _e(e.appId,e.fields,t,r),a=new Map(o.map(m=>[m.code,m.fieldType])),s=np(e),l=new Set;for(let m of s){let y=un(m,e.keyFields.map(g=>a.get(g)==="NUMBER"));if(l.has(y))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");l.add(y)}let c=await Tr(e.appId,e.keyFields,s,t,n,a),d=s.map(m=>Sr(c,m)),u=new Map,p=[...new Set(d.filter(m=>m!==void 0))],f=["$id","$revision",...o.filter(m=>!m.inSubtable&&m.fieldType!=="FILE").map(m=>m.code)];for(let m of to(p,100)){let y=await t.getRecords({app:e.appId,query:`$id in (${m.join(",")}) limit 500`,fields:[...new Set(f)]});for(let g of y.records){let T=Number(g.$id?.value);Number.isSafeInteger(T)&&T>0&&u.set(T,g)}}let R=d.map((m,y)=>({sourceRowIndex:y,...m===void 0?{}:{targetId:m,snapshot:u.get(m)}})),E=await Ff({statement:e,matches:R,fieldInfos:o,dmlMaxRows:ot(n.dmlMaxRows,"dmlMaxRows",Wt),dmlMaxSubtableRows:ot(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),statementNumber:i,loadNumberPrecision:()=>Pt(e.appId,t,r)});return{fieldInfos:o,prepared:E}}async function XI(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let i=await _e(e.appId,e.fields,t,r),o=await ui({statement:e,fieldInfos:i,dmlMaxRows:ot(n.dmlMaxRows,"dmlMaxRows",Wt),dmlMaxSubtableRows:ot(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),loadNumberPrecision:()=>Pt(e.appId,t,r)}),a=su(o);if(n.confirm&&!await n.confirm(o.guards.parentRows,"INSERT",{statementIndex:0,statementCount:1,statementType:"INSERT",targetAppId:e.appId,applyDetail:As(a),applyDiagnostic:a}))throw new Re("INSERT",o.guards.parentRows);let s=await Vf(o,t,a);return{...s,diagnostic:Qe(a,s)}}async function QI(e,t,n,r){if(n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");let{prepared:i}=await Am(e,t,n,r,1),o=lu(i);if(n.confirm){let s=As(o);if(!await n.confirm(i.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPSERT",targetAppId:e.appId,applyDetail:s,applyDiagnostic:o}))throw new Re("UPDATE",i.guards.parentRows)}let a=await Wf(i,t,o);return{type:"UPSERT",insertedCount:a.insertedCount,updatedCount:a.updatedCount,successfulChunks:a.successfulChunks,successfulParents:a.successfulParents,successfulInsertChunks:a.successfulInsertChunks,successfulUpdateChunks:a.successfulUpdateChunks,nonTransactional:a.nonTransactional,diagnostic:Qe(o,a)}}function ZI(e,t){let n=new Map;for(let r of[...e,...t]){let i=n.get(r.table);n.set(r.table,i?{table:r.table,patchRows:i.patchRows+r.patchRows,appendRows:i.appendRows+r.appendRows,removeRows:i.removeRows+r.removeRows}:{...r})}return[...n.values()]}function As(e,t=!0){let n=e.branches.find(p=>p.branch==="insert"),r=e.branches.find(p=>p.branch==="update"),i=e.branches.flatMap(p=>p.targets),o=ZI(n?za(n):[],r?za(r):[]),a=ew(i),s=e.branches.reduce((p,f)=>p+(f.parentRows??0),0),l=i.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0),c=o.reduce((p,f)=>p+f.appendRows,0),d=o.reduce((p,f)=>p+f.removeRows,0),u={kind:e.statementKind==="UPDATE"?"APPLY_PATCH":e.statementKind==="INSERT"?"APPLY_INSERT":"APPLY_UPSERT",parentRows:s,changedSubtableRows:l,addedSubtableRows:c,tables:o,...a.length>0?{multiValues:a}:{},deletedRows:d,deletedParentRows:e.branches.reduce((p,f)=>p+(f.deletedParentRows??0),0),revisionRequired:e.branches.some(p=>p.guards.revisionRequired),irreversible:!0,retryOnRevisionConflict:!1,...t?{nonTransactional:!0,partialSuccessPossible:!0}:{}};if(e.statementKind==="INSERT"&&n)return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(p=>p.targetKind==="SUBTABLE").reduce((p,f)=>p+(f.changedCount??0),0)};if(e.statementKind==="UPSERT"&&n&&r){let p=za(n),f=za(r);return{...u,insertedParentRows:n.parentRows??0,initialSubtableRows:n.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),updatedParentRows:r.parentRows??0,applyBranches:{insert:{parentRows:n.parentRows??0,initialSubtableRows:p.reduce((R,E)=>R+E.appendRows,0),tables:p},update:{parentRows:r.parentRows??0,changedSubtableRows:r.targets.filter(R=>R.targetKind==="SUBTABLE").reduce((R,E)=>R+(E.changedCount??0),0),addedSubtableRows:f.reduce((R,E)=>R+E.appendRows,0),tables:f,deletedRows:f.reduce((R,E)=>R+E.removeRows,0),deletedParentRows:r.deletedParentRows??0}}}}return u}function za(e){return e.targets.filter(t=>t.targetKind==="SUBTABLE").map(t=>{let n=vn(t,"APPEND"),r=vn(t,"REMOVE");return{table:t.field,patchRows:(t.changedCount??0)-n-r,appendRows:n,removeRows:r}})}function vn(e,t){return e.operations.filter(n=>n.kind===t).reduce((n,r)=>n+(r.count??0),0)}function ew(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:vn(n,"ADD"),removedValues:vn(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 Xc(e,t,n,r,i,o){if(e.type==="INSERT"&&e.applyBlocks?.length)return qI(e,t,n,r,o);if(e.type==="UPSERT"&&(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length))return JI(e,t,n,r,o);if(e.type==="UPDATE"&&e.applyBlocks?.length){let a=await bm(e,t,n,r,o);if(a.type!=="VALIDATION")throw new Error("InternalError: APPLY VALIDATE ONLY returned a mutation result.");return a}return(await Qc(e,t,n,r,i,o)).result}var ps=class extends Error{constructor(n,r){super(`RejectLimitExceededError: ${n}`);this.diagnostic=r;this.name="RejectLimitExceededError"}};async function Qc(e,t,n,r,i,o,a=!0,s=!0){let l=e.type==="UPDATE"?"UPDATE":e.type.startsWith("UPSERT")?"UPSERT":"INSERT",c=e.type==="UPDATE"?["$id",...e.assignments.map(_=>_.field)]:[...e.fields];if(new Set(c).size!==c.length)throw new Error("ArgumentError: DML target fields contain duplicates.");let d=e.type==="UPDATE"?e.assignments.map(_=>_.field):e.fields,u=await _e(e.appId,d,t,r);e.type==="UPDATE"&&await sn(e,t,r);let p=new Map(u.map(_=>[_.code,_])),f=await $e(e.appId,d,u,t,r),R=At(u,c),E=vE(R),m=(await tw(e,l,t,n,r,i,p,e.type==="UPDATE"?E:void 0)).sort((_,A)=>_.rowNumber-A.rowNumber),y=m.filter(_=>_.mode==="update"),g=e.type==="UPDATE"?rw:e.type.startsWith("UPSERT")?_=>iw(_,t,n.maxRecords??1e4):void 0,T=n.loadUpdateModeSnapshots??g,h=y.length>0&&T!==void 0,I=new Map;if(h){Ql(y,d,u);let _=await T({appId:e.appId,candidates:y,fields:E}),A=new Map;for(let w of y){if(w.targetId===void 0)throw new Error(`InternalError: update-mode validation candidate has no targetId (row=${w.rowNumber}).`);let M=_.get(w.targetId);if(!M)throw new Error(`InternalError: update-mode snapshot is missing for record ${w.targetId}.`);let O=DE(M,w.record??{});A.set(w.rowNumber,O)}f===void 0&&[...A.values()].some(w=>An(w,R))&&(f=await Pt(e.appId,t,r));for(let w of y){let M=A.get(w.rowNumber);if(!M)throw new Error(`InternalError: validation post-image is missing for row ${w.rowNumber}.`);I.set(w.rowNumber,Sn(M,R,f,o,w.rowNumber,l))}}let N=Zl(m,l,c,d,u,o,f,e.checkGroups??[],a,s,{validateUpdateBuiltIns:!h}),{errors:v,invalidRows:P,invalidRowNumbers:x}=N;if(h){let _=new Map(N.candidateResults.map(A=>[A.rowNumber,A]));v=[],x=new Set;for(let A of m){let w=_.get(A.rowNumber);if(!w)throw new Error(`InternalError: validation detail is missing for row ${A.rowNumber}.`);if(A.mode==="create"){let F=[...w.preErrors,...w.builtInErrors,...w.checkErrors];v.push(...F),F.length>0&&x.add(A.rowNumber);continue}let M=I.get(A.rowNumber);if(!M)throw new Error(`InternalError: prepared post-image validation is missing for row ${A.rowNumber}.`);let O=UE({rowNumber:A.rowNumber,setFields:d,normalizedPostImage:M.normalizedRecord,preErrors:w.preErrors,postImageErrors:M.errors,checkErrors:w.checkErrors});A.record=O.writeRecord,v.push(...O.errors);for(let F of O.invalidRowNumbers)x.add(F)}P=x.size}let U=[...c,...lr],C={type:"VALIDATION",operation:l,validatedRows:m.length,validRows:m.length-P,invalidRows:P,errorCount:v.length,columns:U,errors:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:e.onErrorSkip&&e.errorTable?{errTable:e.errorTable}:{}},D=new Map;for(let _ of c){if(_==="$id"){D.set(_,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ne({fieldType:"RECORD_NUMBER"})});continue}let A=p.get(_);A&&D.set(_,ke(A,e.appId))}let b=new Set(["$err_statement","$err_row"]);for(let _ of lr)D.set(_,ee(b.has(_)?"number":"string"));return kn.set(C,D),{result:C,candidates:m,invalidRowNumbers:x,columnMeta:D}}async function Sc(e,t,n,r,i,o){let a=await Qc(e,t,n,r,i,o),s=e.errorTable;if(!s)throw new Error("ArgumentError: ON ERROR SKIP requires INTO #error_table.");Ct(i,s,a.result.columns,a.result.errors,n.tempTableMaxRows??rt,a.columnMeta);let l=e.rejectLimit??null;if(l!==null&&a.result.invalidRows>l)throw new ps(`rejected rows (${a.result.invalidRows}) exceed REJECT LIMIT (${l}).`,a.result);let c=a.candidates.filter(R=>!a.invalidRowNumbers.has(R.rowNumber));if(n.confirm){let R=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(!await n.confirm(c.length,R))throw new Re(R,c.length)}let d={affectedRows:c.length,skippedRows:a.result.invalidRows,rejectLimit:l,errTable:s};if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let R=[];for(let E=0;E<c.length;E+=100){let m=await t.postRecords({app:e.appId,records:c.slice(E,E+100).map(y=>y.record)});R.push(m.ids)}return{type:"INSERT",createdIds:R,insertedCount:R.flat().length,...d}}if(e.type==="UPDATE"){let R=c.map(E=>{if(E.targetId===void 0)throw new Error("InternalError: prepared UPDATE candidate has no targetId.");return{id:E.targetId,record:E.record}});for(let E=0;E<R.length;E+=100)await t.putRecords({app:e.appId,records:R.slice(E,E+100)});return{type:"UPDATE",updatedCount:R.length,...d}}let u=c.filter(R=>R.mode==="create"),p=c.filter(R=>R.mode==="update").map(R=>{if(R.targetId===void 0)throw new Error("InternalError: prepared UPSERT candidate has no targetId.");return{id:R.targetId,record:R.record}}),f=0;for(let R=0;R<u.length;R+=100){let E=await t.postRecords({app:e.appId,records:u.slice(R,R+100).map(m=>m.record)});f+=E.ids.length}for(let R=0;R<p.length;R+=100)await t.putRecords({app:e.appId,records:p.slice(R,R+100)});return{type:"UPSERT",insertedCount:f,updatedCount:p.length,...d}}async function tw(e,t,n,r,i,o,a,s){if(e.type==="UPDATE")return Sm(e,n,r,i,o,s);let l,c,d,u,p;if(e.type==="INSERT"||e.type==="UPSERT")AR(e,e.fields),p=new Map(e.fields.map(h=>[h,a.get(h)?.fieldType??""])),xn(e,p),l=e.values.map(h=>h.map((I,N)=>I.type==="CASE_VALUE"?xt(I.expr,{},a.get(e.fields[N])?.fieldType,ae(r)):I));else{let h=await Ss.materialize(e,n,r,i,o,[...a.values()]),I=(e.checkGroups?.length??0)>0;if(h.columns.length<e.fields.length||!I&&h.columns.length!==e.fields.length)throw new Error(`SELECT \u306E\u5217\u6570\uFF08${h.columns.length}\uFF09\u3068 DML \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093`);if(I&&new Set(h.columns).size!==h.columns.length)throw Le("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");AR(e,h.columns),c=h.rows,d=h.importPresence,u=h.importRowErrors;let N=h.columnMeta;p=new Map(h.columns.map(v=>{let P=N?.get(v),x=P?.fieldType??(P?.semantics?.compareMode==="number"||P?.sortKind==="number"?"NUMBER":"SINGLE_LINE_TEXT");return[v,x]})),xn(e,p),l=h.rows.map(v=>h.columns.map(P=>v[P]??""))}let f=l.map((h,I)=>({rowNumber:I+1,operation:t,mode:"create",payload:new Map(e.fields.flatMap((N,v)=>d&&!d[I]?.has(N)?[]:[[N,h[v]]])),preErrors:[...u?.[I]??[]],record:{},evaluationRow:c?.[I]??Object.fromEntries(e.fields.map((N,v)=>[N,Xe(h[v])])),evaluationFieldTypes:p}));if(e.type!=="UPSERT"&&e.type!=="UPSERT_SELECT")return f;for(let h of e.keyFields)if(!e.fields.includes(h))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${h}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let R=new Map([...a].map(([h,I])=>[h,I.fieldType])),E=f.map(h=>e.keyFields.map(I=>Xe(h.payload.get(I)))),m=e.keyFields.map(h=>R.get(h)==="NUMBER"),y=new Map;for(let h of E){let I=un(h,m);y.set(I,(y.get(I)??0)+1)}let g=Ar.has(e);if(g&&[...y.values()].some(h=>h>1))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");let T=await Tr(e.appId,e.keyFields,E,n,r,R);return f.forEach((h,I)=>{let N=E[I],v=Sr(T,N);h.mode=v===void 0?"create":"update",v!==void 0&&(h.targetId=v),e.keyFields.forEach((P,x)=>{N[x]===""&&h.preErrors.push({field:P,code:"ERR_KEY_EMPTY",message:`UPSERT \u30AD\u30FC ${P} \u306F\u7A7A\u306B\u3067\u304D\u307E\u305B\u3093`})}),!g&&(y.get(un(N,m))??0)>1&&h.preErrors.push({field:e.keyFields[0],code:"ERR_KEY_DUP_SOURCE",message:"UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059"})}),f}function Zc(e){return e.checkGroups?ar(e.checkGroups):[]}function AR(e,t){let n=new Set(t);for(let r of Zc(e)){if(r.tableAlias!==null)throw Le(`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 Le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${r.field} \u306F\u8A55\u4FA1\u884C\u306B\u5B58\u5728\u3057\u307E\u305B\u3093`)}}var nw=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE","KSQL_ARRAY"]);function xn(e,t){if(e.checkGroups)for(let n of af(e.checkGroups)){let r=n.tableAlias?`${n.tableAlias}.${n.field}`:n.field,i=t.get(r)??t.get(n.field);if(nw.has(i??""))throw Le(`CHECK \u306E\u6BD4\u8F03\u3067\u306F ${i} \u30D5\u30A3\u30FC\u30EB\u30C9 ${r} \u3092\u4F7F\u7528\u3067\u304D\u307E\u305B\u3093`)}}async function Sm(e,t,n,r,i,o){if(e.from)return aw(e,e.from,t,n,r,i,o);await _m(e.assignments,t,n,r);let a=await Ie(e.appId,t,r),s=Tm(e,a);xn(e,Tc(a,e.appId));let l,c=new Map,d=new Map;if(sa(e)){let u=Ml(e),p=[...new Set([...u.fields,...s,...o??[]])],f=await pt(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=ns(f.records),c=d,l=kl(e,f.records,a,ae(n)).flatMap(R=>R.records)}else{let u=ei(e);if(s.length>0){let p=[...new Set(["$id",...s,...o??[]])],f=await pt(t.getRecords,u.app,u.query,p,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=ns(f.records),c=d,l=ti(e,[...c.keys()],a).flatMap(R=>R.records)}else if(o){let p=await pt(t.getRecords,u.app,u.query,[...o],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"});d=ns(p.records),l=ti(e,[...d.keys()],a).flatMap(f=>f.records)}else{let p=await Ei(t.getRecords,u.app,u.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1});l=ti(e,p.ids,a).flatMap(f=>f.records)}}return l.sort((u,p)=>u.id-p.id).map((u,p)=>({rowNumber:p+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(u.id)],...e.assignments.map(f=>[f.field,u.record[f.field]?.value??""])]),preErrors:[],record:u.record,targetId:u.id,validationSnapshot:d.get(u.id),evaluationRow:ow(c.get(u.id),e.appId),evaluationFieldTypes:Tc(a,e.appId)}))}function ns(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 rw(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 iw(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 ct(`\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 to(r,100)){let s=await t.getRecords({app:e.appId,query:`$id in (${a.join(",")}) limit 500`,fields:[...new Set(e.fields)]});for(let l of s.records){let c=l.$id?.value,d=Number(c);if(!Number.isSafeInteger(d)||d<=0)throw new Error(`InternalError: invalid $id in UPSERT validation snapshot: ${String(c)}.`);if(!i.has(d))throw new Error(`InternalError: unexpected $id in UPSERT validation snapshot: ${d}.`);if(o.has(d))throw new Error(`InternalError: duplicate $id in UPSERT validation snapshot: ${d}.`);o.set(d,l)}}for(let a of r)if(!o.has(a))throw new Error(`InternalError: update-mode snapshot is missing for record ${a}.`);return o}function Tm(e,t){if(e.from)return[];let n=new Set;for(let r of Zc(e)){if(r.tableAlias!==null&&r.tableAlias.toLowerCase()!==`app${e.appId}`.toLowerCase())throw Le(`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 Le(`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 ow(e,t){if(!e)return{};let n=Gt(e,null);return Object.fromEntries([...Object.entries(n),...Object.entries(n).map(([r,i])=>[`APP${t}.${r}`,i])])}function Tc(e,t){return new Map([...e,...[...e].map(([n,r])=>[`APP${t}.${n}`,r]),["$id","RECORD_NUMBER"],[`APP${t}.$id`,"RECORD_NUMBER"]])}async function aw(e,t,n,r,i,o,a){let s=await Ym(e,t,n,i,o);xn(e,s.evaluationTypes);let l=await Im(e,t,n,r,i,o,a),c=await Ie(e.appId,n,i),d=Kl(e,l,c,ae(r)).flatMap(f=>f.records),u=new Map(l.map(f=>[Number(f.target.$id?.value),f])),p=a?ns(l.map(f=>f.target)):new Map;return d.sort((f,R)=>f.id-R.id).map((f,R)=>({rowNumber:R+1,operation:"UPDATE",mode:"update",payload:new Map([["$id",String(f.id)],...e.assignments.map(E=>[E.field,f.record[E.field]?.value??""])]),preErrors:[],record:f.record,targetId:f.id,validationSnapshot:p.get(f.id),evaluationRow:db(u.get(f.id),e.appId,t.alias),evaluationFieldTypes:s.evaluationTypes}))}var sw=mr,lw=new Set(["CHECK_BOX","MULTI_SELECT","USER_SELECT","ORGANIZATION_SELECT","GROUP_SELECT","FILE"]);async function Im(e,t,n,r,i,o,a){let s=await uw(e,t,n,i),l=await Ym(e,t,n,i,o),c=[...new Set(e.assignments.filter(I=>I.value.type==="SOURCE_FIELD").map(I=>I.value.type==="SOURCE_FIELD"?I.value.field:"").concat(l.sourceFields))],d=[...new Set([t.joinKeyField,...c])],u=await cw(t,d,c,n,r,i,o),p=new Map,f=new Map;for(let I of u){if(!Object.prototype.hasOwnProperty.call(I,t.joinKeyField))throw new Error(`ArgumentError: UPDATE ... FROM source column ${t.joinKeyField} does not exist.`);let N=SR(I[t.joinKeyField],s,"source");if(p.has(N))throw new Error(`ArgumentError: UPDATE ... FROM source has multiple rows for normalized key ${N}.`);p.set(N,I),f.set(N,String(I[t.joinKeyField]).trim())}if(p.size===0)return[];let R=r.maxRecords??1e4,E=[...new Set([...Pw(e),...l.targetFields,...a??[]])],m=t.targetFilter===null?"":ei({...e,from:null,where:t.targetFilter,checkGroups:void 0}).query,y=[],g=new Set,T=0;for(let I of to([...f.values()],sw)){let N=`${t.targetJoinField} in (${I.map(Yi).join(",")})`,v=m?`(${N}) and (${m})`:N,P=await pt(n.getRecords,e.appId,v,E,{maxRecords:R,parallel:r.fetchParallel??1,onLimit:"error"});if(T+=P.records.length,T>R)throw new ct(`\u53D6\u5F97\u4EF6\u6570\u304C\u4E0A\u9650\uFF08${R} \u4EF6\uFF09\u3092\u8D85\u3048\u307E\u3057\u305F\u3002WHERE \u53E5\u3067\u7D5E\u308A\u8FBC\u3080\u304B\u3001maxRecords \u3092\u5F15\u304D\u4E0A\u3052\u3066\u304F\u3060\u3055\u3044\u3002`);for(let x of P.records){let U=x.$id?.value;if(typeof U!="string"||U==="")throw new Error("ArgumentError: UPDATE ... FROM target record does not contain a valid $id.");g.has(U)||(g.add(U),y.push(x))}}let h=[];for(let I of y){let N=I[t.targetJoinField]?.value,v=SR(N,s,"target");if(v===null)continue;let P=p.get(v);P!==void 0&&h.push({target:I,source:P})}return h}async function uw(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 cw(e,t,n,r,i,o,a){if(e.cteName!==null){let d=a?.get(e.cteName);if(!d)throw new Error(`ArgumentError: temp table ${e.cteName} is not available.`);for(let u of t)if(!d.columns.includes(u))throw new Error(`ArgumentError: UPDATE ... FROM source column ${u} does not exist.`);return d.rows}let s=await Ie(e.appId,r,o),l=e.joinKeyField==="$id"?"RECORD_NUMBER":s.get(e.joinKeyField);if(l===void 0)throw new Error(`ArgumentError: UPDATE ... FROM source column ${e.joinKeyField} does not exist.`);if(e.joinKeyField!=="$id"&&l!=="SINGLE_LINE_TEXT"&&l!=="NUMBER")throw new Error(`ArgumentError: UPDATE ... FROM does not support source join field type ${l} (${e.joinKeyField}).`);for(let d of n){if(d!=="$id"&&!s.has(d))throw new Error(`ArgumentError: UPDATE ... FROM source column ${d} does not exist.`);let u=d==="$id"?"RECORD_NUMBER":s.get(d);if(lw.has(u??""))throw new Error(`ArgumentError: UPDATE ... FROM does not support source field type ${u} (${d}).`)}return(await pt(r.getRecords,e.appId,"",t,{maxRecords:i.maxRecords??1e4,parallel:i.fetchParallel??1,onLimit:"error"})).records.map(d=>Gt(d,null))}function SR(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=be(e);if(r===null)throw new Error(`ArgumentError: UPDATE ... FROM ${n} key must be a finite decimal: ${e}`);return JSON.stringify(r)}async function no(e,t,n,r,i){let o=await Qc(e,t,n,r,i,1,!1,!1);if(o.result.errors.length>0){let u=o.result.errors[0];throw new Error(`DmlValidationError: ${u.$err_code} ${u.$err_message} (row=${u.$err_row}, field=${u.$err_field})`)}let a=o.candidates,s=e.type.startsWith("INSERT")?"INSERT":"UPDATE";if(n.confirm&&a.length>0&&!await n.confirm(a.length,s))throw new Re(s,a.length);if(e.type==="INSERT"||e.type==="INSERT_SELECT"){let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100).map(R=>R.record)});u.push(f.ids)}return{type:"INSERT",createdIds:u,insertedCount:u.flat().length}}if(e.type==="UPDATE"){let u=a.map(p=>({id:p.targetId,record:p.record}));for(let p=0;p<u.length;p+=100)await t.putRecords({app:e.appId,records:u.slice(p,p+100)});return{type:"UPDATE",updatedCount:u.length}}let l=a.filter(u=>u.mode==="create"),c=a.filter(u=>u.mode==="update").map(u=>({id:u.targetId,record:u.record})),d=0;for(let u=0;u<l.length;u+=100){let p=await t.postRecords({app:e.appId,records:l.slice(u,u+100).map(f=>f.record)});d+=p.ids.length}for(let u=0;u<c.length;u+=100)await t.putRecords({app:e.appId,records:c.slice(u,u+100)});return{type:"UPSERT",insertedCount:d,updatedCount:c.length}}async function pw(e,t,n,r){if(e.applyBlocks?.length)return XI(e,t,n,r);if(e.checkGroups?.length)return no(e,t,n,r);if(e.subtableCode)return _w(e,t,n,r);let i=await _e(e.appId,e.fields,t,r),o=await $e(e.appId,e.fields,i,t,r),a=await Ie(e.appId,t,r),s=Zr(e,a,ae(n));it(s.flatMap(c=>c.records),e.fields,i,o);let l=[];for(let c of s){let d=await t.postRecords(c);l.push(d.ids)}return{type:"INSERT",createdIds:l,insertedCount:l.flat().length}}function dw(){return{type:"SELECT",distinct:!1,columns:[],from:{appId:0,alias:null,cteName:Me},joins:[],where:null,groupBy:[],having:null,orderMode:"CANONICAL",orderBy:[],limit:null,offset:null}}async function wm(e,t,n,r,i){if(!n.enableImport)throw new Error("UnsupportedError: IMPORT capability is disabled.");let o=KE(e.source.sourceName,n.importSource);if(e.targets?.some(u=>u.kind==="SUBTABLE")){if(!e.validateOnly&&!n.supportsImportConfirmDetail)throw new Error("UnsupportedError: IMPORT subtable mutation requires a surface that displays parent/table replacement and deletion detail; use VALIDATE ONLY/EXPLAIN.");if(e.source.kind==="CSV"){if(e.writeMode!=="UPDATE_RECORD_NUMBER"||!e.recordNumberSourceHeader)throw new Error("ArgumentError: CSV subtable replacement requires IMPORT UPDATE and MATCH RECORD NUMBER SOURCE.");if(!e.replaceSubtables?.length)throw new Error("ArgumentError: CSV subtable replacement requires REPLACE SUBTABLES (...).");let k=new Set(e.targets.filter(K=>K.kind==="SUBTABLE").map(K=>K.subtableCode));if(e.replaceSubtables.some(K=>!k.has(K)))throw new Error("ArgumentError: REPLACE SUBTABLES contains a table not declared in INTO.");for(let K of e.targets.filter(Y=>Y.kind==="SUBTABLE"))if(!K.rowIdSourceHeader||!e.replaceSubtables.includes(K.subtableCode))throw new Error(`ArgumentError: CSV subtable ${K.subtableCode} requires ROW ID SOURCE and REPLACE SUBTABLES declaration.`)}if(e.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=e.targets,p=await Q(e.appId,t,r),f=u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children),R=p.some(k=>f.includes(k.code)&&k.fieldType==="NUMBER")?await Pt(e.appId,t,r):void 0,E=await Va(o,new Map),m=e.source.kind==="JSON"?WE(e.source,E,u,n.maxRecords??1e4):HE(e.source,E,u,e.replaceSubtables??[],n.maxRecords??1e4,e.recordNumberSourceHeader),y=e.source.kind==="CSV"?"UPDATE":e.keyFields?"UPSERT":"INSERT",g=qE(m,u,p,R,y);if(e.source.kind==="CSV")return fw(e,m,g,p,t,n,i);Vu(g,e.rejectLimit);let T=[...new Set(u.flatMap(k=>k.kind==="FIELD"?[k.field]:k.children))],h=Hu(g.errors,T),I=[...T,...Wu],N=g.invalidParentRows.size,v={preflight:"ACTUAL_DATA",parents:{total:g.parents.length,valid:g.parents.length-N,invalid:N,mutationCandidates:g.parents.filter(k=>k.valid).length},tables:Object.fromEntries(g.tableCounts),writesKintone:!1},P={type:"VALIDATION",operation:y,validatedRows:g.parents.length,validRows:g.parents.length-N,invalidRows:N,errorCount:h.length,columns:I,errors:h,importDetail:v,...e.validationErrorTable?{errTable:e.validationErrorTable}:{}};if(e.validationErrorTable&&i&&Ct(i,e.validationErrorTable,I,h,n.tempTableMaxRows??rt,new Map),e.validateOnly)return P;if(XE(m),g.errors.length>0&&!e.onErrorSkip){let k=g.errors[0];throw new Error(`DmlValidationError: ${k.code} ${k.message} (row=${k.parentRow}, field=${k.field})`)}if(e.onErrorSkip){if(!i||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Ct(i,e.errorTable,I,h,n.tempTableMaxRows??rt,new Map)}let x=g.parents.filter(k=>k.valid),U=new Map(p.map(k=>[k.code,k.fieldType])),C=x.map(()=>{});if(e.keyFields){for(let L of e.keyFields)if(!e.fields.includes(L))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${L}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let k=e.keyFields.map(L=>U.get(L)==="NUMBER"),K=new Set,Y=x.map(L=>e.keyFields.map(V=>String(L.top[V]?.value??"")));for(let L of Y){let V=un(L,k);if(K.has(V))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(V)}let $=await Tr(e.appId,e.keyFields,Y,t,n,U);Y.forEach((L,V)=>{C[V]=Sr($,L)})}let D=u.filter(k=>k.kind==="SUBTABLE").map(k=>k.subtableCode),b=new Map,_=C.filter(k=>k!==void 0);for(let k of to([...new Set(_)],100)){let K=await t.getRecords({app:e.appId,query:`$id in (${k.join(",")}) limit 500`,fields:["$id","$revision",...D]});for(let Y of K.records){let $=Number(Y.$id?.value),L=Number(Y.$revision?.value);Number.isFinite($)&&b.set($,{id:$,...Number.isFinite(L)?{revision:L}:{},record:Y})}}let A=QE(x,C,b),w={kind:"IMPORT_JSON_SUBTABLE",rowIdPolicy:"DROP_AND_RENUMBER_ALL",parentsToWrite:A.length,insertedParents:A.filter(k=>k.mode==="INSERT").length,updatedParents:A.filter(k=>k.mode==="UPDATE").length,hasDeletes:A.some(k=>k.tables.some(K=>K.deleteRows>0)),parents:A.map(k=>({parentRow:k.parentRow,mode:k.mode,...k.targetId===void 0?{}:{targetId:k.targetId},tables:k.tables}))};if(A.length>0){if(!n.confirm)throw new Error("UnsupportedError: JSON IMPORT subtable mutation requires explicit confirmation detail approval.");if(!await n.confirm(A.length,e.keyFields?"UPDATE":"INSERT",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:w}))throw new Re(e.keyFields?"UPDATE":"INSERT",A.length)}let M=k=>new Map(Object.entries(k).map(([K,Y])=>[K,Y.value])),O=k=>JE(M(k.top),new Map([...k.subtables].map(([K,Y])=>[K,Y.map($=>({values:M($)}))]))),F=A.filter(k=>k.mode==="INSERT"),W=A.filter(k=>k.mode==="UPDATE"),G=[];for(let k=0;k<F.length;k+=100){let K=await t.postRecords({app:e.appId,records:F.slice(k,k+100).map(O)});G.push(K.ids)}for(let k=0;k<W.length;k+=100)await t.putRecords({app:e.appId,records:W.slice(k,k+100).map(K=>({id:K.targetId,...K.revision===void 0?{}:{revision:K.revision},record:O(K)}))});return e.keyFields?{type:"UPSERT",insertedCount:G.flat().length,updatedCount:W.length,affectedRows:A.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}:{type:"INSERT",createdIds:G,insertedCount:G.flat().length,affectedRows:A.length,skippedRows:g.invalidParentRows.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:w}}if(e.writeMode==="UPDATE_RECORD_NUMBER")return Ew(e,o,t,n,r,i);let a={appId:e.appId,fields:e.fields,select:dw(),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};Ar.set(s,l);let c=u=>(l.audit&&Object.assign(u,{importAudit:l.audit}),u);if(s.validateOnly){if(s.validationErrorTable&&!i)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");let u=await Xc(s,t,{...n,onLimitReached:"error"},r,i,1);return s.validationErrorTable&&i&&Ct(i,s.validationErrorTable,u.columns,u.errors,n.tempTableMaxRows??rt,kn.get(u)??new Map),c(u)}if(s.onErrorSkip){if(!i)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");let u=await(s.type==="UPSERT_SELECT",Sc(s,t,n,r,i,1));return c(u)}let d=await(s.type==="UPSERT_SELECT"?op(s,t,n,r,i):tp(s,t,n,r,i));return c(d)}async function fw(e,t,n,r,i,o,a){if(!e.recordNumberSourceHeader||!e.replaceSubtables?.length)throw new Error("InternalError: incomplete CSV subtable replacement AST.");ZE(t.records);let s=t.records.map(b=>b.recordNumberSourceValue??""),l=zu(s,e.recordNumberSourceHeader),c=[...e.replaceSubtables],d=[...new Set(r.filter(b=>!b.inSubtable&&b.fieldType==="SUBTABLE").map(b=>b.code))],u=await Ge(i.getRecords,e.appId,"",["$id","$revision",...d],{maxRecords:o.maxRecords??1e4,parallel:o.fetchParallel??1,onLimit:"error"}),p=new Map,f=new Map;for(let b of u){let _=Number(b.$id?.value),A=Number(b.$revision?.value);if(Number.isFinite(_)){p.set(_,{id:_,...Number.isFinite(A)?{revision:A}:{},record:b});for(let w of d){let M=b[w]?.value;if(Array.isArray(M)){for(let O of M)if(O.id){let F=f.get(O.id)??[];F.push({parentId:_,table:w}),f.set(O.id,F)}}}}}let R=l.normalized.map(b=>b===null?void 0:Number(b)),E=n.parents.map((b,_)=>{let A=[...b.errors];for(let M of l.errors[_])A.push({operation:"UPDATE",parentRow:b.parentRow,field:M.field,code:M.code,message:M.message,sourceValues:t.records[_].top});let w=R[_];return w!==void 0&&!p.has(w)&&A.push({operation:"UPDATE",parentRow:b.parentRow,field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${w} does not exist in APP${e.appId}`,sourceValues:t.records[_].top}),{...b,valid:A.length===0,errors:A}}),m=eR(t.records,E,R,p,f),y=m.flatMap(b=>[...b.errors]),g=new Set(m.filter(b=>!b.valid).map(b=>b.parentRow)),T={...n,parents:E,errors:y,invalidParentRows:g};Vu(T,e.rejectLimit);let h=m.filter(b=>b.valid),I=m.flatMap(b=>b.tables),N=(b,_)=>I.filter(A=>A.table===b).reduce((A,w)=>A+Number(w[_]),0),v=Object.fromEntries(c.map(b=>[b,{existingRows:N(b,"existingRows"),inputRows:N(b,"inputRows"),updateRows:N(b,"updateRows"),addRows:N(b,"addRows"),deleteRows:N(b,"deleteRows"),rowIdNotFound:N(b,"rowIdNotFound")}])),P={kind:"IMPORT_CSV_SUBTABLE_REPLACE",rowIdPolicy:"PRESERVE_EXISTING",parentsToWrite:h.length,insertedParents:0,updatedParents:h.length,hasDeletes:h.some(b=>b.tables.some(_=>_.deleteRows>0)),totalDeleteRows:h.flatMap(b=>b.tables).reduce((b,_)=>b+_.deleteRows,0),rowIdNotFound:h.flatMap(b=>b.tables).reduce((b,_)=>b+_.rowIdNotFound,0),invalidParents:g.size,parents:h.map(b=>({parentRow:b.parentRow,mode:"UPDATE",targetId:b.targetId,tables:b.tables}))},x=[...new Set(e.targets.flatMap(b=>b.kind==="FIELD"?[b.field]:b.children))],U=Hu(y,x),C=[...x,...Wu];if(e.validateOnly){if(e.validationErrorTable&&!a)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&a&&Ct(a,e.validationErrorTable,C,U,o.tempTableMaxRows??rt,new Map),{type:"VALIDATION",operation:"UPDATE",validatedRows:E.length,validRows:E.length-g.size,invalidRows:g.size,errorCount:U.length,columns:C,errors:U,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},importDetail:{preflight:"ACTUAL_DATA",parents:{total:E.length,valid:h.length,invalid:g.size,mutationCandidates:h.length},tables:v,rowIdPolicy:"PRESERVE_EXISTING",rowIdNotFound:P.rowIdNotFound,writesKintone:!1}}}if(y.length&&!e.onErrorSkip){let b=y[0];throw new Error(`DmlValidationError: ${b.code} ${b.message} (row=${b.parentRow}, field=${b.field})`)}if(e.onErrorSkip){if(!a||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch and INTO error table.");Ct(a,e.errorTable,C,U,o.tempTableMaxRows??rt,new Map)}if(h.length){if(!o.supportsImportConfirmDetail||!o.confirm)throw new Error("UnsupportedError: CSV subtable replacement requires explicit rendered detail approval.");if(!await o.confirm(h.length,"UPDATE",{statementIndex:0,statementCount:1,statementType:"IMPORT",targetAppId:e.appId,importDetail:P}))throw new Re("UPDATE",h.length)}let D=b=>new Map(Object.entries(b).map(([_,A])=>[_,A.value]));for(let b of h){let _=Yu(D(b.top),new Map([...b.subtables].map(([A,w])=>[A,w.map(M=>({...M.rowId?{rowId:M.rowId}:{},values:D(M.record)}))])),"PRESERVE");await i.putRecords({app:e.appId,records:[{id:b.targetId,...b.revision===void 0?{}:{revision:b.revision},record:_}]})}return{type:"UPDATE",updatedCount:h.length,affectedRows:h.length,skippedRows:g.size,rejectLimit:e.rejectLimit,...e.errorTable?{errTable:e.errorTable}:{},importDetail:P}}async function Ew(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 _e(e.appId,e.fields,n,i),s=await $e(e.appId,e.fields,a,n,i),l=await Va(t,new Map),c=Gu(e.source,l,r.maxRecords??1e4,e.fields,a,e.recordNumberSourceHeader),d=c.recordNumberSourceValues;if(!d)throw new Error("InternalError: record-number source values were not materialized.");let u=zu(d,e.recordNumberSourceHeader),p=new Set,f=[...new Set(u.normalized.filter(P=>P!==null))];for(let P=0;P<f.length;P+=100){let x=f.slice(P,P+100),U=await n.getRecords({app:e.appId,query:`$id in (${x.join(",")}) limit 500`,fields:["$id"]});for(let C of U.records){let D=C.$id?.value;typeof D=="string"&&D!==""&&p.add(D.replace(/^0+(?=\d)/,""))}}let R=new Map(a.map(P=>[P.code,P])),E=new Map(e.fields.map(P=>[P,R.get(P)?.fieldType??"SINGLE_LINE_TEXT"])),m=c.rows.map((P,x)=>{let U=u.normalized[x],C=[...c.importRowErrors?.[x]??[],...u.errors[x]];return U!==null&&!p.has(U)&&C.push({field:e.recordNumberSourceHeader,code:"ERR_RECORD_NUMBER_NOT_FOUND",message:`record number ${U} does not exist in APP${e.appId}`}),{rowNumber:x+1,operation:"UPDATE",mode:"update",...U!==null&&p.has(U)?{targetId:Number(U)}:{},payload:new Map([[e.recordNumberSourceHeader,d[x]],...e.fields.map(D=>[D,P[D]??""])]),preErrors:C,record:{},evaluationRow:P,evaluationFieldTypes:E}}),y=[e.recordNumberSourceHeader,...e.fields],g=Zl(m,"UPDATE",y,e.fields,a,1,s,e.checkGroups??[],!1),T=[...y,...lr],h={type:"VALIDATION",operation:"UPDATE",validatedRows:m.length,validRows:m.length-g.invalidRows,invalidRows:g.invalidRows,errorCount:g.errors.length,columns:T,errors:g.errors,...e.validationErrorTable??e.errorTable?{errTable:e.validationErrorTable??e.errorTable}:{}};if(Object.assign(h,{importAudit:c.importAudit}),e.validateOnly){if(e.validationErrorTable&&!o)throw new Error("ArgumentError: VALIDATE ONLY INTO requires a batch.");return e.validationErrorTable&&o&&Ct(o,e.validationErrorTable,T,g.errors,r.tempTableMaxRows??rt,new Map),h}if(!e.onErrorSkip&&g.invalidRows>0){let P=g.errors[0];throw new Error(`DmlValidationError: ${P.$err_code} ${P.$err_message} (row=${P.$err_row}, field=${P.$err_field})`)}if(e.onErrorSkip){if(!o||!e.errorTable)throw new Error("ArgumentError: ON ERROR SKIP requires a batch.");if(Ct(o,e.errorTable,T,g.errors,r.tempTableMaxRows??rt,new Map),e.rejectLimit!=null&&g.invalidRows>e.rejectLimit)throw new ps(`rejected rows (${g.invalidRows}) exceed REJECT LIMIT (${e.rejectLimit}).`,h)}let I=m.filter(P=>!g.invalidRowNumbers.has(P.rowNumber));if(r.confirm&&!await r.confirm(I.length,"UPDATE"))throw new Re("UPDATE",I.length);let N=I.map(P=>({id:P.targetId,record:P.record}));for(let P=0;P<N.length;P+=100)await n.putRecords({app:e.appId,records:N.slice(P,P+100)});let v={type:"UPDATE",updatedCount:N.length,...e.onErrorSkip?{affectedRows:N.length,skippedRows:g.invalidRows,rejectLimit:e.rejectLimit??null,errTable:e.errorTable}:{}};return Object.assign(v,{insertedCount:0,importAudit:c.importAudit}),v}async function Rw(e,t,n,r,i,o){let a=Ar.get(e);if(!a){let E=i&&i.size>0?await mt(e.select,t,n,i,r,!0):await Vt(e.select,t,n,r,void 0,!0);return{rows:E.rows,columns:E.columns,columnMeta:ge.get(E)}}let s=await Va(a.handle,a.cache),l=n.maxRecords??1e4,c=new Map((o??[]).map(E=>[E.code,E])),d=e.fields.map(E=>({code:E,fieldType:c.get(E)?.fieldType??"SINGLE_LINE_TEXT"})),u=a.source.kind==="JSON"?Ku(a.source,s,d,l):Gu(a.source,s,l,e.fields,o);if(a.audit=u.importAudit,a.source.kind==="JSON"||!a.source.projection)return u;let p=tR(a.source.projection),f=new Map(i??[]);f.set(ju,u);let R=await mt(p,t,{...n,onLimitReached:"error"},f,r,!0);return{rows:R.rows,columns:R.columns,columnMeta:ge.get(R)}}var Ss={materialize:Rw};function ep(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 tp(e,t,n,r,i){if(e.checkGroups?.length)return no(e,t,n,r,i);let o=await _e(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await Ss.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(ep(s),c.length!==e.fields.length){let f=c.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${c.length}\uFF09\u3068 INSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${f}`)}if(n.confirm&&!await n.confirm(l.length,"INSERT"))throw new Re("INSERT",l.length);let d=await Ie(e.appId,t,r),u=l.map((f,R)=>{let E={};return e.fields.forEach((m,y)=>{if(s.importPresence&&!s.importPresence[R]?.has(m))return;let g=f[c[y]]??"";E[m]={value:Jc(g,d.get(m))}}),E});u.forEach(f=>it([f],e.fields.filter(R=>R in f),o,a));let p=[];for(let f=0;f<u.length;f+=100){let R=u.slice(f,f+100),E=await t.postRecords({app:e.appId,records:R});p.push(E.ids)}return{type:"INSERT",createdIds:p,insertedCount:p.flat().length}}async function Ic(e,t,n,r,i){if(e.applyBlocks?.length)return bm(e,t,n,r);if(e.checkGroups?.length&&He(e.where)){let R=await _e(e.appId,e.assignments.map(m=>m.field),t,r);await $e(e.appId,e.assignments.map(m=>m.field),R,t,r);let E=await Ie(e.appId,t,r);return Tm(e,E),xn(e,Tc(E,e.appId)),await sn(e,t,r),{type:"UPDATE",updatedCount:0}}if(e.checkGroups?.length)return no(e,t,n,r,i);if(e.subtableCode)return await sn(e,t,r),vw(e,t,n,r);let o=await _e(e.appId,e.assignments.map(R=>R.field),t,r),a=e.assignments.map(R=>R.field),s=await $e(e.appId,a,o,t,r);if(await sn(e,t,r),He(e.where))return{type:"UPDATE",updatedCount:0};if(e.from!=null)return Cw(e,e.from,t,n,r,i);let l=n.maxRecords??1e4;await _m(e.assignments,t,n,r);let c=await Ie(e.appId,t,r);if(sa(e)){let R=Ml(e),m=(await pt(t.getRecords,R.app,R.query,[...R.fields],{maxRecords:l,parallel:n.fetchParallel??1})).records,y=kl(e,m,c,ae(n));if(it(y.flatMap(g=>g.records.map(T=>T.record)),a,o,s),n.confirm&&!await n.confirm(m.length,"UPDATE"))throw new Re("UPDATE",m.length);for(let g of y)await t.putRecords(g);return{type:"UPDATE",updatedCount:m.length}}let d=ei(e),p=(await Ei(t.getRecords,d.app,d.query,{maxRecords:l,parallel:n.fetchParallel??1})).ids,f=ti(e,p,c);if(it(f.flatMap(R=>R.records.map(E=>E.record)),a,o,s),n.confirm&&!await n.confirm(p.length,"UPDATE"))throw new Re("UPDATE",p.length);for(let R of f)await t.putRecords(R);return{type:"UPDATE",updatedCount:p.length}}async function bm(e,t,n,r,i=1){if(!e.validateOnly&&n.allowApplyMutation!==!0)throw new Error("UnsupportedError: APPLY mutation requires allowApplyMutation=true");if(!vt(e.where))return mw(e,t,n,r,i);let o=await Q(e.appId,t,r),a=kt(e,o),s=ua(e,o),l=Yl(e),c=await t.getRecords({app:e.appId,query:`$id = ${l} limit 2`,fields:[...s]});if(c.records.length===0)throw new Error(`ArgumentError: APPLY parent $id ${l} does not exist.`);if(c.records.length!==1)throw new Error(`ArgumentError: APPLY parent $id ${l} returned multiple records.`);let d=Number(c.records[0].$id?.value);if(d!==l)throw new Error(`ArgumentError: APPLY snapshot $id ${d} does not match requested $id ${l}.`);fa(c.records[0]);let u=Tf({statement:e,snapshot:c.records[0],fieldInfos:o,metadata:a,evaluationContext:ae(n)}),p=At(o,e.assignments.map(I=>I.field)),f=An(u.postImage,p)?await Pt(e.appId,t,r):void 0,R=Sn(u.postImage,p,f,i);if(!e.validateOnly&&R.errorCount>0)throw new Error(`ArgumentError: APPLY post-image validation failed: ${JSON.stringify({columns:R.columns,errors:R.errors})}`);let E=ot(n.dmlMaxRows,"dmlMaxRows",Wt),m=ot(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),y=u.parentRows>E||u.changedSubtableRows>m;if(e.validateOnly){let I=pi({plans:[u],records:oi(u).records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}}),N={type:"VALIDATION",operation:"UPDATE",validatedRows:1,validRows:R.invalidRows===0?1:0,invalidRows:R.invalidRows===0?0:1,errorCount:R.errorCount,columns:[...R.columns],errors:R.errors,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:zi(I.branches[0]),guards:qi(I.branches[0]),deletedRows:{total:u.tables.reduce((v,P)=>v+P.deletedRows,0),parentRows:u.tables.some(v=>v.deletedRows>0)?1:0},diagnostic:I};return kn.set(N,Ts(R.columns,o,e.appId)),N}if(u.parentRows>E)throw new Error(`ArgumentError: APPLY parent rows (${u.parentRows}) exceed dmlMaxRows (${E}).`);if(u.changedSubtableRows>m)throw new Error(`ArgumentError: APPLY changed subtable rows (${u.changedSubtableRows}) exceed dmlMaxSubtableRows (${m}).`);let g=pa(u,R.normalizedRecord),T=oi(g),h=pi({plans:[g],records:T.records,validations:[],guards:{revisionRequired:!0,parentRows:u.parentRows,dmlMaxRows:E,subtableRows:u.changedSubtableRows,dmlMaxSubtableRows:m,wouldExceed:y}});if(n.confirm){let I=As(h,!1);if(!await n.confirm(u.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:I,applyDiagnostic:h}))throw new Re("UPDATE",u.parentRows)}return await t.putRecords(T),{type:"UPDATE",updatedCount:u.parentRows,diagnostic:Qe(h,{successfulChunks:1,successfulParents:u.parentRows})}}async function mw(e,t,n,r,i){let o=ot(n.dmlMaxRows,"dmlMaxRows",Wt),a=ot(n.dmlMaxSubtableRows,"dmlMaxSubtableRows",ve),s=await Q(e.appId,t,r),l=kt(e,s),c;if(ds(e))c=await Aw(e,t,n,s,r);else{let f=ua(e,s),R=ei(e).query,E=o+1;c=await Ge(t.getRecords,e.appId,R,[...f],{pageSize:Math.min(500,E),parallel:n.fetchParallel??1,maxRecords:E,stopAfter:E,onLimit:"error"})}if(!e.validateOnly&&c.length>o)throw new Error(`ArgumentError: APPLY parent rows (${c.length}) exceed dmlMaxRows (${o}).`);let d=await ya({statement:e,snapshots:c,fieldInfos:s,metadata:l,dmlMaxRows:o,dmlMaxSubtableRows:a,statementNumber:i,loadNumberPrecision:()=>Pt(e.appId,t,r)});if(e.validateOnly)return bw(e,d,s);Ad("phase15b",e);let u=pi(d);if(n.confirm){let f=As(u);if(!await n.confirm(d.guards.parentRows,"UPDATE",{statementIndex:0,statementCount:1,statementType:"UPDATE",targetAppId:e.appId,applyDetail:f,applyDiagnostic:u}))throw new Re("UPDATE",d.guards.parentRows)}let p=await Bf(d,t,u);return{...p,diagnostic:Qe(u,p)}}function ds(e){return(e.applyBlocks?.length??0)>0&&!vt(e.where)&&(zt(e.where)||Pe(e.where))}function yw(e){let t=e.type==="EXPLAIN"?e.query:e;return t.type==="UPDATE"&&ds(t)&&Pe(t.where)}var gw=`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 QI(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${XI}`)}async function ZI(e,t,n,r,i){let o=r.filter(R=>!R.inSubtable),a=new Map(o.map(R=>[R.code,R])),s=new Map(o.map(R=>[R.code,R.fieldType])),l=new Map(o.flatMap(R=>R.optionOrder?[[R.code,new Set(Object.keys(R.optionOrder))]]:[])),c=Eu(e.where,{fieldTypes:s,fieldOptions:l});QI(c);let d=c.prefilter===null?"":j(c.prefilter),u=new Set(sa(e,r));for(let R of ew(e.where))u.add(R);let p=await tw(e.appId,e.where,a,t,i);return(await Ke(t.getRecords,e.appId,d,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(R=>({snapshot:R,row:Gt(R,null)})).filter(({row:R})=>ue(e.where,R,p.fieldTypeResolver,c.appliedKlikes,p.fieldSemanticsResolver,ae(n))).map(({snapshot:R})=>R)}function ew(e){return Lc(e)}async function tw(e,t,n,r,i){let s=[...nw(t)].some(d=>n.get(d)?.fieldType==="STATUS")?await Vc(e,r,i):void 0;return{fieldTypeResolver:d=>d.field==="$id"?"NUMBER":n.get(d.field)?.fieldType,fieldSemanticsResolver:d=>{if(d.field==="$id")return jn(ne({fieldType:"__ID__"}),e,"$id");let u=n.get(d.field);if(!u)return;let p=u.semantics??ne(u),f=u.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return jn(f,e,u.code)}}}function nw(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 rw(e,t,n){let r=t.validations.flatMap(d=>d.errors),i=t.validations.reduce((d,u)=>d+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...ht(n,e.fields).payloadFields,...si],a=t.guards.parentRows,s=ru(t),l=s.branches[0],c={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:ji(l),guards:zi(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return kn.set(c,ys(o,n,e.appId)),c}function iw(e,t,n){let r=t.validations,i=r.flatMap(c=>c.errors),o=r.reduce((c,d)=>c+(d.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...ht(n,e.assignments.map(c=>c.field)).payloadFields,...si],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:ji(s.branches[0]),guards:zi(s.branches[0]),deletedRows:{total:t.plans.reduce((c,d)=>c+d.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(c=>c.tables.some(d=>d.deletedRows>0)).length},diagnostic:s};return kn.set(l,ys(a,n,e.appId)),l}function ow(e,t,n){let r=t.create.validations.flatMap(R=>R.errors),i=t.update.validations.flatMap(R=>R.errors),o=[...r,...i].map(R=>({...R,$err_operation:"UPSERT"})),a=new Set(o.map(R=>R.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...ht(n,e.fields).payloadFields,...si],l=iu(t),c=l.branches.find(R=>R.branch==="insert"),d=l.branches.find(R=>R.branch==="update"),u=ji(c),p=ji(d),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...u,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:zi(c)},update:{apply:p,guards:zi(d)}},deletedRows:{total:t.update.plans.reduce((R,E)=>R+E.tables.reduce((m,g)=>m+g.deletedRows,0),0),parentRows:t.update.plans.filter(R=>R.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return kn.set(f,ys([...s],n,e.appId)),f}function ji(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:_n(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:_n(t,"ADD"),removedValues:_n(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function zi(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var Vt=100,_e=500;function it(e,t,n){let r=e??n;if(!Number.isSafeInteger(r)||r<=0)throw new Error(`ArgumentError: ${t} must be a positive safe integer.`);return r}function ys(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ne({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ke(s,n));continue}o.set(a,Z(i.has(a)?"number":"string"))}return o}async function aw(e,t,n,r,i,o){let a=await um(e,t,n,r,i,o),s=await Te(e.appId,n,i),l=Ml(e,a,s,ae(r)),c=e.assignments.map(p=>p.field),d=await X(e.appId,n,i),u=await $e(e.appId,c,d,n,i);if(Rt(l.flatMap(p=>p.records.map(f=>f.record)),c,d,u),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 sw(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 lw(e,t,n,r){if(await sn(e,t,r),He(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return dw(e,t,n,r);let i=kl(e),a=(await fi(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=lf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}async function uw(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return _I(e,t,n,r);if(e.checkGroups?.length)return eo(e,t,n,r);let i=await Le(e.appId,e.fields,t,r),o=await $e(e.appId,e.fields,i,t,r),a=[],s=[],l=await Te(e.appId,t,r),c=dm(e),d=await Ar(e.appId,e.keyFields,c,t,n,l);if(e.values.forEach((p,f)=>{let R={};e.fields.forEach((m,g)=>{let y=p[g];y.type==="CASE_VALUE"?R[m]={value:Mt(y.expr,{},l.get(m),ae(n))}:R[m]={value:yt(y,l.get(m))}});let E=hr(d,c[f]);E!==void 0?s.push({id:E,record:R}):a.push(R)}),Rt([...a,...s.map(p=>p.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let p=a.length+s.length;if(!await n.confirm(p,"UPDATE"))throw new ge("UPDATE",p)}let u=[];for(let p=0;p<a.length;p+=100){let f=await t.postRecords({app:e.appId,records:a.slice(p,p+100)});u.push(f.ids)}for(let p=0;p<s.length;p+=100)await t.putRecords({app:e.appId,records:s.slice(p,p+100)});return{type:"UPSERT",insertedCount:u.flat().length,updatedCount:s.length}}function dm(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?z(i):i.type==="CASE_VALUE"?Ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function Jc(e,t,n,r){if(t.length===0)return;let i=await Te(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 cw(e,t,n,r){let i=e.subtableCode,o=e.fields.indexOf("_pid");if(o<0)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u306B\u306F _pid \u304C\u5FC5\u9808\u3067\u3059");let a=await Ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=hs(a),l=new Map;for(let d of e.values){let u=fR(d[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((E,m)=>{if(E!=="_pid"){if(E.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[E]={value:fR(d[m])}}});let R=l.get(u);R?R.push(f):l.set(u,[f])}let c=[];for(let[d,u]of l.entries()){let p=s.get(d),R=[...to(p,i),...u];c.push(fm(e.appId,d,no(p),i,R))}for(let d of c)await t.putRecords(d);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function pw(e,t,n,r){let i=e.subtableCode;if(!xi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];$t(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&as(p.value.expr,o);let a=await Jc(e.appId,o,t,r),s=await Ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Xc(s,i).filter(p=>ue(e.where,p.flat,a,void 0,void 0,ae(n)));if(n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new ge("UPDATE",c.length);let d=new Map;for(let p of c){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=d.get(p.parentId);f||(f=new Map,d.set(p.parentId,f));let R={};for(let E of e.assignments){if(E.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);R[E.field]={value:aa(E.value,p.flat,a,ae(n))}}f.set(p.rowId,R)}let u=hs(s);for(let[p,f]of d.entries()){let R=u.get(p);if(!R)continue;let m=to(R,i).map(g=>{let y=g.id??"";if(!y)return g;let T=f.get(y);return T?{id:y,value:T}:{id:y}});await t.putRecords(fw(e.appId,p,no(R),i,m))}return{type:"UPDATE",updatedCount:c.length}}async function dw(e,t,n,r){let i=e.subtableCode;if(!xi(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];$t(e.where,o);let a=await Jc(e.appId,o,t,r),s=await Ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=Xc(s,i).filter(p=>ue(e.where,p.flat,a,void 0,void 0,ae(n)));if(n.confirm&&!await n.confirm(c.length,"DELETE"))throw new ge("DELETE",c.length);let d=new Map;for(let p of c){let f=d.get(p.parentId);f?f.push(p.rowIndex):d.set(p.parentId,[p.rowIndex])}let u=hs(s);for(let[p,f]of d.entries()){let R=u.get(p);if(!R)continue;let E=to(R,i),m=new Set(f),g=E.filter((y,T)=>!m.has(T));await t.putRecords(fm(e.appId,p,no(R),i,g))}return{type:"DELETE",deletedCount:c.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 Xc(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=no(r),a=to(r,t);for(let s=0;s<a.length;s++){let l=a[s],c={...la(l,s),_pid:i};for(let[d,u]of Object.entries(r))d!==t&&(c[`_p.${d}`]=Ac(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:c})}}return n}function to(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function no(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function fm(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function fw(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Ew(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 fR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved variable @${e.name} reached INSERT evaluation.`);return e.type==="STRING"?e.value:e.type==="NUMBER"?z(e):e.type==="CASE_VALUE"?Ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function Ac(e){if(e==null)return"";if(typeof e=="string")return e;if(typeof e=="number"||typeof e=="boolean")return String(e);try{return JSON.stringify(e)}catch{return String(e)}}function xi(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return xi(e.left)||xi(e.right);case"NOT":case"GROUP":return xi(e.expr);default:return!1}}async function Rw(e,t,n,r){let i=[];$t(e.where,i);let o=await Jc(e.appId,i,t,r),a=await X(e.appId,t,r);if(He(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??ne(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let R=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(R)??B("string")},c=await Ke(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=Xc(c,e.subtableCode),u=e.all?new Set(c.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(d.filter(f=>e.where&&ue(e.where,f.flat,o,void 0,l,ae(n))).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new ge("UPDATE",u.size);let p=hs(c);for(let f of u){let R=p.get(f);if(!R)continue;let m=to(R,e.subtableCode).map((y,T)=>({row:y,i:T,flat:mw(R,e.subtableCode,y,T)}));m.sort((y,T)=>gw(y.flat,T.flat,e.by,l,ae(n)));let g=m.map(y=>y.row.id??"");await t.putRecords(Ew(e.appId,f,no(R),e.subtableCode,g))}return{type:"REORDER",reorderedParentCount:u.size}}function mw(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}`]=Ac(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=Ac(a?.value);return i}function gw(e,t,n,r,i={}){for(let o of n){let a=ER(o.key,e,i),s=ER(o.key,t,i),l=o.key.type==="FIELD_NAME"?r(Fe(o.key.name)):o.key.type==="ARITH_KEY"?B("number"):o.key.type==="FUNC_KEY"?vn(o.key.expr).semantics??B("string"):B("number"),c=st(a,s,l??B("string"));if(c!==0)return o.direction==="ASC"?c:-c}return 0}function ER(e,t,n={}){switch(e.type){case"FIELD_NAME":return t[e.name]??"";case"ARITH_KEY":return String(Re(e.expr,t,n));case"FUNC_KEY":return me(e.expr,t,void 0,void 0,n);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function Qc(e,t,n,r,i){if(e.checkGroups?.length)return eo(e,t,n,r,i);let o=await Le(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await gs.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(zc(s),c.length!==e.fields.length){let g=c.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${c.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let d=[],u=[],p=await Te(e.appId,t,r),f=l.map((g,y)=>{let T={};return e.fields.forEach((h,I)=>{if(s.importPresence&&!s.importPresence[y]?.has(h))return;let N=g[c[I]]??"";T[h]={value:Wc(N,p.get(h))}}),T});f.forEach(g=>Rt([g],e.fields.filter(y=>y in g),o,a));let R=f.map(g=>e.keyFields.map(y=>String(g[y]?.value??"")));if(cs.has(e)){let g=e.keyFields.map(T=>p.get(T)==="NUMBER"),y=new Set;for(let T of R){let h=Mn(T,g);if(y.has(h))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");y.add(h)}}let E=await Ar(e.appId,e.keyFields,R,t,n,p);if(f.forEach((g,y)=>{let T=hr(E,R[y]);T!==void 0?u.push({id:T,record:g}):d.push(g)}),n.confirm&&d.length+u.length>0){let g=d.length+u.length;if(!await n.confirm(g,"UPDATE"))throw new ge("UPDATE",g)}let m=[];for(let g=0;g<d.length;g+=100){let y=await t.postRecords({app:e.appId,records:d.slice(g,g+100)});m.push(y.ids)}for(let g=0;g<u.length;g+=100)await t.putRecords({app:e.appId,records:u.slice(g,g+100)});return{type:"UPSERT",insertedCount:m.flat().length,updatedCount:u.length}}var Zc=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),ep=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 Em(e){let t=await e.getApps(),n=[...Zc],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 Rm(e,t,n){let r=await X(e.appId,t,n),i=[...ep],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 qi(e,t,n,r,i,o){let a=[];ts(e,t,n,r,a,i,o),await Promise.all(a)}async function mm(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(qi(l.condition,t,n,r,i,o));await Promise.all(a)}function ki(e,t,n,r,i){return i!==void 0&&i.size>0?Et(e,t,n,i,r):Bt(e,t,n,r)}function ts(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(ki(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);let c=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(d=>d[c]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(ki(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);if(l.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(l.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let c=l.columns[0]??"";s.resolved=l.rows[0]?.[c]??""}));break}case"LOGICAL":ts(e.left,t,n,r,i,o,a),ts(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":ts(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(ki(s.query,t,n,r,a).then(l=>{for(let c of l.warnings??[])o.add(c);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function gm(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Bt(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 ym(e,t,n,r,i,o){let a=new Map,s=[];for(let d=0;d<e.length;d++){let u=e[d];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let p=JSON.stringify(u.query),f=a.get(p);f||(f=ki(u.query,t,n,r,o).then(R=>{for(let m of R.warnings??[])i.add(m);if(R.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(R.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=R.columns[0]??"";return R.rows[0]?.[E]??""}),a.set(p,f)),s.push([d,f])}let l=await Promise.all(s.map(([,d])=>d)),c=new Map;return s.forEach(([d],u)=>c.set(d,l[u])),c}var hm=new WeakMap,Am=new WeakMap,Sm=new WeakMap,Sc=new WeakMap,tp=new WeakMap,Tm=new WeakMap,Im=new WeakMap;async function wm(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,c={...t,getFields:async C=>(a.add(C),t.getFields(C)),getProcessStatuses:async C=>(s.add(C),t.getProcessStatuses(C)),getNumberPrecision:async C=>(l.add(C),t.getNumberPrecision(C))},d=new Map,u=new Map,p=new Map,f=new Set,R=i??await Xi(e,c,n),E=C=>R.nodes.find(v=>v.source===C||JSON.stringify(v.source)===JSON.stringify(C)),m=new Map(o??[]),g=new Set(o?.keys()??[]),y=new Map([...o??new Map].map(([C,v])=>[C,v.rows.length])),T=new WeakMap,h=C=>ce(C)??(C.appId>0?`APP${C.appId}`:"source"),I=C=>C.cteName===Me?1:C.cteName!==null?y.get(C.cteName)??null:null,N=C=>{let v=I(C.from),b=h(C.from),O=[];for(let w of C.joins){let k=I(w.table),L=h(w.table);if(w.type==="CROSS"){let F=v!==null&&k!==null?di(v,k):null;O.push({leftLabel:b,rightLabel:L,leftRows:v,rightRows:k,plan:F,rightRuntimeLabel:w.table.cteName===null?`APP${w.table.appId} fetched rows`:`${L} materialized rows`}),v=F?.outputRows??null,b=`${b} \xD7 ${L}`}else v=null,b=`${b} ${w.type} JOIN ${L}`}if(O.length>0&&tp.set(C,O),He(C.where)?v=0:C.where!==null&&(v=null),(ee(C).type!=="NONE"||C.distinct||C.having!==null||Hn(C)||C.columns.some(w=>w.type==="WINDOW_COL"))&&(v=null),v!==null){let w=C.offset??0;v=Math.max(0,v-w),C.limit!==null&&(v=Math.min(v,C.limit)),T.set(C,v)}},D=async C=>{let v=[C.from,...C.joins.map(O=>O.table)];if(v.length>1&&C.columns.some(O=>O.type==="WILDCARD"||O.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let b=[];for(let O of v){if(O.cteName!==null){if(O.cteName===Me)continue;let w=m.get(O.cteName);if(!w)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${O.cteName}.`);b.push(...w.columns);continue}let A=await X(O.appId,c,n);O.subtableCode?(b.push(...A.filter(w=>w.inSubtable&&(w.subtableCode===O.subtableCode||w.subtableCode===void 0)).map(w=>w.code)),b.push("_pid","_rid","_idx"),b.push(...A.filter(w=>!w.inSubtable).map(w=>`_p.${w.code}`))):(b.push(...A.filter(w=>!w.inSubtable).map(w=>w.code)),b.push(...go))}return[...new Set(b)]},P=async C=>{if(C===null||typeof C!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let v=C;if(v.type==="SELECT"){let b=C,O=await D(b);if(b.columns.length===1&&b.columns[0].type==="WILDCARD")return O;let A=[];for(let w of b.columns)w.type==="WILDCARD"?A.push(...O):w.type==="PARENT_WILDCARD"?A.push(...O.filter(k=>k.startsWith("_p."))):A.push(...In([],[w]).columns);return A}if(v.type==="UNION")return P(v.left);if(v.type==="SHOW_APPS")return[...Zc];if(v.type==="DESCRIBE")return[...ep];if(v.type==="GENERATE_SERIES")return[C.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},M=async C=>{if(C===null||typeof C!="object")return;if(Array.isArray(C)){for(let b of C)await M(b);return}let v=C;if(v.type==="WITH"){let b=C;for(let O of b.ctes){if(await M(O.query),O.query.type==="GENERATE_SERIES"){if(O.query.args.some(k=>k.type==="VARIABLE")){m.set(O.name,{rows:[],columns:[O.query.columnAlias]});continue}let w=rm(O.query);m.set(O.name,{rows:w.rows,columns:w.columns,columnMeta:ye.get(w),uniqueGeneratedColumn:O.query.columnAlias}),g.add(O.name),y.set(O.name,w.rows.length);continue}let A=await P(O.query);if(m.set(O.name,{rows:[],columns:A}),O.query.type==="SELECT"){let w=T.get(O.query);w!==void 0&&y.set(O.name,w)}}await M(b.query);return}if(v.type==="UNION"){await M(v.left),await M(v.right);return}if(v.type==="SELECT"){let b=C;N(b);for(let w of b.columns)w.type==="SCALAR_SUBQUERY_COL"&&await M(w.query);if(await M(b.where),await M(b.having),await Vi(b,c,n,m),![b.from,...b.joins.map(w=>w.table)].some(w=>w.cteName!==null&&!m.has(w.cteName))){let w=await mr(b,c,n,m);w&&p.set(b,w)}return}for(let b of Object.values(v))await M(b)};await M(e);let U=async C=>{if(C===null||typeof C!="object"||f.has(C))return;if(f.add(C),Array.isArray(C)){await Promise.all(C.map(U));return}let v=C;if(v.type==="SELECT"){let b=C;await Vi(b,c,n);let O=[b.from,...b.joins.map(_=>_.table)].some(_=>_.cteName!==null);if(ee(b).type==="PLAIN"&&!O){let _=await mr(b,c,n);_&&p.set(b,_)}let A=[b.from,...b.joins.map(_=>_.table)].filter(_=>_.cteName===null).map(_=>_.appId);(Tt(b.where)||b.orderBy.length>0||b.columns.some(_=>_.type==="WINDOW_COL"&&_.orderBy.length>0))&&A.forEach(_=>a.add(_));let{resolver:k,rewrites:L}=await On(b,c,n);L.length>0&&Sc.set(b,L);let F=Se(b.where,k),H=E(b);if(F.capability==="UNSUPPORTED"&&!H)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(F)}).`);d.set(b,F);let $=await ds(b,c,n),G=Mc.get(b)??ps(b,$);G&&hm.set(b,G);let Y=G??Rn(b,$);Am.set(b,Y);let K=new Map;for(let _ of b.joins){let V=_.table.alias;if(_.type!=="INNER"||!V||_.table.subtableCode)continue;let te=_.on.left.tableAlias,De=_.on.right.tableAlias;if(!te||!De)continue;let Wt=te===V&&De!==V?De:De===V&&te!==V?te:void 0,ie=te===V?_.on.right.field:_.on.left.field,Ht=te===V?_.on.left.field:_.on.right.field;if(!Wt)continue;let Yt=[b.from,...b.joins.map(ve=>ve.table)].find(ve=>ce(ve)===Wt),Cs;if(_.table.cteName!==null)Cs=m.get(_.table.cteName)?.columnMeta?.get(Ht);else{let ve=(await X(_.table.appId,c,n)).find(ot=>ot.code===Ee(_.table,Ht));Cs=ve?ke(ve,_.table.appId):nt(Ht)}let Ps,Os,op,ap;if(Yt?.cteName!==null&&Yt?.cteName!==void 0){let ve=m.get(Yt.cteName);Ps=ve?.columnMeta?.get(ie),g.has(Yt.cteName)&&ve&&(op=ve.rows.length,Os=ve.rows.map(ot=>Bc(ot[ie])),ap=Os.some(ot=>ot.length===0))}else if(Yt){let ve=(await X(Yt.appId,c,n)).find(ot=>ot.code===Ee(Yt,ie));Ps=ve?ke(ve,Yt.appId):nt(ie)}let oo=lu({fieldType:Cs?.fieldType,sourceSemantics:Ps?.semantics,sourceRowCount:op,values:Os,hasEmptyValue:ap,maxInKeys:Za});if(oo.kind==="FALLBACK"&&oo.reason==="JOIN_KEY_VALUES_RUNTIME"&&(G?.joinPlan.items.some(ot=>ot.targetAlias===V)||G?.joinPlan.serverFunctionConsumptions.some(ot=>ot.targetAlias===V)))continue;let Vm=su(oo,Ht,Hi),sp=Y.joinConditions.get(V),Wm=sp?j(sp):void 0,Hm=Y.joinRelations.get(V);K.set(V,{plan:oo,queries:Vm,additionalQuery:Wm,additionalRelation:Hm})}if(K.size>0&&Sm.set(b,K),b.orderBy.length>0||b.columns.some(_=>_.type==="WINDOW_COL"&&_.orderBy.length>0)){let _=await Yi(b,c,n);if(b.orderMode!=="KINTONE_NATIVE")for(let V of _.semantics.values())V.fieldType==="STATUS"&&V.source&&s.add(V.source.appId);if(is(b)&&!O&&H?.allowed!==!1){let V=F.capability==="EXACT_PUSHDOWN"?ze(b):"FULL_SCAN";u.set(b,(b.orderMode==="KINTONE_NATIVE"?gi:mi)({stmt:b,staticMode:V,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:_.semantics,maxRecords:r,hasKlike:Ce(b.where)}))}}}else if(v.type==="VALIDATE"){let b=C;a.add(b.appId);let O=await X(b.appId,c,n),A=new Map(O.filter(_=>!_.inSubtable).map(_=>[_.code,_])),w=new Set(O.filter(_=>_.inSubtable).map(_=>_.code)),k=Zl(b,O),L=or(b.checkGroups??[]),F=Lc(b.where);for(let _ of L){if(_.field!=="$id"&&!A.has(_.field)&&!w.has(_.field))throw Oe(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${_.field} \u306F APP${b.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(_.field!=="$id"&&!A.has(_.field)&&w.has(_.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${_.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let _ of F){if(_!=="$id"&&!A.has(_)&&!w.has(_))throw new Error(`ArgumentError: WHERE field ${_} does not exist in APP${b.appId}.`);if(_!=="$id"&&!A.has(_)&&w.has(_))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${_} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let H=new Map([...A].map(([_,V])=>[_,V.fieldType]));H.set("$id","RECORD_NUMBER"),xn(b,H);let $=Se(b.where,_=>_.field==="$id"?ne({fieldType:"__ID__"}):A.get(_.field)?.semantics??(A.has(_.field)?ne(A.get(_.field)):void 0));if($.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln($)}).`);let x=new Map([...A].map(([_,V])=>[_,V.fieldType])),G=new Map([...A.values()].flatMap(_=>_.optionOrder?[[_.code,new Set(Object.keys(_.optionOrder))]]:[])),Y=b.where===null?null:$.capability==="EXACT_PUSHDOWN"?b.where:ll(b.where,{allowUnqualifiedFields:!0,fieldTypes:x,fieldOptions:G,allowKlike:!1}),K=k.some(_=>_.field.fieldType==="NUMBER");K&&(l.add(b.appId),await Ct(b.appId,c,n)),Tm.set(b,{targetFields:k.map(_=>_.subtableCode?`${_.subtableCode}(${_.field.code})`:_.field.code),fetchFields:[...new Set(["$id",...k.map(_=>_.subtableCode??_.field.code),...F,...L.map(_=>_.field)])],subtables:new Map([...new Set(k.flatMap(_=>_.subtableCode?[_.subtableCode]:[]))].map(_=>[_,k.filter(V=>V.subtableCode===_).length])),capability:$,prefilter:Y,numberPrecision:K})}else if(v.type==="UPDATE"||v.type==="DELETE"){if(a.add(C.appId),v.type==="UPDATE"&&C.applyBlocks?.length){let O=C,A=await X(O.appId,c,n);if(xt(O,A),ls(O)){let w=A.filter(L=>!L.inSubtable),k=Eu(O.where,{fieldTypes:new Map(w.map(L=>[L.code,L.fieldType])),fieldOptions:new Map(w.flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[]))});Im.set(O,k)}}let b=C;(b.type!=="UPDATE"||!ls(b))&&E(b)?.allowed!==!1&&await sn(b,c,n)}await Promise.all(Object.values(v).map(U))};if(await U(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Xt(e)){let C=Qt(e),{resolver:v,rewrites:b}=await On(C,c,n);b.length>0&&Sc.set(C,b);let O=Se(C.where,v),A=E(C);if(O.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${Ln(O)}).`);if(d.set(C,O),is(C)&&A?.allowed!==!1){let w=await Yi(C,c,n);u.set(C,(C.orderMode==="KINTONE_NATIVE"?gi:mi)({stmt:C,staticMode:O.capability==="EXACT_PUSHDOWN"?ze(C):"FULL_SCAN",whereCapability:O.capability,whereReasons:O.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:Ce(C.where)}))}}return{capabilities:d,orderPlans:u,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function Tc(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 yw(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 dt(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(dt).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return dt(t.expr);case"GROUPING_FIELD":return`GROUPING(${dt(t.ref)})`;case"GROUPING_REF":return dt(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${dt(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${dt(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(dt).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(dt).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function bn(e){try{let t=e;switch(t.type){case"BINARY":return`${dt(t.left)} ${yw(t.op)} ${dt(t.right)}`;case"NULL_CHECK":return`${dt(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${bn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${bn(t.right)})`;case"NOT":return`NOT (${bn(t.expr)})`;case"GROUP":return`(${bn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Ic(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=re(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?hw(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let c=Xu(l),d=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${Ju(c)}: ${c}`,` ${Qu(c)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${d}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":bn(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(re)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!re(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=Xu(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=RR(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${Ju(l)}: ${l}`,` ${Qu(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${mR(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=Xu(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=RR(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${Ju(l)}: ${l}`,` ${Qu(l)}: kintone server exact prefilter`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=j(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${bn(o.residualWhere)}`,` ${mR(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!re(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function hw(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,c=l?.type==="KINTONE_FUNC"&&l.name===t,d=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((c||d)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function Ju(e){return re(e)?"relative date function":"kintone function"}function Xu(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 Qu(e){return re(e)?"relative date evaluation":"kintone function evaluation"}function mR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&re(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var bm=new WeakMap;function wc(e,t){if(Array.isArray(e))return e.map(r=>wc(r,t));if(e===null||typeof e!="object")return e;let n=e;if(n.type==="GENERATE_SERIES"){let r=new Map,i=new Set,o=n.args.map((s,l)=>{if(s.type!=="STRING"||s.fromVariable!==!0||!s.value.startsWith("@"))return s;let c=s.value.slice(1);r.set(l,c);let d=t.get(c);return d===void 0?{type:"VARIABLE",name:c}:(i.add(l),{type:"STRING",value:d,fromVariable:!0})}),a={...n,args:o};return bm.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,wc(i,t)]))}function _i(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...Zc]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...ep]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let c=_i(l.query,s);s.set(l.name,c)}return _i(e.query,s)}if(e.type==="UNION"){let s=_i(e.left,t),l=_i(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!==Me);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(...In([],[s]).columns);return{status:"STATIC",columns:a}}function Aw(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function Sw(e,t,n,r){let i=new Map,o=async a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){for(let l of a)await o(l);return}let s=a;if(s.type==="SELECT"){let l=a,c=[l.from,...l.joins.map(d=>d.table)];if(c.some(d=>d.cteName!==null)&&c.every(d=>d.cteName===Me||d.cteName!==null&&r.has(d.cteName))){let d=await mr(l,t,n,r);d&&i.set(l,d)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var Tw=Symbol("ksql.explainFetchPlan");function Nm(e,t){e[Tw]=t}async function Cm(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=_e,c=!0,d,u,p,f,R){let E=$s(f??new Date,R),m=kt({recursiveCteMaxDepth:d,recursiveCteMaxRows:u,recursiveCteMaxExpansions:p}),g=AR(r);try{let{statements:y,meta:T}=wE(e,{import:a}),h=bl(y),I=ou(y,n),N=DR(y,I),D=new Map;for(let[b,O]of Object.entries(E.values))D.set(wr(b),{type:"string",value:O});let P=new Map,M=new Map,U=[],C=[];for(let b=0;b<y.length;b++){let O=y[b],A=O.type==="SET_VARIABLE"?O.expr.type==="SCALAR_SUBQUERY"?{...O,expr:Ki(O.expr,D)}:O:Ki(O,D),w=wc(A,P);Je(w);let k=await Xi(w,t,g),L=Aw(M),F=c?await wm(w,t,g,i,k,L):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:k};if(!c){let K=await Sw(w,t,g,L);for(let[_,V]of K)F.plainGroupByPlans.set(_,V)}let H;if(w.type==="CREATE_TEMP_TABLE"){let K=new Map([...M].map(([V,te])=>[V,te.status==="STATIC"?{status:"STATIC",columns:te.columns}:{status:"DEFERRED"}])),_=_i(w.query,K);H=_.status==="STATIC"?{status:"STATIC",columns:_.columns,relation:{rows:[],columns:[..._.columns]},producerStatement:b+1}:{status:"DEFERRED",producerStatement:b+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},M.set(w.name,H)}let $={sources:[]},x=k.hasServerOnlyWhereFunction&&!k.allowed?Ic(k):[...Ic(k),...Om(bw(w,h.statements[b],F.capabilities,F.orderPlans,F.plainGroupByPlans,s,l,$,M,H,{maxRecords:i,recursiveLimits:m}),o)],G=Tc(F),Y=T.dialect===1?Iw(w,h.statements[b],i,s):[];U.push({index:b,type:h.statements[b].statementType,plan:x.length===0?[...G,...Y]:[x[0],...G,...x.slice(1),...Y]}),C.push({index:b,fetch:np($.sources),sources:$.sources}),w.type==="DROP_TEMP_TABLE"&&M.delete(w.name),(O.type==="SET_VARIABLE"||O.type==="DECLARE_VARIABLE")&&(D.set(O.name,O.type==="DECLARE_VARIABLE"&&O.annotation==="RELATIVE_DATE"?{type:"relative-date",value:N.get(O.name)}:O.type==="SET_VARIABLE"&&O.expr.type==="ARRAY"?{type:"array",elements:O.expr.elements.map(K=>({type:"string",value:K.value}))}:{type:"string",value:`@${O.name}`,placeholder:!0}),O.type==="DECLARE_VARIABLE"&&O.annotation===void 0&&(O.default.type==="STRING"||O.default.type==="NUMBER")&&P.set(O.name,O.default.type==="STRING"?O.default.value:z(O.default)))}let v={statementCount:y.length,statements:U};return Nm(v,{statements:C}),v}finally{om(g)}}function Iw(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=ww(e);(e.type==="UPDATE"||e.type==="DELETE")&&!o.includes(`APP${e.appId}`)&&o.unshift(`APP${e.appId}`);let a=Math.ceil(n/500);for(let c of o)i.push(` read ${c}: \u4E0D\u660E\uFF08\u4E0A\u9650 maxRecords=${n} \u3068\u4EEE\u5B9A: \u6700\u5927 ${a} \u56DE\u3001500 \u4EF6/\u56DE\uFF09`);let s=[...new Set([...t.appIds,...t.targetAppId===null?[]:[t.targetAppId]])];i.push(` metadata: GET form fields \xD7 ${s.length} \u30A2\u30D7\u30EA\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\u6E08\u307F\u306F\u8FFD\u52A0 0 \u56DE\uFF09`),(e.type==="UPSERT"||e.type==="UPSERT_SELECT")&&(e.type==="UPSERT"?i.push(` UPSERT pre-read: ${Math.ceil(e.values.length/Rr)} \u56DE\uFF08${e.values.length} \u884C\u3001${Rr} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/Rr)} \u56DE\u3001${Rr} \u30AD\u30FC/\u56DE\uFF09`));let l=e.type==="INSERT"||e.type==="UPSERT"?e.values.length:null;return(e.type==="INSERT"||e.type==="INSERT_SELECT"||e.type==="UPSERT"||e.type==="UPSERT_SELECT"||e.type==="UPDATE"||e.type==="DELETE")&&(i.push(l===null?` write: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/100)} \u56DE\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`:` write: ${Math.ceil(l/100)} \u56DE\uFF08${l} \u884C\u3001100 \u4EF6/HTTP \u30EA\u30AF\u30A8\u30B9\u30C8\uFF09`),i.push(" reference: bulkRequest \u306F\u672A\u5B9F\u88C5\u3002\u66F8\u8FBC\u30B5\u30D6\u30EA\u30AF\u30A8\u30B9\u30C8\u6570\u306F HTTP \u66F8\u8FBC\u56DE\u6570\u3068\u540C\u3058")),i}function ww(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 bw(e,t,n,r,i,o=100,a=_e,s={sources:[]},l=new Map,c,d=Pm()){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",...c?.status==="STATIC"?[` schema: ${c.columns.join(", ")}`,` schema source: SELECT output of statement ${c.producerStatement}`]:c?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${c.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${rt} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Er(e.query,t,n,r,i,s,"main",l,d).map(u=>` ${u}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let u=Fi(e.expr.query)?t:{...t,tempTablesReferenced:[]};return[`SET @${e.name} = (SELECT ...)`," value: \u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF081\u884C1\u5217\u30FB\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"," subquery:",...Er(e.expr.query,u,n,r,i,s,"main",l,d).map(p=>` ${p}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Er(e.query,t,n,r,i,s,"main",l,d);if(e.type==="ASSERT"){let u=[`ASSERT${e.warn===!0?" WARN":""} ${e.text}${e.message!==void 0?`, '${e.message.replace(/'/g,"''")}'`:""}`,e.warn===!0?" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F\u8B66\u544A\u3068\u3057\u3066\u8A18\u9332\u3057\u3001\u5F8C\u7D9A\u6587\u3092\u7D9A\u884C\uFF09":" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,R)=>{u.push(p.length>1?` subquery[${R+1}]:`:" subquery:");let E=Fi(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Er(f.query,E,n,r,i,s,"main",l,d).map(m=>` ${m}`))}),u}if(e.type==="EXIT"){let u=[`EXIT SUCCESS IF ${e.text}, '${e.message.replace(/'/g,"''")}'`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u6210\u7ACB\u6642\u306F\u6B63\u5E38\u7D42\u4E86\u3057\u3001\u4EE5\u964D\u306E\u6587\u306F skippedReason: exit\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,R)=>{u.push(p.length>1?` subquery[${R+1}]:`:" subquery:");let E=Fi(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Er(f.query,E,n,r,i,s,"main",l,d).map(m=>` ${m}`))}),u}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?As(e,void 0,n,r,o,a,1e4,i):Er(e,t,n,r,i,s,"main",l,d)}function Fi(e){if(Array.isArray(e))return e.some(Fi);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Fi)}return!1}function Er(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=Pm()){if(t.tempTablesReferenced.length===0)return As(e,void 0,n,r,100,_e,l.maxRecords,i,!0,o,a,l.recursiveLimits);let c=[];e.type==="INSERT_SELECT"?c.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&c.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),c.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),c.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let d=t.tempTablesReferenced.map(f=>[f,s.get(f)]);for(let[f,R]of d)R?.status==="STATIC"?c.push(` source: temp table ${f} (schema from statement ${R.producerStatement})`):(c.push(` source: temp table ${f}`),c.push(" schema: deferred (could not be derived statically)"));c.push(" rows: runtime (not materialized by EXPLAIN)");let u=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;u&&c.push(...Lm(u,i?.get(u),d.some(([,f])=>f?.status!=="STATIC"))),c.push(d.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),c.push(" records API: none");let p=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return p.length>0&&c.push(` app: ${p.map(f=>`APP${f}`).join(", ")}`),c.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),c}var bc=new WeakMap;function Pm(){return{maxRecords:1e4,recursiveLimits:kt({})}}async function Nw(e,t,n,r,i,o=100,a=_e,s,l,c,d){let u=kt({recursiveCteMaxDepth:l,recursiveCteMaxRows:c,recursiveCteMaxExpansions:d}),p=s??await Xi(e.query,t,n),f=await wm(e.query,t,n,r,p,bc.get(e)),R={sources:[]},E=Ic(p),m=p.hasServerOnlyWhereFunction&&!p.allowed?[...Tc(f),...E]:[...Tc(f),...E,...Om(As(e.query,void 0,f.capabilities,f.orderPlans,o,a,r,f.plainGroupByPlans,!0,R,"main",u),i)],g=ns(m,R.sources),y={type:"SELECT",columns:["plan"],rows:g.map(T=>({plan:T})),rowCount:g.length};return Nm(y,{statements:[{index:0,fetch:np(R.sources),sources:R.sources}]}),y}function Om(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 As(e,t,n,r,i=100,o=_e,a=1e4,s,l=!0,c,d="main",u=kt({})){let p=c??{sources:[]};if(e.type==="UNION"){let R=_w(e,n,r,s,p);return l?ns(R,p.sources):R}if(e.type==="WITH"){let R=vw(e,n,r,s,p,a,u);return l?ns(R,p.sources):R}if(e.type==="INSERT")return xw(e,t,i,o);if(e.type==="INSERT_SELECT")return kw(e,t,n,r,s);if(e.type==="UPSERT")return $w(e,t,i,o);if(e.type==="UPSERT_SELECT")return Bw(e,t,n,r,s);if(e.type==="UPDATE")return Fw(e,t,n,r,i,o,a);if(e.type==="DELETE")return Kw(e,t);if(e.type==="REORDER")return Vw(e,t);if(e.type==="VALIDATE")return Ow(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let m=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",...m.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let R=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(m=>m.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${R} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...E?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=ft(e,t,n,r,s,!0,!0,p,d);return l?ns(f,p.sources):f}var gR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function np(e){return e.reduce((t,n)=>gR[t]>=gR[n.fetch]?t:n.fetch,"none")}function ns(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${np(t).toUpperCase()}`,...n]}function Cw(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function ja(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:Cw(o)};return e.sources.push(s),s}function Pw(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function za(e){return` fetch: ${Pw(e)}`}function Ow(e,t){let n=Tm.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":j(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?Oc:Pc).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 Lw(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 Lm(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 ft(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let c=n?.get(e)??(n?[...n].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),d=r?.get(e)??(r?[...r].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),p=o&&c!==void 0&&XR(e,c),f=p?"COUNT_TOTAL_COUNT":d?.kind==="CANONICAL_LOCAL"||c&&c.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":ze(e),R=Uw(e);c&&c.capability!=="EXACT_PUSHDOWN"&&R.push(...c.reasons.map(h=>h.code));let E=[],m=Kf(e,Bi.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let h of tp.get(e)??[]){if(E.push(` cross join: ${h.leftLabel} \xD7 ${h.rightLabel}`),E.push(` left rows: ${h.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${h.rightRows??`runtime (${h.rightRuntimeLabel})`}`),h.plan)E.push(` rows: ${h.plan.outputRows}`),E.push(` row guard: ${h.plan.outputRows} / ${h.plan.limit}`),E.push(" guard timing: before row materialization");else{let I=h.leftRows===null?"left rows":String(h.leftRows),N=h.rightRows===null?"right rows":String(h.rightRows);E.push(` rows: runtime (${I} \xD7 ${N})`),E.push(` row guard: runtime checked / ${uu}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let h of Sc.get(e)??kR.get(e)??[])E.push(Lw(h));m&&(E.push(` grouping source: ${m.source}`),E.push(` grouping sets: ${m.expandedSetCount} (limit: ${m.setLimit})`),E.push(` grouping items: ${m.groupingItemCount} (limit: ${m.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${m.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),E.push(...Lm(e,u,[e.from,...e.joins.map(h=>h.table)].some(h=>h.cteName!==null)));for(let h of e.columns){if(h.type!=="WINDOW_COL"||h.windowKind===void 0||h.windowKind==="RANKING")continue;let I=[];h.partitionBy.length>0&&I.push(`PARTITION BY ${h.partitionBy.map(N=>N.tableAlias?`${N.tableAlias}.${N.field}`:N.field).join(", ")}`),h.orderBy.length>0&&I.push(`ORDER BY ${h.orderBy.map(_m).join(", ")}`),h.windowKind==="VALUE"?E.push(` window ${h.alias}: ${h.valueFunc}(offset=${h.offset}) OVER (${I.join(" ")})`):h.windowKind==="AGGREGATE"&&(E.push(` window ${h.alias}: ${h.aggFunc} OVER (${I.join(" ")})`),E.push(h.frame===null?" frame: PARTITION ENTIRE":` frame: ${h.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${h.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let h=e.where===null?"":j(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${h}${h?" ":""}limit 1`),a){let I=ja(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${h}${h?" ":""}limit 1`);E.push(za(I))}return E.push(" fields: $id"),E.push(" fetch API: GET records.json (totalCount=true)"),E.push(" REST execution: single GET"),E.push(" record limit: maxRecords/onLimitReached not applied"),E.push(" fallback: full record scan when totalCount is missing or invalid"),E.push(" search abort: fail-closed (SearchAbortedError)"),E}d?(E.push(` order plan: ${d.kind}`),d.reasonCodes.length>0&&E.push(` order reason: ${d.reasonCodes.join(", ")}`),d.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):d.kind==="KORDER_CURSOR"&&(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" fetch API: POST/GET/DELETE records/cursor.json"),E.push(" cursor page size: 500"),E.push(` scan rows: ${d.scanRows}`))):m&&E.push(" order plan: CANONICAL_LOCAL");let g=d&&!d.requiresCompleteInput?{...e,orderBy:[]}:e,y=nn(g);d?.requiresCompleteInput&&y.add("LOCAL_ORDER");let T=He(e.where);if(y.size>0&&(!T||m!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...y].join(", ")}`),E.push(" onLimit=truncate: disabled")),T)return E.push(" predicate: constant false"),E.push(" records API access: none"),E.push(` app: APP${e.from.appId} (${e.from.appId})`),E;if(f==="FULL_SCAN"&&R.length>0&&E.push(` reason: ${R.join(", ")}`),f==="SIMPLE"){let h=bo(d?.kind==="CANONICAL_REST_TOP_N"?jR(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=d?.kind==="KORDER_CURSOR"?Ru(e):h.query;if(E.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let N=I?"EXACT":"ALL";E.push(za(ja(s,e.from.appId,e.from.alias,l,N,I)))}E.push(` fields: ${h.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.fields.join(", ")}`)}else{let h=hm.get(e),I=Am.get(e),N=I??Rn(e);if(e.joins.length>0)if(h){if(E.push(" join pushdown plan: applied (runtime metadata resolved)"),E.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),E.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),h.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${h.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${h.joinPlan.residualWhere===null?"(none)":bn(h.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${h.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${h.joinPlan.allKlikes.length-h.joinPlan.appliedKlikes.size}`),h.joinPlan.residualWhere!==null)for(let w of h.joinPlan.rejections)E.push(` join pushdown not applied: ${w.reason}`)}else{let w=e.joins.some(k=>k.type!=="INNER"&&k.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(k=>k.table)].some(k=>k.cteName!==null||!!k.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";E.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),E.push(` join pushdown not applied: ${w}`)}let D=En(e,e.from,u),P=e.from.alias?` AS ${e.from.alias}`:"",M=N.mainCondition,U=WR(e),C=e.joins.length===0&&c?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!Lt(e.where)?j(e.where):"",v=e.from.alias?h?.queriesByAlias.get(e.from.alias):void 0,b=v||(M!==null?j(M):C||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${P} (${e.from.appId})`),E.push(` kintone query: ${b}`);let O=h?.joinPlan.items.find(w=>w.targetAlias===e.from.alias),A=h?.joinPlan.serverFunctionConsumptions.find(w=>w.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let w=!I&&U!==null,k=b==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":w?"PREFILTERED":O?.relation==="exact"||A||C!==""?"EXACT":"PREFILTERED";E.push(za(ja(s,e.from.appId,e.from.alias,l,k,b,w)))}O||A?(E.push(` pushdown applied: ${v}`),E.push(` relation: ${O?.relation??"exact"}`)):I&&M!==null?(E.push(` pushdown applied: ${b}`),E.push(` relation: ${N.mainRelation??"exact"}`)):U!==null&&(!I||vi(U))&&E.push(` pushdown candidate: ${j(U)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),E.push(` fields: ${D.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":D.join(", ")}`);for(let w of e.joins){let k=En(e,w.table,u),L=w.table.alias?` AS ${w.table.alias}`:"",F=w.type==="INNER"?"JOIN":`${w.type} JOIN`,H=w.table.alias?N.joinConditions.get(w.table.alias)??null:null,$=w.table.alias&&!w.table.subtableCode&&w.table.cteName===null&&e.where?Kr(e.where,{tableAlias:w.table.alias}):null,x=w.table.alias?h?.queriesByAlias.get(w.table.alias):void 0,G=w.table.alias?Sm.get(e)?.get(w.table.alias):void 0,Y=!I&&w.type==="INNER"&&w.table.cteName===null&&!w.table.subtableCode&&[e.from,...e.joins.map(ie=>ie.table)].some(ie=>ie.cteName!==null),K=x||(H!==null?j(H):G?.additionalQuery?G.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),_=Y||G?.plan.kind==="RANGE_CANDIDATE"||G?.plan.kind==="FALLBACK"&&G.plan.reason==="JOIN_KEY_VALUES_RUNTIME",V=G&&G.queries.length>0?G.queries.map(ie=>K!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${ie}) and (${K})`:ie):[_?"(runtime source keys)":K],te=V.join(" | ");E.push(` ${F}: APP${w.table.appId}${L} (${w.table.appId})`);for(let ie of V)E.push(` kintone query: ${ie}`);let De=h?.joinPlan.items.find(ie=>ie.targetAlias===w.table.alias),Wt=h?.joinPlan.serverFunctionConsumptions.find(ie=>ie.targetAlias===w.table.alias);if(a&&w.table.cteName===null){let ie=_||!G&&!I&&$!==null,Ht=te==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":ie?"PREFILTERED":G?.plan.kind==="IN"&&De?.relation!=="superset"&&G.additionalRelation!=="superset"||De?.relation==="exact"||Wt?"EXACT":"PREFILTERED";E.push(za(ja(s,w.table.appId,w.table.alias,"join",Ht,te,ie)))}if(G)if(G.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let ie of V)E.push(` pushdown applied: ${ie}`);E.push(" relation: superset")}else if(G.plan.kind==="IN"){let ie=De?.relation==="superset"||G.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let Ht of V)E.push(` pushdown applied: ${Ht}`);E.push(` relation: ${ie}`)}else G.plan.kind==="RANGE_CANDIDATE"?(E.push(" join key prefilter: range candidate"),E.push(" relation: superset"),E.push(` join key prefilter reason: ${G.plan.reason}`)):G.plan.kind==="FALLBACK"&&(E.push(G.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),E.push(` join key prefilter reason: ${G.plan.reason}`));else Y?(E.push(" join key prefilter: runtime candidate"),E.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),$!==null&&E.push(` pushdown candidate: ${j($)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):De||Wt?(E.push(` pushdown applied: ${x}`),E.push(` relation: ${De?.relation??"exact"}`)):I&&H!==null?(E.push(` pushdown applied: ${K}`),E.push(` relation: ${N.joinRelations.get(w.table.alias)??"exact"}`)):$!==null&&(!I||vi($))&&E.push(` pushdown candidate: ${j($)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${k.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":k.join(", ")}`)}}return E.push(...Mw(e,n,r,i,s)),E}function _w(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,c)=>{c>0&&s.push(""),s.push(...ft(l,`[union:${c+1}]`,t,n,r,!0,!0,i,"union"))}),s}function Dw(e){let t=new Map,n=a=>ce(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Me?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),c=[];for(let d of a.joins){let u=r(d.table),p=n(d.table);if(d.type==="CROSS"){let f=s!==null&&u!==null?di(s,u):null;c.push({leftLabel:l,rightLabel:p,leftRows:s,rightRows:u,plan:f,rightRuntimeLabel:d.table.cteName===null?`APP${d.table.appId} fetched rows`:`${p} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${p}`}else s=null,l=`${l} ${d.type} JOIN ${p}`}return c.length>0&&tp.set(a,c),He(a.where)?s=0:a.where!==null&&(s=null),ee(a).type!=="NONE"||a.distinct||a.having!==null||Hn(a)||a.columns.some(d=>d.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,Yo(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 vw(e,t,n,r,i={sources:[]},o=1e4,a=kt({})){Dw(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let c=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",c?` cycle: path-scoped on ${c.column}, mark ${c.markColumn} ('${c.markValue}'/'${c.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let d of nm(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let u=`APP${d.appId}${d.subtableCode?`$${d.subtableCode}`:""}`;s.push(` source ${u}: R unknown, pageSize=500, estimated calls=ceil(R/500), maxRecords=${o}`)}s.push(" iteration rows: unknown until execution"," records API: none","")}else if(l.query.type==="SELECT")s.push(...ft(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let c=l.query,d=bm.get(c);if(c.args.some(R=>R.type==="VARIABLE")){let R=E=>{let m=c.args[E];return m?m.type==="VARIABLE"?`@${m.name} (runtime)`:E<2?"literal":m.type==="NUMBER"?z(m):m.value:E===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`," series type: deferred (variable)",` start: ${R(0)}`,` stop: ${R(1)}`,` step: ${R(2)}`," rows: runtime",` row guard: runtime / ${Dt}`," records API: none","");continue}let p=Yo(c),f=p.kind==="DATE"?`${p.step} ${String(p.dateUnit??"DAY").toLowerCase()}${Math.abs(p.step)===1?"":"s"}`:String(p.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`,` series type: ${p.kind}${d?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${d?.variableNames.has(0)?`@${d.variableNames.get(0)} (DECLARE default; value hidden)`:p.start}`,` stop: ${d?.variableNames.has(1)?`@${d.variableNames.get(1)} (DECLARE default; value hidden)`:p.stop}`,` step: ${f}`,` rows: ${p.rowCount}${d?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${p.rowCount} / ${Dt}`,...d?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...As(e.query,"[main]",t,n,100,_e,o,r,!1,i,"main",a)),Xt(e)){s.push("");let l=Qt(e);s.push(...ft(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function Uw(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"),e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),Lt(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),zt(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 Mw(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(...ft(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...ft(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...ft(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(...ft(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function xw(e,t,n=Vt,r=_e){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,...rp(ya(e,n,r))]:a}function kw(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(...ft(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Fw(e,t,n,r,i=100,o=_e,a=1e4){if(e.applyBlocks?.length)return Gw(e,t,i,o,a);let s=rf(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),c=oa(e),d=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?Ji(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${Ji(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(He(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),d&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!c&&!d&&p.push("\u5358\u7D14 SET"),u.push(` set type: ${p.join(", ")}`),c){let f=Ww(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${Yw(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...ft(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function Gw(e,t,n,r,i){let o=ya(e,n,r),a=o.branches[0],c=e.applyBlocks.flatMap(R=>[...R.operations]).map(R=>{if(R.kind==="APPEND")return"APPEND";if(R.kind==="ADD"||R.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(R.selector.kind==="ALL_ROWS")return"ALL_ROWS";let E=R.selector.where;return E.type==="BINARY"&&E.op==="="&&E.left.type==="FIELD"&&E.left.tableAlias===null&&E.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),d=[...new Set(a.targets.flatMap(R=>R.operations.map(E=>E.kind)))],u=d.includes("REMOVE"),p=Im.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":j(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${Ji(e.where)}`,`parent cardinality: ${_t(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(R=>`${R.field} (${R.targetKind})`).join(" | ")}`,`operations: ${d.join(" | ")}`,`selector: ${c.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${u?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...rp(o)]}function Kw(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${Ji(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(He(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function $w(e,t,n=Vt,r=_e){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,...rp(ya(e,n,r))]:a}function rp(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 Bw(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(...ft(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function Vw(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(_m).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,He(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: ${Ji(e.where)}`),o}function _m(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function Ji(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return j(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function Ww(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")&&Gi(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"&&Gi(n,t)}async function Dm(e,t,n,r,i){let o=jc(e),a=await Te(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 Te(t.appId,n,r),c=new Set,d=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw Oe(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw Oe(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else throw Oe(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),R=p.field==="$id"||l.has(p.field);if(!f)throw Oe(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(R)throw Oe(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);c.add(p.field)}let u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...c],sourceFields:[...d],evaluationTypes:u}}function Hw(e,t,n){if(!e)return{};let r=Gt(e.target,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${n}.${i}`,o])])}function Gi(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Gi(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Gi(e.left,t),Gi(e.right,t))}function Yw(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} = ${vm(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 vm(e){return`${yR(e.left)} ${e.op} ${yR(e.right)}`}function yR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic formatting.`);return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?z(e):e.type==="ARITH"?`(${vm(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 jw=2,Ss=5,zw=3e4,qw=10*6e4+3e4,Ts=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??jw;if(!Number.isSafeInteger(r)||r<1||r>Ss)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Ss}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??zw,this.quarantineMs=n.quarantineMs??qw}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 Oa(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>Ss)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${Ss}.`)}};function Jw(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function Xw(e,t=r=>new Promise(i=>setTimeout(i,r)),n=Jw){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 Qw(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 Um(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let c=await t.get();return c.next||(n=!0,t.onReleased?.()),c});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await Qw(Xw(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function Mm(e){return xm(e,eb(e))}function xm(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=tb(o.options),s=nb(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Is(o.minValue),maxValue:Is(o.maxValue),minLength:Is(o.minLength),maxLength:Is(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)&&!Zw.has(o.type)};l.semantics=ne(l),i.push(l),o.fields&&i.push(...xm(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var Zw=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function eb(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 Is(e){return e==null||e===""?void 0:e}function tb(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 nb(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function km(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 rb="Filter aborted because of too many search results";function Fm(e){return e?.includes(rb)===!0}var ro=class extends Error{constructor(n,r,i){super(i);this.status=n;this.code=r;this.name=r??"KintoneHttpError"}};function Gm(e){let t=ib(e.baseUrl),n=e.guestSpaceId===void 0?"/k/v1":`/k/guest/${ob(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 Ts(new URL(t).host,{maxActive:i});async function a(l,c,d,u){let p=new Headers({Accept:"application/json"});if(e.auth.type==="apiToken"){let m=typeof e.auth.apiToken=="function"?e.auth.apiToken(d):e.auth.apiToken;p.set("X-Cybozu-API-Token",m)}else p.set("X-Cybozu-Authorization",ab(`${e.auth.username}:${e.auth.password}`));u!==void 0&&p.set("Content-Type","application/json");let f=new AbortController,R=setTimeout(()=>f.abort(),e.timeoutMs??3e4);R.unref?.();let E;try{E=await r(`${t}${n}${l}`,{method:c,headers:p,signal:f.signal,...u===void 0?{}:{body:JSON.stringify(u)}})}finally{clearTimeout(R)}if(!E.ok){let m=await E.text(),g,y=`kintone API error: HTTP ${E.status}`;try{let T=JSON.parse(m);typeof T.code=="string"&&(g=T.code),typeof T.message=="string"&&(y=T.message)}catch{m!==""&&(y=`${y}: ${m}`)}throw new ro(E.status,g,y)}return{body:await E.json(),response:E}}return{async getRecords(l){let c=new URLSearchParams({app:String(l.app),query:l.query});l.fields.forEach(p=>c.append("fields[]",p)),l.totalCount===!0&&c.set("totalCount","true");let{body:d,response:u}=await a(`/records.json?${c}`,"GET",l.app);return Fm(u.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d},async openCursor(l){let c=await o.acquire(),d;try{d=(await o.runCreate(()=>a("/records/cursor.json","POST",l.app,{app:l.app,query:l.query,size:l.size,...l.fields&&l.fields.length>0?{fields:l.fields}:{}}))).body}catch(u){throw u instanceof ro?c.release():c.quarantine(),u instanceof ro?u:new La(u)}return Um(Number(d.totalCount),{get:async()=>(await a(`/records/cursor.json?id=${encodeURIComponent(d.id)}`,"GET",l.app)).body,delete:async()=>{await a("/records/cursor.json","DELETE",l.app,{id:d.id})},onReleased:()=>c.release(),onReleaseUnknown:()=>c.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 deleteRecords(l){await a("/records.json","DELETE",l.app,l)},async getApps(){let l=[];for(let c=0;;c+=100){let d=new URLSearchParams({limit:"100",offset:String(c)}),u=await a(`/apps.json?${d}`,"GET",0);if(l.push(...u.body.apps.map(p=>({appId:Number(p.appId),name:p.name,description:p.description}))),u.body.apps.length<100)return l}},async getFields(l){let c=await a(`/app/form/fields.json?app=${encodeURIComponent(String(l))}`,"GET",l);return Mm(c.body.properties)},async getNumberPrecision(l){let c=await a(`/app/settings.json?app=${encodeURIComponent(String(l))}`,"GET",l);return Tf(c.body)},async getProcessStatuses(l){let c=await a(`/app/status.json?app=${encodeURIComponent(String(l))}&lang=user`,"GET",l);return{enable:c.body.enable,states:km(c.body.states)}}}}function ib(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 ob(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive integer.`);return e}function ab(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 ws(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)}function Km(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 sb="3.72.0",io=new WeakMap,bs=new WeakMap,ip=new WeakMap;function lb(e,t={}){return Ns(e,t)}async function ub(e,t={}){let n=Ns(e,t);if(n.diagnostics.some(l=>l.severity==="error"))return n.diagnostics;let r=bs.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 cp(n.statements,n.meta,o,{strict:t.strict})).map(l=>{let c=n.statementRanges[l.statementIndex??0]?.start??0;return Be(e,c,{severity:l.severity,code:l.code,message:l.message,...l.statementIndex!==void 0?{statementIndex:l.statementIndex}:{}})});return[...n.diagnostics,...s]}async function cb(e,t){let n=Ns(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=gb(e,t.apps),o=bs.get(n.statements),a=o?Bm(t.client,o):t.client;try{return await Cm(i,a,t.variables,"flow-explain",t.maxRecords,t.cursorMaxActive,!1,t.dmlMaxRows,t.dmlMaxSubtableRows,t.resolveMetadata,t.recursiveCteMaxDepth,t.recursiveCteMaxRows,t.recursiveCteMaxExpansions,t.asOf,t.timezone)}catch(s){throw ws(s)}}function pb(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 m=Ns(e.script,e),g=m.diagnostics.find(y=>y.severity==="error");if(g)throw new Ie(g.code,`${g.message} (${g.line}:${g.column})`);r=m.statements,i=m.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}let o={},{client:a,script:s,statements:l,meta:c,apps:d,onChunkWritten:u,...p}=e,f=bs.get(r),R=f?Bm(a,f):a,E=u&&f?m=>u({...m,appId:f.get(m.appId)?.appId??m.appId}):u;return io.set(o,bR(r,i,R,p,E)),f&&ip.set(o,f),o}catch(t){throw ws(t)}}async function db(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.");fb(e);let i=io.get(t);if(!i)throw new Ie("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");try{let o=await CR(e,i,r),a=ip.get(t)?.get(o.appId)?.appId??o.appId;return{...o,appId:a}}catch(o){throw ws(o)}}function fb(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 Eb(e,t){let n=io.get(t);if(!n)throw new Ie("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");let r=await NR(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:Rb(n.metrics)}}function Rb(e){return{...e,limitReachedApps:[...e.limitReachedApps]}}async function mb(e){let t=io.get(e);t&&(io.delete(e),ip.delete(e),await PR(t))}function gb(e,t){if(!Kn(e).some(n=>n.source==="logical"))return e;if(t===void 0)throw new Error("Logical app configuration is required.");return $m(e,t).normalizedSql}function Ns(e,t){let n=bd(e,t);if(t.apps!==void 0&&Kn(e).some(r=>r.source==="logical")){let r=$m(e,t.apps);bs.set(n.statements,r.appBindingByMappedApp)}return n}function $m(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(Gn(o),i)}catch{}}return lo(e,"flow",{resolveLogicalApp(r){let i=n.get(Gn(r));if(i===void 0)throw new Error(`Logical app LAPP_${r} is not defined.`);return i}})}function Bm(e,t){let n=r=>t.get(r)?.appId??r;return{getRecords:r=>e.getRecords({...r,app:n(r.app)}),openCursor:r=>e.openCursor({...r,app:n(r.app)}),postRecords:r=>e.postRecords({...r,app:n(r.app)}),putRecords:r=>e.putRecords({...r,app:n(r.app)}),deleteRecords:r=>e.deleteRecords({...r,app:n(r.app)}),getApps:()=>e.getApps(),getFields:r=>e.getFields(n(r)),getNumberPrecision:r=>e.getNumberPrecision(n(r)),getProcessStatuses:r=>e.getProcessStatuses(n(r))}}0&&(module.exports={KsqlFlowError,createExecutionContext,createKintoneClient,disposeExecutionContext,executeStatement,explainScript,isDmlResult,parseScript,previewStatement,validateScript,version});
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 hw(e){if(e.unappliedKlikes.length>0)throw new Error(`UnsupportedError: ${gw}`)}async function Aw(e,t,n,r,i){let o=r.filter(R=>!R.inSubtable),a=new Map(o.map(R=>[R.code,R])),s=new Map(o.map(R=>[R.code,R.fieldType])),l=new Map(o.flatMap(R=>R.optionOrder?[[R.code,new Set(Object.keys(R.optionOrder))]]:[])),c=gu(e.where,{fieldTypes:s,fieldOptions:l});hw(c);let d=c.prefilter===null?"":j(c.prefilter),u=new Set(ua(e,r));for(let R of Sw(e.where))u.add(R);let p=await Tw(e.appId,e.where,a,t,i);return(await Ge(t.getRecords,e.appId,d,[...u],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1,onLimit:"error"})).map(R=>({snapshot:R,row:Gt(R,null)})).filter(({row:R})=>ue(e.where,R,p.fieldTypeResolver,c.appliedKlikes,p.fieldSemanticsResolver,ae(n))).map(({snapshot:R})=>R)}function Sw(e){return Mc(e)}async function Tw(e,t,n,r,i){let s=[...Iw(t)].some(d=>n.get(d)?.fieldType==="STATUS")?await qc(e,r,i):void 0;return{fieldTypeResolver:d=>d.field==="$id"?"NUMBER":n.get(d.field)?.fieldType,fieldSemanticsResolver:d=>{if(d.field==="$id")return zn(ne({fieldType:"__ID__"}),e,"$id");let u=n.get(d.field);if(!u)return;let p=u.semantics??ne(u),f=u.fieldType==="STATUS"&&s?{...p,optionOrder:s}:p;return zn(f,e,u.code)}}}function Iw(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 ww(e,t,n){let r=t.validations.flatMap(d=>d.errors),i=t.validations.reduce((d,u)=>d+(u.invalidRows>0?1:0),0),o=t.validations[0]?.columns?[...t.validations[0].columns]:[...At(n,e.fields).payloadFields,...li],a=t.guards.parentRows,s=su(t),l=s.branches[0],c={type:"VALIDATION",operation:"INSERT",validatedRows:a,validRows:a-i,invalidRows:i,errorCount:r.length,columns:o,errors:r,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:zi(l),guards:qi(l),deletedRows:{total:0,parentRows:0},diagnostic:s};return kn.set(c,Ts(o,n,e.appId)),c}function bw(e,t,n){let r=t.validations,i=r.flatMap(c=>c.errors),o=r.reduce((c,d)=>c+(d.invalidRows>0?1:0),0),a=r[0]?.columns?[...r[0].columns]:[...At(n,e.assignments.map(c=>c.field)).payloadFields,...li],s=pi(t),l={type:"VALIDATION",operation:"UPDATE",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-o,invalidRows:o,errorCount:i.length,columns:a,errors:i,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:zi(s.branches[0]),guards:qi(s.branches[0]),deletedRows:{total:t.plans.reduce((c,d)=>c+d.tables.reduce((u,p)=>u+p.deletedRows,0),0),parentRows:t.plans.filter(c=>c.tables.some(d=>d.deletedRows>0)).length},diagnostic:s};return kn.set(l,Ts(a,n,e.appId)),l}function Nw(e,t,n){let r=t.create.validations.flatMap(R=>R.errors),i=t.update.validations.flatMap(R=>R.errors),o=[...r,...i].map(R=>({...R,$err_operation:"UPSERT"})),a=new Set(o.map(R=>R.$err_row)).size,s=t.create.validations[0]?.columns??t.update.validations[0]?.columns??[...At(n,e.fields).payloadFields,...li],l=lu(t),c=l.branches.find(R=>R.branch==="insert"),d=l.branches.find(R=>R.branch==="update"),u=zi(c),p=zi(d),f={type:"VALIDATION",operation:"UPSERT",validatedRows:t.guards.parentRows,validRows:t.guards.parentRows-a,invalidRows:a,errorCount:o.length,columns:[...s],errors:o,...e.validationErrorTable?{errTable:e.validationErrorTable}:{},apply:[...u,...p],guards:{revisionRequired:t.guards.revisionRequired,parentRows:t.guards.parentRows,dmlMaxRows:t.guards.dmlMaxRows,subtableRows:t.guards.subtableRows,dmlMaxSubtableRows:t.guards.dmlMaxSubtableRows,wouldExceed:t.guards.wouldExceed},applyBranches:{create:{apply:u,guards:qi(c)},update:{apply:p,guards:qi(d)}},deletedRows:{total:t.update.plans.reduce((R,E)=>R+E.tables.reduce((m,y)=>m+y.deletedRows,0),0),parentRows:t.update.plans.filter(R=>R.tables.some(E=>E.deletedRows>0)).length},diagnostic:l};return kn.set(f,Ts([...s],n,e.appId)),f}function zi(e){return e.targets.map(t=>{let n=t.operations.map(r=>({kind:r.kind,...r.matchedRows!==void 0?{matchedRows:r.matchedRows??void 0}:{},...r.changedRows!==void 0?{changedRows:r.changedRows??void 0}:{},...r.addedRows!==void 0?{addedRows:r.addedRows??void 0}:{},...r.removedRows!==void 0?{removedRows:r.removedRows??void 0}:{},...r.value!==void 0?{value:r.value}:{},...r.changed!==void 0?{changed:r.changed}:{}}));return t.targetKind==="SUBTABLE"?{field:t.field,operations:n,changedSubtableRows:t.changedCount??0,deletedRows:vn(t,"REMOVE")}:{field:t.field,operations:n,changedSubtableRows:0,deletedRows:0,multiValue:{fieldType:t.fieldType??"UNKNOWN",addedValues:vn(t,"ADD"),removedValues:vn(t,"REMOVE_VALUE"),changedValues:t.changedCount??0,postImages:t.postImages??[]}}})}function qi(e){if(e.guards.parentRows===null||e.guards.subtableRows===null||e.guards.wouldExceed===null)throw new Error("InternalError: runtime APPLY diagnostic guard contains unknown counts.");return{revisionRequired:e.guards.revisionRequired,parentRows:e.guards.parentRows,dmlMaxRows:e.guards.dmlMaxRows,subtableRows:e.guards.subtableRows,dmlMaxSubtableRows:e.guards.dmlMaxSubtableRows,wouldExceed:e.guards.wouldExceed}}var Wt=100,ve=500;function ot(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 Ts(e,t,n){let r=new Map(t.filter(a=>!a.inSubtable).map(a=>[a.code,a])),i=new Set(["$id","$err_statement","$err_row"]),o=new Map;for(let a of e){if(a==="$id"){o.set(a,{sortKind:"number",fieldType:"RECORD_NUMBER",semantics:ne({fieldType:"RECORD_NUMBER"})});continue}let s=r.get(a);if(s){o.set(a,ke(s,n));continue}o.set(a,ee(i.has(a)?"number":"string"))}return o}async function Cw(e,t,n,r,i,o){let a=await Im(e,t,n,r,i,o),s=await Ie(e.appId,n,i),l=Kl(e,a,s,ae(r)),c=e.assignments.map(p=>p.field),d=await Q(e.appId,n,i),u=await $e(e.appId,c,d,n,i);if(it(l.flatMap(p=>p.records.map(f=>f.record)),c,d,u),r.confirm&&!await r.confirm(a.length,"UPDATE"))throw new Re("UPDATE",a.length);for(let p of l)await n.putRecords(p);return{type:"UPDATE",updatedCount:a.length}}function Pw(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 Ow(e,t,n,r){if(await sn(e,t,r),He(e.where))return{type:"DELETE",deletedCount:0};if(e.subtableCode)return Dw(e,t,n,r);let i=$l(e),a=(await Ei(t.getRecords,i.app,i.query,{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1})).ids;if(n.confirm&&!await n.confirm(a.length,"DELETE"))throw new Re("DELETE",a.length);let s=Rf(e.appId,a);for(let l of s)await t.deleteRecords(l);return{type:"DELETE",deletedCount:a.length}}function Nm(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"?xt(s.expr,{},t.get(o),ae(n)):ht(s,t.get(o))}}),i})}async function Lw(e,t,n,r){if(e.onInsertApplyBlocks?.length||e.onUpdateApplyBlocks?.length)return QI(e,t,n,r);if(e.checkGroups?.length)return no(e,t,n,r);let i=await _e(e.appId,e.fields,t,r),o=await $e(e.appId,e.fields,i,t,r),a=[],s=[],l=await Ie(e.appId,t,r),c=np(e);if(gs(jc(e,t,n,i,c)).execution.status==="ELIGIBLE"){let f=Nm(e,l,n);return it(f,e.fields,i,o),ym(e.appId,e.keyFields[0],f,c,t,n)}let u=await Tr(e.appId,e.keyFields,c,t,n,l);if(e.values.forEach((f,R)=>{let E={};e.fields.forEach((y,g)=>{let T=f[g];T.type==="CASE_VALUE"?E[y]={value:xt(T.expr,{},l.get(y),ae(n))}:E[y]={value:ht(T,l.get(y))}});let m=Sr(u,c[R]);m!==void 0?s.push({id:m,record:E}):a.push(E)}),it([...a,...s.map(f=>f.record)],e.fields,i,o),n.confirm&&a.length+s.length>0){let f=a.length+s.length;if(!await n.confirm(f,"UPDATE"))throw new Re("UPDATE",f)}let p=[];for(let f=0;f<a.length;f+=100){let R=await t.postRecords({app:e.appId,records:a.slice(f,f+100)});p.push(R.ids)}for(let f=0;f<s.length;f+=100)await t.putRecords({app:e.appId,records:s.slice(f,f+100)});return{type:"UPSERT",insertedCount:p.flat().length,updatedCount:s.length}}function np(e){return e.values.map(t=>e.keyFields.map(n=>{let r=e.fields.indexOf(n);if(r===-1)throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${n}\u300D\u304C INSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let i=t[r];return i.type==="STRING"?i.value:i.type==="NUMBER"?z(i):i.type==="CASE_VALUE"?Ve(i.expr,{}):i.elements.map(o=>o.value).join(",")}))}async function rp(e,t,n,r){if(t.length===0)return;let i=await Ie(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 _w(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 Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),s=Is(a),l=new Map;for(let d of e.values){let u=TR(d[o]);if(!s.get(u))throw new Error(`_pid=${u} \u306E\u89AA\u30EC\u30B3\u30FC\u30C9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093`);let f={value:{}};e.fields.forEach((E,m)=>{if(E!=="_pid"){if(E.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB INSERT \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E}\u300D\u306F\u6307\u5B9A\u3067\u304D\u307E\u305B\u3093`);f.value[E]={value:TR(d[m])}}});let R=l.get(u);R?R.push(f):l.set(u,[f])}let c=[];for(let[d,u]of l.entries()){let p=s.get(d),R=[...ro(p,i),...u];c.push(Cm(e.appId,d,io(p),i,R))}for(let d of c)await t.putRecords(d);return{type:"INSERT",createdIds:[],insertedCount:e.values.length}}async function vw(e,t,n,r){let i=e.subtableCode;if(!ki(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Bt(e.where,o);for(let p of e.assignments)p.value.type==="CASE_VALUE"&&ls(p.value.expr,o);let a=await rp(e.appId,o,t,r),s=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=ip(s,i).filter(p=>ue(e.where,p.flat,a,void 0,void 0,ae(n)));if(n.confirm&&!await n.confirm(c.length,"UPDATE"))throw new Re("UPDATE",c.length);let d=new Map;for(let p of c){if(!p.rowId)throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u5BFE\u8C61\u306B id \u672A\u63A1\u756A\u306E\u884C\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059");let f=d.get(p.parentId);f||(f=new Map,d.set(p.parentId,f));let R={};for(let E of e.assignments){if(E.field.startsWith("_"))throw new Error(`\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB UPDATE \u3067\u30B7\u30B9\u30C6\u30E0\u5217\u300C${E.field}\u300D\u306F\u66F4\u65B0\u3067\u304D\u307E\u305B\u3093`);R[E.field]={value:la(E.value,p.flat,a,ae(n))}}f.set(p.rowId,R)}let u=Is(s);for(let[p,f]of d.entries()){let R=u.get(p);if(!R)continue;let m=ro(R,i).map(y=>{let g=y.id??"";if(!g)return y;let T=f.get(g);return T?{id:g,value:T}:{id:g}});await t.putRecords(Uw(e.appId,p,io(R),i,m))}return{type:"UPDATE",updatedCount:c.length}}async function Dw(e,t,n,r){let i=e.subtableCode;if(!ki(e.where))throw new Error("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB DELETE \u306B\u306F _rid \u6761\u4EF6\u304C\u5FC5\u9808\u3067\u3059");let o=[];Bt(e.where,o);let a=await rp(e.appId,o,t,r),s=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),c=ip(s,i).filter(p=>ue(e.where,p.flat,a,void 0,void 0,ae(n)));if(n.confirm&&!await n.confirm(c.length,"DELETE"))throw new Re("DELETE",c.length);let d=new Map;for(let p of c){let f=d.get(p.parentId);f?f.push(p.rowIndex):d.set(p.parentId,[p.rowIndex])}let u=Is(s);for(let[p,f]of d.entries()){let R=u.get(p);if(!R)continue;let E=ro(R,i),m=new Set(f),y=E.filter((g,T)=>!m.has(T));await t.putRecords(Cm(e.appId,p,io(R),i,y))}return{type:"DELETE",deletedCount:c.length}}function Is(e){let t=new Map;for(let n of e){let r=String(n.$id?.value??"");r&&t.set(r,n)}return t}function ip(e,t){let n=[];for(let r of e){let i=String(r.$id?.value??""),o=io(r),a=ro(r,t);for(let s=0;s<a.length;s++){let l=a[s],c={...ca(l,s),_pid:i};for(let[d,u]of Object.entries(r))d!==t&&(c[`_p.${d}`]=wc(u?.value));n.push({parent:r,parentId:i,parentRevision:o,rowIndex:s,rowId:l.id??"",row:l,flat:c})}}return n}function ro(e,t){let n=e[t]?.value;return Array.isArray(n)?n:[]}function io(e){let t=Number(e.$revision?.value??0);return Number.isFinite(t)?t:0}function Cm(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Uw(e,t,n,r,i){return{app:e,records:[{id:Number(t),revision:n,record:{[r]:{value:i}}}]}}function Mw(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"?z(e):e.type==="CASE_VALUE"?Ve(e.expr,{}):e.elements.map(t=>t.value).join(",")}function wc(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 ki(e){switch(e.type){case"BINARY":return e.left.type==="FIELD"&&e.left.tableAlias===null&&e.left.field==="_rid";case"LOGICAL":return ki(e.left)||ki(e.right);case"NOT":case"GROUP":return ki(e.expr);default:return!1}}async function xw(e,t,n,r){let i=[];Bt(e.where,i);let o=await rp(e.appId,i,t,r),a=await Q(e.appId,t,r);if(He(e.where))return{type:"REORDER",reorderedParentCount:0};let s=new Map(a.map(f=>[f.code,f.semantics??ne(f)])),l=f=>{if(f.field==="_idx"||f.field==="_pid"||f.field==="_rid")return B("number");let R=f.field.startsWith("_p.")?f.field.slice(3):f.field;return s.get(R)??B("string")},c=await Ge(t.getRecords,e.appId,"",[],{maxRecords:n.maxRecords??1e4,parallel:n.fetchParallel??1}),d=ip(c,e.subtableCode),u=e.all?new Set(c.map(f=>String(f.$id?.value??"")).filter(f=>f!=="")):new Set(d.filter(f=>e.where&&ue(e.where,f.flat,o,void 0,l,ae(n))).map(f=>f.parentId));if(n.confirm&&!await n.confirm(u.size,"UPDATE"))throw new Re("UPDATE",u.size);let p=Is(c);for(let f of u){let R=p.get(f);if(!R)continue;let m=ro(R,e.subtableCode).map((g,T)=>({row:g,i:T,flat:kw(R,e.subtableCode,g,T)}));m.sort((g,T)=>Fw(g.flat,T.flat,e.by,l,ae(n)));let y=m.map(g=>g.row.id??"");await t.putRecords(Mw(e.appId,f,io(R),e.subtableCode,y))}return{type:"REORDER",reorderedParentCount:u.size}}function kw(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}`]=wc(a?.value));for(let[o,a]of Object.entries(n.value??{}))i[o]=wc(a?.value);return i}function Fw(e,t,n,r,i={}){for(let o of n){let a=IR(o.key,e,i),s=IR(o.key,t,i),l=o.key.type==="FIELD_NAME"?r(Fe(o.key.name)):o.key.type==="ARITH_KEY"?B("number"):o.key.type==="FUNC_KEY"?Un(o.key.expr).semantics??B("string"):B("number"),c=ut(a,s,l??B("string"));if(c!==0)return o.direction==="ASC"?c:-c}return 0}function IR(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 ye(e.expr,t,void 0,void 0,n);case"GROUPING_KEY":throw new Error("ArgumentError: GROUPING() is not supported in REORDER BY.")}}async function op(e,t,n,r,i){if(e.checkGroups?.length)return no(e,t,n,r,i);let o=await _e(e.appId,e.fields,t,r),a=await $e(e.appId,e.fields,o,t,r),s=await Ss.materialize(e,t,n,r,i,o),{rows:l,columns:c}=s;if(ep(s),c.length!==e.fields.length){let g=c.length===0&&l.length===0?"\u3002\u7D50\u679C\u304C 0 \u884C\u306E\u305F\u3081\u5217\u3092\u7279\u5B9A\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\uFF08SELECT * \u3092\u7A7A\u30BD\u30FC\u30B9\u306B\u4F7F\u3046\u3068\u5217\u3092\u6C7A\u5B9A\u3067\u304D\u307E\u305B\u3093\u3002\u660E\u793A\u5217\u3067\u6307\u5B9A\u3057\u3066\u304F\u3060\u3055\u3044\uFF09":"";throw new Error(`SELECT \u306E\u5217\u6570\uFF08${c.length}\uFF09\u3068 UPSERT \u306E\u30D5\u30A3\u30FC\u30EB\u30C9\u6570\uFF08${e.fields.length}\uFF09\u304C\u4E00\u81F4\u3057\u307E\u305B\u3093${g}`)}for(let g of e.keyFields)if(!e.fields.includes(g))throw new Error(`ON DUPLICATE \u306E\u30AD\u30FC\u300C${g}\u300D\u304C UPSERT \u30D5\u30A3\u30FC\u30EB\u30C9\u306B\u542B\u307E\u308C\u3066\u3044\u307E\u305B\u3093`);let d=[],u=[],p=await Ie(e.appId,t,r),f=l.map((g,T)=>{let h={};return e.fields.forEach((I,N)=>{if(s.importPresence&&!s.importPresence[T]?.has(I))return;let v=g[c[N]]??"";h[I]={value:Jc(v,p.get(I))}}),h});f.forEach(g=>it([g],e.fields.filter(T=>T in g),o,a));let R=f.map(g=>e.keyFields.map(T=>String(g[T]?.value??"")));if(gs(jc(e,t,n,o,R)).execution.status==="ELIGIBLE")return ym(e.appId,e.keyFields[0],f,R,t,n);if(Ar.has(e)){let g=e.keyFields.map(h=>p.get(h)==="NUMBER"),T=new Set;for(let h of R){let I=un(h,g);if(T.has(I))throw new Error("ERR_KEY_DUP_SOURCE: UPSERT \u30BD\u30FC\u30B9\u5185\u3067\u30AD\u30FC\u304C\u91CD\u8907\u3057\u3066\u3044\u307E\u3059");T.add(I)}}let m=await Tr(e.appId,e.keyFields,R,t,n,p);if(f.forEach((g,T)=>{let h=Sr(m,R[T]);h!==void 0?u.push({id:h,record:g}):d.push(g)}),n.confirm&&d.length+u.length>0){let g=d.length+u.length;if(!await n.confirm(g,"UPDATE"))throw new Re("UPDATE",g)}let y=[];for(let g=0;g<d.length;g+=100){let T=await t.postRecords({app:e.appId,records:d.slice(g,g+100)});y.push(T.ids)}for(let g=0;g<u.length;g+=100)await t.putRecords({app:e.appId,records:u.slice(g,g+100)});return{type:"UPSERT",insertedCount:y.flat().length,updatedCount:u.length}}var ap=Object.freeze(["\u30A2\u30D7\u30EAID","\u30A2\u30D7\u30EA\u540D","\u8AAC\u660E"]),sp=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 Pm(e){let t=await e.getApps(),n=[...ap],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 Om(e,t,n){let r=await Q(e.appId,t,n),i=[...sp],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 Ji(e,t,n,r,i,o){let a=[];rs(e,t,n,r,a,i,o),await Promise.all(a)}async function Lm(e,t,n,r,i,o){let a=[];for(let s of e.columns)if(s.type==="CASE_COL")for(let l of s.expr.branches)a.push(Ji(l.condition,t,n,r,i,o));await Promise.all(a)}function Fi(e,t,n,r,i){return i!==void 0&&i.size>0?mt(e,t,n,i,r):Vt(e,t,n,r)}function rs(e,t,n,r,i,o,a){if(e!==null)switch(e.type){case"BINARY":{let s=e.right;s.type==="SUBQUERY_IN_LIST"&&i.push(Fi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);let c=s.column??l.columns[0]??"";s.resolved=new Set(l.rows.map(d=>d[c]??""))})),s.type==="SCALAR_SUBQUERY"&&i.push(Fi(s.query,t,n,r,a).then(l=>{for(let d of l.warnings??[])o.add(d);if(l.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(l.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let c=l.columns[0]??"";s.resolved=l.rows[0]?.[c]??""}));break}case"LOGICAL":rs(e.left,t,n,r,i,o,a),rs(e.right,t,n,r,i,o,a);break;case"NOT":case"GROUP":rs(e.expr,t,n,r,i,o,a);break;case"EXISTS":{let s=e;i.push(Fi(s.query,t,n,r,a).then(l=>{for(let c of l.warnings??[])o.add(c);s.resolved=l.rowCount>0}));break}case"BOOLEAN":break}}async function _m(e,t,n,r){for(let i of e){if(i.value.type!=="SCALAR_SUBQUERY")continue;let o=await Vt(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 vm(e,t,n,r,i,o){let a=new Map,s=[];for(let d=0;d<e.length;d++){let u=e[d];if(u.type!=="SCALAR_SUBQUERY_COL")continue;let p=JSON.stringify(u.query),f=a.get(p);f||(f=Fi(u.query,t,n,r,o).then(R=>{for(let m of R.warnings??[])i.add(m);if(R.rowCount===0)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u5024\u3092\u8FD4\u3057\u307E\u305B\u3093\u3067\u3057\u305F");if(R.rowCount>1)throw new Error("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA\u304C\u8907\u6570\u884C\u3092\u8FD4\u3057\u307E\u3057\u305F\uFF081\u884C\u306E\u307F\u8A31\u53EF\uFF09");let E=R.columns[0]??"";return R.rows[0]?.[E]??""}),a.set(p,f)),s.push([d,f])}let l=await Promise.all(s.map(([,d])=>d)),c=new Map;return s.forEach(([d],u)=>c.set(d,l[u])),c}var Dm=new WeakMap,Um=new WeakMap,Mm=new WeakMap,bc=new WeakMap,lp=new WeakMap,xm=new WeakMap,km=new WeakMap;async function Fm(e,t,n,r=1e4,i,o){let a=new Set,s=new Set,l=new Set,c={...t,getFields:async C=>(a.add(C),t.getFields(C)),getProcessStatuses:async C=>(s.add(C),t.getProcessStatuses(C)),getNumberPrecision:async C=>(l.add(C),t.getNumberPrecision(C))},d=new Map,u=new Map,p=new Map,f=new Set,R=i??await Qi(e,c,n),E=C=>R.nodes.find(D=>D.source===C||JSON.stringify(D.source)===JSON.stringify(C)),m=new Map(o??[]),y=new Set(o?.keys()??[]),g=new Map([...o??new Map].map(([C,D])=>[C,D.rows.length])),T=new WeakMap,h=C=>ce(C)??(C.appId>0?`APP${C.appId}`:"source"),I=C=>C.cteName===Me?1:C.cteName!==null?g.get(C.cteName)??null:null,N=C=>{let D=I(C.from),b=h(C.from),_=[];for(let w of C.joins){let M=I(w.table),O=h(w.table);if(w.type==="CROSS"){let F=D!==null&&M!==null?fi(D,M):null;_.push({leftLabel:b,rightLabel:O,leftRows:D,rightRows:M,plan:F,rightRuntimeLabel:w.table.cteName===null?`APP${w.table.appId} fetched rows`:`${O} materialized rows`}),D=F?.outputRows??null,b=`${b} \xD7 ${O}`}else D=null,b=`${b} ${w.type} JOIN ${O}`}if(_.length>0&&lp.set(C,_),He(C.where)?D=0:C.where!==null&&(D=null),(te(C).type!=="NONE"||C.distinct||C.having!==null||Yn(C)||C.columns.some(w=>w.type==="WINDOW_COL"))&&(D=null),D!==null){let w=C.offset??0;D=Math.max(0,D-w),C.limit!==null&&(D=Math.min(D,C.limit)),T.set(C,D)}},v=async C=>{let D=[C.from,...C.joins.map(_=>_.table)];if(D.length>1&&C.columns.some(_=>_.type==="WILDCARD"||_.type==="PARENT_WILDCARD"))throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema for a multi-source wildcard SELECT.");let b=[];for(let _ of D){if(_.cteName!==null){if(_.cteName===Me)continue;let w=m.get(_.cteName);if(!w)throw new Error(`ArgumentError: EXPLAIN could not determine the relation output schema for ${_.cteName}.`);b.push(...w.columns);continue}let A=await Q(_.appId,c,n);_.subtableCode?(b.push(...A.filter(w=>w.inSubtable&&(w.subtableCode===_.subtableCode||w.subtableCode===void 0)).map(w=>w.code)),b.push("_pid","_rid","_idx"),b.push(...A.filter(w=>!w.inSubtable).map(w=>`_p.${w.code}`))):(b.push(...A.filter(w=>!w.inSubtable).map(w=>w.code)),b.push(...ho))}return[...new Set(b)]},P=async C=>{if(C===null||typeof C!="object")throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.");let D=C;if(D.type==="SELECT"){let b=C,_=await v(b);if(b.columns.length===1&&b.columns[0].type==="WILDCARD")return _;let A=[];for(let w of b.columns)w.type==="WILDCARD"?A.push(..._):w.type==="PARENT_WILDCARD"?A.push(..._.filter(M=>M.startsWith("_p."))):A.push(...wn([],[w]).columns);return A}if(D.type==="UNION")return P(D.left);if(D.type==="SHOW_APPS")return[...ap];if(D.type==="DESCRIBE")return[...sp];if(D.type==="GENERATE_SERIES")return[C.columnAlias];throw new Error("ArgumentError: EXPLAIN could not determine the relation output schema.")},x=async C=>{if(C===null||typeof C!="object")return;if(Array.isArray(C)){for(let b of C)await x(b);return}let D=C;if(D.type==="WITH"){let b=C;for(let _ of b.ctes){if(await x(_.query),_.query.type==="GENERATE_SERIES"){if(_.query.args.some(M=>M.type==="VARIABLE")){m.set(_.name,{rows:[],columns:[_.query.columnAlias]});continue}let w=Em(_.query);m.set(_.name,{rows:w.rows,columns:w.columns,columnMeta:ge.get(w),uniqueGeneratedColumn:_.query.columnAlias}),y.add(_.name),g.set(_.name,w.rows.length);continue}let A=await P(_.query);if(m.set(_.name,{rows:[],columns:A}),_.query.type==="SELECT"){let w=T.get(_.query);w!==void 0&&g.set(_.name,w)}}await x(b.query);return}if(D.type==="UNION"){await x(D.left),await x(D.right);return}if(D.type==="SELECT"){let b=C;N(b);for(let w of b.columns)w.type==="SCALAR_SUBQUERY_COL"&&await x(w.query);if(await x(b.where),await x(b.having),await Wi(b,c,n,m),![b.from,...b.joins.map(w=>w.table)].some(w=>w.cteName!==null&&!m.has(w.cteName))){let w=await yr(b,c,n,m);w&&p.set(b,w)}return}for(let b of Object.values(D))await x(b)};await x(e);let U=async C=>{if(C===null||typeof C!="object"||f.has(C))return;if(f.add(C),Array.isArray(C)){await Promise.all(C.map(U));return}let D=C;if(D.type==="SELECT"){let b=C;await Wi(b,c,n);let _=[b.from,...b.joins.map(L=>L.table)].some(L=>L.cteName!==null);if(te(b).type==="PLAIN"&&!_){let L=await yr(b,c,n);L&&p.set(b,L)}let A=[b.from,...b.joins.map(L=>L.table)].filter(L=>L.cteName===null).map(L=>L.appId);(It(b.where)||b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0))&&A.forEach(L=>a.add(L));let{resolver:M,rewrites:O}=await Ln(b,c,n);O.length>0&&bc.set(b,O);let F=Te(b.where,M),W=E(b);if(F.capability==="UNSUPPORTED"&&!W)throw new Error(`ArgumentError: WHERE predicate is unsupported (${_n(F)}).`);d.set(b,F);let G=await Rs(b,c,n),K=Gc.get(b)??Es(b,G);K&&Dm.set(b,K);let Y=K??mn(b,G);Um.set(b,Y);let $=new Map;for(let L of b.joins){let V=L.table.alias;if(L.type!=="INNER"||!V||L.table.subtableCode)continue;let X=L.on.left.tableAlias,he=L.on.right.tableAlias;if(!X||!he)continue;let at=X===V&&he!==V?he:he===V&&X!==V?X:void 0,ie=X===V?L.on.right.field:L.on.left.field,Ht=X===V?L.on.left.field:L.on.right.field;if(!at)continue;let Yt=[b.from,...b.joins.map(De=>De.table)].find(De=>ce(De)===at),_s;if(L.table.cteName!==null)_s=m.get(L.table.cteName)?.columnMeta?.get(Ht);else{let De=(await Q(L.table.appId,c,n)).find(st=>st.code===Ee(L.table,Ht));_s=De?ke(De,L.table.appId):nt(Ht)}let vs,Ds,dp,fp;if(Yt?.cteName!==null&&Yt?.cteName!==void 0){let De=m.get(Yt.cteName);vs=De?.columnMeta?.get(ie),y.has(Yt.cteName)&&De&&(dp=De.rows.length,Ds=De.rows.map(st=>zc(st[ie])),fp=Ds.some(st=>st.length===0))}else if(Yt){let De=(await Q(Yt.appId,c,n)).find(st=>st.code===Ee(Yt,ie));vs=De?ke(De,Yt.appId):nt(ie)}let so=du({fieldType:_s?.fieldType,sourceSemantics:vs?.semantics,sourceRowCount:dp,values:Ds,hasEmptyValue:fp,maxInKeys:ts});if(so.kind==="FALLBACK"&&so.reason==="JOIN_KEY_VALUES_RUNTIME"&&(K?.joinPlan.items.some(st=>st.targetAlias===V)||K?.joinPlan.serverFunctionConsumptions.some(st=>st.targetAlias===V)))continue;let ry=pu(so,Ht,Yi),Ep=Y.joinConditions.get(V),iy=Ep?j(Ep):void 0,oy=Y.joinRelations.get(V);$.set(V,{plan:so,queries:ry,additionalQuery:iy,additionalRelation:oy})}if($.size>0&&Mm.set(b,$),b.orderBy.length>0||b.columns.some(L=>L.type==="WINDOW_COL"&&L.orderBy.length>0)){let L=await ji(b,c,n);if(b.orderMode!=="KINTONE_NATIVE")for(let V of L.semantics.values())V.fieldType==="STATUS"&&V.source&&s.add(V.source.appId);if(as(b)&&!_&&W?.allowed!==!1){let V=F.capability==="EXACT_PUSHDOWN"?ze(b):"FULL_SCAN";u.set(b,(b.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:b,staticMode:V,whereCapability:F.capability,whereReasons:F.reasons,orderSemantics:L.semantics,maxRecords:r,hasKlike:Pe(b.where)}))}}}else if(D.type==="VALIDATE"){let b=C;a.add(b.appId);let _=await Q(b.appId,c,n),A=new Map(_.filter(L=>!L.inSubtable).map(L=>[L.code,L])),w=new Set(_.filter(L=>L.inSubtable).map(L=>L.code)),M=ru(b,_),O=ar(b.checkGroups??[]),F=Mc(b.where);for(let L of O){if(L.field!=="$id"&&!A.has(L.field)&&!w.has(L.field))throw Le(`CHECK \u306E\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u306F APP${b.appId} \u306B\u5B58\u5728\u3057\u307E\u305B\u3093`);if(L.field!=="$id"&&!A.has(L.field)&&w.has(L.field))throw new Error(`ArgumentError: VALIDATE \u306E CHECK \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L.field} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}for(let L of F){if(L!=="$id"&&!A.has(L)&&!w.has(L))throw new Error(`ArgumentError: WHERE field ${L} does not exist in APP${b.appId}.`);if(L!=="$id"&&!A.has(L)&&w.has(L))throw new Error(`ArgumentError: VALIDATE \u306E WHERE \u3067\u306F\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5B50\u30D5\u30A3\u30FC\u30EB\u30C9 ${L} \u3092\u53C2\u7167\u3067\u304D\u307E\u305B\u3093\u3002`)}let W=new Map([...A].map(([L,V])=>[L,V.fieldType]));W.set("$id","RECORD_NUMBER"),xn(b,W);let G=Te(b.where,L=>L.field==="$id"?ne({fieldType:"__ID__"}):A.get(L.field)?.semantics??(A.has(L.field)?ne(A.get(L.field)):void 0));if(G.capability==="UNSUPPORTED")throw new Error(`ArgumentError: WHERE predicate is unsupported (${_n(G)}).`);let k=new Map([...A].map(([L,V])=>[L,V.fieldType])),K=new Map([...A.values()].flatMap(L=>L.optionOrder?[[L.code,new Set(Object.keys(L.optionOrder))]]:[])),Y=b.where===null?null:G.capability==="EXACT_PUSHDOWN"?b.where:dl(b.where,{allowUnqualifiedFields:!0,fieldTypes:k,fieldOptions:K,allowKlike:!1}),$=M.some(L=>L.field.fieldType==="NUMBER");$&&(l.add(b.appId),await Pt(b.appId,c,n)),xm.set(b,{targetFields:M.map(L=>L.subtableCode?`${L.subtableCode}(${L.field.code})`:L.field.code),fetchFields:[...new Set(["$id",...M.map(L=>L.subtableCode??L.field.code),...F,...O.map(L=>L.field)])],subtables:new Map([...new Set(M.flatMap(L=>L.subtableCode?[L.subtableCode]:[]))].map(L=>[L,M.filter(V=>V.subtableCode===L).length])),capability:G,prefilter:Y,numberPrecision:$})}else if(D.type==="UPDATE"||D.type==="DELETE"){if(a.add(C.appId),D.type==="UPDATE"&&C.applyBlocks?.length){let _=C,A=await Q(_.appId,c,n);if(kt(_,A),ds(_)){let w=A.filter(O=>!O.inSubtable),M=gu(_.where,{fieldTypes:new Map(w.map(O=>[O.code,O.fieldType])),fieldOptions:new Map(w.flatMap(O=>O.optionOrder?[[O.code,new Set(Object.keys(O.optionOrder))]]:[]))});km.set(_,M)}}let b=C;(b.type!=="UPDATE"||!ds(b))&&E(b)?.allowed!==!1&&await sn(b,c,n)}await Promise.all(Object.values(D).map(U))};if(await U(e),typeof e=="object"&&e!==null&&e.type==="WITH"&&Xt(e)){let C=Qt(e),{resolver:D,rewrites:b}=await Ln(C,c,n);b.length>0&&bc.set(C,b);let _=Te(C.where,D),A=E(C);if(_.capability==="UNSUPPORTED"&&!A)throw new Error(`ArgumentError: WHERE predicate is unsupported (${_n(_)}).`);if(d.set(C,_),as(C)&&A?.allowed!==!1){let w=await ji(C,c,n);u.set(C,(C.orderMode==="KINTONE_NATIVE"?gi:yi)({stmt:C,staticMode:_.capability==="EXACT_PUSHDOWN"?ze(C):"FULL_SCAN",whereCapability:_.capability,whereReasons:_.reasons,orderSemantics:w.semantics,maxRecords:r,hasKlike:Pe(C.where)}))}}return{capabilities:d,orderPlans:u,plainGroupByPlans:p,fieldApps:a,processStatusApps:s,numberPrecisionApps:l,relativeDatePlan:R}}function Nc(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 Kw(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 wR(e){return e==="<>"?"!=":e}function Et(e){if(e===null||typeof e!="object")return"<expr>";let t=e;switch(t.type){case"FIELD":return typeof t.field=="string"?`${typeof t.tableAlias=="string"?`${t.tableAlias}.`:""}${t.field}`:"<expr>";case"FIELD_REF":return typeof t.field=="string"?t.field:"<expr>";case"NUMBER":return typeof t.raw=="string"?t.raw:typeof t.value=="number"?String(t.value):"<expr>";case"STRING":return typeof t.value=="string"?`'${t.value.replace(/'/g,"''")}'`:"<expr>";case"VARIABLE":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"VARIABLE_IN_LIST":return typeof t.name=="string"?`@${t.name}`:"<expr>";case"STRING_FUNC":return typeof t.func!="string"||!Array.isArray(t.args)?"<expr>":`${t.func}(${t.args.map(Et).join(", ")})`;case"FUNC_FIELD":case"ARITH_FIELD":case"CASE_FIELD":case"ARITH_VALUE":case"CASE_VALUE":return Et(t.expr);case"GROUPING_FIELD":return`GROUPING(${Et(t.ref)})`;case"GROUPING_REF":return Et(t.field);case"ARITH":case"SCALAR_ARITH":case"CONCAT_OP":return`(${Et(t.left)} ${typeof t.op=="string"?t.op:t.type==="CONCAT_OP"?"||":"<op>"} ${Et(t.right)})`;case"KINTONE_FUNC":return typeof t.name=="string"?t.name==="LOGINUSER"?"LOGINUSER()":`${t.name}(...)`:"<expr>";case"IN_LIST":return Array.isArray(t.values)?`(${t.values.map(Et).join(", ")})`:"<expr>";case"ARRAY":return Array.isArray(t.elements)?`[${t.elements.map(Et).join(", ")}]`:"<expr>";case"CASE":case"CASE_WHEN":return"CASE ... END";default:return"<expr>"}}function Nn(e){try{let t=e;switch(t.type){case"BINARY":return`${Et(t.left)} ${Kw(t.op)} ${Et(t.right)}`;case"NULL_CHECK":return`${Et(t.field)} IS ${t.not===!0?"NOT ":""}NULL`;case"LOGICAL":return`(${Nn(t.left)} ${t.op==="AND"||t.op==="OR"?t.op:"<op>"} ${Nn(t.right)})`;case"NOT":return`NOT (${Nn(t.expr)})`;case"GROUP":return`(${Nn(t.expr)})`;case"BOOLEAN":return t.value===!0?"TRUE":t.value===!1?"FALSE":"<expr>";default:return"<expr>"}}catch{return"<expr>"}}function Cc(e){if(!e.hasServerOnlyWhereFunction)return[];if(!e.allowed&&e.rejection){let n=re(e.rejection.functionName)?"relative date function":"kintone function",r=e.nodes[e.nodes.length-1],i=r?.capability?.reasons.find(a=>a.functionName===e.rejection.functionName),o=r?Gw(r.source,e.rejection.functionName):null;return[` ${n}: ${e.rejection.functionName}`," plan status: rejected",` target alias / field: ${o?.alias??"(unknown)"} / ${i?.field??o?.field??"(unknown)"}`,` reason: ${e.rejection.reasonCodes.join(", ")}`," client evaluation: forbidden"," records/cursor/mutation API during EXPLAIN: none"]}let t=[];for(let n of e.nodes){let r=n.joinServerFunctionPlan;if(n.allowed&&n.allowForm==="JOIN_SERVER_FUNCTION_EXACT"&&r){let a=n.joinServerFunctionVariant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf";t.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${a})`);for(let s of r.serverFunctionConsumptions)for(let l of s.functionLeaves){let c=nc(l),d=l.left.type==="FIELD"?l.left.field:"(unknown)";t.push(` ${tc(c)}: ${c}`,` ${rc(c)}: kintone server exact JOIN prefilter`,` target alias / APP: ${s.targetAlias} / APP${s.appId}`,` field: ${d}`,` function leaf relation: ${s.relation}`,` consumption: ${s.consumption}`)}t.push(` client residual: ${r.residualWhere===null?"(none)":Nn(r.residualWhere)}`),r.adoptedServerFunctionOccurrences.some(re)&&t.push(" relative date client evaluations: 0"),r.adoptedServerFunctionOccurrences.some(s=>!re(s))&&t.push(" kintone function client evaluations: 0");continue}let i=n.fullScanExactPlan;if(n.allowed&&n.allowForm==="FULL_SCAN_EXACT"&&i){for(let s of i.prefilterPlan.exactRelativeLeaves){let l=nc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=wR(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${tc(l)}: ${l}`,` ${rc(l)}: kintone server whole-WHERE exact`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=i.serializedWholeWhere;t.push(" where capability: EXACT_PUSHDOWN",` server predicate: ${a}`," client residual: (none)",` ${bR(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=nc(s),c=s.left.type==="FIELD"?s.left.field:void 0,d=wR(s.op),u=n.capability?.reasons.find(p=>p.functionName===l&&(c===void 0||p.field===c)&&p.operator===d);t.push(` ${tc(l)}: ${l}`,` ${rc(l)}: kintone server exact prefilter`,` field: ${u?.field??c??"(unknown)"} (${u?.fieldType??"unknown"})`,` operator: ${u?.operator??d}`)}let a=j(o.prefilterWhere);t.push(" where capability: SUPERSET_PREFILTER",` server prefilter: ${a}`,` client residual: ${Nn(o.residualWhere)}`,` ${bR(o.exactRelativeLeaves)}: 0`,` kintone query: ${a}`);continue}for(let a of n.functionNames){let s=n.capability?.reasons.find(l=>l.functionName===a);if(!re(a)){t.push(` kintone function: ${a}`," kintone function evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client residual: (none)"," kintone function client evaluations: 0",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`);continue}t.push(` relative date function: ${a}`," evaluation: kintone server",` field: ${s?.field??"(unknown)"} (${s?.fieldType??"unknown"})`,` operator: ${s?.operator??"(unknown)"}`,` where capability: ${n.capability?.capability??"(unknown)"}`," client evaluation: forbidden",` kintone query: ${n.restQuery||"(\u306A\u3057)"}`)}}return t}function Gw(e,t){let n="where"in e?e.where:null,r=null,i=o=>{if(r||o===null||typeof o!="object")return;if(Array.isArray(o)){o.forEach(i);return}let a=o;if(a.type==="BINARY"){let s=a.left,l=a.right,c=l?.type==="KINTONE_FUNC"&&l.name===t,d=l?.type==="IN_LIST"&&Array.isArray(l.values)&&l.values.some(u=>u!==null&&typeof u=="object"&&u.type==="KINTONE_FUNC"&&u.name===t);if((c||d)&&s?.type==="FIELD"&&typeof s.field=="string"){r={alias:typeof s.tableAlias=="string"?s.tableAlias:null,field:s.field};return}}Object.values(a).forEach(i)};return i(n),r}function tc(e){return re(e)?"relative date function":"kintone function"}function nc(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 rc(e){return re(e)?"relative date evaluation":"kintone function evaluation"}function bR(e){return e.every(t=>t.right.type==="KINTONE_FUNC"&&re(t.right.name))?"relative date client evaluations":"kintone function client evaluations"}var Km=new WeakMap;function Pc(e,t){if(Array.isArray(e))return e.map(r=>Pc(r,t));if(e===null||typeof e!="object")return e;let n=e;if(n.type==="GENERATE_SERIES"){let r=new Map,i=new Set,o=n.args.map((s,l)=>{if(s.type!=="STRING"||s.fromVariable!==!0||!s.value.startsWith("@"))return s;let c=s.value.slice(1);r.set(l,c);let d=t.get(c);return d===void 0?{type:"VARIABLE",name:c}:(i.add(l),{type:"STRING",value:d,fromVariable:!0})}),a={...n,args:o};return Km.set(a,{variableNames:r,defaultBoundIndexes:i}),a}return Object.fromEntries(Object.entries(n).map(([r,i])=>[r,Pc(i,t)]))}function vi(e,t){if(e.type==="SHOW_APPS")return{status:"STATIC",columns:[...ap]};if(e.type==="DESCRIBE")return{status:"STATIC",columns:[...sp]};if(e.type==="GENERATE_SERIES")return{status:"STATIC",columns:[e.columnAlias]};if(e.type==="WITH"){let s=new Map(t);for(let l of e.ctes){let c=vi(l.query,s);s.set(l.name,c)}return vi(e.query,s)}if(e.type==="UNION"){let s=vi(e.left,t),l=vi(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!==Me);if(r.some(s=>t.get(s.cteName)?.status!=="STATIC"))return{status:"DEFERRED"};if(e.columns.some(s=>s.type==="WILDCARD"||s.type==="PARENT_WILDCARD")&&(n.length!==1||n[0].cteName===null))return{status:"DEFERRED"};let o=r.flatMap(s=>{let l=t.get(s.cteName);return l?.status==="STATIC"?[...l.columns]:[]}),a=[];for(let s of e.columns)s.type==="WILDCARD"?a.push(...o):s.type==="PARENT_WILDCARD"?a.push(...o.filter(l=>l.startsWith("_p."))):a.push(...wn([],[s]).columns);return{status:"STATIC",columns:a}}function $w(e){return new Map([...e].flatMap(([t,n])=>n.status==="STATIC"?[[t,n.relation]]:[]))}async function Bw(e,t,n,r){let i=new Map,o=async a=>{if(a===null||typeof a!="object")return;if(Array.isArray(a)){for(let l of a)await o(l);return}let s=a;if(s.type==="SELECT"){let l=a,c=[l.from,...l.joins.map(d=>d.table)];if(c.some(d=>d.cteName!==null)&&c.every(d=>d.cteName===Me||d.cteName!==null&&r.has(d.cteName))){let d=await yr(l,t,n,r);d&&i.set(l,d)}}for(let l of Object.values(s))await o(l)};return await o(e),i}var Vw=Symbol("ksql.explainFetchPlan");function Gm(e,t){e[Vw]=t}async function $m(e,t,n,r="batch-explain",i=1e4,o=2,a=!1,s=100,l=ve,c=!0,d,u,p,f,R,E={surface:"DOCUMENT_ONLY"}){let m=Hs(f??new Date,R),y=Ft({recursiveCteMaxDepth:d,recursiveCteMaxRows:u,recursiveCteMaxExpansions:p}),g=_R(r);try{let{statements:T,meta:h}=_E(e,{import:a}),I=Ol(T),N=uu(T,n),v=VR(T,N),P=new Map;for(let[_,A]of Object.entries(m.values))P.set(br(_),{type:"string",value:A});let x=new Map,U=new Map,C=[],D=[];for(let _=0;_<T.length;_++){let A=T[_],w=A.type==="SET_VARIABLE"?A.expr.type==="SCALAR_SUBQUERY"?{...A,expr:$i(A.expr,P)}:A:$i(A,P),M=Pc(w,x);Je(M);let O=await Qi(M,t,g),F=$w(U),W=c?await Fm(M,t,g,i,O,F):{capabilities:new Map,orderPlans:new Map,plainGroupByPlans:new Map,fieldApps:new Set,processStatusApps:new Set,numberPrecisionApps:new Set,relativeDatePlan:O};if(!c){let V=await Bw(M,t,g,F);for(let[X,he]of V)W.plainGroupByPlans.set(X,he)}let G;if(M.type==="CREATE_TEMP_TABLE"){let V=new Map([...U].map(([he,at])=>[he,at.status==="STATIC"?{status:"STATIC",columns:at.columns}:{status:"DEFERRED"}])),X=vi(M.query,V);G=X.status==="STATIC"?{status:"STATIC",columns:X.columns,relation:{rows:[],columns:[...X.columns]},producerStatement:_+1}:{status:"DEFERRED",producerStatement:_+1,reason:"EXPLAIN_TEMP_SCHEMA_UNAVAILABLE"},U.set(M.name,G)}let k={sources:[]},K=O.hasServerOnlyWhereFunction&&!O.allowed?Cc(O):[...Cc(O),...Vm(Yw(M,I.statements[_],W.capabilities,W.orderPlans,W.plainGroupByPlans,s,l,k,U,G,{maxRecords:i,recursiveLimits:y}),o)],Y=Nc(W),$=h.dialect===1?Ww(M,I.statements[_],i,s):[],L=await Rm(M,g,E);C.push({index:_,type:I.statements[_].statementType,plan:K.length===0?[...Y,...L,...$]:[K[0],...Y,...K.slice(1),...L,...$]}),D.push({index:_,fetch:up(k.sources),sources:k.sources}),M.type==="DROP_TEMP_TABLE"&&U.delete(M.name),(A.type==="SET_VARIABLE"||A.type==="DECLARE_VARIABLE")&&(P.set(A.name,A.type==="DECLARE_VARIABLE"&&A.annotation==="RELATIVE_DATE"?{type:"relative-date",value:v.get(A.name)}:A.type==="SET_VARIABLE"&&A.expr.type==="ARRAY"?{type:"array",elements:A.expr.elements.map(V=>({type:"string",value:V.value}))}:{type:"string",value:`@${A.name}`,placeholder:!0}),A.type==="DECLARE_VARIABLE"&&A.annotation===void 0&&(A.default.type==="STRING"||A.default.type==="NUMBER")&&x.set(A.name,A.default.type==="STRING"?A.default.value:z(A.default)))}let b={statementCount:T.length,statements:C};return Gm(b,{statements:D}),b}finally{hm(g)}}function Ww(e,t,n,r){let i=[" estimated API consumption (dialect 1):"],o=Hw(e);(e.type==="UPDATE"||e.type==="DELETE")&&!o.includes(`APP${e.appId}`)&&o.unshift(`APP${e.appId}`);let a=Math.ceil(n/500);for(let c of o)i.push(` read ${c}: \u4E0D\u660E\uFF08\u4E0A\u9650 maxRecords=${n} \u3068\u4EEE\u5B9A: \u6700\u5927 ${a} \u56DE\u3001500 \u4EF6/\u56DE\uFF09`);let s=[...new Set([...t.appIds,...t.targetAppId===null?[]:[t.targetAppId]])];i.push(` metadata: GET form fields \xD7 ${s.length} \u30A2\u30D7\u30EA\uFF08\u30AD\u30E3\u30C3\u30B7\u30E5\u6E08\u307F\u306F\u8FFD\u52A0 0 \u56DE\uFF09`),(e.type==="UPSERT"||e.type==="UPSERT_SELECT")&&(e.type==="UPSERT"?i.push(` UPSERT pre-read: ${Math.ceil(e.values.length/mr)} \u56DE\uFF08${e.values.length} \u884C\u3001${mr} \u30AD\u30FC/\u56DE\uFF09`):i.push(` UPSERT pre-read: \u4E0D\u660E\uFF08\u4E0A\u9650 dmlMaxRows=${r} \u3068\u4EEE\u5B9A: \u6700\u5927 ${Math.ceil(r/mr)} \u56DE\u3001${mr} \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 Hw(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 Yw(e,t,n,r,i,o=100,a=ve,s={sources:[]},l=new Map,c,d=Bm()){if(e.type==="CREATE_TEMP_TABLE")return[`CREATE TEMP TABLE ${e.name}`," scope: batch\uFF08\u30D0\u30C3\u30C1\u7D42\u4E86\u6642\u306B\u81EA\u52D5\u7834\u68C4\uFF09",...c?.status==="STATIC"?[` schema: ${c.columns.join(", ")}`,` schema source: SELECT output of statement ${c.producerStatement}`]:c?[" schema: deferred (could not be derived statically)",` plan status: deferred (temp table schema; reason=${c.reason})`]:[],` rows: \u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u4E0D\u660E\uFF08\u65E2\u5B9A\u4E0A\u9650 ${rt} \u884C\u3001tempTableMaxRows \u3067\u5909\u66F4\u53EF\u3001\u8D85\u904E\u306F\u30A8\u30E9\u30FC\uFF09`,...Rr(e.query,t,n,r,i,s,"main",l,d).map(u=>` ${u}`)];if(e.type==="DROP_TEMP_TABLE")return[`DROP TEMP TABLE ${e.name}`," \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30B9\u30C8\u30A2\u306E\u89E3\u653E\u306E\u307F\uFF08kintone \u30A2\u30AF\u30BB\u30B9\u306A\u3057\uFF09"];if(e.type==="SET_VARIABLE"){if(e.expr.type==="SCALAR_SUBQUERY"){let u=Ki(e.expr.query)?t:{...t,tempTablesReferenced:[]};return[`SET @${e.name} = (SELECT ...)`," value: \u30B5\u30D6\u30AF\u30A8\u30EA\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF081\u884C1\u5217\u30FB\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"," subquery:",...Rr(e.expr.query,u,n,r,i,s,"main",l,d).map(p=>` ${p}`)]}return[`SET @${e.name} = <scalar expression>`," value: \u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u30D0\u30C3\u30C1\u5185\u5B9A\u6570\u30FB\u7D50\u679C\u30E1\u30BF\u30C7\u30FC\u30BF\u306B\u306F\u975E\u516C\u958B\uFF09"]}if(e.type==="DECLARE_VARIABLE")return e.annotation==="RELATIVE_DATE"?[`DECLARE @${e.name} RELATIVE_DATE = <relative-date token>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u30C8\u30FC\u30AF\u30F3\u3092\u4F7F\u7528\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"]:[`DECLARE @${e.name} = <default scalar expression>`," value: \u5916\u90E8\u6CE8\u5165\u304C\u3042\u308C\u3070\u63A1\u7528\u3001\u306A\u3051\u308C\u3070\u65E2\u5B9A\u5024\u3092\u5B9F\u884C\u6642\u306B1\u56DE\u8A55\u4FA1\uFF08\u5024\u306F\u975E\u516C\u958B\uFF09"];if(e.type==="SHOW_APPS")return["SHOW APPS\uFF08\u30A2\u30D7\u30EA\u4E00\u89A7\u306E\u53D6\u5F97\uFF09"];if(e.type==="DESCRIBE")return[`DESCRIBE APP${e.appId}\uFF08\u30D5\u30A3\u30FC\u30EB\u30C9\u5B9A\u7FA9\u306E\u53D6\u5F97\uFF09`];if(e.type==="EXPLAIN")return Rr(e.query,t,n,r,i,s,"main",l,d);if(e.type==="ASSERT"){let u=[`ASSERT${e.warn===!0?" WARN":""} ${e.text}${e.message!==void 0?`, '${e.message.replace(/'/g,"''")}'`:""}`,e.warn===!0?" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F\u8B66\u544A\u3068\u3057\u3066\u8A18\u9332\u3057\u3001\u5F8C\u7D9A\u6587\u3092\u7D9A\u884C\uFF09":" check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u4E0D\u6210\u7ACB\u306F AssertError \u3067\u30D0\u30C3\u30C1\u505C\u6B62\u3001\u4EE5\u964D\u306E\u6587\u306F skipped\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,R)=>{u.push(p.length>1?` subquery[${R+1}]:`:" subquery:");let E=Ki(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Rr(f.query,E,n,r,i,s,"main",l,d).map(m=>` ${m}`))}),u}if(e.type==="EXIT"){let u=[`EXIT SUCCESS IF ${e.text}, '${e.message.replace(/'/g,"''")}'`," check: \u5B9F\u884C\u6642\u306B\u6761\u4EF6\u8A55\u4FA1\uFF08\u6210\u7ACB\u6642\u306F\u6B63\u5E38\u7D42\u4E86\u3057\u3001\u4EE5\u964D\u306E\u6587\u306F skippedReason: exit\uFF09"],p=[e.left,e.right,e.low,e.high].filter(f=>f!==null&&f.type==="SCALAR_SUBQUERY");return p.forEach((f,R)=>{u.push(p.length>1?` subquery[${R+1}]:`:" subquery:");let E=Ki(f.query)?t:{...t,tempTablesReferenced:[]};u.push(...Rr(f.query,E,n,r,i,s,"main",l,d).map(m=>` ${m}`))}),u}return e.type==="UPDATE"&&(e.applyBlocks?.length??0)>0?ws(e,void 0,n,r,o,a,1e4,i):Rr(e,t,n,r,i,s,"main",l,d)}function Ki(e){if(Array.isArray(e))return e.some(Ki);if(e!==null&&typeof e=="object"){let t=e,n=t.cteName;return typeof n=="string"&&n.startsWith("#")?!0:Object.values(t).some(Ki)}return!1}function Rr(e,t,n,r,i,o={sources:[]},a="main",s=new Map,l=Bm()){if(t.tempTablesReferenced.length===0)return ws(e,void 0,n,r,100,ve,l.maxRecords,i,!0,o,a,l.recursiveLimits);let c=[];e.type==="INSERT_SELECT"?c.push(`INSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u5B9F\u884C\u6642\u306B\u4EF6\u6570\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`):e.type==="UPSERT_SELECT"&&c.push(`UPSERT INTO APP${e.appId} ... SELECT\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u30BD\u30FC\u30B9\u3002\u7167\u5408\u5F8C\u306B insert + update \u5408\u8A08\u78BA\u5B9A \u2192 dmlMaxRows \u9069\u7528\uFF09`),c.push(" mode: FULL_SCAN\uFF08\u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u53C2\u7167\uFF09"),c.push(` temp: ${t.tempTablesReferenced.join(", ")}\uFF08\u30A4\u30F3\u30E1\u30E2\u30EA\u8D70\u67FB\u3002\u5B9F\u4F53\u5316\u524D\u306E\u305F\u3081\u884C\u6570\u4E0D\u660E\uFF09`);let d=t.tempTablesReferenced.map(f=>[f,s.get(f)]);for(let[f,R]of d)R?.status==="STATIC"?c.push(` source: temp table ${f} (schema from statement ${R.producerStatement})`):(c.push(` source: temp table ${f}`),c.push(" schema: deferred (could not be derived statically)"));c.push(" rows: runtime (not materialized by EXPLAIN)");let u=e.type==="SELECT"?e:e.type==="EXPLAIN"&&e.query.type==="SELECT"?e.query:void 0;u&&c.push(...Wm(u,i?.get(u),d.some(([,f])=>f?.status!=="STATIC"))),c.push(d.every(([,f])=>f?.status==="STATIC")?" plan status: static schema / runtime rows":" plan status: deferred (temp table schema)"),c.push(" records API: none");let p=t.appIds.filter(f=>e.type!=="INSERT_SELECT"&&e.type!=="UPSERT_SELECT"||f!==e.appId);return p.length>0&&c.push(` app: ${p.map(f=>`APP${f}`).join(", ")}`),c.push(" note: \u4E00\u6642\u30C6\u30FC\u30D6\u30EB\u3078\u306E WHERE \u30D7\u30C3\u30B7\u30E5\u30C0\u30A6\u30F3\u306F\u884C\u308F\u308C\u306A\u3044"),c}var Oc=new WeakMap;function Bm(){return{maxRecords:1e4,recursiveLimits:Ft({})}}async function jw(e,t,n,r,i,o=100,a=ve,s,l,c,d,u={surface:"DOCUMENT_ONLY"}){let p=Ft({recursiveCteMaxDepth:l,recursiveCteMaxRows:c,recursiveCteMaxExpansions:d}),f=s??await Qi(e.query,t,n),R=await Fm(e.query,t,n,r,f,Oc.get(e)),E={sources:[]},m=Cc(f),y=f.hasServerOnlyWhereFunction&&!f.allowed?[...Nc(R),...m]:[...Nc(R),...m,...Vm(ws(e.query,void 0,R.capabilities,R.orderPlans,o,a,r,R.plainGroupByPlans,!0,E,"main",p),i)],g=await Rm(e,n,u),T=is([...y,...g],E.sources),h={type:"SELECT",columns:["plan"],rows:T.map(I=>({plan:I})),rowCount:T.length};return Gm(h,{statements:[{index:0,fetch:up(E.sources),sources:E.sources}]}),h}function Vm(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 ws(e,t,n,r,i=100,o=ve,a=1e4,s,l=!0,c,d="main",u=Ft({})){let p=c??{sources:[]};if(e.type==="UNION"){let R=Qw(e,n,r,s,p);return l?is(R,p.sources):R}if(e.type==="WITH"){let R=eb(e,n,r,s,p,a,u);return l?is(R,p.sources):R}if(e.type==="INSERT")return rb(e,t,i,o);if(e.type==="INSERT_SELECT")return ib(e,t,n,r,s);if(e.type==="UPSERT")return lb(e,t,i,o);if(e.type==="UPSERT_SELECT")return ub(e,t,n,r,s);if(e.type==="UPDATE")return ob(e,t,n,r,i,o,a);if(e.type==="DELETE")return sb(e,t);if(e.type==="REORDER")return cb(e,t);if(e.type==="VALIDATE")return Jw(e,t);if(e.type==="IMPORT"){if(e.writeMode==="UPDATE_RECORD_NUMBER"){let m=e.targets?.filter(y=>y.kind==="SUBTABLE")??[];return[...t?[t]:[],`IMPORT UPDATE INTO APP${e.appId}`," writeMode: UPDATE_RECORD_NUMBER",` source: CSV ${e.source.sourceName}`,` keyHeader: ${e.recordNumberSourceHeader}`," mapping: BY_NAME"," parentRows: requires source load"," duplicate: preflight before lookup/write"," matched: requires lookup"," unmatched: requires lookup"," invalid: requires source load"," requiresLookup:true"," inserted: 0"," keyInPayload: false",...m.length?[` replaceSubtables: ${e.replaceSubtables?.join(", ")??"ERROR: required"}`," subtableRowIdPolicy: PRESERVE existing; empty/unknown add without id"," rowIdOwnership: owned elsewhere invalidates the parent"," replacementDiff: existing/input/update/add/delete/rowIdNotFound requires actual-data preflight",' confirmPolicy: highest warning "\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u5168\u7F6E\u63DB\u30FBN\u884C\u524A\u9664" plus per-table detail (including delete=0)']:[],` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` writesKintone: ${e.validateOnly?"false":"true"}`]}let R=e.keyFields?"UPSERT":"INSERT",E=e.targets?.some(m=>m.kind==="SUBTABLE")===!0;return[...t?[t]:[],`IMPORT ${R} INTO APP${e.appId}`,` source: ${e.source.kind} ${e.source.sourceName}`,` sourceFormat: ${e.source.kind}`,` encoding: ${e.source.kind==="JSON"?"UTF8 only":e.source.encoding??"UTF8 (or loader metadata)"}`,` mapping: ${e.source.kind==="JSON"?"BY NAME (INTO order)":e.source.projection?"SELECT expressions":e.source.mappingMode}`,...e.source.kind==="JSON"?[" duplicateKeyPolicy: reject"," numberLexemePolicy: preserve; JSON number accepts safe integer only"," precisionTargetsRequireString: true"," unknownKeyPolicy: reject"," presenceAware: true",...E?[" subtableRowIdPolicy: reject _rid/id; DROP IDs and renumber every input row"," subtableUpdatePolicy: present table replaces all rows; missing table is preserved; [] deletes all rows"," confirmPolicy: parent/table existing/input/add/delete detail required; delete is highest warning"]:[]]:[` header: ${e.source.hasHeader?"HEADER":"NO HEADER"}`,...e.source.mappingMode==="BY_NAME"?[` writtenColumns: ${e.fields.join(", ")}`," knownExportColumns: audit and ignore with reason/non-empty count",` unknownColumnPolicy: ${e.source.ignoreUnknownColumns?"ignore with audit/non-empty count":"ERR_IMPORT_UNKNOWN_COLUMN"}`," multipleValueDelimiter: LF (CRLF or LF)"," sourceValueMode: string-preserving"," roundTripNumericGuarantee: exact CSV lexeme passes strict decimal validation"," FILE: audit-ignore unless named in INTO (analyze error)"]:[]],` sourceLimit: 10485760 bytes / ${e.fields.length} target columns`,` key: ${e.keyFields?.join(", ")??"none"}`,` checks: ${e.checkGroups?.length??0}`,` disposition: ${e.validateOnly?"VALIDATE ONLY":e.onErrorSkip?`ON ERROR SKIP INTO ${e.errorTable}`:"fail-fast"}`," gate: enabled for this parse",` preflight: ${e.validateOnly&&E?"requires actual source load at execution; this EXPLAIN is static":"requires load"}`,...E?[e.source.kind==="JSON"?" Phase5C: JSON mutation requires detail-capable confirmation surface":" Phase5D: CSV mutation requires detail-capable confirmation surface"]:[],` writesKintone: ${e.validateOnly?"false":"true"}`," duplicateKey: preflight before lookup/write (requires load)"]}let f=Rt(e,t,n,r,s,!0,!0,p,d);return l?is(f,p.sources):f}var NR={none:0,count_only:1,exact:2,prefiltered:3,all:4};function up(e){return e.reduce((t,n)=>NR[t]>=NR[n.fetch]?t:n.fetch,"none")}function is(e,t){let n=e.filter(r=>!r.startsWith("fetch summary:"));return t.length===0?n:[`fetch summary: ${up(t).toUpperCase()}`,...n]}function zw(e){let t=/(?:^|\s)limit\s+(\d+)(?:\s|$)/i.exec(e);return t?Number(t[1]):null}function qa(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:zw(o)};return e.sources.push(s),s}function qw(e){return[e.fetch.toUpperCase(),...e.limit===null?[]:[`(limit ${e.limit})`],...e.pending?["(\u672A\u78BA\u5B9A)"]:[]].join(" ")}function Ja(e){return` fetch: ${qw(e)}`}function Jw(e,t){let n=xm.get(e),r=[];return t&&r.push(t),r.push(`VALIDATE APP${e.appId}`),r.push(" operation: read-only existing-record constraint audit (writesKintone=false)"),r.push(" fetch API: GET records via offset + $id keyset paging (Cursor API unused)"),r.push(" complete input: required (onLimit=truncate disabled)"),n?(r.push(` WHERE capability: ${n.capability.capability}`),r.push(` kintone query: ${n.prefilter===null?"(\u5168\u4EF6\u53D6\u5F97)":j(n.prefilter)}`),r.push(` audit fields: ${n.targetFields.length===0?"(\u306A\u3057)":n.targetFields.join(", ")}`),r.push(` fetch fields: ${n.fetchFields.join(", ")}`),r.push(` mode: ${e.summary?"SUMMARY":"DETAIL"}`),n.subtables.size>0&&r.push(` subtable audit: ${[...n.subtables].map(([i,o])=>`${i}(${o} fields)`).join(", ")}`),r.push(` output schema: ${(e.summary?Uc:Dc).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 Xw(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 Wm(e,t,n){let r=te(e);if(r.type!=="PLAIN")return[];let i=[];if(t)t.items.forEach((o,a)=>{let s=r.allItems[a];s?.type==="FIELD_NAME"&&(o.kind==="PHYSICAL"?i.push(` group key ${s.name}: PHYSICAL (source=${o.sourceIndex}, field=${o.fieldCode})`):o.kind==="ALIAS_SAFE"?i.push(` group key ${s.name}: ALIAS_SAFE (column=${o.columnIndex})`):o.kind==="EXPRESSION"&&i.push(` group key ${s.name}: EXPRESSION`))});else if(n)for(let o of r.allItems)o.type==="FIELD_NAME"&&i.push(` group key ${o.name}: DEFERRED (temp table schema unavailable)`);return i}function Rt(e,t,n,r,i,o=!0,a=!0,s={sources:[]},l="main"){let c=n?.get(e)??(n?[...n].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),d=r?.get(e)??(r?[...r].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),u=i?.get(e)??(i?[...i].find(([h])=>JSON.stringify(h)===JSON.stringify(e))?.[1]:void 0),p=o&&c!==void 0&&lm(e,c),f=p?"COUNT_TOTAL_COUNT":d?.kind==="CANONICAL_LOCAL"||c&&c.capability!=="EXACT_PUSHDOWN"?"FULL_SCAN":ze(e),R=tb(e);c&&c.capability!=="EXACT_PUSHDOWN"&&R.push(...c.reasons.map(h=>h.code));let E=[],m=jf(e,Vi.get(e)?.allItems.length);t&&E.push(t),E.push(` mode: ${f}`);for(let h of lp.get(e)??[]){if(E.push(` cross join: ${h.leftLabel} \xD7 ${h.rightLabel}`),E.push(` left rows: ${h.leftRows??"runtime (left intermediate rows)"}`),E.push(` right rows: ${h.rightRows??`runtime (${h.rightRuntimeLabel})`}`),h.plan)E.push(` rows: ${h.plan.outputRows}`),E.push(` row guard: ${h.plan.outputRows} / ${h.plan.limit}`),E.push(" guard timing: before row materialization");else{let I=h.leftRows===null?"left rows":String(h.leftRows),N=h.rightRows===null?"right rows":String(h.rightRows);E.push(` rows: runtime (${I} \xD7 ${N})`),E.push(` row guard: runtime checked / ${fu}`),E.push(" guard timing: after complete source fetch, before row materialization")}E.push(" records API: none")}for(let h of bc.get(e)??zR.get(e)??[])E.push(Xw(h));m&&(E.push(` grouping source: ${m.source}`),E.push(` grouping sets: ${m.expandedSetCount} (limit: ${m.setLimit})`),E.push(` grouping items: ${m.groupingItemCount} (limit: ${m.itemLimit})`),E.push(` grouping output rows: runtime checked (limit: ${m.outputRowLimit}, before HAVING/DISTINCT/LIMIT)`)),E.push(...Wm(e,u,[e.from,...e.joins.map(h=>h.table)].some(h=>h.cteName!==null)));for(let h of e.columns){if(h.type!=="WINDOW_COL"||h.windowKind===void 0||h.windowKind==="RANKING")continue;let I=[];h.partitionBy.length>0&&I.push(`PARTITION BY ${h.partitionBy.map(N=>N.tableAlias?`${N.tableAlias}.${N.field}`:N.field).join(", ")}`),h.orderBy.length>0&&I.push(`ORDER BY ${h.orderBy.map(Hm).join(", ")}`),h.windowKind==="VALUE"?E.push(` window ${h.alias}: ${h.valueFunc}(offset=${h.offset}) OVER (${I.join(" ")})`):h.windowKind==="AGGREGATE"&&(E.push(` window ${h.alias}: ${h.aggFunc} OVER (${I.join(" ")})`),E.push(h.frame===null?" frame: PARTITION ENTIRE":` frame: ${h.frame.unit} UNBOUNDED PRECEDING AND CURRENT ROW${h.frame.source==="DEFAULT"?" (\u65E2\u5B9A)":""}`))}if(p){let h=e.where===null?"":j(e.where);if(E.push(` app: APP${e.from.appId} (${e.from.appId})`),E.push(` kintone query: ${h}${h?" ":""}limit 1`),a){let I=qa(s,e.from.appId,e.from.alias,l,"COUNT_ONLY",`${h}${h?" ":""}limit 1`);E.push(Ja(I))}return E.push(" fields: $id"),E.push(" fetch API: GET records.json (totalCount=true)"),E.push(" REST execution: single GET"),E.push(" record limit: maxRecords/onLimitReached not applied"),E.push(" fallback: full record scan when totalCount is missing or invalid"),E.push(" search abort: fail-closed (SearchAbortedError)"),E}d?(E.push(` order plan: ${d.kind}`),d.reasonCodes.length>0&&E.push(` order reason: ${d.reasonCodes.join(", ")}`),d.kind==="KORDER_NATIVE"?(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" REST execution: single GET")):d.kind==="KORDER_CURSOR"&&(E.push(" order semantics: kintone native (not kSQL canonical)"),E.push(" fetch API: POST/GET/DELETE records/cursor.json"),E.push(" cursor page size: 500"),E.push(` scan rows: ${d.scanRows}`))):m&&E.push(" order plan: CANONICAL_LOCAL");let y=d&&!d.requiresCompleteInput?{...e,orderBy:[]}:e,g=nn(y);d?.requiresCompleteInput&&g.add("LOCAL_ORDER");let T=He(e.where);if(g.size>0&&(!T||m!==null)&&(E.push(" complete input: required (onLimit=truncate disabled)"),E.push(` complete input reason: ${[...g].join(", ")}`),E.push(" onLimit=truncate: disabled")),T)return E.push(" predicate: constant false"),E.push(" records API access: none"),E.push(` app: APP${e.from.appId} (${e.from.appId})`),E;if(f==="FULL_SCAN"&&R.length>0&&E.push(` reason: ${R.join(", ")}`),f==="SIMPLE"){let h=Co(d?.kind==="CANONICAL_REST_TOP_N"?im(e):e);E.push(` app: APP${e.from.appId} (${e.from.appId})`);let I=d?.kind==="KORDER_CURSOR"?hu(e):h.query;if(E.push(` kintone query: ${I||"(\u306A\u3057)"}`),a&&e.from.cteName===null){let N=I?"EXACT":"ALL";E.push(Ja(qa(s,e.from.appId,e.from.alias,l,N,I)))}E.push(` fields: ${h.fields.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":h.fields.join(", ")}`)}else{let h=Dm.get(e),I=Um.get(e),N=I??mn(e);if(e.joins.length>0)if(h){if(E.push(" join pushdown plan: applied (runtime metadata resolved)"),E.push(" runtime plan timing: variables/subqueries resolved -> metadata resolved -> immutable plan"),E.push(" EXPLAIN unresolved subqueries: not applied (records API is not called)"),h.joinPlan.serverFunctionCandidate&&E.push(` allow form: JOIN_SERVER_FUNCTION_EXACT (${h.joinPlan.serverFunctionCandidate.variant==="WHOLE_WHERE_EXACT"?"whole-WHERE":"leaf"})`),E.push(` client residual: ${h.joinPlan.residualWhere===null?"(none)":Nn(h.joinPlan.residualWhere)}`),E.push(` KLIKE applied nodes: ${h.joinPlan.appliedKlikes.size}`),E.push(` KLIKE unapplied nodes: ${h.joinPlan.allKlikes.length-h.joinPlan.appliedKlikes.size}`),h.joinPlan.residualWhere!==null)for(let w of h.joinPlan.rejections)E.push(` join pushdown not applied: ${w.reason}`)}else{let w=e.joins.some(M=>M.type!=="INNER"&&M.type!=="CROSS")?"OUTER_JOIN":[e.from,...e.joins.map(M=>M.table)].some(M=>M.cteName!==null||!!M.subtableCode)?"SOURCE_KIND":"PLAN_NOT_APPLICABLE";E.push(" join pushdown plan: not applied (join key/WHERE prefilters are reported per source below)"),E.push(` join pushdown not applied: ${w}`)}let v=Rn(e,e.from,u),P=e.from.alias?` AS ${e.from.alias}`:"",x=N.mainCondition,U=tm(e),C=e.joins.length===0&&c?.capability==="EXACT_PUSHDOWN"&&e.where!==null&&!_t(e.where)?j(e.where):"",D=e.from.alias?h?.queriesByAlias.get(e.from.alias):void 0,b=D||(x!==null?j(x):C||"(\u5168\u4EF6\u53D6\u5F97)");E.push(` app: APP${e.from.appId}${P} (${e.from.appId})`),E.push(` kintone query: ${b}`);let _=h?.joinPlan.items.find(w=>w.targetAlias===e.from.alias),A=h?.joinPlan.serverFunctionConsumptions.find(w=>w.targetAlias===e.from.alias);if(a&&e.from.cteName===null){let w=!I&&U!==null,M=b==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":w?"PREFILTERED":_?.relation==="exact"||A||C!==""?"EXACT":"PREFILTERED";E.push(Ja(qa(s,e.from.appId,e.from.alias,l,M,b,w)))}_||A?(E.push(` pushdown applied: ${D}`),E.push(` relation: ${_?.relation??"exact"}`)):I&&x!==null?(E.push(` pushdown applied: ${b}`),E.push(` relation: ${N.mainRelation??"exact"}`)):U!==null&&(!I||Ui(U))&&E.push(` pushdown candidate: ${j(U)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`),E.push(` fields: ${v.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":v.join(", ")}`);for(let w of e.joins){let M=Rn(e,w.table,u),O=w.table.alias?` AS ${w.table.alias}`:"",F=w.type==="INNER"?"JOIN":`${w.type} JOIN`,W=w.table.alias?N.joinConditions.get(w.table.alias)??null:null,G=w.table.alias&&!w.table.subtableCode&&w.table.cteName===null&&e.where?$r(e.where,{tableAlias:w.table.alias}):null,k=w.table.alias?h?.queriesByAlias.get(w.table.alias):void 0,K=w.table.alias?Mm.get(e)?.get(w.table.alias):void 0,Y=!I&&w.type==="INNER"&&w.table.cteName===null&&!w.table.subtableCode&&[e.from,...e.joins.map(ie=>ie.table)].some(ie=>ie.cteName!==null),$=k||(W!==null?j(W):K?.additionalQuery?K.additionalQuery:"(\u5168\u4EF6\u53D6\u5F97)"),L=Y||K?.plan.kind==="RANGE_CANDIDATE"||K?.plan.kind==="FALLBACK"&&K.plan.reason==="JOIN_KEY_VALUES_RUNTIME",V=K&&K.queries.length>0?K.queries.map(ie=>$!=="(\u5168\u4EF6\u53D6\u5F97)"?`(${ie}) and (${$})`:ie):[L?"(runtime source keys)":$],X=V.join(" | ");E.push(` ${F}: APP${w.table.appId}${O} (${w.table.appId})`);for(let ie of V)E.push(` kintone query: ${ie}`);let he=h?.joinPlan.items.find(ie=>ie.targetAlias===w.table.alias),at=h?.joinPlan.serverFunctionConsumptions.find(ie=>ie.targetAlias===w.table.alias);if(a&&w.table.cteName===null){let ie=L||!K&&!I&&G!==null,Ht=X==="(\u5168\u4EF6\u53D6\u5F97)"?"ALL":ie?"PREFILTERED":K?.plan.kind==="IN"&&he?.relation!=="superset"&&K.additionalRelation!=="superset"||he?.relation==="exact"||at?"EXACT":"PREFILTERED";E.push(Ja(qa(s,w.table.appId,w.table.alias,"join",Ht,X,ie)))}if(K)if(K.plan.kind==="RANGE"){E.push(" join key prefilter: range");for(let ie of V)E.push(` pushdown applied: ${ie}`);E.push(" relation: superset")}else if(K.plan.kind==="IN"){let ie=he?.relation==="superset"||K.additionalRelation==="superset"?"superset":"exact";E.push(" join key prefilter: in");for(let Ht of V)E.push(` pushdown applied: ${Ht}`);E.push(` relation: ${ie}`)}else K.plan.kind==="RANGE_CANDIDATE"?(E.push(" join key prefilter: range candidate"),E.push(" relation: superset"),E.push(` join key prefilter reason: ${K.plan.reason}`)):K.plan.kind==="FALLBACK"&&(E.push(K.plan.reason==="JOIN_KEY_VALUES_RUNTIME"?" join key prefilter: runtime candidate":" join key prefilter: not applied"),E.push(` join key prefilter reason: ${K.plan.reason}`));else Y?(E.push(" join key prefilter: runtime candidate"),E.push(" join key prefilter reason: JOIN_KEY_VALUES_RUNTIME"),G!==null&&E.push(` pushdown candidate: ${j(G)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`)):he||at?(E.push(` pushdown applied: ${k}`),E.push(` relation: ${he?.relation??"exact"}`)):I&&W!==null?(E.push(` pushdown applied: ${$}`),E.push(` relation: ${N.joinRelations.get(w.table.alias)??"exact"}`)):G!==null&&(!I||Ui(G))&&E.push(` pushdown candidate: ${j(G)}\uFF08\u5B9F\u884C\u6642\u306E\u578B\u30FB\u5B9F\u5728\u78BA\u8A8D\u5F85\u3061\uFF09`);E.push(` fields: ${M.length===0?"(\u5168\u30D5\u30A3\u30FC\u30EB\u30C9)":M.join(", ")}`)}}return E.push(...nb(e,n,r,i,s)),E}function Qw(e,t,n,r,i={sources:[]}){let o=[],a=l=>{if(l.type==="SELECT"){o.push(l);return}a(l.left),o.push(l.right)};a(e);let s=[];return o.forEach((l,c)=>{c>0&&s.push(""),s.push(...Rt(l,`[union:${c+1}]`,t,n,r,!0,!0,i,"union"))}),s}function Zw(e){let t=new Map,n=a=>ce(a)??(a.appId>0?`APP${a.appId}`:"source"),r=a=>a.cteName===Me?1:a.cteName===null?null:t.get(a.cteName)??null,i=a=>{let s=r(a.from),l=n(a.from),c=[];for(let d of a.joins){let u=r(d.table),p=n(d.table);if(d.type==="CROSS"){let f=s!==null&&u!==null?fi(s,u):null;c.push({leftLabel:l,rightLabel:p,leftRows:s,rightRows:u,plan:f,rightRuntimeLabel:d.table.cteName===null?`APP${d.table.appId} fetched rows`:`${p} materialized rows`}),s=f?.outputRows??null,l=`${l} \xD7 ${p}`}else s=null,l=`${l} ${d.type} JOIN ${p}`}return c.length>0&&lp.set(a,c),He(a.where)?s=0:a.where!==null&&(s=null),te(a).type!=="NONE"||a.distinct||a.having!==null||Yn(a)||a.columns.some(d=>d.type==="WINDOW_COL")||s===null?null:(s=Math.max(0,s-(a.offset??0)),a.limit===null?s:Math.min(s,a.limit))},o=a=>{if(a.type==="SELECT"){i(a);return}o(a.left),i(a.right)};for(let a of e.ctes)if(a.query.type==="GENERATE_SERIES")a.query.args.some(s=>s.type==="VARIABLE")||t.set(a.name,zo(a.query).rowCount);else if(a.query.type==="SELECT"){let s=i(a.query);s!==null&&t.set(a.name,s)}else a.query.type==="UNION"&&o(a.query);o(e.query)}function eb(e,t,n,r,i={sources:[]},o=1e4,a=Ft({})){Zw(e);let s=[];for(let l of e.ctes)if(l.recursiveSpec){let c=l.recursiveSpec.cycle;s.push(`recursive cte: ${l.name}`," strategy: B (materialize each source once, iterate in memory)"," union: UNION ALL"," self reference: once",c?` cycle: path-scoped on ${c.column}, mark ${c.markColumn} ('${c.markValue}'/'${c.defaultValue}'), cycle row emitted, expansion stopped`:" cycle: none (absolute limits still enforced)",` limits: depth=${a.depth}, rows=${a.rows}, expansions=${a.expansions} (always fail-closed)`," complete input: required (onLimit=truncate disabled)"," empty-key recursive join: runtime checked");for(let d of fm(l.recursiveSpec.seed,l.recursiveSpec.recursiveTerm)){let u=`APP${d.appId}${d.subtableCode?`$${d.subtableCode}`:""}`;s.push(` source ${u}: R unknown, pageSize=500, estimated calls=ceil(R/500), maxRecords=${o}`)}s.push(" iteration rows: unknown until execution"," records API: none","")}else if(l.query.type==="SELECT")s.push(...Rt(l.query,`[cte: ${l.name}]`,t,n,r,!1,!0,i,"cte")),s.push("");else if(l.query.type==="GENERATE_SERIES"){let c=l.query,d=Km.get(c);if(c.args.some(R=>R.type==="VARIABLE")){let R=E=>{let m=c.args[E];return m?m.type==="VARIABLE"?`@${m.name} (runtime)`:E<2?"literal":m.type==="NUMBER"?z(m):m.value:E===2?"runtime":"deferred"};s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`," series type: deferred (variable)",` start: ${R(0)}`,` stop: ${R(1)}`,` step: ${R(2)}`," rows: runtime",` row guard: runtime / ${Dt}`," records API: none","");continue}let p=zo(c),f=p.kind==="DATE"?`${p.step} ${String(p.dateUnit??"DAY").toLowerCase()}${Math.abs(p.step)===1?"":"s"}`:String(p.step);s.push(`[cte: ${l.name}]`," source: GENERATE_SERIES",` column: ${c.columnAlias}`,` series type: ${p.kind}${d?.defaultBoundIndexes.size?" (DECLARE default)":""}`,` start: ${d?.variableNames.has(0)?`@${d.variableNames.get(0)} (DECLARE default; value hidden)`:p.start}`,` stop: ${d?.variableNames.has(1)?`@${d.variableNames.get(1)} (DECLARE default; value hidden)`:p.stop}`,` step: ${f}`,` rows: ${p.rowCount}${d?.defaultBoundIndexes.size?" (DECLARE default estimate)":""}`,` row guard: ${p.rowCount} / ${Dt}`,...d?.defaultBoundIndexes.size?[" binding: DECLARE defaults; runtime injection may change this plan"]:[]," records API: none","")}if((e.query.type==="SELECT"||e.query.type==="UNION")&&s.push(...ws(e.query,"[main]",t,n,100,ve,o,r,!1,i,"main",a)),Xt(e)){s.push("");let l=Qt(e);s.push(...Rt(l,"[effective: inlined CTE]",t,n,r,!1,!0,i,"cte"))}return s}function tb(e){let t=[];(e.from.subtableCode||e.joins.some(r=>r.table.subtableCode))&&t.push("\u30B5\u30D6\u30C6\u30FC\u30D6\u30EB\u4EEE\u60F3\u30C6\u30FC\u30D6\u30EB"),e.joins.some(r=>r.type==="CROSS")&&t.push("CROSS JOIN \u3042\u308A"),e.joins.some(r=>r.type!=="CROSS")&&t.push("JOIN \u3042\u308A");let n=te(e);return n.type==="PLAIN"?t.push("GROUP BY \u3042\u308A"):n.type==="GROUPING_SETS"&&t.push(n.source==="ROLLUP"?"ROLLUP \u3042\u308A":n.source==="CUBE"?"CUBE \u3042\u308A":"GROUPING SETS \u3042\u308A"),e.distinct&&t.push("DISTINCT \u3042\u308A"),e.columns.some(r=>r.type==="AGGREGATE"||r.type==="ARITH_AGG_COL")&&t.push("\u96C6\u8A08\u95A2\u6570\uFF08COUNT / SUM \u7B49\uFF09\u3042\u308A"),e.columns.some(r=>r.type==="WINDOW_COL")&&t.push("\u30A6\u30A3\u30F3\u30C9\u30A6\u95A2\u6570\u3042\u308A"),e.columns.some(r=>r.type==="SCALAR_SUBQUERY_COL")&&t.push("SELECT \u5217\u306B\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA"),_t(e.where)&&t.push("WHERE \u53E5\u306B JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u5F0F"),zt(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 nb(e,t,n,r,i={sources:[]}){let o=[],a=1,s=l=>{if(l)switch(l.type){case"BINARY":l.right.type==="SCALAR_SUBQUERY"&&(o.push(""),o.push(...Rt(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"))),l.right.type==="SUBQUERY_IN_LIST"&&(o.push(""),o.push(...Rt(l.right.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));break;case"EXISTS":o.push(""),o.push(...Rt(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery"));break;case"LOGICAL":s(l.left),s(l.right);break;case"NOT":case"GROUP":s(l.expr);break;case"NULL_CHECK":break;case"BOOLEAN":break}};s(e.where);for(let l of e.columns)l.type==="SCALAR_SUBQUERY_COL"&&(o.push(""),o.push(...Rt(l.query,`[subquery:${a++}]`,t,n,r,!1,!0,i,"subquery")));return e.having&&s(e.having),o}function rb(e,t,n=Wt,r=ve){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,...cp(Aa(e,n,r))]:a}function ib(e,t,n,r,i){let o=[];return t&&o.push(t),o.push(" [INSERT SELECT]"),o.push(` target: APP${e.appId} (${e.appId})`),o.push(` fields: ${e.fields.join(", ")}`),o.push(" api: POST /k/v1/records.json\uFF08\u4EF6\u6570\u306F SELECT \u7D50\u679C\u306B\u4F9D\u5B58\u3001100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09"),o.push(""),o.push(...Rt(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function ob(e,t,n,r,i=100,o=ve,a=1e4){if(e.applyBlocks?.length)return ab(e,t,i,o,a);let s=pf(e),l=e.assignments.some(f=>f.value.type==="STRING_FUNC"),c=sa(e),d=e.assignments.some(f=>f.value.type==="SCALAR_SUBQUERY"),u=[];if(t&&u.push(t),u.push(e.from?" [UPDATE FROM]":" [UPDATE]"),u.push(` target: APP${e.appId} (${e.appId})`),e.from){let f=e.from.cteName??`APP${e.from.appId}`;u.push(` source: ${f} AS ${e.from.alias}`),u.push(` join: APP${e.appId}.${e.from.targetJoinField} = ${e.from.alias}.${e.from.joinKeyField}`),u.push(` target filter: ${e.from.targetFilter?Xi(e.from.targetFilter):"(none)"}`)}else u.push(` kintone query: ${Xi(e.where)}`);e.subtableCode||(u.push(" selection: exact native pushdown; JS residual none"),u.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),u.push(He(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 PUT /k/v1/records.json");let p=[];if(s&&p.push("\u7B97\u8853 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A08\u7B97\uFF09"),l&&p.push("\u6587\u5B57\u5217\u95A2\u6570 SET\uFF08\u73FE\u5728\u5024\u3092\u53D6\u5F97\u3057\u3066\u8A55\u4FA1\uFF09"),d&&p.push("\u30B9\u30AB\u30E9\u30FC\u30B5\u30D6\u30AF\u30A8\u30EA SET"),!c&&!d&&p.push("\u5358\u7D14 SET"),u.push(` set type: ${p.join(", ")}`),c){let f=pb(e);f.length>0&&u.push(` ref fields: ${f.join(", ")}\uFF08GET \u306B\u542B\u3081\u308B\uFF09`)}u.push(" set fields:");for(let f of e.assignments)u.push(` ${fb(f)}`);for(let f of e.assignments)f.value.type==="SCALAR_SUBQUERY"&&(u.push(""),u.push(...Rt(f.value.query,`[subquery: ${f.field}]`,n,r,void 0,!1,!1)));return u}function ab(e,t,n,r,i){let o=Aa(e,n,r),a=o.branches[0],c=e.applyBlocks.flatMap(R=>[...R.operations]).map(R=>{if(R.kind==="APPEND")return"APPEND";if(R.kind==="ADD"||R.kind==="REMOVE_VALUE")return"VALUE_LITERAL";if(R.selector.kind==="ALL_ROWS")return"ALL_ROWS";let E=R.selector.where;return E.type==="BINARY"&&E.op==="="&&E.left.type==="FIELD"&&E.left.tableAlias===null&&E.left.field==="_rid"?"_rid":"SAFE_PREDICATE"}),d=[...new Set(a.targets.flatMap(R=>R.operations.map(E=>E.kind)))],u=d.includes("REMOVE"),p=km.get(e),f=p?["parent selection: safe prefilter + JS residual evaluation",`kintone prefilter: ${p.prefilter===null?"(none; empty query)":j(p.prefilter)}`,"JS residual: original parent WHERE",`applied KLIKE: ${p.appliedKlikes.size}`,`unapplied KLIKE: ${p.unappliedKlikes.length}${p.unappliedKlikes.length>0?" (unsupported: cannot be fully applied to native query)":""}`,`candidate limit: maxRecords=${i}, onLimit=error, stopAfter=none`,`target guard: dmlMaxRows=${n} after JS residual evaluation`,"search abort: DML fail-closed (B7-P3; all surfaces, no surface gate)"]:[];return[...t?[t]:[],"statement: UPDATE APPLY",`target app: APP${e.appId}`,`parent selector: ${Xi(e.where)}`,`parent cardinality: ${vt(e.where)?"single":"multiple"}`,...f,`apply target: ${a.targets.map(R=>`${R.field} (${R.targetKind})`).join(" | ")}`,`operations: ${d.join(" | ")}`,`selector: ${c.join(" | ")}`,"snapshot evaluation: yes","inserted rows visible: no","revision guard: required","revision: unknown (records API not called)",`payload preservation: row ids=yes, row order=yes, unpatched cells=yes, remove tables=${u?"FULL_SURVIVORS":"none"}`,"post-image validation: required (B43 equivalent)","parent rows: unknown (records API not called)","matched subtable rows: unknown (records API not called)","validation errors: unknown (records API not called)",`deleted rows: ${u?"unknown (records API not called)":"0 (static without REMOVE)"}`,`dmlMaxRows: ${n}`,`dmlMaxSubtableRows: ${r}`,"MCP mutation: disabled in v1",...cp(o)]}function sb(e,t){let n=[];return t&&n.push(t),n.push(" [DELETE]"),n.push(` target: APP${e.appId} (${e.appId})`),n.push(` kintone query: ${Xi(e.where)}`),e.subtableCode||(n.push(" selection: exact native pushdown; JS residual none"),n.push(" search abort: DML fail-closed (SearchAbortedError; mutation 0)")),n.push(He(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json \u2192 DELETE /k/v1/records.json"),n}function lb(e,t,n=Wt,r=ve){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,...cp(Aa(e,n,r))]:a}function cp(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 ub(e,t,n,r,i){let o=[...t?[t]:[]," [UPSERT SELECT]",` target: APP${e.appId} (${e.appId})`,` key fields: ${e.keyFields.join(", ")}`,` fields: ${e.fields.join(", ")}`," api: GET /k/v1/records.json\uFF08\u91CD\u8907\u5224\u5B9A\uFF09\u2192 POST \u307E\u305F\u306F PUT /k/v1/records.json\uFF08100 \u4EF6\u3054\u3068\u306B\u30D0\u30C3\u30C1\uFF09",""];return o.push(...Rt(e.select,"[source SELECT]",n,r,i,!1,!1)),o}function cb(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(Hm).join(", "),o=[...t?[t]:[]," [REORDER]",` target: APP${e.appId} (${e.appId})`,` table: ${n}`,` scope: ${r}`,` by: ${i}`,He(e.where)?" api: metadata validation only (records API access: none)":" api: GET /k/v1/records.json\uFF08\u884C ID \u53D6\u5F97\uFF09\u2192 PUT /k/v1/records.json\uFF08id \u914D\u5217\u306E\u307F\u9001\u4FE1\uFF09"];return!e.all&&e.where&&o.splice(5,0,` where: ${Xi(e.where)}`),o}function Hm(e){return`${e.key.type==="FIELD_NAME"?e.key.name:"(\u5F0F)"} ${e.direction}`}function Xi(e){if(e.type==="BOOLEAN")return e.value?"TRUE":"FALSE (constant)";try{return j(e)}catch{return"(JS \u8A55\u4FA1\u304C\u5FC5\u8981\u306A\u305F\u3081 kintone \u30AF\u30A8\u30EA\u306B\u5909\u63DB\u4E0D\u53EF)"}}function pb(e){let t=new Set;for(let{value:n}of e.assignments)n.type==="ARITH"&&fs(n,t),n.type==="STRING_FUNC"&&fs(n,t),(n.type==="SCALAR_ARITH"||n.type==="CONCAT_OP")&&Gi(n,t);return[...t]}function fs(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"&&(fs(e.left,t),fs(e.right,t)),e.type==="STRING_FUNC")for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Gi(n,t)}async function Ym(e,t,n,r,i){let o=Zc(e),a=await Ie(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 Ie(t.appId,n,r),c=new Set,d=new Set;for(let p of o){if(p.tableAlias!==null){if(p.tableAlias.toLowerCase()===`app${e.appId}`.toLowerCase()){if(p.field!=="$id"&&!a.has(p.field))throw Le(`CHECK \u306E\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);c.add(p.field)}else if(p.tableAlias.toLowerCase()===t.alias.toLowerCase()){if(p.field!=="$id"&&!l.has(p.field))throw Le(`CHECK \u306E\u30BD\u30FC\u30B9\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u5B58\u5728\u3057\u307E\u305B\u3093`);d.add(p.field)}else throw Le(`CHECK \u306E\u4FEE\u98FE\u5B50 ${p.tableAlias} \u306F\u66F4\u65B0\u5148\u307E\u305F\u306F FROM alias \u3067\u306F\u3042\u308A\u307E\u305B\u3093`);continue}let f=p.field==="$id"||a.has(p.field),R=p.field==="$id"||l.has(p.field);if(!f)throw Le(`UPDATE FROM \u306E CHECK \u3067\u306F\u30BD\u30FC\u30B9\u5217 ${p.field} \u3092\u4FEE\u98FE\u3057\u3066\u304F\u3060\u3055\u3044`);if(R)throw Le(`UPDATE FROM \u306E CHECK \u306E\u975E\u4FEE\u98FE\u30D5\u30A3\u30FC\u30EB\u30C9 ${p.field} \u306F\u66D6\u6627\u3067\u3059`);c.add(p.field)}let u=new Map;for(let[p,f]of a)u.set(p,f),u.set(`APP${e.appId}.${p}`,f);u.set("$id","RECORD_NUMBER"),u.set(`APP${e.appId}.$id`,"RECORD_NUMBER");for(let[p,f]of l)u.set(`${t.alias}.${p}`,f);return{targetFields:[...c],sourceFields:[...d],evaluationTypes:u}}function db(e,t,n){if(!e)return{};let r=Gt(e.target,null);return Object.fromEntries([...Object.entries(r),...Object.entries(r).map(([i,o])=>[`APP${t}.${i}`,o]),...Object.entries(e.source).map(([i,o])=>[`${n}.${i}`,o])])}function Gi(e,t){if(e.type==="FIELD"){t.add(e.tableAlias?`${e.tableAlias}.${e.field}`:e.field);return}if(e.type==="STRING_FUNC"){for(let n of e.args)n.type==="AGG_GROUP_KEY"?t.add(n.tableAlias?`${n.tableAlias}.${n.field}`:n.field):n.type!=="AGG_REF"&&n.type!=="AGG_ARITH"&&n.type!=="VARIABLE"&&Gi(n,t);return}(e.type==="SCALAR_ARITH"||e.type==="CONCAT_OP")&&(Gi(e.left,t),Gi(e.right,t))}function fb(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} = ${jm(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 jm(e){return`${CR(e.left)} ${e.op} ${CR(e.right)}`}function CR(e){if(e.type==="VARIABLE")throw new Error(`InternalError: unresolved arithmetic variable @${e.name} reached arithmetic formatting.`);return e.type==="FIELD_REF"?e.field:e.type==="NUMBER"?z(e):e.type==="ARITH"?`(${jm(e)})`:"..."}var Re=class extends Error{constructor(n,r){super(`${n} \u3092\u30AD\u30E3\u30F3\u30BB\u30EB\u3057\u307E\u3057\u305F\uFF08\u5BFE\u8C61: ${r} \u4EF6\uFF09`);this.operation=n;this.affectedCount=r;this.name="OperationCancelledError"}};var Eb=2,bs=5,Rb=3e4,mb=10*6e4+3e4,Ns=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??Eb;if(!Number.isSafeInteger(r)||r<1||r>bs)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${bs}.`);this.maxActive=r,this.waitTimeoutMs=n.waitTimeoutMs??Rb,this.quarantineMs=n.quarantineMs??mb}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 _a(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>bs)throw new Error(`ArgumentError: cursorMaxActive must be an integer from 1 to ${bs}.`)}};function yb(e){let t=e;return t?.status===404&&t.code==="GAIA_CN01"}async function gb(e,t=r=>new Promise(i=>setTimeout(i,r)),n=yb){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 hb(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 zm(e,t){let n=!1,r=!1,i=Promise.resolve(),o=null;return{totalCount:e,nextPage:()=>{if(r||n)return Promise.resolve({records:[],next:!1});let l=i.then(async()=>{if(r||n)return{records:[],next:!1};let c=await t.get();return c.next||(n=!0,t.onReleased?.()),c});return i=l.then(()=>{},()=>{}),l},close:()=>n?Promise.resolve():o||(r=!0,o=i.then(async()=>{if(!n)try{await hb(gb(t.delete,t.sleep,t.isAlreadyReleasedError),t.cleanupTimeoutMs??5e3),n=!0,t.onReleased?.()}catch(l){throw t.onReleaseUnknown?.(),l}}),o)}}function qm(e){return Jm(e,Sb(e))}function Jm(e,t,n=!1,r){let i=[];for(let o of Object.values(e)){let a=Tb(o.options),s=Ib(o.type,o.format),l={code:o.code,label:o.label,fieldType:o.type,optionOrder:a,sortKind:s,required:o.required,minValue:Cs(o.minValue),maxValue:Cs(o.maxValue),minLength:Cs(o.minLength),maxLength:Cs(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)&&!Ab.has(o.type)};l.semantics=ne(l),i.push(l),o.fields&&i.push(...Jm(o.fields,t,!0,o.type==="SUBTABLE"?o.code:r))}return i}var Ab=new Set(["CALC","RECORD_NUMBER","CREATOR","CREATED_TIME","MODIFIER","UPDATED_TIME","STATUS","STATUS_ASSIGNEE","CATEGORY","REFERENCE_TABLE","SUBTABLE"]);function Sb(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 Cs(e){return e==null||e===""?void 0:e}function Tb(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 Ib(e,t){if(e==="NUMBER"||e==="RECORD_NUMBER")return"number";if(e==="CALC")return t==="NUMBER"||t==="NUMBER_DIGIT"?"number":"string"}function Xm(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 wb="Filter aborted because of too many search results";function Qm(e){return e?.includes(wb)===!0}var oo=class extends Error{constructor(n,r,i){super(i);this.status=n;this.code=r;this.name=r??"KintoneHttpError"}};function Zm(e){let t=bb(e.baseUrl),n=e.guestSpaceId===void 0?"/k/v1":`/k/guest/${Nb(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 Ns(new URL(t).host,{maxActive:i});async function a(l,c,d,u){let p=new Headers({Accept:"application/json"});if(e.auth.type==="apiToken"){let m=typeof e.auth.apiToken=="function"?e.auth.apiToken(d):e.auth.apiToken;p.set("X-Cybozu-API-Token",m)}else p.set("X-Cybozu-Authorization",Cb(`${e.auth.username}:${e.auth.password}`));u!==void 0&&p.set("Content-Type","application/json");let f=new AbortController,R=setTimeout(()=>f.abort(),e.timeoutMs??3e4);R.unref?.();let E;try{E=await r(`${t}${n}${l}`,{method:c,headers:p,signal:f.signal,...u===void 0?{}:{body:JSON.stringify(u)}})}finally{clearTimeout(R)}if(!E.ok){let m=await E.text(),y,g=`kintone API error: HTTP ${E.status}`;try{let T=JSON.parse(m);typeof T.code=="string"&&(y=T.code),typeof T.message=="string"&&(g=T.message)}catch{m!==""&&(g=`${g}: ${m}`)}throw new oo(E.status,y,g)}return{body:await E.json(),response:E}}return{async getRecords(l){let c=new URLSearchParams({app:String(l.app),query:l.query});l.fields.forEach(p=>c.append("fields[]",p)),l.totalCount===!0&&c.set("totalCount","true");let{body:d,response:u}=await a(`/records.json?${c}`,"GET",l.app);return Qm(u.headers.get("X-Cybozu-Warning"))?{...d,searchAborted:!0}:d},async openCursor(l){let c=await o.acquire(),d;try{d=(await o.runCreate(()=>a("/records/cursor.json","POST",l.app,{app:l.app,query:l.query,size:l.size,...l.fields&&l.fields.length>0?{fields:l.fields}:{}}))).body}catch(u){throw u instanceof oo?c.release():c.quarantine(),u instanceof oo?u:new va(u)}return zm(Number(d.totalCount),{get:async()=>(await a(`/records/cursor.json?id=${encodeURIComponent(d.id)}`,"GET",l.app)).body,delete:async()=>{await a("/records/cursor.json","DELETE",l.app,{id:d.id})},onReleased:()=>c.release(),onReleaseUnknown:()=>c.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 c=0;;c+=100){let d=new URLSearchParams({limit:"100",offset:String(c)}),u=await a(`/apps.json?${d}`,"GET",0);if(l.push(...u.body.apps.map(p=>({appId:Number(p.appId),name:p.name,description:p.description}))),u.body.apps.length<100)return l}},async getFields(l){let c=await a(`/app/form/fields.json?app=${encodeURIComponent(String(l))}`,"GET",l);return qm(c.body.properties)},async getNumberPrecision(l){let c=await a(`/app/settings.json?app=${encodeURIComponent(String(l))}`,"GET",l);return Of(c.body)},async getProcessStatuses(l){let c=await a(`/app/status.json?app=${encodeURIComponent(String(l))}&lang=user`,"GET",l);return{enable:c.body.enable,states:Xm(c.body.states)}}}}function bb(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 Nb(e,t){if(!Number.isSafeInteger(e)||e<=0)throw new RangeError(`${t} must be a positive integer.`);return e}function Cb(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 we=class extends Error{constructor(t,n,r){super(n),this.name="KsqlFlowError",this.code=t,this.cause=r}};function Ps(e){if(e instanceof we)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 we(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 we(n,r,e)}function ey(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 Pb="3.73.0",ao=new WeakMap,Os=new WeakMap,pp=new WeakMap;function Ob(e,t={}){return Ls(e,t)}async function Lb(e,t={}){let n=Ls(e,t);if(n.diagnostics.some(l=>l.severity==="error"))return n.diagnostics;let r=Os.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 yp(n.statements,n.meta,o,{strict:t.strict})).map(l=>{let c=n.statementRanges[l.statementIndex??0]?.start??0;return Be(e,c,{severity:l.severity,code:l.code,message:l.message,...l.statementIndex!==void 0?{statementIndex:l.statementIndex}:{}})});return[...n.diagnostics,...s]}async function _b(e,t){let n=Ls(e,t),r=n.diagnostics.find(s=>s.severity==="error");if(r)throw new we(r.code,`${r.message} (${r.line}:${r.column})`);let i=Fb(e,t.apps),o=Os.get(n.statements),a=o?ny(t.client,o):t.client;try{return await $m(i,a,t.variables,"flow-explain",t.maxRecords,t.cursorMaxActive,!1,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 Ps(s)}}function vb(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 y=Ls(e.script,e),g=y.diagnostics.find(T=>T.severity==="error");if(g)throw new we(g.code,`${g.message} (${g.line}:${g.column})`);r=y.statements,i=y.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}let o={},{client:a,script:s,statements:l,meta:c,apps:d,onChunkWritten:u,enableNativeUpsert:p,...f}=e,R=Os.get(r),E=R?ny(a,R):a,m=u&&R?y=>u({...y,appId:R.get(y.appId)?.appId??y.appId}):u;return ao.set(o,xR(r,i,E,f,m,p!==!1)),R&&pp.set(o,R),o}catch(t){throw Ps(t)}}async function Db(e,t,n={}){let r=n.maxSamples??5;if(!Number.isInteger(r)||r<1||r>50)throw new we("ArgumentError","ArgumentError: previewStatement maxSamples must be an integer from 1 through 50; fix the option before retrying.");Ub(e);let i=ao.get(t);if(!i)throw new we("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");try{let o=await FR(e,i,r),a=pp.get(t)?.get(o.appId)?.appId??o.appId;return{...o,appId:a}}catch(o){throw Ps(o)}}function Ub(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 we("ArgumentError",`ArgumentError: previewStatement accepts INSERT, UPDATE, DELETE, and UPSERT DML only. ${r}`)}if("validateOnly"in e&&e.validateOnly===!0)throw new we("ArgumentError","ArgumentError: previewStatement does not accept VALIDATE ONLY; send validation DML to executeStatement.");if("onErrorSkip"in e&&e.onErrorSkip===!0)throw new we("ArgumentError","ArgumentError: previewStatement does not accept ON ERROR SKIP; remove the modifier or use executeStatement.");if("checkGroups"in e&&e.checkGroups?.length)throw new we("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 we("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 we("ArgumentError","ArgumentError: previewStatement does not accept subtable targets; target the parent app instead.")}async function Mb(e,t){let n=ao.get(t);if(!n)throw new we("ExecutionContextDisposedError","ExecutionContextDisposedError: execution context is disposed or invalid.");let r=await kR(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:xb(n.metrics)}}function xb(e){return{...e,limitReachedApps:[...e.limitReachedApps]}}async function kb(e){let t=ao.get(e);t&&(ao.delete(e),pp.delete(e),await KR(t))}function Fb(e,t){if(!$n(e).some(n=>n.source==="logical"))return e;if(t===void 0)throw new Error("Logical app configuration is required.");return ty(e,t).normalizedSql}function Ls(e,t){let n=vd(e,t);if(t.apps!==void 0&&$n(e).some(r=>r.source==="logical")){let r=ty(e,t.apps);Os.set(n.statements,r.appBindingByMappedApp)}return n}function ty(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(Gn(o),i)}catch{}}return co(e,"flow",{resolveLogicalApp(r){let i=n.get(Gn(r));if(i===void 0)throw new Error(`Logical app LAPP_${r} is not defined.`);return i}})}function ny(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={KsqlFlowError,createExecutionContext,createKintoneClient,disposeExecutionContext,executeStatement,explainScript,isDmlResult,parseScript,previewStatement,validateScript,version});