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
Found while verifying the 17.0.0-rc.1 checklist on #3909 (F3). Verified on main @ 1ee48bc60.
The #4209/#4029 posture itself works — a filter carrying an operator the driver cannot compile is refused instead of matching everything. But the refusal envelope breaks the ADR-0112 contract this train shipped:
GET /api/v1/data/showcase_task?filter={"title":{"$bogusop":"x"}}
→ 400 {"error":"[sql-driver] Unsupported filter operator \"$bogusop\" on field \"title\". Supported operators: $eq, $ne, …"}
Contrast: the same request with a non-AST filter array gets a proper {"code":"INVALID_FILTER"}; only the unsupported-operator branch bypasses the envelope (the driver's thrown message is served raw).
Expected: the unsupported-operator refusal speaks a catalogued code (INVALID_FILTER fits) with the actionable operator list kept in the message/details, and no driver prefix.
Found while verifying the 17.0.0-rc.1 checklist on #3909 (F3). Verified on
main@1ee48bc60.The #4209/#4029 posture itself works — a filter carrying an operator the driver cannot compile is refused instead of matching everything. But the refusal envelope breaks the ADR-0112 contract this train shipped:
codeat all — the body's only key iserror. ADR-0112 (feat(spec,core,runtime,docs)!: ADR-0112 batch 1 — one error-code vocabulary, SCREAMING_SNAKE, schema-enforced (#3841) #3988, refactor!: ADR-0112 batch 2 — sweep the lowercase error-code emitters (#4003) #4021) madeerror.codethe schema-enforced, SCREAMING_SNAKE vocabulary; refactor(types,rest,services,plugin-sharing): one shared writer for the response envelope, anderror.codeis enforced at compile time (#3973) #4229 even enforceserror.codeat compile time for the shared envelope writer. Sibling refusals on the same route already comply (INVALID_FIELD,INVALID_FILTER,BATCH_TOO_LARGE,RECORD_NOT_FOUND).[sql-driver]internal prefix leaks into the client message — driver-internal wording on the wire is what the analytics /query 未做 cube 存在性校验,未注册名直达驱动当表名;且错误路径原样回显驱动 SQL(#3770 同类,另一子系统) #3867 sanitiser exists to stop.Contrast: the same request with a non-AST filter array gets a proper
{"code":"INVALID_FILTER"}; only the unsupported-operator branch bypasses the envelope (the driver's thrown message is served raw).Expected: the unsupported-operator refusal speaks a catalogued code (
INVALID_FILTERfits) with the actionable operator list kept in the message/details, and no driver prefix.Part of the #3909 rc.1 verification (section F3).