From 15f9e342867d23111bf40ec7177c1b2e6a7560bc Mon Sep 17 00:00:00 2001 From: Leon Zhang Date: Tue, 1 Nov 2022 23:58:57 +0800 Subject: [PATCH] fix disable-version-check test case * code format * fix new merge feature disable-version-check test case --- advisor/rules.go | 4 +- common/testdata/TestPrintConfiguration.golden | 1 + env/env.go | 41 +++++++++++-------- ...k_the_default_config_of_the_changes.golden | 1 + .../test_Run_default_printconfig_cases.golden | 1 + 5 files changed, 28 insertions(+), 20 deletions(-) diff --git a/advisor/rules.go b/advisor/rules.go index f549006..39a08a5 100644 --- a/advisor/rules.go +++ b/advisor/rules.go @@ -1007,8 +1007,8 @@ func InitHeuristicRules() { Severity: "L2", Summary: "建表语句中定义为 ON UPDATE CURRENT_TIMESTAMP 的字段不建议包含业务逻辑", Content: "定义为 ON UPDATE CURRENT_TIMESTAMP 的字段在该表其他字段更新时会联动修改,如果包含业务逻辑用户可见会埋下隐患。后续如有批量修改数据却又不想修改该字段时会导致数据错误。", - Case: `CREATE TABLE category (category_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(25) NOT NULL, last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (category_id)`, - Func: (*Query4Audit).RuleCreateOnUpdate, + Case: `CREATE TABLE category (category_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(25) NOT NULL, last_update TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (category_id)`, + Func: (*Query4Audit).RuleCreateOnUpdate, }, "RES.011": { Item: "RES.011", diff --git a/common/testdata/TestPrintConfiguration.golden b/common/testdata/TestPrintConfiguration.golden index f856aaf..ffb7841 100644 --- a/common/testdata/TestPrintConfiguration.golden +++ b/common/testdata/TestPrintConfiguration.golden @@ -39,6 +39,7 @@ test-dsn: allow-old-passwords: false disable: false allow-online-as-test: true +disable-version-check: false drop-test-temporary: true cleanup-test-database: false only-syntax-check: false diff --git a/env/env.go b/env/env.go index facf71b..731fe4e 100644 --- a/env/env.go +++ b/env/env.go @@ -423,24 +423,29 @@ func (vEnv *VirtualEnv) createDatabase(rEnv *database.Connector) error { } /* - @input: - database.Connector 为一个线上环境数据库连接句柄的复制,因为在处理SQL时需要对上下文进行关联处理, - 所以存在修改DB连接参数(主要是数据库名称变更)的可能性,为了不影响整体上下文的环境,所以需要一个镜像句柄来做当前环境的操作。 - - dbName, tbName: 需要在环境中操作的库表名称, - - @output: - return 执行过程中的错误 - - NOTE: - 该函数会将线上环境中使用到的库表结构复制到测试环境中,为后续操作提供基础环境。 - 传入的库表名称均来自于对AST的解析,库表名称的获取遵循以下原则: - 如果未在SQL中指定数据库名称,则数据库一定是配置文件(或命令行参数传入DSN)中指定的数据库 - 如果一个SQL中存在多个数据库,则只能有一个数据库是没有在SQL中被显示指定的(即DSN中指定的数据库) - TODO: - 在一些可能的情况下,由于数据库配置的不一致(如SQL_MODE不同)导致remote环境的库表无法正确的在测试环境进行同步, - soar 能够做出判断并进行 session 级别的修改,但是这一阶段可用性保证应该是由用户提供两个完全相同(或测试环境兼容线上环境) - 的数据库环境来实现的。 +@input: + + database.Connector 为一个线上环境数据库连接句柄的复制,因为在处理SQL时需要对上下文进行关联处理, + 所以存在修改DB连接参数(主要是数据库名称变更)的可能性,为了不影响整体上下文的环境,所以需要一个镜像句柄来做当前环境的操作。 + + dbName, tbName: 需要在环境中操作的库表名称, + +@output: + + return 执行过程中的错误 + +NOTE: + + 该函数会将线上环境中使用到的库表结构复制到测试环境中,为后续操作提供基础环境。 + 传入的库表名称均来自于对AST的解析,库表名称的获取遵循以下原则: + 如果未在SQL中指定数据库名称,则数据库一定是配置文件(或命令行参数传入DSN)中指定的数据库 + 如果一个SQL中存在多个数据库,则只能有一个数据库是没有在SQL中被显示指定的(即DSN中指定的数据库) + +TODO: + + 在一些可能的情况下,由于数据库配置的不一致(如SQL_MODE不同)导致remote环境的库表无法正确的在测试环境进行同步, + soar 能够做出判断并进行 session 级别的修改,但是这一阶段可用性保证应该是由用户提供两个完全相同(或测试环境兼容线上环境) + 的数据库环境来实现的。 */ func (vEnv *VirtualEnv) createTable(rEnv *database.Connector, tbName string) error { // 判断数据库是否已经创建 diff --git a/test/fixture/test_Check_the_default_config_of_the_changes.golden b/test/fixture/test_Check_the_default_config_of_the_changes.golden index 6923255..b1bc2a4 100644 --- a/test/fixture/test_Check_the_default_config_of_the_changes.golden +++ b/test/fixture/test_Check_the_default_config_of_the_changes.golden @@ -39,6 +39,7 @@ test-dsn: allow-old-passwords: true disable: false allow-online-as-test: true +disable-version-check: false drop-test-temporary: false cleanup-test-database: true only-syntax-check: true diff --git a/test/fixture/test_Run_default_printconfig_cases.golden b/test/fixture/test_Run_default_printconfig_cases.golden index 241b875..2e5334b 100644 --- a/test/fixture/test_Run_default_printconfig_cases.golden +++ b/test/fixture/test_Run_default_printconfig_cases.golden @@ -39,6 +39,7 @@ test-dsn: allow-old-passwords: false disable: false allow-online-as-test: false +disable-version-check: false drop-test-temporary: true cleanup-test-database: false only-syntax-check: false -- GitLab