mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-05-22 08:50:17 +08:00
- 标识符处理:下沉 Kingbase 引用逻辑,普通小写 schema/table 不再强制双引号包裹 - 表操作修复:修复截断、清空、导入、导出等路径生成异常双引号 SQL - 同步链路修复:统一数据同步、预览、迁移建表中的 Kingbase schema.table 拼接规则 - 自定义驱动兼容:补齐 kingbase8/kingbasees/kingbasev8 别名归一与写入路径处理 - 回归覆盖:新增 ldf_server.andon_events、转义引号、保留字和大小写标识符测试
61 lines
1.9 KiB
Go
61 lines
1.9 KiB
Go
package sync
|
|
|
|
import "testing"
|
|
|
|
func TestQuoteQualifiedIdentByType_KingbaseLeavesLowercaseQualifiedTableUnquoted(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
got := quoteQualifiedIdentByType("kingbase", "ldf_server.andon_events")
|
|
if got != "ldf_server.andon_events" {
|
|
t.Fatalf("unexpected kingbase qualified identifier: %s", got)
|
|
}
|
|
}
|
|
|
|
func TestQuoteQualifiedIdentByType_KingbaseNormalizesEscapedQuotedQualifiedTable(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
got := quoteQualifiedIdentByType("kingbase", `\"Idf_server\".\"andon_events\"`)
|
|
if got != `"Idf_server".andon_events` {
|
|
t.Fatalf("unexpected kingbase qualified identifier: %s", got)
|
|
}
|
|
}
|
|
|
|
func TestQuoteQualifiedIdentByType_KingbaseAliasUsesKingbaseQuoting(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
got := quoteQualifiedIdentByType("kingbase8", `\"ldf_server\".\"andon_events\"`)
|
|
if got != "ldf_server.andon_events" {
|
|
t.Fatalf("unexpected kingbase alias qualified identifier: %s", got)
|
|
}
|
|
}
|
|
|
|
func TestQuoteIdentByType_KingbaseStillQuotesReservedAndMixedCaseIdentifiers(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
if got := quoteIdentByType("kingbase", "select"); got != `"select"` {
|
|
t.Fatalf("expected reserved word to stay quoted, got %s", got)
|
|
}
|
|
if got := quoteIdentByType("kingbase", "CamelName"); got != `"CamelName"` {
|
|
t.Fatalf("expected mixed-case identifier to stay quoted, got %s", got)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeSchemaAndTable_KingbaseNormalizesEscapedQualifiedName(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
schema, table := normalizeSchemaAndTable("kingbase", "demo", `\"Idf_server\".\"andon_events\"`)
|
|
if schema != "Idf_server" || table != "andon_events" {
|
|
t.Fatalf("unexpected kingbase schema/table: %q.%q", schema, table)
|
|
}
|
|
}
|
|
|
|
func TestNormalizeMigrationDBType_KingbaseAliases(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
for _, in := range []string{"kingbase8", "kingbasees", "kingbasev8"} {
|
|
if got := normalizeMigrationDBType(in); got != "kingbase" {
|
|
t.Fatalf("normalizeMigrationDBType(%q)=%q, want kingbase", in, got)
|
|
}
|
|
}
|
|
}
|