Files
胡飞 fa244b39bb fix(db): PostgreSQL 序列列表查询写了不存在的列,序列目录一直为空
PG 的序列目录从来是空的:`list_sequences` 查 `information_schema.sequences` 时用的
是 `min_value` / `max_value`,而该视图的真实列名是 `minimum_value` /
`maximum_value`。PostgreSQL 直接回 `ERROR: column "min_value" does not exist`,
调用侧 `build_database_or_schema_children` 又用 `.unwrap_or_default()` 把错误吞掉,
于是用户只看到一个空目录,没有任何提示。

- 修正列名(`minimum_value::bigint` / `maximum_value::bigint`);NULL 或不合法文本
  仍按「取不到就丢这一个值」处理,不会让整张列表失败。
- 对象面板补 schema:`SequencesFolder` 分支原来调 `list_sequences_view`,PG 实现里
  schema 固定成 public,非 public schema 下永远查的是 public。新增
  `list_sequences_view_in_schema`(默认退回原实现,MySQL 等驱动行为不变),PG 覆盖
  并传节点 schema;同时把对象视图的列定义与行构造抽成 `sequences_object_view`,
  避免两个入口重复。
- 左侧树的序列目录本来就传了 schema,只有对象面板这条漏了。

验证:

- 新增真实库用例 `crates/db/tests/real_databases/postgres/sequences.rs`:在非 public
  schema 下建 plain / 显式 MINVALUE·MAXVALUE / NO MINVALUE·NO MAXVALUE / smallint
  四种序列,断言取值(含 `NO MAXVALUE` 的 i64::MAX、smallint 的 32767)、对象面板
  按 schema 取数、不带 schema 的旧入口仍只查 public,以及树的序列目录内容与
  元数据。`ONETCLI_TEST_POSTGRES_PASSWORD=... cargo test -p db --test real_postgres`
  → 6 passed。
- 新增单测 `test_postgres_sequences_use_information_schema_minimum_columns`。变异
  验证:把列名改回 `min_value` / `max_value`,单测与真实库用例都变红,改回即绿。
- `cargo test -p db -p db_view` → 1316 passed / 721 passed(各 1 ignored);
  `cargo check --workspace --all-targets` 无 error;新增行 clippy 无告警;rustfmt 干净。
2026-09-22 09:43:48 +08:00
..
2026-02-15 11:51:18 +08:00