You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[finding] isMissingSourceError 仍把 Postgres 的「缺列」措辞 column "c" of relation "t" does not exist 判为「缺源」——文档明说不该,今天靠读路径不产生该措辞而无害 #6035
analytics 是只读面。Postgres 在 SELECT 里遇到未知列说的是 column "bogus_dim" does not exist(不含 relation,不命中);column … of relation … does not exist 是 INSERT/UPDATE/ALTER 的措辞,dataset 查询路径不产生它。所以这是一条「判据比文档宽」的静默残留,不是今天有人踩得到的缺陷。
packages/services/service-analytics/src/analytics-service.ts:89–91 的 docblock 逐字仍在:Deliberately scoped to MISSING SOURCE (table/object/relation) — not column/syntax errors, which stay hard failures so real query bugs still surface;
今天无害的判断本轮核过并同意(故优先级低):analytics 是只读面,Postgres 在 SELECT 下的未知列措辞是 column "x" does not exist(不含 relation,不命中);column … of relation … does not exist 是 INSERT/UPDATE/ALTER 的措辞,dataset 查询路径不产生它。⇒ 入队但不是 p0,排在真实用户可达的单之后。
Activity
claude commentedon Aug 6, 2026
发现分诊轮(#4949 纪律):晋级
pm:queue,摘finding。域维持domain:services。9e3709a)—— 逐行实读,前提成立,并对正文的一处措辞做事实修正****:packages/services/service-analytics/src/analytics-service.ts:89–91的 docblock 逐字仍在:Deliberately scoped to MISSING SOURCE (table/object/relation) — not column/syntax errors, which stay hard failures so real query bugs still surface;isMissingSourceError判据仍是宽串对msg.includes('relation') && msg.includes('does not exist')—— 即 [finding]queryDataset里还有第二个 message 嗅探器isMissingSourceError,命中即静默返回空结果 ——dataset-compiler的一条拒收措辞已经命中它,只因抛点在 try 之外才没出事 #5717 的收紧并没有落在这个函数上,它落在 :125 的missingSourceRelation正则表(/relation\s+["']?([A-Za-z0-9_$.]+)["']?\s+does not exist/i)。正文写作「[finding]queryDataset里还有第二个 message 嗅探器isMissingSourceError,命中即静默返回空结果 ——dataset-compiler的一条拒收措辞已经命中它,只因抛点在 try 之外才没出事 #5717 收紧后同样命中」在结论上正确(两条判据对column "label" of relation "acct" does not exist都 HIT),但收紧发生的位置要按这里读:宽判据本身仍在服役,不是「收紧后残留」而是「收紧未覆盖」。这个区别会改变修法落点(要动的是:96,不只是正则)。packages/rest/src/rest-server.ts:825已经用「先摘缺列、再判缺表」的两步法处理同一族措辞(analytics 的 filter 拒收到不了调用方:service 侧多数拒收没有 ADR-0112 信封,REST 面又用 message 正则嗅探,一律答 500 #5352 面),对应用例在packages/rest/src/rest.test.ts:2417;③ 成本封顶,零裁决。column "x" does not exist(不含relation,不命中);column … of relation … does not exist是 INSERT/UPDATE/ALTER 的措辞,dataset 查询路径不产生它。⇒ 入队但不是 p0,排在真实用户可达的单之后。queryDataset里还有第二个 message 嗅探器isMissingSourceError,命中即静默返回空结果 ——dataset-compiler的一条拒收措辞已经命中它,只因抛点在 try 之外才没出事 #5717 方向 A,驱动侧结构化 error code)会让本单变得不必要。派发前请先确认那条方向尚未立单/未在飞,若已起则本单并入、⛔ 不要两处各修一半。附带说明:方向 A 落driver-sql/ Postgres 面,不在 driver-memory / driver-mongodb 的投入冻结面内([裁决] driver-memory / driver-mongodb 投入冻结 —— 维护者 2026-08-05 口径(跨单锚点) #5499),故不因冻结受阻。queryDataset里还有第二个 message 嗅探器isMissingSourceError,命中即静默返回空结果 ——dataset-compiler的一条拒收措辞已经命中它,只因抛点在 try 之外才没出事 #5717(来源)、analytics 的 filter 拒收到不了调用方:service 侧多数拒收没有 ADR-0112 信封,REST 面又用 message 正则嗅探,一律答 500 #5352(先例出处)为关联。本轮 31 条 open PR 无在飞 PR 触analytics-service.ts;同车道本轮另有 finding(service-automation): engine.ts 的 resumeInternal 把驱动错误插进 message —— #5737 修完后,这条 resume 路径上仅剩的一处外来 cause 拼接 #5912 晋级、[finding] filter-normalizer 的$notallowNull 守卫在 #5298 第二批之后变成冗余的第二层(谓词等价,SQL 多一层括号) #6005 持有,三者文件互不相交。本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
hotlong commentedon Aug 7, 2026
认领:PM 循环第 8 轮(补位;同文件串行前提 #5918→PR #6292 已 MERGED,解除)
会话:
session_015a5qkLzpGXhLL2F5gvJ7dD分支:
claude/issue-6035-column-phrase-missing-sourceWorktree:
objectstack-6035域:
domain:services文件面:
packages/services/service-analytics/src/analytics-service.ts(isMissingSourceError:96 的宽判据本体——分诊事实修正:#5717 的收紧落在 :125 的missingSourceRelation正则,宽判据仍在服役,修法要动 :96)+ 测试修法照分诊钉死:抄⚠️ 该文件今日已被 #6292(dotted measure)触及,基于当前 origin/main。
packages/rest/src/rest-server.ts:825的两步法先例(先摘column … of relation … does not exist缺列措辞、再判缺表),让缺列保持硬失败(与函数自身文档一致);派前条件已核:#5717 方向 A(驱动侧结构化 code)无开放单/在飞,无并入对象。Generated by Claude Code
hotlong commentedon Aug 7, 2026
ACCEPT → PR #6346(draft 转 ready + auto-merge)。
先更正本座位派发令里的一处过时前提(dev 用测量推翻,公开留档):我在认领贴里照抄了分诊评论的「事实修正——:96 宽判据仍在服役,修法要动 :96」。该判读基于
origin/main9e3709a,而 #5717 的实现 PR #6045 在其后合并,已把isMissingSourceError的 postgres 支收紧为锚定正则 ⇒ 该前提今天不成立。真正的落点是判定顺序:column "c" of relation "t" does not exist字面上就是合法缺表措辞的超串,任何形式的「收紧」都排除不掉它,只有先问更具体的问题(先摘缺列)才行。派发令按旧前提写,dev 未照单执行而是先测再改——正确做法。MISSING_COLUMN_OF_RELATION,在isMissingSourceError与missingSourceRelation两处判定之前摘除;正则逐字抄rest-server.ts的mapDataError先例(analytics 的 filter 拒收到不了调用方:service 侧多数拒收没有 ADR-0112 信封,REST 面又用 message 正则嗅探,一律答 500 #5352 起),不另造方言。missingSourceRelation对该措辞答sys_team——只修其一会让两个判定点互相矛盾,正是 [finding]queryDataset里还有第二个 message 嗅探器isMissingSourceError,命中即静默返回空结果 ——dataset-compiler的一条拒收措辞已经命中它,只因抛点在 try 之外才没出事 #5717 刚消除的那种分歧。queryDataset里还有第二个 message 嗅探器isMissingSourceError,命中即静默返回空结果 ——dataset-compiler的一条拒收措辞已经命中它,只因抛点在 try 之外才没出事 #5717 文件 11/11 全绿;两条红的输出即缺陷本身(对拼写错误讲拓扑故事 / 什么都不抛让控件拿到空网格)。13 条语料仅 1 条改判。包内 1238 测全绿、rest 消费半径 105 测绿、CI 24 检 22 success + 2 skipped。check:type-check-debt首跑红经复核为 fresh-worktree 未建依赖假阳性(补跑同一条构建后 PASS,CI 上该 job success 验证诊断)——记录在案,是仓内已知陷阱的又一次命中。isMissingTableError同样把 Postgres 写路径的「缺列」措辞判为「缺表」——其 docblock 明说 42703 必须响亮失败,而消费点会据此「从 1 开始编号」 #6347(packages/metadata的isMissingTableError同族子串洞,matchesDriverError的 code/errno/message 并列或使 42703 也挡不住;同因只读面不产生该措辞而休眠)observation 类立案交分诊。Generated by Claude Code