File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -13,3 +13,4 @@ release/
1313_local /
1414tests /test_edge_cases.py
1515tests /test_edge_cases2.py
16+ tests /test_edge_cases3.py
Original file line number Diff line number Diff line change @@ -160,6 +160,9 @@ Windows 实机测试步骤、前置条件、测试场景和真实数据库地址
160160## 已知限制
161161
162162- GaussDB 集中式不支持 PostgreSQL ` ON CONFLICT ` upsert 语法。SQLAlchemy PostgreSQL 方言的 ` insert(...).on_conflict_do_update() ` 会生成 ` ON CONFLICT ` SQL,当前版本仅声明该限制,不做自动改写。
163+ - M 兼容下 ` LIKE ` 默认大小写不敏感,符合 MySQL 风格行为;A/B 兼容下 ` LIKE ` 为大小写敏感。跨兼容模式迁移时需要单独确认查询语义。
164+ - M 兼容下不支持 ` INTERSECT ` / ` EXCEPT ` 集合运算;SQLAlchemy 的 ` intersect() ` / ` except_() ` 在 M 兼容库上会由数据库返回语法错误。
165+ - M 兼容下 raw SQL ` CREATE TEMP TABLE ` 不支持,需使用 ` CREATE TEMPORARY TABLE ` ;通过 SQLAlchemy 创建临时表时建议显式使用 ` prefixes=["TEMPORARY"] ` 。
163166
164167## 并发限制
165168
Original file line number Diff line number Diff line change @@ -468,6 +468,14 @@ pytest -m integration -rs
468468
469469GaussDB 集中式不支持 PostgreSQL ` ON CONFLICT ` upsert 语法。SQLAlchemy PostgreSQL 方言的 ` insert(...).on_conflict_do_update() ` 会生成 ` ON CONFLICT ` SQL,如果数据库返回语法或能力限制错误,属于 GaussDB 集中式限制,不是 Windows 环境或 JDBC 驱动安装问题。
470470
471+ ### 6.8 M 兼容 LIKE、INTERSECT、EXCEPT 或临时表语法失败
472+
473+ 以下现象属于 M 兼容模式的数据库行为差异,不是 Windows 环境问题:
474+
475+ - ` LIKE ` 默认大小写不敏感,测试断言不能按 A/B 兼容的大小写敏感结果编写。
476+ - ` INTERSECT ` / ` EXCEPT ` 不支持,SQLAlchemy 的 ` intersect() ` / ` except_() ` 在 M 兼容库上会失败。
477+ - raw SQL ` CREATE TEMP TABLE ` 不支持,应改为 ` CREATE TEMPORARY TABLE ` ;SQLAlchemy Core 建临时表建议使用 ` prefixes=["TEMPORARY"] ` 。
478+
471479判断驱动核心能力时,以 ` run_integration_probe.py ` 和 pytest 集成测试结果为主。
472480
473481## 7. 测试报告模板
Original file line number Diff line number Diff line change @@ -111,3 +111,13 @@ pytest -m integration
111111GaussDB 集中式不支持 PostgreSQL ` ON CONFLICT ` upsert 语法。SQLAlchemy PostgreSQL 方言的 ` insert(...).on_conflict_do_update() ` 会生成 ` ON CONFLICT ` SQL,在集中式库上会由数据库返回语法或能力限制错误。
112112
113113建议业务侧使用目标兼容模式支持的替代写法,或在应用层拆成先查后插、先更新后插等显式流程。
114+
115+ ## 10. M 兼容下 LIKE、INTERSECT、EXCEPT 和临时表有什么差异?
116+
117+ M 兼容更接近 MySQL 风格,以下差异属于数据库兼容模式行为,不是驱动 bug:
118+
119+ - ` LIKE ` 默认大小写不敏感;A/B 兼容下通常为大小写敏感。
120+ - ` INTERSECT ` / ` EXCEPT ` 不支持;SQLAlchemy 的 ` intersect() ` / ` except_() ` 在 M 兼容库上会执行失败。
121+ - raw SQL ` CREATE TEMP TABLE ` 不支持,应改为 ` CREATE TEMPORARY TABLE ` 。
122+
123+ 如果通过 SQLAlchemy Core 创建临时表,建议显式使用 ` prefixes=["TEMPORARY"] ` ,避免生成不兼容的临时表语法。
You can’t perform that action at this time.
0 commit comments