From 158ba1a1d95159fb3562559dbda394a8bf81af0e Mon Sep 17 00:00:00 2001 From: Weizhen Wang Date: Mon, 1 Aug 2022 14:02:06 +0800 Subject: [PATCH 1/6] *: enable part revive for all code (#36703) --- DEPS.bzl | 163 ++++++------ Makefile | 2 +- bindinfo/handle.go | 1 - br/pkg/backup/client.go | 8 +- br/pkg/backup/schema.go | 1 - br/pkg/glue/console_glue_test.go | 1 - br/pkg/gluetidb/glue.go | 2 - br/pkg/lightning/backend/kv/kv2sql.go | 2 +- br/pkg/lightning/backend/kv/sql2kv.go | 8 +- br/pkg/lightning/backend/kv/sql2kv_test.go | 1 - br/pkg/lightning/backend/local/engine.go | 2 +- br/pkg/lightning/backend/local/local_test.go | 1 - br/pkg/lightning/backend/local/localhelper.go | 39 ++- .../backend/local/localhelper_test.go | 1 - br/pkg/lightning/backend/tidb/tidb.go | 1 - .../lightning/checkpoints/checkpoints_test.go | 1 - br/pkg/lightning/common/errors.go | 3 +- br/pkg/lightning/mydump/parquet_parser.go | 3 +- br/pkg/lightning/mydump/region.go | 4 +- br/pkg/lightning/restore/checksum_test.go | 3 +- .../lightning/restore/chunk_restore_test.go | 2 +- br/pkg/lightning/restore/get_pre_info.go | 14 +- br/pkg/lightning/restore/meta_manager.go | 1 - br/pkg/lightning/restore/meta_manager_test.go | 6 +- br/pkg/lightning/restore/precheck_impl.go | 4 +- .../lightning/restore/precheck_impl_test.go | 1 - br/pkg/lightning/restore/table_restore.go | 7 +- br/pkg/restore/client.go | 12 +- br/pkg/restore/client_test.go | 2 +- br/pkg/restore/db.go | 1 - br/pkg/restore/db_test.go | 2 - br/pkg/restore/split.go | 3 +- br/pkg/restore/split/client.go | 4 +- br/pkg/restore/split_test.go | 2 - br/pkg/restore/stream_metas.go | 5 +- br/pkg/storage/azblob_test.go | 1 - br/pkg/storage/gcs_test.go | 4 +- br/pkg/stream/rewrite_meta_rawkv_test.go | 1 - br/pkg/stream/stream_mgr.go | 6 +- br/pkg/stream/stream_status.go | 1 - br/pkg/streamhelper/advancer.go | 3 +- br/pkg/streamhelper/advancer_cliext.go | 2 +- br/pkg/streamhelper/basic_lib_for_test.go | 34 +-- br/pkg/streamhelper/regioniter_test.go | 1 - br/pkg/streamhelper/tsheap_test.go | 1 - br/pkg/task/restore.go | 5 +- br/pkg/task/stream.go | 3 +- br/pkg/utils/backoff_test.go | 7 +- br/pkg/version/version_test.go | 2 - build/BUILD.bazel | 1 + build/linter/allrevive/BUILD.bazel | 17 ++ build/linter/allrevive/analyzer.go | 198 +++++++++++++++ build/linter/gci/BUILD.bazel | 2 +- build/linter/gci/analysis.go | 14 +- build/linter/revive/analyzer.go | 3 + build/nogo_config.json | 13 +- cmd/ddltest/ddl_test.go | 2 - cmd/ddltest/index_test.go | 1 + cmd/explaintest/main.go | 5 + config/config_test.go | 1 - ddl/backfilling.go | 4 +- ddl/db_partition_test.go | 236 +++++++++--------- ddl/db_rename_test.go | 20 +- ddl/db_table_test.go | 1 - ddl/db_test.go | 4 - ddl/ddl_api.go | 29 +-- ddl/ddl_error_test.go | 1 - ddl/ddl_tiflash_api.go | 14 +- ddl/ddl_tiflash_test.go | 2 +- ddl/index.go | 12 +- ddl/index_modify_test.go | 2 +- ddl/job_table.go | 6 +- ddl/modify_column_test.go | 1 - ddl/placement_policy_test.go | 1 + ddl/placement_sql_test.go | 1 - ddl/schematracker/dm_tracker.go | 47 ++-- ddl/sequence_test.go | 1 + ddl/serial_test.go | 1 + ddl/tiflash_replica_test.go | 2 - domain/schema_checker.go | 1 - dumpling/export/config_test.go | 1 - dumpling/export/prepare_test.go | 2 +- dumpling/export/sql_test.go | 1 - executor/admin_test.go | 1 - executor/aggfuncs/func_lead_lag_test.go | 2 - executor/aggregate.go | 4 +- executor/aggregate_test.go | 7 +- executor/analyze_test.go | 1 + executor/analyzetest/analyze_test.go | 114 ++++----- executor/benchmark_test.go | 2 - executor/builder.go | 4 +- executor/compact_table.go | 3 +- executor/ddl_test.go | 1 - executor/executor_test.go | 13 +- executor/executor_txn_test.go | 1 - executor/explainfor_test.go | 1 - executor/grant_test.go | 1 - executor/index_lookup_merge_join.go | 9 +- executor/infoschema_reader.go | 4 +- executor/insert.go | 4 +- executor/insert_common.go | 2 +- executor/insert_test.go | 1 - executor/join_test.go | 5 +- executor/joiner.go | 7 +- executor/mem_reader.go | 2 +- executor/memtable_reader.go | 1 - executor/partition_table_test.go | 13 +- executor/plan_replayer.go | 2 +- executor/point_get_test.go | 4 +- executor/prepared_test.go | 5 +- executor/projection.go | 1 - executor/set_test.go | 1 - executor/show.go | 1 - executor/showtest/show_test.go | 3 - executor/shuffle.go | 1 - executor/simple.go | 12 +- executor/simpletest/simple_test.go | 2 - executor/splittest/split_table_test.go | 1 - executor/tiflashtest/tiflash_test.go | 2 - executor/write.go | 1 - expression/aggregation/base_func.go | 1 - expression/bench_test.go | 5 +- expression/builtin_arithmetic.go | 1 - expression/builtin_arithmetic_vec.go | 4 +- expression/builtin_cast.go | 5 +- expression/builtin_control.go | 1 - expression/builtin_encryption_test.go | 1 - expression/builtin_encryption_vec.go | 2 + expression/builtin_json_vec.go | 1 + expression/builtin_string.go | 1 - expression/builtin_string_test.go | 1 - expression/builtin_string_vec.go | 1 + expression/builtin_time.go | 2 - expression/builtin_vectorized_test.go | 1 - expression/constant_propagation.go | 1 - expression/constant_propagation_test.go | 2 +- expression/expr_to_pb_test.go | 1 - expression/expression.go | 2 +- expression/flag_simplify_test.go | 2 +- expression/integration_test.go | 5 - expression/partition_pruner.go | 2 +- expression/util.go | 2 +- go.mod | 28 +-- go.sum | 54 ++-- infoschema/cache_test.go | 1 - infoschema/cluster_tables_test.go | 2 - infoschema/tables_test.go | 1 - parser/ast/ddl.go | 1 - parser/ast/dml.go | 15 +- parser/ast/expressions.go | 1 - parser/ast/expressions_test.go | 1 - parser/ast/misc.go | 6 +- parser/ast/misc_test.go | 1 - parser/ast/util.go | 3 +- parser/charset/charset_test.go | 2 +- parser/goyacc/format_yacc.go | 13 +- parser/parser_test.go | 4 +- parser/types/field_type_test.go | 1 - planner/cascades/integration_test.go | 26 +- planner/cascades/stringer_test.go | 2 +- planner/cascades/transformation_rules_test.go | 34 +-- planner/core/binary_plan_test.go | 2 +- planner/core/cacheable_checker_test.go | 1 - planner/core/cbo_test.go | 34 +-- planner/core/enforce_mpp_test.go | 14 +- planner/core/exhaust_physical_plans.go | 1 - planner/core/expression_rewriter.go | 2 +- planner/core/expression_rewriter_test.go | 4 +- planner/core/flat_plan_test.go | 2 +- planner/core/indexmerge_test.go | 2 +- planner/core/integration_partition_test.go | 8 +- planner/core/integration_test.go | 167 ++++++------- planner/core/logical_plan_builder.go | 1 + planner/core/logical_plan_test.go | 38 +-- planner/core/optimizer_test.go | 1 - planner/core/partition_pruner_test.go | 8 +- planner/core/physical_plan_test.go | 84 +++---- planner/core/plan_test.go | 6 +- planner/core/planbuilder.go | 1 - planner/core/point_get_plan.go | 1 - planner/core/point_get_plan_test.go | 4 +- planner/core/prepare_test.go | 3 - planner/core/rule_aggregation_push_down.go | 2 +- planner/core/rule_join_reorder_test.go | 2 +- planner/core/rule_partition_processor.go | 2 - planner/core/rule_predicate_push_down.go | 2 - planner/core/rule_result_reorder_test.go | 2 +- planner/core/stats_test.go | 4 +- planner/core/task.go | 1 - planner/core/window_push_down_test.go | 6 +- planner/funcdep/fd_graph_test.go | 1 - planner/implementation/base_test.go | 1 - planner/optimize.go | 55 ++-- privilege/privileges/cache.go | 3 +- privilege/privileges/privileges_test.go | 7 +- server/conn.go | 2 - server/conn_stmt.go | 1 - server/conn_test.go | 1 - server/http_handler.go | 3 +- server/server_test.go | 6 - server/tidb_test.go | 4 - session/clustered_index_test.go | 2 +- session/nontransactional.go | 1 - session/schema_amender.go | 2 +- session/session_test/session_test.go | 2 +- .../variable/mock_globalaccessor_test.go | 1 - sessionctx/variable/sysvar.go | 5 +- sessionctx/variable/sysvar_test.go | 2 - sessionctx/variable/variable.go | 3 +- sessionctx/variable/varsutil_test.go | 2 - sessiontxn/failpoint.go | 2 +- sessiontxn/isolation/repeatable_read.go | 11 +- sessiontxn/txn_context_test.go | 1 - statistics/builder.go | 2 +- statistics/column.go | 2 +- statistics/feedback.go | 2 +- statistics/handle/handle.go | 8 +- statistics/handle/handle_hist.go | 4 +- statistics/handle/handle_test.go | 128 +++++----- statistics/index.go | 2 +- statistics/integration_test.go | 4 +- statistics/selectivity_test.go | 28 +-- statistics/trace_test.go | 2 +- store/copr/batch_coprocessor.go | 2 +- store/copr/batch_coprocessor_test.go | 1 - store/copr/coprocessor_cache.go | 2 +- store/driver/txn/error.go | 2 +- store/gcworker/gc_worker.go | 2 +- store/gcworker/gc_worker_test.go | 2 +- store/helper/helper_test.go | 1 - .../unistore/cophandler/cop_handler_test.go | 1 - .../mockstore/unistore/cophandler/mpp_exec.go | 2 +- store/mockstore/unistore/tikv/detector.go | 1 - table/tables/mutation_checker.go | 8 +- table/tables/partition_test.go | 1 - table/tables/tables.go | 2 +- testkit/testdata/testdata.go | 8 +- testkit/testkit.go | 1 - tidb-binlog/node/registry_test.go | 12 - types/const_test.go | 1 - types/convert_test.go | 2 +- types/json/binary_test.go | 1 - types/time_test.go | 2 - util/chunk/chunk_test.go | 1 - util/chunk/column_test.go | 1 - util/dbutil/common_test.go | 1 - util/deadlockhistory/deadlock_history_test.go | 1 - util/expensivequery/memory_usage_alarm.go | 52 ++-- util/fastrand/random_test.go | 2 +- util/generatedexpr/generated_expr.go | 2 +- util/localpool/localpool_test.go | 11 - util/memory/tracker_test.go | 1 - util/misc.go | 3 +- util/ranger/ranger_test.go | 19 +- util/schemacmp/lattice_test.go | 1 - util/schemacmp/type_test.go | 1 - util/sqlexec/utils_test.go | 1 - util/stmtsummary/statement_summary_test.go | 4 +- 258 files changed, 1186 insertions(+), 1184 deletions(-) create mode 100644 build/linter/allrevive/BUILD.bazel create mode 100644 build/linter/allrevive/analyzer.go diff --git a/DEPS.bzl b/DEPS.bzl index 55f0f13716eeb..542c1bbb8a3b8 100644 --- a/DEPS.bzl +++ b/DEPS.bzl @@ -26,8 +26,8 @@ def go_deps(): name = "cc_mvdan_unparam", build_file_proto_mode = "disable", importpath = "mvdan.cc/unparam", - sum = "h1:Jh3LAeMt1eGpxomyu3jVkmVZWW2MxZ1qIIV2TZ/nRio=", - version = "v0.0.0-20211214103731-d0ef000c54e5", + sum = "h1:seuXWbRB1qPrS3NQnHmFKLJLtskWyueeIzmLXghMGgk=", + version = "v0.0.0-20220706161116-678bad134442", ) go_repository( @@ -81,6 +81,13 @@ def go_deps(): sum = "h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw=", version = "v1.0.0", ) + go_repository( + name = "com_github_alingse_asasalint", + build_file_proto_mode = "disable", + importpath = "github.com/alingse/asasalint", + sum = "h1:qqGPDTV0ff0tWHN/nnIlSdjlU/EwRPaUY4SfpE1rnms=", + version = "v0.0.10", + ) go_repository( name = "com_github_aliyun_alibaba_cloud_sdk_go", @@ -108,8 +115,8 @@ def go_deps(): name = "com_github_antonboom_errname", build_file_proto_mode = "disable", importpath = "github.com/Antonboom/errname", - sum = "h1:LzIJZlyLOCSu51o3/t2n9Ck7PcoP9wdbrdaW6J8fX24=", - version = "v0.1.6", + sum = "h1:mBBDKvEYwPl4WFFNwec1CZO096G6vzK9vvDQzAwkako=", + version = "v0.1.7", ) go_repository( name = "com_github_antonboom_nilnil", @@ -630,8 +637,8 @@ def go_deps(): name = "com_github_cpuguy83_go_md2man_v2", build_file_proto_mode = "disable_global", importpath = "github.com/cpuguy83/go-md2man/v2", - sum = "h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU=", - version = "v2.0.1", + sum = "h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w=", + version = "v2.0.2", ) go_repository( name = "com_github_creack_pty", @@ -665,8 +672,8 @@ def go_deps(): name = "com_github_daixiang0_gci", build_file_proto_mode = "disable", importpath = "github.com/daixiang0/gci", - sum = "h1:+EZ83znNs73C9ZBTM7xhNagMP6gJs5wlptiFiuce5BM=", - version = "v0.3.4", + sum = "h1:wf7x0xRjQqTlA2dzHTI0A/xPyp7VcBatBG9nwGatwbQ=", + version = "v0.4.3", ) go_repository( @@ -911,8 +918,8 @@ def go_deps(): name = "com_github_firefart_nonamedreturns", build_file_proto_mode = "disable", importpath = "github.com/firefart/nonamedreturns", - sum = "h1:fSvcq6ZpK/uBAgJEGMvzErlzyM4NELLqqdTofVjVNag=", - version = "v1.0.1", + sum = "h1:abzI1p7mAEPYuR4A+VLKn4eNDOycjYo2phmY9sfv40Y=", + version = "v1.0.4", ) go_repository( @@ -968,15 +975,15 @@ def go_deps(): name = "com_github_fzipp_gocyclo", build_file_proto_mode = "disable_global", importpath = "github.com/fzipp/gocyclo", - sum = "h1:L66amyuYogbxl0j2U+vGqJXusPF2IkduvXLnYD5TFgw=", - version = "v0.5.1", + sum = "h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo=", + version = "v0.6.0", ) go_repository( name = "com_github_gaijinentertainment_go_exhaustruct_v2", build_file_proto_mode = "disable", importpath = "github.com/GaijinEntertainment/go-exhaustruct/v2", - sum = "h1:LAPPhJ4KR5Z8aKVZF5S48csJkxL5RMKmE/98fMs1u5M=", - version = "v2.1.0", + sum = "h1:V9xVvhKbLt7unNEGAruK1xXglyc668Pq3Xx0MNTNqpo=", + version = "v2.2.0", ) go_repository( @@ -1329,8 +1336,8 @@ def go_deps(): name = "com_github_golangci_golangci_lint", build_file_proto_mode = "disable", importpath = "github.com/golangci/golangci-lint", - sum = "h1:o90t/Xa6dhJbvy8Bz2RpzUXqrkigp19DLStMolTZbyo=", - version = "v1.46.2", + sum = "h1:qvMDVv49Hrx3PSEXZ0bD/yhwSbhsOihQjFYCKieegIw=", + version = "v1.47.2", ) go_repository( name = "com_github_golangci_gosec", @@ -1403,8 +1410,8 @@ def go_deps(): name = "com_github_google_go_cmp", build_file_proto_mode = "disable_global", importpath = "github.com/google/go-cmp", - sum = "h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o=", - version = "v0.5.7", + sum = "h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg=", + version = "v0.5.8", ) go_repository( name = "com_github_google_go_querystring", @@ -1685,8 +1692,8 @@ def go_deps(): name = "com_github_hashicorp_go_version", build_file_proto_mode = "disable_global", importpath = "github.com/hashicorp/go-version", - sum = "h1:aAQzgqIrRKRa7w75CKpbBxYsmUoPjzVm1W59ca1L0J4=", - version = "v1.4.0", + sum = "h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek=", + version = "v1.6.0", ) go_repository( name = "com_github_hashicorp_golang_lru", @@ -2143,15 +2150,15 @@ def go_deps(): name = "com_github_kulti_thelper", build_file_proto_mode = "disable", importpath = "github.com/kulti/thelper", - sum = "h1:K4xulKkwOCnT1CDms6Ex3uG1dvSMUUQe9zxgYQgbRXs=", - version = "v0.6.2", + sum = "h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs=", + version = "v0.6.3", ) go_repository( name = "com_github_kunwardeep_paralleltest", build_file_proto_mode = "disable", importpath = "github.com/kunwardeep/paralleltest", - sum = "h1:UdKIkImEAXjR1chUWLn+PNXqWUGs//7tzMeWuP7NhmI=", - version = "v1.0.3", + sum = "h1:FCKYMF1OF2+RveWlABsdnmsvJrei5aoyZoaGS+Ugg8g=", + version = "v1.0.6", ) go_repository( @@ -2238,8 +2245,8 @@ def go_deps(): name = "com_github_maratori_testpackage", build_file_proto_mode = "disable", importpath = "github.com/maratori/testpackage", - sum = "h1:QtJ5ZjqapShm0w5DosRjg0PRlSdAdlx+W6cCKoALdbQ=", - version = "v1.0.1", + sum = "h1:GJY4wlzQhuBusMF1oahQCBtUV/AQ/k69IZ68vxaac2Q=", + version = "v1.1.0", ) go_repository( name = "com_github_masterminds_semver", @@ -2529,8 +2536,8 @@ def go_deps(): name = "com_github_nishanths_exhaustive", build_file_proto_mode = "disable", importpath = "github.com/nishanths/exhaustive", - sum = "h1:xV/WU3Vdwh5BUH4N06JNUznb6d5zhRPOnlgCrpNYNKA=", - version = "v0.7.11", + sum = "h1:0QKNascWv9qIHY7zRoZSxeRr6kuk5aAT3YXLTiDmjTo=", + version = "v0.8.1", ) go_repository( @@ -2661,8 +2668,8 @@ def go_deps(): name = "com_github_pelletier_go_toml_v2", build_file_proto_mode = "disable", importpath = "github.com/pelletier/go-toml/v2", - sum = "h1:P7Bq0SaI8nsexyay5UAyDo+ICWy5MQPgEZ5+l8JQTKo=", - version = "v2.0.0", + sum = "h1:+jQXlF3scKIcSEKkdHzXhCTDLPFi5r1wnK6yPS+49Gw=", + version = "v2.0.2", ) go_repository( name = "com_github_peterbourgon_g2s", @@ -2875,8 +2882,8 @@ def go_deps(): name = "com_github_quasilyte_go_ruleguard_dsl", build_file_proto_mode = "disable", importpath = "github.com/quasilyte/go-ruleguard/dsl", - sum = "h1:5+KTKb2YREUYiqZFEIuifFyBxlcCUPWgNZkWy71XS0Q=", - version = "v0.3.19", + sum = "h1:vNkC6fC6qMLzCOGbnIHOd5ixUGgTbp3Z4fGnUgULlDA=", + version = "v0.3.21", ) go_repository( name = "com_github_quasilyte_gogrep", @@ -3035,8 +3042,8 @@ def go_deps(): name = "com_github_securego_gosec_v2", build_file_proto_mode = "disable", importpath = "github.com/securego/gosec/v2", - sum = "h1:+PDkpzR41OI2jrw1q6AdXZCbsNGNGT7pQjal0H0cArI=", - version = "v2.11.0", + sum = "h1:CQWdW7ATFpvLSohMVsajscfyHJ5rsGmEXmsNcsDNmAg=", + version = "v2.12.0", ) go_repository( @@ -3058,8 +3065,8 @@ def go_deps(): name = "com_github_shirou_gopsutil_v3", build_file_proto_mode = "disable_global", importpath = "github.com/shirou/gopsutil/v3", - sum = "h1:srAQaiX6jX/cYL6q29aE0m8lOskT9CurZ9N61YR3yoI=", - version = "v3.22.4", + sum = "h1:FnHOFOh+cYAM0C30P+zysPISzlknLC5Z1G4EAElznfQ=", + version = "v3.22.6", ) go_repository( name = "com_github_shopify_goreferrer", @@ -3132,12 +3139,20 @@ def go_deps(): sum = "h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI=", version = "v1.0.2", ) + go_repository( + name = "com_github_sivchari_nosnakecase", + build_file_proto_mode = "disable", + importpath = "github.com/sivchari/nosnakecase", + sum = "h1:ZBvAu1H3uteN0KQ0IsLpIFOwYgPEhKLyv2ahrVkub6M=", + version = "v1.5.0", + ) + go_repository( name = "com_github_sivchari_tenv", build_file_proto_mode = "disable", importpath = "github.com/sivchari/tenv", - sum = "h1:wxW0mFpKI6DIb3s6m1jCDYvkWXCskrimXMuGd0K/kSQ=", - version = "v1.5.0", + sum = "h1:d4laZMBK6jpe5PWepxlV9S+LC0yXqvYHiq8E6ceoVVE=", + version = "v1.7.0", ) go_repository( @@ -3194,15 +3209,15 @@ def go_deps(): name = "com_github_spf13_cast", build_file_proto_mode = "disable_global", importpath = "github.com/spf13/cast", - sum = "h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA=", - version = "v1.4.1", + sum = "h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w=", + version = "v1.5.0", ) go_repository( name = "com_github_spf13_cobra", build_file_proto_mode = "disable_global", importpath = "github.com/spf13/cobra", - sum = "h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q=", - version = "v1.4.0", + sum = "h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU=", + version = "v1.5.0", ) go_repository( name = "com_github_spf13_jwalterweatherman", @@ -3222,8 +3237,8 @@ def go_deps(): name = "com_github_spf13_viper", build_file_proto_mode = "disable_global", importpath = "github.com/spf13/viper", - sum = "h1:7OX/1FS6n7jHD1zGrZTM7WtY13ZELRyosK4k93oPr44=", - version = "v1.11.0", + sum = "h1:CZ7eSOd3kZoaYDLbXnmzgQI5RlciuXBMA+18HwHRfZQ=", + version = "v1.12.0", ) go_repository( name = "com_github_ssgreg_nlreturn_v2", @@ -3259,22 +3274,22 @@ def go_deps(): name = "com_github_stretchr_objx", build_file_proto_mode = "disable_global", importpath = "github.com/stretchr/objx", - sum = "h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A=", - version = "v0.1.1", + sum = "h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4=", + version = "v0.4.0", ) go_repository( name = "com_github_stretchr_testify", build_file_proto_mode = "disable_global", importpath = "github.com/stretchr/testify", - sum = "h1:rh3VYpfvzXRbJ90ymx1yfhGl/wq8ac2m/cUbao61kwY=", - version = "v1.7.2-0.20220504104629-106ec21d14df", + sum = "h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=", + version = "v1.8.0", ) go_repository( name = "com_github_subosito_gotenv", build_file_proto_mode = "disable_global", importpath = "github.com/subosito/gotenv", - sum = "h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=", - version = "v1.2.0", + sum = "h1:yAzM1+SmVcz5R4tXGsNMu1jUl2aOJXoiWUCEwwnGrvs=", + version = "v1.4.0", ) go_repository( name = "com_github_sylvia7788_contextcheck", @@ -3353,8 +3368,8 @@ def go_deps(): name = "com_github_tomarrell_wrapcheck_v2", build_file_proto_mode = "disable", importpath = "github.com/tomarrell/wrapcheck/v2", - sum = "h1:Cf4a/iwuMp9s7kKrh74GTgijRVim0wEpKjgAsT7Wctw=", - version = "v2.6.1", + sum = "h1:3dI6YNcrJTQ/CJQ6M/DUkc0gnqYSIk6o0rChn9E/D0M=", + version = "v2.6.2", ) go_repository( name = "com_github_tommy_muehle_go_mnd_v2", @@ -3425,8 +3440,8 @@ def go_deps(): name = "com_github_uudashr_gocognit", build_file_proto_mode = "disable", importpath = "github.com/uudashr/gocognit", - sum = "h1:rrSex7oHr3/pPLQ0xoWq108XMU8s678FJcQ+aSfOHa4=", - version = "v1.0.5", + sum = "h1:2Cgi6MweCsdB6kpcVQp7EW4U23iBFQWfTXiWlyp842Y=", + version = "v1.0.6", ) go_repository( @@ -3590,8 +3605,8 @@ def go_deps(): name = "com_github_yuin_goldmark", build_file_proto_mode = "disable_global", importpath = "github.com/yuin/goldmark", - sum = "h1:/vn0k+RBvwlxEmP5E7SZMqNxPhfMVFEJiykr15/0XKM=", - version = "v1.4.1", + sum = "h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE=", + version = "v1.4.13", ) go_repository( name = "com_github_yusufpapurcu_wmi", @@ -3604,8 +3619,8 @@ def go_deps(): name = "com_gitlab_bosi_decorder", build_file_proto_mode = "disable", importpath = "gitlab.com/bosi/decorder", - sum = "h1:ehqZe8hI4w7O4b1vgsDZw1YU1PE7iJXrQWFMsocbQ1w=", - version = "v0.2.1", + sum = "h1:LRfb3lP6mZWjUzpMOCLTVjcnl/SqZWBWmKNqQvMocQs=", + version = "v0.2.2", ) go_repository( @@ -3755,8 +3770,8 @@ def go_deps(): name = "in_gopkg_ini_v1", build_file_proto_mode = "disable_global", importpath = "gopkg.in/ini.v1", - sum = "h1:SsAcf+mM7mRZo2nJNGt8mZCjG8ZRaNGMURJw7BsIST4=", - version = "v1.66.4", + sum = "h1:LATuAqN/shcYAOkv3wl2L4rkaKqkcgTBQjOyYDvcPKI=", + version = "v1.66.6", ) go_repository( name = "in_gopkg_jcmturner_aescts_v1", @@ -3832,8 +3847,8 @@ def go_deps(): name = "in_gopkg_yaml_v3", build_file_proto_mode = "disable_global", importpath = "gopkg.in/yaml.v3", - sum = "h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=", - version = "v3.0.0-20210107192922-496545a6307b", + sum = "h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=", + version = "v3.0.1", ) go_repository( name = "io_etcd_go_bbolt", @@ -4137,15 +4152,15 @@ def go_deps(): name = "org_golang_x_exp", build_file_proto_mode = "disable_global", importpath = "golang.org/x/exp", - sum = "h1:TfdoLivD44QwvssI9Sv1xwa5DcL5XQr4au4sZ2F2NV4=", - version = "v0.0.0-20220428152302-39d4317da171", + sum = "h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=", + version = "v0.0.0-20220722155223-a9213eeb770e", ) go_repository( name = "org_golang_x_exp_typeparams", build_file_proto_mode = "disable", importpath = "golang.org/x/exp/typeparams", - sum = "h1:qyrTQ++p1afMkO4DPEeLGq/3oTsdlvdH4vqZUBWzUKM=", - version = "v0.0.0-20220218215828-6cf2b201936e", + sum = "h1:+W8Qf4iJtMGKkyAygcKohjxTk4JPsL9DpzApJ22m5Ic=", + version = "v0.0.0-20220613132600-b0d781184e0d", ) go_repository( @@ -4180,8 +4195,8 @@ def go_deps(): name = "org_golang_x_net", build_file_proto_mode = "disable_global", importpath = "golang.org/x/net", - sum = "h1:bRb386wvrE+oBNdF1d/Xh9mQrfQ4ecYhW5qJ5GvTGT4=", - version = "v0.0.0-20220412020605-290c469a71a5", + sum = "h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0=", + version = "v0.0.0-20220722155237-a158d28d115b", ) go_repository( name = "org_golang_x_oauth2", @@ -4194,15 +4209,15 @@ def go_deps(): name = "org_golang_x_sync", build_file_proto_mode = "disable_global", importpath = "golang.org/x/sync", - sum = "h1:w8s32wxx3sY+OjLlv9qltkLU5yvJzxjjgiHWLjdIcw4=", - version = "v0.0.0-20220513210516-0976fa681c29", + sum = "h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw=", + version = "v0.0.0-20220722155255-886fb9371eb4", ) go_repository( name = "org_golang_x_sys", build_file_proto_mode = "disable_global", importpath = "golang.org/x/sys", - sum = "h1:wEZYwx+kK+KlZ0hpvP2Ls1Xr4+RWnlzGFwPP0aiDjIU=", - version = "v0.0.0-20220622161953-175b2fd9d664", + sum = "h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg=", + version = "v0.0.0-20220728004956-3c1f35247d10", ) go_repository( name = "org_golang_x_term", @@ -4229,8 +4244,8 @@ def go_deps(): name = "org_golang_x_tools", build_file_proto_mode = "disable_global", importpath = "golang.org/x/tools", - sum = "h1:loJ25fNOEhSXfHrpoGj91eCUThwdNX6u24rO1xnNteY=", - version = "v0.1.11", + sum = "h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=", + version = "v0.1.12", ) go_repository( name = "org_golang_x_xerrors", diff --git a/Makefile b/Makefile index b103eaf1f0602..43d734d349454 100644 --- a/Makefile +++ b/Makefile @@ -415,7 +415,7 @@ bazel_coverage_test: failpoint-enable bazel_ci_prepare bazel_build: bazel_ci_prepare mkdir -p bin - bazel --output_user_root=/home/jenkins/.tidb/tmp build -k --config=ci //tidb-server/... //br/cmd/... //cmd/... //util/... //dumpling/cmd/... //tidb-binlog/... --//build:with_nogo_flag=true + bazel --output_user_root=/home/jenkins/.tidb/tmp build -k --config=ci //... --//build:with_nogo_flag=true cp bazel-out/k8-fastbuild/bin/tidb-server/tidb-server_/tidb-server ./bin cp bazel-out/k8-fastbuild/bin/cmd/importer/importer_/importer ./bin cp bazel-out/k8-fastbuild/bin/tidb-server/tidb-server-check_/tidb-server-check ./bin diff --git a/bindinfo/handle.go b/bindinfo/handle.go index c6c5fe8677359..13e7a1abf50e8 100644 --- a/bindinfo/handle.go +++ b/bindinfo/handle.go @@ -1058,7 +1058,6 @@ func getEvolveParameters(sctx sessionctx.Context) (time.Duration, time.Time, tim startTime, err := time.ParseInLocation(variable.FullDayTimeFormat, startTimeStr, time.UTC) if err != nil { return 0, time.Time{}, time.Time{}, err - } endTime, err := time.ParseInLocation(variable.FullDayTimeFormat, endTimeStr, time.UTC) if err != nil { diff --git a/br/pkg/backup/client.go b/br/pkg/backup/client.go index a5240a3f026e0..c8c74b89c621d 100644 --- a/br/pkg/backup/client.go +++ b/br/pkg/backup/client.go @@ -581,9 +581,8 @@ func (bc *Client) BackupRanges( // The error due to context cancel, stack trace is meaningless, the stack shall be suspended (also clear) if errors.Cause(err) == context.Canceled { return errors.SuspendStack(err) - } else { - return errors.Trace(err) } + return errors.Trace(err) } return nil }) @@ -1072,10 +1071,9 @@ func SendBackup( } logutil.CL(ctx).Error("fail to backup", zap.Uint64("StoreID", storeID), zap.Int("retry", retry)) return berrors.ErrFailedToConnect.Wrap(errBackup).GenWithStack("failed to create backup stream to store %d", storeID) - } else { - // finish backup - break } + // finish backup + break } return nil } diff --git a/br/pkg/backup/schema.go b/br/pkg/backup/schema.go index 385adbad6f55c..d3269980fdbb2 100644 --- a/br/pkg/backup/schema.go +++ b/br/pkg/backup/schema.go @@ -202,7 +202,6 @@ func (s *schemaInfo) encodeToSchema() (*backuppb.Schema, error) { if err != nil { return nil, errors.Trace(err) } - } var statsBytes []byte if s.stats != nil { diff --git a/br/pkg/glue/console_glue_test.go b/br/pkg/glue/console_glue_test.go index d902498729956..61a07ac6fc7ed 100644 --- a/br/pkg/glue/console_glue_test.go +++ b/br/pkg/glue/console_glue_test.go @@ -77,7 +77,6 @@ func testPrettyString(t *testing.T) { } } } - } func testPrettyStringSlicing(t *testing.T) { diff --git a/br/pkg/gluetidb/glue.go b/br/pkg/gluetidb/glue.go index dfe5ae62639bd..459437e33b091 100644 --- a/br/pkg/gluetidb/glue.go +++ b/br/pkg/gluetidb/glue.go @@ -193,7 +193,6 @@ func (gs *tidbSession) CreateDatabase(ctx context.Context, schema *model.DBInfo) schema.Charset = mysql.DefaultCharset } return d.CreateSchemaWithInfo(gs.se, schema, ddl.OnExistIgnore) - } // CreatePlacementPolicy implements glue.Session. @@ -341,7 +340,6 @@ func (s *mockSession) ExecuteInternal(ctx context.Context, sql string, args ...i func (s *mockSession) CreateDatabase(ctx context.Context, schema *model.DBInfo) error { log.Fatal("unimplemented CreateDatabase for mock session") return nil - } // CreatePlacementPolicy implements glue.Session. diff --git a/br/pkg/lightning/backend/kv/kv2sql.go b/br/pkg/lightning/backend/kv/kv2sql.go index 1a436bbe822ea..7a06de830416d 100644 --- a/br/pkg/lightning/backend/kv/kv2sql.go +++ b/br/pkg/lightning/backend/kv/kv2sql.go @@ -76,7 +76,7 @@ func (t *TableKVDecoder) IterRawIndexKeys(h kv.Handle, rawRow []byte, fn func([] row[i] = types.GetMinValue(&col.FieldType) } } - if err, _ := evaluateGeneratedColumns(t.se, row, t.tbl.Cols(), t.genCols); err != nil { + if _, err := evaluateGeneratedColumns(t.se, row, t.tbl.Cols(), t.genCols); err != nil { return err } } diff --git a/br/pkg/lightning/backend/kv/sql2kv.go b/br/pkg/lightning/backend/kv/sql2kv.go index 5c310b6ed14f0..ca7a7bba767b5 100644 --- a/br/pkg/lightning/backend/kv/sql2kv.go +++ b/br/pkg/lightning/backend/kv/sql2kv.go @@ -333,17 +333,17 @@ func KvPairsFromRow(row Row) []common.KvPair { return row.(*KvPairs).pairs } -func evaluateGeneratedColumns(se *session, record []types.Datum, cols []*table.Column, genCols []genCol) (err error, errCol *model.ColumnInfo) { +func evaluateGeneratedColumns(se *session, record []types.Datum, cols []*table.Column, genCols []genCol) (errCol *model.ColumnInfo, err error) { mutRow := chunk.MutRowFromDatums(record) for _, gc := range genCols { col := cols[gc.index].ToInfo() evaluated, err := gc.expr.Eval(mutRow.ToRow()) if err != nil { - return err, col + return col, err } value, err := table.CastValue(se, evaluated, col, false, false) if err != nil { - return err, col + return col, err } mutRow.SetDatum(gc.index, value) record[gc.index] = value @@ -426,7 +426,7 @@ func (kvcodec *tableKVEncoder) Encode( } if len(kvcodec.genCols) > 0 { - if err, errCol := evaluateGeneratedColumns(kvcodec.se, record, cols, kvcodec.genCols); err != nil { + if errCol, err := evaluateGeneratedColumns(kvcodec.se, record, cols, kvcodec.genCols); err != nil { return nil, logEvalGenExprFailed(logger, row, errCol, err) } } diff --git a/br/pkg/lightning/backend/kv/sql2kv_test.go b/br/pkg/lightning/backend/kv/sql2kv_test.go index ccd49b7e31806..52f9e7c67e9f1 100644 --- a/br/pkg/lightning/backend/kv/sql2kv_test.go +++ b/br/pkg/lightning/backend/kv/sql2kv_test.go @@ -431,7 +431,6 @@ func TestEncodeMissingAutoValue(t *testing.T) { require.NoError(t, err) require.Equalf(t, pairsExpect, pairs, "test table info: %+v", testTblInfo) require.Equalf(t, rowID, tbl.Allocators(lkv.GetEncoderSe(encoder)).Get(testTblInfo.AllocType).Base(), "test table info: %+v", testTblInfo) - } } diff --git a/br/pkg/lightning/backend/local/engine.go b/br/pkg/lightning/backend/local/engine.go index 90254f3332fd0..ccb0c636295c9 100644 --- a/br/pkg/lightning/backend/local/engine.go +++ b/br/pkg/lightning/backend/local/engine.go @@ -1416,7 +1416,7 @@ func (i dbSSTIngester) mergeSSTs(metas []*sstMeta, dir string) (*sstMeta, error) return nil, err } if key == nil { - return nil, errors.New("all ssts are empty!") + return nil, errors.New("all ssts are empty") } newMeta.minKey = append(newMeta.minKey[:0], key...) lastKey := make([]byte, 0) diff --git a/br/pkg/lightning/backend/local/local_test.go b/br/pkg/lightning/backend/local/local_test.go index 8546e7f892d99..041be6d86b49e 100644 --- a/br/pkg/lightning/backend/local/local_test.go +++ b/br/pkg/lightning/backend/local/local_test.go @@ -835,7 +835,6 @@ func testMergeSSTs(t *testing.T, kvs [][]common.KvPair, meta *sstMeta) { func TestMergeSSTs(t *testing.T) { kvs := make([][]common.KvPair, 0, 5) for i := 0; i < 5; i++ { - var pairs []common.KvPair for j := 0; j < 10; j++ { var kv common.KvPair diff --git a/br/pkg/lightning/backend/local/localhelper.go b/br/pkg/lightning/backend/local/localhelper.go index 8e0cd12723612..9768edd5cdc72 100644 --- a/br/pkg/lightning/backend/local/localhelper.go +++ b/br/pkg/lightning/backend/local/localhelper.go @@ -261,21 +261,21 @@ func (local *local) SplitAndScatterRegionByRanges( err = multierr.Append(err, err1) syncLock.Unlock() break - } else { - log.FromContext(ctx).Info("batch split region", zap.Uint64("region_id", splitRegion.Region.Id), - zap.Int("keys", endIdx-startIdx), zap.Binary("firstKey", keys[startIdx]), - zap.Binary("end", keys[endIdx-1])) - slices.SortFunc(newRegions, func(i, j *split.RegionInfo) bool { - return bytes.Compare(i.Region.StartKey, j.Region.StartKey) < 0 - }) - syncLock.Lock() - scatterRegions = append(scatterRegions, newRegions...) - syncLock.Unlock() - // the region with the max start key is the region need to be further split. - if bytes.Compare(splitRegion.Region.StartKey, newRegions[len(newRegions)-1].Region.StartKey) < 0 { - splitRegion = newRegions[len(newRegions)-1] - } } + log.FromContext(ctx).Info("batch split region", zap.Uint64("region_id", splitRegion.Region.Id), + zap.Int("keys", endIdx-startIdx), zap.Binary("firstKey", keys[startIdx]), + zap.Binary("end", keys[endIdx-1])) + slices.SortFunc(newRegions, func(i, j *split.RegionInfo) bool { + return bytes.Compare(i.Region.StartKey, j.Region.StartKey) < 0 + }) + syncLock.Lock() + scatterRegions = append(scatterRegions, newRegions...) + syncLock.Unlock() + // the region with the max start key is the region need to be further split. + if bytes.Compare(splitRegion.Region.StartKey, newRegions[len(newRegions)-1].Region.StartKey) < 0 { + splitRegion = newRegions[len(newRegions)-1] + } + batchKeySize = 0 startIdx = endIdx } @@ -319,13 +319,12 @@ func (local *local) SplitAndScatterRegionByRanges( if len(retryKeys) == 0 { break - } else { - slices.SortFunc(retryKeys, func(i, j []byte) bool { - return bytes.Compare(i, j) < 0 - }) - minKey = codec.EncodeBytes([]byte{}, retryKeys[0]) - maxKey = codec.EncodeBytes([]byte{}, nextKey(retryKeys[len(retryKeys)-1])) } + slices.SortFunc(retryKeys, func(i, j []byte) bool { + return bytes.Compare(i, j) < 0 + }) + minKey = codec.EncodeBytes([]byte{}, retryKeys[0]) + maxKey = codec.EncodeBytes([]byte{}, nextKey(retryKeys[len(retryKeys)-1])) } if err != nil { return errors.Trace(err) diff --git a/br/pkg/lightning/backend/local/localhelper_test.go b/br/pkg/lightning/backend/local/localhelper_test.go index fcdc49078a2b4..f3584870b7d96 100644 --- a/br/pkg/lightning/backend/local/localhelper_test.go +++ b/br/pkg/lightning/backend/local/localhelper_test.go @@ -811,7 +811,6 @@ func TestStoreWriteLimiter(t *testing.T) { // In theory, gotTokens should be less than or equal to maxTokens. // But we allow a little of error to avoid the test being flaky. require.LessOrEqual(t, gotTokens, maxTokens+1) - }(uint64(i)) } wg.Wait() diff --git a/br/pkg/lightning/backend/tidb/tidb.go b/br/pkg/lightning/backend/tidb/tidb.go index 826a14bfeb4a9..8706fa2ab05f0 100644 --- a/br/pkg/lightning/backend/tidb/tidb.go +++ b/br/pkg/lightning/backend/tidb/tidb.go @@ -227,7 +227,6 @@ func (b *targetInfoGetter) FetchRemoteTableModels(ctx context.Context, schemaNam } } } - } return nil }) diff --git a/br/pkg/lightning/checkpoints/checkpoints_test.go b/br/pkg/lightning/checkpoints/checkpoints_test.go index 7676809312d56..61f8d6971718a 100644 --- a/br/pkg/lightning/checkpoints/checkpoints_test.go +++ b/br/pkg/lightning/checkpoints/checkpoints_test.go @@ -303,7 +303,6 @@ func TestCheckpointMarshallUnmarshall(t *testing.T) { } func TestSeparateCompletePath(t *testing.T) { - testCases := []struct { complete string expectFileName string diff --git a/br/pkg/lightning/common/errors.go b/br/pkg/lightning/common/errors.go index 4f1c598a84535..78cc7a4fba844 100644 --- a/br/pkg/lightning/common/errors.go +++ b/br/pkg/lightning/common/errors.go @@ -210,7 +210,6 @@ func NormalizeOrWrapErr(rfcErr *errors.Error, err error, args ...interface{}) er normalizedErr := NormalizeError(err) if berrors.Is(normalizedErr, ErrUnknown) { return rfcErr.Wrap(err).GenWithStackByArgs(args...) - } else { - return normalizedErr } + return normalizedErr } diff --git a/br/pkg/lightning/mydump/parquet_parser.go b/br/pkg/lightning/mydump/parquet_parser.go index 45a0277b360d0..428fc879361af 100644 --- a/br/pkg/lightning/mydump/parquet_parser.go +++ b/br/pkg/lightning/mydump/parquet_parser.go @@ -388,9 +388,8 @@ func getDatumLen(v reflect.Value) int { if v.Kind() == reflect.Ptr { if v.IsNil() { return 0 - } else { - return getDatumLen(v.Elem()) } + return getDatumLen(v.Elem()) } if v.Kind() == reflect.String { return len(v.String()) diff --git a/br/pkg/lightning/mydump/region.go b/br/pkg/lightning/mydump/region.go index b4f2537fb2507..b58cbed215285 100644 --- a/br/pkg/lightning/mydump/region.go +++ b/br/pkg/lightning/mydump/region.go @@ -161,19 +161,19 @@ func MakeTableRegions( for i := 0; i < concurrency; i++ { wg.Add(1) go func() { + defer wg.Done() for info := range fileChan { regions, sizes, err := makeSourceFileRegion(execCtx, meta, info, columns, cfg, ioWorkers, store) select { case resultChan <- fileRegionRes{info: info, regions: regions, sizes: sizes, err: err}: case <-ctx.Done(): - break + return } if err != nil { log.FromContext(ctx).Error("make source file region error", zap.Error(err), zap.String("file_path", info.FileMeta.Path)) break } } - wg.Done() }() } diff --git a/br/pkg/lightning/restore/checksum_test.go b/br/pkg/lightning/restore/checksum_test.go index 32a6b820dbbf8..20acc23fe6be0 100644 --- a/br/pkg/lightning/restore/checksum_test.go +++ b/br/pkg/lightning/restore/checksum_test.go @@ -185,9 +185,8 @@ func TestDoChecksumWithTikv(t *testing.T) { if i >= maxErrorRetryCount { require.Equal(t, mockChecksumKVClientErr, errors.Cause(err)) continue - } else { - require.NoError(t, err) } + require.NoError(t, err) // after checksum, safepint should be small than start ts ts := pdClient.currentSafePoint() diff --git a/br/pkg/lightning/restore/chunk_restore_test.go b/br/pkg/lightning/restore/chunk_restore_test.go index 2a9a42434c77b..7a0d0826c6a07 100644 --- a/br/pkg/lightning/restore/chunk_restore_test.go +++ b/br/pkg/lightning/restore/chunk_restore_test.go @@ -353,7 +353,7 @@ func (s *chunkRestoreSuite) TestEncodeLoopDeliverLimit() { if !ok { break } - count += 1 + count++ if count <= 3 { require.Len(s.T(), kvs, 1) } diff --git a/br/pkg/lightning/restore/get_pre_info.go b/br/pkg/lightning/restore/get_pre_info.go index 61e9ea6414d6a..7d36539ec4b6d 100644 --- a/br/pkg/lightning/restore/get_pre_info.go +++ b/br/pkg/lightning/restore/get_pre_info.go @@ -520,14 +520,12 @@ func (p *PreRestoreInfoGetterImpl) ReadFirstNRowsByFileMeta(ctx context.Context, if err != nil { if errors.Cause(err) != io.EOF { return nil, nil, errors.Trace(err) - } else { - break } + break } rows = append(rows, parser.LastRow().Row) } return parser.Columns(), rows, nil - } // EstimateSourceDataSize estimates the datasize to generate during the import as well as some other sub-informaiton. @@ -598,7 +596,6 @@ func (p *PreRestoreInfoGetterImpl) EstimateSourceDataSize(ctx context.Context) ( HasUnsortedBigTables: (unSortedBigTableCount > 0), } return result, nil - } // sampleDataFromTable samples the source data file to get the extra data ratio for the index @@ -713,7 +710,7 @@ outloop: return 0.0, false, errors.Trace(err) } lastRow := parser.LastRow() - rowCount += 1 + rowCount++ var dataChecksum, indexChecksum verification.KVChecksum kvs, encodeErr := kvEncoder.Encode(logTask.Logger, lastRow.Row, lastRow.RowID, columnPermutation, sampleFile.Path, offset) @@ -725,9 +722,8 @@ outloop: } if rowCount < maxSampleRowCount { continue - } else { - break } + break } if isRowOrdered { kvs.ClassifyAndAppend(&dataKVs, &dataChecksum, &indexKVs, &indexChecksum) @@ -794,8 +790,8 @@ func (p *PreRestoreInfoGetterImpl) FetchRemoteTableModels(ctx context.Context, s // CheckVersionRequirements performs the check whether the target satisfies the version requirements. // It implements the PreRestoreInfoGetter interface. // Mydump database metas are retrieved from the context. -func (g *PreRestoreInfoGetterImpl) CheckVersionRequirements(ctx context.Context) error { - return g.targetInfoGetter.CheckVersionRequirements(ctx) +func (p *PreRestoreInfoGetterImpl) CheckVersionRequirements(ctx context.Context) error { + return p.targetInfoGetter.CheckVersionRequirements(ctx) } // GetTargetSysVariablesForImport gets some important systam variables for importing on the target. diff --git a/br/pkg/lightning/restore/meta_manager.go b/br/pkg/lightning/restore/meta_manager.go index a066f309c766f..659a33c579ef0 100644 --- a/br/pkg/lightning/restore/meta_manager.go +++ b/br/pkg/lightning/restore/meta_manager.go @@ -325,7 +325,6 @@ func (m *dbTableMetaMgr) AllocTableRowIDs(ctx context.Context, rawRowIDMax int64 ck := verify.MakeKVChecksum(remoteCk.TotalBytes, remoteCk.TotalKVs, remoteCk.Checksum) checksum = &ck } - } if checksum != nil { diff --git a/br/pkg/lightning/restore/meta_manager_test.go b/br/pkg/lightning/restore/meta_manager_test.go index 33780114ab01d..0133986fc794b 100644 --- a/br/pkg/lightning/restore/meta_manager_test.go +++ b/br/pkg/lightning/restore/meta_manager_test.go @@ -66,10 +66,7 @@ func newTableRestore(t *testing.T, kvStore kv.Storage) *TableRestore { if err := m.CreateDatabase(&model.DBInfo{ID: dbInfo.ID}); err != nil { return err } - if err := m.CreateTableOrView(dbInfo.ID, ti.Core); err != nil { - return err - } - return nil + return m.CreateTableOrView(dbInfo.ID, ti.Core) }) require.NoError(t, err) @@ -426,7 +423,6 @@ func TestCheckTasksExclusively(t *testing.T) { return newTasks, nil }) require.NoError(t, err) - } type testChecksumMgr struct { diff --git a/br/pkg/lightning/restore/precheck_impl.go b/br/pkg/lightning/restore/precheck_impl.go index d5a2c7fe3ff71..910ecea780681 100644 --- a/br/pkg/lightning/restore/precheck_impl.go +++ b/br/pkg/lightning/restore/precheck_impl.go @@ -589,9 +589,8 @@ func (ci *checkpointCheckItem) checkpointIsValid(ctx context.Context, tableInfo // there is no checkpoint log.FromContext(ctx).Debug("no checkpoint detected", zap.String("table", uniqueName)) return nil, nil - } else { - return nil, errors.Trace(err) } + return nil, errors.Trace(err) } // if checkpoint enable and not missing, we skip the check table empty progress. if tableCheckPoint.Status <= checkpoints.CheckpointStatusMissing { @@ -1142,7 +1141,6 @@ loop: case <-gCtx.Done(): break loop } - } } close(ch) diff --git a/br/pkg/lightning/restore/precheck_impl_test.go b/br/pkg/lightning/restore/precheck_impl_test.go index 2fadb9326555a..4a0aedefd325d 100644 --- a/br/pkg/lightning/restore/precheck_impl_test.go +++ b/br/pkg/lightning/restore/precheck_impl_test.go @@ -51,7 +51,6 @@ func (s *precheckImplSuite) SetupTest() { s.cfg = config.NewConfig() s.cfg.TikvImporter.Backend = config.BackendLocal s.Require().NoError(s.setMockImportData(nil)) - } func (s *precheckImplSuite) setMockImportData(mockDataMap map[string]*mock.MockDBSourceData) error { diff --git a/br/pkg/lightning/restore/table_restore.go b/br/pkg/lightning/restore/table_restore.go index b32c5e82b7345..7972c388d9ea8 100644 --- a/br/pkg/lightning/restore/table_restore.go +++ b/br/pkg/lightning/restore/table_restore.go @@ -766,9 +766,8 @@ func (tr *TableRestore) postProcess( if err != nil { tr.logger.Error("collect local duplicate keys failed", log.ShortError(err)) return false, err - } else { - hasDupe = hasLocalDupe } + hasDupe = hasLocalDupe } needChecksum, needRemoteDupe, baseTotalChecksum, err := metaMgr.CheckAndUpdateLocalChecksum(ctx, &localChecksum, hasDupe) @@ -785,9 +784,9 @@ func (tr *TableRestore) postProcess( if e != nil { tr.logger.Error("collect remote duplicate keys failed", log.ShortError(e)) return false, e - } else { - hasDupe = hasDupe || hasRemoteDupe } + hasDupe = hasDupe || hasRemoteDupe + if err = rc.backend.ResolveDuplicateRows(ctx, tr.encTable, tr.tableName, rc.cfg.TikvImporter.DuplicateResolution); err != nil { tr.logger.Error("resolve remote duplicate keys failed", log.ShortError(err)) return false, err diff --git a/br/pkg/restore/client.go b/br/pkg/restore/client.go index 1c2a01909a9c1..b05ec3fcb4b23 100644 --- a/br/pkg/restore/client.go +++ b/br/pkg/restore/client.go @@ -355,7 +355,6 @@ func (rc *Client) InitBackupMeta( backupMeta *backuppb.BackupMeta, backend *backuppb.StorageBackend, reader *metautil.MetaReader) error { - if !backupMeta.IsRawKv { databases, err := utils.LoadBackupTables(c, reader) if err != nil { @@ -732,22 +731,20 @@ func (rc *Client) GoCreateTables( var err error if rc.batchDdlSize > minBatchDdlSize && len(rc.dbPool) > 0 { - err = rc.createTablesInWorkerPool(ctx, dom, tables, newTS, outCh) if err == nil { defer log.Debug("all tables are created") close(outCh) return outCh - // fall back to old create table (sequential create table) } else if utils.FallBack2CreateTable(err) { + // fall back to old create table (sequential create table) log.Info("fall back to the sequential create table") } else { errCh <- err close(outCh) return outCh } - } createOneTable := func(c context.Context, db *DB, t *metautil.Table) error { @@ -755,7 +752,6 @@ func (rc *Client) GoCreateTables( case <-c.Done(): return c.Err() default: - } rt, err := rc.createTable(c, db, dom, t, newTS) if err != nil { @@ -1776,9 +1772,8 @@ func (rc *Client) ReadStreamDataFiles( slices.SortFunc(mFiles, func(i, j *backuppb.DataFileInfo) bool { if i.ResolvedTs > 0 && j.ResolvedTs > 0 { return i.ResolvedTs < j.ResolvedTs - } else { - return i.MaxTs < j.MaxTs } + return i.MaxTs < j.MaxTs }) return dFiles, mFiles, nil } @@ -2123,7 +2118,7 @@ func (rc *Client) RestoreMetaKVFile( return 0, 0, errors.Trace(err) } - kvCount += 1 + kvCount++ size += uint64(len(newEntry.Key) + len(newEntry.Value)) } @@ -2394,5 +2389,4 @@ func TidyOldSchemas(sr *stream.SchemasReplace) *backup.Schemas { } } return schemas - } diff --git a/br/pkg/restore/client_test.go b/br/pkg/restore/client_test.go index 64da7f2a9e579..4686871265a0a 100644 --- a/br/pkg/restore/client_test.go +++ b/br/pkg/restore/client_test.go @@ -439,7 +439,7 @@ func (fakeImportCli FakeImporterClient) SetDownloadSpeedLimit( req *import_sstpb.SetDownloadSpeedLimitRequest, ) (*import_sstpb.SetDownloadSpeedLimitResponse, error) { if storeID == SET_SPEED_LIMIT_ERROR { - return nil, fmt.Errorf("storeID:%v ERROR.", storeID) + return nil, fmt.Errorf("storeID:%v ERROR", storeID) } time.Sleep(WORKING_TIME * time.Millisecond) // simulate doing 100 ms work diff --git a/br/pkg/restore/db.go b/br/pkg/restore/db.go index 1e45725f920fc..664f081e56db0 100644 --- a/br/pkg/restore/db.go +++ b/br/pkg/restore/db.go @@ -230,7 +230,6 @@ func (db *DB) restoreSequence(ctx context.Context, table *metautil.Table) error } func (db *DB) CreateTablePostRestore(ctx context.Context, table *metautil.Table, toBeCorrectedTables map[UniqueTableName]bool) error { - var restoreMetaSQL string var err error switch { diff --git a/br/pkg/restore/db_test.go b/br/pkg/restore/db_test.go index b5c52895c0ac1..315085f42f4c6 100644 --- a/br/pkg/restore/db_test.go +++ b/br/pkg/restore/db_test.go @@ -127,7 +127,6 @@ func TestRestoreAutoIncID(t *testing.T) { autoIncID, err = strconv.ParseUint(tk.MustQuery("admin show `\"t\"` next_row_id").Rows()[0][3].(string), 10, 64) require.NoErrorf(t, err, "Error query auto inc id: %s", err) require.Equal(t, uint64(globalAutoID+300), autoIncID) - } func TestCreateTablesInDb(t *testing.T) { @@ -166,7 +165,6 @@ func TestCreateTablesInDb(t *testing.T) { err = db.CreateTables(context.Background(), tables, ddlJobMap, false, nil) require.NoError(t, err) - } func TestFilterDDLJobs(t *testing.T) { diff --git a/br/pkg/restore/split.go b/br/pkg/restore/split.go index 147625dbb241c..e03d3187426cd 100644 --- a/br/pkg/restore/split.go +++ b/br/pkg/restore/split.go @@ -319,7 +319,6 @@ func (rs *RegionSplitter) ScatterRegionsWithBackoffer(ctx context.Context, newRe }), ) } - } // isUnsupportedError checks whether we should fallback to ScatterRegion API when meeting the error. @@ -350,6 +349,7 @@ func (rs *RegionSplitter) ScatterRegions(ctx context.Context, newRegions []*spli rs.waitForSplit(ctx, region.Region.Id) } + // the retry is for the temporary network errors during sending request. err := utils.WithRetry(ctx, func() error { err := rs.client.ScatterRegions(ctx, newRegions) if isUnsupportedError(err) { @@ -364,7 +364,6 @@ func (rs *RegionSplitter) ScatterRegions(ctx context.Context, newRegions []*spli return nil } return err - // the retry is for the temporary network errors during sending request. }, &split.ExponentialBackoffer{Attempts: 3, BaseBackoff: 500 * time.Millisecond}) if err != nil { diff --git a/br/pkg/restore/split/client.go b/br/pkg/restore/split/client.go index 6d9dde426f9a3..43d8502f84e44 100644 --- a/br/pkg/restore/split/client.go +++ b/br/pkg/restore/split/client.go @@ -300,7 +300,7 @@ func (c *pdClient) sendSplitRegionRequest( ) (*kvrpcpb.SplitRegionResponse, error) { var splitErrors error for i := 0; i < splitRegionMaxRetryTime; i++ { - retry, result, err := sendSplitRegionRequest(c, ctx, regionInfo, keys, &splitErrors, i) + retry, result, err := sendSplitRegionRequest(ctx, c, regionInfo, keys, &splitErrors, i) if retry { continue } @@ -315,7 +315,7 @@ func (c *pdClient) sendSplitRegionRequest( return nil, errors.Trace(splitErrors) } -func sendSplitRegionRequest(c *pdClient, ctx context.Context, regionInfo *RegionInfo, keys [][]byte, splitErrors *error, retry int) (bool, *kvrpcpb.SplitRegionResponse, error) { +func sendSplitRegionRequest(ctx context.Context, c *pdClient, regionInfo *RegionInfo, keys [][]byte, splitErrors *error, retry int) (bool, *kvrpcpb.SplitRegionResponse, error) { var peer *metapb.Peer // scanRegions may return empty Leader in https://github.com/tikv/pd/blob/v4.0.8/server/grpc_service.go#L524 // so wee also need check Leader.Id != 0 diff --git a/br/pkg/restore/split_test.go b/br/pkg/restore/split_test.go index 8e74bd30782cd..3cc635021d327 100644 --- a/br/pkg/restore/split_test.go +++ b/br/pkg/restore/split_test.go @@ -87,7 +87,6 @@ func (c *TestClient) ScatterRegions(ctx context.Context, regionInfo []*split.Reg delete(regions, id) } err = multierr.Append(err, splitErr) - } } return nil @@ -315,7 +314,6 @@ func TestScatterFinishInTime(t *testing.T) { regionSplitter.ScatterRegionsWithBackoffer(ctx, regionInfos, assertRetryLessThan(t, 40)) - } // region: [, aay), [aay, bba), [bba, bbh), [bbh, cca), [cca, ) diff --git a/br/pkg/restore/stream_metas.go b/br/pkg/restore/stream_metas.go index ed31965682c00..b4c2c85e76d20 100644 --- a/br/pkg/restore/stream_metas.go +++ b/br/pkg/restore/stream_metas.go @@ -196,10 +196,7 @@ func swapAndOverrideFile(ctx context.Context, s storage.ExternalStorage, path st if err := s.WriteFile(ctx, path, data); err != nil { return err } - if err := s.DeleteFile(ctx, backup); err != nil { - return err - } - return nil + return s.DeleteFile(ctx, backup) } const ( diff --git a/br/pkg/storage/azblob_test.go b/br/pkg/storage/azblob_test.go index 03b0618b04320..c099037ea51b2 100644 --- a/br/pkg/storage/azblob_test.go +++ b/br/pkg/storage/azblob_test.go @@ -297,5 +297,4 @@ func TestNewAzblobStorage(t *testing.T) { require.Equal(t, "user", b.GetAccountName()) require.Equal(t, "http://127.0.0.1:1000", b.serviceURL) } - } diff --git a/br/pkg/storage/gcs_test.go b/br/pkg/storage/gcs_test.go index 7a324ee6df7f5..5801adccf04b7 100644 --- a/br/pkg/storage/gcs_test.go +++ b/br/pkg/storage/gcs_test.go @@ -158,7 +158,7 @@ func TestGCS(t *testing.T) { // test 1003 files var totalSize int64 = 0 - for i := 0; i < 1000; i += 1 { + for i := 0; i < 1000; i++ { err = stg.WriteFile(ctx, fmt.Sprintf("f%d", i), []byte("data")) require.NoError(t, err) } @@ -176,7 +176,7 @@ func TestGCS(t *testing.T) { require.True(t, ok) _, ok = filesSet["key2"] require.True(t, ok) - for i := 0; i < 1000; i += 1 { + for i := 0; i < 1000; i++ { _, ok = filesSet[fmt.Sprintf("f%d", i)] require.True(t, ok) } diff --git a/br/pkg/stream/rewrite_meta_rawkv_test.go b/br/pkg/stream/rewrite_meta_rawkv_test.go index e49cbd3860585..fcf8a19524c48 100644 --- a/br/pkg/stream/rewrite_meta_rawkv_test.go +++ b/br/pkg/stream/rewrite_meta_rawkv_test.go @@ -92,7 +92,6 @@ func TestRewriteValueForDB(t *testing.T) { } func TestRewriteValueForTable(t *testing.T) { - var ( dbId int64 = 40 tableID int64 = 100 diff --git a/br/pkg/stream/stream_mgr.go b/br/pkg/stream/stream_mgr.go index f0c52f533a275..5608b2cd66151 100644 --- a/br/pkg/stream/stream_mgr.go +++ b/br/pkg/stream/stream_mgr.go @@ -142,9 +142,8 @@ func BuildObserveDataRanges( ) ([]kv.KeyRange, error) { if len(filterStr) == 1 && filterStr[0] == string("*.*") { return buildObserverAllRange(), nil - } else { - return buildObserveTableRanges(storage, tableFilter, backupTS) } + return buildObserveTableRanges(storage, tableFilter, backupTS) } // BuildObserveMetaRange specifies build key ranges to observe meta KV(contains all of metas) @@ -182,9 +181,8 @@ func FastUnmarshalMetaData( if err != nil { if !strings.HasSuffix(readPath, ".meta") { return nil - } else { - return err } + return err } return fn(readPath, m) }) diff --git a/br/pkg/stream/stream_status.go b/br/pkg/stream/stream_status.go index 23ef2d2bdc6f7..3792380d99f3c 100644 --- a/br/pkg/stream/stream_status.go +++ b/br/pkg/stream/stream_status.go @@ -158,7 +158,6 @@ func (p *printByTable) addCheckpoints(task *TaskStatus, table *glue.Table, forma } } } - } func (p *printByTable) PrintTasks() { diff --git a/br/pkg/streamhelper/advancer.go b/br/pkg/streamhelper/advancer.go index a74ee9b623c26..89abd721242c8 100644 --- a/br/pkg/streamhelper/advancer.go +++ b/br/pkg/streamhelper/advancer.go @@ -478,9 +478,8 @@ func (c *CheckpointAdvancer) onConsistencyCheckTick(s *updateSmallTree) error { log.Error("consistency check failed! log backup may lose data! rolling back to full scan for saving.", logutil.ShortError(err)) c.state = &fullScan{} return err - } else { - log.Debug("consistency check passed.") } + log.Debug("consistency check passed.") s.consistencyCheckTick = config.DefaultConsistencyCheckTick return nil } diff --git a/br/pkg/streamhelper/advancer_cliext.go b/br/pkg/streamhelper/advancer_cliext.go index b9a6308327199..6ac9bfc5694c8 100644 --- a/br/pkg/streamhelper/advancer_cliext.go +++ b/br/pkg/streamhelper/advancer_cliext.go @@ -149,7 +149,7 @@ func (t AdvancerExt) getFullTasksAsEvent(ctx context.Context) ([]TaskEvent, int6 te := TaskEvent{ Type: EventAdd, Name: task.Info.Name, - Info: &task.Info, + Info: &(task.Info), } events = append(events, te) } diff --git a/br/pkg/streamhelper/basic_lib_for_test.go b/br/pkg/streamhelper/basic_lib_for_test.go index 7877077a03312..e2beb6e36cf3d 100644 --- a/br/pkg/streamhelper/basic_lib_for_test.go +++ b/br/pkg/streamhelper/basic_lib_for_test.go @@ -88,23 +88,23 @@ func overlaps(a, b kv.KeyRange) bool { return bytes.Compare(a.StartKey, b.EndKey) < 0 && bytes.Compare(b.StartKey, a.EndKey) < 0 } -func (f *region) splitAt(newID uint64, k string) *region { +func (r *region) splitAt(newID uint64, k string) *region { newRegion := ®ion{ - rng: kv.KeyRange{StartKey: []byte(k), EndKey: f.rng.EndKey}, - leader: f.leader, - epoch: f.epoch + 1, + rng: kv.KeyRange{StartKey: []byte(k), EndKey: r.rng.EndKey}, + leader: r.leader, + epoch: r.epoch + 1, id: newID, - checkpoint: f.checkpoint, - fsim: f.fsim.fork(), + checkpoint: r.checkpoint, + fsim: r.fsim.fork(), } - f.rng.EndKey = []byte(k) - f.epoch += 1 - f.fsim = f.fsim.fork() + r.rng.EndKey = []byte(k) + r.epoch += 1 + r.fsim = r.fsim.fork() return newRegion } -func (f *region) flush() { - f.fsim.flushedEpoch = f.epoch +func (r *region) flush() { + r.fsim.flushedEpoch = r.epoch } func (f *fakeStore) GetLastFlushTSOfRegion(ctx context.Context, in *logbackup.GetLastFlushTSOfRegionRequest, opts ...grpc.CallOption) (*logbackup.GetLastFlushTSOfRegionResponse, error) { @@ -357,10 +357,10 @@ func (r *region) String() string { return fmt.Sprintf("%d(%d):[%s,%s);%dL%d", r.id, r.epoch, hex.EncodeToString(r.rng.StartKey), hex.EncodeToString(r.rng.EndKey), r.checkpoint, r.leader) } -func (s *fakeStore) String() string { +func (f *fakeStore) String() string { buf := new(strings.Builder) - fmt.Fprintf(buf, "%d: ", s.id) - for _, r := range s.regions { + fmt.Fprintf(buf, "%d: ", f.id) + for _, r := range f.regions { fmt.Fprintf(buf, "%s ", r) } return buf.String() @@ -372,9 +372,9 @@ func (f *fakeCluster) flushAll() { } } -func (s *fakeStore) flush() { - for _, r := range s.regions { - if r.leader == s.id { +func (f *fakeStore) flush() { + for _, r := range f.regions { + if r.leader == f.id { r.flush() } } diff --git a/br/pkg/streamhelper/regioniter_test.go b/br/pkg/streamhelper/regioniter_test.go index 42d4445f70679..04ccc04da8a66 100644 --- a/br/pkg/streamhelper/regioniter_test.go +++ b/br/pkg/streamhelper/regioniter_test.go @@ -86,7 +86,6 @@ func makeSubrangeRegions(keys ...string) constantRegions { regions = append(regions, region) } return constantRegions(regions) - } func useRegions(keys ...string) constantRegions { diff --git a/br/pkg/streamhelper/tsheap_test.go b/br/pkg/streamhelper/tsheap_test.go index 6453ee36a60ab..461e7f76c87e7 100644 --- a/br/pkg/streamhelper/tsheap_test.go +++ b/br/pkg/streamhelper/tsheap_test.go @@ -113,7 +113,6 @@ func TestMergeRanges(t *testing.T) { }) require.Equal(t, c.expected, result, "case = %d", i) } - } func TestInsertRanges(t *testing.T) { diff --git a/br/pkg/task/restore.go b/br/pkg/task/restore.go index f890364bf67b4..4cec79e7acf62 100644 --- a/br/pkg/task/restore.go +++ b/br/pkg/task/restore.go @@ -359,10 +359,9 @@ func CheckNewCollationEnable( "you can use \"show config WHERE name='new_collations_enabled_on_first_bootstrap';\" to manually check the config. "+ "if you ensure the config 'new_collations_enabled_on_first_bootstrap' in backup cluster is as same as restore cluster, "+ "use --check-requirements=false to skip this check") - } else { - log.Warn("the config 'new_collations_enabled_on_first_bootstrap' is not in backupmeta") - return nil } + log.Warn("the config 'new_collations_enabled_on_first_bootstrap' is not in backupmeta") + return nil } se, err := g.CreateSession(storage) diff --git a/br/pkg/task/stream.go b/br/pkg/task/stream.go index 07b1c9d97b8ff..3c3d20967f58e 100644 --- a/br/pkg/task/stream.go +++ b/br/pkg/task/stream.go @@ -1531,9 +1531,8 @@ func ShiftTS(startTS uint64) uint64 { shiftPhysical := physical - streamShiftDuration.Milliseconds() if shiftPhysical < 0 { return 0 - } else { - return oracle.ComposeTS(shiftPhysical, logical) } + return oracle.ComposeTS(shiftPhysical, logical) } func buildPauseSafePointName(taskName string) string { diff --git a/br/pkg/utils/backoff_test.go b/br/pkg/utils/backoff_test.go index 78f329708211b..1ddff4b7d7ca7 100644 --- a/br/pkg/utils/backoff_test.go +++ b/br/pkg/utils/backoff_test.go @@ -131,9 +131,8 @@ func TestNewImportSSTBackofferWithSucess(t *testing.T) { defer func() { counter++ }() if counter == 15 { return nil - } else { - return berrors.ErrKVDownloadFailed } + return berrors.ErrKVDownloadFailed }, backoffer) require.Equal(t, 16, counter) require.NoError(t, err) @@ -146,10 +145,8 @@ func TestNewDownloadSSTBackofferWithCancel(t *testing.T) { defer func() { counter++ }() if counter == 3 { return context.Canceled - } else { - return berrors.ErrKVIngestFailed } - + return berrors.ErrKVIngestFailed }, backoffer) require.Equal(t, 4, counter) require.Equal(t, []error{ diff --git a/br/pkg/version/version_test.go b/br/pkg/version/version_test.go index 9527836fa500b..12a95eaaa4918 100644 --- a/br/pkg/version/version_test.go +++ b/br/pkg/version/version_test.go @@ -416,7 +416,6 @@ func TestCheckVersion(t *testing.T) { } func versionEqualCheck(source *semver.Version, target *semver.Version) (result bool) { - if source == nil || target == nil { return target == source } @@ -536,5 +535,4 @@ Check Table Before Drop: false` _, err = FetchVersion(ctx, db) require.Error(t, err) require.Regexp(t, "mock failure$", err.Error()) - } diff --git a/build/BUILD.bazel b/build/BUILD.bazel index 2da990828fcd3..b61f149d8fca8 100644 --- a/build/BUILD.bazel +++ b/build/BUILD.bazel @@ -134,6 +134,7 @@ nogo( ] + staticcheck_analyzers(STATICHECK_ANALYZERS) + select({ "//build:with_nogo": [ + "//build/linter/allrevive:allrevive", "//build/linter/errcheck:errcheck", "//build/linter/revive:revive", ], diff --git a/build/linter/allrevive/BUILD.bazel b/build/linter/allrevive/BUILD.bazel new file mode 100644 index 0000000000000..b13604af6eef3 --- /dev/null +++ b/build/linter/allrevive/BUILD.bazel @@ -0,0 +1,17 @@ +load("@io_bazel_rules_go//go:def.bzl", "go_library") + +go_library( + name = "allrevive", + srcs = ["analyzer.go"], + importpath = "github.com/pingcap/tidb/build/linter/allrevive", + visibility = ["//visibility:public"], + deps = [ + "//build/linter/util", + "@com_github_mgechev_revive//config", + "@com_github_mgechev_revive//lint", + "@com_github_mgechev_revive//rule", + "@com_github_pingcap_log//:log", + "@org_golang_x_tools//go/analysis", + "@org_uber_go_zap//:zap", + ], +) diff --git a/build/linter/allrevive/analyzer.go b/build/linter/allrevive/analyzer.go new file mode 100644 index 0000000000000..efdccf67d21a7 --- /dev/null +++ b/build/linter/allrevive/analyzer.go @@ -0,0 +1,198 @@ +// Copyright 2022 PingCAP, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package allrevive + +import ( + "encoding/json" + "fmt" + "go/token" + "os" + + "github.com/mgechev/revive/config" + "github.com/mgechev/revive/lint" + "github.com/mgechev/revive/rule" + "github.com/pingcap/log" + "github.com/pingcap/tidb/build/linter/util" + "go.uber.org/zap" + "golang.org/x/tools/go/analysis" +) + +// Analyzer is the analyzer struct of gofmt. +var Analyzer = &analysis.Analyzer{ + Name: "all_revive", + Doc: "~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint", + Run: run, +} + +func init() { + util.SkipAnalyzer(Analyzer) +} + +// jsonObject defines a JSON object of a failure +type jsonObject struct { + Severity lint.Severity + lint.Failure `json:",inline"` +} + +var defaultRules = []lint.Rule{ + //&rule.VarDeclarationsRule{}, + //&rule.PackageCommentsRule{}, + //&rule.DotImportsRule{}, + &rule.BlankImportsRule{}, + //&rule.ExportedRule{}, + //&rule.VarNamingRule{}, + &rule.IndentErrorFlowRule{}, + &rule.RangeRule{}, + &rule.ErrorfRule{}, + &rule.ErrorNamingRule{}, + &rule.ErrorStringsRule{}, + &rule.ReceiverNamingRule{}, + //&rule.IncrementDecrementRule{}, + &rule.ErrorReturnRule{}, + //&rule.UnexportedReturnRule{}, + &rule.TimeNamingRule{}, + //&rule.ContextKeysType{}, + &rule.ContextAsArgumentRule{}, +} + +var allRules = append([]lint.Rule{ + //&rule.ArgumentsLimitRule{}, + //&rule.CyclomaticRule{}, + //&rule.FileHeaderRule{}, + //&rule.EmptyBlockRule{}, + &rule.SuperfluousElseRule{}, + //&rule.ConfusingNamingRule{}, + &rule.GetReturnRule{}, + &rule.ModifiesParamRule{}, + //&rule.ConfusingResultsRule{}, + //&rule.DeepExitRule{}, + //&rule.UnusedParamRule{}, + &rule.UnreachableCodeRule{}, + //&rule.AddConstantRule{}, + //&rule.FlagParamRule{}, + //&rule.UnnecessaryStmtRule{}, + //&rule.StructTagRule{}, + //&rule.ModifiesValRecRule{}, + &rule.ConstantLogicalExprRule{}, + &rule.BoolLiteralRule{}, + //&rule.RedefinesBuiltinIDRule{}, + &rule.ImportsBlacklistRule{}, + //&rule.FunctionResultsLimitRule{}, + //&rule.MaxPublicStructsRule{}, + &rule.RangeValInClosureRule{}, + &rule.RangeValAddress{}, + &rule.WaitGroupByValueRule{}, + &rule.AtomicRule{}, + &rule.EmptyLinesRule{}, + //&rule.LineLengthLimitRule{}, + //&rule.CallToGCRule{}, + &rule.DuplicatedImportsRule{}, + //&rule.ImportShadowingRule{}, + //&rule.BareReturnRule{}, + //&rule.UnusedReceiverRule{}, + //&rule.UnhandledErrorRule{}, + //&rule.CognitiveComplexityRule{}, + &rule.StringOfIntRule{}, + &rule.StringFormatRule{}, + //&rule.EarlyReturnRule{}, + &rule.UnconditionalRecursionRule{}, + &rule.IdenticalBranchesRule{}, + &rule.DeferRule{}, + //&rule.UnexportedNamingRule{}, + //&rule.FunctionLength{}, + //&rule.NestedStructs{}, + &rule.IfReturnRule{}, + //&rule.UselessBreak{}, + &rule.TimeEqualRule{}, + //&rule.BannedCharsRule{}, + &rule.OptimizeOperandsOrderRule{}, +}, defaultRules...) + +func run(pass *analysis.Pass) (any, error) { + files := make([]string, 0, len(pass.Files)) + for _, file := range pass.Files { + files = append(files, pass.Fset.PositionFor(file.Pos(), false).Filename) + } + packages := [][]string{files} + + revive := lint.New(os.ReadFile, 1024) + conf := lint.Config{ + IgnoreGeneratedHeader: false, + Confidence: 0.8, + Severity: "error", + ErrorCode: -1, + WarningCode: -1, + Rules: map[string]lint.RuleConfig{}, + } + for _, r := range allRules { + conf.Rules[r.Name()] = lint.RuleConfig{} + } + conf.Rules["defer"] = lint.RuleConfig{ + Arguments: []interface{}{[]interface{}{"loop", "method-call", "immediate-recover", "return"}}, + } + + lintingRules, err := config.GetLintingRules(&conf, []lint.Rule{}) + if err != nil { + return nil, err + } + + failures, err := revive.Lint(packages, lintingRules, conf) + if err != nil { + return nil, err + } + + formatChan := make(chan lint.Failure) + exitChan := make(chan bool) + + formatter, err := config.GetFormatter("json") + if err != nil { + return nil, err + } + var output string + go func() { + output, err = formatter.Format(formatChan, conf) + if err != nil { + log.Error("Format error", zap.Error(err)) + } + exitChan <- true + }() + + for f := range failures { + if f.Confidence < conf.Confidence { + continue + } + + formatChan <- f + } + + close(formatChan) + <-exitChan + + var results []jsonObject + err = json.Unmarshal([]byte(output), &results) + if err != nil { + return nil, err + } + for i := range results { + res := &results[i] + text := fmt.Sprintf("%s: %s", res.RuleName, res.Failure.Failure) + fileContent, tf, err := util.ReadFile(pass.Fset, res.Position.Start.Filename) + if err != nil { + panic(err) + } + pass.Reportf(token.Pos(tf.Base()+util.FindOffset(string(fileContent), res.Position.Start.Line, res.Position.Start.Column)), text) + } + return nil, nil +} diff --git a/build/linter/gci/BUILD.bazel b/build/linter/gci/BUILD.bazel index 9318955d516bd..b1495627c85a7 100644 --- a/build/linter/gci/BUILD.bazel +++ b/build/linter/gci/BUILD.bazel @@ -6,7 +6,7 @@ go_library( importpath = "github.com/pingcap/tidb/build/linter/gci", visibility = ["//visibility:public"], deps = [ - "@com_github_daixiang0_gci//pkg/configuration", + "@com_github_daixiang0_gci//pkg/config", "@com_github_daixiang0_gci//pkg/gci", "@org_golang_x_tools//go/analysis", ], diff --git a/build/linter/gci/analysis.go b/build/linter/gci/analysis.go index 6ac0854302160..a7ad2f9e32bd4 100644 --- a/build/linter/gci/analysis.go +++ b/build/linter/gci/analysis.go @@ -18,7 +18,7 @@ import ( "fmt" "sync" - "github.com/daixiang0/gci/pkg/configuration" + "github.com/daixiang0/gci/pkg/config" "github.com/daixiang0/gci/pkg/gci" "golang.org/x/tools/go/analysis" ) @@ -36,11 +36,13 @@ func run(pass *analysis.Pass) (any, error) { pos := pass.Fset.PositionFor(f.Pos(), false) fileNames = append(fileNames, pos.Filename) } - var rawCfg gci.GciStringConfiguration - rawCfg.Cfg = configuration.FormatterConfiguration{ - NoInlineComments: false, - NoPrefixComments: false, - Debug: false, + rawCfg := config.YamlConfig{ + Cfg: config.BoolConfig{ + NoInlineComments: false, + NoPrefixComments: false, + Debug: false, + SkipGenerated: true, + }, } cfg, _ := rawCfg.Parse() var diffs []string diff --git a/build/linter/revive/analyzer.go b/build/linter/revive/analyzer.go index c1d8c02c27b66..0ebf311492e5c 100644 --- a/build/linter/revive/analyzer.go +++ b/build/linter/revive/analyzer.go @@ -139,6 +139,9 @@ func run(pass *analysis.Pass) (any, error) { for _, r := range allRules { conf.Rules[r.Name()] = lint.RuleConfig{} } + conf.Rules["defer"] = lint.RuleConfig{ + Arguments: []interface{}{[]interface{}{"loop", "method-call", "immediate-recover", "return"}}, + } lintingRules, err := config.GetLintingRules(&conf, []lint.Rule{}) if err != nil { return nil, err diff --git a/build/nogo_config.json b/build/nogo_config.json index 564622992c361..8bf9876601a4e 100644 --- a/build/nogo_config.json +++ b/build/nogo_config.json @@ -1,4 +1,12 @@ { + "all_revive": { + "exclude_files": { + "/external/": "no need to vet third party code", + ".*_generated\\.go$": "ignore generated code", + "/rules_go_work-*": "ignore generated code", + ".*_/testmain\\.go$": "ignore code" + } + }, "asciicheck": { "exclude_files": { "/external/": "no need to vet third party code", @@ -151,7 +159,9 @@ "/rules_go_work-*": "ignore generated code", ".*test_/testmain\\.go$": "ignore generated code", ".*failpoint_binding__.go$": "ignore generated code", - "util/printer/printer.go": "ignore util/printer code" + "util/printer/printer.go": "ignore util/printer code", + "parser/parser.go": "ignore parser code", + "parser/hintparser.go": "ignore parser/hintparser code" } }, "gosec": { @@ -244,6 +254,7 @@ ".*_generated\\.go$": "ignore generated code" }, "only_files": { + "ddl/index.go": "ddl/index code", "planner/core/rule_partition_eliminate.go": "planner/core/rule_partition_eliminate code", "distsql/": "ignore distsql code", "dumpling/export": "dumpling/export code", diff --git a/cmd/ddltest/ddl_test.go b/cmd/ddltest/ddl_test.go index bbc16fbc983a6..6fa05c1ddec21 100644 --- a/cmd/ddltest/ddl_test.go +++ b/cmd/ddltest/ddl_test.go @@ -1032,7 +1032,6 @@ func TestSimpleDelete(t *testing.T) { for _, test := range tests { tblName := test.name t.Run(test.name, func(t *testing.T) { - workerNum := 10 rowCount := 1000 batch := rowCount / workerNum @@ -1083,7 +1082,6 @@ func TestSimpleDelete(t *testing.T) { for _, test := range tests { tblName := test.name t.Run(test.name, func(t *testing.T) { - var mu sync.Mutex keysMap := make(map[int64]int64) diff --git a/cmd/ddltest/index_test.go b/cmd/ddltest/index_test.go index 7472ddca22a8a..7d3206197eba4 100644 --- a/cmd/ddltest/index_test.go +++ b/cmd/ddltest/index_test.go @@ -87,6 +87,7 @@ func TestIndex(t *testing.T) { done := s.runDDL(col.Query) ticker := time.NewTicker(time.Duration(*lease) * time.Second / 2) + //nolint:all_revive,revive defer ticker.Stop() LOOP: for { diff --git a/cmd/explaintest/main.go b/cmd/explaintest/main.go index 02f6fd6f2f90b..b91eb344fd4f5 100644 --- a/cmd/explaintest/main.go +++ b/cmd/explaintest/main.go @@ -250,10 +250,12 @@ func (t *tester) parserErrorHandle(query query, err error) error { gotBuf := t.buf.Bytes()[offset:] buf := make([]byte, t.buf.Len()-offset) if _, err = t.resultFD.ReadAt(buf, int64(offset)); err != nil { + //nolint: all_revive,revive return errors.Trace(errors.Errorf("run \"%v\" at line %d err, we got \n%s\nbut read result err %s", query.Query, query.Line, gotBuf, err)) } if !bytes.Equal(gotBuf, buf) { + //nolint: all_revive,revive return errors.Trace(errors.Errorf("run \"%v\" at line %d err, we need(%v):\n%s\nbut got(%v):\n%s\n", query.Query, query.Line, len(buf), buf, len(gotBuf), gotBuf)) } } @@ -391,6 +393,7 @@ func (t *tester) execute(query query) error { return errors.Trace(errors.Errorf("run \"%v\" at line %d err, we got \n%s\nbut read result err %s", qText, query.Line, gotBuf, err)) } if !skipCheckErrMsg && !bytes.Equal(gotBuf, buf) { + //nolint: all_revive,revive return errors.Trace(errors.Errorf("run \"%v\" at line %d err, we need:\n%s\nbut got:\n%s\n", qText, query.Line, buf, gotBuf)) } t.outputLen = t.buf.Len() @@ -606,9 +609,11 @@ func (t *tester) checkLastResult() error { } buf := make([]byte, int(size)-t.outputLen+len(t.lastResult)) if _, err = t.resultFD.ReadAt(buf, int64(t.outputLen-len(t.lastResult))); !(err == nil || err == io.EOF) { + //nolint: all_revive,revive return errors.Trace(errors.Errorf("run \"%v\" at line %d err, we got \n%s\nbut read result err %s", t.lastText, t.lastQuery.Line, t.lastResult, err)) } if !bytes.Equal(t.lastResult, buf) { + //nolint: all_revive,revive return errors.Trace(errors.Errorf("run \"%v\" at line %d err, we need:\n%s\nbut got:\n%s\n", t.lastText, t.lastQuery.Line, buf, t.lastResult)) } return nil diff --git a/config/config_test.go b/config/config_test.go index 27d2ebbec2111..1471ff719b4e6 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -164,7 +164,6 @@ disable-timestamp = true enable-error-stack = false disable-error-stack = false `, nbFalse, nbUnset, nbUnset, nbUnset, false, true) - } func TestRemovedVariableCheck(t *testing.T) { diff --git a/ddl/backfilling.go b/ddl/backfilling.go index 432de43f77aac..83102dc50c512 100644 --- a/ddl/backfilling.go +++ b/ddl/backfilling.go @@ -648,7 +648,7 @@ func (w *worker) writePhysicalTableRecord(t table.PhysicalTable, bfWorkerType ba switch bfWorkerType { case typeAddIndexWorker: - idxWorker := newAddIndexWorker(sessCtx, w, i, t, indexInfo, decodeColMap, reorgInfo, jc) + idxWorker := newAddIndexWorker(sessCtx, i, t, indexInfo, decodeColMap, reorgInfo, jc) idxWorker.priority = job.Priority backfillWorkers = append(backfillWorkers, idxWorker.backfillWorker) go idxWorker.backfillWorker.run(reorgInfo.d, idxWorker, job) @@ -660,7 +660,7 @@ func (w *worker) writePhysicalTableRecord(t table.PhysicalTable, bfWorkerType ba backfillWorkers = append(backfillWorkers, updateWorker.backfillWorker) go updateWorker.backfillWorker.run(reorgInfo.d, updateWorker, job) case typeCleanUpIndexWorker: - idxWorker := newCleanUpIndexWorker(sessCtx, w, i, t, decodeColMap, reorgInfo, jc) + idxWorker := newCleanUpIndexWorker(sessCtx, i, t, decodeColMap, reorgInfo, jc) idxWorker.priority = job.Priority backfillWorkers = append(backfillWorkers, idxWorker.backfillWorker) go idxWorker.backfillWorker.run(reorgInfo.d, idxWorker, job) diff --git a/ddl/db_partition_test.go b/ddl/db_partition_test.go index ef86a903aa78a..158f2f2aa4a15 100644 --- a/ddl/db_partition_test.go +++ b/ddl/db_partition_test.go @@ -31,7 +31,6 @@ import ( "github.com/pingcap/tidb/ddl/testutil" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/errno" - tmysql "github.com/pingcap/tidb/errno" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/parser/ast" "github.com/pingcap/tidb/parser/model" @@ -128,7 +127,7 @@ func TestCreateTableWithPartition(t *testing.T) { partition p2 values less than (1996), partition p2 values less than (2001) );` - tk.MustGetErrCode(sql1, tmysql.ErrSameNamePartition) + tk.MustGetErrCode(sql1, errno.ErrSameNamePartition) sql2 := `create table employees ( id int not null, @@ -139,7 +138,7 @@ func TestCreateTableWithPartition(t *testing.T) { partition p2 values less than (1996), partition p3 values less than (2001) );` - tk.MustGetErrCode(sql2, tmysql.ErrRangeNotIncreasing) + tk.MustGetErrCode(sql2, errno.ErrRangeNotIncreasing) sql3 := `create table employees ( id int not null, @@ -150,7 +149,7 @@ func TestCreateTableWithPartition(t *testing.T) { partition p2 values less than maxvalue, partition p3 values less than (2001) );` - tk.MustGetErrCode(sql3, tmysql.ErrPartitionMaxvalue) + tk.MustGetErrCode(sql3, errno.ErrPartitionMaxvalue) sql4 := `create table t4 ( a int not null, @@ -161,7 +160,7 @@ func TestCreateTableWithPartition(t *testing.T) { partition p2 values less than (1991), partition p3 values less than (1995) );` - tk.MustGetErrCode(sql4, tmysql.ErrPartitionMaxvalue) + tk.MustGetErrCode(sql4, errno.ErrPartitionMaxvalue) tk.MustExec(`CREATE TABLE rc ( a INT NOT NULL, @@ -182,7 +181,7 @@ func TestCreateTableWithPartition(t *testing.T) { partition by range( hired ) ( partition p0 values less than (6 , 10) );` - tk.MustGetErrCode(sql6, tmysql.ErrTooManyValues) + tk.MustGetErrCode(sql6, errno.ErrTooManyValues) sql7 := `create table t7 ( a int not null, @@ -195,7 +194,7 @@ func TestCreateTableWithPartition(t *testing.T) { partition p4 values less than (1995), partition p5 values less than maxvalue );` - tk.MustGetErrCode(sql7, tmysql.ErrPartitionMaxvalue) + tk.MustGetErrCode(sql7, errno.ErrPartitionMaxvalue) sql18 := `create table t8 ( a int not null, @@ -214,7 +213,7 @@ func TestCreateTableWithPartition(t *testing.T) { partition p0 values less than (2), partition p1 values less than (6) );` - tk.MustGetErrCode(sql9, tmysql.ErrPartitionFunctionIsNotAllowed) + tk.MustGetErrCode(sql9, errno.ErrPartitionFunctionIsNotAllowed) tk.MustGetDBError(`CREATE TABLE t9 ( a INT NOT NULL, @@ -227,7 +226,7 @@ func TestCreateTableWithPartition(t *testing.T) { partition p3 values less than (20) );`, dbterror.ErrRangeNotIncreasing) - tk.MustGetErrCode(`create TABLE t10 (c1 int,c2 int) partition by range(c1 / c2 ) (partition p0 values less than (2));`, tmysql.ErrPartitionFunctionIsNotAllowed) + tk.MustGetErrCode(`create TABLE t10 (c1 int,c2 int) partition by range(c1 / c2 ) (partition p0 values less than (2));`, errno.ErrPartitionFunctionIsNotAllowed) tk.MustExec(`create TABLE t11 (c1 int,c2 int) partition by range(c1 div c2 ) (partition p0 values less than (2));`) tk.MustExec(`create TABLE t12 (c1 int,c2 int) partition by range(c1 + c2 ) (partition p0 values less than (2));`) @@ -236,17 +235,17 @@ func TestCreateTableWithPartition(t *testing.T) { tk.MustExec(`create TABLE t15 (c1 int,c2 int) partition by range( abs(c1) ) (partition p0 values less than (2));`) tk.MustExec(`create TABLE t16 (c1 int) partition by range( c1) (partition p0 values less than (10));`) - tk.MustGetErrCode(`create TABLE t17 (c1 int,c2 float) partition by range(c1 + c2 ) (partition p0 values less than (2));`, tmysql.ErrPartitionFuncNotAllowed) - tk.MustGetErrCode(`create TABLE t18 (c1 int,c2 float) partition by range( floor(c2) ) (partition p0 values less than (2));`, tmysql.ErrPartitionFuncNotAllowed) + tk.MustGetErrCode(`create TABLE t17 (c1 int,c2 float) partition by range(c1 + c2 ) (partition p0 values less than (2));`, errno.ErrPartitionFuncNotAllowed) + tk.MustGetErrCode(`create TABLE t18 (c1 int,c2 float) partition by range( floor(c2) ) (partition p0 values less than (2));`, errno.ErrPartitionFuncNotAllowed) tk.MustExec(`create TABLE t19 (c1 int,c2 float) partition by range( floor(c1) ) (partition p0 values less than (2));`) tk.MustExec(`create TABLE t20 (c1 int,c2 bit(10)) partition by range(c2) (partition p0 values less than (10));`) tk.MustExec(`create TABLE t21 (c1 int,c2 year) partition by range( c2 ) (partition p0 values less than (2000));`) - tk.MustGetErrCode(`create TABLE t24 (c1 float) partition by range( c1 ) (partition p0 values less than (2000));`, tmysql.ErrFieldTypeNotAllowedAsPartitionField) + tk.MustGetErrCode(`create TABLE t24 (c1 float) partition by range( c1 ) (partition p0 values less than (2000));`, errno.ErrFieldTypeNotAllowedAsPartitionField) // test check order. The sql below have 2 problem: 1. ErrFieldTypeNotAllowedAsPartitionField 2. ErrPartitionMaxvalue , mysql will return ErrPartitionMaxvalue. - tk.MustGetErrCode(`create TABLE t25 (c1 float) partition by range( c1 ) (partition p1 values less than maxvalue,partition p0 values less than (2000));`, tmysql.ErrPartitionMaxvalue) + tk.MustGetErrCode(`create TABLE t25 (c1 float) partition by range( c1 ) (partition p1 values less than maxvalue,partition p0 values less than (2000));`, errno.ErrPartitionMaxvalue) // Fix issue 7362. tk.MustExec("create table test_partition(id bigint, name varchar(255), primary key(id)) ENGINE=InnoDB DEFAULT CHARSET=utf8 PARTITION BY RANGE COLUMNS(id) (PARTITION p1 VALUES LESS THAN (10) ENGINE = InnoDB);") @@ -286,14 +285,14 @@ func TestCreateTableWithPartition(t *testing.T) { (partition p0 values less than (10, 10.0))`) tk.MustQuery("show warnings").Check(testkit.Rows("Warning 8200 Unsupported partition type RANGE, treat as normal table")) - tk.MustGetErrCode(`create table t31 (a int not null) partition by range( a );`, tmysql.ErrPartitionsMustBeDefined) - tk.MustGetErrCode(`create table t32 (a int not null) partition by range columns( a );`, tmysql.ErrPartitionsMustBeDefined) - tk.MustGetErrCode(`create table t33 (a int, b int) partition by hash(a) partitions 0;`, tmysql.ErrNoParts) - tk.MustGetErrCode(`create table t33 (a timestamp, b int) partition by hash(a) partitions 30;`, tmysql.ErrFieldTypeNotAllowedAsPartitionField) - tk.MustGetErrCode(`CREATE TABLE t34 (c0 INT) PARTITION BY HASH((CASE WHEN 0 THEN 0 ELSE c0 END )) PARTITIONS 1;`, tmysql.ErrPartitionFunctionIsNotAllowed) - tk.MustGetErrCode(`CREATE TABLE t0(c0 INT) PARTITION BY HASH((c0 0 && !ifExists { return dropExistErr.GenWithStackByArgs(strings.Join(notExistTables, ",")) @@ -6900,9 +6897,9 @@ func handleDatabasePlacement(ctx sessionctx.Context, dbInfo *model.DBInfo) error sessVars := ctx.GetSessionVars() if sessVars.PlacementMode == variable.PlacementModeIgnore { dbInfo.PlacementPolicyRef = nil - sessVars.StmtCtx.AppendNote(errors.New( - fmt.Sprintf("Placement is ignored when TIDB_PLACEMENT_MODE is '%s'", variable.PlacementModeIgnore), - )) + sessVars.StmtCtx.AppendNote( + fmt.Errorf("Placement is ignored when TIDB_PLACEMENT_MODE is '%s'", variable.PlacementModeIgnore), + ) return nil } @@ -6914,9 +6911,9 @@ func handleDatabasePlacement(ctx sessionctx.Context, dbInfo *model.DBInfo) error func handleTablePlacement(ctx sessionctx.Context, tbInfo *model.TableInfo) error { sessVars := ctx.GetSessionVars() if sessVars.PlacementMode == variable.PlacementModeIgnore && removeTablePlacement(tbInfo) { - sessVars.StmtCtx.AppendNote(errors.New( - fmt.Sprintf("Placement is ignored when TIDB_PLACEMENT_MODE is '%s'", variable.PlacementModeIgnore), - )) + sessVars.StmtCtx.AppendNote( + fmt.Errorf("Placement is ignored when TIDB_PLACEMENT_MODE is '%s'", variable.PlacementModeIgnore), + ) return nil } @@ -6941,9 +6938,9 @@ func handleTablePlacement(ctx sessionctx.Context, tbInfo *model.TableInfo) error func handlePartitionPlacement(ctx sessionctx.Context, partInfo *model.PartitionInfo) error { sessVars := ctx.GetSessionVars() if sessVars.PlacementMode == variable.PlacementModeIgnore && removePartitionPlacement(partInfo) { - sessVars.StmtCtx.AppendNote(errors.New( - fmt.Sprintf("Placement is ignored when TIDB_PLACEMENT_MODE is '%s'", variable.PlacementModeIgnore), - )) + sessVars.StmtCtx.AppendNote( + fmt.Errorf("Placement is ignored when TIDB_PLACEMENT_MODE is '%s'", variable.PlacementModeIgnore), + ) return nil } @@ -6961,9 +6958,9 @@ func handlePartitionPlacement(ctx sessionctx.Context, partInfo *model.PartitionI func checkIgnorePlacementDDL(ctx sessionctx.Context) bool { sessVars := ctx.GetSessionVars() if sessVars.PlacementMode == variable.PlacementModeIgnore { - sessVars.StmtCtx.AppendNote(errors.New( - fmt.Sprintf("Placement is ignored when TIDB_PLACEMENT_MODE is '%s'", variable.PlacementModeIgnore), - )) + sessVars.StmtCtx.AppendNote( + fmt.Errorf("Placement is ignored when TIDB_PLACEMENT_MODE is '%s'", variable.PlacementModeIgnore), + ) return true } return false diff --git a/ddl/ddl_error_test.go b/ddl/ddl_error_test.go index b869ae42d1aac..f22b67a97e0e5 100644 --- a/ddl/ddl_error_test.go +++ b/ddl/ddl_error_test.go @@ -214,5 +214,4 @@ func TestRenameViewOverDifferentSchemaError(t *testing.T) { //same schema tk.MustExec("rename table test.view_1 to test.view_1000;") - } diff --git a/ddl/ddl_tiflash_api.go b/ddl/ddl_tiflash_api.go index 4c3f9a70a3cec..69677ce34ca27 100644 --- a/ddl/ddl_tiflash_api.go +++ b/ddl/ddl_tiflash_api.go @@ -130,8 +130,8 @@ func (b *PollTiFlashBackoffContext) Tick(ID int64) (bool, bool, int) { return false, false, 0 } grew := e.MaybeGrow(b) - e.Counter += 1 - e.TotalCounter += 1 + e.Counter++ + e.TotalCounter++ return grew, true, e.TotalCounter } @@ -264,8 +264,8 @@ func getTiflashHTTPAddr(host string, statusAddr string) (string, error) { return addr, nil } -// GetTiFlashReplicaInfo parses model.TableInfo into []TiFlashReplicaStatus. -func GetTiFlashReplicaInfo(tblInfo *model.TableInfo, tableList *[]TiFlashReplicaStatus) { +// LoadTiFlashReplicaInfo parses model.TableInfo into []TiFlashReplicaStatus. +func LoadTiFlashReplicaInfo(tblInfo *model.TableInfo, tableList *[]TiFlashReplicaStatus) { if tblInfo.TiFlashReplica == nil { // reject tables that has no tiflash replica such like `INFORMATION_SCHEMA` return @@ -349,7 +349,7 @@ func updateTiFlashStores(pollTiFlashContext *TiFlashManagementContext) error { func (d *ddl) pollTiFlashReplicaStatus(ctx sessionctx.Context, pollTiFlashContext *TiFlashManagementContext) (bool, error) { allReplicaReady := true defer func() { - pollTiFlashContext.HandlePdCounter += 1 + pollTiFlashContext.HandlePdCounter++ pollTiFlashContext.HandlePdCounter %= PullTiFlashPdTick.Load() }() @@ -384,7 +384,7 @@ func (d *ddl) pollTiFlashReplicaStatus(ctx sessionctx.Context, pollTiFlashContex tbls := schema.SchemaTables(db.Name) for _, tbl := range tbls { tblInfo := tbl.Meta() - GetTiFlashReplicaInfo(tblInfo, &tableList) + LoadTiFlashReplicaInfo(tblInfo, &tableList) } } @@ -484,7 +484,7 @@ func getDropOrTruncateTableTiflash(ctx sessionctx.Context, currentSchema infosch return false, nil } uniqueIDMap[tblInfo.ID] = struct{}{} - GetTiFlashReplicaInfo(tblInfo, replicaInfos) + LoadTiFlashReplicaInfo(tblInfo, replicaInfos) return false, nil } fn := func(jobs []*model.Job) (bool, error) { diff --git a/ddl/ddl_tiflash_test.go b/ddl/ddl_tiflash_test.go index 2db35d19cb744..9c4bc300f3bf0 100644 --- a/ddl/ddl_tiflash_test.go +++ b/ddl/ddl_tiflash_test.go @@ -908,7 +908,7 @@ func TestTiFlashBatchRateLimiter(t *testing.T) { tb, err := s.dom.InfoSchema().TableByName(model.NewCIStr("tiflash_ddl_limit"), model.NewCIStr(fmt.Sprintf("t%v", i))) require.NoError(t, err) if tb.Meta().TiFlashReplica != nil { - cnt += 1 + cnt++ } } require.Equal(t, expected, cnt) diff --git a/ddl/index.go b/ddl/index.go index 50b1d98f032b3..4ff08c90ab3bd 100644 --- a/ddl/index.go +++ b/ddl/index.go @@ -426,7 +426,7 @@ func getNullColInfos(tblInfo *model.TableInfo, indexInfo *model.IndexInfo) ([]*m return nullCols, nil } -func checkPrimaryKeyNotNull(d *ddlCtx, w *worker, sqlMode mysql.SQLMode, t *meta.Meta, job *model.Job, +func checkPrimaryKeyNotNull(d *ddlCtx, w *worker, t *meta.Meta, job *model.Job, tblInfo *model.TableInfo, indexInfo *model.IndexInfo) (warnings []string, err error) { if !indexInfo.Primary { return nil, nil @@ -607,7 +607,7 @@ func (w *worker) onCreateIndex(d *ddlCtx, t *meta.Meta, job *model.Job, isPK boo case model.StateDeleteOnly: // delete only -> write only indexInfo.State = model.StateWriteOnly - _, err = checkPrimaryKeyNotNull(d, w, sqlMode, t, job, tblInfo, indexInfo) + _, err = checkPrimaryKeyNotNull(d, w, t, job, tblInfo, indexInfo) if err != nil { break } @@ -619,7 +619,7 @@ func (w *worker) onCreateIndex(d *ddlCtx, t *meta.Meta, job *model.Job, isPK boo case model.StateWriteOnly: // write only -> reorganization indexInfo.State = model.StateWriteReorganization - _, err = checkPrimaryKeyNotNull(d, w, sqlMode, t, job, tblInfo, indexInfo) + _, err = checkPrimaryKeyNotNull(d, w, t, job, tblInfo, indexInfo) if err != nil { break } @@ -782,9 +782,9 @@ func onDropIndex(d *ddlCtx, t *meta.Meta, job *model.Job) (ver int64, _ error) { if job.IsRollingback() { job.FinishTableJob(model.JobStateRollbackDone, model.StateNone, ver, tblInfo) job.Args[0] = indexInfo.ID + } else { // the partition ids were append by convertAddIdxJob2RollbackJob, it is weird, but for the compatibility, // we should keep appending the partitions in the convertAddIdxJob2RollbackJob. - } else { job.FinishTableJob(model.JobStateDone, model.StateNone, ver, tblInfo) job.Args = append(job.Args, indexInfo.ID, getPartitionIDs(tblInfo)) } @@ -1008,7 +1008,7 @@ type addIndexWorker struct { distinctCheckFlags []bool } -func newAddIndexWorker(sessCtx sessionctx.Context, worker *worker, id int, t table.PhysicalTable, indexInfo *model.IndexInfo, decodeColMap map[int64]decoder.Column, reorgInfo *reorgInfo, jc *JobContext) *addIndexWorker { +func newAddIndexWorker(sessCtx sessionctx.Context, id int, t table.PhysicalTable, indexInfo *model.IndexInfo, decodeColMap map[int64]decoder.Column, reorgInfo *reorgInfo, jc *JobContext) *addIndexWorker { index := tables.NewIndex(t.GetPhysicalID(), t.Meta(), indexInfo) rowDecoder := decoder.NewRowDecoder(t, t.WritableCols(), decodeColMap) return &addIndexWorker{ @@ -1456,7 +1456,7 @@ type cleanUpIndexWorker struct { baseIndexWorker } -func newCleanUpIndexWorker(sessCtx sessionctx.Context, worker *worker, id int, t table.PhysicalTable, decodeColMap map[int64]decoder.Column, reorgInfo *reorgInfo, jc *JobContext) *cleanUpIndexWorker { +func newCleanUpIndexWorker(sessCtx sessionctx.Context, id int, t table.PhysicalTable, decodeColMap map[int64]decoder.Column, reorgInfo *reorgInfo, jc *JobContext) *cleanUpIndexWorker { indexes := make([]table.Index, 0, len(t.Indices())) rowDecoder := decoder.NewRowDecoder(t, t.WritableCols(), decodeColMap) for _, index := range t.Indices() { diff --git a/ddl/index_modify_test.go b/ddl/index_modify_test.go index ee2df27913f28..7b64658b88ffe 100644 --- a/ddl/index_modify_test.go +++ b/ddl/index_modify_test.go @@ -782,7 +782,7 @@ func checkGlobalIndexRow( tblColMap := make(map[int64]*types.FieldType, len(tblInfo.Columns)) for _, col := range tblInfo.Columns { - tblColMap[col.ID] = &col.FieldType + tblColMap[col.ID] = &(col.FieldType) } // Check local index entry does not exist. diff --git a/ddl/job_table.go b/ddl/job_table.go index 23cedfb8b1b56..a003e1b8843ea 100644 --- a/ddl/job_table.go +++ b/ddl/job_table.go @@ -185,12 +185,12 @@ func (d *ddl) startDispatchLoop() { case <-d.ctx.Done(): return } - d.getDDLJobAndRun(sess, d.generalDDLWorkerPool, d.getGeneralJob) - d.getDDLJobAndRun(sess, d.reorgWorkerPool, d.getReorgJob) + d.loadDDLJobAndRun(sess, d.generalDDLWorkerPool, d.getGeneralJob) + d.loadDDLJobAndRun(sess, d.reorgWorkerPool, d.getReorgJob) } } -func (d *ddl) getDDLJobAndRun(sess *session, pool *workerPool, getJob func(*session) (*model.Job, error)) { +func (d *ddl) loadDDLJobAndRun(sess *session, pool *workerPool, getJob func(*session) (*model.Job, error)) { wk, err := pool.get() if err != nil || wk == nil { logutil.BgLogger().Debug(fmt.Sprintf("[ddl] no %v worker available now", pool.tp()), zap.Error(err)) diff --git a/ddl/modify_column_test.go b/ddl/modify_column_test.go index 783f11d7c71d0..bbfbe4da8d2b9 100644 --- a/ddl/modify_column_test.go +++ b/ddl/modify_column_test.go @@ -420,7 +420,6 @@ func TestModifyColumnCharset(t *testing.T) { " `a` varchar(8) DEFAULT NULL,\n" + " `b` varchar(8) CHARACTER SET utf8 COLLATE utf8_bin DEFAULT NULL\n" + ") ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin")) - } func TestModifyColumnTime_TimeToYear(t *testing.T) { diff --git a/ddl/placement_policy_test.go b/ddl/placement_policy_test.go index 0a1663abd85cd..f6d74b5a6cfb3 100644 --- a/ddl/placement_policy_test.go +++ b/ddl/placement_policy_test.go @@ -201,6 +201,7 @@ func TestPlacementPolicy(t *testing.T) { tk.MustExec("drop placement policy x") tk.MustGetErrCode("drop placement policy x", mysql.ErrPlacementPolicyNotExists) tk.MustExec("drop placement policy if exists x") + //nolint:revive,all_revive tk.MustQuery("show warnings").Check(testkit.Rows("Note 8239 Unknown placement policy 'x'")) // TODO: privilege check & constraint syntax check. diff --git a/ddl/placement_sql_test.go b/ddl/placement_sql_test.go index 4d560831d4044..f8ee695d80f45 100644 --- a/ddl/placement_sql_test.go +++ b/ddl/placement_sql_test.go @@ -580,7 +580,6 @@ func TestPlacementMode(t *testing.T) { err = dom.DDL().CreateSchemaWithInfo(tk.Session(), db1, ddl.OnExistError) require.NoError(t, err) tk.MustQuery("show create database db2").Check(testkit.Rows("db2 CREATE DATABASE `db2` /*!40100 DEFAULT CHARACTER SET utf8mb4 */")) - } func TestPlacementTiflashCheck(t *testing.T) { diff --git a/ddl/schematracker/dm_tracker.go b/ddl/schematracker/dm_tracker.go index 3958779df7cd9..3438f5380d4a1 100644 --- a/ddl/schematracker/dm_tracker.go +++ b/ddl/schematracker/dm_tracker.go @@ -1004,7 +1004,7 @@ func (d SchemaTracker) AlterTable(ctx context.Context, sctx sessionctx.Context, } // TruncateTable implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) TruncateTable(ctx sessionctx.Context, tableIdent ast.Ident) error { +func (SchemaTracker) TruncateTable(ctx sessionctx.Context, tableIdent ast.Ident) error { return nil } @@ -1054,32 +1054,28 @@ func (d SchemaTracker) renameTable(ctx sessionctx.Context, oldIdents, newIdents } // LockTables implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) LockTables(ctx sessionctx.Context, stmt *ast.LockTablesStmt) error { +func (SchemaTracker) LockTables(ctx sessionctx.Context, stmt *ast.LockTablesStmt) error { return nil } // UnlockTables implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) UnlockTables(ctx sessionctx.Context, lockedTables []model.TableLockTpInfo) error { +func (SchemaTracker) UnlockTables(ctx sessionctx.Context, lockedTables []model.TableLockTpInfo) error { return nil - } // CleanupTableLock implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) CleanupTableLock(ctx sessionctx.Context, tables []*ast.TableName) error { +func (SchemaTracker) CleanupTableLock(ctx sessionctx.Context, tables []*ast.TableName) error { return nil - } // UpdateTableReplicaInfo implements the DDL interface, it's no-op in DM's case. func (d SchemaTracker) UpdateTableReplicaInfo(ctx sessionctx.Context, physicalID int64, available bool) error { return nil - } // RepairTable implements the DDL interface, it's no-op in DM's case. func (d SchemaTracker) RepairTable(ctx sessionctx.Context, table *ast.TableName, createStmt *ast.CreateTableStmt) error { return nil - } // CreateSequence implements the DDL interface, it's no-op in DM's case. @@ -1090,30 +1086,26 @@ func (d SchemaTracker) CreateSequence(ctx sessionctx.Context, stmt *ast.CreateSe // DropSequence implements the DDL interface, it's no-op in DM's case. func (d SchemaTracker) DropSequence(ctx sessionctx.Context, stmt *ast.DropSequenceStmt) (err error) { return nil - } // AlterSequence implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) AlterSequence(ctx sessionctx.Context, stmt *ast.AlterSequenceStmt) error { +func (SchemaTracker) AlterSequence(_ sessionctx.Context, _ *ast.AlterSequenceStmt) error { return nil } // CreatePlacementPolicy implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) CreatePlacementPolicy(ctx sessionctx.Context, stmt *ast.CreatePlacementPolicyStmt) error { +func (SchemaTracker) CreatePlacementPolicy(_ sessionctx.Context, _ *ast.CreatePlacementPolicyStmt) error { return nil - } // DropPlacementPolicy implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) DropPlacementPolicy(ctx sessionctx.Context, stmt *ast.DropPlacementPolicyStmt) error { +func (SchemaTracker) DropPlacementPolicy(_ sessionctx.Context, _ *ast.DropPlacementPolicyStmt) error { return nil - } // AlterPlacementPolicy implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) AlterPlacementPolicy(ctx sessionctx.Context, stmt *ast.AlterPlacementPolicyStmt) error { +func (SchemaTracker) AlterPlacementPolicy(ctx sessionctx.Context, stmt *ast.AlterPlacementPolicyStmt) error { return nil - } // BatchCreateTableWithInfo implements the DDL interface, it will call CreateTableWithInfo for each table. @@ -1134,7 +1126,6 @@ func (d SchemaTracker) CreatePlacementPolicyWithInfo(ctx sessionctx.Context, pol // Start implements the DDL interface, it's no-op in DM's case. func (d SchemaTracker) Start(ctxPool *pools.ResourcePool) error { return nil - } // GetLease implements the DDL interface, it's no-op in DM's case. @@ -1158,30 +1149,30 @@ func (d SchemaTracker) Stop() error { } // RegisterStatsHandle implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) RegisterStatsHandle(handle *handle.Handle) {} +func (SchemaTracker) RegisterStatsHandle(handle *handle.Handle) {} // SchemaSyncer implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) SchemaSyncer() util.SchemaSyncer { +func (SchemaTracker) SchemaSyncer() util.SchemaSyncer { return nil } // OwnerManager implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) OwnerManager() owner.Manager { +func (SchemaTracker) OwnerManager() owner.Manager { return nil } // GetID implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) GetID() string { +func (SchemaTracker) GetID() string { return "schema-tracker" } // GetTableMaxHandle implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) GetTableMaxHandle(ctx *ddl.JobContext, startTS uint64, tbl table.PhysicalTable) (kv.Handle, bool, error) { +func (SchemaTracker) GetTableMaxHandle(ctx *ddl.JobContext, startTS uint64, tbl table.PhysicalTable) (kv.Handle, bool, error) { return nil, false, nil } // SetBinlogClient implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) SetBinlogClient(client *pumpcli.PumpsClient) {} +func (SchemaTracker) SetBinlogClient(client *pumpcli.PumpsClient) {} // GetHook implements the DDL interface, it's no-op in DM's case. func (d SchemaTracker) GetHook() ddl.Callback { @@ -1189,24 +1180,24 @@ func (d SchemaTracker) GetHook() ddl.Callback { } // SetHook implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) SetHook(h ddl.Callback) {} +func (SchemaTracker) SetHook(h ddl.Callback) {} // GetInfoSchemaWithInterceptor implements the DDL interface. -func (d SchemaTracker) GetInfoSchemaWithInterceptor(ctx sessionctx.Context) infoschema.InfoSchema { +func (SchemaTracker) GetInfoSchemaWithInterceptor(ctx sessionctx.Context) infoschema.InfoSchema { panic("not implemented") } // DoDDLJob implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) DoDDLJob(ctx sessionctx.Context, job *model.Job) error { +func (SchemaTracker) DoDDLJob(ctx sessionctx.Context, job *model.Job) error { return nil } // MoveJobFromQueue2Table implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) MoveJobFromQueue2Table(b bool) error { +func (SchemaTracker) MoveJobFromQueue2Table(b bool) error { panic("implement me") } // MoveJobFromTable2Queue implements the DDL interface, it's no-op in DM's case. -func (d SchemaTracker) MoveJobFromTable2Queue() error { +func (SchemaTracker) MoveJobFromTable2Queue() error { panic("implement me") } diff --git a/ddl/sequence_test.go b/ddl/sequence_test.go index 743544cc25704..56b0a0529043f 100644 --- a/ddl/sequence_test.go +++ b/ddl/sequence_test.go @@ -862,6 +862,7 @@ func TestUnflodSequence(t *testing.T) { tk.MustQuery("select nextval(seq), b from (select nextval(seq) as b, a from t1) t2").Check(testkit.Rows("227 228", "229 230", "231 232")) tk.MustExec("insert into t2 select nextval(seq), b from (select nextval(seq) as b, a from t1) t2") tk.MustQuery("select * from t2").Check(testkit.Rows("233 234", "235 236", "237 238")) + //nolint:all_revive,revive tk.MustExec("delete from t2") // For union operator like select1 union select2, select1 and select2 will be executed parallelly, diff --git a/ddl/serial_test.go b/ddl/serial_test.go index 7d5c2c55a2d89..048cc001fca39 100644 --- a/ddl/serial_test.go +++ b/ddl/serial_test.go @@ -1132,6 +1132,7 @@ func TestForbidUnsupportedCollations(t *testing.T) { tk.MustExec("create table t1(a varchar(20))") mustGetUnsupportedCollation("alter table t1 modify a varchar(20) collate utf8mb4_roman_ci", "utf8mb4_roman_ci") mustGetUnsupportedCollation("alter table t1 modify a varchar(20) charset utf8 collate utf8_roman_ci", "utf8_roman_ci") + //nolint:revive,all_revive mustGetUnsupportedCollation("alter table t1 modify a varchar(20) charset utf8 collate utf8_roman_ci", "utf8_roman_ci") // TODO(bb7133): fix the following cases by setting charset from collate firstly. diff --git a/ddl/tiflash_replica_test.go b/ddl/tiflash_replica_test.go index 5431f917b7855..ca87913293cc3 100644 --- a/ddl/tiflash_replica_test.go +++ b/ddl/tiflash_replica_test.go @@ -190,7 +190,6 @@ func TestSetTableFlashReplicaForSystemTable(t *testing.T) { } else { require.Equal(t, fmt.Sprintf("[planner:1142]ALTER command denied to user 'root'@'%%' for table '%s'", strings.ToLower(one)), err.Error()) } - } sysTables = sysTables[:0] } @@ -444,5 +443,4 @@ func TestTruncateTable2(t *testing.T) { require.Equal(t, t1.Meta().TiFlashReplica.LocationLabels, t2.Meta().TiFlashReplica.LocationLabels) require.False(t, t2.Meta().TiFlashReplica.Available) require.Equal(t, []int64{partition.Definitions[1].ID}, t2.Meta().TiFlashReplica.AvailablePartitionIDs) - } diff --git a/domain/schema_checker.go b/domain/schema_checker.go index 5251cc4541f5d..f3737d85bdb80 100644 --- a/domain/schema_checker.go +++ b/domain/schema_checker.go @@ -72,7 +72,6 @@ func (s *SchemaChecker) CheckBySchemaVer(txnTS uint64, startSchemaVer tikv.Schem case ResultUnknown: time.Sleep(schemaOutOfDateRetryInterval) } - } metrics.SchemaLeaseErrorCounter.WithLabelValues("outdated").Inc() return nil, ErrInfoSchemaExpired diff --git a/dumpling/export/config_test.go b/dumpling/export/config_test.go index b799d25487fe6..966a933881497 100644 --- a/dumpling/export/config_test.go +++ b/dumpling/export/config_test.go @@ -50,5 +50,4 @@ func TestGetConfTables(t *testing.T) { actualDBTables, err := GetConfTables(tablesList) require.NoError(t, err) require.Equal(t, expectedDBTables, actualDBTables) - } diff --git a/dumpling/export/prepare_test.go b/dumpling/export/prepare_test.go index f9f559448d078..ebfb2ee7efe48 100644 --- a/dumpling/export/prepare_test.go +++ b/dumpling/export/prepare_test.go @@ -321,7 +321,7 @@ func TestValidateResolveAutoConsistency(t *testing.T) { for _, testCase := range testCases { conf.Consistency = testCase.confConsistency conf.Snapshot = testCase.confSnapshot - if testCase.err == true { + if testCase.err { require.NoError(t, validateResolveAutoConsistency(d)) } else { require.EqualError(t, validateResolveAutoConsistency(d), fmt.Sprintf("can't specify --snapshot when --consistency isn't snapshot, resolved consistency: %s", conf.Consistency)) diff --git a/dumpling/export/sql_test.go b/dumpling/export/sql_test.go index d79f74993c10b..c8950c8a1bc00 100644 --- a/dumpling/export/sql_test.go +++ b/dumpling/export/sql_test.go @@ -425,7 +425,6 @@ func TestShowCreatePolicy(t *testing.T) { require.NoError(t, err) require.Equal(t, "CREATE PLACEMENT POLICY `policy_x` LEARNERS=1", createPolicySQL) require.NoError(t, mock.ExpectationsWereMet()) - } func TestListPolicyNames(t *testing.T) { diff --git a/executor/admin_test.go b/executor/admin_test.go index ffb31b5c46e32..e9a9705564d00 100644 --- a/executor/admin_test.go +++ b/executor/admin_test.go @@ -1033,7 +1033,6 @@ func (l *logEntry) checkField(t *testing.T, requireFields ...zapcore.Field) { } require.NotNilf(t, f, "matched log fields %s:%s not found in log", rf.Key, rf) } - } func (l *logEntry) checkFieldNotEmpty(t *testing.T, fieldName string) { diff --git a/executor/aggfuncs/func_lead_lag_test.go b/executor/aggfuncs/func_lead_lag_test.go index 279f1360eca74..31ca5da97912c 100644 --- a/executor/aggfuncs/func_lead_lag_test.go +++ b/executor/aggfuncs/func_lead_lag_test.go @@ -114,7 +114,6 @@ func TestLeadLag(t *testing.T) { for _, test := range tests { testWindowFunc(t, test) } - } func TestMemLeadLag(t *testing.T) { @@ -163,5 +162,4 @@ func TestMemLeadLag(t *testing.T) { for _, test := range tests { testWindowAggMemFunc(t, test) } - } diff --git a/executor/aggregate.go b/executor/aggregate.go index 9d42e2f022b81..549ea91d3d838 100644 --- a/executor/aggregate.go +++ b/executor/aggregate.go @@ -699,7 +699,7 @@ func (w *HashAggFinalWorker) consumeIntermData(sctx sessionctx.Context) (err err } } -func (w *HashAggFinalWorker) getFinalResult(sctx sessionctx.Context) { +func (w *HashAggFinalWorker) loadFinalResult(sctx sessionctx.Context) { waitStart := time.Now() result, finished := w.receiveFinalResultHolder() if w.stats != nil { @@ -763,7 +763,7 @@ func (w *HashAggFinalWorker) run(ctx sessionctx.Context, waitGroup *sync.WaitGro if err := w.consumeIntermData(ctx); err != nil { w.outputCh <- &AfFinalResult{err: err} } - w.getFinalResult(ctx) + w.loadFinalResult(ctx) } // Next implements the Executor Next interface. diff --git a/executor/aggregate_test.go b/executor/aggregate_test.go index 224e03198d847..cb1285e8da4be 100644 --- a/executor/aggregate_test.go +++ b/executor/aggregate_test.go @@ -660,7 +660,6 @@ func TestSelectDistinct(t *testing.T) { r := tk.MustQuery("select distinct name from select_distinct_test;") r.Check(testkit.Rows("hello")) tk.MustExec("commit") - } func TestAggPushDown(t *testing.T) { @@ -1002,7 +1001,7 @@ func TestInjectProjBelowTopN(t *testing.T) { input []string output [][]string ) - aggMergeSuiteData.GetTestCases(t, &input, &output) + aggMergeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i] = testdata.ConvertRowsToStrings(tk.MustQuery(tt).Rows()) @@ -1111,7 +1110,6 @@ func TestIssue10608(t *testing.T) { tk.MustExec("insert into t values(508931), (508932)") tk.MustQuery("select (select /*+ stream_agg() */ group_concat(concat(123,'-')) from t where t.a = s.b group by t.a) as t from s;").Check(testkit.Rows("123-", "123-")) tk.MustQuery("select (select /*+ hash_agg() */ group_concat(concat(123,'-')) from t where t.a = s.b group by t.a) as t from s;").Check(testkit.Rows("123-", "123-")) - } func TestIssue12759HashAggCalledByApply(t *testing.T) { @@ -1135,7 +1133,7 @@ func TestIssue12759HashAggCalledByApply(t *testing.T) { input []string output [][]string ) - aggMergeSuiteData.GetTestCases(t, &input, &output) + aggMergeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i] = testdata.ConvertRowsToStrings(tk.MustQuery(tt).Rows()) @@ -1158,7 +1156,6 @@ func TestPR15242ShallowCopy(t *testing.T) { tk.MustExec(`insert into t values ('{"id": 3,"score":233}');`) tk.Session().GetSessionVars().MaxChunkSize = 2 tk.MustQuery(`select max(JSON_EXTRACT(a, '$.score')) as max_score,JSON_EXTRACT(a,'$.id') as id from t group by id order by id;`).Check(testkit.Rows("233 1", "233 2", "233 3")) - } func TestIssue15690(t *testing.T) { diff --git a/executor/analyze_test.go b/executor/analyze_test.go index 1b056752c2af7..3560f1b6a72e1 100644 --- a/executor/analyze_test.go +++ b/executor/analyze_test.go @@ -224,6 +224,7 @@ func TestFastAnalyze(t *testing.T) { "IndexReader 2.00 root index:IndexRangeScan", "└─IndexRangeScan 2.00 cop[tikv] table:t3, partition:p1, index:k(v) range:[3,3], keep order:false", )) + //nolint:revive,all_revive tk.MustExec(`set @@tidb_partition_prune_mode='` + string(variable.Dynamic) + `'`) // global-stats depends on stats-ver2, but stats-ver2 is not compatible with fast-analyze, so forbid using global-stats with fast-analyze now. diff --git a/executor/analyzetest/analyze_test.go b/executor/analyzetest/analyze_test.go index 8b9f9b593394b..557f67fd3070f 100644 --- a/executor/analyzetest/analyze_test.go +++ b/executor/analyzetest/analyze_test.go @@ -585,64 +585,66 @@ func TestAnalyzeFullSamplingOnIndexWithVirtualColumnOrPrefixColumn(t *testing.T) func TestSnapshotAnalyzeAndMaxTSAnalyze(t *testing.T) { for _, analyzeSnapshot := range []bool{true, false} { - store, clean := testkit.CreateMockStore(t) - defer clean() - tk := testkit.NewTestKit(t, store) + func(analyzeSnapshot bool) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) - tk.MustExec("use test") - if analyzeSnapshot { - tk.MustExec("set @@session.tidb_enable_analyze_snapshot = on") - } else { - tk.MustExec("set @@session.tidb_enable_analyze_snapshot = off") - } - tk.MustExec("drop table if exists t") - tk.MustExec("create table t(a int, index index_a(a))") - is := tk.Session().(sessionctx.Context).GetInfoSchema().(infoschema.InfoSchema) - tbl, err := is.TableByName(model.NewCIStr("test"), model.NewCIStr("t")) - require.NoError(t, err) - tblInfo := tbl.Meta() - tid := tblInfo.ID - tk.MustExec("insert into t values(1),(1),(1)") - tk.MustExec("begin") - txn, err := tk.Session().Txn(false) - require.NoError(t, err) - startTS1 := txn.StartTS() - tk.MustExec("commit") - tk.MustExec("insert into t values(2),(2),(2)") - tk.MustExec("begin") - txn, err = tk.Session().Txn(false) - require.NoError(t, err) - startTS2 := txn.StartTS() - tk.MustExec("commit") - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) - tk.MustExec("analyze table t") - rows := tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() - require.Len(t, rows, 1) - if analyzeSnapshot { - // Analyze cannot see the second insert if it reads the snapshot. - require.Equal(t, "3", rows[0][0]) - } else { - // Analyze can see the second insert if it reads the latest data. + tk.MustExec("use test") + if analyzeSnapshot { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = on") + } else { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = off") + } + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(a int, index index_a(a))") + is := tk.Session().(sessionctx.Context).GetInfoSchema().(infoschema.InfoSchema) + tbl, err := is.TableByName(model.NewCIStr("test"), model.NewCIStr("t")) + require.NoError(t, err) + tblInfo := tbl.Meta() + tid := tblInfo.ID + tk.MustExec("insert into t values(1),(1),(1)") + tk.MustExec("begin") + txn, err := tk.Session().Txn(false) + require.NoError(t, err) + startTS1 := txn.StartTS() + tk.MustExec("commit") + tk.MustExec("insert into t values(2),(2),(2)") + tk.MustExec("begin") + txn, err = tk.Session().Txn(false) + require.NoError(t, err) + startTS2 := txn.StartTS() + tk.MustExec("commit") + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) + tk.MustExec("analyze table t") + rows := tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() + require.Len(t, rows, 1) + if analyzeSnapshot { + // Analyze cannot see the second insert if it reads the snapshot. + require.Equal(t, "3", rows[0][0]) + } else { + // Analyze can see the second insert if it reads the latest data. + require.Equal(t, "6", rows[0][0]) + } + s1Str := rows[0][1].(string) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS2))) + tk.MustExec("analyze table t") + rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() + require.Len(t, rows, 1) require.Equal(t, "6", rows[0][0]) - } - s1Str := rows[0][1].(string) - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS2))) - tk.MustExec("analyze table t") - rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() - require.Len(t, rows, 1) - require.Equal(t, "6", rows[0][0]) - s2Str := rows[0][1].(string) - require.True(t, s1Str != s2Str) - tk.MustExec("set @@session.tidb_analyze_version = 2") - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) - tk.MustExec("analyze table t") - rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() - require.Len(t, rows, 1) - require.Equal(t, "6", rows[0][0]) - s3Str := rows[0][1].(string) - // The third analyze doesn't write results into mysql.stats_xxx because its snapshot is smaller than the second analyze. - require.Equal(t, s2Str, s3Str) - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) + s2Str := rows[0][1].(string) + require.True(t, s1Str != s2Str) + tk.MustExec("set @@session.tidb_analyze_version = 2") + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) + tk.MustExec("analyze table t") + rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() + require.Len(t, rows, 1) + require.Equal(t, "6", rows[0][0]) + s3Str := rows[0][1].(string) + // The third analyze doesn't write results into mysql.stats_xxx because its snapshot is smaller than the second analyze. + require.Equal(t, s2Str, s3Str) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) + }(analyzeSnapshot) } } diff --git a/executor/benchmark_test.go b/executor/benchmark_test.go index 06282390677e4..443524b2fc06d 100644 --- a/executor/benchmark_test.go +++ b/executor/benchmark_test.go @@ -760,7 +760,6 @@ func baseBenchmarkWindowFunctionsWithFrame(b *testing.B, pipelined int) { } } } - } func BenchmarkWindowFunctionsWithFrame(b *testing.B) { @@ -2118,5 +2117,4 @@ func BenchmarkAggPartialResultMapperMemoryUsage(b *testing.B) { func BenchmarkPipelinedRowNumberWindowFunctionExecution(b *testing.B) { b.ReportAllocs() - } diff --git a/executor/builder.go b/executor/builder.go index 68568f294a3bb..fbc7251b376c5 100644 --- a/executor/builder.go +++ b/executor/builder.go @@ -429,7 +429,7 @@ func buildIndexLookUpChecker(b *executorBuilder, p *plannercore.PhysicalIndexLoo tps := make([]*types.FieldType, 0, fullColLen) for _, col := range is.Columns { - tps = append(tps, &col.FieldType) + tps = append(tps, &(col.FieldType)) } if !e.isCommonHandle() { @@ -1037,7 +1037,6 @@ func (b *executorBuilder) buildDDL(v *plannercore.DDL) Executor { b.Ti.PartitionTelemetry.UseTablePartitionList = true } } - } } } @@ -2815,7 +2814,6 @@ func markChildrenUsedCols(outputSchema *expression.Schema, childSchema ...*expre func constructDistExecForTiFlash(sctx sessionctx.Context, p plannercore.PhysicalPlan) ([]*tipb.Executor, error) { execPB, err := p.ToPB(sctx, kv.TiFlash) return []*tipb.Executor{execPB}, err - } func constructDAGReq(ctx sessionctx.Context, plans []plannercore.PhysicalPlan, storeType kv.StoreType) (dagReq *tipb.DAGRequest, err error) { diff --git a/executor/compact_table.go b/executor/compact_table.go index 10f1008488406..61a41e5c95b80 100644 --- a/executor/compact_table.go +++ b/executor/compact_table.go @@ -158,8 +158,7 @@ func (task *storeCompactTask) work() error { // Stop remaining partitions when error happens. break } - } - // For partition table, there must be no data in task.parentExec.tableInfo.ID. So no need to compact it. + } // For partition table, there must be no data in task.parentExec.tableInfo.ID. So no need to compact it. } else { task.allPhysicalTables = 1 task.compactedPhysicalTables = 0 diff --git a/executor/ddl_test.go b/executor/ddl_test.go index 26e8d5656dec0..b285067100a08 100644 --- a/executor/ddl_test.go +++ b/executor/ddl_test.go @@ -701,7 +701,6 @@ func TestAlterTableModifyColumn(t *testing.T) { tk.MustExec("drop table if exists err_modify_multiple_collate;") tk.MustExec("create table err_modify_multiple_collate (a char(1) collate utf8_bin collate utf8_general_ci) charset utf8mb4 collate utf8mb4_bin") tk.MustGetErrMsg("alter table err_modify_multiple_collate modify column a char(1) collate utf8_bin collate utf8mb4_bin;", dbterror.ErrCollationCharsetMismatch.GenWithStackByArgs("utf8mb4_bin", "utf8").Error()) - } func TestColumnCharsetAndCollate(t *testing.T) { diff --git a/executor/executor_test.go b/executor/executor_test.go index 00ce02851b3b0..187e9cdf16a78 100644 --- a/executor/executor_test.go +++ b/executor/executor_test.go @@ -883,7 +883,7 @@ func TestJSON(t *testing.T) { // check CAST AS JSON. tk.MustQuery(`select CAST('3' AS JSON), CAST('{}' AS JSON), CAST(null AS JSON)`).Check(testkit.Rows(`3 {} `)) - + //nolint:revive,all_revive tk.MustQuery("select a, count(1) from test_json group by a order by a").Check(testkit.Rows( " 1", "null 1", @@ -1477,7 +1477,7 @@ func TestSetOperation(t *testing.T) { Plan []string Res []string } - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1508,7 +1508,7 @@ func TestSetOperationOnDiffColType(t *testing.T) { Plan []string Res []string } - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1536,7 +1536,7 @@ func TestIndexScanWithYearCol(t *testing.T) { Plan []string Res []string } - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1628,7 +1628,7 @@ func TestTimezonePushDown(t *testing.T) { ctx := context.Background() count := 0 ctx1 := context.WithValue(ctx, "CheckSelectRequestHook", func(req *kv.Request) { - count += 1 + count++ dagReq := new(tipb.DAGRequest) require.NoError(t, proto.Unmarshal(req.Data, dagReq)) require.Equal(t, systemTZ.String(), dagReq.GetTimeZoneName()) @@ -2014,6 +2014,7 @@ func TestCheckIndex(t *testing.T) { require.NoError(t, err) _, err = se.Execute(context.Background(), "admin check index t c") require.Error(t, err) + //nolint:revive,all_revive require.Contains(t, err.Error(), "table count 3 != index(c) count 2") // TODO: pass the case below: @@ -2707,7 +2708,6 @@ func TestSelectForUpdate(t *testing.T) { err = tk1.ExecToErr("commit") require.Error(t, err) - } func TestSelectForUpdateOf(t *testing.T) { @@ -2846,7 +2846,6 @@ func TestInsertValuesWithSubQuery(t *testing.T) { tk.MustGetErrMsg( "insert into t set a = 81, b = (select ( SELECT '1' AS `c0` WHERE '1' >= `subq_0`.`c0` ) as `c1` FROM ( SELECT '1' AS `c0` ) AS `subq_0` );", "Insert's SET operation or VALUES_LIST doesn't support complex subqueries now") - } func TestDIVZeroInPartitionExpr(t *testing.T) { diff --git a/executor/executor_txn_test.go b/executor/executor_txn_test.go index 6a893dc4c4518..9261e54e705e3 100644 --- a/executor/executor_txn_test.go +++ b/executor/executor_txn_test.go @@ -254,7 +254,6 @@ func TestInvalidReadCacheTable(t *testing.T) { for _, query := range queries { // enable historical read cache table tk.MustExec(query.sql) - } } diff --git a/executor/explainfor_test.go b/executor/explainfor_test.go index 7b547d7caff8d..7833573725c2e 100644 --- a/executor/explainfor_test.go +++ b/executor/explainfor_test.go @@ -1226,7 +1226,6 @@ func TestIgnorePlanCacheWithPrepare(t *testing.T) { tk.MustQuery("select @@last_plan_from_cache;").Check(testkit.Rows("1")) tk.MustQuery("execute stmt_join;").Check(testkit.Rows()) tk.MustQuery("select @@last_plan_from_binding;").Check(testkit.Rows("1")) - } func TestSelectView4PlanCache(t *testing.T) { diff --git a/executor/grant_test.go b/executor/grant_test.go index 9ea2f943071ea..94ea918064d5f 100644 --- a/executor/grant_test.go +++ b/executor/grant_test.go @@ -331,7 +331,6 @@ func TestGrantPrivilegeAtomic(t *testing.T) { tk.MustExec(`drop role if exists r1, r2, r3, r4;`) tk.MustExec(`drop table test.testatomic;`) - } func TestIssue2654(t *testing.T) { diff --git a/executor/index_lookup_merge_join.go b/executor/index_lookup_merge_join.go index 98f083a0c31b9..d1e32465cc4ff 100644 --- a/executor/index_lookup_merge_join.go +++ b/executor/index_lookup_merge_join.go @@ -257,7 +257,7 @@ func (e *IndexLookUpMergeJoin) Next(ctx context.Context, req *chunk.Chunk) error } req.Reset() if e.task == nil { - e.getFinishedTask(ctx) + e.loadFinishedTask(ctx) } for e.task != nil { select { @@ -266,7 +266,7 @@ func (e *IndexLookUpMergeJoin) Next(ctx context.Context, req *chunk.Chunk) error if e.task.doneErr != nil { return e.task.doneErr } - e.getFinishedTask(ctx) + e.loadFinishedTask(ctx) continue } req.SwapColumns(result.chk) @@ -280,14 +280,13 @@ func (e *IndexLookUpMergeJoin) Next(ctx context.Context, req *chunk.Chunk) error return nil } -func (e *IndexLookUpMergeJoin) getFinishedTask(ctx context.Context) { +// TODO: reuse the finished task memory to build tasks. +func (e *IndexLookUpMergeJoin) loadFinishedTask(ctx context.Context) { select { case e.task = <-e.resultCh: case <-ctx.Done(): e.task = nil } - - // TODO: reuse the finished task memory to build tasks. } func (omw *outerMergeWorker) run(ctx context.Context, wg *sync.WaitGroup, cancelFunc context.CancelFunc) { diff --git a/executor/infoschema_reader.go b/executor/infoschema_reader.go index 50c7a33d52369..9f31695e44f4d 100644 --- a/executor/infoschema_reader.go +++ b/executor/infoschema_reader.go @@ -398,7 +398,6 @@ func (e *memtableRetriever) setDataFromSchemata(ctx sessionctx.Context, schemas rows := make([][]types.Datum, 0, len(schemas)) for _, schema := range schemas { - charset := mysql.DefaultCharset collation := mysql.DefaultCollationName @@ -800,7 +799,7 @@ ForColumnsTag: continue } - ft := &col.FieldType + ft := &(col.FieldType) if tbl.IsView() { e.viewMu.RLock() if e.viewSchemaMap[tbl.ID] != nil { @@ -1319,7 +1318,6 @@ func (e *DDLJobsReaderExec) Next(ctx context.Context, req *chunk.Chunk) error { req.AppendString(12, e.runningJobs[i].Query) } } - } e.cursor += num count += num diff --git a/executor/insert.go b/executor/insert.go index abb3aa5efc7b5..fcb6e68330e7a 100644 --- a/executor/insert.go +++ b/executor/insert.go @@ -356,13 +356,13 @@ func (e *InsertExec) initEvalBuffer4Dup() { // Append the old row before the new row, to be consistent with "Schema4OnDuplicate" in the "Insert" PhysicalPlan. for _, col := range e.Table.WritableCols() { - evalBufferTypes = append(evalBufferTypes, &col.FieldType) + evalBufferTypes = append(evalBufferTypes, &(col.FieldType)) } if extraLen > 0 { evalBufferTypes = append(evalBufferTypes, e.SelectExec.base().retFieldTypes[e.rowLen:]...) } for _, col := range e.Table.Cols() { - evalBufferTypes = append(evalBufferTypes, &col.FieldType) + evalBufferTypes = append(evalBufferTypes, &(col.FieldType)) } if e.hasExtraHandle { evalBufferTypes = append(evalBufferTypes, types.NewFieldType(mysql.TypeLonglong)) diff --git a/executor/insert_common.go b/executor/insert_common.go index dee087b13ae91..9486ce2652938 100644 --- a/executor/insert_common.go +++ b/executor/insert_common.go @@ -187,7 +187,7 @@ func (e *InsertValues) initEvalBuffer() { } e.evalBufferTypes = make([]*types.FieldType, numCols) for i, col := range e.Table.Cols() { - e.evalBufferTypes[i] = &col.FieldType + e.evalBufferTypes[i] = &(col.FieldType) } if e.hasExtraHandle { e.evalBufferTypes[len(e.evalBufferTypes)-1] = types.NewFieldType(mysql.TypeLonglong) diff --git a/executor/insert_test.go b/executor/insert_test.go index 91fb15bc50ed1..3e4c75c663575 100644 --- a/executor/insert_test.go +++ b/executor/insert_test.go @@ -1007,7 +1007,6 @@ func TestInsertWithAutoidSchema(t *testing.T) { tk.MustQuery(tt.query).Check(tt.result) } } - } func TestPartitionInsertOnDuplicate(t *testing.T) { diff --git a/executor/join_test.go b/executor/join_test.go index 3b86c21636979..eb886bba504bd 100644 --- a/executor/join_test.go +++ b/executor/join_test.go @@ -680,7 +680,7 @@ func TestUsingAndNaturalJoinSchema(t *testing.T) { SQL string Res []string } - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -708,7 +708,7 @@ func TestNaturalJoin(t *testing.T) { Plan []string Res []string } - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -2762,7 +2762,6 @@ func TestIssue30211(t *testing.T) { err = tk.QueryToErr("select /*+ inl_hash_join(t1) */ * from t1 join t2 on t1.a = t2.a;") require.EqualError(t, err, "failpoint panic: TestIssue30211 IndexJoinPanic") - }() tk.MustExec("insert into t1 values(1),(2);") tk.MustExec("insert into t2 values(1),(1),(2),(2);") diff --git a/executor/joiner.go b/executor/joiner.go index ecfab11f66822..01d124bbc23cd 100644 --- a/executor/joiner.go +++ b/executor/joiner.go @@ -251,10 +251,7 @@ func (j *baseJoiner) makeShallowJoinRow(isRightJoin bool, inner, outer chunk.Row // filter is used to filter the result constructed by tryToMatchInners, the result is // built by one outer row and multiple inner rows. The returned bool value // indicates whether the outer row matches any inner rows. -func (j *baseJoiner) filter( - input, output *chunk.Chunk, outerColLen int, - lUsed, rUsed []int) (bool, error) { - +func (j *baseJoiner) filter(input, output *chunk.Chunk, outerColLen int, lUsed, rUsed []int) (bool, error) { var err error j.selected, err = expression.VectorizedFilter(j.ctx, j.conditions, chunk.NewIterator4Chunk(input), j.selected) if err != nil { @@ -284,7 +281,6 @@ func (j *baseJoiner) filter( innerColOffset, outerColOffset = len(lUsed), 0 innerColLen, outerColLen = outerColLen, innerColLen } - } return chunk.CopySelectedJoinRowsWithSameOuterRows(input, innerColOffset, innerColLen, outerColOffset, outerColLen, j.selected, output) } @@ -296,7 +292,6 @@ func (j *baseJoiner) filter( func (j *baseJoiner) filterAndCheckOuterRowStatus( input, output *chunk.Chunk, innerColsLen int, outerRowStatus []outerRowStatusFlag, lUsed, rUsed []int) ([]outerRowStatusFlag, error) { - var err error j.selected, j.isNull, err = expression.VectorizedFilterConsiderNull(j.ctx, j.conditions, chunk.NewIterator4Chunk(input), j.selected, j.isNull) if err != nil { diff --git a/executor/mem_reader.go b/executor/mem_reader.go index e1e9ea100ee5c..0fa74bb01271e 100644 --- a/executor/mem_reader.go +++ b/executor/mem_reader.go @@ -104,7 +104,7 @@ func (m *memIndexReader) getMemRows(ctx context.Context) ([][]types.Datum, error case m.table.PKIsHandle: for _, col := range m.table.Columns { if mysql.HasPriKeyFlag(col.GetFlag()) { - tps = append(tps, &col.FieldType) + tps = append(tps, &(col.FieldType)) break } } diff --git a/executor/memtable_reader.go b/executor/memtable_reader.go index 4fd4fe2fe7f6b..dc215e71fe3bb 100644 --- a/executor/memtable_reader.go +++ b/executor/memtable_reader.go @@ -817,7 +817,6 @@ func (e *hotRegionsHistoryRetriver) startRetrieving( pdServers []infoschema.ServerInfo, req *HistoryHotRegionsRequest, ) ([]chan hotRegionsResult, error) { - var results []chan hotRegionsResult for _, srv := range pdServers { for typ := range e.extractor.HotRegionTypes { diff --git a/executor/partition_table_test.go b/executor/partition_table_test.go index 3b8b50174ebc5..3503bcb9db8f2 100644 --- a/executor/partition_table_test.go +++ b/executor/partition_table_test.go @@ -410,7 +410,6 @@ func TestOrderByandLimit(t *testing.T) { } func TestBatchGetandPointGetwithHashPartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) defer clean() @@ -3077,7 +3076,7 @@ PARTITION BY RANGE (a) ( var input []string var output []testOutput - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) verifyPartitionResult(tk, input, output) } @@ -3105,7 +3104,7 @@ PARTITION BY RANGE (a) ( var input []string var output []testOutput - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) verifyPartitionResult(tk, input, output) } @@ -3128,7 +3127,7 @@ PARTITION BY RANGE (a) ( var input []string var output []testOutput - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) verifyPartitionResult(tk, input, output) } @@ -3155,7 +3154,7 @@ PARTITION BY RANGE (a) ( var input []string var output []testOutput - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) verifyPartitionResult(tk, input, output) } @@ -3179,7 +3178,7 @@ PARTITION BY RANGE (a) ( var input []string var output []testOutput - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) verifyPartitionResult(tk, input, output) } @@ -3207,7 +3206,7 @@ PARTITION BY RANGE (a) ( var input []string var output []testOutput - executorSuiteData.GetTestCases(t, &input, &output) + executorSuiteData.LoadTestCases(t, &input, &output) verifyPartitionResult(tk, input, output) } diff --git a/executor/plan_replayer.go b/executor/plan_replayer.go index 8ef54d86ba10d..456ac90fa1fde 100644 --- a/executor/plan_replayer.go +++ b/executor/plan_replayer.go @@ -542,7 +542,7 @@ func loadVariables(ctx sessionctx.Context, z *zip.Reader) error { if err != nil { return errors.AddStack(err) } - //nolint: errcheck + //nolint: errcheck,all_revive defer v.Close() _, err = toml.DecodeReader(v, &varMap) if err != nil { diff --git a/executor/point_get_test.go b/executor/point_get_test.go index 2de1c9b75a9ab..3b68a291f6057 100644 --- a/executor/point_get_test.go +++ b/executor/point_get_test.go @@ -269,7 +269,6 @@ func TestIndexLookupBinary(t *testing.T) { tk.MustIndexLookup(`select * from t where a = "a";`).Check(testkit.Rows()) tk.MustIndexLookup(`select * from t where a = "a ";`).Check(testkit.Rows(`a b `)) tk.MustIndexLookup(`select * from t where a = "a ";`).Check(testkit.Rows()) - } func TestOverflowOrTruncated(t *testing.T) { @@ -503,7 +502,7 @@ func TestClusterIndexCBOPointGet(t *testing.T) { Plan []string Res []string } - pointGetSuiteData.GetTestCases(t, &input, &output) + pointGetSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { plan := tk.MustQuery("explain format = 'brief' " + tt) res := tk.MustQuery(tt).Sort() @@ -793,7 +792,6 @@ func TestPointGetLockExistKey(t *testing.T) { {rc: true, key: "primary key"}, {rc: true, key: "unique key"}, } { - tableName := fmt.Sprintf("t_%d", i) func(rc bool, key string, tableName string) { testLock(rc, key, tableName) diff --git a/executor/prepared_test.go b/executor/prepared_test.go index 9fbdaf3b4c50f..8f3ad5882ff39 100644 --- a/executor/prepared_test.go +++ b/executor/prepared_test.go @@ -539,7 +539,7 @@ func TestPlanCacheWithDifferentVariableTypes(t *testing.T) { Result []string } } - prepareMergeSuiteData.GetTestCases(t, &input, &output) + prepareMergeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { tk.MustExec(tt.PrepareStmt) testdata.OnRecord(func() { @@ -1082,7 +1082,7 @@ func TestParameterPushDown(t *testing.T) { Plan []string FromCache string } - prepareMergeSuiteData.GetTestCases(t, &input, &output) + prepareMergeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { if strings.HasPrefix(tt.SQL, "execute") { @@ -1290,7 +1290,6 @@ func TestTemporaryTable4PlanCache(t *testing.T) { tk.MustQuery("execute stmt;").Check(testkit.Rows()) tk.MustQuery("execute stmt;").Check(testkit.Rows()) tk.MustQuery("select @@last_plan_from_cache;").Check(testkit.Rows("0")) - } func TestPrepareStmtAfterIsolationReadChange(t *testing.T) { diff --git a/executor/projection.go b/executor/projection.go index f43d264ebc74a..994128caff421 100644 --- a/executor/projection.go +++ b/executor/projection.go @@ -179,7 +179,6 @@ func (e *ProjectionExec) Next(ctx context.Context, req *chunk.Chunk) error { return e.unParallelExecute(ctx, req) } return e.parallelExecute(ctx, req) - } func (e *ProjectionExec) isUnparallelExec() bool { diff --git a/executor/set_test.go b/executor/set_test.go index 5b0fd526fa25c..75b6f92f6ae78 100644 --- a/executor/set_test.go +++ b/executor/set_test.go @@ -1572,7 +1572,6 @@ func TestEnableNoopFunctionsVar(t *testing.T) { tk.MustExec("set global read_only = on") tk.MustQuery("select @@global.read_only;").Check(testkit.Rows("1")) require.Error(t, tk.ExecToErr("set global read_only = abc")) - } // https://github.com/pingcap/tidb/issues/29670 diff --git a/executor/show.go b/executor/show.go index 3439d83aca44f..bc9bd72e2907c 100644 --- a/executor/show.go +++ b/executor/show.go @@ -587,7 +587,6 @@ func (e *ShowExec) fetchShowTableStatus(ctx context.Context) error { continue } e.result.AppendRow(row) - } return nil } diff --git a/executor/showtest/show_test.go b/executor/showtest/show_test.go index e983bc3a2746e..83ee9b5cfa8a1 100644 --- a/executor/showtest/show_test.go +++ b/executor/showtest/show_test.go @@ -831,7 +831,6 @@ func TestShowStatsPrivilege(t *testing.T) { tk1.MustExec("show stats_meta") tk1.MustExec("SHOW STATS_BUCKETS") tk1.MustExec("SHOW STATS_HISTOGRAMS") - } func TestIssue18878(t *testing.T) { @@ -1122,7 +1121,6 @@ func TestUnprivilegedShow(t *testing.T) { createTime := model.TSConvert2Time(tblInfo.Meta().UpdateTS).Format("2006-01-02 15:04:05") tk.MustQuery("show table status from testshow").Check(testkit.Rows(fmt.Sprintf("t1 InnoDB 10 Compact 0 0 0 0 0 0 %s utf8mb4_bin ", createTime))) - } func TestCollation(t *testing.T) { @@ -1898,7 +1896,6 @@ func TestShowTableStatusLike(t *testing.T) { rows = tk.MustQuery("SHOW table status LIKE 'li%'").Rows() require.Equal(t, "Li_1", rows[0][0]) require.Equal(t, "li_2", rows[1][0]) - } func TestShowCollationsLike(t *testing.T) { diff --git a/executor/shuffle.go b/executor/shuffle.go index 9143afd032f10..a667d5f11ca20 100644 --- a/executor/shuffle.go +++ b/executor/shuffle.go @@ -102,7 +102,6 @@ func (e *ShuffleExec) Open(ctx context.Context) error { if err := s.Open(ctx); err != nil { return err } - } if err := e.baseExecutor.Open(ctx); err != nil { return err diff --git a/executor/simple.go b/executor/simple.go index a7794d4fb8498..b66b813cde8fd 100644 --- a/executor/simple.go +++ b/executor/simple.go @@ -934,7 +934,6 @@ func (e *SimpleExec) executeAlterUser(ctx context.Context, s *ast.AlterUserStmt) spec.User.Username = user.Username spec.User.Hostname = user.AuthHostname } else { - // The user executing the query (user) does not match the user specified (spec.User) // The MySQL manual states: // "In most cases, ALTER USER requires the global CREATE USER privilege, or the UPDATE privilege for the mysql system schema" @@ -1177,14 +1176,13 @@ func (e *SimpleExec) executeRenameUser(s *ast.RenameUserStmt) error { // rename relationship from mysql.global_grants // TODO: add global_grants into the parser + // TODO: need update columns_priv once we implement columns_priv functionality. + // When that is added, please refactor both executeRenameUser and executeDropUser to use an array of tables + // to loop over, so it is easier to maintain. if err = renameUserHostInSystemTable(sqlExecutor, "global_grants", "User", "Host", userToUser); err != nil { failedUser = oldUser.String() + " TO " + newUser.String() + " mysql.global_grants error" break } - - //TODO: need update columns_priv once we implement columns_priv functionality. - // When that is added, please refactor both executeRenameUser and executeDropUser to use an array of tables - // to loop over, so it is easier to maintain. } if failedUser == "" { @@ -1361,9 +1359,7 @@ func (e *SimpleExec) executeDropUser(ctx context.Context, s *ast.DropUserStmt) e break } } - } - - //TODO: need delete columns_priv once we implement columns_priv functionality. + } //TODO: need delete columns_priv once we implement columns_priv functionality. } if len(failedUsers) == 0 { diff --git a/executor/simpletest/simple_test.go b/executor/simpletest/simple_test.go index 5cbeb2e8b5da4..8b9fa04be0e1d 100644 --- a/executor/simpletest/simple_test.go +++ b/executor/simpletest/simple_test.go @@ -895,7 +895,6 @@ func TestSetPwd(t *testing.T) { tk.MustExec(setPwdSQL) result = tk.MustQuery(`SELECT authentication_string FROM mysql.User WHERE User="testpwd" and Host="localhost"`) result.Check(testkit.Rows(auth.EncodePassword("pwd"))) - } func TestFlushPrivileges(t *testing.T) { @@ -922,7 +921,6 @@ func TestFlushPrivileges(t *testing.T) { // After flush. _, err = se.Execute(ctx, `SELECT authentication_string FROM mysql.User WHERE User="testflush" and Host="localhost"`) require.NoError(t, err) - } func TestFlushPrivilegesPanic(t *testing.T) { diff --git a/executor/splittest/split_table_test.go b/executor/splittest/split_table_test.go index 9f5ceec8a01ea..f874bb8fa711b 100644 --- a/executor/splittest/split_table_test.go +++ b/executor/splittest/split_table_test.go @@ -713,5 +713,4 @@ func TestShowTableRegion(t *testing.T) { } require.Equal(t, infosync.PlacementScheduleStatePending.String(), rows[i][12]) } - } diff --git a/executor/tiflashtest/tiflash_test.go b/executor/tiflashtest/tiflash_test.go index 886c2012b0b00..90ca47627c317 100644 --- a/executor/tiflashtest/tiflash_test.go +++ b/executor/tiflashtest/tiflash_test.go @@ -205,7 +205,6 @@ func TestJoinRace(t *testing.T) { tk.MustExec("set @@session.tidb_enforce_mpp=ON") tk.MustExec("set @@tidb_opt_broadcast_cartesian_join=0") tk.MustQuery("select count(*) from (select count(a) x from t group by b) t1 join (select count(a) x from t group by b) t2 on t1.x > t2.x").Check(testkit.Rows("6")) - } func TestMppExecution(t *testing.T) { @@ -793,7 +792,6 @@ func TestMppUnionAll(t *testing.T) { tk.MustExec("set @@tidb_enforce_mpp=1") tk.MustExec("insert into x4 values (2, 2), (2, 3)") tk.MustQuery("(select * from x1 union all select * from x4) order by a, b").Check(testkit.Rows("1 1", "2 2", "2 2", "2 3", "3 3", "4 4")) - } func TestUnionWithEmptyDualTable(t *testing.T) { diff --git a/executor/write.go b/executor/write.go index 397ec2669a46d..a501bd4a48651 100644 --- a/executor/write.go +++ b/executor/write.go @@ -227,7 +227,6 @@ func updateRecord(ctx context.Context, sctx sessionctx.Context, h kv.Handle, old } return false, err } - } if onDup { sc.AddAffectedRows(2) diff --git a/expression/aggregation/base_func.go b/expression/aggregation/base_func.go index e7ae700b092f4..25ec74a287cab 100644 --- a/expression/aggregation/base_func.go +++ b/expression/aggregation/base_func.go @@ -255,7 +255,6 @@ func (a *baseFuncDesc) typeInfer4GroupConcat(ctx sessionctx.Context) { a.Args[i] = expression.BuildCastFunction(ctx, a.Args[i], tp) } } - } func (a *baseFuncDesc) typeInfer4MaxMin(ctx sessionctx.Context) { diff --git a/expression/bench_test.go b/expression/bench_test.go index a8b3da39c5fe8..db71564aedc54 100644 --- a/expression/bench_test.go +++ b/expression/bench_test.go @@ -191,7 +191,6 @@ func BenchmarkScalarFunctionClone(b *testing.B) { func getRandomTime(r *rand.Rand) types.CoreTime { return types.FromDate(r.Intn(2200), r.Intn(10)+1, r.Intn(20)+1, r.Intn(12), r.Intn(60), r.Intn(60), r.Intn(1000000)) - } // dataGenerator is used to generate data for test. @@ -1549,7 +1548,7 @@ func testVectorizedBuiltinFunc(t *testing.T, vecExprCases vecExprBenchCases) { tmp := strings.Split(baseFuncName, ".") baseFuncName = tmp[len(tmp)-1] - if !testAll && (testFunc[baseFuncName] != true && testFunc[funcName] != true) { + if !testAll && (!testFunc[baseFuncName] && !testFunc[funcName]) { continue } // do not forget to implement the vectorized method. @@ -1768,7 +1767,7 @@ func benchmarkVectorizedBuiltinFunc(b *testing.B, vecExprCases vecExprBenchCases tmp := strings.Split(baseFuncName, ".") baseFuncName = tmp[len(tmp)-1] - if !testAll && testFunc[baseFuncName] != true && testFunc[funcName] != true { + if !testAll && !testFunc[baseFuncName] && !testFunc[funcName] { continue } diff --git a/expression/builtin_arithmetic.go b/expression/builtin_arithmetic.go index 067b5c2b50d76..e834cad55bff9 100644 --- a/expression/builtin_arithmetic.go +++ b/expression/builtin_arithmetic.go @@ -340,7 +340,6 @@ func (c *arithmeticMinusFunctionClass) getFunction(ctx sessionctx.Context, args sig.setPbCode(tipb.ScalarFuncSig_MinusDecimal) return sig, nil } else { - bf, err := newBaseBuiltinFuncWithTp(ctx, c.funcName, args, types.ETInt, types.ETInt, types.ETInt) if err != nil { return nil, err diff --git a/expression/builtin_arithmetic_vec.go b/expression/builtin_arithmetic_vec.go index 9d35ac25c3945..4197d2e977737 100644 --- a/expression/builtin_arithmetic_vec.go +++ b/expression/builtin_arithmetic_vec.go @@ -25,6 +25,7 @@ import ( "github.com/pingcap/tidb/util/mathutil" ) +//revive:disable:defer func (b *builtinArithmeticMultiplyRealSig) vectorized() bool { return true } @@ -673,7 +674,6 @@ func (b *builtinArithmeticMultiplyIntSig) vecEvalInt(input *chunk.Chunk, result result.MergeNulls(buf) var tmp int64 for i := 0; i < n; i++ { - tmp = x[i] * y[i] if (x[i] != 0 && tmp/x[i] != y[i]) || (tmp == math.MinInt64 && x[i] == -1) { if result.IsNull(i) { @@ -788,7 +788,6 @@ func (b *builtinArithmeticIntDivideIntSig) divideUU(result *chunk.Column, lhsI64 } else { resultI64s[i] = int64(uint64(lhs) / uint64(rhs)) } - } return nil } @@ -1039,7 +1038,6 @@ func (b *builtinArithmeticMultiplyIntUnsignedSig) vecEvalInt(input *chunk.Chunk, result.MergeNulls(buf) var res uint64 for i := 0; i < n; i++ { - res = x[i] * y[i] if x[i] != 0 && res/x[i] != y[i] { if result.IsNull(i) { diff --git a/expression/builtin_cast.go b/expression/builtin_cast.go index ce34f71f6d3a4..904824e584d92 100644 --- a/expression/builtin_cast.go +++ b/expression/builtin_cast.go @@ -519,11 +519,13 @@ func (b *builtinCastIntAsDecimalSig) evalDecimal(row chunk.Row) (res *types.MyDe return res, isNull, err } if unsignedArgs0 := mysql.HasUnsignedFlag(b.args[0].GetType().GetFlag()); !mysql.HasUnsignedFlag(b.tp.GetFlag()) && !unsignedArgs0 { + //revive:disable:empty-lines res = types.NewDecFromInt(val) // Round up to 0 if the value is negative but the expression eval type is unsigned in `UNION` statement // NOTE: the following expressions are equal (so choose the more efficient one): // `b.inUnion && mysql.HasUnsignedFlag(b.tp.GetFlag()) && !unsignedArgs0 && val < 0` // `b.inUnion && !unsignedArgs0 && val < 0` + //revive:enable:empty-lines } else if b.inUnion && !unsignedArgs0 && val < 0 { res = &types.MyDecimal{} } else { @@ -1786,8 +1788,7 @@ const inUnionCastContext inCastContext = 0 func CanImplicitEvalInt(expr Expression) bool { switch f := expr.(type) { case *ScalarFunction: - switch f.FuncName.L { - case ast.DayName: + if f.FuncName.L == ast.DayName { return true } } diff --git a/expression/builtin_control.go b/expression/builtin_control.go index cb6717de7dd15..e03581084418c 100644 --- a/expression/builtin_control.go +++ b/expression/builtin_control.go @@ -147,7 +147,6 @@ func InferType4ControlFuncs(ctx sessionctx.Context, funcName string, lexp, rexp } flen := maxlen(lhsFlen, rhsFlen) + resultFieldType.GetDecimal() + 1 // account for -1 len fields resultFieldType.SetFlenUnderLimit(flen) - } else { resultFieldType.SetFlen(maxlen(lhs.GetFlen(), rhs.GetFlen())) } diff --git a/expression/builtin_encryption_test.go b/expression/builtin_encryption_test.go index bda56e7bc4bdb..4dcc7b914bfe1 100644 --- a/expression/builtin_encryption_test.go +++ b/expression/builtin_encryption_test.go @@ -494,7 +494,6 @@ func TestMD5Hash(t *testing.T) { } _, err := funcs[ast.MD5].getFunction(ctx, []Expression{NewZero()}) require.NoError(t, err) - } func TestRandomBytes(t *testing.T) { diff --git a/expression/builtin_encryption_vec.go b/expression/builtin_encryption_vec.go index 1c2124b8c3001..cd303cd7c79c8 100644 --- a/expression/builtin_encryption_vec.go +++ b/expression/builtin_encryption_vec.go @@ -35,6 +35,7 @@ import ( "github.com/pingcap/tidb/util/encrypt" ) +//revive:disable:defer func (b *builtinAesDecryptSig) vectorized() bool { return true } @@ -585,6 +586,7 @@ func (b *builtinCompressSig) vecEvalString(input *chunk.Chunk, result *chunk.Col } buffer := allocByteSlice(resultLength) + //nolint: revive defer deallocateByteSlice(buffer) buffer = buffer[:resultLength] diff --git a/expression/builtin_json_vec.go b/expression/builtin_json_vec.go index ea75b6b96187e..d20c0dfe4705f 100644 --- a/expression/builtin_json_vec.go +++ b/expression/builtin_json_vec.go @@ -28,6 +28,7 @@ import ( "github.com/pingcap/tipb/go-tipb" ) +//revive:disable:defer func vecJSONModify(ctx sessionctx.Context, args []Expression, bufAllocator columnBufferAllocator, input *chunk.Chunk, result *chunk.Column, mt json.ModifyType) error { nr := input.NumRows() jsonBuf, err := bufAllocator.get() diff --git a/expression/builtin_string.go b/expression/builtin_string.go index 55ab3d15c7486..e3474206b9bb8 100644 --- a/expression/builtin_string.go +++ b/expression/builtin_string.go @@ -1903,7 +1903,6 @@ func (b *builtinTrim3ArgsSig) evalString(row chunk.Row) (d string, isNull bool, default: d = trimLeft(str, remstr) d = trimRight(d, remstr) - } return d, false, nil } diff --git a/expression/builtin_string_test.go b/expression/builtin_string_test.go index a80d0dcda2a44..38d2724093c2a 100644 --- a/expression/builtin_string_test.go +++ b/expression/builtin_string_test.go @@ -2517,7 +2517,6 @@ func TestToBase64Sig(t *testing.T) { lastWarn := warnings[len(warnings)-1] require.True(t, terror.ErrorEqual(errWarnAllowedPacketOverflowed, lastWarn.Err)) ctx.GetSessionVars().StmtCtx.SetWarnings([]stmtctx.SQLWarn{}) - } else { require.False(t, isNull) } diff --git a/expression/builtin_string_vec.go b/expression/builtin_string_vec.go index 844b9e598bf61..50671ccfa9232 100644 --- a/expression/builtin_string_vec.go +++ b/expression/builtin_string_vec.go @@ -33,6 +33,7 @@ import ( "github.com/pingcap/tidb/util/collate" ) +//revive:disable:defer func (b *builtinLowerSig) vecEvalString(input *chunk.Chunk, result *chunk.Column) error { // if error is not nil return error, or builtinLowerSig is for binary strings (do nothing) return b.args[0].VecEvalString(b.ctx, input, result) diff --git a/expression/builtin_time.go b/expression/builtin_time.go index c54e0aecd79a6..6ed67939220e0 100644 --- a/expression/builtin_time.go +++ b/expression/builtin_time.go @@ -3169,7 +3169,6 @@ func (du *baseDateArithmetical) vecGetDateFromString(b *baseBuiltinFunc, input * } else { dates[i] = date } - } return nil } @@ -6085,7 +6084,6 @@ func (c *timestampAddFunctionClass) getFunction(ctx sessionctx.Context, args []E sig := &builtinTimestampAddSig{bf} sig.setPbCode(tipb.ScalarFuncSig_TimestampAdd) return sig, nil - } type builtinTimestampAddSig struct { diff --git a/expression/builtin_vectorized_test.go b/expression/builtin_vectorized_test.go index 6ba1803337e93..e512dcc4d2f3c 100644 --- a/expression/builtin_vectorized_test.go +++ b/expression/builtin_vectorized_test.go @@ -928,7 +928,6 @@ func BenchmarkFloat32ColRow(b *testing.B) { if _, _, err := col.EvalReal(ctx, row); err != nil { b.Fatal(err) } - } } } diff --git a/expression/constant_propagation.go b/expression/constant_propagation.go index c8d625c7b8be1..55f56702b8209 100644 --- a/expression/constant_propagation.go +++ b/expression/constant_propagation.go @@ -499,7 +499,6 @@ func (s *propOuterJoinConstSolver) validColEqualCond(cond Expression) (*Column, } } return nil, nil - } // deriveConds given `outerCol = innerCol`, derive new expression for specified conditions. diff --git a/expression/constant_propagation_test.go b/expression/constant_propagation_test.go index 6ff6d31a6faad..25fc6233da202 100644 --- a/expression/constant_propagation_test.go +++ b/expression/constant_propagation_test.go @@ -39,7 +39,7 @@ func TestOuterJoinPropConst(t *testing.T) { } expressionSuiteData := expression.GetExpressionSuiteData() - expressionSuiteData.GetTestCases(t, &input, &output) + expressionSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt diff --git a/expression/expr_to_pb_test.go b/expression/expr_to_pb_test.go index b8aa3bf2f3aba..16bdfa38723bd 100644 --- a/expression/expr_to_pb_test.go +++ b/expression/expr_to_pb_test.go @@ -1650,7 +1650,6 @@ func TestPushDownSwitcher(t *testing.T) { } func TestPanicIfPbCodeUnspecified(t *testing.T) { - args := []Expression{genColumn(mysql.TypeLong, 1), genColumn(mysql.TypeLong, 2)} fc, err := NewFunction( mock.NewContext(), diff --git a/expression/expression.go b/expression/expression.go index d23897dddd7c3..52a94c6056ec4 100644 --- a/expression/expression.go +++ b/expression/expression.go @@ -263,7 +263,6 @@ func EvalBool(ctx sessionctx.Context, exprList CNFExprs, row chunk.Row) (bool, b i, err = HandleOverflowOnSelection(ctx.GetSessionVars().StmtCtx, i, err) if err != nil { return false, false, err - } } if i == 0 { @@ -766,6 +765,7 @@ type VarAssignment struct { // splitNormalFormItems split CNF(conjunctive normal form) like "a and b and c", or DNF(disjunctive normal form) like "a or b or c" func splitNormalFormItems(onExpr Expression, funcName string) []Expression { + //nolint: revive switch v := onExpr.(type) { case *ScalarFunction: if v.FuncName.L == funcName { diff --git a/expression/flag_simplify_test.go b/expression/flag_simplify_test.go index c02cb7a1fa037..686e465db7b54 100644 --- a/expression/flag_simplify_test.go +++ b/expression/flag_simplify_test.go @@ -37,7 +37,7 @@ func TestSimplifyExpressionByFlag(t *testing.T) { Plan []string } flagSimplifyData := expression.GetFlagSimplifyData() - flagSimplifyData.GetTestCases(t, &input, &output) + flagSimplifyData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt diff --git a/expression/integration_test.go b/expression/integration_test.go index 8b2aa0139347f..2061aab4be26b 100644 --- a/expression/integration_test.go +++ b/expression/integration_test.go @@ -467,7 +467,6 @@ func TestMiscellaneousBuiltin(t *testing.T) { result = tk.MustQuery(`SELECT RELEASE_LOCK('test_lock3');`) // not acquired result.Check(testkit.Rows("0")) tk.MustQuery(`SELECT RELEASE_ALL_LOCKS()`).Check(testkit.Rows("0")) // none acquired - } func TestConvertToBit(t *testing.T) { @@ -4143,7 +4142,6 @@ func TestNotExistFunc(t *testing.T) { tk.MustExec("use test") _, err = tk.Exec("SELECT timestampliteral(rand())") require.Error(t, err, "[expression:1305]FUNCTION test.timestampliteral does not exist") - } func TestDecodetoChunkReuse(t *testing.T) { @@ -5010,7 +5008,6 @@ func TestIssue18525(t *testing.T) { tk.MustExec("insert into t1 values ('l', NULL, '1000-01-04')") tk.MustExec("insert into t1 values ('b', NULL, '1000-01-02')") tk.MustQuery("select INTERVAL( ( CONVERT( -11752 USING utf8 ) ), 6558853612195285496, `col1`) from t1").Check(testkit.Rows("0", "0", "0")) - } func TestSchemaDMLNotChange(t *testing.T) { @@ -5907,7 +5904,6 @@ func TestJiraSetInnoDBDefaultRowFormat(t *testing.T) { tk.MustQuery("SHOW VARIABLES LIKE 'character_set_server'").Check(testkit.Rows("character_set_server utf8mb4")) tk.MustQuery("SHOW VARIABLES LIKE 'innodb_file_format'").Check(testkit.Rows("innodb_file_format Barracuda")) tk.MustQuery("SHOW VARIABLES LIKE 'innodb_large_prefix'").Check(testkit.Rows("innodb_large_prefix ON")) - } func TestIssue23623(t *testing.T) { @@ -6389,7 +6385,6 @@ OR Variable_name = 'time_zone' OR Variable_name = 'system_time_zone' OR Variable_name = 'lower_case_table_names' OR Variable_name = 'max_allowed_packet' OR Variable_name = 'net_buffer_length' OR Variable_name = 'sql_mode' OR Variable_name = 'query_cache_type' OR Variable_name = 'query_cache_size' OR Variable_name = 'license' OR Variable_name = 'init_connect'`).Rows(), 19) - } func TestBuiltinFuncJSONMergePatch_InColumn(t *testing.T) { diff --git a/expression/partition_pruner.go b/expression/partition_pruner.go index 472ff7ea8accc..f673a6df67cdb 100644 --- a/expression/partition_pruner.go +++ b/expression/partition_pruner.go @@ -39,7 +39,7 @@ func (p *hashPartitionPruner) getColID(col *Column) int { func (p *hashPartitionPruner) insertCol(col *Column) { _, ok := p.colMapper[col.UniqueID] if !ok { - p.numColumn += 1 + p.numColumn++ p.colMapper[col.UniqueID] = len(p.colMapper) } } diff --git a/expression/util.go b/expression/util.go index f3bddcc0e8e52..bd6ba4a17ad08 100644 --- a/expression/util.go +++ b/expression/util.go @@ -560,7 +560,7 @@ func locateStringWithCollation(str, substr, coll string) int64 { count := int64(0) for { r, size := utf8.DecodeRuneInString(str) - count += 1 + count++ index -= len(collator.KeyWithoutTrimRightSpace(string(r))) if index <= 0 { return count + 1 diff --git a/go.mod b/go.mod index a1f88378152f1..8c29ac0730e43 100644 --- a/go.mod +++ b/go.mod @@ -54,13 +54,13 @@ require ( github.com/prometheus/client_golang v1.12.2 github.com/prometheus/client_model v0.2.0 github.com/prometheus/common v0.32.1 - github.com/shirou/gopsutil/v3 v3.22.4 + github.com/shirou/gopsutil/v3 v3.22.6 github.com/shurcooL/httpgzip v0.0.0-20190720172056-320755c1c1b0 github.com/shurcooL/vfsgen v0.0.0-20200824052919-0d455de96546 // indirect github.com/soheilhy/cmux v0.1.5 - github.com/spf13/cobra v1.4.0 + github.com/spf13/cobra v1.5.0 github.com/spf13/pflag v1.0.5 - github.com/stretchr/testify v1.7.2-0.20220504104629-106ec21d14df + github.com/stretchr/testify v1.8.0 github.com/tiancaiamao/appdash v0.0.0-20181126055449-889f96f722a2 github.com/tikv/client-go/v2 v2.0.1-0.20220729034404-e10841f2d158 github.com/tikv/pd/client v0.0.0-20220725055910-7187a7ab72db @@ -79,15 +79,15 @@ require ( go.uber.org/goleak v1.1.12 go.uber.org/multierr v1.8.0 go.uber.org/zap v1.21.0 - golang.org/x/exp v0.0.0-20220428152302-39d4317da171 - golang.org/x/net v0.0.0-20220412020605-290c469a71a5 + golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e + golang.org/x/net v0.0.0-20220722155237-a158d28d115b golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 - golang.org/x/sync v0.0.0-20220513210516-0976fa681c29 - golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664 + golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 + golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 golang.org/x/text v0.3.7 golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 - golang.org/x/tools v0.1.11 + golang.org/x/tools v0.1.12 google.golang.org/api v0.74.0 google.golang.org/grpc v1.45.0 gopkg.in/yaml.v2 v2.4.0 @@ -98,9 +98,9 @@ require ( require ( github.com/aliyun/alibaba-cloud-sdk-go v1.61.1581 github.com/charithe/durationcheck v0.0.9 - github.com/daixiang0/gci v0.3.4 + github.com/daixiang0/gci v0.4.3 github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a - github.com/golangci/golangci-lint v1.46.2 + github.com/golangci/golangci-lint v1.47.2 github.com/golangci/gosec v0.0.0-20180901114220-8afd9cbb6cfb github.com/golangci/misspell v0.3.5 github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 @@ -111,7 +111,7 @@ require ( github.com/nishanths/predeclared v0.2.2 github.com/prometheus/prometheus v0.0.0-20190525122359-d20e84d0fb64 github.com/tdakkota/asciicheck v0.1.1 - honnef.co/go/tools v0.3.1 + honnef.co/go/tools v0.3.2 ) require ( @@ -164,7 +164,7 @@ require ( github.com/golang/glog v1.0.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golangci/prealloc v0.0.0-20180630174525-215b22d4de21 - github.com/google/go-cmp v0.5.7 // indirect + github.com/google/go-cmp v0.5.8 // indirect github.com/gorilla/handlers v1.5.1 // indirect github.com/gorilla/websocket v1.4.2 // indirect github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect @@ -226,13 +226,13 @@ require ( go.opentelemetry.io/otel/sdk/metric v0.20.0 // indirect go.opentelemetry.io/otel/trace v0.20.0 // indirect go.opentelemetry.io/proto/otlp v0.7.0 // indirect - golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e // indirect + golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d // indirect golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect golang.org/x/xerrors v0.0.0-20220411194840-2f41105eb62f // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.28.0 // indirect gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect sigs.k8s.io/yaml v1.2.0 // indirect ) diff --git a/go.sum b/go.sum index 7698c659bf9f3..631c0e76db772 100644 --- a/go.sum +++ b/go.sum @@ -211,13 +211,13 @@ github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548 h1:iwZdTE0PVqJCos1vaoKsclOGD3ADKpshg3SRtYBbwso= github.com/cznic/mathutil v0.0.0-20181122101859-297441e03548/go.mod h1:e6NPNENfs9mPDVNRekM7lKScauxd5kXTr1Mfyig6TDM= -github.com/daixiang0/gci v0.3.4 h1:+EZ83znNs73C9ZBTM7xhNagMP6gJs5wlptiFiuce5BM= -github.com/daixiang0/gci v0.3.4/go.mod h1:pB1j339Q+2sv/EyKd4dgvGXcaBGIErim+dlhLDtqeW4= +github.com/daixiang0/gci v0.4.3 h1:wf7x0xRjQqTlA2dzHTI0A/xPyp7VcBatBG9nwGatwbQ= +github.com/daixiang0/gci v0.4.3/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= github.com/danjacques/gofslock v0.0.0-20191023191349-0a45f885bc37 h1:X6mKGhCFOxrKeeHAjv/3UvT6e5RRxW6wRdlqlV6/H4w= github.com/danjacques/gofslock v0.0.0-20191023191349-0a45f885bc37/go.mod h1:DC3JtzuG7kxMvJ6dZmf2ymjNyoXwgtklr7FN+Um2B0U= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -382,8 +382,8 @@ github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a h1:iR3fYXUjHCR97qWS8ch1y9zPNsgXThGwjKPrYfqMPks= github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= -github.com/golangci/golangci-lint v1.46.2 h1:o90t/Xa6dhJbvy8Bz2RpzUXqrkigp19DLStMolTZbyo= -github.com/golangci/golangci-lint v1.46.2/go.mod h1:3DkdHnxn9eoTTrpT2gB0TEv8KSziuoqe9FitgQLHvAY= +github.com/golangci/golangci-lint v1.47.2 h1:qvMDVv49Hrx3PSEXZ0bD/yhwSbhsOihQjFYCKieegIw= +github.com/golangci/golangci-lint v1.47.2/go.mod h1:lpS2pjBZtRyXewUcOY7yUL3K4KfpoWz072yRN8AuhHg= github.com/golangci/gosec v0.0.0-20180901114220-8afd9cbb6cfb h1:Bi7BYmZVg4C+mKGi8LeohcP2GGUl2XJD4xCkJoZSaYc= github.com/golangci/gosec v0.0.0-20180901114220-8afd9cbb6cfb/go.mod h1:ON/c2UR0VAAv6ZEAFKhjCLplESSmRFfZcDLASbI1GWo= github.com/golangci/misspell v0.3.5 h1:pLzmVdl3VxTOncgzHcvLOKirdvcx/TydsClUQXTehjo= @@ -410,8 +410,9 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.7 h1:81/ik6ipDQS2aGcBfIN5dHDB36BwrStyeAQquSYCV4o= github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-querystring v1.0.0/go.mod h1:odCYkC5MyYFN7vkCjXpyrEuKhc/BUO6wN/zVPAxq5ck= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -821,8 +822,8 @@ github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shirou/gopsutil/v3 v3.21.12/go.mod h1:BToYZVTlSVlfazpDDYFnsVZLaoRG+g8ufT6fPQLdJzA= -github.com/shirou/gopsutil/v3 v3.22.4 h1:srAQaiX6jX/cYL6q29aE0m8lOskT9CurZ9N61YR3yoI= -github.com/shirou/gopsutil/v3 v3.22.4/go.mod h1:D01hZJ4pVHPpCTZ3m3T2+wDF2YAGfd+H4ifUguaQzHM= +github.com/shirou/gopsutil/v3 v3.22.6 h1:FnHOFOh+cYAM0C30P+zysPISzlknLC5Z1G4EAElznfQ= +github.com/shirou/gopsutil/v3 v3.22.6/go.mod h1:EdIubSnZhbAvBS1yJ7Xi+AShB/hxwLHOMz4MCYz7yMs= github.com/shopspring/decimal v0.0.0-20180709203117-cd690d0c9e24/go.mod h1:M+9NzErvs504Cn4c5DxATwIqPbtswREoFCre64PpcG4= github.com/shurcooL/httpfs v0.0.0-20171119174359-809beceb2371/go.mod h1:ZY1cvUeJuFPAdZ/B6v7RHavJWZn2YPVFQ1OSXhCGOkg= github.com/shurcooL/httpfs v0.0.0-20190707220628-8d4bc4ba7749 h1:bUGsEnyNbVPw06Bs80sCeARAlK8lhwqGyi6UT8ymuGk= @@ -852,8 +853,8 @@ github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTd github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q= -github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= +github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -864,6 +865,7 @@ github.com/stathat/consistent v1.0.0 h1:ZFJ1QTRn8npNBKW065raSZ8xfOqhpb8vLOkfp4Cc github.com/stathat/consistent v1.0.0/go.mod h1:uajTPbgSygZBJ+V+0mY7meZ8i0XAcZs7AQ6V121XSxw= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -872,8 +874,9 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.2-0.20220504104629-106ec21d14df h1:rh3VYpfvzXRbJ90ymx1yfhGl/wq8ac2m/cUbao61kwY= -github.com/stretchr/testify v1.7.2-0.20220504104629-106ec21d14df/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.5/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tdakkota/asciicheck v0.1.1 h1:PKzG7JUTUmVspQTDqtkX9eSiLGossXTybutHwTXuO0A= github.com/tdakkota/asciicheck v0.1.1/go.mod h1:yHp0ai0Z9gUljN3o0xMhYJnH/IcvkdTBOX2fmJ93JEM= @@ -1046,10 +1049,11 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200513190911-00229845015e/go.mod h1:4M0jN8W1tt0AVLNr8HDosyJCDCDuyL9N9+3m7wDWgKw= -golang.org/x/exp v0.0.0-20220428152302-39d4317da171 h1:TfdoLivD44QwvssI9Sv1xwa5DcL5XQr4au4sZ2F2NV4= -golang.org/x/exp v0.0.0-20220428152302-39d4317da171/go.mod h1:lgLbSvA5ygNOMpwM/9anMpWVlVJ7Z+cHWq/eFuinpGE= -golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e h1:qyrTQ++p1afMkO4DPEeLGq/3oTsdlvdH4vqZUBWzUKM= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA= +golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA= golang.org/x/exp/typeparams v0.0.0-20220218215828-6cf2b201936e/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= +golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d h1:+W8Qf4iJtMGKkyAygcKohjxTk4JPsL9DpzApJ22m5Ic= +golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1137,8 +1141,8 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220325170049-de3da57026de/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5 h1:bRb386wvrE+oBNdF1d/Xh9mQrfQ4ecYhW5qJ5GvTGT4= -golang.org/x/net v0.0.0-20220412020605-290c469a71a5/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1170,8 +1174,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220513210516-0976fa681c29 h1:w8s32wxx3sY+OjLlv9qltkLU5yvJzxjjgiHWLjdIcw4= -golang.org/x/sync v0.0.0-20220513210516-0976fa681c29/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1261,8 +1265,9 @@ golang.org/x/sys v0.0.0-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220227234510-4e6760a101f9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664 h1:wEZYwx+kK+KlZ0hpvP2Ls1Xr4+RWnlzGFwPP0aiDjIU= -golang.org/x/sys v0.0.0-20220622161953-175b2fd9d664/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10 h1:WIoqL4EROvwiPdUtaip4VcDdpZ4kha7wBWZrbVKCIZg= +golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1352,8 +1357,8 @@ golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.11-0.20220513221640-090b14e8501f/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= -golang.org/x/tools v0.1.11 h1:loJ25fNOEhSXfHrpoGj91eCUThwdNX6u24rO1xnNteY= -golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= +golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1579,8 +1584,9 @@ gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.3.3 h1:oDx7VAwstgpYpb3wv0oxiZlxY+foCpRAwY7Vk6XpAgA= honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= k8s.io/api v0.0.0-20190409021203-6e4e0e4f393b/go.mod h1:iuAfoD4hCxJ8Onx9kaTIt30j7jUFS00AXQi6QMi99vA= diff --git a/infoschema/cache_test.go b/infoschema/cache_test.go index c229df8c8747c..83506bc4794d8 100644 --- a/infoschema/cache_test.go +++ b/infoschema/cache_test.go @@ -93,7 +93,6 @@ func TestInsert(t *testing.T) { require.Nil(t, ic.GetBySnapshotTS(2)) require.Nil(t, ic.GetBySnapshotTS(5)) require.Equal(t, is6, ic.GetBySnapshotTS(10)) - } func TestGetByVersion(t *testing.T) { diff --git a/infoschema/cluster_tables_test.go b/infoschema/cluster_tables_test.go index 551993b2a69d0..5e347480bbb22 100644 --- a/infoschema/cluster_tables_test.go +++ b/infoschema/cluster_tables_test.go @@ -178,7 +178,6 @@ func TestTestDataLockWaits(t *testing.T) { "6B657932 3 4 "+digest2.String()+" ", "6B657933 5 6 ", "6B657934 7 8 ")) - } func SubTestDataLockWaitsPrivilege(t *testing.T) { @@ -215,7 +214,6 @@ func SubTestDataLockWaitsPrivilege(t *testing.T) { Hostname: "localhost", }, nil, nil)) _ = tk.MustQuery("select * from information_schema.DATA_LOCK_WAITS") - } func TestSelectClusterTable(t *testing.T) { diff --git a/infoschema/tables_test.go b/infoschema/tables_test.go index 0a7d8187b867a..549652372bd2f 100644 --- a/infoschema/tables_test.go +++ b/infoschema/tables_test.go @@ -630,7 +630,6 @@ WHERE table_name = 'slow_query' and column_name = '` + columnName + `'`). //check select tk.MustQuery(`select ` + columnName + ` from information_schema.slow_query`).Check(testkit.Rows("1")) - } func TestReloadDropDatabase(t *testing.T) { diff --git a/parser/ast/ddl.go b/parser/ast/ddl.go index 52d489a89cf85..c93d09ae254f2 100644 --- a/parser/ast/ddl.go +++ b/parser/ast/ddl.go @@ -3311,7 +3311,6 @@ func (n *AlterTableStmt) HaveOnlyPlacementOptions() bool { for _, n := range n.Specs { if n.Tp != AlterTablePartitionOptions { return false - } if !n.IsAllPlacementRule() { return false diff --git a/parser/ast/dml.go b/parser/ast/dml.go index 93ee525d30bf5..99a76f2bc4409 100644 --- a/parser/ast/dml.go +++ b/parser/ast/dml.go @@ -542,7 +542,6 @@ func (n *TableSource) Restore(ctx *format.RestoreCtx) error { if err := tn.AsOf.Restore(ctx); err != nil { return errors.Annotate(err, "An error occurred while restore TableSource.AsOf") } - } if err := tn.restoreIndexHints(ctx); err != nil { return errors.Annotate(err, "An error occurred while restore TableSource.Source.(*TableName).IndexHints") @@ -979,7 +978,6 @@ func (s *TableSample) Restore(ctx *format.RestoreCtx) error { ctx.WriteKeyWord(" PERCENT") case SampleClauseUnitTypeRow: ctx.WriteKeyWord(" ROWS") - } ctx.WritePlain(")") if s.RepeatableSeed != nil { @@ -1181,7 +1179,7 @@ func (n *WithClause) Accept(v Visitor) (Node, bool) { // Restore implements Node interface. func (n *SelectStmt) Restore(ctx *format.RestoreCtx) error { if n.WithBeforeBraces { - defer ctx.RestoreCTEFunc()() + defer ctx.RestoreCTEFunc()() //nolint: all_revive err := n.With.Restore(ctx) if err != nil { return err @@ -1194,7 +1192,7 @@ func (n *SelectStmt) Restore(ctx *format.RestoreCtx) error { }() } if !n.WithBeforeBraces && n.With != nil { - defer ctx.RestoreCTEFunc()() + defer ctx.RestoreCTEFunc()() //nolint: all_revive err := n.With.Restore(ctx) if err != nil { return err @@ -1530,7 +1528,7 @@ type SetOprSelectList struct { // Restore implements Node interface. func (n *SetOprSelectList) Restore(ctx *format.RestoreCtx) error { if n.With != nil { - defer ctx.RestoreCTEFunc()() + defer ctx.RestoreCTEFunc()() //nolint: all_revive if err := n.With.Restore(ctx); err != nil { return errors.Annotate(err, "An error occurred while restore SetOprSelectList.With") } @@ -1631,7 +1629,7 @@ func (*SetOprStmt) resultSet() {} // Restore implements Node interface. func (n *SetOprStmt) Restore(ctx *format.RestoreCtx) error { if n.With != nil { - defer ctx.RestoreCTEFunc()() + defer ctx.RestoreCTEFunc()() //nolint: all_revive if err := n.With.Restore(ctx); err != nil { return errors.Annotate(err, "An error occurred while restore UnionStmt.With") } @@ -2213,7 +2211,7 @@ type DeleteStmt struct { // Restore implements Node interface. func (n *DeleteStmt) Restore(ctx *format.RestoreCtx) error { if n.With != nil { - defer ctx.RestoreCTEFunc()() + defer ctx.RestoreCTEFunc()() //nolint: all_revive err := n.With.Restore(ctx) if err != nil { return err @@ -2438,7 +2436,7 @@ type UpdateStmt struct { // Restore implements Node interface. func (n *UpdateStmt) Restore(ctx *format.RestoreCtx) error { if n.With != nil { - defer ctx.RestoreCTEFunc()() + defer ctx.RestoreCTEFunc()() //nolint: all_revive err := n.With.Restore(ctx) if err != nil { return err @@ -3418,7 +3416,6 @@ func (n *SplitRegionStmt) Restore(ctx *format.RestoreCtx) error { } if n.SplitSyntaxOpt.HasPartition { ctx.WriteKeyWord("PARTITION ") - } } ctx.WriteKeyWord("TABLE ") diff --git a/parser/ast/expressions.go b/parser/ast/expressions.go index 66f40eb205952..270c46218af61 100644 --- a/parser/ast/expressions.go +++ b/parser/ast/expressions.go @@ -909,7 +909,6 @@ func (n *PatternLikeExpr) Restore(ctx *format.RestoreCtx) error { if escape != "\\" { ctx.WriteKeyWord(" ESCAPE ") ctx.WriteString(escape) - } return nil } diff --git a/parser/ast/expressions_test.go b/parser/ast/expressions_test.go index 27dd16487d2e9..478db9ce0d78a 100644 --- a/parser/ast/expressions_test.go +++ b/parser/ast/expressions_test.go @@ -353,7 +353,6 @@ func TestPositionExprRestore(t *testing.T) { return node.(*SelectStmt).OrderBy.Items[0] } runNodeRestoreTest(t, testCases, "select * from t order by %s", extractNodeFunc) - } func TestExistsSubqueryExprRestore(t *testing.T) { diff --git a/parser/ast/misc.go b/parser/ast/misc.go index b5e05e99f2bed..1ebbea01334e2 100644 --- a/parser/ast/misc.go +++ b/parser/ast/misc.go @@ -1054,11 +1054,11 @@ func (n *SetConfigStmt) Accept(v Visitor) (Node, bool) { return v.Leave(newNode) } n = newNode.(*SetConfigStmt) - if node, ok := n.Value.Accept(v); !ok { + node, ok := n.Value.Accept(v) + if !ok { return n, false - } else { - n.Value = node.(ExprNode) } + n.Value = node.(ExprNode) return v.Leave(n) } diff --git a/parser/ast/misc_test.go b/parser/ast/misc_test.go index b7a5cac8bee02..2356fdb3beb4c 100644 --- a/parser/ast/misc_test.go +++ b/parser/ast/misc_test.go @@ -338,7 +338,6 @@ func TestBRIESecureText(t *testing.T) { n, ok := node.(ast.SensitiveStmtNode) require.True(t, ok, comment) require.Regexp(t, tc.secured, n.SecureText(), comment) - } } diff --git a/parser/ast/util.go b/parser/ast/util.go index 82f7285728221..6caae36a203bf 100644 --- a/parser/ast/util.go +++ b/parser/ast/util.go @@ -70,8 +70,7 @@ type readOnlyChecker struct { // Enter implements Visitor interface. func (checker *readOnlyChecker) Enter(in Node) (out Node, skipChildren bool) { - switch node := in.(type) { - case *VariableExpr: + if node, ok := in.(*VariableExpr); ok { // like func rewriteVariable(), this stands for SetVar. if !node.IsSystem && node.Value != nil { checker.readOnly = false diff --git a/parser/charset/charset_test.go b/parser/charset/charset_test.go index e09ad6b3c5bba..6de594c68c54d 100644 --- a/parser/charset/charset_test.go +++ b/parser/charset/charset_test.go @@ -84,7 +84,7 @@ func TestGetDefaultCollation(t *testing.T) { if collate.IsDefault { if desc, ok := CharacterSetInfos[collate.CharsetName]; ok { require.Equal(t, desc.DefaultCollation, collate.Name) - charsetNum += 1 + charsetNum++ } } } diff --git a/parser/goyacc/format_yacc.go b/parser/goyacc/format_yacc.go index 7ccff8da30900..ae752b51b9287 100644 --- a/parser/goyacc/format_yacc.go +++ b/parser/goyacc/format_yacc.go @@ -253,17 +253,16 @@ func printSingleName(f format.Formatter, name *parser.Name, maxCharLength int) e if strLit != nil && strLit.Token != nil { _, err := f.Format("%-*s %s\n", maxCharLength, name.Token.Val, strLit.Token.Val) return err - } else { - _, err := f.Format("%s\n", name.Token.Val) - return err } + _, err := f.Format("%s\n", name.Token.Val) + return err } type NameArr []*parser.Name -func (ns NameArr) span(pred func(*parser.Name) bool) (NameArr, NameArr) { - first := ns.takeWhile(pred) - second := ns[len(first):] +func (ns NameArr) span(pred func(*parser.Name) bool) (first NameArr, second NameArr) { + first = ns.takeWhile(pred) + second = ns[len(first):] return first, second } @@ -530,7 +529,7 @@ func (n *NotNilAssert) and(target interface{}) *NotNilAssert { if target == nil { n.err = errors.Errorf("encounter nil, index: %d", n.idx) } - n.idx += 1 + n.idx++ return n } diff --git a/parser/parser_test.go b/parser/parser_test.go index 57550a440a8cf..c2e949405dced 100644 --- a/parser/parser_test.go +++ b/parser/parser_test.go @@ -398,7 +398,6 @@ func RunRestoreTest(t *testing.T, sourceSQLs, expectSQLs string, enableWindowFun restoreSQLs += "; " } restoreSQLs += restoreSQL - } require.Equalf(t, expectSQLs, restoreSQLs, "restore %v; expect %v", restoreSQLs, expectSQLs) } @@ -5891,7 +5890,6 @@ func TestVisitFrameBound(t *testing.T) { require.Equal(t, tbl.exprRc, checker.exprRc) require.Equal(t, tbl.unit, checker.unit) } - } func TestFieldText(t *testing.T) { @@ -6156,7 +6154,7 @@ func (checker *nodeTextCleaner) Enter(in ast.Node) (out ast.Node, skipChildren b col.Tp.SetCollate(strings.ToUpper(col.Tp.GetCollate())) for i, option := range col.Options { - if option.Tp == 0 && option.Expr == nil && option.Stored == false && option.Refer == nil { + if option.Tp == 0 && option.Expr == nil && !option.Stored && option.Refer == nil { col.Options = append(col.Options[:i], col.Options[i+1:]...) } } diff --git a/parser/types/field_type_test.go b/parser/types/field_type_test.go index 6310dbb102bc9..5d458cb38b661 100644 --- a/parser/types/field_type_test.go +++ b/parser/types/field_type_test.go @@ -270,7 +270,6 @@ func TestEnumSetFlen(t *testing.T) { require.NoError(t, err) col := stmt.(*ast.CreateTableStmt).Cols[0] require.Equal(t, ca.ex, col.Tp.GetFlen()) - } } diff --git a/planner/cascades/integration_test.go b/planner/cascades/integration_test.go index 426a4d467fa3b..b41a992f156d7 100644 --- a/planner/cascades/integration_test.go +++ b/planner/cascades/integration_test.go @@ -55,7 +55,7 @@ func TestPKIsHandleRangeScan(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql @@ -85,7 +85,7 @@ func TestIndexScan(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql @@ -129,7 +129,7 @@ func TestSort(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql @@ -161,7 +161,7 @@ func TestAggregation(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql @@ -181,7 +181,7 @@ func TestPushdownDistinctEnable(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) vars := []string{ fmt.Sprintf("set @@session.%s = 1", variable.TiDBOptDistinctAggPushDown), } @@ -196,7 +196,7 @@ func TestPushdownDistinctDisable(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) vars := []string{ fmt.Sprintf("set @@session.%s = 0", variable.TiDBOptDistinctAggPushDown), } @@ -253,7 +253,7 @@ func TestSimplePlans(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql @@ -288,7 +288,7 @@ func TestJoin(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql @@ -319,7 +319,7 @@ func TestApply(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql @@ -345,7 +345,7 @@ func TestMemTableScan(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql @@ -374,7 +374,7 @@ func TestTopN(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql @@ -408,7 +408,7 @@ func TestCascadePlannerHashedPartTable(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql @@ -439,7 +439,7 @@ func TestInlineProjection(t *testing.T) { Result []string } integrationSuiteData := cascades.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { testdata.OnRecord(func() { output[i].SQL = sql diff --git a/planner/cascades/stringer_test.go b/planner/cascades/stringer_test.go index bdc4abb8486b6..2c28c4cf8e52a 100644 --- a/planner/cascades/stringer_test.go +++ b/planner/cascades/stringer_test.go @@ -48,7 +48,7 @@ func TestGroupStringer(t *testing.T) { SQL string Result []string } - stringerSuiteData.GetTestCases(t, &input, &output) + stringerSuiteData.LoadTestCases(t, &input, &output) p := parser.New() ctx := plannercore.MockContext() diff --git a/planner/cascades/transformation_rules_test.go b/planner/cascades/transformation_rules_test.go index cfd25f42c1c38..a57100a253d92 100644 --- a/planner/cascades/transformation_rules_test.go +++ b/planner/cascades/transformation_rules_test.go @@ -80,7 +80,7 @@ func TestAggPushDownGather(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) p := parser.New() ctx := plannercore.MockContext() @@ -150,7 +150,7 @@ func TestPredicatePushDown(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -189,7 +189,7 @@ func TestTopNRules(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -209,7 +209,7 @@ func TestProjectionElimination(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -228,7 +228,7 @@ func TestEliminateMaxMin(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -247,7 +247,7 @@ func TestMergeAggregationProjection(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -273,7 +273,7 @@ func TestMergeAdjacentTopN(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -293,7 +293,7 @@ func TestMergeAdjacentLimit(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -312,7 +312,7 @@ func TestTransformLimitToTableDual(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -331,7 +331,7 @@ func TestPostTransformationRules(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -356,7 +356,7 @@ func TestPushLimitDownTiKVSingleGather(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -378,7 +378,7 @@ func TestEliminateOuterJoin(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -397,7 +397,7 @@ func TestTransformAggregateCaseToSelection(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -419,7 +419,7 @@ func TestTransformAggToProj(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -439,7 +439,7 @@ func TestDecorrelate(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -465,7 +465,7 @@ func TestInjectProj(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } @@ -488,6 +488,6 @@ func TestMergeAdjacentWindow(t *testing.T) { SQL string Result []string } - transformationRulesSuiteData.GetTestCases(t, &input, &output) + transformationRulesSuiteData.LoadTestCases(t, &input, &output) testGroupToString(t, input, output, optimizer) } diff --git a/planner/core/binary_plan_test.go b/planner/core/binary_plan_test.go index 40abb5c62b493..056972f5917a5 100644 --- a/planner/core/binary_plan_test.go +++ b/planner/core/binary_plan_test.go @@ -109,7 +109,7 @@ func TestBinaryPlanInExplainAndSlowLog(t *testing.T) { BinaryPlan *tipb.ExplainData } planSuiteData := core.GetBinaryPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) for i, test := range input { comment := fmt.Sprintf("case:%v sql:%s", i, test) diff --git a/planner/core/cacheable_checker_test.go b/planner/core/cacheable_checker_test.go index d4802db30f183..c945f84d8264e 100644 --- a/planner/core/cacheable_checker_test.go +++ b/planner/core/cacheable_checker_test.go @@ -244,5 +244,4 @@ func TestCacheable(t *testing.T) { }, } require.True(t, core.Cacheable(stmt, is)) - } diff --git a/planner/core/cbo_test.go b/planner/core/cbo_test.go index 2aeeba0e92072..fce856f54c78f 100644 --- a/planner/core/cbo_test.go +++ b/planner/core/cbo_test.go @@ -101,7 +101,7 @@ func TestCBOWithoutAnalyze(t *testing.T) { Plan []string } analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { plan := testKit.MustQuery(sql) testdata.OnRecord(func() { @@ -125,7 +125,7 @@ func TestStraightJoin(t *testing.T) { var input []string var output [][]string analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i] = testdata.ConvertRowsToStrings(testKit.MustQuery(tt).Rows()) @@ -153,7 +153,7 @@ func TestTableDual(t *testing.T) { Plan []string } analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { plan := testKit.MustQuery(sql) testdata.OnRecord(func() { @@ -190,7 +190,7 @@ func TestEstimation(t *testing.T) { Plan []string } analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { plan := testKit.MustQuery(sql) testdata.OnRecord(func() { @@ -243,7 +243,7 @@ func TestIndexRead(t *testing.T) { ctx := testKit.Session() var input, output []string analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { stmts, err := session.Parse(ctx, tt) @@ -274,7 +274,7 @@ func TestEmptyTable(t *testing.T) { testKit.MustExec("analyze table t, t1") var input, output []string analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { ctx := testKit.Session() stmts, err := session.Parse(ctx, tt) @@ -339,7 +339,7 @@ func TestAnalyze(t *testing.T) { var input, output []string analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { ctx := testKit.Session() @@ -392,7 +392,7 @@ func TestOutdatedAnalyze(t *testing.T) { Plan []string } analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testKit.Session().GetSessionVars().SetEnablePseudoForOutdatedStats(tt.EnablePseudoForOutdatedStats) statistics.RatioOfPseudoEstimate.Store(tt.RatioOfPseudoEstimate) @@ -419,7 +419,7 @@ func TestNullCount(t *testing.T) { var input []string var output [][]string analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i := 0; i < 2; i++ { testdata.OnRecord(func() { output[i] = testdata.ConvertRowsToStrings(testKit.MustQuery(input[i]).Rows()) @@ -451,7 +451,7 @@ func TestCorrelatedEstimation(t *testing.T) { output [][]string ) analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { rs := tk.MustQuery(tt) testdata.OnRecord(func() { @@ -483,7 +483,7 @@ func TestInconsistentEstimation(t *testing.T) { Plan []string } analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, sql := range input { plan := tk.MustQuery(sql) testdata.OnRecord(func() { @@ -624,7 +624,7 @@ func TestIssue9562(t *testing.T) { Plan []string } analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, ts := range input { for j, tt := range ts { if j != len(ts)-1 { @@ -689,7 +689,7 @@ func TestLimitCrossEstimation(t *testing.T) { Plan []string } analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, ts := range input { for j, tt := range ts { if j != len(ts)-1 { @@ -726,7 +726,7 @@ func TestLowSelIndexGreedySearch(t *testing.T) { // - index `idx2` runs much faster than `idx4` experimentally; // - estimated row count of IndexLookUp should be 0; analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -762,7 +762,7 @@ func TestTiFlashCostModel(t *testing.T) { var input, output [][]string analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, ts := range input { for j, tt := range ts { if j != len(ts)-1 { @@ -795,7 +795,7 @@ func TestIndexEqualUnknown(t *testing.T) { Plan []string } analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -824,7 +824,7 @@ func TestLimitIndexEstimation(t *testing.T) { } analyzeSuiteData := core.GetAnalyzeSuiteData() - analyzeSuiteData.GetTestCases(t, &input, &output) + analyzeSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt diff --git a/planner/core/enforce_mpp_test.go b/planner/core/enforce_mpp_test.go index 5b39a08bdd8cb..3dc1453fe05c5 100644 --- a/planner/core/enforce_mpp_test.go +++ b/planner/core/enforce_mpp_test.go @@ -120,7 +120,7 @@ func TestEnforceMPP(t *testing.T) { Warn []string } enforceMPPSuiteData := plannercore.GetEnforceMPPSuiteData() - enforceMPPSuiteData.GetTestCases(t, &input, &output) + enforceMPPSuiteData.LoadTestCases(t, &input, &output) filterWarnings := func(originalWarnings []stmtctx.SQLWarn) []stmtctx.SQLWarn { warnings := make([]stmtctx.SQLWarn, 0, 4) for _, warning := range originalWarnings { @@ -169,7 +169,7 @@ func TestEnforceMPPWarning1(t *testing.T) { Warn []string } enforceMPPSuiteData := plannercore.GetEnforceMPPSuiteData() - enforceMPPSuiteData.GetTestCases(t, &input, &output) + enforceMPPSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -253,7 +253,7 @@ func TestEnforceMPPWarning2(t *testing.T) { Warn []string } enforceMPPSuiteData := plannercore.GetEnforceMPPSuiteData() - enforceMPPSuiteData.GetTestCases(t, &input, &output) + enforceMPPSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -305,7 +305,7 @@ func TestEnforceMPPWarning3(t *testing.T) { Warn []string } enforceMPPSuiteData := plannercore.GetEnforceMPPSuiteData() - enforceMPPSuiteData.GetTestCases(t, &input, &output) + enforceMPPSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -368,7 +368,7 @@ func TestEnforceMPPWarning4(t *testing.T) { Warn []string } enforceMPPSuiteData := plannercore.GetEnforceMPPSuiteData() - enforceMPPSuiteData.GetTestCases(t, &input, &output) + enforceMPPSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -422,7 +422,7 @@ func TestMPP2PhaseAggPushDown(t *testing.T) { Warn []string } enforceMPPSuiteData := plannercore.GetEnforceMPPSuiteData() - enforceMPPSuiteData.GetTestCases(t, &input, &output) + enforceMPPSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -474,7 +474,7 @@ func TestMPPSkewedGroupDistinctRewrite(t *testing.T) { Warn []string } enforceMPPSuiteData := plannercore.GetEnforceMPPSuiteData() - enforceMPPSuiteData.GetTestCases(t, &input, &output) + enforceMPPSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt diff --git a/planner/core/exhaust_physical_plans.go b/planner/core/exhaust_physical_plans.go index 4641dfbc49c38..18d8f6d2bd54a 100644 --- a/planner/core/exhaust_physical_plans.go +++ b/planner/core/exhaust_physical_plans.go @@ -1895,7 +1895,6 @@ func (p *LogicalJoin) tryToGetMppHashJoin(prop *property.PhysicalProperty, useBC p.SCtx().GetSessionVars().RaiseWarningWhenMPPEnforced("MPP mode may be blocked because `Cartesian Product` is only supported by broadcast join, check value and documents of variable `tidb_opt_broadcast_cartesian_join`.") return nil } - } if len(p.LeftConditions) != 0 && p.JoinType != LeftOuterJoin { p.SCtx().GetSessionVars().RaiseWarningWhenMPPEnforced("MPP mode may be blocked because there is a join that is not `left join` but has left conditions, which is not supported by mpp now, see github.com/pingcap/tidb/issues/26090 for more information.") diff --git a/planner/core/expression_rewriter.go b/planner/core/expression_rewriter.go index f4e7556f63e26..7a5212ee77007 100644 --- a/planner/core/expression_rewriter.go +++ b/planner/core/expression_rewriter.go @@ -2167,7 +2167,7 @@ func decodeRecordKey(key []byte, tableID int64, tbl table.Table, loc *time.Locat } cols := make(map[int64]*types.FieldType, len(tblInfo.Columns)) for _, col := range tblInfo.Columns { - cols[col.ID] = &col.FieldType + cols[col.ID] = &(col.FieldType) } handleColIDs := make([]int64, 0, len(idxInfo.Columns)) for _, col := range idxInfo.Columns { diff --git a/planner/core/expression_rewriter_test.go b/planner/core/expression_rewriter_test.go index e3d8e0be2bf65..98bf5e0b4e0b8 100644 --- a/planner/core/expression_rewriter_test.go +++ b/planner/core/expression_rewriter_test.go @@ -414,7 +414,7 @@ func TestMultiColInExpression(t *testing.T) { tk.MustExec("set @@tidb_enable_chunk_rpc = on") expressionRewriterSuiteData := plannercore.GetExpressionRewriterSuiteData() - expressionRewriterSuiteData.GetTestCases(t, &input, &output) + expressionRewriterSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -441,7 +441,7 @@ func TestBitFuncsReturnType(t *testing.T) { } expressionRewriterSuiteData := plannercore.GetExpressionRewriterSuiteData() - expressionRewriterSuiteData.GetTestCases(t, &input, &output) + expressionRewriterSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { tk.MustQuery("explain format = 'brief' " + tt).Check(testkit.Rows(output[i].Plan...)) } diff --git a/planner/core/flat_plan_test.go b/planner/core/flat_plan_test.go index 574b230efdb67..4dd13e19090ad 100644 --- a/planner/core/flat_plan_test.go +++ b/planner/core/flat_plan_test.go @@ -76,7 +76,7 @@ func TestFlatPhysicalPlan(t *testing.T) { CTEs [][]*FlatPhysicalOperatorForTest } planSuiteData := core.GetFlatPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) diff --git a/planner/core/indexmerge_test.go b/planner/core/indexmerge_test.go index 28118728b41e7..f109b85aaee18 100644 --- a/planner/core/indexmerge_test.go +++ b/planner/core/indexmerge_test.go @@ -59,7 +59,7 @@ func getIndexMergePathDigest(paths []*util.AccessPath, startIndex int) string { func TestIndexMergePathGeneration(t *testing.T) { var input, output []string - indexMergeSuiteData.GetTestCases(t, &input, &output) + indexMergeSuiteData.LoadTestCases(t, &input, &output) ctx := context.TODO() sctx := MockContext() is := infoschema.MockInfoSchema([]*model.TableInfo{MockSignedTable(), MockView()}) diff --git a/planner/core/integration_partition_test.go b/planner/core/integration_partition_test.go index be088c7023742..880a4809149d9 100644 --- a/planner/core/integration_partition_test.go +++ b/planner/core/integration_partition_test.go @@ -51,7 +51,7 @@ func TestListPartitionPushDown(t *testing.T) { Plan []string } integrationPartitionSuiteData := core.GetIntegrationPartitionSuiteData() - integrationPartitionSuiteData.GetTestCases(t, &input, &output) + integrationPartitionSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -93,7 +93,7 @@ func TestListColVariousTypes(t *testing.T) { Results []string } integrationPartitionSuiteData := core.GetIntegrationPartitionSuiteData() - integrationPartitionSuiteData.GetTestCases(t, &input, &output) + integrationPartitionSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -130,7 +130,7 @@ func TestListPartitionPruning(t *testing.T) { StaticPlan []string } integrationPartitionSuiteData := core.GetIntegrationPartitionSuiteData() - integrationPartitionSuiteData.GetTestCases(t, &input, &output) + integrationPartitionSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -162,7 +162,7 @@ func TestListPartitionFunctions(t *testing.T) { Results []string } integrationPartitionSuiteData := core.GetIntegrationPartitionSuiteData() - integrationPartitionSuiteData.GetTestCases(t, &input, &output) + integrationPartitionSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt diff --git a/planner/core/integration_test.go b/planner/core/integration_test.go index f096ff151123e..e4534dabf78f5 100644 --- a/planner/core/integration_test.go +++ b/planner/core/integration_test.go @@ -184,7 +184,7 @@ func TestPushLimitDownIndexLookUpReader(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -210,7 +210,7 @@ func TestAggColumnPrune(t *testing.T) { Res []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -233,7 +233,7 @@ func TestIsFromUnixtimeNullRejective(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -374,7 +374,7 @@ func TestSimplifyOuterJoinWithCast(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -446,7 +446,7 @@ func TestSelPushDownTiFlash(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -503,7 +503,7 @@ func TestVerboseExplain(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -544,7 +544,7 @@ func TestPushDownToTiFlashWithKeepOrder(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -586,7 +586,7 @@ func TestPushDownToTiFlashWithKeepOrderInFastMode(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -642,7 +642,7 @@ func TestMPPJoin(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -684,7 +684,7 @@ func TestMPPLeftSemiJoin(t *testing.T) { Warn []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -740,7 +740,7 @@ func TestMPPOuterJoinBuildSideForBroadcastJoin(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -787,7 +787,7 @@ func TestMPPOuterJoinBuildSideForShuffleJoinWithFixedBuildSide(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -834,7 +834,7 @@ func TestMPPOuterJoinBuildSideForShuffleJoin(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -897,7 +897,7 @@ func TestMPPShuffledJoin(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -949,7 +949,7 @@ func TestMPPJoinWithCanNotFoundColumnInSchemaColumnsError(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -996,7 +996,7 @@ func TestJoinNotSupportedByTiFlash(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1008,7 +1008,7 @@ func TestJoinNotSupportedByTiFlash(t *testing.T) { tk.MustExec("set @@session.tidb_broadcast_join_threshold_size = 1") tk.MustExec("set @@session.tidb_broadcast_join_threshold_count = 1") - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1058,7 +1058,7 @@ func TestMPPWithHashExchangeUnderNewCollation(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1101,7 +1101,7 @@ func TestMPPWithBroadcastExchangeUnderNewCollation(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1184,7 +1184,7 @@ func TestMPPAvgRewrite(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1301,7 +1301,7 @@ func TestReadFromStorageHint(t *testing.T) { Warn []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1343,7 +1343,7 @@ func TestReadFromStorageHintAndIsolationRead(t *testing.T) { Warn []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { tk.Session().GetSessionVars().StmtCtx.SetWarnings(nil) testdata.OnRecord(func() { @@ -1385,7 +1385,7 @@ func TestIsolationReadTiFlashNotChoosePointGet(t *testing.T) { Result []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1424,7 +1424,7 @@ func TestIsolationReadTiFlashUseIndexHint(t *testing.T) { Warn []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1450,7 +1450,7 @@ func TestIsolationReadDoNotFilterSystemDB(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1480,7 +1480,7 @@ func TestPartitionTableStats(t *testing.T) { Result []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1507,7 +1507,7 @@ func TestPartitionPruningForInExpr(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1592,7 +1592,7 @@ func TestMaxMinEliminate(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1636,7 +1636,7 @@ func TestIndexJoinUniqueCompositeIndex(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1661,7 +1661,7 @@ func TestIndexMerge(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1686,7 +1686,7 @@ func TestIndexMergeHint4CNF(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1758,7 +1758,7 @@ func TestIndexJoinTableRange(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1793,7 +1793,7 @@ func TestSubqueryWithTopN(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1817,7 +1817,7 @@ func TestIndexHintWarning(t *testing.T) { Warnings []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1921,7 +1921,7 @@ func TestApproxPercentile(t *testing.T) { Res []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1963,7 +1963,7 @@ func TestHintWithRequiredProperty(t *testing.T) { Warnings []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -2045,7 +2045,7 @@ func TestHintWithoutTableWarning(t *testing.T) { Warnings []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -2176,7 +2176,7 @@ func TestIndexJoinInnerIndexNDV(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -2222,7 +2222,7 @@ func TestIndexMergeSerial(t *testing.T) { Warnings []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -2468,7 +2468,7 @@ func TestStreamAggProp(t *testing.T) { Res []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -2523,7 +2523,7 @@ func TestOptimizeHintOnPartitionTable(t *testing.T) { Warn []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -2689,7 +2689,7 @@ func TestAccessPathOnClusterIndex(t *testing.T) { Res []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -2734,7 +2734,7 @@ func TestIndexJoinOnClusteredIndex(t *testing.T) { Res []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -3492,7 +3492,7 @@ partition p2 values less than (10))`) Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -3703,7 +3703,7 @@ func TestIssue20710(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -3803,7 +3803,6 @@ func TestOrderByHavingNotInSelect(t *testing.T) { "[planner:1055]Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.t1.v2' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by") tk.MustGetErrMsg("select v2, v1 from (select t1.v1, t2.v2 from ttest t1 join ttest t2) t3 join (select 1, 2) t2 group by v1", "[planner:1055]Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.t3.v2' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by") - } func TestUpdateSetDefault(t *testing.T) { @@ -4079,7 +4078,7 @@ func TestInvalidHint(t *testing.T) { Warnings []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) warning := "show warnings;" for i, tt := range input { testdata.OnRecord(func() { @@ -4138,7 +4137,7 @@ func TestConvertRangeToPoint(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4199,7 +4198,7 @@ func TestIssue22105(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4325,7 +4324,7 @@ func TestPushDownProjectionForTiKV(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4366,7 +4365,7 @@ func TestPushDownProjectionForTiFlashCoprocessor(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4407,7 +4406,7 @@ func TestPushDownProjectionForTiFlash(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4449,7 +4448,7 @@ func TestPushDownSelectionForMPP(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4491,7 +4490,7 @@ func TestPushDownProjectionForMPP(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4519,7 +4518,7 @@ func TestReorderSimplifiedOuterJoins(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4545,7 +4544,7 @@ func TestIssue23887(t *testing.T) { Res []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4626,7 +4625,7 @@ func TestPushDownAggForMPP(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4667,7 +4666,7 @@ func TestMppUnionAll(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4676,7 +4675,6 @@ func TestMppUnionAll(t *testing.T) { res := tk.MustQuery(tt) res.Check(testkit.Rows(output[i].Plan...)) } - } func TestMppJoinDecimal(t *testing.T) { @@ -4715,7 +4713,7 @@ func TestMppJoinDecimal(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4757,7 +4755,7 @@ func TestMppAggTopNWithJoin(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4782,7 +4780,7 @@ func TestLimitIndexLookUpKeepOrder(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4807,7 +4805,7 @@ func TestDecorrelateInnerJoinInSubquery(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -4835,7 +4833,7 @@ func TestDecorrelateLimitInSubquery(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -5008,7 +5006,7 @@ func TestMultiColMaxOneRow(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -5106,7 +5104,7 @@ func TestIssue24095(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -5239,7 +5237,7 @@ func TestSequenceAsDataSource(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -5331,7 +5329,7 @@ func TestMergeContinuousSelections(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -5370,7 +5368,6 @@ func TestSelectIgnoreTemporaryTableInView(t *testing.T) { tk.MustQuery("select * from v3").Check(testkit.Rows("1 2", "3 4")) tk.MustQuery("select * from v4").Check(testkit.Rows("3 4 3 5")) tk.MustQuery("select * from v5").Check(testkit.Rows("1 2", "3 4")) - } // TestIsMatchProp is used to test https://github.com/pingcap/tidb/issues/26017. @@ -5390,7 +5387,7 @@ func TestIsMatchProp(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -5718,7 +5715,7 @@ func TestHeuristicIndexSelection(t *testing.T) { Warnings []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -5748,7 +5745,7 @@ func TestOutputSkylinePruningInfo(t *testing.T) { Warnings []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -5782,7 +5779,7 @@ func TestPreferRangeScanForUnsignedIntHandle(t *testing.T) { Warnings []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -5819,7 +5816,7 @@ func TestIssue27083(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -5959,7 +5956,7 @@ func TestGroupBySetVar(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { res := tk.MustQuery("explain format = 'brief' " + tt) testdata.OnRecord(func() { @@ -6001,7 +5998,7 @@ func TestPushDownGroupConcatToTiFlash(t *testing.T) { Warning []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -6159,7 +6156,7 @@ func TestRejectSortForMPP(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -6202,7 +6199,7 @@ func TestRegardNULLAsPoint(t *testing.T) { Result []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -6327,7 +6324,7 @@ func TestIssue30200(t *testing.T) { Res []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -6367,7 +6364,6 @@ func TestIssue30271(t *testing.T) { tk.MustExec("insert into t values ('b', 'a', '1'), ('b', 'A', '2'), ('c', 'a', '3');") tk.MustExec("set names utf8mb4 collate utf8mb4_general_ci;") tk.MustQuery("select * from t where (a>'a' and b='a') or (b = 'A' and a < 'd') order by a,c;").Check(testkit.Rows("b a 1", "b A 2", "c a 3")) - } func TestIssue30804(t *testing.T) { @@ -6446,7 +6442,7 @@ func TestIndexMergeWithCorrelatedColumns(t *testing.T) { Res []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -6456,7 +6452,6 @@ func TestIndexMergeWithCorrelatedColumns(t *testing.T) { tk.MustQuery("explain format=brief " + tt).Check(testkit.Rows(output[i].Plan...)) tk.MustQuery(tt).Check(testkit.Rows(output[i].Res...)) } - } func TestIssue20510(t *testing.T) { @@ -6660,7 +6655,7 @@ func TestIssue31240(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -6722,7 +6717,7 @@ func TestIssue32632(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -6760,7 +6755,7 @@ func TestTiFlashPartitionTableScan(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -6792,7 +6787,7 @@ func TestTiFlashFineGrainedShuffle(t *testing.T) { Plan []string } integrationSuiteData := core.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt diff --git a/planner/core/logical_plan_builder.go b/planner/core/logical_plan_builder.go index 4ccb19a377535..904470f4f7b61 100644 --- a/planner/core/logical_plan_builder.go +++ b/planner/core/logical_plan_builder.go @@ -4204,6 +4204,7 @@ func (b *PlanBuilder) tryBuildCTE(ctx context.Context, tn *ast.TableName, asName b.outerCTEs = b.outerCTEs[:i] o := b.buildingCTE b.buildingCTE = false + //nolint:all_revive,revive defer func() { b.outerCTEs = append(b.outerCTEs, saveCte...) b.buildingCTE = o diff --git a/planner/core/logical_plan_test.go b/planner/core/logical_plan_test.go index 7b616411b3e2c..085a656dbfdcc 100644 --- a/planner/core/logical_plan_test.go +++ b/planner/core/logical_plan_test.go @@ -81,7 +81,7 @@ func createPlannerSuite() (s *plannerSuite) { func TestPredicatePushDown(t *testing.T) { var input, output []string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() for ith, ca := range input { @@ -142,7 +142,7 @@ func TestJoinPredicatePushDown(t *testing.T) { Right string } ) - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -181,7 +181,7 @@ func TestOuterWherePredicatePushDown(t *testing.T) { Right string } ) - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -226,7 +226,7 @@ func TestSimplifyOuterJoin(t *testing.T) { JoinType string } ) - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -293,7 +293,7 @@ func TestDeriveNotNullConds(t *testing.T) { Right string } ) - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -467,7 +467,7 @@ func TestTablePartition(t *testing.T) { } output []string ) - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -492,7 +492,7 @@ func TestTablePartition(t *testing.T) { func TestSubquery(t *testing.T) { var input, output []string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -518,7 +518,7 @@ func TestSubquery(t *testing.T) { func TestPlanBuilder(t *testing.T) { var input, output []string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -545,7 +545,7 @@ func TestPlanBuilder(t *testing.T) { func TestJoinReOrder(t *testing.T) { var input, output []string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -569,7 +569,7 @@ func TestJoinReOrder(t *testing.T) { func TestEagerAggregation(t *testing.T) { var input []string var output []string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -598,7 +598,7 @@ func TestColumnPruning(t *testing.T) { input []string output []map[int][]string ) - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -623,7 +623,7 @@ func TestSortByItemsPruning(t *testing.T) { input []string output [][]string ) - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) testdata.OnRecord(func() { output = make([][]string, len(input)) }) @@ -966,7 +966,7 @@ func checkUniqueKeys(p LogicalPlan, t *testing.T, ans map[int][][]string, sql st func TestUniqueKeyInfo(t *testing.T) { var input []string var output []map[int][][]string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) testdata.OnRecord(func() { output = make([]map[int][][]string, len(input)) }) @@ -991,7 +991,7 @@ func TestUniqueKeyInfo(t *testing.T) { func TestAggPrune(t *testing.T) { var input, output []string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.Background() @@ -1492,7 +1492,7 @@ func TestUnion(t *testing.T) { Best string Err bool } - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.TODO() for i, tt := range input { @@ -1525,7 +1525,7 @@ func TestUnion(t *testing.T) { func TestTopNPushDown(t *testing.T) { var input, output []string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.TODO() for i, tt := range input { @@ -1601,7 +1601,7 @@ func TestNameResolver(t *testing.T) { func TestOuterJoinEliminator(t *testing.T) { var input, output []string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s := createPlannerSuite() ctx := context.TODO() @@ -1673,7 +1673,7 @@ func TestWindowFunction(t *testing.T) { s.optimizeVars = nil }() var input, output []string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s.doTestWindowFunction(t, input, output) } @@ -1688,7 +1688,7 @@ func TestWindowParallelFunction(t *testing.T) { s.optimizeVars = nil }() var input, output []string - planSuiteUnexportedData.GetTestCases(t, &input, &output) + planSuiteUnexportedData.LoadTestCases(t, &input, &output) s.doTestWindowFunction(t, input, output) } diff --git a/planner/core/optimizer_test.go b/planner/core/optimizer_test.go index dd8a41bbab1f3..6cf80c57fa5ec 100644 --- a/planner/core/optimizer_test.go +++ b/planner/core/optimizer_test.go @@ -69,7 +69,6 @@ func testJoinKeyTypeConvert(t *testing.T, leftType, rightType, retType *types.Fi require.Equal(t, retType.GetFlag(), cType.GetFlag()) require.Equal(t, lConvert, lCon) require.Equal(t, rConvert, rCon) - } func TestMPPJoinKeyTypeConvert(t *testing.T) { diff --git a/planner/core/partition_pruner_test.go b/planner/core/partition_pruner_test.go index 387396f25235c..4549791cf4851 100644 --- a/planner/core/partition_pruner_test.go +++ b/planner/core/partition_pruner_test.go @@ -53,7 +53,7 @@ func TestHashPartitionPruner(t *testing.T) { Result []string } partitionPrunerData := plannercore.GetPartitionPrunerData() - partitionPrunerData.GetTestCases(t, &input, &output) + partitionPrunerData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -304,7 +304,7 @@ func TestListPartitionPruner(t *testing.T) { Plan []string } partitionPrunerData := plannercore.GetPartitionPrunerData() - partitionPrunerData.GetTestCases(t, &input, &output) + partitionPrunerData.LoadTestCases(t, &input, &output) valid := false for i, tt := range input { testdata.OnRecord(func() { @@ -375,7 +375,7 @@ func TestListColumnsPartitionPruner(t *testing.T) { IndexPlan []string } partitionPrunerData := plannercore.GetPartitionPrunerData() - partitionPrunerData.GetTestCases(t, &input, &output) + partitionPrunerData.LoadTestCases(t, &input, &output) valid := false for i, tt := range input { // Test for table without index. @@ -673,7 +673,7 @@ func TestRangePartitionPredicatePruner(t *testing.T) { Result []string } partitionPrunerData := plannercore.GetPartitionPrunerData() - partitionPrunerData.GetTestCases(t, &input, &output) + partitionPrunerData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt diff --git a/planner/core/physical_plan_test.go b/planner/core/physical_plan_test.go index 16885eecc6d6b..9bd6886af0945 100644 --- a/planner/core/physical_plan_test.go +++ b/planner/core/physical_plan_test.go @@ -54,7 +54,7 @@ func TestDAGPlanBuilderSimpleCase(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) for i, tt := range input { @@ -191,7 +191,7 @@ func TestDAGPlanBuilderJoin(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) @@ -229,7 +229,7 @@ func TestDAGPlanBuilderSubquery(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) for i, tt := range input { @@ -260,7 +260,7 @@ func TestDAGPlanTopN(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) for i, tt := range input { @@ -306,7 +306,7 @@ func TestDAGPlanBuilderBasePhysicalPlan(t *testing.T) { Hints string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) for i, tt := range input { @@ -348,7 +348,7 @@ func TestDAGPlanBuilderUnion(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) for i, tt := range input { @@ -420,7 +420,7 @@ func TestDAGPlanBuilderAgg(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) for i, tt := range input { @@ -451,7 +451,7 @@ func TestRefine(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) for i, tt := range input { @@ -484,7 +484,7 @@ func TestAggEliminator(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) for i, tt := range input { @@ -513,7 +513,7 @@ func TestINMJHint(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) store, clean := testkit.CreateMockStore(t) defer clean() tk := testkit.NewTestKit(t, store) @@ -545,7 +545,7 @@ func TestEliminateMaxOneRow(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) store, clean := testkit.CreateMockStore(t) defer clean() tk := testkit.NewTestKit(t, store) @@ -616,7 +616,7 @@ func TestIndexJoinUnionScan(t *testing.T) { Plan []string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) for i, ts := range input { tk.MustExec("begin") @@ -654,7 +654,7 @@ func TestMergeJoinUnionScan(t *testing.T) { Plan []string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) for i, ts := range input { tk.MustExec("begin") @@ -738,7 +738,7 @@ func TestSemiJoinToInner(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) @@ -766,7 +766,7 @@ func TestUnmatchedTableInHint(t *testing.T) { Warning string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) for i, test := range input { @@ -804,7 +804,7 @@ func TestHintScope(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) @@ -840,7 +840,7 @@ func TestJoinHints(t *testing.T) { Hints string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) ctx := context.Background() p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) @@ -902,7 +902,7 @@ func TestAggregationHints(t *testing.T) { Warning string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) ctx := context.Background() p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) @@ -954,7 +954,7 @@ func TestSemiJoinRewriteHints(t *testing.T) { Warning string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) ctx := context.Background() p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) @@ -1019,7 +1019,7 @@ func TestAggToCopHint(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) ctx := context.Background() is := domain.GetDomain(tk.Session()).InfoSchema() @@ -1079,7 +1079,7 @@ func TestLimitToCopHint(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) for i, ts := range input { testdata.OnRecord(func() { @@ -1151,7 +1151,7 @@ func TestCTEMergeHint(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) for i, ts := range input { testdata.OnRecord(func() { @@ -1192,7 +1192,7 @@ func TestPushdownDistinctEnable(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) vars := []string{ fmt.Sprintf("set @@session.%s = 1", variable.TiDBOptDistinctAggPushDown), "set session tidb_opt_agg_push_down = 1", @@ -1211,7 +1211,7 @@ func TestPushdownDistinctDisable(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) vars := []string{ fmt.Sprintf("set @@session.%s = 0", variable.TiDBOptDistinctAggPushDown), "set session tidb_opt_agg_push_down = 1", @@ -1229,7 +1229,7 @@ func TestPushdownDistinctEnableAggPushDownDisable(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) vars := []string{ fmt.Sprintf("set @@session.%s = 1", variable.TiDBOptDistinctAggPushDown), "set session tidb_opt_agg_push_down = 0", @@ -1298,7 +1298,7 @@ func TestGroupConcatOrderby(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) store, clean := testkit.CreateMockStore(t) defer clean() tk := testkit.NewTestKit(t, store) @@ -1389,7 +1389,7 @@ func TestIndexHint(t *testing.T) { Hints string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) ctx := context.Background() p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) @@ -1442,7 +1442,7 @@ func TestIndexMergeHint(t *testing.T) { Hints string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) ctx := context.Background() p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) @@ -1495,7 +1495,7 @@ func TestQueryBlockHint(t *testing.T) { Hints string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) ctx := context.TODO() p := parser.New() is := infoschema.MockInfoSchema([]*model.TableInfo{core.MockSignedTable(), core.MockUnsignedTable()}) @@ -1542,7 +1542,7 @@ func TestInlineProjection(t *testing.T) { } is := domain.GetDomain(tk.Session()).InfoSchema() planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) ctx := context.Background() p := parser.New() @@ -1661,7 +1661,7 @@ func TestIndexJoinHint(t *testing.T) { ctx := context.Background() planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { comment := fmt.Sprintf("case:%v sql: %s", i, tt) stmt, err := p.ParseOneStmt(tt, "", "") @@ -1683,7 +1683,7 @@ func TestDAGPlanBuilderWindow(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) vars := []string{ "set @@session.tidb_window_concurrency = 1", } @@ -1697,7 +1697,7 @@ func TestDAGPlanBuilderWindowParallel(t *testing.T) { Best string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) vars := []string{ "set @@session.tidb_window_concurrency = 4", } @@ -1764,7 +1764,7 @@ func TestNominalSort(t *testing.T) { tk.MustExec("insert into t values(2, 4)") tk.MustExec("insert into t values(3, 5)") planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) for i, ts := range input { testdata.OnRecord(func() { output[i].SQL = ts @@ -1799,7 +1799,7 @@ func TestHintFromDiffDatabase(t *testing.T) { ctx := context.Background() planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { comment := fmt.Sprintf("case:%v sql: %s", i, tt) stmt, err := p.ParseOneStmt(tt, "", "") @@ -1830,7 +1830,7 @@ func TestNthPlanHintWithExplain(t *testing.T) { Plan []string } planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) for i, ts := range input { testdata.OnRecord(func() { output[i].SQL = ts @@ -1856,7 +1856,7 @@ func TestEnumIndex(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) store, clean := testkit.CreateMockStore(t) defer clean() tk := testkit.NewTestKit(t, store) @@ -1886,7 +1886,7 @@ func TestIssue27233(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) store, clean := testkit.CreateMockStore(t) defer clean() tk := testkit.NewTestKit(t, store) @@ -1930,7 +1930,7 @@ func TestSelectionPartialPushDown(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) store, clean := testkit.CreateMockStore(t) defer clean() tk := testkit.NewTestKit(t, store) @@ -1957,7 +1957,7 @@ func TestIssue28316(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) store, clean := testkit.CreateMockStore(t) defer clean() tk := testkit.NewTestKit(t, store) @@ -2002,7 +2002,7 @@ func TestSkewDistinctAgg(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) store, clean := testkit.CreateMockStore(t) defer clean() tk := testkit.NewTestKit(t, store) @@ -2053,7 +2053,7 @@ func TestMPPSinglePartitionType(t *testing.T) { } ) planSuiteData := core.GetPlanSuiteData() - planSuiteData.GetTestCases(t, &input, &output) + planSuiteData.LoadTestCases(t, &input, &output) store, dom, clean := testkit.CreateMockStoreAndDomain(t) defer clean() tk := testkit.NewTestKit(t, store) diff --git a/planner/core/plan_test.go b/planner/core/plan_test.go index 8b3c61f7a2316..8b15febbb6de5 100644 --- a/planner/core/plan_test.go +++ b/planner/core/plan_test.go @@ -68,7 +68,7 @@ func TestPreferRangeScan(t *testing.T) { Plan []string } planNormalizedSuiteData := core.GetPlanNormalizedSuiteData() - planNormalizedSuiteData.GetTestCases(t, &input, &output) + planNormalizedSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { if i == 0 { tk.MustExec("set session tidb_opt_prefer_range_scan=0") @@ -117,7 +117,7 @@ func TestNormalizedPlan(t *testing.T) { Plan []string } planNormalizedSuiteData := core.GetPlanNormalizedSuiteData() - planNormalizedSuiteData.GetTestCases(t, &input, &output) + planNormalizedSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { tk.Session().GetSessionVars().PlanID = 0 tk.MustExec(tt) @@ -163,7 +163,7 @@ func TestNormalizedPlanForDiffStore(t *testing.T) { Plan []string } planNormalizedSuiteData := core.GetPlanNormalizedSuiteData() - planNormalizedSuiteData.GetTestCases(t, &input, &output) + planNormalizedSuiteData.LoadTestCases(t, &input, &output) lastDigest := "" for i, tt := range input { tk.Session().GetSessionVars().PlanID = 0 diff --git a/planner/core/planbuilder.go b/planner/core/planbuilder.go index c82f85a10c2ed..fb6eb9475b033 100644 --- a/planner/core/planbuilder.go +++ b/planner/core/planbuilder.go @@ -1551,7 +1551,6 @@ func (b *PlanBuilder) buildPhysicalIndexLookUpReader(_ context.Context, dbName m ts.schema.Append(commonCols[pkOffset]) ts.HandleIdx = append(ts.HandleIdx, len(ts.Columns)-1) } - } } diff --git a/planner/core/point_get_plan.go b/planner/core/point_get_plan.go index 0fbd9d2866f54..b400144f873bf 100644 --- a/planner/core/point_get_plan.go +++ b/planner/core/point_get_plan.go @@ -740,7 +740,6 @@ func newBatchPointGetPlan( pos2PartitionDefinition[pos] = tmpPartitionDefinition } } - } posArr := make([]int, len(pos2PartitionDefinition)) diff --git a/planner/core/point_get_plan_test.go b/planner/core/point_get_plan_test.go index 508e21004476d..569f15dd9ad0f 100644 --- a/planner/core/point_get_plan_test.go +++ b/planner/core/point_get_plan_test.go @@ -371,7 +371,7 @@ func TestCBOPointGet(t *testing.T) { Res []string } pointGetPlanData := core.GetPointGetPlanData() - pointGetPlanData.GetTestCases(t, &input, &output) + pointGetPlanData.LoadTestCases(t, &input, &output) require.Equal(t, len(input), len(output)) for i, sql := range input { plan := tk.MustQuery("explain format = 'brief' " + sql) @@ -921,7 +921,7 @@ func TestCBOShouldNotUsePointGet(t *testing.T) { } pointGetPlanData := core.GetPointGetPlanData() - pointGetPlanData.GetTestCases(t, &input, &output) + pointGetPlanData.LoadTestCases(t, &input, &output) require.Equal(t, len(input), len(output)) for i, sql := range input { plan := tk.MustQuery("explain format = 'brief' " + sql) diff --git a/planner/core/prepare_test.go b/planner/core/prepare_test.go index 972b6ba3383ab..b0ef84dacf404 100644 --- a/planner/core/prepare_test.go +++ b/planner/core/prepare_test.go @@ -1249,8 +1249,6 @@ func TestPrepareCacheForPartition(t *testing.T) { if pruneMode == string(variable.Dynamic) { // When the temporary disabling of prepared plan cache for dynamic partition prune mode is disabled, change this to 1! tk.MustQuery(`select @@last_plan_from_cache`).Check(testkit.Rows("0")) - } else { - tk.MustQuery(`select @@last_plan_from_cache`).Check(testkit.Rows("0")) } } } @@ -2979,7 +2977,6 @@ func TestConsistencyBetweenPrepareExecuteAndNormalSql(t *testing.T) { // After beginning a new txn, the infoSchema should be the latest tk1.MustExec("begin pessimistic") tk1.MustQuery("select * from t1").Check(testkit.Rows("1", "2", "3")) - } func verifyCache(ctx context.Context, t *testing.T, tk1 *testkit.TestKit, tk2 *testkit.TestKit, stmtID uint32) { diff --git a/planner/core/rule_aggregation_push_down.go b/planner/core/rule_aggregation_push_down.go index b9763f1b572ef..bf3bbf4e81a1e 100644 --- a/planner/core/rule_aggregation_push_down.go +++ b/planner/core/rule_aggregation_push_down.go @@ -509,8 +509,8 @@ func (a *aggregationPushDownSolver) aggPushDown(p LogicalPlan, opt *logicalOptim p = proj } } - // push aggregation across projection } else if proj, ok1 := child.(*LogicalProjection); ok1 { + // push aggregation across projection // TODO: This optimization is not always reasonable. We have not supported pushing projection to kv layer yet, // so we must do this optimization. noSideEffects := true diff --git a/planner/core/rule_join_reorder_test.go b/planner/core/rule_join_reorder_test.go index 55cfe66320e77..8e3ed32fcbcde 100644 --- a/planner/core/rule_join_reorder_test.go +++ b/planner/core/rule_join_reorder_test.go @@ -33,7 +33,7 @@ func runJoinReorderTestData(t *testing.T, tk *testkit.TestKit, name string) { Warning []string } joinReorderSuiteData := plannercore.GetJoinReorderSuiteData() - joinReorderSuiteData.GetTestCasesByName(name, t, &input, &output) + joinReorderSuiteData.LoadTestCasesByName(name, t, &input, &output) require.Equal(t, len(input), len(output)) for i := range input { testdata.OnRecord(func() { diff --git a/planner/core/rule_partition_processor.go b/planner/core/rule_partition_processor.go index 6404873058b64..b3dd100c11bd5 100644 --- a/planner/core/rule_partition_processor.go +++ b/planner/core/rule_partition_processor.go @@ -1216,7 +1216,6 @@ func replaceColumnWithConst(partFn *expression.ScalarFunction, con *expression.C // No 'copy on write' for the expression here, this is a dangerous operation. args[0] = con return partFn - } // opposite turns > to <, >= to <= and so on. @@ -1421,7 +1420,6 @@ func (s *partitionProcessor) checkHintsApplicable(ds *DataSource, partitionSet s } func (s *partitionProcessor) makeUnionAllChildren(ds *DataSource, pi *model.PartitionInfo, or partitionRangeOR, opt *logicalOptimizeOp) (LogicalPlan, error) { - children := make([]LogicalPlan, 0, len(pi.Definitions)) partitionNameSet := make(set.StringSet) usedDefinition := make(map[int64]model.PartitionDefinition) diff --git a/planner/core/rule_predicate_push_down.go b/planner/core/rule_predicate_push_down.go index d013086b2e9b1..0af409cc52246 100644 --- a/planner/core/rule_predicate_push_down.go +++ b/planner/core/rule_predicate_push_down.go @@ -232,7 +232,6 @@ func (p *LogicalJoin) PredicatePushDown(predicates []expression.Expression, opt leftCond = leftPushCond rightCond = append(p.RightConditions, rightPushCond...) p.RightConditions = nil - } leftCond = expression.RemoveDupExprs(p.ctx, leftCond) rightCond = expression.RemoveDupExprs(p.ctx, rightCond) @@ -575,7 +574,6 @@ func DeriveOtherConditions( p *LogicalJoin, leftSchema *expression.Schema, rightSchema *expression.Schema, deriveLeft bool, deriveRight bool) ( leftCond []expression.Expression, rightCond []expression.Expression) { - isOuterSemi := (p.JoinType == LeftOuterSemiJoin) || (p.JoinType == AntiLeftOuterSemiJoin) for _, expr := range p.OtherConditions { if deriveLeft { diff --git a/planner/core/rule_result_reorder_test.go b/planner/core/rule_result_reorder_test.go index 567c1488508d9..7c7ec45d76aea 100644 --- a/planner/core/rule_result_reorder_test.go +++ b/planner/core/rule_result_reorder_test.go @@ -106,7 +106,7 @@ func runTestData(t *testing.T, tk *testkit.TestKit, name string) { Plan []string } statsSuiteData := plannercore.GetOrderedResultModeSuiteData() - statsSuiteData.GetTestCasesByName(name, t, &input, &output) + statsSuiteData.LoadTestCasesByName(name, t, &input, &output) require.Equal(t, len(input), len(output)) for i := range input { testdata.OnRecord(func() { diff --git a/planner/core/stats_test.go b/planner/core/stats_test.go index a7fc3d60fa779..db430dd9311d6 100644 --- a/planner/core/stats_test.go +++ b/planner/core/stats_test.go @@ -50,7 +50,7 @@ func TestGroupNDVs(t *testing.T) { JoinInput string } statsSuiteData := core.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { comment := fmt.Sprintf("case:%v sql: %s", i, tt) stmt, err := p.ParseOneStmt(tt, "", "") @@ -142,7 +142,7 @@ func TestNDVGroupCols(t *testing.T) { Plan []string } statsSuiteData := core.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt diff --git a/planner/core/task.go b/planner/core/task.go index 47d2f2fad5973..67bd81b556d78 100644 --- a/planner/core/task.go +++ b/planner/core/task.go @@ -1603,7 +1603,6 @@ func RemoveUnnecessaryFirstRow( partialGbyItems []expression.Expression, partialSchema *expression.Schema, firstRowFuncMap map[*aggregation.AggFuncDesc]*aggregation.AggFuncDesc) []*aggregation.AggFuncDesc { - partialCursor := 0 newAggFuncs := make([]*aggregation.AggFuncDesc, 0, len(partialAggFuncs)) for _, aggFunc := range partialAggFuncs { diff --git a/planner/core/window_push_down_test.go b/planner/core/window_push_down_test.go index a8ec9c0955d56..5000bf79f312f 100644 --- a/planner/core/window_push_down_test.go +++ b/planner/core/window_push_down_test.go @@ -84,7 +84,7 @@ func TestWindowFunctionDescCanPushDown(t *testing.T) { var input Input var output Output suiteData := plannercore.GetWindowPushDownSuiteData() - suiteData.GetTestCases(t, &input, &output) + suiteData.LoadTestCases(t, &input, &output) testWithData(t, tk, input, output) } @@ -102,7 +102,7 @@ func TestWindowPushDownPlans(t *testing.T) { var input Input var output Output suiteData := plannercore.GetWindowPushDownSuiteData() - suiteData.GetTestCases(t, &input, &output) + suiteData.LoadTestCases(t, &input, &output) testWithData(t, tk, input, output) } @@ -120,7 +120,7 @@ func TestWindowPlanWithOtherOperators(t *testing.T) { var input Input var output Output suiteData := plannercore.GetWindowPushDownSuiteData() - suiteData.GetTestCases(t, &input, &output) + suiteData.LoadTestCases(t, &input, &output) testWithData(t, tk, input, output) } diff --git a/planner/funcdep/fd_graph_test.go b/planner/funcdep/fd_graph_test.go index dbe49fb2d7103..d8029dcc77cb6 100644 --- a/planner/funcdep/fd_graph_test.go +++ b/planner/funcdep/fd_graph_test.go @@ -67,7 +67,6 @@ func TestAddStrictFunctionalDependency(t *testing.T) { fd.AddStrictFunctionalDependency(fe1.from, fe1.to) fd.AddStrictFunctionalDependency(fe3.from, fe3.to) assertF() - // TODO: // test reduce col // test more edges diff --git a/planner/implementation/base_test.go b/planner/implementation/base_test.go index b1b73ed0604c3..1fffd91507c39 100644 --- a/planner/implementation/base_test.go +++ b/planner/implementation/base_test.go @@ -23,7 +23,6 @@ import ( ) func TestBaseImplementation(t *testing.T) { - sctx := plannercore.MockContext() p := plannercore.PhysicalLimit{}.Init(sctx, nil, 0, nil) impl := &baseImpl{plan: p} diff --git a/planner/optimize.go b/planner/optimize.go index 16971fb00b638..b4782d4edb8d1 100644 --- a/planner/optimize.go +++ b/planner/optimize.go @@ -34,7 +34,6 @@ import ( "github.com/pingcap/tidb/parser/ast" "github.com/pingcap/tidb/planner/cascades" "github.com/pingcap/tidb/planner/core" - plannercore "github.com/pingcap/tidb/planner/core" "github.com/pingcap/tidb/privilege" "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/sessionctx/stmtctx" @@ -51,7 +50,7 @@ import ( // IsReadOnly check whether the ast.Node is a read only statement. func IsReadOnly(node ast.Node, vars *variable.SessionVars) bool { if execStmt, isExecStmt := node.(*ast.ExecuteStmt); isExecStmt { - prepareStmt, err := plannercore.GetPreparedStmt(execStmt, vars) + prepareStmt, err := core.GetPreparedStmt(execStmt, vars) if err != nil { logutil.BgLogger().Warn("GetPreparedStmt failed", zap.Error(err)) return false @@ -76,7 +75,7 @@ func matchSQLBinding(sctx sessionctx.Context, stmtNode ast.StmtNode) (bindRecord // Optimize does optimization and creates a Plan. // The node must be prepared first. -func Optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is infoschema.InfoSchema) (plannercore.Plan, types.NameSlice, error) { +func Optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is infoschema.InfoSchema) (core.Plan, types.NameSlice, error) { sessVars := sctx.GetSessionVars() if !sctx.GetSessionVars().InRestrictedSQL && variable.RestrictedReadOnly.Load() || variable.VarTiDBSuperReadOnly.Load() { @@ -114,12 +113,12 @@ func Optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is in txnManger := sessiontxn.GetTxnManager(sctx) if _, isolationReadContainTiKV := sessVars.IsolationReadEngines[kv.TiKV]; isolationReadContainTiKV { - var fp plannercore.Plan - if fpv, ok := sctx.Value(plannercore.PointPlanKey).(plannercore.PointPlanVal); ok { + var fp core.Plan + if fpv, ok := sctx.Value(core.PointPlanKey).(core.PointPlanVal); ok { // point plan is already tried in a multi-statement query. fp = fpv.Plan } else { - fp = plannercore.TryFastPlan(sctx, node) + fp = core.TryFastPlan(sctx, node) } if fp != nil { return fp, fp.OutputNames(), nil @@ -140,13 +139,13 @@ func Optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is in } if ok { // add the extra Limit after matching the bind record - stmtNode = plannercore.TryAddExtraLimit(sctx, stmtNode) + stmtNode = core.TryAddExtraLimit(sctx, stmtNode) node = stmtNode } var ( names types.NameSlice - bestPlan, bestPlanFromBind plannercore.Plan + bestPlan, bestPlanFromBind core.Plan chosenBinding bindinfo.Binding err error ) @@ -216,16 +215,16 @@ func Optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is in if sessVars.EvolvePlanBaselines && bestPlanFromBind != nil && sessVars.SelectLimit == math.MaxUint64 { // do not evolve this query if sql_select_limit is enabled // Check bestPlanFromBind firstly to avoid nil stmtNode. - if _, ok := stmtNode.(*ast.SelectStmt); ok && !bindRecord.Bindings[0].Hint.ContainTableHint(plannercore.HintReadFromStorage) { + if _, ok := stmtNode.(*ast.SelectStmt); ok && !bindRecord.Bindings[0].Hint.ContainTableHint(core.HintReadFromStorage) { sessVars.StmtCtx.StmtHints = originStmtHints defPlan, _, _, err := optimize(ctx, sctx, node, is) if err != nil { // Ignore this evolution task. return bestPlan, names, nil } - defPlanHints := plannercore.GenHintsFromPhysicalPlan(defPlan) + defPlanHints := core.GenHintsFromPhysicalPlan(defPlan) for _, hint := range defPlanHints { - if hint.HintName.String() == plannercore.HintReadFromStorage { + if hint.HintName.String() == core.HintReadFromStorage { return bestPlan, names, nil } } @@ -286,14 +285,14 @@ func allowInReadOnlyMode(sctx sessionctx.Context, node ast.Node) (bool, error) { var planBuilderPool = sync.Pool{ New: func() interface{} { - return plannercore.NewPlanBuilder() + return core.NewPlanBuilder() }, } // optimizeCnt is a global variable only used for test. var optimizeCnt int -func optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is infoschema.InfoSchema) (plannercore.Plan, types.NameSlice, float64, error) { +func optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is infoschema.InfoSchema) (core.Plan, types.NameSlice, float64, error) { failpoint.Inject("checkOptimizeCountOne", func() { optimizeCnt++ if optimizeCnt > 1 { @@ -316,7 +315,7 @@ func optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is in sctx.GetSessionVars().PlanID = rand.Intn(1000) // nolint:gosec }) - builder := planBuilderPool.Get().(*plannercore.PlanBuilder) + builder := planBuilderPool.Get().(*core.PlanBuilder) defer planBuilderPool.Put(builder.ResetForReuse()) builder.Init(sctx, is, hintProcessor) @@ -336,18 +335,18 @@ func optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is in // we need the table information to check privilege, which is collected // into the visitInfo in the logical plan builder. if pm := privilege.GetPrivilegeManager(sctx); pm != nil { - visitInfo := plannercore.VisitInfo4PrivCheck(is, node, builder.GetVisitInfo()) - if err := plannercore.CheckPrivilege(activeRoles, pm, visitInfo); err != nil { + visitInfo := core.VisitInfo4PrivCheck(is, node, builder.GetVisitInfo()) + if err := core.CheckPrivilege(activeRoles, pm, visitInfo); err != nil { return nil, nil, 0, err } } - if err := plannercore.CheckTableLock(sctx, is, builder.GetVisitInfo()); err != nil { + if err := core.CheckTableLock(sctx, is, builder.GetVisitInfo()); err != nil { return nil, nil, 0, err } // Handle the execute statement. - if execPlan, ok := p.(*plannercore.Execute); ok { + if execPlan, ok := p.(*core.Execute); ok { err := execPlan.OptimizePreparedPlan(ctx, sctx, is) return p, p.OutputNames(), 0, err } @@ -355,7 +354,7 @@ func optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is in names := p.OutputNames() // Handle the non-logical plan statement. - logic, isLogicalPlan := p.(plannercore.LogicalPlan) + logic, isLogicalPlan := p.(core.LogicalPlan) if !isLogicalPlan { return p, names, 0, nil } @@ -367,7 +366,7 @@ func optimize(ctx context.Context, sctx sessionctx.Context, node ast.Node, is in } beginOpt := time.Now() - finalPlan, cost, err := plannercore.DoOptimize(ctx, sctx, builder.GetOptFlag(), logic) + finalPlan, cost, err := core.DoOptimize(ctx, sctx, builder.GetOptFlag(), logic) sctx.GetSessionVars().DurationOptimization = time.Since(beginOpt) return finalPlan, names, cost, err } @@ -387,11 +386,11 @@ func ExtractSelectAndNormalizeDigest(stmtNode ast.StmtNode, specifiledDB string) switch x.Stmt.(type) { case *ast.SelectStmt, *ast.DeleteStmt, *ast.UpdateStmt, *ast.InsertStmt: normalizeSQL := parser.Normalize(utilparser.RestoreWithDefaultDB(x.Stmt, specifiledDB, x.Text())) - normalizeSQL = plannercore.EraseLastSemicolonInSQL(normalizeSQL) + normalizeSQL = core.EraseLastSemicolonInSQL(normalizeSQL) hash := parser.DigestNormalized(normalizeSQL) return x.Stmt, normalizeSQL, hash.String(), nil case *ast.SetOprStmt: - plannercore.EraseLastSemicolon(x) + core.EraseLastSemicolon(x) var normalizeExplainSQL string if specifiledDB != "" { normalizeExplainSQL = parser.Normalize(utilparser.RestoreWithDefaultDB(x, specifiledDB, x.Text())) @@ -408,7 +407,7 @@ func ExtractSelectAndNormalizeDigest(stmtNode ast.StmtNode, specifiledDB string) return x.Stmt, normalizeSQL, hash.String(), nil } case *ast.SelectStmt, *ast.SetOprStmt, *ast.DeleteStmt, *ast.UpdateStmt, *ast.InsertStmt: - plannercore.EraseLastSemicolon(x) + core.EraseLastSemicolon(x) // This function is only used to find bind record. // For some SQLs, such as `explain select * from t`, they will be entered here many times, // but some of them do not want to obtain bind record. @@ -520,17 +519,17 @@ func handleStmtHints(hints []*ast.TableOptimizerHint) (stmtHints stmtctx.StmtHin // Not all session variables are permitted for use with SET_VAR sysVar := variable.GetSysVar(setVarHint.VarName) if sysVar == nil { - warns = append(warns, plannercore.ErrUnresolvedHintName.GenWithStackByArgs(setVarHint.VarName, hint.HintName.String())) + warns = append(warns, core.ErrUnresolvedHintName.GenWithStackByArgs(setVarHint.VarName, hint.HintName.String())) continue } if !sysVar.IsHintUpdatable { - warns = append(warns, plannercore.ErrNotHintUpdatable.GenWithStackByArgs(setVarHint.VarName)) + warns = append(warns, core.ErrNotHintUpdatable.GenWithStackByArgs(setVarHint.VarName)) continue } // If several hints with the same variable name appear in the same statement, the first one is applied and the others are ignored with a warning if _, ok := setVars[setVarHint.VarName]; ok { msg := fmt.Sprintf("%s(%s=%s)", hint.HintName.String(), setVarHint.VarName, setVarHint.Value) - warns = append(warns, plannercore.ErrWarnConflictingHint.GenWithStackByArgs(msg)) + warns = append(warns, core.ErrWarnConflictingHint.GenWithStackByArgs(msg)) continue } setVars[setVarHint.VarName] = setVarHint.Value @@ -639,6 +638,6 @@ func handleStmtHints(hints []*ast.TableOptimizerHint) (stmtHints stmtctx.StmtHin } func init() { - plannercore.OptimizeAstNode = Optimize - plannercore.IsReadOnly = IsReadOnly + core.OptimizeAstNode = Optimize + core.IsReadOnly = IsReadOnly } diff --git a/privilege/privileges/cache.go b/privilege/privileges/cache.go index d18a882cdca2c..7c767cf2d40c7 100644 --- a/privilege/privileges/cache.go +++ b/privilege/privileges/cache.go @@ -303,7 +303,7 @@ func (p *MySQLPrivilege) FindAllRole(activeRoles []*auth.RoleIdentity) []*auth.R } } } - head += 1 + head++ } return ret } @@ -1212,7 +1212,6 @@ func (p *MySQLPrivilege) showGrants(user, host string, roles []*auth.RoleIdentit s = fmt.Sprintf(`GRANT %s ON *.* TO '%s'@'%s' WITH GRANT OPTION`, g, user, host) } else { s = fmt.Sprintf(`GRANT %s ON *.* TO '%s'@'%s'`, g, user, host) - } gs = append(gs, s) } diff --git a/privilege/privileges/privileges_test.go b/privilege/privileges/privileges_test.go index 72c0bc2573ab7..086b270fb8ea1 100644 --- a/privilege/privileges/privileges_test.go +++ b/privilege/privileges/privileges_test.go @@ -979,7 +979,6 @@ func TestCheckCertBasedAuth(t *testing.T) { // test old data and broken data require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "r12_old_tidb_user", Hostname: "localhost"}, nil, nil)) require.False(t, tk.Session().Auth(&auth.UserIdentity{Username: "r13_broken_user", Hostname: "localhost"}, nil, nil)) - } func connectionState(issuer, subject pkix.Name, cipher uint16, opt ...func(c *x509.Certificate)) *tls.ConnectionState { @@ -1524,7 +1523,6 @@ func TestTableNotExistNoPermissions(t *testing.T) { // Check it is permission denied, not not found. require.EqualError(t, err2, fmt.Sprintf("[planner:1142]%s command denied to user 'testnotexist'@'localhost' for table 't1'", tt.stmtType)) } - } func TestLoadDataPrivilege(t *testing.T) { @@ -1908,7 +1906,6 @@ func TestSecurityEnhancedModeStatusVars(t *testing.T) { Username: "unostatus", Hostname: "localhost", }, nil, nil) - } func TestSecurityEnhancedLocalBackupRestore(t *testing.T) { @@ -1952,7 +1949,6 @@ func TestSecurityEnhancedLocalBackupRestore(t *testing.T) { _, err = tk.Session().ExecuteInternal(ctx, "RESTORE DATABASE * FROM 'HDFS:///tmp/test';") require.EqualError(t, err, "[planner:8132]Feature 'hdfs storage' is not supported when security enhanced mode is enabled") - } func TestRenameUser(t *testing.T) { @@ -2601,7 +2597,6 @@ func TestPlacementPolicyStmt(t *testing.T) { require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "placement_user", Hostname: "localhost"}, nil, nil)) tk.MustExec(createStmt) tk.MustExec(dropStmt) - } func TestDBNameCaseSensitivityInTableLevel(t *testing.T) { @@ -2779,7 +2774,7 @@ func TestCreateTmpTablesPriv(t *testing.T) { tk.MustGetErrCode(test.sql, test.errcode) } } - + //nolint:revive,all_revive // TODO: issue #29282 to be fixed. //for i, test := range tests { // preparedStmt := fmt.Sprintf("prepare stmt%d from '%s'", i, test.sql) diff --git a/server/conn.go b/server/conn.go index 70e7fdd540645..b0a6445abf0cf 100644 --- a/server/conn.go +++ b/server/conn.go @@ -782,7 +782,6 @@ func (cc *clientConn) handleAuthPlugin(ctx context.Context, resp *handshakeRespo // authSha implements the caching_sha2_password specific part of the protocol. func (cc *clientConn) authSha(ctx context.Context) ([]byte, error) { - const ( ShaCommand = 1 RequestRsaPubKey = 2 // Not supported yet, only TLS is supported as secure channel. @@ -1873,7 +1872,6 @@ func (cc *clientConn) handleQuery(ctx context.Context, sql string) (err error) { var pointPlans []plannercore.Plan if len(stmts) > 1 { - // The client gets to choose if it allows multi-statements, and // probably defaults OFF. This helps prevent against SQL injection attacks // by early terminating the first statement, and then running an entirely diff --git a/server/conn_stmt.go b/server/conn_stmt.go index c59cba37693d3..375efd1532030 100644 --- a/server/conn_stmt.go +++ b/server/conn_stmt.go @@ -115,7 +115,6 @@ func (cc *clientConn) handleStmtPrepare(ctx context.Context, sql string) error { if err := cc.writeEOF(0); err != nil { return err } - } return cc.flush(ctx) } diff --git a/server/conn_test.go b/server/conn_test.go index ad2959588c840..75146c592017d 100644 --- a/server/conn_test.go +++ b/server/conn_test.go @@ -1260,7 +1260,6 @@ func TestAuthPlugin2(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/server/FakeAuthSwitch")) require.Equal(t, respAuthSwitch, []byte(mysql.AuthNativePassword)) require.NoError(t, err) - } func TestAuthTokenPlugin(t *testing.T) { diff --git a/server/http_handler.go b/server/http_handler.go index 6c15a3c6b3ff9..860e4a9cdd300 100644 --- a/server/http_handler.go +++ b/server/http_handler.go @@ -612,7 +612,6 @@ func (t *tikvHandlerTool) getRegionsMeta(regionIDs []uint64) ([]RegionMeta, erro Peers: region.Meta.Peers, RegionEpoch: region.Meta.RegionEpoch, } - } return regions, nil } @@ -1822,7 +1821,7 @@ func (h mvccTxnHandler) handleMvccGetByKey(params map[string]string, values url. } colMap := make(map[int64]*types.FieldType, 3) for _, col := range tb.Meta().Columns { - colMap[col.ID] = &col.FieldType + colMap[col.ID] = &(col.FieldType) } respValue := resp.Value diff --git a/server/server_test.go b/server/server_test.go index 645798c96cfa3..3eb4a2a527708 100644 --- a/server/server_test.go +++ b/server/server_test.go @@ -1873,7 +1873,6 @@ func (cli *testServerClient) runTestStatusAPI(t *testing.T) { func (cli *testServerClient) runFailedTestMultiStatements(t *testing.T) { cli.runTestsOnNewDB(t, nil, "FailedMultiStatements", func(dbt *testkit.DBTestKit) { - // Default is now OFF in new installations. // It is still WARN in upgrade installations (for now) _, err := dbt.GetDB().Exec("SELECT 1; SELECT 1; SELECT 2; SELECT 3;") @@ -1934,7 +1933,6 @@ func (cli *testServerClient) runFailedTestMultiStatements(t *testing.T) { } func (cli *testServerClient) runTestMultiStatements(t *testing.T) { - cli.runTestsOnNewDB(t, func(config *mysql.Config) { config.Params["multiStatements"] = "true" }, "MultiStatements", func(dbt *testkit.DBTestKit) { @@ -2167,7 +2165,6 @@ func (cli *testServerClient) waitUntilServerOnline() { } func (cli *testServerClient) runTestInitConnect(t *testing.T) { - cli.runTests(t, nil, func(dbt *testkit.DBTestKit) { dbt.MustExec(`SET GLOBAL init_connect="insert into test.ts VALUES (NOW());SET @a=1;"`) dbt.MustExec(`CREATE USER init_nonsuper`) @@ -2225,7 +2222,6 @@ func (cli *testServerClient) runTestInitConnect(t *testing.T) { // and not internal SQL statements. Thus, this test is in the server-test suite. func (cli *testServerClient) runTestInfoschemaClientErrors(t *testing.T) { cli.runTestsOnNewDB(t, nil, "clientErrors", func(dbt *testkit.DBTestKit) { - clientErrors := []struct { stmt string incrementWarnings bool @@ -2255,7 +2251,6 @@ func (cli *testServerClient) runTestInfoschemaClientErrors(t *testing.T) { for _, test := range clientErrors { for _, tbl := range sources { - var errors, warnings int rows := dbt.MustQuery("SELECT SUM(error_count), SUM(warning_count) FROM information_schema."+tbl+" WHERE error_number = ? GROUP BY error_number", test.errCode) if rows.Next() { @@ -2290,6 +2285,5 @@ func (cli *testServerClient) runTestInfoschemaClientErrors(t *testing.T) { require.Equalf(t, warnings, newWarnings, "source=information_schema.%s code=%d statement=%s", tbl, test.errCode, test.stmt) } } - }) } diff --git a/server/tidb_test.go b/server/tidb_test.go index 47f5a045a20b1..82a997b6dcd4b 100644 --- a/server/tidb_test.go +++ b/server/tidb_test.go @@ -613,7 +613,6 @@ func TestSocketAndIp(t *testing.T) { cli.checkRows(t, rows, "GRANT USAGE ON *.* TO 'user1'@'localhost'\nGRANT SELECT,INSERT,UPDATE,DELETE ON test.* TO 'user1'@'localhost'") require.NoError(t, rows.Close()) }) - } // TestOnlySocket for server configuration without network interface for mysql clients @@ -769,7 +768,6 @@ func TestOnlySocket(t *testing.T) { cli.checkRows(t, rows, "GRANT USAGE ON *.* TO 'user1'@'localhost'\nGRANT SELECT,INSERT,UPDATE,DELETE ON test.* TO 'user1'@'localhost'") require.NoError(t, rows.Close()) }) - } // generateCert generates a private key and a certificate in PEM format based on parameters. @@ -1185,7 +1183,6 @@ func TestNullFlag(t *testing.T) { } { - rs, err := Execute(ctx, qctx, "select if(1, null, 1) ;") require.NoError(t, err) cols := rs.Columns() @@ -2119,7 +2116,6 @@ func setupForTestTopSQLStatementStats(t *testing.T) (*tidbTestSuite, stmtstats.S err = failpoint.Disable("github.com/pingcap/tidb/store/mockstore/unistore/unistoreRPCClientSendHook") require.NoError(t, err) stmtstats.CloseAggregator() - } return ts, total, tagChecker, collectedNotifyCh, cleanFn } diff --git a/session/clustered_index_test.go b/session/clustered_index_test.go index e04052c1b6c79..4a3f6a66ac6ad 100644 --- a/session/clustered_index_test.go +++ b/session/clustered_index_test.go @@ -85,7 +85,7 @@ func TestClusteredPrefixColumn(t *testing.T) { Res []string } testData := session.GetClusteredIndexSuiteData() - testData.GetTestCases(t, &input, &output) + testData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt diff --git a/session/nontransactional.go b/session/nontransactional.go index 5c7ed5303a78f..ef8adb541203e 100644 --- a/session/nontransactional.go +++ b/session/nontransactional.go @@ -164,7 +164,6 @@ func checkConstraint(stmt *ast.NonTransactionalDeleteStmt, se Session) error { // single-threaded worker. work on the key range [start, end] func splitDeleteWorker(ctx context.Context, jobs []job, stmt *ast.NonTransactionalDeleteStmt, tableName *ast.TableName, se Session, originalCondition ast.ExprNode) ([]string, error) { - // prepare for the construction of statement var shardColumnRefer *ast.ResultField var shardColumnType types.FieldType diff --git a/session/schema_amender.go b/session/schema_amender.go index 13f65571d05bf..b2ad3a4c44cda 100644 --- a/session/schema_amender.go +++ b/session/schema_amender.go @@ -248,7 +248,7 @@ func (a *amendCollector) collectIndexAmendOps(sctx sessionctx.Context, tblAtStar opInfo.schemaAndDecoder = newSchemaAndDecoder(sctx, tblAtStart.Meta()) fieldTypes := make([]*types.FieldType, 0, len(tblAtStart.Meta().Columns)) for _, col := range tblAtStart.Meta().Columns { - fieldTypes = append(fieldTypes, &col.FieldType) + fieldTypes = append(fieldTypes, &(col.FieldType)) } opInfo.chk = chunk.NewChunkWithCapacity(fieldTypes, 4) addNewIndexOp := &amendOperationAddIndex{ diff --git a/session/session_test/session_test.go b/session/session_test/session_test.go index ba6ebf112c6e8..bea9991b59046 100644 --- a/session/session_test/session_test.go +++ b/session/session_test/session_test.go @@ -3654,7 +3654,7 @@ func TestAutocommit(t *testing.T) { tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test") tk1.MustExec("insert into t select 1") - + //nolint:all_revive,revive tk.MustQuery("select * from t").Check(testkit.Rows("1")) tk.MustExec("delete from t") diff --git a/sessionctx/variable/mock_globalaccessor_test.go b/sessionctx/variable/mock_globalaccessor_test.go index 810878aed3b7e..073e6f73b4836 100644 --- a/sessionctx/variable/mock_globalaccessor_test.go +++ b/sessionctx/variable/mock_globalaccessor_test.go @@ -45,5 +45,4 @@ func TestMockAPI(t *testing.T) { require.NoError(t, err) err = mock.SetGlobalSysVarOnly(DefaultAuthPlugin, "mysql_native_password") require.NoError(t, err) - } diff --git a/sessionctx/variable/sysvar.go b/sessionctx/variable/sysvar.go index c66154bc803d4..8acfa65d37138 100644 --- a/sessionctx/variable/sysvar.go +++ b/sessionctx/variable/sysvar.go @@ -1389,8 +1389,7 @@ var defaultSysVars = []*SysVar{ }, SetSession: func(s *SessionVars, val string) error { s.AllowFallbackToTiKV = make(map[kv.StoreType]struct{}) for _, engine := range strings.Split(val, ",") { - switch engine { - case kv.TiFlash.Name(): + if engine == kv.TiFlash.Name() { s.AllowFallbackToTiKV[kv.TiFlash] = struct{}{} } } @@ -1409,11 +1408,9 @@ var defaultSysVars = []*SysVar{ return nil }}, {Scope: ScopeGlobal | ScopeSession, Name: TiDBEnableNoopFuncs, Value: DefTiDBEnableNoopFuncs, Type: TypeEnum, PossibleValues: []string{Off, On, Warn}, Validation: func(vars *SessionVars, normalizedValue string, originalValue string, scope ScopeFlag) (string, error) { - // The behavior is very weird if someone can turn TiDBEnableNoopFuncs OFF, but keep any of the following on: // TxReadOnly, TransactionReadOnly, OfflineMode, SuperReadOnly, serverReadOnly, SQLAutoIsNull // To prevent this strange position, prevent setting to OFF when any of these sysVars are ON of the same scope. - if normalizedValue == Off { for _, potentialIncompatibleSysVar := range []string{TxReadOnly, TransactionReadOnly, OfflineMode, SuperReadOnly, ReadOnly, SQLAutoIsNull} { val, _ := vars.GetSystemVar(potentialIncompatibleSysVar) // session scope diff --git a/sessionctx/variable/sysvar_test.go b/sessionctx/variable/sysvar_test.go index ebf0fd2587624..d397fd04932f9 100644 --- a/sessionctx/variable/sysvar_test.go +++ b/sessionctx/variable/sysvar_test.go @@ -394,7 +394,6 @@ func TestTimeZone(t *testing.T) { tz, err := parseTimeZone("UTC") require.NoError(t, err) require.Equal(t, tz, vars.TimeZone) - } func TestForeignKeyChecks(t *testing.T) { @@ -407,7 +406,6 @@ func TestForeignKeyChecks(t *testing.T) { warn := vars.StmtCtx.GetWarnings()[0].Err require.Equal(t, "[variable:8047]variable 'foreign_key_checks' does not yet support value: on", warn.Error()) - } func TestTxnIsolation(t *testing.T) { diff --git a/sessionctx/variable/variable.go b/sessionctx/variable/variable.go index 0266255c1e857..c62c5e02fadac 100644 --- a/sessionctx/variable/variable.go +++ b/sessionctx/variable/variable.go @@ -519,8 +519,7 @@ func (sv *SysVar) SkipInit() bool { } // These a special "Global-only" sysvars that for backward compatibility // are currently cached in the session. Please don't add to this list. - switch sv.Name { - case TiDBRowFormatVersion: + if sv.Name == TiDBRowFormatVersion { return false } return !sv.HasSessionScope() diff --git a/sessionctx/variable/varsutil_test.go b/sessionctx/variable/varsutil_test.go index 15d16a5ca4295..e7cac6d952841 100644 --- a/sessionctx/variable/varsutil_test.go +++ b/sessionctx/variable/varsutil_test.go @@ -581,7 +581,6 @@ func TestValidate(t *testing.T) { } }) } - } func TestValidateStmtSummary(t *testing.T) { @@ -664,7 +663,6 @@ func TestConcurrencyVariables(t *testing.T) { require.Equal(t, wdConcurrency, vars.WindowConcurrency()) require.Equal(t, mjConcurrency, vars.MergeJoinConcurrency()) require.Equal(t, saConcurrency, vars.StreamAggConcurrency()) - } func TestHelperFuncs(t *testing.T) { diff --git a/sessiontxn/failpoint.go b/sessiontxn/failpoint.go index da63ac753870f..35b71d075a051 100644 --- a/sessiontxn/failpoint.go +++ b/sessiontxn/failpoint.go @@ -122,7 +122,7 @@ func TsoRequestCountInc(sctx sessionctx.Context) { if !ok { count = 0 } - count += 1 + count++ sctx.SetValue(TsoRequestCount, count) } diff --git a/sessiontxn/isolation/repeatable_read.go b/sessiontxn/isolation/repeatable_read.go index a70f882758951..538a66f398b4e 100644 --- a/sessiontxn/isolation/repeatable_read.go +++ b/sessiontxn/isolation/repeatable_read.go @@ -241,8 +241,12 @@ func (p *PessimisticRRTxnContextProvider) handleAfterPessimisticLockError(lockEr zap.Uint64("lockTS", deadlock.LockTs), zap.Stringer("lockKey", kv.Key(deadlock.LockKey)), zap.Uint64("deadlockKeyHash", deadlock.DeadlockKeyHash)) - } else if terror.ErrorEqual(kv.ErrWriteConflict, lockErr) { + // Always update forUpdateTS by getting a new timestamp from PD. + // If we use the conflict commitTS as the new forUpdateTS and async commit + // is used, the commitTS of this transaction may exceed the max timestamp + // that PD allocates. Then, the change may be invisible to a new transaction, + // which means linearizability is broken. errStr := lockErr.Error() forUpdateTS := txnCtx.GetForUpdateTS() @@ -250,11 +254,6 @@ func (p *PessimisticRRTxnContextProvider) handleAfterPessimisticLockError(lockEr zap.Uint64("txn", txnCtx.StartTS), zap.Uint64("forUpdateTS", forUpdateTS), zap.String("err", errStr)) - // Always update forUpdateTS by getting a new timestamp from PD. - // If we use the conflict commitTS as the new forUpdateTS and async commit - // is used, the commitTS of this transaction may exceed the max timestamp - // that PD allocates. Then, the change may be invisible to a new transaction, - // which means linearizability is broken. } else { // This branch: if err is not nil, always update forUpdateTS to avoid problem described below. // For nowait, when ErrLock happened, ErrLockAcquireFailAndNoWaitSet will be returned, and in the same txn diff --git a/sessiontxn/txn_context_test.go b/sessiontxn/txn_context_test.go index e47211ab34fa1..fee1ddcc4b51d 100644 --- a/sessiontxn/txn_context_test.go +++ b/sessiontxn/txn_context_test.go @@ -940,7 +940,6 @@ func TestTSOCmdCountForPrepareExecute(t *testing.T) { } count := sctx.Value(sessiontxn.TsoRequestCount) require.Equal(t, uint64(99), count) - } func TestTSOCmdCountForTextSql(t *testing.T) { diff --git a/statistics/builder.go b/statistics/builder.go index 1cc821de0b962..f8ada420edc0a 100644 --- a/statistics/builder.go +++ b/statistics/builder.go @@ -308,7 +308,7 @@ func BuildHistAndTopN( } // case 1, this value is equal to the last one: current count++ if bytes.Equal(cur, sampleBytes) { - curCnt += 1 + curCnt++ continue } // case 2, meet a different value: counting for the "current" is complete diff --git a/statistics/column.go b/statistics/column.go index 6b897d5e5655b..2976329faa277 100644 --- a/statistics/column.go +++ b/statistics/column.go @@ -221,7 +221,7 @@ func (c *Column) GetColumnRowCount(sctx sessionctx.Context, ranges []*ranger.Ran if !rg.LowExclude && !rg.HighExclude { // In this case, the row count is at most 1. if pkIsHandle { - rowCount += 1 + rowCount++ continue } var cnt float64 diff --git a/statistics/feedback.go b/statistics/feedback.go index daf771d0f89a4..064b3d676a9e4 100644 --- a/statistics/feedback.go +++ b/statistics/feedback.go @@ -799,8 +799,8 @@ func UpdateHistogramWithBucketCount(h *Histogram, feedback *QueryFeedback, stats // Update the NDV of primary key column. if feedback.Tp == PkType { hist.NDV = int64(hist.TotalRowCount()) - // If we maintained the NDV of bucket. We can also update the total ndv. } else if feedback.Tp == IndexType && statsVer == 2 { + // If we maintained the NDV of bucket. We can also update the total ndv. totNdv := int64(0) for _, bkt := range buckets { totNdv += bkt.Ndv diff --git a/statistics/handle/handle.go b/statistics/handle/handle.go index 2f4d313446f24..e6e9a1cfb6799 100644 --- a/statistics/handle/handle.go +++ b/statistics/handle/handle.go @@ -274,11 +274,11 @@ func (c *statsHealthyChange) update(add bool, statsHealthy int64) { } lastIDX := len(c.bucketDelta) - 1 if add { - c.bucketDelta[idx] += 1 - c.bucketDelta[lastIDX] += 1 + c.bucketDelta[idx]++ + c.bucketDelta[lastIDX]++ } else { - c.bucketDelta[idx] -= 1 - c.bucketDelta[lastIDX] -= 1 + c.bucketDelta[idx]-- + c.bucketDelta[lastIDX]-- } } diff --git a/statistics/handle/handle_hist.go b/statistics/handle/handle_hist.go index a8f388d08ec69..44423794fbbfa 100644 --- a/statistics/handle/handle_hist.go +++ b/statistics/handle/handle_hist.go @@ -233,7 +233,7 @@ func (h *Handle) handleOneItemTask(task *NeededItemTask, readerCtx *StatsReaderC return nil, nil } // refresh statsReader to get latest stats - h.getFreshStatsReader(readerCtx, ctx) + h.loadFreshStatsReader(readerCtx, ctx) t := time.Now() needUpdate := false wrapper, err = h.readStatsForOneItem(item, wrapper, readerCtx.reader) @@ -257,7 +257,7 @@ func (h *Handle) handleOneItemTask(task *NeededItemTask, readerCtx *StatsReaderC return nil, nil } -func (h *Handle) getFreshStatsReader(readerCtx *StatsReaderContext, ctx sqlexec.RestrictedSQLExecutor) { +func (h *Handle) loadFreshStatsReader(readerCtx *StatsReaderContext, ctx sqlexec.RestrictedSQLExecutor) { if readerCtx.reader == nil || readerCtx.createdTime.Add(h.Lease()).Before(time.Now()) { if readerCtx.reader != nil { err := h.releaseStatsReader(readerCtx.reader, ctx) diff --git a/statistics/handle/handle_test.go b/statistics/handle/handle_test.go index a461a23b751d6..884eada2107f6 100644 --- a/statistics/handle/handle_test.go +++ b/statistics/handle/handle_test.go @@ -3234,73 +3234,75 @@ func TestColumnCountFromStorage(t *testing.T) { func TestIncrementalModifyCountUpdate(t *testing.T) { for _, analyzeSnapshot := range []bool{true, false} { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() - tk := testkit.NewTestKit(t, store) - tk.MustExec("use test") - if analyzeSnapshot { - tk.MustExec("set @@session.tidb_enable_analyze_snapshot = on") - } else { - tk.MustExec("set @@session.tidb_enable_analyze_snapshot = off") - } - tk.MustExec("create table t(a int)") - tk.MustExec("set @@session.tidb_analyze_version = 2") - h := dom.StatsHandle() - err := h.HandleDDLEvent(<-h.DDLEventCh()) - require.NoError(t, err) - tbl, err := dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t")) - require.NoError(t, err) - tblInfo := tbl.Meta() - tid := tblInfo.ID + func(analyzeSnapshot bool) { + store, dom, clean := testkit.CreateMockStoreAndDomain(t) + defer clean() + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + if analyzeSnapshot { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = on") + } else { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = off") + } + tk.MustExec("create table t(a int)") + tk.MustExec("set @@session.tidb_analyze_version = 2") + h := dom.StatsHandle() + err := h.HandleDDLEvent(<-h.DDLEventCh()) + require.NoError(t, err) + tbl, err := dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t")) + require.NoError(t, err) + tblInfo := tbl.Meta() + tid := tblInfo.ID - tk.MustExec("insert into t values(1),(2),(3)") - require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) - err = h.Update(dom.InfoSchema()) - require.NoError(t, err) - tk.MustExec("analyze table t") - tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( - "3 0", - )) + tk.MustExec("insert into t values(1),(2),(3)") + require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) + err = h.Update(dom.InfoSchema()) + require.NoError(t, err) + tk.MustExec("analyze table t") + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "3 0", + )) - tk.MustExec("begin") - txn, err := tk.Session().Txn(false) - require.NoError(t, err) - startTS := txn.StartTS() - tk.MustExec("commit") + tk.MustExec("begin") + txn, err := tk.Session().Txn(false) + require.NoError(t, err) + startTS := txn.StartTS() + tk.MustExec("commit") - tk.MustExec("insert into t values(4),(5),(6)") - require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) - err = h.Update(dom.InfoSchema()) - require.NoError(t, err) + tk.MustExec("insert into t values(4),(5),(6)") + require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) + err = h.Update(dom.InfoSchema()) + require.NoError(t, err) - // Simulate that the analyze would start before and finish after the second insert. - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS))) - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseCount", "return(3)")) - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseModifyCount", "return(0)")) - tk.MustExec("analyze table t") - if analyzeSnapshot { - // Check the count / modify_count changes during the analyze are not lost. - tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( - "6 3", - )) - // Check the histogram is correct for the snapshot analyze. - tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( - "3", - )) - } else { - // Since analyze use max ts to read data, it finds the row count is 6 and directly set count to 6 rather than incrementally update it. - // But it still incrementally updates modify_count. - tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( - "6 3", - )) - // Check the histogram is collected from the latest data rather than the snapshot at startTS. - tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( - "6", - )) - } - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseCount")) - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseModifyCount")) + // Simulate that the analyze would start before and finish after the second insert. + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS))) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseCount", "return(3)")) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseModifyCount", "return(0)")) + tk.MustExec("analyze table t") + if analyzeSnapshot { + // Check the count / modify_count changes during the analyze are not lost. + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "6 3", + )) + // Check the histogram is correct for the snapshot analyze. + tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( + "3", + )) + } else { + // Since analyze use max ts to read data, it finds the row count is 6 and directly set count to 6 rather than incrementally update it. + // But it still incrementally updates modify_count. + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "6 3", + )) + // Check the histogram is collected from the latest data rather than the snapshot at startTS. + tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( + "6", + )) + } + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseCount")) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseModifyCount")) + }(analyzeSnapshot) } } diff --git a/statistics/index.go b/statistics/index.go index fcb8b5439d04a..6b8a88501c30e 100644 --- a/statistics/index.go +++ b/statistics/index.go @@ -239,7 +239,7 @@ func (idx *Index) GetRowCount(sctx sessionctx.Context, coll *HistColl, indexRang if fullLen { // At most 1 in this case. if idx.Info.Unique { - totalCount += 1 + totalCount++ continue } count := idx.equalRowCount(lb, realtimeRowCount) diff --git a/statistics/integration_test.go b/statistics/integration_test.go index a0656f69a9cfc..2a37f27fc146b 100644 --- a/statistics/integration_test.go +++ b/statistics/integration_test.go @@ -281,7 +281,7 @@ func TestExpBackoffEstimation(t *testing.T) { output [][]string ) integrationSuiteData := statistics.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) inputLen := len(input) // The test cases are: // Query a = 1, b = 1, c = 1, d >= 3 and d <= 5 separately. We got 5, 3, 2, 3. @@ -424,7 +424,7 @@ func TestNULLOnFullSampling(t *testing.T) { require.Equal(t, int64(3), col.NullCount) } integrationSuiteData := statistics.GetIntegrationSuiteData() - integrationSuiteData.GetTestCases(t, &input, &output) + integrationSuiteData.LoadTestCases(t, &input, &output) // Check the topn and buckets contains no null values. for i := 0; i < len(input); i++ { testdata.OnRecord(func() { diff --git a/statistics/selectivity_test.go b/statistics/selectivity_test.go index 3d773eb0b51c7..02ed35c6f031c 100644 --- a/statistics/selectivity_test.go +++ b/statistics/selectivity_test.go @@ -65,7 +65,7 @@ func TestCollationColumnEstimate(t *testing.T) { output [][]string ) statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i := 0; i < len(input); i++ { testdata.OnRecord(func() { output[i] = testdata.ConvertRowsToStrings(tk.MustQuery(input[i]).Rows()) @@ -147,7 +147,7 @@ func TestOutOfRangeEstimation(t *testing.T) { Count float64 } statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) increasedTblRowCount := int64(float64(statsTbl.Count) * 1.5) for i, ran := range input { count, err = col.GetColumnRowCount(sctx, getRange(ran.Start, ran.End), increasedTblRowCount, false) @@ -283,7 +283,7 @@ func TestPrimaryKeySelectivity(t *testing.T) { testKit.MustExec("create table t(a char(10) primary key, b int)") var input, output [][]string statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i, ts := range input { for j, tt := range ts { if j != len(ts)-1 { @@ -360,7 +360,7 @@ func TestStatsVer2(t *testing.T) { output [][]string ) statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i := range input { testdata.OnRecord(func() { output[i] = testdata.ConvertRowsToStrings(testKit.MustQuery(input[i]).Rows()) @@ -398,7 +398,7 @@ func TestTopNOutOfHist(t *testing.T) { output [][]string ) statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i := range input { testdata.OnRecord(func() { output[i] = testdata.ConvertRowsToStrings(testKit.MustQuery(input[i]).Rows()) @@ -423,7 +423,7 @@ func TestColumnIndexNullEstimation(t *testing.T) { output [][]string ) statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i := 0; i < 5; i++ { testdata.OnRecord(func() { output[i] = testdata.ConvertRowsToStrings(testKit.MustQuery(input[i]).Rows()) @@ -458,7 +458,7 @@ func TestUniqCompEqualEst(t *testing.T) { output [][]string ) statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i := 0; i < 1; i++ { testdata.OnRecord(func() { output[i] = testdata.ConvertRowsToStrings(testKit.MustQuery(input[i]).Rows()) @@ -581,7 +581,7 @@ func TestDiscreteDistribution(t *testing.T) { ) statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { @@ -606,7 +606,7 @@ func TestSelectCombinedLowBound(t *testing.T) { ) statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { @@ -645,7 +645,7 @@ func TestDNFCondSelectivity(t *testing.T) { } ) statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { sctx := testKit.Session().(sessionctx.Context) stmts, err := session.Parse(sctx, tt) @@ -762,7 +762,7 @@ func TestSmallRangeEstimation(t *testing.T) { Count float64 } statsSuiteData := statistics.GetStatsSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) for i, ran := range input { count, err := col.GetColumnRowCount(sctx, getRange(ran.Start, ran.End), statsTbl.Count, false) require.NoError(t, err) @@ -913,7 +913,7 @@ func TestDefaultSelectivityForStrMatch(t *testing.T) { ) statsSuiteData := statistics.GetIntegrationSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) matchExplain, err := regexp.Compile("^explain") require.NoError(t, err) @@ -942,7 +942,7 @@ func TestTopNAssistedEstimationWithoutNewCollation(t *testing.T) { output []outputType ) statsSuiteData := statistics.GetIntegrationSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) testTopNAssistedEstimationInner(t, input, output, store, dom) } @@ -955,7 +955,7 @@ func TestTopNAssistedEstimationWithNewCollation(t *testing.T) { output []outputType ) statsSuiteData := statistics.GetIntegrationSuiteData() - statsSuiteData.GetTestCases(t, &input, &output) + statsSuiteData.LoadTestCases(t, &input, &output) testTopNAssistedEstimationInner(t, input, output, store, dom) } diff --git a/statistics/trace_test.go b/statistics/trace_test.go index 0d27b09811e5b..f9dc92d00ab1f 100644 --- a/statistics/trace_test.go +++ b/statistics/trace_test.go @@ -52,7 +52,7 @@ func TestTraceCE(t *testing.T) { } ) traceSuiteData := statistics.GetTraceSuiteData() - traceSuiteData.GetTestCases(t, &in, &out) + traceSuiteData.LoadTestCases(t, &in, &out) // Load needed statistics. for _, tt := range in { diff --git a/store/copr/batch_coprocessor.go b/store/copr/batch_coprocessor.go index 859011771106c..7cf36d958ab59 100644 --- a/store/copr/batch_coprocessor.go +++ b/store/copr/batch_coprocessor.go @@ -406,7 +406,7 @@ func balanceBatchCopTask(ctx context.Context, kvStore *kvStore, originalTasks [] // if more than one store is valid, put the region // to store candidate map totalRegionCandidateNum += validStoreNum - totalRemainingRegionNum += 1 + totalRemainingRegionNum++ candidateRegionInfos = append(candidateRegionInfos, ri) taskKey := ri.Region.String() for _, storeID := range ri.AllStores { diff --git a/store/copr/batch_coprocessor_test.go b/store/copr/batch_coprocessor_test.go index 95c619e3c1b0e..aafa19071a392 100644 --- a/store/copr/batch_coprocessor_test.go +++ b/store/copr/batch_coprocessor_test.go @@ -129,7 +129,6 @@ func TestBalanceBatchCopTaskWithEmptyTaskSet(t *testing.T) { require.True(t, emptyResult != nil) require.True(t, len(emptyResult) == 0) } - } func TestDeepCopyStoreTaskMap(t *testing.T) { diff --git a/store/copr/coprocessor_cache.go b/store/copr/coprocessor_cache.go index 2ee1ccffe2547..baa8cec328ca3 100644 --- a/store/copr/coprocessor_cache.go +++ b/store/copr/coprocessor_cache.go @@ -113,7 +113,7 @@ func coprCacheBuildKey(copReq *coprocessor.Request) ([]byte, error) { totalLength += 2 + len(r.Start) + 2 + len(r.End) } if copReq.PagingSize > 0 { - totalLength += 1 + totalLength++ } key := make([]byte, totalLength) diff --git a/store/driver/txn/error.go b/store/driver/txn/error.go index 86c8f0262a322..3f3a769180945 100644 --- a/store/driver/txn/error.go +++ b/store/driver/txn/error.go @@ -72,7 +72,7 @@ func extractKeyExistsErrFromHandle(key kv.Key, value []byte, tblInfo *model.Tabl cols := make(map[int64]*types.FieldType, len(tblInfo.Columns)) for _, col := range tblInfo.Columns { - cols[col.ID] = &col.FieldType + cols[col.ID] = &(col.FieldType) } handleColIDs := make([]int64, 0, len(idxInfo.Columns)) for _, col := range idxInfo.Columns { diff --git a/store/gcworker/gc_worker.go b/store/gcworker/gc_worker.go index a92858befc8fc..92c3b535ba5d3 100644 --- a/store/gcworker/gc_worker.go +++ b/store/gcworker/gc_worker.go @@ -1350,10 +1350,10 @@ func (w *GCWorker) resolveLocksPhysical(ctx context.Context, safePoint uint64) e delete(stores, store) } // The store is checked and has been resolved before. + // If the store is checked and not resolved, we can retry to resolve it again, so leave it in dirtyStores. if _, ok := dirtyStores[store]; !ok { delete(stores, store) } - // If the store is checked and not resolved, we can retry to resolve it again, so leave it in dirtyStores. } else if _, ok := registeredStores[store]; ok { // The store has been registered and it's dirty due to too many collected locks. Fall back to legacy mode. // We can't remove the lock observer from the store and retry the whole procedure because if the store diff --git a/store/gcworker/gc_worker_test.go b/store/gcworker/gc_worker_test.go index c453545a4362b..4460bcce4048c 100644 --- a/store/gcworker/gc_worker_test.go +++ b/store/gcworker/gc_worker_test.go @@ -1448,7 +1448,7 @@ func TestMergeLockScanner(t *testing.T) { for _, useMock := range []bool{false, true} { channel := makeMergedChannel - if useMock == true { + if useMock { channel = s.makeMergedMockClient } diff --git a/store/helper/helper_test.go b/store/helper/helper_test.go index acd9bac0e5290..4174735058ac4 100644 --- a/store/helper/helper_test.go +++ b/store/helper/helper_test.go @@ -202,7 +202,6 @@ func mockHotRegionResponse(w http.ResponseWriter, _ *http.Request) { if err != nil { log.Panic("write http response failed", zap.Error(err)) } - } func getMockRegionsTableInfoSchema() []*model.DBInfo { diff --git a/store/mockstore/unistore/cophandler/cop_handler_test.go b/store/mockstore/unistore/cophandler/cop_handler_test.go index 127b233b98a82..0dc25790e3a44 100644 --- a/store/mockstore/unistore/cophandler/cop_handler_test.go +++ b/store/mockstore/unistore/cophandler/cop_handler_test.go @@ -553,7 +553,6 @@ func createTestDB(dbPath, LogPath string) (*badger.DB, error) { } func BenchmarkExecutors(b *testing.B) { - prepare := func(rows, limit int) (dagReq *tipb.DAGRequest, dagCtx *dagContext, clean func() error) { data, err := prepareTestTableData(rows, tableID) if err != nil { diff --git a/store/mockstore/unistore/cophandler/mpp_exec.go b/store/mockstore/unistore/cophandler/mpp_exec.go index 3e164da24d458..d0d0a71d5b85a 100644 --- a/store/mockstore/unistore/cophandler/mpp_exec.go +++ b/store/mockstore/unistore/cophandler/mpp_exec.go @@ -360,7 +360,7 @@ func (e *indexScanExec) open() error { func (e *indexScanExec) next() (*chunk.Chunk, error) { if e.chkIdx < len(e.chunks) { - e.chkIdx += 1 + e.chkIdx++ e.execSummary.updateOnlyRows(e.chunks[e.chkIdx-1].NumRows()) if e.paging != nil { if e.desc { diff --git a/store/mockstore/unistore/tikv/detector.go b/store/mockstore/unistore/tikv/detector.go index a804ec4bfe27a..bbff15e42034b 100644 --- a/store/mockstore/unistore/tikv/detector.go +++ b/store/mockstore/unistore/tikv/detector.go @@ -203,7 +203,6 @@ func (d *Detector) CleanUpWaitFor(txn, waitForTxn, keyHash uint64) { } } d.lock.Unlock() - } // activeExpire removes expired entries, should be called under d.lock protection diff --git a/table/tables/mutation_checker.go b/table/tables/mutation_checker.go index b3d304f5389d7..6a04b59d0d3f9 100644 --- a/table/tables/mutation_checker.go +++ b/table/tables/mutation_checker.go @@ -373,7 +373,7 @@ func getOrBuildColumnMaps( for _, col := range t.Meta().Columns { maps.ColumnIDToInfo[col.ID] = col - maps.ColumnIDToFieldType[col.ID] = &col.FieldType + maps.ColumnIDToFieldType[col.ID] = &(col.FieldType) } for _, index := range t.Indices() { if index.Meta().Primary && t.meta.IsCommonHandle { @@ -412,7 +412,7 @@ func corruptMutations(t *TableCommon, txn kv.Transaction, sh kv.StagingHandle, c indexMutation := indexMutations[0] key := make([]byte, len(indexMutation.key)) copy(key, indexMutation.key) - key[len(key)-1] += 1 + key[len(key)-1]++ if len(indexMutation.value) == 0 { if err := memBuffer.Delete(key); err != nil { return errors.Trace(err) @@ -438,7 +438,7 @@ func corruptMutations(t *TableCommon, txn kv.Transaction, sh kv.StagingHandle, c indexMutation := indexMutations[0] key := indexMutation.key memBuffer.RemoveFromBuffer(key) - key[len(key)-1] += 1 + key[len(key)-1]++ if len(indexMutation.value) == 0 { if err := memBuffer.Delete(key); err != nil { return errors.Trace(err) @@ -459,7 +459,7 @@ func corruptMutations(t *TableCommon, txn kv.Transaction, sh kv.StagingHandle, c indexMutation := indexMutations[0] value := indexMutation.value if len(value) > 0 { - value[len(value)-1] += 1 + value[len(value)-1]++ if err := memBuffer.Set(indexMutation.key, value); err != nil { return errors.Trace(err) } diff --git a/table/tables/partition_test.go b/table/tables/partition_test.go index 7efddb2052c06..9d88b82b712c0 100644 --- a/table/tables/partition_test.go +++ b/table/tables/partition_test.go @@ -686,7 +686,6 @@ func TestIssue31629(t *testing.T) { } for i, tt := range tests { - createTable := "create table t1 " + tt.create res, err := tk.Exec(createTable) if res != nil { diff --git a/table/tables/tables.go b/table/tables/tables.go index 9b35a1af8cc3b..17175f170bb24 100644 --- a/table/tables/tables.go +++ b/table/tables/tables.go @@ -1477,7 +1477,7 @@ func AllocHandle(ctx context.Context, sctx sessionctx.Context, t table.Table) (k if stmtCtx := sctx.GetSessionVars().StmtCtx; stmtCtx != nil { // First try to alloc if the statement has reserved auto ID. if stmtCtx.BaseRowID < stmtCtx.MaxRowID { - stmtCtx.BaseRowID += 1 + stmtCtx.BaseRowID++ return kv.IntHandle(stmtCtx.BaseRowID), nil } } diff --git a/testkit/testdata/testdata.go b/testkit/testdata/testdata.go index 17b647346709b..d455e02babe73 100644 --- a/testkit/testdata/testdata.go +++ b/testkit/testdata/testdata.go @@ -128,8 +128,8 @@ func ConvertSQLWarnToStrings(warns []stmtctx.SQLWarn) (rs []string) { return rs } -// GetTestCases gets the test cases for a test function. -func (td *TestData) GetTestCases(t *testing.T, in interface{}, out interface{}) { +// LoadTestCases Loads the test cases for a test function. +func (td *TestData) LoadTestCases(t *testing.T, in interface{}, out interface{}) { // Extract caller's name. pc, _, _, ok := runtime.Caller(1) require.True(t, ok) @@ -155,8 +155,8 @@ func (td *TestData) GetTestCases(t *testing.T, in interface{}, out interface{}) td.output[casesIdx].decodedOut = out } -// GetTestCasesByName gets the test cases for a test function by its name. -func (td *TestData) GetTestCasesByName(caseName string, t *testing.T, in interface{}, out interface{}) { +// LoadTestCasesByName loads the test cases for a test function by its name. +func (td *TestData) LoadTestCasesByName(caseName string, t *testing.T, in interface{}, out interface{}) { casesIdx, ok := td.funcMap[caseName] require.Truef(t, ok, "Case name: %s", caseName) require.NoError(t, json.Unmarshal(*td.input[casesIdx].Cases, in)) diff --git a/testkit/testkit.go b/testkit/testkit.go index 4b47dd61f4b96..d92163b8f8fbe 100644 --- a/testkit/testkit.go +++ b/testkit/testkit.go @@ -143,7 +143,6 @@ func (tk *TestKit) MustPartitionByList(sql string, partitions []string, args ... partitions = append(partitions[:index], partitions[index+1:]...) } } - } if !ok { tk.require.Len(partitions, 0) diff --git a/tidb-binlog/node/registry_test.go b/tidb-binlog/node/registry_test.go index 4991d053afc95..7e5f126f35031 100644 --- a/tidb-binlog/node/registry_test.go +++ b/tidb-binlog/node/registry_test.go @@ -81,13 +81,6 @@ func TestRegisterNode(t *testing.T) { err = r.UpdateNode(context.Background(), nodePrefix, ns) require.NoError(t, err) mustEqualStatus(t, r, ns.NodeID, ns) - - // TODO: now don't have function to delete node, maybe do it later - //err = r.UnregisterNode(context.Background(), nodePrefix, ns.NodeID) - //require.NoError(t, err) - //exist, err := r.checkNodeExists(context.Background(), nodePrefix, ns.NodeID) - //require.NoError(t, err) - //require.False(t, exist) } func TestRefreshNode(t *testing.T) { @@ -109,11 +102,6 @@ func TestRefreshNode(t *testing.T) { ns.IsAlive = true mustEqualStatus(t, r, ns.NodeID, ns) - - // TODO: fix it later - //time.Sleep(2 * time.Second) - //ns.IsAlive = false - //mustEqualStatus(t, r, ns.NodeID, ns) } func mustEqualStatus(t *testing.T, r RegisrerTestClient, nodeID string, status *Status) { diff --git a/types/const_test.go b/types/const_test.go index 62a4d2183eae1..c97639f9ab9c2 100644 --- a/types/const_test.go +++ b/types/const_test.go @@ -392,7 +392,6 @@ func TestIgnoreSpaceMode(t *testing.T) { require.Error(t, err) tk.MustExec("CREATE TABLE test.NOW(a bigint);") tk.MustExec("DROP TABLE NOW;") - } func TestNoBackslashEscapesMode(t *testing.T) { diff --git a/types/convert_test.go b/types/convert_test.go index 88a60171ed3ad..f11daa6d22acc 100644 --- a/types/convert_test.go +++ b/types/convert_test.go @@ -904,7 +904,7 @@ func TestGetValidInt(t *testing.T) { if tt.warning { require.Lenf(t, warnings, warningCount+1, "%d", i) require.True(t, terror.ErrorEqual(warnings[len(warnings)-1].Err, ErrTruncatedWrongVal)) - warningCount += 1 + warningCount++ } else { require.Len(t, warnings, warningCount) } diff --git a/types/json/binary_test.go b/types/json/binary_test.go index 4142c9cdf150f..d14fcc5416db5 100644 --- a/types/json/binary_test.go +++ b/types/json/binary_test.go @@ -479,7 +479,6 @@ func TestCreateBinary(t *testing.T) { bj = CreateBinary(int8(123)) require.Equal(t, bj.TypeCode, bj.TypeCode) }() - } func TestFunctions(t *testing.T) { diff --git a/types/time_test.go b/types/time_test.go index 13e9191ec4175..af88a18ea1fcf 100644 --- a/types/time_test.go +++ b/types/time_test.go @@ -1679,7 +1679,6 @@ func TestParseDurationValue(t *testing.T) { require.True(t, col.err.Equal(err)) } } - } func TestIsClockUnit(t *testing.T) { @@ -2084,7 +2083,6 @@ func TestFromGoTime(t *testing.T) { t1 := types.FromGoTime(v) require.Equalf(t, types.FromDate(ca.yy, ca.mm, ca.dd, ca.hh, ca.min, ca.sec, ca.micro), t1, "idx %d", ith) } - } func TestGetTimezone(t *testing.T) { diff --git a/util/chunk/chunk_test.go b/util/chunk/chunk_test.go index f327ad704b268..413974acc30b6 100644 --- a/util/chunk/chunk_test.go +++ b/util/chunk/chunk_test.go @@ -538,7 +538,6 @@ func TestCopyTo(t *testing.T) { cmpFunc := GetCompareFunc(allTypes[i]) require.Zero(t, cmpFunc(row, i, r1, i)) } - } } diff --git a/util/chunk/column_test.go b/util/chunk/column_test.go index 4ef6d2f2a1526..98dd20322c5c6 100644 --- a/util/chunk/column_test.go +++ b/util/chunk/column_test.go @@ -271,7 +271,6 @@ func TestMyDecimal(t *testing.T) { types.DecimalAdd(&ds[i], d, &ds[i]) require.NoError(t, err) - } it := NewIterator4Chunk(chk) diff --git a/util/dbutil/common_test.go b/util/dbutil/common_test.go index b306855d1ba1e..3e2079e448912 100644 --- a/util/dbutil/common_test.go +++ b/util/dbutil/common_test.go @@ -50,7 +50,6 @@ func TestReplacePlaceholder(t *testing.T) { str := ReplacePlaceholder(testCase.originStr, testCase.args) require.Equal(t, testCase.expectStr, str) } - } func TestTableName(t *testing.T) { diff --git a/util/deadlockhistory/deadlock_history_test.go b/util/deadlockhistory/deadlock_history_test.go index c7bde7728fa65..94ed2e893a7d4 100644 --- a/util/deadlockhistory/deadlock_history_test.go +++ b/util/deadlockhistory/deadlock_history_test.go @@ -46,7 +46,6 @@ func getAllDatum(d *DeadlockHistory, columns []*model.ColumnInfo) [][]types.Datu } return rows - } func TestDeadlockHistoryCollection(t *testing.T) { diff --git a/util/expensivequery/memory_usage_alarm.go b/util/expensivequery/memory_usage_alarm.go index 8ce19c6264640..985a51b79aeb8 100644 --- a/util/expensivequery/memory_usage_alarm.go +++ b/util/expensivequery/memory_usage_alarm.go @@ -220,34 +220,44 @@ func (record *memoryUsageAlarm) recordSQL(sm util.SessionManager) { }) } +type item struct { + Name string + Debug int +} + func (record *memoryUsageAlarm) recordProfile() { - items := []struct { - name string - debug int - }{ - {name: "heap"}, - {name: "goroutine", debug: 2}, + items := []item{ + {Name: "heap"}, + {Name: "goroutine", Debug: 2}, } for i, item := range items { - fileName := filepath.Join(record.tmpDir, item.name+record.lastCheckTime.Format(time.RFC3339)) - record.lastProfileFileName[i] = append(record.lastProfileFileName[i], fileName) - f, err := os.Create(fileName) + err := record.write(i, item) if err != nil { - logutil.BgLogger().Error(fmt.Sprintf("create %v profile file fail", item.name), zap.Error(err)) return } - //nolint: revive - defer func() { - err := f.Close() - if err != nil { - logutil.BgLogger().Error(fmt.Sprintf("close %v profile file fail", item.name), zap.Error(err)) - } - }() - p := rpprof.Lookup(item.name) - err = p.WriteTo(f, item.debug) + } +} + +func (record *memoryUsageAlarm) write(i int, item item) error { + fileName := filepath.Join(record.tmpDir, item.Name+record.lastCheckTime.Format(time.RFC3339)) + record.lastProfileFileName[i] = append(record.lastProfileFileName[i], fileName) + f, err := os.Create(fileName) + if err != nil { + logutil.BgLogger().Error(fmt.Sprintf("create %v profile file fail", item.Name), zap.Error(err)) + return err + } + //nolint: revive + defer func() { + err := f.Close() if err != nil { - logutil.BgLogger().Error(fmt.Sprintf("write %v profile file fail", item.name), zap.Error(err)) - return + logutil.BgLogger().Error(fmt.Sprintf("close %v profile file fail", item.Name), zap.Error(err)) } + }() + p := rpprof.Lookup(item.Name) + err = p.WriteTo(f, item.Debug) + if err != nil { + logutil.BgLogger().Error(fmt.Sprintf("write %v profile file fail", item.Name), zap.Error(err)) + return err } + return nil } diff --git a/util/fastrand/random_test.go b/util/fastrand/random_test.go index 6eef9eb11ac26..ad2cba5d2c90f 100644 --- a/util/fastrand/random_test.go +++ b/util/fastrand/random_test.go @@ -35,7 +35,7 @@ func TestRand(t *testing.T) { } sum := 0 for i := 0; i < 256; i++ { - if arr[i] == false { + if !arr[i] { sum++ } } diff --git a/util/generatedexpr/generated_expr.go b/util/generatedexpr/generated_expr.go index 1af0fb1adac7b..aff83341cfd6d 100644 --- a/util/generatedexpr/generated_expr.go +++ b/util/generatedexpr/generated_expr.go @@ -39,7 +39,7 @@ func (*nameResolver) Enter(inNode ast.Node) (ast.Node, bool) { // Leave implements ast.Visitor interface. func (nr *nameResolver) Leave(inNode ast.Node) (node ast.Node, ok bool) { - //nolint:revive + //nolint: revive,all_revive switch v := inNode.(type) { case *ast.ColumnNameExpr: for _, col := range nr.tableInfo.Columns { diff --git a/util/localpool/localpool_test.go b/util/localpool/localpool_test.go index 1088457c95090..cd338e6f7964e 100644 --- a/util/localpool/localpool_test.go +++ b/util/localpool/localpool_test.go @@ -57,14 +57,3 @@ func TestPool(t *testing.T) { require.Greater(t, getHit, getMiss) require.Greater(t, putHit, putMiss) } - -func GetAndPut(pool *LocalPool) { - objs := make([]interface{}, rand.Intn(4)+1) - for i := 0; i < len(objs); i++ { - objs[i] = pool.Get() - } - runtime.Gosched() - for _, obj := range objs { - pool.Put(obj) - } -} diff --git a/util/memory/tracker_test.go b/util/memory/tracker_test.go index 58e4395470994..5425bb032162d 100644 --- a/util/memory/tracker_test.go +++ b/util/memory/tracker_test.go @@ -448,7 +448,6 @@ func TestGlobalTracker(t *testing.T) { }() c2.AttachTo(commonTracker) c2.DetachFromGlobalTracker() - } func parseByteUnit(str string) (int64, error) { diff --git a/util/misc.go b/util/misc.go index cad205c1c746f..4a076cca04ddd 100644 --- a/util/misc.go +++ b/util/misc.go @@ -102,7 +102,8 @@ func WithRecovery(exec func(), recoverFn func(r interface{})) { // recoverFn: Handler will be called after recover and before dump stack, passing `nil` means noop. // quit: If this value is true, the current program exits after recovery. func Recover(metricsLabel, funcInfo string, recoverFn func(), quit bool) { - r := recover() //nolint: revive + //nolint: revive + r := recover() if r == nil { return } diff --git a/util/ranger/ranger_test.go b/util/ranger/ranger_test.go index 9a35b94140a80..db16379f53d8a 100644 --- a/util/ranger/ranger_test.go +++ b/util/ranger/ranger_test.go @@ -879,7 +879,7 @@ func TestCompIndexInExprCorrCol(t *testing.T) { SQL string Result []string } - rangerSuiteData.GetTestCases(t, &input, &output) + rangerSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -906,7 +906,7 @@ func TestIndexStringIsTrueRange(t *testing.T) { SQL string Result []string } - rangerSuiteData.GetTestCases(t, &input, &output) + rangerSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -933,7 +933,7 @@ func TestCompIndexDNFMatch(t *testing.T) { Plan []string Result []string } - rangerSuiteData.GetTestCases(t, &input, &output) + rangerSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -963,7 +963,7 @@ func TestCompIndexMultiColDNF1(t *testing.T) { Plan []string Result []string } - rangerSuiteData.GetTestCases(t, &input, &output) + rangerSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -993,7 +993,7 @@ func TestCompIndexMultiColDNF2(t *testing.T) { Plan []string Result []string } - rangerSuiteData.GetTestCases(t, &input, &output) + rangerSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1021,7 +1021,7 @@ func TestPrefixIndexMultiColDNF(t *testing.T) { Plan []string Result []string } - rangerSuiteData.GetTestCases(t, &input, &output) + rangerSuiteData.LoadTestCases(t, &input, &output) inputLen := len(input) for i, tt := range input { testdata.OnRecord(func() { @@ -1060,7 +1060,7 @@ func TestIndexRangeForBit(t *testing.T) { Plan []string Result []string } - rangerSuiteData.GetTestCases(t, &input, &output) + rangerSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1317,7 +1317,7 @@ func TestIndexRangeForDecimal(t *testing.T) { Plan []string Result []string } - rangerSuiteData.GetTestCases(t, &input, &output) + rangerSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1351,7 +1351,7 @@ func TestPrefixIndexAppendPointRanges(t *testing.T) { Plan []string Result []string } - rangerSuiteData.GetTestCases(t, &input, &output) + rangerSuiteData.LoadTestCases(t, &input, &output) for i, tt := range input { testdata.OnRecord(func() { output[i].SQL = tt @@ -1988,7 +1988,6 @@ func TestTableShardIndex(t *testing.T) { } func TestShardIndexFuncSuites(t *testing.T) { - store, clean := testkit.CreateMockStore(t) defer clean() testKit := testkit.NewTestKit(t, store) diff --git a/util/schemacmp/lattice_test.go b/util/schemacmp/lattice_test.go index 28b4e63f7453d..fa0a1e546b6a7 100644 --- a/util/schemacmp/lattice_test.go +++ b/util/schemacmp/lattice_test.go @@ -550,7 +550,6 @@ func TestCompatibilities(t *testing.T) { } for _, tc := range testCases { - cmp, err := tc.a.Compare(tc.b) if len(tc.compareError) != 0 { require.IsType(t, &IncompatibleError{}, err) diff --git a/util/schemacmp/type_test.go b/util/schemacmp/type_test.go index 044a19635429a..8345b2c7c8b57 100644 --- a/util/schemacmp/type_test.go +++ b/util/schemacmp/type_test.go @@ -232,7 +232,6 @@ func TestTypeCompareJoin(t *testing.T) { t.Log(cmp) } require.Regexp(t, tc.compareError, err) - } else { require.NoError(t, err) require.Equal(t, tc.compareResult, cmp) diff --git a/util/sqlexec/utils_test.go b/util/sqlexec/utils_test.go index 7ca0e7e468898..c3ed1d433331a 100644 --- a/util/sqlexec/utils_test.go +++ b/util/sqlexec/utils_test.go @@ -401,7 +401,6 @@ func TestEscapeSQL(t *testing.T) { require.Equal(t, v.output, r2) require.NoError(t, e3) require.Equal(t, v.output, r3.String()) - } else { require.Error(t, e1) require.Regexp(t, v.err, e1.Error()) diff --git a/util/stmtsummary/statement_summary_test.go b/util/stmtsummary/statement_summary_test.go index a883c4aa51c28..516af9df23b95 100644 --- a/util/stmtsummary/statement_summary_test.go +++ b/util/stmtsummary/statement_summary_test.go @@ -272,7 +272,7 @@ func TestAddStatement(t *testing.T) { expectedSummaryElement.maxPrewriteRegionNum = stmtExecInfo2.ExecDetail.CommitDetail.PrewriteRegionNum expectedSummaryElement.sumTxnRetry += int64(stmtExecInfo2.ExecDetail.CommitDetail.TxnRetry) expectedSummaryElement.maxTxnRetry = stmtExecInfo2.ExecDetail.CommitDetail.TxnRetry - expectedSummaryElement.sumBackoffTimes += 1 + expectedSummaryElement.sumBackoffTimes++ expectedSummaryElement.backoffTypes[boTxnLockName] = 1 expectedSummaryElement.sumMem += stmtExecInfo2.MemMax expectedSummaryElement.maxMem = stmtExecInfo2.MemMax @@ -387,7 +387,7 @@ func TestAddStatement(t *testing.T) { expectedSummaryElement.sumWriteSize += int64(stmtExecInfo3.ExecDetail.CommitDetail.WriteSize) expectedSummaryElement.sumPrewriteRegionNum += int64(stmtExecInfo3.ExecDetail.CommitDetail.PrewriteRegionNum) expectedSummaryElement.sumTxnRetry += int64(stmtExecInfo3.ExecDetail.CommitDetail.TxnRetry) - expectedSummaryElement.sumBackoffTimes += 1 + expectedSummaryElement.sumBackoffTimes++ expectedSummaryElement.backoffTypes[boTxnLockName] = 2 expectedSummaryElement.sumMem += stmtExecInfo3.MemMax expectedSummaryElement.sumDisk += stmtExecInfo3.DiskMax From fc217d432ce3b8f13cbe94229940db597a1f59fd Mon Sep 17 00:00:00 2001 From: CbcWestwolf <1004626265@qq.com> Date: Mon, 1 Aug 2022 15:02:06 +0800 Subject: [PATCH 2/6] config, sysvar: add config `instance.enable_ddl` and sysvar `tidb_enable_ddl` (#35425) ref pingcap/tidb#34960 --- br/cmd/br/BUILD.bazel | 1 - br/cmd/br/backup.go | 4 +- cmd/ddltest/BUILD.bazel | 2 +- cmd/ddltest/ddl_test.go | 4 +- config/config.go | 13 ++++-- config/config.toml.example | 6 +-- config/config_test.go | 20 +++++--- ddl/ddl.go | 78 ++++++++++++++++++++++---------- ddl/ddl_worker.go | 2 - errno/errcode.go | 2 + errno/errname.go | 1 + errors.toml | 5 ++ owner/manager.go | 49 ++++++++++++-------- owner/mock.go | 5 ++ sessionctx/variable/sysvar.go | 16 +++++++ sessionctx/variable/tidb_vars.go | 14 ++++++ tidb-server/main.go | 5 +- util/dbterror/ddl_terror.go | 2 + 18 files changed, 161 insertions(+), 68 deletions(-) diff --git a/br/cmd/br/BUILD.bazel b/br/cmd/br/BUILD.bazel index 7254e0b4c3fdb..a8605aae2f3ea 100644 --- a/br/cmd/br/BUILD.bazel +++ b/br/cmd/br/BUILD.bazel @@ -30,7 +30,6 @@ go_library( "//br/pkg/utils", "//br/pkg/version/build", "//config", - "//ddl", "//parser/model", "//session", "//util", diff --git a/br/cmd/br/backup.go b/br/cmd/br/backup.go index 942fd8d4a46db..a6f973d26829c 100644 --- a/br/cmd/br/backup.go +++ b/br/cmd/br/backup.go @@ -11,7 +11,7 @@ import ( "github.com/pingcap/tidb/br/pkg/trace" "github.com/pingcap/tidb/br/pkg/utils" "github.com/pingcap/tidb/br/pkg/version/build" - "github.com/pingcap/tidb/ddl" + "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/session" "github.com/spf13/cobra" "go.uber.org/zap" @@ -78,7 +78,7 @@ func NewBackupCommand() *cobra.Command { task.LogArguments(c) // Do not run ddl worker in BR. - ddl.RunWorker = false + config.GetGlobalConfig().Instance.TiDBEnableDDL.Store(false) summary.SetUnit(summary.BackupUnit) return nil diff --git a/cmd/ddltest/BUILD.bazel b/cmd/ddltest/BUILD.bazel index 6870dddb5fd04..220fc51cbaa25 100644 --- a/cmd/ddltest/BUILD.bazel +++ b/cmd/ddltest/BUILD.bazel @@ -11,7 +11,7 @@ go_test( ], flaky = True, deps = [ - "//ddl", + "//config", "//domain", "//kv", "//parser/model", diff --git a/cmd/ddltest/ddl_test.go b/cmd/ddltest/ddl_test.go index 6fa05c1ddec21..974094d3a1689 100644 --- a/cmd/ddltest/ddl_test.go +++ b/cmd/ddltest/ddl_test.go @@ -33,7 +33,7 @@ import ( _ "github.com/go-sql-driver/mysql" "github.com/pingcap/errors" "github.com/pingcap/log" - "github.com/pingcap/tidb/ddl" + "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/parser/model" @@ -116,7 +116,7 @@ func createDDLSuite(t *testing.T) (s *ddlSuite) { // Stop current DDL worker, so that we can't be the owner now. err = domain.GetDomain(s.ctx).DDL().Stop() require.NoError(t, err) - ddl.RunWorker = false + config.GetGlobalConfig().Instance.TiDBEnableDDL.Store(false) session.ResetStoreForWithTiKVTest(s.store) s.dom.Close() require.NoError(t, s.store.Close()) diff --git a/config/config.go b/config/config.go index 193beee961f63..a11a105580b3e 100644 --- a/config/config.go +++ b/config/config.go @@ -119,6 +119,7 @@ var ( "check-mb4-value-in-utf8": "tidb_check_mb4_value_in_utf8", "enable-collect-execution-info": "tidb_enable_collect_execution_info", "max-server-connections": "max_connections", + "run-ddl": "tidb_enable_ddl", }, }, { @@ -480,10 +481,11 @@ type Instance struct { ForcePriority string `toml:"tidb_force_priority" json:"tidb_force_priority"` MemoryUsageAlarmRatio float64 `toml:"tidb_memory_usage_alarm_ratio" json:"tidb_memory_usage_alarm_ratio"` // EnableCollectExecutionInfo enables the TiDB to collect execution info. - EnableCollectExecutionInfo bool `toml:"tidb_enable_collect_execution_info" json:"tidb_enable_collect_execution_info"` - PluginDir string `toml:"plugin_dir" json:"plugin_dir"` - PluginLoad string `toml:"plugin_load" json:"plugin_load"` - MaxConnections uint32 `toml:"max_connections" json:"max_connections"` + EnableCollectExecutionInfo bool `toml:"tidb_enable_collect_execution_info" json:"tidb_enable_collect_execution_info"` + PluginDir string `toml:"plugin_dir" json:"plugin_dir"` + PluginLoad string `toml:"plugin_load" json:"plugin_load"` + MaxConnections uint32 `toml:"max_connections" json:"max_connections"` + TiDBEnableDDL AtomicBool `toml:"tidb_enable_ddl" json:"tidb_enable_ddl"` } func (l *Log) getDisableTimestamp() bool { @@ -859,6 +861,7 @@ var defaultConf = Config{ PluginDir: "/data/deploy/plugin", PluginLoad: "", MaxConnections: 0, + TiDBEnableDDL: *NewAtomicBool(true), }, Status: Status{ ReportStatus: true, @@ -1194,7 +1197,7 @@ func (c *Config) Valid() error { } return fmt.Errorf("invalid store=%s, valid storages=%v", c.Store, nameList) } - if c.Store == "mocktikv" && !c.RunDDL { + if c.Store == "mocktikv" && !c.Instance.TiDBEnableDDL.Load() { return fmt.Errorf("can't disable DDL on mocktikv") } if c.MaxIndexLength < DefMaxIndexLength || c.MaxIndexLength > DefMaxOfMaxIndexLength { diff --git a/config/config.toml.example b/config/config.toml.example index e30ebdb3c4b37..3b6b42791dcda 100644 --- a/config/config.toml.example +++ b/config/config.toml.example @@ -18,9 +18,6 @@ path = "/tmp/tidb" # The socket file to use for connection. socket = "/tmp/tidb-{Port}.sock" -# Run ddl worker on this tidb-server. -run-ddl = true - # Schema lease duration, very dangerous to change only if you know what you do. lease = "45s" @@ -462,3 +459,6 @@ tidb_record_plan_in_slow_log = 1 # The maximum permitted number of simultaneous client connections. When the value is 0, the number of connections is unlimited. max_connections = 0 + +# Run ddl worker on this tidb-server. +tidb_enable_ddl = true diff --git a/config/config_test.go b/config/config_test.go index 1471ff719b4e6..ed8cafa0f088d 100644 --- a/config/config_test.go +++ b/config/config_test.go @@ -195,9 +195,6 @@ path = "/tmp/tidb" # The socket file to use for connection. socket = "/tmp/tidb-{Port}.sock" -# Run ddl worker on this tidb-server. -run-ddl = true - # Schema lease duration, very dangerous to change only if you know what you do. lease = "45s" @@ -310,6 +307,9 @@ enable-enum-length-limit = true # The maximum permitted number of simultaneous client connections. When the value is 0, the number of connections is unlimited. max_connections = 0 +# Run ddl worker on this tidb-server. +tidb_enable_ddl = true + [log] # Log level: debug, info, warn, error, fatal. level = "info" @@ -1022,7 +1022,10 @@ func TestConflictInstanceConfig(t *testing.T) { // Just receive a warning and keep their respective values. expectedConflictOptions := map[string]InstanceConfigSection{ "": { - "", map[string]string{"check-mb4-value-in-utf8": "tidb_check_mb4_value_in_utf8"}, + "", map[string]string{ + "check-mb4-value-in-utf8": "tidb_check_mb4_value_in_utf8", + "run-ddl": "tidb_enable_ddl", + }, }, "log": { "log", map[string]string{"enable-slow-log": "tidb_enable_slow_log"}, @@ -1031,10 +1034,10 @@ func TestConflictInstanceConfig(t *testing.T) { "performance", map[string]string{"force-priority": "tidb_force_priority"}, }, } - _, err = f.WriteString("check-mb4-value-in-utf8 = true \n" + + _, err = f.WriteString("check-mb4-value-in-utf8 = true \nrun-ddl = true \n" + "[log] \nenable-slow-log = true \n" + "[performance] \nforce-priority = \"NO_PRIORITY\"\n" + - "[instance] \ntidb_check_mb4_value_in_utf8 = false \ntidb_enable_slow_log = false \ntidb_force_priority = \"LOW_PRIORITY\"") + "[instance] \ntidb_check_mb4_value_in_utf8 = false \ntidb_enable_slow_log = false \ntidb_force_priority = \"LOW_PRIORITY\"\ntidb_enable_ddl = false") require.NoError(t, err) require.NoError(t, f.Sync()) err = conf.Load(configFile) @@ -1046,6 +1049,8 @@ func TestConflictInstanceConfig(t *testing.T) { require.Equal(t, false, conf.Instance.EnableSlowLog.Load()) require.Equal(t, "NO_PRIORITY", conf.Performance.ForcePriority) require.Equal(t, "LOW_PRIORITY", conf.Instance.ForcePriority) + require.Equal(t, true, conf.RunDDL) + require.Equal(t, false, conf.Instance.TiDBEnableDDL.Load()) require.Equal(t, 0, len(DeprecatedOptions)) for _, conflictOption := range ConflictOptions { expectedConflictOption, ok := expectedConflictOptions[conflictOption.SectionName] @@ -1075,6 +1080,7 @@ func TestDeprecatedConfig(t *testing.T) { "": { "", map[string]string{ "enable-collect-execution-info": "tidb_enable_collect_execution_info", + "run-ddl": "tidb_enable_ddl", }, }, "log": { @@ -1090,7 +1096,7 @@ func TestDeprecatedConfig(t *testing.T) { }, }, } - _, err = f.WriteString("enable-collect-execution-info = false \n" + + _, err = f.WriteString("enable-collect-execution-info = false \nrun-ddl = false \n" + "[plugin] \ndir=\"/plugin-path\" \nload=\"audit-1,whitelist-1\" \n" + "[log] \nslow-threshold = 100 \n" + "[performance] \nmemory-usage-alarm-ratio = 0.5") diff --git a/ddl/ddl.go b/ddl/ddl.go index ffcd149bf3a3f..bad7c9b7d088b 100644 --- a/ddl/ddl.go +++ b/ddl/ddl.go @@ -37,6 +37,7 @@ import ( "github.com/pingcap/kvproto/pkg/kvrpcpb" "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/ddl/util" + "github.com/pingcap/tidb/domain/infosync" "github.com/pingcap/tidb/infoschema" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/meta" @@ -565,6 +566,9 @@ func newDDL(ctx context.Context, options ...Option) *ddl { ddlJobCh: make(chan struct{}, 100), } + // Register functions for enable/disable ddl when changing system variable `tidb_enable_ddl`. + variable.EnableDDL = d.EnableDDL + variable.DisableDDL = d.DisableDDL variable.SwitchConcurrentDDL = d.SwitchConcurrentDDL return d @@ -638,37 +642,36 @@ func (d *ddl) prepareWorkers4legacyDDL() { // Start implements DDL.Start interface. func (d *ddl) Start(ctxPool *pools.ResourcePool) error { - logutil.BgLogger().Info("[ddl] start DDL", zap.String("ID", d.uuid), zap.Bool("runWorker", RunWorker)) + logutil.BgLogger().Info("[ddl] start DDL", zap.String("ID", d.uuid), zap.Bool("runWorker", config.GetGlobalConfig().Instance.TiDBEnableDDL.Load())) d.wg.Run(d.limitDDLJobs) d.sessPool = newSessionPool(ctxPool, d.store) - // If RunWorker is true, we need campaign owner and do DDL job. - // Otherwise, we needn't do that. - if RunWorker { - d.ownerManager.SetBeOwnerHook(func() { - var err error - d.ddlSeqNumMu.seqNum, err = d.GetNextDDLSeqNum() - if err != nil { - logutil.BgLogger().Error("error when getting the ddl history count", zap.Error(err)) - } - }) - - err := d.ownerManager.CampaignOwner() + d.ownerManager.SetBeOwnerHook(func() { + var err error + d.ddlSeqNumMu.seqNum, err = d.GetNextDDLSeqNum() if err != nil { - return errors.Trace(err) + logutil.BgLogger().Error("error when getting the ddl history count", zap.Error(err)) } + }) + + d.delRangeMgr = d.newDeleteRangeManager(ctxPool == nil) - d.delRangeMgr = d.newDeleteRangeManager(ctxPool == nil) + d.prepareWorkers4ConcurrencyDDL() + d.prepareWorkers4legacyDDL() - d.prepareWorkers4ConcurrencyDDL() - d.prepareWorkers4legacyDDL() + go d.schemaSyncer.StartCleanWork() + if config.TableLockEnabled() { + d.wg.Add(1) + go d.startCleanDeadTableLock() + } + metrics.DDLCounter.WithLabelValues(metrics.StartCleanWork).Inc() - go d.schemaSyncer.StartCleanWork() - if config.TableLockEnabled() { - d.wg.Add(1) - go d.startCleanDeadTableLock() + // If tidb_enable_ddl is true, we need campaign owner and do DDL job. + // Otherwise, we needn't do that. + if config.GetGlobalConfig().Instance.TiDBEnableDDL.Load() { + if err := d.EnableDDL(); err != nil { + return err } - metrics.DDLCounter.WithLabelValues(metrics.StartCleanWork).Inc() } variable.RegisterStatistics(d) @@ -681,6 +684,35 @@ func (d *ddl) Start(ctxPool *pools.ResourcePool) error { return nil } +// EnableDDL enable this node to execute ddl. +// Since ownerManager.CampaignOwner will start a new goroutine to run ownerManager.campaignLoop, +// we should make sure that before invoking EnableDDL(), ddl is DISABLE. +func (d *ddl) EnableDDL() error { + err := d.ownerManager.CampaignOwner() + return errors.Trace(err) +} + +// DisableDDL disable this node to execute ddl. +// We should make sure that before invoking DisableDDL(), ddl is ENABLE. +func (d *ddl) DisableDDL() error { + if d.ownerManager.IsOwner() { + // If there is only one node, we should NOT disable ddl. + serverInfo, err := infosync.GetAllServerInfo(d.ctx) + if err != nil { + logutil.BgLogger().Error("[ddl] error when GetAllServerInfo", zap.Error(err)) + return err + } + if len(serverInfo) <= 1 { + return dbterror.ErrDDLSetting.GenWithStackByArgs("can not disable ddl when there is only one instance") + } + // FIXME: if possible, when this node is the only node with DDL, ths setting of DisableDDL should fail. + } + + // disable campaign by interrupting campaignLoop + d.ownerManager.CampaignCancel() + return nil +} + // GetNextDDLSeqNum return the next DDL seq num. func (d *ddl) GetNextDDLSeqNum() (uint64, error) { var count uint64 @@ -830,7 +862,7 @@ func getJobCheckInterval(job *model.Job, i int) (time.Duration, bool) { func (d *ddl) asyncNotifyWorker(job *model.Job) { // If the workers don't run, we needn't notify workers. - if !RunWorker { + if !config.GetGlobalConfig().Instance.TiDBEnableDDL.Load() { return } if variable.EnableConcurrentDDL.Load() { diff --git a/ddl/ddl_worker.go b/ddl/ddl_worker.go index 4c22af0b35025..bac8d9d6318c9 100644 --- a/ddl/ddl_worker.go +++ b/ddl/ddl_worker.go @@ -50,8 +50,6 @@ import ( ) var ( - // RunWorker indicates if this TiDB server starts DDL worker and can run DDL job. - RunWorker = true // ddlWorkerID is used for generating the next DDL worker ID. ddlWorkerID = atomicutil.NewInt32(0) // WaitTimeWhenErrorOccurred is waiting interval when processing DDL jobs encounter errors. diff --git a/errno/errcode.go b/errno/errcode.go index 4054229f8dce5..4b6f08c46ac7d 100644 --- a/errno/errcode.go +++ b/errno/errcode.go @@ -1073,6 +1073,8 @@ const ( ErrHTTPServiceError = 8243 ErrPartitionColumnStatsMissing = 8244 ErrColumnInChange = 8245 + ErrDDLSetting = 8246 + // TiKV/PD/TiFlash errors. ErrPDServerTimeout = 9001 ErrTiKVServerTimeout = 9002 diff --git a/errno/errname.go b/errno/errname.go index a8be48e6eed06..94e7b9f3a1887 100644 --- a/errno/errname.go +++ b/errno/errname.go @@ -1066,6 +1066,7 @@ var MySQLErrName = map[uint16]*mysql.ErrMessage{ ErrJSONObjectKeyTooLong: mysql.Message("TiDB does not yet support JSON objects with the key length >= 65536", nil), ErrPartitionStatsMissing: mysql.Message("Build table: %s global-level stats failed due to missing partition-level stats", nil), ErrPartitionColumnStatsMissing: mysql.Message("Build table: %s global-level stats failed due to missing partition-level column stats, please run analyze table to refresh columns of all partitions", nil), + ErrDDLSetting: mysql.Message("Error happened when enable/disable DDL: %s", nil), ErrNotSupportedWithSem: mysql.Message("Feature '%s' is not supported when security enhanced mode is enabled", nil), ErrPlacementPolicyCheck: mysql.Message("Placement policy didn't meet the constraint, reason: %s", nil), diff --git a/errors.toml b/errors.toml index f47c968f0cc0e..9998a985f4f91 100755 --- a/errors.toml +++ b/errors.toml @@ -1261,6 +1261,11 @@ error = ''' column %s id %d does not exist, this column may have been updated by other DDL ran in parallel ''' +["ddl:8246"] +error = ''' +Error happened when enable/disable DDL: %s +''' + ["domain:8027"] error = ''' Information schema is out of date: schema failed to update in 1 lease, please make sure TiDB can connect to TiKV diff --git a/owner/manager.go b/owner/manager.go index 756b44b7688cf..4223a433b8b55 100644 --- a/owner/manager.go +++ b/owner/manager.go @@ -50,10 +50,12 @@ type Manager interface { CampaignOwner() error // ResignOwner lets the owner start a new election. ResignOwner(ctx context.Context) error - // Cancel cancels this etcd ownerManager campaign. + // Cancel cancels this etcd ownerManager. Cancel() // RequireOwner requires the ownerManager is owner. RequireOwner(ctx context.Context) error + // CampaignCancel cancels one etcd campaign + CampaignCancel() // SetBeOwnerHook sets a hook. The hook is called before becoming an owner. SetBeOwnerHook(hook func()) @@ -71,17 +73,18 @@ type DDLOwnerChecker interface { // ownerManager represents the structure which is used for electing owner. type ownerManager struct { - id string // id is the ID of the manager. - key string - ctx context.Context - prompt string - logPrefix string - logCtx context.Context - etcdCli *clientv3.Client - cancel context.CancelFunc - elec unsafe.Pointer - wg sync.WaitGroup - beOwnerHook func() + id string // id is the ID of the manager. + key string + ctx context.Context + prompt string + logPrefix string + logCtx context.Context + etcdCli *clientv3.Client + cancel context.CancelFunc + elec unsafe.Pointer + wg sync.WaitGroup + beOwnerHook func() + campaignCancel context.CancelFunc } // NewOwnerManager creates a new Manager. @@ -185,11 +188,17 @@ func (m *ownerManager) RetireOwner() { atomic.StorePointer(&m.elec, nil) } +// CampaignCancel implements Manager.CampaignCancel interface. +func (m *ownerManager) CampaignCancel() { + m.campaignCancel() + m.wg.Wait() +} + func (m *ownerManager) campaignLoop(etcdSession *concurrency.Session) { - var cancel context.CancelFunc - ctx, cancel := context.WithCancel(m.ctx) + var campaignContext context.Context + campaignContext, m.campaignCancel = context.WithCancel(m.ctx) defer func() { - cancel() + m.campaignCancel() if r := recover(); r != nil { logutil.BgLogger().Error("recover panic", zap.String("prompt", m.prompt), zap.Any("error", r), zap.Stack("buffer")) metrics.PanicCounter.WithLabelValues(metrics.LabelDDLOwner).Inc() @@ -209,13 +218,13 @@ func (m *ownerManager) campaignLoop(etcdSession *concurrency.Session) { case <-etcdSession.Done(): logutil.Logger(logCtx).Info("etcd session is done, creates a new one") leaseID := etcdSession.Lease() - etcdSession, err = util2.NewSession(ctx, logPrefix, m.etcdCli, util2.NewSessionRetryUnlimited, ManagerSessionTTL) + etcdSession, err = util2.NewSession(campaignContext, logPrefix, m.etcdCli, util2.NewSessionRetryUnlimited, ManagerSessionTTL) if err != nil { logutil.Logger(logCtx).Info("break campaign loop, NewSession failed", zap.Error(err)) m.revokeSession(logPrefix, leaseID) return } - case <-ctx.Done(): + case <-campaignContext.Done(): logutil.Logger(logCtx).Info("break campaign loop, context is done") m.revokeSession(logPrefix, etcdSession.Lease()) return @@ -233,19 +242,19 @@ func (m *ownerManager) campaignLoop(etcdSession *concurrency.Session) { } elec := concurrency.NewElection(etcdSession, m.key) - err = elec.Campaign(ctx, m.id) + err = elec.Campaign(campaignContext, m.id) if err != nil { logutil.Logger(logCtx).Info("failed to campaign", zap.Error(err)) continue } - ownerKey, err := GetOwnerInfo(ctx, logCtx, elec, m.id) + ownerKey, err := GetOwnerInfo(campaignContext, logCtx, elec, m.id) if err != nil { continue } m.toBeOwner(elec) - m.watchOwner(ctx, etcdSession, ownerKey) + m.watchOwner(campaignContext, etcdSession, ownerKey) m.RetireOwner() metrics.CampaignOwnerCounter.WithLabelValues(m.prompt, metrics.NoLongerOwner).Inc() diff --git a/owner/mock.go b/owner/mock.go index 29552bfd3d14c..546f955c47268 100644 --- a/owner/mock.go +++ b/owner/mock.go @@ -99,3 +99,8 @@ func (*mockManager) RequireOwner(context.Context) error { func (m *mockManager) SetBeOwnerHook(hook func()) { m.beOwnerHook = hook } + +// CampaignCancel implements Manager.CampaignCancel interface +func (m *mockManager) CampaignCancel() { + // do nothing +} diff --git a/sessionctx/variable/sysvar.go b/sessionctx/variable/sysvar.go index 8acfa65d37138..f0a489e469cc6 100644 --- a/sessionctx/variable/sysvar.go +++ b/sessionctx/variable/sysvar.go @@ -433,6 +433,20 @@ var defaultSysVars = []*SysVar{ }, GetGlobal: func(s *SessionVars) (string, error) { return strconv.FormatUint(uint64(config.GetGlobalConfig().Instance.MaxConnections), 10), nil }}, + {Scope: ScopeInstance, Name: TiDBEnableDDL, Value: BoolToOnOff(config.GetGlobalConfig().Instance.TiDBEnableDDL.Load()), Type: TypeBool, + SetGlobal: func(s *SessionVars, val string) error { + oldVal, newVal := config.GetGlobalConfig().Instance.TiDBEnableDDL.Load(), TiDBOptOn(val) + if oldVal != newVal { + err := switchDDL(newVal) + config.GetGlobalConfig().Instance.TiDBEnableDDL.Store(newVal) + return err + } + return nil + }, + GetGlobal: func(s *SessionVars) (string, error) { + return BoolToOnOff(config.GetGlobalConfig().Instance.TiDBEnableDDL.Load()), nil + }, + }, /* The system variables below have GLOBAL scope */ {Scope: ScopeGlobal, Name: MaxPreparedStmtCount, Value: strconv.FormatInt(DefMaxPreparedStmtCount, 10), Type: TypeInt, MinValue: -1, MaxValue: 1048576}, @@ -1848,6 +1862,8 @@ const ( PluginDir = "plugin_dir" // PluginLoad is the name of 'plugin_load' system variable. PluginLoad = "plugin_load" + // TiDBEnableDDL indicates whether the tidb-server runs DDL statements, + TiDBEnableDDL = "tidb_enable_ddl" // Port is the name for 'port' system variable. Port = "port" // DataDir is the name for 'datadir' system variable. diff --git a/sessionctx/variable/tidb_vars.go b/sessionctx/variable/tidb_vars.go index 11c1d4afa01b8..ad03e5191705d 100644 --- a/sessionctx/variable/tidb_vars.go +++ b/sessionctx/variable/tidb_vars.go @@ -1060,4 +1060,18 @@ var ( SetStatsCacheCapacity atomic.Value // SwitchConcurrentDDL is the func registered by DDL to switch concurrent DDL. SwitchConcurrentDDL func(bool) error = nil + // EnableDDL is the func registered by ddl to enable running ddl in this instance. + EnableDDL func() error = nil + // DisableDDL is the func registered by ddl to disable running ddl in this instance. + DisableDDL func() error = nil ) + +// switchDDL turns on/off DDL in an instance. +func switchDDL(on bool) error { + if on && EnableDDL != nil { + return EnableDDL() + } else if !on && DisableDDL != nil { + return DisableDDL() + } + return nil +} diff --git a/tidb-server/main.go b/tidb-server/main.go index 5a4ef5b62fae2..63cc9d81fec34 100644 --- a/tidb-server/main.go +++ b/tidb-server/main.go @@ -451,7 +451,7 @@ func overrideConfig(cfg *config.Config) { cfg.Binlog.Enable = *enableBinlog } if actualFlags[nmRunDDL] { - cfg.RunDDL = *runDDL + cfg.Instance.TiDBEnableDDL.Store(*runDDL) } if actualFlags[nmDdlLease] { cfg.Lease = *ddlLease @@ -565,6 +565,8 @@ func setGlobalVars() { cfg.Instance.EnableCollectExecutionInfo = cfg.EnableCollectExecutionInfo case "max-server-connections": cfg.Instance.MaxConnections = cfg.MaxServerConnections + case "run-ddl": + cfg.Instance.TiDBEnableDDL.Store(cfg.RunDDL) } case "log": switch oldName { @@ -615,7 +617,6 @@ func setGlobalVars() { session.SetPlanReplayerGCLease(planReplayerGCLease) bindinfo.Lease = parseDuration(cfg.Performance.BindInfoLease) statistics.RatioOfPseudoEstimate.Store(cfg.Performance.PseudoEstimateRatio) - ddl.RunWorker = cfg.RunDDL if cfg.SplitTable { atomic.StoreUint32(&ddl.EnableSplitTableRegion, 1) } diff --git a/util/dbterror/ddl_terror.go b/util/dbterror/ddl_terror.go index 2e90d25ffdd2c..6e35142ef5e64 100644 --- a/util/dbterror/ddl_terror.go +++ b/util/dbterror/ddl_terror.go @@ -382,6 +382,8 @@ var ( ErrCancelFinishedDDLJob = ClassDDL.NewStd(mysql.ErrCancelFinishedDDLJob) // ErrCannotCancelDDLJob returns when cancel a almost finished ddl job, because cancel in now may cause data inconsistency. ErrCannotCancelDDLJob = ClassDDL.NewStd(mysql.ErrCannotCancelDDLJob) + // ErrDDLSetting returns when failing to enable/disable DDL + ErrDDLSetting = ClassDDL.NewStd(mysql.ErrDDLSetting) // ErrColumnInChange indicates there is modification on the column in parallel. ErrColumnInChange = ClassDDL.NewStd(mysql.ErrColumnInChange) From 93a31f0f1cc1c8f4e51e2e3f9c31ddc13c4dd372 Mon Sep 17 00:00:00 2001 From: Hangjie Mo Date: Mon, 1 Aug 2022 16:40:05 +0800 Subject: [PATCH 3/6] ddl: fix inaccurate row_count for `admin show ddl jobs` (#36716) close pingcap/tidb#25968 --- ddl/backfilling.go | 13 ++++++++++--- ddl/column.go | 7 +++++-- ddl/index.go | 7 +++++-- executor/executor_test.go | 19 +++++++++++++++++++ 4 files changed, 39 insertions(+), 7 deletions(-) diff --git a/ddl/backfilling.go b/ddl/backfilling.go index 83102dc50c512..97653e8378aab 100644 --- a/ddl/backfilling.go +++ b/ddl/backfilling.go @@ -185,13 +185,18 @@ type reorgBackfillTask struct { physicalTableID int64 startKey kv.Key endKey kv.Key + endInclude bool } func (r *reorgBackfillTask) String() string { physicalID := strconv.FormatInt(r.physicalTableID, 10) startKey := tryDecodeToHandleString(r.startKey) endKey := tryDecodeToHandleString(r.endKey) - return "physicalTableID_" + physicalID + "_" + "[" + startKey + "," + endKey + "]" + rangeStr := "physicalTableID_" + physicalID + "_" + "[" + startKey + "," + endKey + if r.endInclude { + return rangeStr + "]" + } + return rangeStr + ")" } func logSlowOperations(elapsed time.Duration, slowMsg string, threshold uint32) { @@ -472,7 +477,7 @@ func (w *worker) sendRangeTaskToWorkers(t table.Table, workers []*backfillWorker physicalTableID := reorgInfo.PhysicalTableID // Build reorg tasks. - for _, keyRange := range kvRanges { + for i, keyRange := range kvRanges { endKey := keyRange.EndKey endK, err := getRangeEndKey(reorgInfo.d.jobContext(reorgInfo.Job), workers[0].sessCtx.GetStore(), workers[0].priority, t, keyRange.StartKey, endKey) if err != nil { @@ -486,7 +491,9 @@ func (w *worker) sendRangeTaskToWorkers(t table.Table, workers []*backfillWorker task := &reorgBackfillTask{ physicalTableID: physicalTableID, startKey: keyRange.StartKey, - endKey: endKey} + endKey: endKey, + // If the boundaries overlap, we should ignore the preceding endKey. + endInclude: endK.Cmp(keyRange.EndKey) != 0 || i == len(kvRanges)-1} batchTasks = append(batchTasks, task) if len(batchTasks) >= len(workers) { diff --git a/ddl/column.go b/ddl/column.go index 3156995a96830..595d71ec34356 100644 --- a/ddl/column.go +++ b/ddl/column.go @@ -1150,7 +1150,11 @@ func (w *updateColumnWorker) fetchRowColVals(txn kv.Transaction, taskRange reorg logSlowOperations(oprEndTime.Sub(oprStartTime), "iterateSnapshotRows in updateColumnWorker fetchRowColVals", 0) oprStartTime = oprEndTime - taskDone = recordKey.Cmp(taskRange.endKey) > 0 + if taskRange.endInclude { + taskDone = recordKey.Cmp(taskRange.endKey) > 0 + } else { + taskDone = recordKey.Cmp(taskRange.endKey) >= 0 + } if taskDone || len(w.rowRecords) >= w.batchCnt { return false, nil @@ -1161,7 +1165,6 @@ func (w *updateColumnWorker) fetchRowColVals(txn kv.Transaction, taskRange reorg } lastAccessedHandle = recordKey if recordKey.Cmp(taskRange.endKey) == 0 { - // If taskRange.endIncluded == false, we will not reach here when handle == taskRange.endHandle. taskDone = true return false, nil } diff --git a/ddl/index.go b/ddl/index.go index 4ff08c90ab3bd..d2426c05d4ef7 100644 --- a/ddl/index.go +++ b/ddl/index.go @@ -1123,7 +1123,11 @@ func (w *baseIndexWorker) fetchRowColVals(txn kv.Transaction, taskRange reorgBac logSlowOperations(oprEndTime.Sub(oprStartTime), "iterateSnapshotRows in baseIndexWorker fetchRowColVals", 0) oprStartTime = oprEndTime - taskDone = recordKey.Cmp(taskRange.endKey) > 0 + if taskRange.endInclude { + taskDone = recordKey.Cmp(taskRange.endKey) > 0 + } else { + taskDone = recordKey.Cmp(taskRange.endKey) >= 0 + } if taskDone || len(w.idxRecords) >= w.batchCnt { return false, nil @@ -1146,7 +1150,6 @@ func (w *baseIndexWorker) fetchRowColVals(txn kv.Transaction, taskRange reorgBac w.cleanRowMap() if recordKey.Cmp(taskRange.endKey) == 0 { - // If taskRange.endIncluded == false, we will not reach here when handle == taskRange.endHandle taskDone = true return false, nil } diff --git a/executor/executor_test.go b/executor/executor_test.go index 187e9cdf16a78..a6160c15a5937 100644 --- a/executor/executor_test.go +++ b/executor/executor_test.go @@ -4454,6 +4454,25 @@ func TestAdminShowDDLJobs(t *testing.T) { require.Equal(t, t2.In(time.UTC), tt.In(time.UTC)) } +func TestAdminShowDDLJobsRowCount(t *testing.T) { + store, clean := testkit.CreateMockStore(t) + defer clean() + tk := testkit.NewTestKit(t, store) + + // Test for issue: https://github.com/pingcap/tidb/issues/25968 + tk.MustExec("use test") + tk.MustExec("drop table if exists t;") + tk.MustExec("create table t (id bigint key,b int);") + tk.MustExec("split table t by (10),(20),(30);") + tk.MustExec("insert into t values (0,0),(10,10),(20,20),(30,30);") + tk.MustExec("alter table t add index idx1(b);") + require.Equal(t, "4", tk.MustQuery("admin show ddl jobs 1").Rows()[0][7]) + + tk.MustExec("insert into t values (1,0),(2,10),(3,20),(4,30);") + tk.MustExec("alter table t add index idx2(b);") + require.Equal(t, "8", tk.MustQuery("admin show ddl jobs 1").Rows()[0][7]) +} + func TestAdminShowDDLJobsInfo(t *testing.T) { store, clean := testkit.CreateMockStore(t) defer clean() From 9a16a8dd19b7daa5b0c418b5772456973b5001f5 Mon Sep 17 00:00:00 2001 From: xhe Date: Mon, 1 Aug 2022 17:34:05 +0800 Subject: [PATCH 4/6] *: replace defer clean with t.Cleanup (#36722) close pingcap/tidb#36721 --- bindinfo/bind_test.go | 93 +-- bindinfo/capture_test.go | 54 +- bindinfo/handle_test.go | 30 +- bindinfo/optimize_test.go | 3 +- bindinfo/session_handle_test.go | 33 +- bindinfo/temptable_test.go | 6 +- br/pkg/backup/client_test.go | 19 +- br/pkg/backup/schema_test.go | 19 +- .../checkpoints/checkpoints_file_test.go | 28 +- .../checkpoints/checkpoints_sql_test.go | 34 +- .../lightning/lightning_server_serial_test.go | 19 +- br/pkg/lightning/restore/meta_manager_test.go | 34 +- br/pkg/lightning/restore/tidb_test.go | 49 +- br/pkg/restore/db_test.go | 25 +- br/pkg/storage/s3_test.go | 60 +- ...m_github_grpc_ecosystem_grpc_gateway.patch | 5 +- ddl/attributes_sql_test.go | 33 +- ddl/cancel_test.go | 3 +- ddl/column_change_test.go | 6 +- ddl/column_modify_test.go | 51 +- ddl/column_test.go | 18 +- ddl/column_type_change_test.go | 102 +-- ddl/db_cache_test.go | 26 +- ddl/db_change_failpoints_test.go | 9 +- ddl/db_change_test.go | 162 ++--- ddl/db_foreign_key_test.go | 6 +- ddl/db_integration_test.go | 273 +++---- ddl/db_partition_test.go | 132 ++-- ddl/db_rename_test.go | 13 +- ddl/db_table_test.go | 57 +- ddl/db_test.go | 120 +-- ddl/ddl_api_test.go | 9 +- ddl/ddl_error_test.go | 21 +- ddl/ddl_tiflash_test.go | 6 +- ddl/ddl_worker_test.go | 12 +- ddl/fail_test.go | 3 +- ddl/failtest/fail_db_test.go | 42 +- ddl/foreign_key_test.go | 3 +- ddl/index_change_test.go | 3 +- ddl/index_modify_test.go | 42 +- ddl/integration_test.go | 12 +- ddl/job_table_test.go | 6 +- ddl/modify_column_test.go | 27 +- ddl/multi_schema_change_test.go | 93 +-- ddl/partition_test.go | 3 +- ddl/placement_policy_ddl_test.go | 3 +- ddl/placement_policy_test.go | 84 +-- ddl/placement_sql_test.go | 15 +- ddl/primary_key_handle_test.go | 30 +- ddl/reorg_test.go | 3 +- ddl/repair_table_test.go | 6 +- ddl/restart_test.go | 9 +- ddl/rollingback_test.go | 3 +- ddl/schema_test.go | 6 +- ddl/sequence_test.go | 45 +- ddl/serial_test.go | 72 +- ddl/stat_test.go | 6 +- ddl/table_modify_test.go | 12 +- ddl/table_test.go | 9 +- ddl/tiflash_replica_test.go | 18 +- dumpling/export/writer_test.go | 38 +- executor/adapter_test.go | 3 +- executor/admin_test.go | 63 +- executor/aggfuncs/func_max_min_test.go | 3 +- executor/aggregate_test.go | 111 +-- executor/analyze_test.go | 3 +- executor/analyzetest/analyze_test.go | 282 +++----- executor/batch_point_get_test.go | 30 +- executor/charset_test.go | 9 +- executor/chunk_size_control_test.go | 13 +- executor/cluster_table_test.go | 15 +- executor/compact_table_test.go | 45 +- executor/copr_cache_test.go | 3 +- executor/cte_test.go | 21 +- executor/ddl_test.go | 108 +-- executor/delete_test.go | 6 +- executor/distsql_test.go | 42 +- executor/executor_failpoint_test.go | 33 +- executor/executor_issue_test.go | 177 ++--- executor/executor_test.go | 441 ++++------- executor/executor_txn_test.go | 36 +- executor/explain_test.go | 42 +- executor/explainfor_test.go | 90 +-- executor/grant_test.go | 57 +- executor/hot_regions_history_table_test.go | 16 +- executor/index_advise_test.go | 3 +- executor/index_lookup_join_test.go | 54 +- executor/index_lookup_merge_join_test.go | 30 +- executor/index_merge_reader_test.go | 39 +- executor/infoschema_cluster_table_test.go | 21 +- executor/infoschema_reader_test.go | 78 +- executor/insert_test.go | 138 ++-- executor/inspection_common_test.go | 3 +- executor/inspection_result_test.go | 49 +- executor/inspection_summary_test.go | 3 +- executor/join_test.go | 165 ++--- executor/kvtest/kv_test.go | 3 +- executor/memory_test.go | 3 +- executor/memtable_reader_test.go | 12 +- executor/memtest/mem_test.go | 3 +- executor/merge_join_test.go | 33 +- executor/metrics_reader_test.go | 3 +- executor/oomtest/oom_test.go | 9 +- executor/parallel_apply_test.go | 36 +- executor/partition_table_test.go | 180 ++--- executor/point_get_test.go | 72 +- executor/prepared_test.go | 66 +- executor/recover_table_test.go | 12 +- executor/resource_tag_test.go | 3 +- executor/revoke_test.go | 18 +- executor/rowid_test.go | 9 +- executor/sample_test.go | 39 +- executor/select_into_test.go | 21 +- executor/seqtest/prepared_test.go | 39 +- executor/seqtest/seq_executor_test.go | 75 +- executor/set_test.go | 54 +- executor/show_placement_test.go | 18 +- executor/show_stats_test.go | 27 +- executor/showtest/show_test.go | 135 ++-- executor/simple_test.go | 3 +- executor/simpletest/simple_test.go | 87 +-- executor/slow_query_sql_test.go | 15 +- executor/sort_test.go | 6 +- executor/splittest/split_table_test.go | 15 +- executor/stale_txn_test.go | 69 +- executor/statement_context_test.go | 3 +- executor/temporary_table_test.go | 3 +- executor/tiflashtest/tiflash_test.go | 78 +- executor/tikv_regions_peers_table_test.go | 3 +- executor/trace_test.go | 6 +- executor/union_scan_test.go | 27 +- executor/update_test.go | 39 +- executor/window_test.go | 27 +- executor/write_concurrent_test.go | 3 +- executor/write_test.go | 207 ++---- expression/constant_fold_test.go | 3 +- expression/constant_propagation_test.go | 3 +- expression/flag_simplify_test.go | 3 +- expression/integration_serial_test.go | 234 ++---- expression/integration_test.go | 642 ++++++---------- expression/typeinfer_test.go | 3 +- infoschema/cluster_tables_test.go | 48 +- infoschema/infoschema_test.go | 6 +- infoschema/perfschema/tables_test.go | 20 +- infoschema/tables_test.go | 96 +-- planner/cascades/integration_test.go | 42 +- planner/core/binary_plan_test.go | 24 +- planner/core/cacheable_checker_test.go | 3 +- planner/core/cbo_test.go | 69 +- planner/core/enforce_mpp_test.go | 27 +- planner/core/expression_rewriter_test.go | 48 +- planner/core/flat_plan_test.go | 3 +- planner/core/integration_partition_test.go | 90 +-- planner/core/integration_test.go | 684 ++++++------------ .../core/memtable_predicate_extractor_test.go | 36 +- planner/core/partition_pruner_test.go | 48 +- planner/core/physical_plan_test.go | 153 ++-- planner/core/physical_plan_trace_test.go | 6 +- planner/core/plan_cost_test.go | 18 +- planner/core/plan_stats_test.go | 6 +- planner/core/plan_test.go | 45 +- planner/core/point_get_plan_test.go | 66 +- planner/core/prepare_test.go | 192 ++--- planner/core/preprocess_test.go | 18 +- planner/core/rule_join_reorder_test.go | 30 +- planner/core/rule_result_reorder_test.go | 30 +- planner/core/stats_test.go | 6 +- planner/core/stringer_test.go | 3 +- planner/core/window_push_down_test.go | 12 +- planner/funcdep/extract_fd_test.go | 9 +- planner/funcdep/only_full_group_by_test.go | 3 +- plugin/integration_test.go | 3 +- privilege/privileges/cache_test.go | 42 +- privilege/privileges/privileges_test.go | 213 ++---- server/conn_test.go | 39 +- server/http_handler_test.go | 3 +- server/mock_conn_test.go | 3 +- server/optimize_trace_test.go | 3 +- server/plan_replayer_test.go | 3 +- server/statistics_handler_test.go | 3 +- server/tidb_serial_test.go | 48 +- server/tidb_test.go | 159 ++-- session/bootstrap_upgrade_test.go | 6 +- session/clustered_index_test.go | 69 +- session/nontransactional_test.go | 51 +- session/schema_test.go | 50 +- session/session_test.go | 3 +- session/session_test/session_test.go | 324 +++------ session/session_test/temporary_table_test.go | 18 +- sessionctx/binloginfo/binloginfo_test.go | 39 +- .../sessionstates/session_states_test.go | 24 +- sessionctx/stmtctx/stmtctx_test.go | 6 +- sessiontxn/isolation/optimistic_test.go | 12 +- sessiontxn/isolation/readcommitted_test.go | 21 +- sessiontxn/isolation/repeatable_read_test.go | 30 +- sessiontxn/isolation/serializable_test.go | 12 +- sessiontxn/staleread/processor_test.go | 9 +- sessiontxn/staleread/provider_test.go | 6 +- sessiontxn/txn_context_test.go | 58 +- sessiontxn/txn_manager_test.go | 9 +- statistics/handle/ddl_test.go | 12 +- statistics/handle/dump_test.go | 33 +- statistics/handle/gc_test.go | 15 +- statistics/handle/handle_hist_test.go | 9 +- statistics/handle/handle_test.go | 335 ++++----- statistics/handle/update_test.go | 108 +-- statistics/integration_test.go | 39 +- statistics/selectivity_test.go | 60 +- statistics/trace_test.go | 6 +- store/batch_coprocessor_test.go | 6 +- store/driver/main_test.go | 18 +- store/driver/sql_fail_test.go | 3 +- store/gcworker/gc_worker_test.go | 98 +-- store/helper/helper_test.go | 18 +- store/mockstore/mockcopr/executor_test.go | 3 +- store/mockstore/unistore/tikv/mvcc_test.go | 89 +-- structure/structure_test.go | 9 +- table/tables/cache_test.go | 36 +- table/tables/index_test.go | 12 +- table/tables/partition_test.go | 66 +- table/tables/state_remote_test.go | 3 +- table/tables/tables_test.go | 39 +- table/temptable/ddl_test.go | 17 +- telemetry/data_feature_usage_test.go | 39 +- telemetry/data_window_test.go | 3 +- telemetry/telemetry_test.go | 6 +- testkit/mockstore.go | 50 +- tests/globalkilltest/global_kill_test.go | 22 +- tests/readonlytest/readonly_test.go | 19 +- .../brietest/backup_restore_test.go | 3 +- tests/realtikvtest/brietest/binlog_test.go | 3 +- .../pessimistictest/pessimistic_test.go | 183 ++--- tests/realtikvtest/sessiontest/paging_test.go | 3 +- tests/realtikvtest/sessiontest/retry_test.go | 30 +- .../sessiontest/session_fail_test.go | 18 +- .../statisticstest/statistics_test.go | 3 +- tests/realtikvtest/testkit.go | 13 +- tests/realtikvtest/txntest/isolation_test.go | 30 +- tests/realtikvtest/txntest/txn_state_test.go | 27 +- tests/realtikvtest/txntest/txn_test.go | 12 +- types/const_test.go | 42 +- util/admin/admin_integration_test.go | 9 +- util/ddl-checker/executable_checker_test.go | 3 +- util/ranger/ranger_test.go | 54 +- 244 files changed, 3915 insertions(+), 7542 deletions(-) diff --git a/bindinfo/bind_test.go b/bindinfo/bind_test.go index 6f5a446cdb92d..acdce98b8546c 100644 --- a/bindinfo/bind_test.go +++ b/bindinfo/bind_test.go @@ -34,8 +34,7 @@ import ( ) func TestPrepareCacheWithBinding(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -300,8 +299,7 @@ func TestPrepareCacheWithBinding(t *testing.T) { } func TestExplain(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -332,8 +330,7 @@ func TestExplain(t *testing.T) { } func TestBindSemiJoinRewrite(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -355,8 +352,7 @@ using } func TestBindCTEMerge(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -376,8 +372,7 @@ using // TestBindingSymbolList tests sql with "?, ?, ?, ?", fixes #13871 func TestBindingSymbolList(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -414,8 +409,7 @@ func TestBindingSymbolList(t *testing.T) { } func TestDMLSQLBind(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -470,8 +464,7 @@ func TestDMLSQLBind(t *testing.T) { } func TestBestPlanInBaselines(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -510,8 +503,7 @@ func TestBestPlanInBaselines(t *testing.T) { } func TestErrorBind(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -560,8 +552,7 @@ func TestDMLEvolveBaselines(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -628,8 +619,7 @@ func TestAddEvolveTasks(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -662,8 +652,7 @@ func TestRuntimeHintsInEvolveTasks(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -680,8 +669,7 @@ func TestRuntimeHintsInEvolveTasks(t *testing.T) { } func TestDefaultSessionVars(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery(`show variables like "%baselines%"`).Sort().Check(testkit.Rows( @@ -695,8 +683,7 @@ func TestDefaultSessionVars(t *testing.T) { } func TestCaptureBaselinesScope(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -732,8 +719,7 @@ func TestCaptureBaselinesScope(t *testing.T) { } func TestStmtHints(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -749,8 +735,7 @@ func TestStmtHints(t *testing.T) { } func TestPrivileges(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -773,8 +758,7 @@ func TestHintsSetEvolveTask(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -798,8 +782,7 @@ func TestHintsSetEvolveTask(t *testing.T) { } func TestHintsSetID(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -871,8 +854,7 @@ func TestNotEvolvePlanForReadStorageHint(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -915,8 +897,7 @@ func TestNotEvolvePlanForReadStorageHint(t *testing.T) { } func TestBindingWithIsolationRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -954,8 +935,7 @@ func TestReCreateBindAfterEvolvePlan(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -984,8 +964,7 @@ func TestReCreateBindAfterEvolvePlan(t *testing.T) { } func TestInvisibleIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1019,8 +998,7 @@ func TestInvisibleIndex(t *testing.T) { } func TestSPMHitInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1047,8 +1025,7 @@ func TestSPMHitInfo(t *testing.T) { } func TestReCreateBind(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1080,8 +1057,7 @@ func TestReCreateBind(t *testing.T) { } func TestExplainShowBindSQL(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1099,8 +1075,7 @@ func TestExplainShowBindSQL(t *testing.T) { } func TestDMLIndexHintBind(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1122,8 +1097,7 @@ func TestForbidEvolvePlanBaseLinesBeforeGA(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) err := tk.ExecToErr("set @@tidb_evolve_plan_baselines=0") @@ -1137,8 +1111,7 @@ func TestForbidEvolvePlanBaseLinesBeforeGA(t *testing.T) { } func TestExplainTableStmts(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1150,8 +1123,7 @@ func TestExplainTableStmts(t *testing.T) { } func TestSPMWithoutUseDatabase(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk1 := testkit.NewTestKit(t, store) @@ -1176,8 +1148,7 @@ func TestSPMWithoutUseDatabase(t *testing.T) { } func TestBindingWithoutCharset(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1191,8 +1162,7 @@ func TestBindingWithoutCharset(t *testing.T) { } func TestBindingWithMultiParenthesis(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1214,8 +1184,7 @@ func TestGCBindRecord(t *testing.T) { bindinfo.Lease = originLease }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/bindinfo/capture_test.go b/bindinfo/capture_test.go index 0836196d86852..c92bc31316404 100644 --- a/bindinfo/capture_test.go +++ b/bindinfo/capture_test.go @@ -30,8 +30,7 @@ import ( ) func TestDMLCapturePlanBaseline(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -89,8 +88,7 @@ func TestDMLCapturePlanBaseline(t *testing.T) { } func TestCapturePlanBaseline(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -121,8 +119,7 @@ func TestCapturePlanBaseline(t *testing.T) { } func TestCapturePlanBaseline4DisabledStatus(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -181,8 +178,7 @@ func TestCapturePlanBaseline4DisabledStatus(t *testing.T) { } func TestCaptureDBCaseSensitivity(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -205,8 +201,7 @@ func TestCaptureDBCaseSensitivity(t *testing.T) { } func TestCaptureBaselinesDefaultDB(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -241,8 +236,7 @@ func TestCapturePreparedStmt(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -274,8 +268,7 @@ func TestCapturePreparedStmt(t *testing.T) { } func TestCapturePlanBaselineIgnoreTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -319,8 +312,7 @@ func TestBindingSource(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -374,8 +366,7 @@ func TestBindingSource(t *testing.T) { } func TestCapturedBindingCharset(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -398,8 +389,7 @@ func TestCapturedBindingCharset(t *testing.T) { } func TestConcurrentCapture(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -425,8 +415,7 @@ func TestConcurrentCapture(t *testing.T) { } func TestUpdateSubqueryCapture(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -454,8 +443,7 @@ func TestIssue20417(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -526,8 +514,7 @@ func TestIssue20417(t *testing.T) { } func TestCaptureWithZeroSlowLogThreshold(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -547,8 +534,7 @@ func TestCaptureWithZeroSlowLogThreshold(t *testing.T) { } func TestIssue25505(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) stmtsummary.StmtSummaryByDigestMap.Clear() @@ -617,8 +603,7 @@ func TestIssue25505(t *testing.T) { } func TestCaptureUserFilter(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) stmtsummary.StmtSummaryByDigestMap.Clear() @@ -708,8 +693,7 @@ func TestCaptureTableFilterValid(t *testing.T) { } func TestCaptureWildcardFilter(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) stmtsummary.StmtSummaryByDigestMap.Clear() @@ -811,8 +795,7 @@ func TestCaptureWildcardFilter(t *testing.T) { } func TestCaptureFilter(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -968,8 +951,7 @@ func TestCaptureFilter(t *testing.T) { } func TestCaptureHints(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("SET GLOBAL tidb_capture_plan_baselines = on") defer func() { diff --git a/bindinfo/handle_test.go b/bindinfo/handle_test.go index 7917672cca779..7831dc1358775 100644 --- a/bindinfo/handle_test.go +++ b/bindinfo/handle_test.go @@ -44,8 +44,7 @@ func utilNormalizeWithDefaultDB(t *testing.T, sql, db string) (string, string) { } func TestBindingCache(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -69,8 +68,7 @@ func TestBindingCache(t *testing.T) { } func TestBindingLastUpdateTime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -100,8 +98,7 @@ func TestBindingLastUpdateTime(t *testing.T) { } func TestBindingLastUpdateTimeWithInvalidBind(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -125,8 +122,7 @@ func TestBindingLastUpdateTimeWithInvalidBind(t *testing.T) { } func TestBindParse(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -215,8 +211,7 @@ func TestEvolveInvalidBindings(t *testing.T) { config.CheckTableBeforeDrop = originalVal }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -250,8 +245,7 @@ func TestEvolveInvalidBindings(t *testing.T) { } func TestSetBindingStatus(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -313,8 +307,7 @@ func TestSetBindingStatus(t *testing.T) { } func TestSetBindingStatusWithoutBindingInCache(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -474,8 +467,7 @@ var testSQLs = []struct { } func TestGlobalBinding(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -588,8 +580,7 @@ func TestGlobalBinding(t *testing.T) { } func TestOutdatedInfoSchema(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -603,8 +594,7 @@ func TestOutdatedInfoSchema(t *testing.T) { } func TestReloadBindings(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) diff --git a/bindinfo/optimize_test.go b/bindinfo/optimize_test.go index 228a44ab93693..6958bed465fda 100644 --- a/bindinfo/optimize_test.go +++ b/bindinfo/optimize_test.go @@ -23,8 +23,7 @@ import ( ) func TestOptimizeOnlyOnce(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/bindinfo/session_handle_test.go b/bindinfo/session_handle_test.go index 402f9574d911e..6e0f1b001a973 100644 --- a/bindinfo/session_handle_test.go +++ b/bindinfo/session_handle_test.go @@ -36,8 +36,7 @@ import ( ) func TestGlobalAndSessionBindingBothExist(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -88,8 +87,7 @@ func TestGlobalAndSessionBindingBothExist(t *testing.T) { } func TestSessionBinding(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -175,8 +173,7 @@ func TestSessionBinding(t *testing.T) { } func TestBaselineDBLowerCase(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) @@ -266,8 +263,7 @@ func TestBaselineDBLowerCase(t *testing.T) { } func TestShowGlobalBindings(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) stmtsummary.StmtSummaryByDigestMap.Clear() @@ -315,8 +311,7 @@ func TestShowGlobalBindings(t *testing.T) { } func TestDuplicateBindings(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -344,8 +339,7 @@ func TestDuplicateBindings(t *testing.T) { } func TestDefaultDB(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -415,8 +409,7 @@ func (msm *mockSessionManager) GetInternalSessionStartTSList() []uint64 { } func TestIssue19836(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -441,8 +434,7 @@ func TestIssue19836(t *testing.T) { } func TestTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -457,8 +449,7 @@ func TestTemporaryTable(t *testing.T) { } func TestLocalTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -472,8 +463,7 @@ func TestLocalTemporaryTable(t *testing.T) { } func TestDropSingleBindings(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -517,8 +507,7 @@ func TestDropSingleBindings(t *testing.T) { } func TestPreparedStmt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) diff --git a/bindinfo/temptable_test.go b/bindinfo/temptable_test.go index e92314df28d81..a3e0ff10dcd58 100644 --- a/bindinfo/temptable_test.go +++ b/bindinfo/temptable_test.go @@ -24,8 +24,7 @@ import ( // TestSelectBindingOnGlobalTempTableProhibited covers https://github.com/pingcap/tidb/issues/26377 func TestSelectBindingOnGlobalTempTableProhibited(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -58,8 +57,7 @@ func TestSelectBindingOnGlobalTempTableProhibited(t *testing.T) { // TestDMLBindingOnGlobalTempTableProhibited covers https://github.com/pingcap/tidb/issues/27422 func TestDMLBindingOnGlobalTempTableProhibited(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/br/pkg/backup/client_test.go b/br/pkg/backup/client_test.go index 952e1d9f9066a..d257cf9dcc07b 100644 --- a/br/pkg/backup/client_test.go +++ b/br/pkg/backup/client_test.go @@ -46,10 +46,10 @@ type testBackup struct { storage storage.ExternalStorage } -func createBackupSuite(t *testing.T) (s *testBackup, clean func()) { +func createBackupSuite(t *testing.T) *testBackup { tikvClient, _, pdClient, err := testutils.NewMockTiKV("", nil) require.NoError(t, err) - s = new(testBackup) + s := new(testBackup) s.mockGlue = &gluetidb.MockGlue{} s.mockPDClient = pdClient s.ctx, s.cancel = context.WithCancel(context.Background()) @@ -66,18 +66,17 @@ func createBackupSuite(t *testing.T) (s *testBackup, clean func()) { require.NoError(t, err) require.NoError(t, s.cluster.Start()) - clean = func() { + t.Cleanup(func() { mockMgr.Close() s.cluster.Stop() tikvClient.Close() pdClient.Close() - } - return + }) + return s } func TestGetTS(t *testing.T) { - s, clean := createBackupSuite(t) - defer clean() + s := createBackupSuite(t) // mockPDClient' physical ts and current ts will have deviation // so make this deviation tolerance 100ms @@ -254,8 +253,7 @@ func TestOnBackupRegionErrorResponse(t *testing.T) { } func TestSkipUnsupportedDDLJob(t *testing.T) { - s, clean := createBackupSuite(t) - defer clean() + s := createBackupSuite(t) tk := testkit.NewTestKit(t, s.cluster.Storage) tk.MustExec("CREATE DATABASE IF NOT EXISTS test_db;") @@ -307,8 +305,7 @@ func TestSkipUnsupportedDDLJob(t *testing.T) { } func TestCheckBackupIsLocked(t *testing.T) { - s, clean := createBackupSuite(t) - defer clean() + s := createBackupSuite(t) ctx := context.Background() diff --git a/br/pkg/backup/schema_test.go b/br/pkg/backup/schema_test.go index 9f3051a35ba41..bc6a58de73010 100644 --- a/br/pkg/backup/schema_test.go +++ b/br/pkg/backup/schema_test.go @@ -24,15 +24,15 @@ import ( "github.com/stretchr/testify/require" ) -func createMockCluster(t *testing.T) (m *mock.Cluster, clean func()) { +func createMockCluster(t *testing.T) *mock.Cluster { var err error - m, err = mock.NewCluster() + m, err := mock.NewCluster() require.NoError(t, err) require.NoError(t, m.Start()) - clean = func() { + t.Cleanup(func() { m.Stop() - } - return + }) + return m } func GetRandomStorage(t *testing.T) storage.ExternalStorage { @@ -89,8 +89,7 @@ func (sp *simpleProgress) get() int64 { } func TestBuildBackupRangeAndSchema(t *testing.T) { - m, clean := createMockCluster(t) - defer clean() + m := createMockCluster(t) tk := testkit.NewTestKit(t, m.Storage) @@ -189,8 +188,7 @@ func TestBuildBackupRangeAndSchema(t *testing.T) { } func TestBuildBackupRangeAndSchemaWithBrokenStats(t *testing.T) { - m, clean := createMockCluster(t) - defer clean() + m := createMockCluster(t) tk := testkit.NewTestKit(t, m.Storage) tk.MustExec("use test") @@ -270,8 +268,7 @@ func TestBuildBackupRangeAndSchemaWithBrokenStats(t *testing.T) { } func TestBackupSchemasForSystemTable(t *testing.T) { - m, clean := createMockCluster(t) - defer clean() + m := createMockCluster(t) tk := testkit.NewTestKit(t, m.Storage) es2 := GetRandomStorage(t) diff --git a/br/pkg/lightning/checkpoints/checkpoints_file_test.go b/br/pkg/lightning/checkpoints/checkpoints_file_test.go index 824434cb78f82..bfa5cecafecce 100644 --- a/br/pkg/lightning/checkpoints/checkpoints_file_test.go +++ b/br/pkg/lightning/checkpoints/checkpoints_file_test.go @@ -26,7 +26,7 @@ func newTestConfig() *config.Config { return cfg } -func newFileCheckpointsDB(t *testing.T) (*checkpoints.FileCheckpointsDB, func()) { +func newFileCheckpointsDB(t *testing.T) *checkpoints.FileCheckpointsDB { dir := t.TempDir() ctx := context.Background() cpdb, err := checkpoints.NewFileCheckpointsDB(ctx, filepath.Join(dir, "cp.pb")) @@ -120,10 +120,11 @@ func newFileCheckpointsDB(t *testing.T) (*checkpoints.FileCheckpointsDB, func()) ccm.MergeInto(cpd) cpdb.Update(ctx, map[string]*checkpoints.TableCheckpointDiff{"`db1`.`t2`": cpd}) - return cpdb, func() { + t.Cleanup(func() { err := cpdb.Close() require.NoError(t, err) - } + }) + return cpdb } func setInvalidStatus(cpdb *checkpoints.FileCheckpointsDB) { @@ -143,8 +144,7 @@ func setInvalidStatus(cpdb *checkpoints.FileCheckpointsDB) { func TestGet(t *testing.T) { ctx := context.Background() - cpdb, clean := newFileCheckpointsDB(t) - defer clean() + cpdb := newFileCheckpointsDB(t) // 5. get back the checkpoints @@ -205,8 +205,7 @@ func TestGet(t *testing.T) { func TestRemoveAllCheckpoints(t *testing.T) { ctx := context.Background() - cpdb, clean := newFileCheckpointsDB(t) - defer clean() + cpdb := newFileCheckpointsDB(t) err := cpdb.RemoveCheckpoint(ctx, "all") require.NoError(t, err) @@ -222,8 +221,7 @@ func TestRemoveAllCheckpoints(t *testing.T) { func TestRemoveOneCheckpoint(t *testing.T) { ctx := context.Background() - cpdb, clean := newFileCheckpointsDB(t) - defer clean() + cpdb := newFileCheckpointsDB(t) err := cpdb.RemoveCheckpoint(ctx, "`db1`.`t2`") require.NoError(t, err) @@ -239,8 +237,7 @@ func TestRemoveOneCheckpoint(t *testing.T) { func TestIgnoreAllErrorCheckpoints(t *testing.T) { ctx := context.Background() - cpdb, clean := newFileCheckpointsDB(t) - defer clean() + cpdb := newFileCheckpointsDB(t) setInvalidStatus(cpdb) @@ -258,8 +255,7 @@ func TestIgnoreAllErrorCheckpoints(t *testing.T) { func TestIgnoreOneErrorCheckpoints(t *testing.T) { ctx := context.Background() - cpdb, clean := newFileCheckpointsDB(t) - defer clean() + cpdb := newFileCheckpointsDB(t) setInvalidStatus(cpdb) @@ -277,8 +273,7 @@ func TestIgnoreOneErrorCheckpoints(t *testing.T) { func TestDestroyAllErrorCheckpoints(t *testing.T) { ctx := context.Background() - cpdb, clean := newFileCheckpointsDB(t) - defer clean() + cpdb := newFileCheckpointsDB(t) setInvalidStatus(cpdb) @@ -310,8 +305,7 @@ func TestDestroyAllErrorCheckpoints(t *testing.T) { func TestDestroyOneErrorCheckpoint(t *testing.T) { ctx := context.Background() - cpdb, clean := newFileCheckpointsDB(t) - defer clean() + cpdb := newFileCheckpointsDB(t) setInvalidStatus(cpdb) diff --git a/br/pkg/lightning/checkpoints/checkpoints_sql_test.go b/br/pkg/lightning/checkpoints/checkpoints_sql_test.go index a0f59ab771915..959a7b9ea7187 100644 --- a/br/pkg/lightning/checkpoints/checkpoints_sql_test.go +++ b/br/pkg/lightning/checkpoints/checkpoints_sql_test.go @@ -22,7 +22,7 @@ type cpSQLSuite struct { cpdb *checkpoints.MySQLCheckpointsDB } -func newCPSQLSuite(t *testing.T) (*cpSQLSuite, func()) { +func newCPSQLSuite(t *testing.T) *cpSQLSuite { var s cpSQLSuite db, mock, err := sqlmock.New() require.NoError(t, err) @@ -50,17 +50,17 @@ func newCPSQLSuite(t *testing.T) (*cpSQLSuite, func()) { require.NoError(t, err) require.Nil(t, s.mock.ExpectationsWereMet()) s.cpdb = cpdb - return &s, func() { + t.Cleanup(func() { s.mock.ExpectClose() require.Nil(t, s.cpdb.Close()) require.Nil(t, s.mock.ExpectationsWereMet()) - } + }) + return &s } func TestNormalOperations(t *testing.T) { ctx := context.Background() - s, clean := newCPSQLSuite(t) - defer clean() + s := newCPSQLSuite(t) cpdb := s.cpdb // 2. initialize with checkpoint data. @@ -298,8 +298,7 @@ func TestNormalOperations(t *testing.T) { } func TestRemoveAllCheckpoints_SQL(t *testing.T) { - s, clean := newCPSQLSuite(t) - defer clean() + s := newCPSQLSuite(t) s.mock.ExpectExec("DROP SCHEMA `mock-schema`").WillReturnResult(sqlmock.NewResult(0, 1)) @@ -334,8 +333,7 @@ func TestRemoveAllCheckpoints_SQL(t *testing.T) { } func TestRemoveOneCheckpoint_SQL(t *testing.T) { - s, clean := newCPSQLSuite(t) - defer clean() + s := newCPSQLSuite(t) s.mock.ExpectBegin() s.mock. @@ -357,8 +355,7 @@ func TestRemoveOneCheckpoint_SQL(t *testing.T) { } func TestIgnoreAllErrorCheckpoints_SQL(t *testing.T) { - s, clean := newCPSQLSuite(t) - defer clean() + s := newCPSQLSuite(t) s.mock.ExpectBegin() s.mock. @@ -376,8 +373,7 @@ func TestIgnoreAllErrorCheckpoints_SQL(t *testing.T) { } func TestIgnoreOneErrorCheckpoint(t *testing.T) { - s, clean := newCPSQLSuite(t) - defer clean() + s := newCPSQLSuite(t) s.mock.ExpectBegin() s.mock. @@ -395,8 +391,7 @@ func TestIgnoreOneErrorCheckpoint(t *testing.T) { } func TestDestroyAllErrorCheckpoints_SQL(t *testing.T) { - s, clean := newCPSQLSuite(t) - defer clean() + s := newCPSQLSuite(t) s.mock.ExpectBegin() s.mock. @@ -430,8 +425,7 @@ func TestDestroyAllErrorCheckpoints_SQL(t *testing.T) { } func TestDestroyOneErrorCheckpoints(t *testing.T) { - s, clean := newCPSQLSuite(t) - defer clean() + s := newCPSQLSuite(t) s.mock.ExpectBegin() s.mock. @@ -466,8 +460,7 @@ func TestDestroyOneErrorCheckpoints(t *testing.T) { func TestDump(t *testing.T) { ctx := context.Background() - s, clean := newCPSQLSuite(t) - defer clean() + s := newCPSQLSuite(t) tm := time.Unix(1555555555, 0).UTC() s.mock. @@ -529,8 +522,7 @@ func TestDump(t *testing.T) { func TestMoveCheckpoints(t *testing.T) { ctx := context.Background() - s, clean := newCPSQLSuite(t) - defer clean() + s := newCPSQLSuite(t) s.mock. ExpectExec("CREATE SCHEMA IF NOT EXISTS `mock-schema\\.12345678\\.bak`"). diff --git a/br/pkg/lightning/lightning_server_serial_test.go b/br/pkg/lightning/lightning_server_serial_test.go index 478dafdcac68a..4a696ecbc678e 100644 --- a/br/pkg/lightning/lightning_server_serial_test.go +++ b/br/pkg/lightning/lightning_server_serial_test.go @@ -43,7 +43,7 @@ type lightningServerSuite struct { taskRunCh chan struct{} } -func createSuite(t *testing.T) (s *lightningServerSuite, clean func()) { +func createSuite(t *testing.T) *lightningServerSuite { initProgressOnce.Do(web.EnableCurrentProgress) cfg := config.NewGlobalConfig() @@ -56,7 +56,7 @@ func createSuite(t *testing.T) (s *lightningServerSuite, clean func()) { cfg.TikvImporter.Backend = config.BackendLocal cfg.TikvImporter.SortedKVDir = t.TempDir() - s = new(lightningServerSuite) + s := new(lightningServerSuite) s.lightning = New(cfg) s.taskRunCh = make(chan struct{}, 1) s.taskCfgCh = make(chan *config.Config) @@ -65,17 +65,16 @@ func createSuite(t *testing.T) (s *lightningServerSuite, clean func()) { _ = s.lightning.GoServe() require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/br/pkg/lightning/SkipRunTask", "return")) - clean = func() { + t.Cleanup(func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/br/pkg/lightning/SkipRunTask")) s.lightning.Stop() - } + }) - return + return s } func TestRunServer(t *testing.T) { - s, clean := createSuite(t) - defer clean() + s := createSuite(t) url := "http://" + s.lightning.serverAddr.String() + "/tasks" @@ -147,8 +146,7 @@ func TestRunServer(t *testing.T) { } func TestGetDeleteTask(t *testing.T) { - s, clean := createSuite(t) - defer clean() + s := createSuite(t) url := "http://" + s.lightning.serverAddr.String() + "/tasks" @@ -304,8 +302,7 @@ func TestGetDeleteTask(t *testing.T) { } func TestHTTPAPIOutsideServerMode(t *testing.T) { - s, clean := createSuite(t) - defer clean() + s := createSuite(t) s.lightning.globalCfg.App.ServerMode = false diff --git a/br/pkg/lightning/restore/meta_manager_test.go b/br/pkg/lightning/restore/meta_manager_test.go index 0133986fc794b..20f6c5c58849b 100644 --- a/br/pkg/lightning/restore/meta_manager_test.go +++ b/br/pkg/lightning/restore/meta_manager_test.go @@ -82,7 +82,7 @@ func newTableRestore(t *testing.T, kvStore kv.Storage) *TableRestore { } } -func newMetaMgrSuite(t *testing.T) (*metaMgrSuite, func()) { +func newMetaMgrSuite(t *testing.T) *metaMgrSuite { db, m, err := sqlmock.New() require.NoError(t, err) @@ -101,15 +101,15 @@ func newMetaMgrSuite(t *testing.T) (*metaMgrSuite, func()) { s.mockDB = m s.checksumMgr = &testChecksumMgr{} - return &s, func() { + t.Cleanup(func() { require.NoError(t, s.mockDB.ExpectationsWereMet()) require.NoError(t, kvStore.Close()) - } + }) + return &s } func TestAllocTableRowIDsSingleTable(t *testing.T) { - s, clean := newMetaMgrSuite(t) - defer clean() + s := newMetaMgrSuite(t) ctx := context.WithValue(context.Background(), &checksumManagerKey, s.checksumMgr) @@ -129,8 +129,7 @@ func TestAllocTableRowIDsSingleTable(t *testing.T) { } func TestAllocTableRowIDsSingleTableAutoIDNot0(t *testing.T) { - s, clean := newMetaMgrSuite(t) - defer clean() + s := newMetaMgrSuite(t) ctx := context.WithValue(context.Background(), &checksumManagerKey, s.checksumMgr) rows := [][]driver.Value{ @@ -150,8 +149,7 @@ func TestAllocTableRowIDsSingleTableAutoIDNot0(t *testing.T) { } func TestAllocTableRowIDsSingleTableContainsData(t *testing.T) { - s, clean := newMetaMgrSuite(t) - defer clean() + s := newMetaMgrSuite(t) ctx := context.WithValue(context.Background(), &checksumManagerKey, s.checksumMgr) @@ -171,8 +169,7 @@ func TestAllocTableRowIDsSingleTableContainsData(t *testing.T) { } func TestAllocTableRowIDsSingleTableSkipChecksum(t *testing.T) { - s, clean := newMetaMgrSuite(t) - defer clean() + s := newMetaMgrSuite(t) s.mgr.needChecksum = false defer func() { @@ -197,8 +194,7 @@ func TestAllocTableRowIDsSingleTableSkipChecksum(t *testing.T) { } func TestAllocTableRowIDsAllocated(t *testing.T) { - s, clean := newMetaMgrSuite(t) - defer clean() + s := newMetaMgrSuite(t) ctx := context.WithValue(context.Background(), &checksumManagerKey, s.checksumMgr) @@ -216,8 +212,7 @@ func TestAllocTableRowIDsAllocated(t *testing.T) { } func TestAllocTableRowIDsFinished(t *testing.T) { - s, clean := newMetaMgrSuite(t) - defer clean() + s := newMetaMgrSuite(t) ctx := context.WithValue(context.Background(), &checksumManagerKey, s.checksumMgr) @@ -235,8 +230,7 @@ func TestAllocTableRowIDsFinished(t *testing.T) { } func TestAllocTableRowIDsMultiTasksInit(t *testing.T) { - s, clean := newMetaMgrSuite(t) - defer clean() + s := newMetaMgrSuite(t) ctx := context.WithValue(context.Background(), &checksumManagerKey, s.checksumMgr) rows := [][]driver.Value{ @@ -256,8 +250,7 @@ func TestAllocTableRowIDsMultiTasksInit(t *testing.T) { } func TestAllocTableRowIDsMultiTasksAllocated(t *testing.T) { - s, clean := newMetaMgrSuite(t) - defer clean() + s := newMetaMgrSuite(t) ctx := context.WithValue(context.Background(), &checksumManagerKey, s.checksumMgr) rows := [][]driver.Value{ @@ -276,8 +269,7 @@ func TestAllocTableRowIDsMultiTasksAllocated(t *testing.T) { } func TestAllocTableRowIDsRetryOnTableInChecksum(t *testing.T) { - s, clean := newMetaMgrSuite(t) - defer clean() + s := newMetaMgrSuite(t) ctx := context.WithValue(context.Background(), &checksumManagerKey, s.checksumMgr) s.mockDB.ExpectExec("SET SESSION tidb_txn_mode = 'pessimistic';"). diff --git a/br/pkg/lightning/restore/tidb_test.go b/br/pkg/lightning/restore/tidb_test.go index 69c5d6e43df8e..9b204b2da22b1 100644 --- a/br/pkg/lightning/restore/tidb_test.go +++ b/br/pkg/lightning/restore/tidb_test.go @@ -43,7 +43,7 @@ type tidbSuite struct { tiGlue glue.Glue } -func newTiDBSuite(t *testing.T) (*tidbSuite, func()) { +func newTiDBSuite(t *testing.T) *tidbSuite { var s tidbSuite db, mock, err := sqlmock.New() require.NoError(t, err) @@ -54,15 +54,15 @@ func newTiDBSuite(t *testing.T) (*tidbSuite, func()) { s.timgr = NewTiDBManagerWithDB(db, defaultSQLMode) s.tiGlue = glue.NewExternalTiDBGlue(db, defaultSQLMode) - return &s, func() { + t.Cleanup(func() { s.timgr.Close() require.NoError(t, s.mockDB.ExpectationsWereMet()) - } + }) + return &s } func TestCreateTableIfNotExistsStmt(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) dbName := "testdb" createSQLIfNotExistsStmt := func(createTable, tableName string) []string { @@ -166,8 +166,7 @@ func TestCreateTableIfNotExistsStmt(t *testing.T) { } func TestInitSchema(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -195,8 +194,7 @@ func TestInitSchema(t *testing.T) { } func TestInitSchemaSyntaxError(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -212,8 +210,7 @@ func TestInitSchemaSyntaxError(t *testing.T) { } func TestInitSchemaErrorLost(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -238,8 +235,7 @@ func TestInitSchemaErrorLost(t *testing.T) { } func TestInitSchemaUnsupportedSchemaError(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -261,8 +257,7 @@ func TestInitSchemaUnsupportedSchemaError(t *testing.T) { } func TestDropTable(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -276,8 +271,7 @@ func TestDropTable(t *testing.T) { } func TestLoadSchemaInfo(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) metrics := metric.NewMetrics(promutil.NewDefaultFactory()) ctx := metric.NewContext(context.Background(), metrics) @@ -369,8 +363,7 @@ func TestLoadSchemaInfoMissing(t *testing.T) { } func TestGetGCLifetime(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -385,8 +378,7 @@ func TestGetGCLifetime(t *testing.T) { } func TestSetGCLifetime(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -401,8 +393,7 @@ func TestSetGCLifetime(t *testing.T) { } func TestAlterAutoInc(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -422,8 +413,7 @@ func TestAlterAutoInc(t *testing.T) { } func TestAlterAutoRandom(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -447,8 +437,7 @@ func TestAlterAutoRandom(t *testing.T) { } func TestObtainRowFormatVersionSucceed(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -483,8 +472,7 @@ func TestObtainRowFormatVersionSucceed(t *testing.T) { } func TestObtainRowFormatVersionFailure(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() s.mockDB. @@ -511,8 +499,7 @@ func TestObtainRowFormatVersionFailure(t *testing.T) { } func TestObtainNewCollationEnabled(t *testing.T) { - s, clean := newTiDBSuite(t) - defer clean() + s := newTiDBSuite(t) ctx := context.Background() // cannot retry on this err diff --git a/br/pkg/restore/db_test.go b/br/pkg/restore/db_test.go index 315085f42f4c6..8801a6af34727 100644 --- a/br/pkg/restore/db_test.go +++ b/br/pkg/restore/db_test.go @@ -35,9 +35,9 @@ type testRestoreSchemaSuite struct { storage storage.ExternalStorage } -func createRestoreSchemaSuite(t *testing.T) (s *testRestoreSchemaSuite, clean func()) { +func createRestoreSchemaSuite(t *testing.T) *testRestoreSchemaSuite { var err error - s = new(testRestoreSchemaSuite) + s := new(testRestoreSchemaSuite) s.mockGlue = &gluetidb.MockGlue{} s.mock, err = mock.NewCluster() require.NoError(t, err) @@ -45,15 +45,14 @@ func createRestoreSchemaSuite(t *testing.T) (s *testRestoreSchemaSuite, clean fu s.storage, err = storage.NewLocalStorage(base) require.NoError(t, err) require.NoError(t, s.mock.Start()) - clean = func() { + t.Cleanup(func() { s.mock.Stop() - } - return + }) + return s } func TestRestoreAutoIncID(t *testing.T) { - s, clean := createRestoreSchemaSuite(t) - defer clean() + s := createRestoreSchemaSuite(t) tk := testkit.NewTestKit(t, s.mock.Storage) tk.MustExec("use test") tk.MustExec("set @@sql_mode=''") @@ -130,8 +129,7 @@ func TestRestoreAutoIncID(t *testing.T) { } func TestCreateTablesInDb(t *testing.T) { - s, clean := createRestoreSchemaSuite(t) - defer clean() + s := createRestoreSchemaSuite(t) info, err := s.mock.Domain.GetSnapshotInfoSchema(math.MaxUint64) require.NoErrorf(t, err, "Error get snapshot info schema: %s", err) @@ -168,8 +166,7 @@ func TestCreateTablesInDb(t *testing.T) { } func TestFilterDDLJobs(t *testing.T) { - s, clean := createRestoreSchemaSuite(t) - defer clean() + s := createRestoreSchemaSuite(t) tk := testkit.NewTestKit(t, s.mock.Storage) tk.MustExec("CREATE DATABASE IF NOT EXISTS test_db;") tk.MustExec("CREATE TABLE IF NOT EXISTS test_db.test_table (c1 INT);") @@ -233,8 +230,7 @@ func TestFilterDDLJobs(t *testing.T) { } func TestFilterDDLJobsV2(t *testing.T) { - s, clean := createRestoreSchemaSuite(t) - defer clean() + s := createRestoreSchemaSuite(t) tk := testkit.NewTestKit(t, s.mock.Storage) tk.MustExec("CREATE DATABASE IF NOT EXISTS test_db;") tk.MustExec("CREATE TABLE IF NOT EXISTS test_db.test_table (c1 INT);") @@ -299,8 +295,7 @@ func TestFilterDDLJobsV2(t *testing.T) { } func TestDB_ExecDDL(t *testing.T) { - s, clean := createRestoreSchemaSuite(t) - defer clean() + s := createRestoreSchemaSuite(t) ctx := context.Background() ddlJobs := []*model.Job{ diff --git a/br/pkg/storage/s3_test.go b/br/pkg/storage/s3_test.go index de6a29a39117d..3990e5eb82bc1 100644 --- a/br/pkg/storage/s3_test.go +++ b/br/pkg/storage/s3_test.go @@ -34,9 +34,9 @@ type s3Suite struct { storage *S3Storage } -func createS3Suite(c gomock.TestReporter) (s *s3Suite, clean func()) { - s = new(s3Suite) - s.controller = gomock.NewController(c) +func createS3Suite(t *testing.T) *s3Suite { + s := new(s3Suite) + s.controller = gomock.NewController(t) s.s3 = mock.NewMockS3API(s.controller) s.storage = NewS3StorageForTest( s.s3, @@ -50,11 +50,11 @@ func createS3Suite(c gomock.TestReporter) (s *s3Suite, clean func()) { }, ) - clean = func() { + t.Cleanup(func() { s.controller.Finish() - } + }) - return + return s } func createGetBucketRegionServer(region string, statusCode int, incHeader bool) *httptest.Server { @@ -426,8 +426,7 @@ func TestS3Range(t *testing.T) { // TestWriteNoError ensures the WriteFile API issues a PutObject request and wait // until the object is available in the S3 bucket. func TestWriteNoError(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() putCall := s.s3.EXPECT(). @@ -459,8 +458,7 @@ func TestWriteNoError(t *testing.T) { // TestReadNoError ensures the ReadFile API issues a GetObject request and correctly // read the entire body. func TestReadNoError(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() s.s3.EXPECT(). @@ -481,8 +479,7 @@ func TestReadNoError(t *testing.T) { // TestFileExistsNoError ensures the FileExists API issues a HeadObject request // and reports a file exists. func TestFileExistsNoError(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() s.s3.EXPECT(). @@ -499,8 +496,7 @@ func TestFileExistsNoError(t *testing.T) { } func TestDeleteFileNoError(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() s.s3.EXPECT(). @@ -516,8 +512,7 @@ func TestDeleteFileNoError(t *testing.T) { } func TestDeleteFileMissing(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() err := awserr.New(s3.ErrCodeNoSuchKey, "no such key", nil) @@ -526,8 +521,7 @@ func TestDeleteFileMissing(t *testing.T) { } func TestDeleteFileError(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() expectedErr := errors.New("just some unrelated error") @@ -544,8 +538,7 @@ func TestDeleteFileError(t *testing.T) { // TestFileExistsNoSuckKey ensures FileExists API reports file missing if S3's // HeadObject request replied NoSuchKey. func TestFileExistsMissing(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() s.s3.EXPECT(). @@ -559,8 +552,7 @@ func TestFileExistsMissing(t *testing.T) { // TestWriteError checks that a PutObject error is propagated. func TestWriteError(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() expectedErr := awserr.New(s3.ErrCodeNoSuchBucket, "no such bucket", nil) @@ -575,8 +567,7 @@ func TestWriteError(t *testing.T) { // TestWriteError checks that a GetObject error is propagated. func TestReadError(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() expectedErr := awserr.New(s3.ErrCodeNoSuchKey, "no such key", nil) @@ -592,8 +583,7 @@ func TestReadError(t *testing.T) { // TestFileExistsError checks that a HeadObject error is propagated. func TestFileExistsError(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() expectedErr := errors.New("just some unrelated error") @@ -609,8 +599,7 @@ func TestFileExistsError(t *testing.T) { // TestOpenAsBufio checks that we can open a file for reading via bufio. func TestOpenAsBufio(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() s.s3.EXPECT(). @@ -658,8 +647,7 @@ func (r *alphabetReader) Close() error { // TestOpenReadSlowly checks that we can open a file for reading, even if the // reader emits content one byte at a time. func TestOpenReadSlowly(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() s.s3.EXPECT(). @@ -678,8 +666,7 @@ func TestOpenReadSlowly(t *testing.T) { // TestOpenSeek checks that Seek is implemented correctly. func TestOpenSeek(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() someRandomBytes := make([]byte, 1000000) @@ -797,8 +784,7 @@ func (s *s3Suite) expectedCalls(ctx context.Context, t *testing.T, data []byte, // TestS3ReaderWithRetryEOF check the Read with retry and end with io.EOF. func TestS3ReaderWithRetryEOF(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() someRandomBytes := make([]byte, 100) @@ -844,8 +830,7 @@ func TestS3ReaderWithRetryEOF(t *testing.T) { // TestS3ReaderWithRetryFailed check the Read with retry failed after maxRetryTimes. func TestS3ReaderWithRetryFailed(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() someRandomBytes := make([]byte, 100) @@ -882,8 +867,7 @@ func TestS3ReaderWithRetryFailed(t *testing.T) { // TestWalkDir checks WalkDir retrieves all directory content under a prefix. func TestWalkDir(t *testing.T) { - s, clean := createS3Suite(t) - defer clean() + s := createS3Suite(t) ctx := aws.BackgroundContext() contents := []*s3.Object{ diff --git a/build/patches/com_github_grpc_ecosystem_grpc_gateway.patch b/build/patches/com_github_grpc_ecosystem_grpc_gateway.patch index 62e17eebceaea..304063a90cb27 100644 --- a/build/patches/com_github_grpc_ecosystem_grpc_gateway.patch +++ b/build/patches/com_github_grpc_ecosystem_grpc_gateway.patch @@ -48,7 +48,10 @@ diff --git a/runtime/BUILD.bazel b/runtime/BUILD.bazel index c4d18f624..41d5319fb 100644 --- a/runtime/BUILD.bazel +++ b/runtime/BUILD.bazel -@@ -30,13 +30,14 @@ go_library( +@@ -27,16 +27,17 @@ + deps = [ + "//internal:go_default_library", + "//utilities:go_default_library", - "@com_github_golang_protobuf//descriptor:go_default_library_gen", + "@com_github_golang_protobuf//descriptor:descriptor", "@com_github_golang_protobuf//jsonpb:go_default_library_gen", diff --git a/ddl/attributes_sql_test.go b/ddl/attributes_sql_test.go index 1eddc49299c99..de00a63a7a661 100644 --- a/ddl/attributes_sql_test.go +++ b/ddl/attributes_sql_test.go @@ -56,8 +56,7 @@ func MockGC(tk *testkit.TestKit) (string, string, string, func()) { } func TestAlterTableAttributes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -77,8 +76,7 @@ func TestAlterTableAttributes(t *testing.T) { } func TestAlterTablePartitionAttributes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table alter_p (c int) @@ -139,8 +137,7 @@ PARTITION BY RANGE (c) ( } func TestTruncateTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table truncate_t (c int) @@ -185,8 +182,7 @@ PARTITION BY RANGE (c) ( } func TestRenameTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table rename_t (c int) @@ -232,8 +228,7 @@ PARTITION BY RANGE (c) ( } func TestRecoverTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table recover_t (c int) @@ -272,8 +267,7 @@ PARTITION BY RANGE (c) ( } func TestFlashbackTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) _, err := infosync.GlobalInfoSyncerInit(context.Background(), dom.DDL().GetID(), dom.ServerID, dom.GetEtcdClient(), true) require.NoError(t, err) @@ -331,8 +325,7 @@ PARTITION BY RANGE (c) ( } func TestDropTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) _, err := infosync.GlobalInfoSyncerInit(context.Background(), dom.DDL().GetID(), dom.ServerID, dom.GetEtcdClient(), true) require.NoError(t, err) @@ -385,8 +378,7 @@ PARTITION BY RANGE (c) ( } func TestCreateWithSameName(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) _, err := infosync.GlobalInfoSyncerInit(context.Background(), dom.DDL().GetID(), dom.ServerID, dom.GetEtcdClient(), true) require.NoError(t, err) @@ -450,8 +442,7 @@ PARTITION BY RANGE (c) ( } func TestPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) _, err := infosync.GlobalInfoSyncerInit(context.Background(), dom.DDL().GetID(), dom.ServerID, dom.GetEtcdClient(), true) require.NoError(t, err) @@ -511,8 +502,7 @@ PARTITION BY RANGE (c) ( } func TestDropSchema(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) _, err := infosync.GlobalInfoSyncerInit(context.Background(), dom.DDL().GetID(), dom.ServerID, dom.GetEtcdClient(), true) require.NoError(t, err) @@ -538,8 +528,7 @@ PARTITION BY RANGE (c) ( } func TestDefaultKeyword(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) _, err := infosync.GlobalInfoSyncerInit(context.Background(), dom.DDL().GetID(), dom.ServerID, dom.GetEtcdClient(), true) require.NoError(t, err) diff --git a/ddl/cancel_test.go b/ddl/cancel_test.go index 64179c19a8eca..f86c02a728f83 100644 --- a/ddl/cancel_test.go +++ b/ddl/cancel_test.go @@ -226,8 +226,7 @@ func cancelSuccess(rs *testkit.Result) bool { } func TestCancel(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 100*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 100*time.Millisecond) tk := testkit.NewTestKit(t, store) tkCancel := testkit.NewTestKit(t, store) diff --git a/ddl/column_change_test.go b/ddl/column_change_test.go index 0ed158cd740a0..8276941ddc3b3 100644 --- a/ddl/column_change_test.go +++ b/ddl/column_change_test.go @@ -39,8 +39,7 @@ import ( ) func TestColumnAdd(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddl.SetWaitTimeWhenErrorOccurred(1 * time.Microsecond) tk := testkit.NewTestKit(t, store) internal := testkit.NewTestKit(t, store) @@ -140,8 +139,7 @@ func TestColumnAdd(t *testing.T) { } func TestModifyAutoRandColumnWithMetaKeyChanged(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddl.SetWaitTimeWhenErrorOccurred(1 * time.Microsecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/column_modify_test.go b/ddl/column_modify_test.go index 60204a14c6da3..3d11f2021075e 100644 --- a/ddl/column_modify_test.go +++ b/ddl/column_modify_test.go @@ -48,8 +48,7 @@ import ( const columnModifyLease = 600 * time.Millisecond func TestAddAndDropColumn(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -259,8 +258,7 @@ DropLoop: // Column info from schema in build-insert-plan should be public only, // otherwise they will not be consisted with Table.Col(), then the server will panic. func TestDropColumn(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -298,8 +296,7 @@ func TestDropColumn(t *testing.T) { } func TestChangeColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -388,8 +385,7 @@ func TestChangeColumn(t *testing.T) { } func TestRenameColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -455,8 +451,7 @@ func TestRenameColumn(t *testing.T) { } func TestVirtualColumnDDL(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create global temporary table test_gv_ddl(a int, b int as (a+8) virtual, c int as (b + 2) stored) on commit delete rows;`) @@ -501,8 +496,7 @@ func TestVirtualColumnDDL(t *testing.T) { } func TestGeneratedColumnDDL(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -628,8 +622,7 @@ func TestGeneratedColumnDDL(t *testing.T) { } func TestColumnModifyingDefinition(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table test2 (c1 int, c2 int, c3 int default 1, index (c1));") @@ -653,8 +646,7 @@ func TestColumnModifyingDefinition(t *testing.T) { } func TestColumnModifyingDefaultValue(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -677,8 +669,7 @@ func TestColumnModifyingDefaultValue(t *testing.T) { } func TestTransactionWithWriteOnlyColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -733,8 +724,7 @@ func TestTransactionWithWriteOnlyColumn(t *testing.T) { } func TestColumnCheck(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists column_check") @@ -745,8 +735,7 @@ func TestColumnCheck(t *testing.T) { } func TestModifyGeneratedColumn(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") modIdxColErrMsg := "[ddl:3106]'modifying an indexed column' is not supported for generated columns." @@ -806,8 +795,7 @@ func TestModifyGeneratedColumn(t *testing.T) { } func TestCheckColumnDefaultValue(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists text_default_text;") @@ -858,8 +846,7 @@ func TestCheckColumnDefaultValue(t *testing.T) { } func TestCheckConvertToCharacter(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a varchar(10) charset binary);") @@ -873,8 +860,7 @@ func TestCheckConvertToCharacter(t *testing.T) { } func TestAddMultiColumnsIndex(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists tidb;") tk.MustExec("create database tidb;") @@ -895,8 +881,7 @@ func TestAddMultiColumnsIndex(t *testing.T) { // For issue #31735. func TestAddGeneratedColumnAndInsert(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -945,8 +930,7 @@ func TestAddGeneratedColumnAndInsert(t *testing.T) { } func TestColumnTypeChangeGenUniqueChangingName(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1064,8 +1048,7 @@ func TestColumnTypeChangeGenUniqueChangingName(t *testing.T) { } func TestWriteReorgForColumnTypeChangeOnAmendTxn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("set global tidb_enable_amend_pessimistic_txn = ON") diff --git a/ddl/column_test.go b/ddl/column_test.go index c7fb864666c27..7311a331594db 100644 --- a/ddl/column_test.go +++ b/ddl/column_test.go @@ -156,8 +156,7 @@ func testDropColumns(tk *testkit.TestKit, t *testing.T, ctx sessionctx.Context, } func TestColumnBasic(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -646,8 +645,7 @@ func testGetColumn(t table.Table, name string, isExist bool) error { } func TestAddColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) d := dom.DDL() ddlChecker := schematracker.NewChecker(d) @@ -712,8 +710,7 @@ func TestAddColumn(t *testing.T) { } func TestAddColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) d := dom.DDL() ddlChecker := schematracker.NewChecker(d) @@ -793,8 +790,7 @@ func TestAddColumns(t *testing.T) { } func TestDropColumnInColumnTest(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (c1 int, c2 int, c3 int, c4 int);") @@ -855,8 +851,7 @@ func TestDropColumnInColumnTest(t *testing.T) { } func TestDropColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (c1 int, c2 int, c3 int, c4 int);") @@ -927,8 +922,7 @@ func testGetTable(t *testing.T, dom *domain.Domain, tableID int64) table.Table { } func TestGetDefaultValueOfColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (da date default '1962-03-03 23:33:34', dt datetime default '1962-03-03'," + diff --git a/ddl/column_type_change_test.go b/ddl/column_type_change_test.go index c68f87c9a7dde..72d3ffd6a06af 100644 --- a/ddl/column_type_change_test.go +++ b/ddl/column_type_change_test.go @@ -40,8 +40,7 @@ import ( ) func TestColumnTypeChangeBetweenInteger(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -106,8 +105,7 @@ func TestColumnTypeChangeBetweenInteger(t *testing.T) { } func TestColumnTypeChangeStateBetweenInteger(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -175,8 +173,7 @@ func TestColumnTypeChangeStateBetweenInteger(t *testing.T) { } func TestRollbackColumnTypeChangeBetweenInteger(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -255,8 +252,7 @@ func init() { } func TestColumnTypeChangeFromIntegerToOthers(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -407,8 +403,7 @@ func TestColumnTypeChangeFromIntegerToOthers(t *testing.T) { } func TestColumnTypeChangeBetweenVarcharAndNonVarchar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop database if exists col_type_change_char;") @@ -436,8 +431,7 @@ func TestColumnTypeChangeBetweenVarcharAndNonVarchar(t *testing.T) { } func TestColumnTypeChangeFromStringToOthers(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -665,8 +659,7 @@ func TestColumnTypeChangeFromStringToOthers(t *testing.T) { } func TestColumnTypeChangeFromNumericToOthers(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -930,8 +923,7 @@ func TestColumnTypeChangeFromNumericToOthers(t *testing.T) { // Test issue #20529. func TestColumnTypeChangeIgnoreDisplayLength(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -972,8 +964,7 @@ func TestColumnTypeChangeIgnoreDisplayLength(t *testing.T) { } func TestColumnTypeChangeFromDateTimeTypeToOthers(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1151,8 +1142,7 @@ func TestColumnTypeChangeFromDateTimeTypeToOthers(t *testing.T) { } func TestColumnTypeChangeFromJsonToOthers(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1545,8 +1535,7 @@ func TestColumnTypeChangeFromJsonToOthers(t *testing.T) { } func TestUpdateDataAfterChangeTimestampToDate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, t1") @@ -1568,8 +1557,7 @@ func TestUpdateDataAfterChangeTimestampToDate(t *testing.T) { // TestRowFormat is used to close issue #21391, the encoded row in column type change should be aware of the new row format. func TestRowFormat(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1595,8 +1583,7 @@ func TestRowFormat(t *testing.T) { // It's good because the insert / update logic will cast the related column to changing column rather than use // origin default value directly. func TestChangingColOriginDefaultValue(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1672,8 +1659,7 @@ func TestChangingColOriginDefaultValue(t *testing.T) { } func TestChangingColOriginDefaultValueAfterAddColAndCastSucc(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1760,8 +1746,7 @@ func TestChangingColOriginDefaultValueAfterAddColAndCastSucc(t *testing.T) { // TestChangingColOriginDefaultValueAfterAddColAndCastFail tests #25383. func TestChangingColOriginDefaultValueAfterAddColAndCastFail(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1818,8 +1803,7 @@ func TestChangingColOriginDefaultValueAfterAddColAndCastFail(t *testing.T) { // Close issue #22820 func TestChangingAttributeOfColumnWithFK(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1855,8 +1839,7 @@ func TestChangingAttributeOfColumnWithFK(t *testing.T) { } func TestAlterPrimaryKeyToNull(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1871,8 +1854,7 @@ func TestAlterPrimaryKeyToNull(t *testing.T) { // Close https://github.com/pingcap/tidb/issues/24839. func TestChangeUnsignedIntToDatetime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -1893,8 +1875,7 @@ func TestChangeUnsignedIntToDatetime(t *testing.T) { // Close issue #23202 func TestDDLExitWhenCancelMeetPanic(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1936,8 +1917,7 @@ func TestDDLExitWhenCancelMeetPanic(t *testing.T) { // Close issue #24253 func TestChangeIntToBitWillPanicInBackfillIndexes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1967,8 +1947,7 @@ func TestChangeIntToBitWillPanicInBackfillIndexes(t *testing.T) { // Close issue #24584 func TestCancelCTCInReorgStateWillCauseGoroutineLeak(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2020,8 +1999,7 @@ func TestCancelCTCInReorgStateWillCauseGoroutineLeak(t *testing.T) { // Close issue #24971, #24973, #24974 func TestCTCShouldCastTheDefaultValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2052,8 +2030,7 @@ func TestCTCShouldCastTheDefaultValue(t *testing.T) { // 1: for default value of binary of create-table, it should append the \0 as the suffix to meet flen. // 2: when cast the bit to binary, we should consider to convert it to uint then cast uint to string, rather than taking the bit to string directly. func TestCTCCastBitToBinary(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2080,8 +2057,7 @@ func TestCTCCastBitToBinary(t *testing.T) { } func TestChangePrefixedIndexColumnToNonPrefixOne(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2116,8 +2092,7 @@ func TestChangePrefixedIndexColumnToNonPrefixOne(t *testing.T) { // Fix issue https://github.com/pingcap/tidb/issues/25469 func TestCastToTimeStampDecodeError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2142,8 +2117,7 @@ func TestCastToTimeStampDecodeError(t *testing.T) { // https://github.com/pingcap/tidb/issues/25285. func TestCastFromZeroIntToTimeError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2189,8 +2163,7 @@ func TestCastFromZeroIntToTimeError(t *testing.T) { } func TestChangeFromTimeToYear(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2221,8 +2194,7 @@ func TestChangeFromTimeToYear(t *testing.T) { // For select statement, it truncates the string and return no errors. (which is 3977-02-22 00:00:00 here) // For ddl reorging or changing column in ctc, it needs report some errors. func TestCastDateToTimestampInReorgAttribute(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 600*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 600*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2257,8 +2229,7 @@ func TestCastDateToTimestampInReorgAttribute(t *testing.T) { // https://github.com/pingcap/tidb/issues/25282. func TestChangeFromUnsignedIntToTime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2273,8 +2244,7 @@ func TestChangeFromUnsignedIntToTime(t *testing.T) { // See https://github.com/pingcap/tidb/issues/25287. // Revised according to https://github.com/pingcap/tidb/pull/31031#issuecomment-1001404832. func TestChangeFromBitToStringInvalidUtf8ErrMsg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2286,8 +2256,7 @@ func TestChangeFromBitToStringInvalidUtf8ErrMsg(t *testing.T) { } func TestForIssue24621(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2299,8 +2268,7 @@ func TestForIssue24621(t *testing.T) { } func TestChangeNullValueFromOtherTypeToTimestamp(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2341,8 +2309,7 @@ func TestChangeNullValueFromOtherTypeToTimestamp(t *testing.T) { } func TestColumnTypeChangeBetweenFloatAndDouble(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // issue #31372 tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2365,8 +2332,7 @@ func TestColumnTypeChangeBetweenFloatAndDouble(t *testing.T) { } func TestColumnTypeChangeTimestampToInt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/db_cache_test.go b/ddl/db_cache_test.go index 67aab9bb40edb..b6ecc2468effa 100644 --- a/ddl/db_cache_test.go +++ b/ddl/db_cache_test.go @@ -40,8 +40,7 @@ func checkTableCacheStatus(t *testing.T, tk *testkit.TestKit, dbName, tableName } func TestAlterPartitionCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -70,8 +69,7 @@ func TestAlterPartitionCache(t *testing.T) { } func TestAlterViewTableCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -82,8 +80,7 @@ func TestAlterViewTableCache(t *testing.T) { } func TestAlterTableNoCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -106,8 +103,7 @@ func TestAlterTableNoCache(t *testing.T) { } func TestIndexOnCacheTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -142,12 +138,11 @@ func TestAlterTableCache(t *testing.T) { dom.SetStatsUpdating(true) - clean := func() { + t.Cleanup(func() { dom.Close() err := store.Close() require.NoError(t, err) - } - defer clean() + }) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -201,8 +196,7 @@ func TestAlterTableCache(t *testing.T) { } func TestCacheTableSizeLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -256,8 +250,7 @@ func TestCacheTableSizeLimit(t *testing.T) { } func TestIssue32692(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -270,8 +263,7 @@ func TestIssue32692(t *testing.T) { } func TestIssue34069(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) sem.Enable() defer sem.Disable() diff --git a/ddl/db_change_failpoints_test.go b/ddl/db_change_failpoints_test.go index a6622995156a3..7c1bfa4a9ec3a 100644 --- a/ddl/db_change_failpoints_test.go +++ b/ddl/db_change_failpoints_test.go @@ -41,8 +41,7 @@ func TestModifyColumnTypeArgs(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/ddl/mockUpdateVersionAndTableInfoErr")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -87,8 +86,7 @@ func TestParallelUpdateTableReplica(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/infoschema/mockTiFlashStoreCount")) }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") @@ -140,8 +138,7 @@ func TestParallelFlashbackTable(t *testing.T) { ON DUPLICATE KEY UPDATE variable_value = '%[1]s'` - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) // clear GC variables first. diff --git a/ddl/db_change_test.go b/ddl/db_change_test.go index 5589a3ff77c03..7a0edae657e9a 100644 --- a/ddl/db_change_test.go +++ b/ddl/db_change_test.go @@ -49,8 +49,7 @@ import ( // TestShowCreateTable tests the result of "show create table" when we are running "add index" or "add column". func TestShowCreateTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -127,8 +126,7 @@ func TestShowCreateTable(t *testing.T) { // TestDropNotNullColumn is used to test issue #8654. func TestDropNotNullColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -186,8 +184,7 @@ func TestDropNotNullColumn(t *testing.T) { } func TestTwoStates(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -419,8 +416,7 @@ type expectQuery struct { } func TestAppendEnum(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -447,8 +443,7 @@ func TestAppendEnum(t *testing.T) { // https://github.com/pingcap/tidb/pull/6249 fixes the following two test cases. func TestWriteOnlyWriteNULL(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sqls := make([]sqlWithErr, 1) @@ -459,8 +454,7 @@ func TestWriteOnlyWriteNULL(t *testing.T) { } func TestWriteOnlyOnDupUpdate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sqls := make([]sqlWithErr, 3) @@ -473,8 +467,7 @@ func TestWriteOnlyOnDupUpdate(t *testing.T) { } func TestWriteOnlyOnDupUpdateForAddColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sqls := make([]sqlWithErr, 3) @@ -487,8 +480,7 @@ func TestWriteOnlyOnDupUpdateForAddColumns(t *testing.T) { } func TestWriteReorgForModifyColumnTimestampToInt(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -525,8 +517,7 @@ func TestWriteReorgForModifyColumnWithUniqIdx(t *testing.T) { // TestWriteReorgForModifyColumnWithPKIsHandle tests whether the correct columns is used in PhysicalIndexScan's ToPB function. func TestWriteReorgForModifyColumnWithPKIsHandle(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") @@ -580,8 +571,7 @@ func TestDeleteOnlyForModifyColumnWithoutDefaultVal(t *testing.T) { } func testModifyColumn(t *testing.T, state model.SchemaState, modifyColumnSQL string, idx idxType) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -628,8 +618,7 @@ func testModifyColumn(t *testing.T, state model.SchemaState, modifyColumnSQL str // TestWriteOnly tests whether the correct columns is used in PhysicalIndexScan's ToPB function. func TestWriteOnly(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sqls := make([]sqlWithErr, 3) @@ -642,8 +631,7 @@ func TestWriteOnly(t *testing.T) { // TestWriteOnlyForAddColumns tests whether the correct columns is used in PhysicalIndexScan's ToPB function. func TestWriteOnlyForAddColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sqls := make([]sqlWithErr, 3) @@ -656,8 +644,7 @@ func TestWriteOnlyForAddColumns(t *testing.T) { // TestDeleteOnly tests whether the correct columns is used in PhysicalIndexScan's ToPB function. func TestDeleteOnly(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -682,8 +669,7 @@ func TestDeleteOnly(t *testing.T) { // TestSchemaChangeForDropColumnWithIndexes test for modify data when a middle-state column with indexes in it. func TestSchemaChangeForDropColumnWithIndexes(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -710,8 +696,7 @@ func TestSchemaChangeForDropColumnWithIndexes(t *testing.T) { // TestSchemaChangeForDropColumnWithIndexes test for modify data when some middle-state columns with indexes in it. func TestSchemaChangeForDropColumnsWithIndexes(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -738,8 +723,7 @@ func TestSchemaChangeForDropColumnsWithIndexes(t *testing.T) { // TestDeleteOnlyForDropExpressionIndex tests for deleting data when the hidden column is delete-only state. func TestDeleteOnlyForDropExpressionIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -756,8 +740,7 @@ func TestDeleteOnlyForDropExpressionIndex(t *testing.T) { // TestDeleteOnlyForDropColumns tests whether the correct columns is used in PhysicalIndexScan's ToPB function. func TestDeleteOnlyForDropColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sqls := make([]sqlWithErr, 1) @@ -768,8 +751,7 @@ func TestDeleteOnlyForDropColumns(t *testing.T) { } func TestWriteOnlyForDropColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -788,8 +770,7 @@ func TestWriteOnlyForDropColumn(t *testing.T) { } func TestWriteOnlyForDropColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -886,8 +867,7 @@ func jobStateOrLastSubJobState(job *model.Job) model.SchemaState { } func TestShowIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -967,8 +947,7 @@ func TestShowIndex(t *testing.T) { } func TestParallelAlterModifyColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql := "ALTER TABLE t MODIFY COLUMN b int FIRST;" @@ -981,8 +960,7 @@ func TestParallelAlterModifyColumn(t *testing.T) { } func TestParallelAlterModifyColumnWithData(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") @@ -1055,8 +1033,7 @@ func TestParallelAlterModifyColumnWithData(t *testing.T) { } func TestParallelAlterModifyColumnToNotNullWithData(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") @@ -1112,8 +1089,7 @@ func TestParallelAlterModifyColumnToNotNullWithData(t *testing.T) { } func TestParallelAddGeneratedColumnAndAlterModifyColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -1130,8 +1106,7 @@ func TestParallelAddGeneratedColumnAndAlterModifyColumn(t *testing.T) { } func TestParallelAlterModifyColumnAndAddPK(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql1 := "ALTER TABLE t ADD PRIMARY KEY (b) NONCLUSTERED;" @@ -1147,8 +1122,7 @@ func TestParallelAlterModifyColumnAndAddPK(t *testing.T) { // TODO: This test is not a test that performs two DDLs in parallel. // So we should not use the function of testControlParallelExecSQL. We will handle this test in the next PR. // func TestParallelColumnModifyingDefinition(t *testing.T) { -// store, dom, clean := testkit.CreateMockStoreAndDomain(t) -// defer clean() +// store, dom := testkit.CreateMockStoreAndDomain(t) // tk := testkit.NewTestKit(t, store) // tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") // sql1 := "insert into t(b) values (null);" @@ -1163,8 +1137,7 @@ func TestParallelAlterModifyColumnAndAddPK(t *testing.T) { // } func TestParallelAddColumAndSetDefaultValue(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -1186,8 +1159,7 @@ func TestParallelAddColumAndSetDefaultValue(t *testing.T) { } func TestParallelChangeColumnName(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql1 := "ALTER TABLE t CHANGE a aa int;" @@ -1208,8 +1180,7 @@ func TestParallelChangeColumnName(t *testing.T) { } func TestParallelAlterAddIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql1 := "ALTER TABLE t add index index_b(b);" @@ -1222,8 +1193,7 @@ func TestParallelAlterAddIndex(t *testing.T) { } func TestParallelAlterAddExpressionIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") @@ -1237,8 +1207,7 @@ func TestParallelAlterAddExpressionIndex(t *testing.T) { } func TestParallelAddPrimaryKey(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql1 := "ALTER TABLE t add primary key index_b(b);" @@ -1251,8 +1220,7 @@ func TestParallelAddPrimaryKey(t *testing.T) { } func TestParallelAlterAddPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql1 := `alter table t_part add partition ( @@ -1269,8 +1237,7 @@ func TestParallelAlterAddPartition(t *testing.T) { } func TestParallelDropColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql := "ALTER TABLE t drop COLUMN c ;" @@ -1282,8 +1249,7 @@ func TestParallelDropColumn(t *testing.T) { } func TestParallelDropColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql := "ALTER TABLE t drop COLUMN b, drop COLUMN c;" @@ -1295,8 +1261,7 @@ func TestParallelDropColumns(t *testing.T) { } func TestParallelDropIfExistsColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql := "ALTER TABLE t drop COLUMN if exists b, drop COLUMN if exists c;" @@ -1308,8 +1273,7 @@ func TestParallelDropIfExistsColumns(t *testing.T) { } func TestParallelDropIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql1 := "alter table t drop index idx1 ;" @@ -1322,8 +1286,7 @@ func TestParallelDropIndex(t *testing.T) { } func TestParallelDropPrimaryKey(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql1 := "alter table t drop primary key;" @@ -1336,8 +1299,7 @@ func TestParallelDropPrimaryKey(t *testing.T) { } func TestParallelCreateAndRename(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql1 := "create table t_exists(c int);" @@ -1350,8 +1312,7 @@ func TestParallelCreateAndRename(t *testing.T) { } func TestParallelAlterAndDropSchema(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("create database db_drop_db") @@ -1499,8 +1460,7 @@ func dbChangeTestParallelExecSQL(t *testing.T, store kv.Storage, dom *domain.Dom // TestCreateTableIfNotExists parallel exec create table if not exists xxx. No error returns is expected. func TestCreateTableIfNotExists(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") dbChangeTestParallelExecSQL(t, store, dom, "create table if not exists test_not_exists(a int)") @@ -1508,8 +1468,7 @@ func TestCreateTableIfNotExists(t *testing.T) { // TestCreateDBIfNotExists parallel exec create database if not exists xxx. No error returns is expected. func TestCreateDBIfNotExists(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") dbChangeTestParallelExecSQL(t, store, dom, "create database if not exists test_not_exists") @@ -1517,8 +1476,7 @@ func TestCreateDBIfNotExists(t *testing.T) { // TestDDLIfNotExists parallel exec some DDLs with `if not exists` clause. No error returns is expected. func TestDDLIfNotExists(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -1535,8 +1493,7 @@ func TestDDLIfNotExists(t *testing.T) { // TestDDLIfExists parallel exec some DDLs with `if exists` clause. No error returns is expected. func TestDDLIfExists(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -1562,8 +1519,7 @@ func TestDDLIfExists(t *testing.T) { // In a cluster, TiDB "a" executes the DDL. // TiDB "b" fails to load schema, then TiDB "b" executes the DDL statement associated with the DDL statement executed by "a". func TestParallelDDLBeforeRunDDLJo(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -1638,8 +1594,7 @@ func TestParallelDDLBeforeRunDDLJo(t *testing.T) { } func TestParallelAlterSchemaCharsetAndCollate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql := "ALTER SCHEMA test_db_state CHARSET utf8mb4 COLLATE utf8mb4_general_ci" @@ -1657,8 +1612,7 @@ func TestParallelAlterSchemaCharsetAndCollate(t *testing.T) { // TestParallelTruncateTableAndAddColumn tests add column when truncate table. func TestParallelTruncateTableAndAddColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql1 := "truncate table t" @@ -1672,8 +1626,7 @@ func TestParallelTruncateTableAndAddColumn(t *testing.T) { // TestParallelTruncateTableAndAddColumns tests add columns when truncate table. func TestParallelTruncateTableAndAddColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 200*time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") sql1 := "truncate table t" @@ -1686,8 +1639,7 @@ func TestParallelTruncateTableAndAddColumns(t *testing.T) { } func TestWriteReorgForColumnTypeChange(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_db_state default charset utf8 default collate utf8_bin") tk.MustExec("use test_db_state") @@ -1708,8 +1660,7 @@ func TestWriteReorgForColumnTypeChange(t *testing.T) { } func TestCreateExpressionIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1778,8 +1729,7 @@ func TestCreateExpressionIndex(t *testing.T) { } func TestCreateUniqueExpressionIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1891,8 +1841,7 @@ func TestCreateUniqueExpressionIndex(t *testing.T) { } func TestDropExpressionIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1952,8 +1901,7 @@ func TestDropExpressionIndex(t *testing.T) { } func TestExpressionIndexDDLError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int, b int, index idx((a+b)))") @@ -1962,8 +1910,7 @@ func TestExpressionIndexDDLError(t *testing.T) { } func TestParallelRenameTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create database test2") @@ -2081,8 +2028,7 @@ func TestParallelRenameTable(t *testing.T) { } func TestConcurrentSetDefaultValue(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/db_foreign_key_test.go b/ddl/db_foreign_key_test.go index 6ac5de33e5f52..dc60b53112291 100644 --- a/ddl/db_foreign_key_test.go +++ b/ddl/db_foreign_key_test.go @@ -23,8 +23,7 @@ import ( ) func TestDuplicateForeignKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -44,8 +43,7 @@ func TestDuplicateForeignKey(t *testing.T) { } func TestTemporaryTableForeignKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1;") diff --git a/ddl/db_integration_test.go b/ddl/db_integration_test.go index b6f064e188c45..06ff6f56e6001 100644 --- a/ddl/db_integration_test.go +++ b/ddl/db_integration_test.go @@ -55,8 +55,7 @@ import ( ) func TestNoZeroDateMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("set session sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';") @@ -113,8 +112,7 @@ func TestNoZeroDateMode(t *testing.T) { } func TestInvalidDefault(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") @@ -125,8 +123,7 @@ func TestInvalidDefault(t *testing.T) { // TestKeyWithoutLength for issue #13452 func TestKeyWithoutLengthCreateTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test") tk.MustMatchErrMsg("create table t_without_length (a text primary key)", @@ -135,8 +132,7 @@ func TestKeyWithoutLengthCreateTable(t *testing.T) { // TestInvalidNameWhenCreateTable for issue #3848 func TestInvalidNameWhenCreateTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") @@ -148,8 +144,7 @@ func TestInvalidNameWhenCreateTable(t *testing.T) { // TestCreateTableIfNotExistsLike for issue #6879 func TestCreateTableIfNotExistsLike(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -180,8 +175,7 @@ func TestCreateTableIfNotExistsLike(t *testing.T) { // for issue #9910 func TestCreateTableWithKeyWord(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -196,8 +190,7 @@ func TestCreateTableWithKeyWord(t *testing.T) { } func TestUniqueKeyNullValue(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -218,8 +211,7 @@ func TestUniqueKeyNullValue(t *testing.T) { } func TestUniqueKeyNullValueClusterIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -240,8 +232,7 @@ func TestUniqueKeyNullValueClusterIndex(t *testing.T) { // TestModifyColumnAfterAddIndex Issue 5134 func TestModifyColumnAfterAddIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -255,8 +246,7 @@ func TestModifyColumnAfterAddIndex(t *testing.T) { } func TestIssue2293(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -271,8 +261,7 @@ func TestIssue2293(t *testing.T) { } func TestIssue6101(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (quantity decimal(2) unsigned);") @@ -289,8 +278,7 @@ func TestIssue6101(t *testing.T) { } func TestIssue19229(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -318,8 +306,7 @@ func TestIssue19229(t *testing.T) { } func TestIndexLength(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -358,8 +345,7 @@ func TestIndexLength(t *testing.T) { } func TestIssue3833(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table issue3833 (b char(0), c binary(0), d varchar(0))") @@ -375,8 +361,7 @@ func TestIssue3833(t *testing.T) { } func TestIssue2858And2717(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -399,8 +384,7 @@ func TestIssue2858And2717(t *testing.T) { } func TestIssue4432(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -431,8 +415,7 @@ func TestIssue4432(t *testing.T) { } func TestIssue5092(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -523,8 +506,7 @@ func TestIssue5092(t *testing.T) { } func TestErrnoErrorCode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -690,8 +672,7 @@ func TestErrnoErrorCode(t *testing.T) { } func TestTableDDLWithFloatType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -707,8 +688,7 @@ func TestTableDDLWithFloatType(t *testing.T) { } func TestTableDDLWithTimeType(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -737,8 +717,7 @@ func TestTableDDLWithTimeType(t *testing.T) { } func TestUpdateMultipleTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (c1 int, c2 int)") @@ -765,8 +744,7 @@ func TestUpdateMultipleTable(t *testing.T) { } func TestNullGeneratedColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -790,8 +768,7 @@ func TestNullGeneratedColumn(t *testing.T) { } func TestDependedGeneratedColumnPrior2GeneratedColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -821,8 +798,7 @@ func TestDependedGeneratedColumnPrior2GeneratedColumn(t *testing.T) { } func TestChangingTableCharset(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -983,8 +959,7 @@ func TestChangingTableCharset(t *testing.T) { } func TestModifyColumnOption(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1023,8 +998,7 @@ func TestModifyColumnOption(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1045,8 +1019,7 @@ func TestIndexOnMultipleGeneratedColumn(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn1(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1067,8 +1040,7 @@ func TestIndexOnMultipleGeneratedColumn1(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn2(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1089,8 +1061,7 @@ func TestIndexOnMultipleGeneratedColumn2(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn3(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1111,8 +1082,7 @@ func TestIndexOnMultipleGeneratedColumn3(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn4(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1133,8 +1103,7 @@ func TestIndexOnMultipleGeneratedColumn4(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn5(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1158,8 +1127,7 @@ func TestIndexOnMultipleGeneratedColumn5(t *testing.T) { } func TestCaseInsensitiveCharsetAndCollate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_charset_collate") @@ -1218,8 +1186,7 @@ func TestCaseInsensitiveCharsetAndCollate(t *testing.T) { } func TestZeroFillCreateTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1250,8 +1217,7 @@ func TestZeroFillCreateTable(t *testing.T) { } func TestBitDefaultValue(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1350,8 +1316,7 @@ func backgroundExec(s kv.Storage, sql string, done chan error) { } func TestCreateTableTooLarge(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1374,8 +1339,7 @@ func TestCreateTableTooLarge(t *testing.T) { } func TestCreateTableTooManyIndexes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1396,8 +1360,7 @@ func TestCreateTableTooManyIndexes(t *testing.T) { } func TestChangeColumnPosition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1454,8 +1417,7 @@ func TestChangeColumnPosition(t *testing.T) { } func TestAddIndexAfterAddColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1474,8 +1436,7 @@ func TestAddIndexAfterAddColumn(t *testing.T) { } func TestResolveCharset(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1512,8 +1473,7 @@ func TestResolveCharset(t *testing.T) { func TestAddColumnDefaultNow(t *testing.T) { // Related Issue: https://github.com/pingcap/tidb/issues/31968 - mockStore, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + mockStore, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1588,8 +1548,7 @@ func TestAddColumnDefaultNow(t *testing.T) { } func TestAddColumnTooMany(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") count := int(atomic.LoadUint32(&config.GetGlobalConfig().TableColumnCountLimit) - 1) @@ -1605,8 +1564,7 @@ func TestAddColumnTooMany(t *testing.T) { } func TestCreateTooManyIndexes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") count := config.GetGlobalConfig().IndexLimit - 1 @@ -1629,8 +1587,7 @@ func TestCreateTooManyIndexes(t *testing.T) { } func TestCreateSecondaryIndexInCluster(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1712,8 +1669,7 @@ CREATE TABLE t ( } func TestAlterColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) d := dom.DDL() ddlChecker := schematracker.NewChecker(d) @@ -1928,8 +1884,7 @@ func assertAlterWarnExec(tk *testkit.TestKit, t *testing.T, sql string) { } func TestAlterAlgorithm(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -2000,8 +1955,7 @@ func TestAlterAlgorithm(t *testing.T) { } func TestAlterTableAddUniqueOnPartionRangeColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2030,8 +1984,7 @@ func TestAlterTableAddUniqueOnPartionRangeColumn(t *testing.T) { } func TestFulltextIndexIgnore(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t_ft") @@ -2050,8 +2003,7 @@ func TestFulltextIndexIgnore(t *testing.T) { func TestTreatOldVersionUTF8AsUTF8MB4(t *testing.T) { restoreFunc := config.RestoreFunc() defer restoreFunc() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2200,8 +2152,7 @@ func TestTreatOldVersionUTF8AsUTF8MB4(t *testing.T) { } func TestDefaultValueIsString(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2213,8 +2164,7 @@ func TestDefaultValueIsString(t *testing.T) { func TestDefaultColumnWithRand(t *testing.T) { // Related issue: https://github.com/pingcap/tidb/issues/10377 - store, clean := testkit.CreateMockStoreWithSchemaLease(t, testLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, testLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, t1, t2") @@ -2270,8 +2220,7 @@ func TestDefaultColumnWithRand(t *testing.T) { } func TestDefaultColumnWithUUID(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, testLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, testLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2297,8 +2246,7 @@ func TestDefaultColumnWithUUID(t *testing.T) { } func TestChangingDBCharset(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -2415,8 +2363,7 @@ func TestChangingDBCharset(t *testing.T) { } func TestDropAutoIncrementIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") tk.MustExec("use test") @@ -2437,8 +2384,7 @@ func TestDropAutoIncrementIndex(t *testing.T) { } func TestInsertIntoGeneratedColumnWithDefaultExpr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") tk.MustExec("use test") @@ -2497,8 +2443,7 @@ func TestInsertIntoGeneratedColumnWithDefaultExpr(t *testing.T) { } func TestSqlFunctionsInGeneratedColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -2546,8 +2491,7 @@ func TestSqlFunctionsInGeneratedColumns(t *testing.T) { } func TestParserIssue284(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -2572,8 +2516,7 @@ func TestAddExpressionIndex(t *testing.T) { conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0 conf.Experimental.AllowsExpressionIndex = true }) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -2655,8 +2598,7 @@ func TestCreateExpressionIndexError(t *testing.T) { conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0 conf.Experimental.AllowsExpressionIndex = true }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -2702,8 +2644,7 @@ func TestCreateExpressionIndexError(t *testing.T) { } func TestAddExpressionIndexOnPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -2733,8 +2674,7 @@ func TestAddExpressionIndexOnPartition(t *testing.T) { // `auto_id_cache` take effects on handle too when `PKIshandle` is false, // or even there is no auto_increment column at all. func TestCreateTableWithAutoIdCache(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") tk.MustExec("drop table if exists t;") @@ -2834,8 +2774,7 @@ func TestCreateTableWithAutoIdCache(t *testing.T) { } func TestAlterIndexVisibility(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists alter_index_test") tk.MustExec("USE alter_index_test;") @@ -2879,8 +2818,7 @@ func queryIndexOnTable(dbName, tableName string) string { } func TestDropColumnWithCompositeIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -2902,8 +2840,7 @@ func TestDropColumnWithCompositeIndex(t *testing.T) { } func TestDropColumnWithIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -2920,8 +2857,7 @@ func TestDropColumnWithIndex(t *testing.T) { } func TestDropColumnWithAutoInc(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -2942,8 +2878,7 @@ func TestDropColumnWithAutoInc(t *testing.T) { } func TestDropColumnWithMultiIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -2961,8 +2896,7 @@ func TestDropColumnWithMultiIndex(t *testing.T) { } func TestDropColumnsWithMultiIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -2981,8 +2915,7 @@ func TestDropColumnsWithMultiIndex(t *testing.T) { } func TestDropLastVisibleColumnOrColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t_drop_last_column(x int, key((1+1)))") @@ -2996,8 +2929,7 @@ func TestDropLastVisibleColumnOrColumns(t *testing.T) { } func TestAutoIncrementTableOption(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -3022,8 +2954,7 @@ func TestAutoIncrementTableOption(t *testing.T) { } func TestAutoIncrementForce(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists auto_inc_force;") tk.MustExec("create database auto_inc_force;") @@ -3131,8 +3062,7 @@ func TestAutoIncrementForce(t *testing.T) { } func TestIssue20490(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -3151,8 +3081,7 @@ func TestIssue20490(t *testing.T) { } func TestIssue20741WithEnumField(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -3171,8 +3100,7 @@ func TestIssue20741WithEnumField(t *testing.T) { } func TestIssue20741WithSetField(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists issue20741_2") @@ -3190,8 +3118,7 @@ func TestIssue20741WithSetField(t *testing.T) { // TestDefaultValueIsLatin1 for issue #18977 func TestEnumAndSetDefaultValue(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -3214,8 +3141,7 @@ func TestEnumAndSetDefaultValue(t *testing.T) { } func TestStrictDoubleTypeCheck(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_enable_strict_double_type_check = 'ON'") @@ -3230,8 +3156,7 @@ func TestStrictDoubleTypeCheck(t *testing.T) { func TestDuplicateErrorMessage(t *testing.T) { defer collate.SetNewCollationEnabledForTest(true) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3286,8 +3211,7 @@ func TestDuplicateErrorMessage(t *testing.T) { } func TestIssue22028(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -3305,8 +3229,7 @@ func TestIssue22028(t *testing.T) { } func TestIssue21835(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -3314,8 +3237,7 @@ func TestIssue21835(t *testing.T) { } func TestCreateTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -3401,8 +3323,7 @@ func TestCreateTemporaryTable(t *testing.T) { } func TestAccessLocalTmpTableAfterDropDB(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists tmpdb") tk.MustExec("create temporary table tmpdb.tmp(id int)") @@ -3486,8 +3407,7 @@ func TestAccessLocalTmpTableAfterDropDB(t *testing.T) { } func TestPlacementOnTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists test.tplacement1, db2.t1, db2.tplacement3, db2.tplacement5") @@ -3547,8 +3467,7 @@ func TestPlacementOnTemporaryTable(t *testing.T) { } func TestAvoidCreateViewOnLocalTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3620,8 +3539,7 @@ func TestDropTemporaryTable(t *testing.T) { conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0 conf.Experimental.AllowsExpressionIndex = true }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3740,8 +3658,7 @@ func TestDropTemporaryTable(t *testing.T) { } func TestDropWithGlobalTemporaryTableKeyWord(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") clearSQL := "drop table if exists tb, tb2, temp, temp1, ltemp1, ltemp2" @@ -3815,8 +3732,7 @@ func TestDropWithGlobalTemporaryTableKeyWord(t *testing.T) { } func TestDropWithLocalTemporaryTableKeyWord(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") clearSQL := "drop table if exists tb, tb2, temp, temp1, ltemp1, ltemp2, testt.ltemp3" @@ -3899,8 +3815,7 @@ func TestDropWithLocalTemporaryTableKeyWord(t *testing.T) { } func TestTruncateLocalTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3997,8 +3912,7 @@ func TestTruncateLocalTemporaryTable(t *testing.T) { } func TestIssue29282(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk1 := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4044,8 +3958,7 @@ func TestIssue29282(t *testing.T) { // See https://github.com/pingcap/tidb/issues/35644 func TestCreateTempTableInTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("begin") @@ -4064,8 +3977,7 @@ func TestCreateTempTableInTxn(t *testing.T) { // See https://github.com/pingcap/tidb/issues/29327 func TestEnumDefaultValue(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -4086,8 +3998,7 @@ func TestEnumDefaultValue(t *testing.T) { } func TestIssue29326(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4200,8 +4111,7 @@ func TestIssue29326(t *testing.T) { } func TestInvalidPartitionNameWhenCreateTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database invalidPartitionNames") @@ -4216,8 +4126,7 @@ func TestInvalidPartitionNameWhenCreateTable(t *testing.T) { } func TestDDLLastInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) diff --git a/ddl/db_partition_test.go b/ddl/db_partition_test.go index 158f2f2aa4a15..fe894219202bc 100644 --- a/ddl/db_partition_test.go +++ b/ddl/db_partition_test.go @@ -83,8 +83,7 @@ func checkGlobalIndexCleanUpDone(t *testing.T, ctx sessionctx.Context, tblInfo * } func TestCreateTableWithPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -341,8 +340,7 @@ partition by range (a) } func TestCreateTableWithHashPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -405,8 +403,7 @@ func TestCreateTableWithHashPartition(t *testing.T) { } func TestCreateTableWithRangeColumnPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -667,8 +664,7 @@ create table log_message_1 ( } func TestPartitionRangeColumnsCollate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create schema PartitionRangeColumnsCollate") tk.MustExec("use PartitionRangeColumnsCollate") @@ -775,8 +771,7 @@ func TestPartitionRangeColumnsCollate(t *testing.T) { } func TestDisableTablePartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") for _, v := range []string{"'AUTO'", "'OFF'", "0", "'ON'"} { @@ -809,8 +804,7 @@ func generatePartitionTableByNum(num int) string { } func TestCreateTableWithListPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -961,8 +955,7 @@ func TestCreateTableWithListPartition(t *testing.T) { } func TestCreateTableWithListColumnsPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1173,8 +1166,7 @@ func TestCreateTableWithListColumnsPartition(t *testing.T) { } func TestAlterTableAddPartitionByList(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -1290,8 +1282,7 @@ func TestAlterTableAddPartitionByList(t *testing.T) { } func TestAlterTableAddPartitionByListColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -1359,8 +1350,7 @@ func TestAlterTableAddPartitionByListColumns(t *testing.T) { } func TestAlterTableDropPartitionByList(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -1396,8 +1386,7 @@ func TestAlterTableDropPartitionByList(t *testing.T) { } func TestAlterTableDropPartitionByListColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -1435,8 +1424,7 @@ func TestAlterTableDropPartitionByListColumns(t *testing.T) { } func TestAlterTableTruncatePartitionByList(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -1468,8 +1456,7 @@ func TestAlterTableTruncatePartitionByList(t *testing.T) { } func TestAlterTableTruncatePartitionByListColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -1501,8 +1488,7 @@ func TestAlterTableTruncatePartitionByListColumns(t *testing.T) { } func TestCreateTableWithKeyPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1522,8 +1508,7 @@ func TestCreateTableWithKeyPartition(t *testing.T) { } func TestAlterTableAddPartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists employees;") @@ -1670,8 +1655,7 @@ func TestAlterTableAddPartition(t *testing.T) { } func TestAlterTableDropPartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists employees") @@ -1812,8 +1796,7 @@ func TestAlterTableDropPartition(t *testing.T) { } func TestMultiPartitionDropAndTruncate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists employees") @@ -1841,8 +1824,7 @@ func TestMultiPartitionDropAndTruncate(t *testing.T) { func TestDropPartitionWithGlobalIndex(t *testing.T) { restore := config.RestoreFunc() defer restore() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) config.UpdateGlobal(func(conf *config.Config) { conf.EnableGlobalIndex = true }) @@ -1881,8 +1863,7 @@ func TestDropPartitionWithGlobalIndex(t *testing.T) { } func TestAlterTableExchangePartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists e") @@ -2149,8 +2130,7 @@ func TestAlterTableExchangePartition(t *testing.T) { } func TestExchangePartitionTableCompatiable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) type testCase struct { ptSQL string ntSQL string @@ -2386,8 +2366,7 @@ func TestExchangePartitionTableCompatiable(t *testing.T) { } func TestExchangePartitionHook(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) // why use tkCancel, not tk. tkCancel := testkit.NewTestKit(t, store) @@ -2433,8 +2412,7 @@ func TestExchangePartitionExpressIndex(t *testing.T) { conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0 conf.Experimental.AllowsExpressionIndex = true }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_enable_exchange_partition=1") @@ -2467,8 +2445,7 @@ func TestExchangePartitionExpressIndex(t *testing.T) { } func TestAddPartitionTooManyPartitions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") count := mysql.PartitionCountLimit @@ -2551,8 +2528,7 @@ func checkPartitionDelRangeDone(t *testing.T, tk *testkit.TestKit, store kv.Stor } func TestTruncatePartitionAndDropTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") // Test truncate common table. @@ -2704,8 +2680,7 @@ func TestTruncatePartitionAndDropTable(t *testing.T) { } func TestPartitionUniqueKeyNeedAllFieldsInPf(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists part1;") @@ -2958,8 +2933,7 @@ func TestPartitionUniqueKeyNeedAllFieldsInPf(t *testing.T) { } func TestPartitionDropPrimaryKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) idxName := "primary" addIdxSQL := "alter table partition_drop_idx add primary key idx1 (c1);" dropIdxSQL := "alter table partition_drop_idx drop primary key;" @@ -2967,8 +2941,7 @@ func TestPartitionDropPrimaryKey(t *testing.T) { } func TestPartitionDropIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) idxName := "idx1" addIdxSQL := "alter table partition_drop_idx add index idx1 (c1);" dropIdxSQL := "alter table partition_drop_idx drop index idx1;" @@ -3025,15 +2998,13 @@ LOOP: } func TestPartitionAddPrimaryKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) testPartitionAddIndexOrPK(t, tk, "primary key") } func TestPartitionAddIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) testPartitionAddIndexOrPK(t, tk, "index") } @@ -3130,8 +3101,7 @@ func testPartitionAddIndex(tk *testkit.TestKit, t *testing.T, key string) { } func TestDropSchemaWithPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_db_with_partition") tk.MustExec("create database test_db_with_partition") @@ -3209,8 +3179,7 @@ func getPartitionTableRecordsNum(t *testing.T, ctx sessionctx.Context, tbl table } func TestPartitionErrorCode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // add partition tk.MustExec("set @@session.tidb_enable_table_partition = 1") @@ -3274,8 +3243,7 @@ func TestPartitionErrorCode(t *testing.T) { } func TestConstAndTimezoneDepent(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // add partition tk.MustExec("set @@session.tidb_enable_table_partition = 1") @@ -3364,8 +3332,7 @@ func TestConstAndTimezoneDepent(t *testing.T) { } func TestConstAndTimezoneDepent2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // add partition tk.MustExec("set @@session.tidb_enable_table_partition = 1") @@ -3396,8 +3363,7 @@ func TestConstAndTimezoneDepent2(t *testing.T) { } func TestUnsupportedPartitionManagementDDLs(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists test_1465;") @@ -3423,8 +3389,7 @@ func TestCommitWhenSchemaChange(t *testing.T) { conf.Instance.SlowThreshold = 10000 conf.Experimental.AllowsExpressionIndex = true }) - store, clean := testkit.CreateMockStoreWithSchemaLease(t, time.Second) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, time.Second) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@global.tidb_max_delta_schema_count= 4096") tk.MustExec("use test") @@ -3490,8 +3455,7 @@ func TestCommitWhenSchemaChange(t *testing.T) { } func TestCreatePartitionTableWithWrongType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -3527,8 +3491,7 @@ func TestCreatePartitionTableWithWrongType(t *testing.T) { } func TestAddPartitionForTableWithWrongType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop tables if exists t_int, t_char, t_date") @@ -3557,8 +3520,7 @@ func TestAddPartitionForTableWithWrongType(t *testing.T) { } func TestPartitionListWithTimeType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3568,8 +3530,7 @@ func TestPartitionListWithTimeType(t *testing.T) { } func TestPartitionListWithNewCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -3585,8 +3546,7 @@ func TestPartitionListWithNewCollation(t *testing.T) { } func TestAddTableWithPartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // for global temporary table tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -3641,8 +3601,7 @@ func TestAddTableWithPartition(t *testing.T) { } func TestTruncatePartitionMultipleTimes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop table if exists test.t;") tk.MustExec(`create table test.t (a int primary key) partition by range (a) ( @@ -3676,8 +3635,7 @@ func TestTruncatePartitionMultipleTimes(t *testing.T) { } func TestAddPartitionReplicaBiggerThanTiFlashStores(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_partition2") tk.MustExec("use test_partition2") @@ -3720,8 +3678,7 @@ func TestAddPartitionReplicaBiggerThanTiFlashStores(t *testing.T) { } func TestDuplicatePartitionNames(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database DuplicatePartitionNames") @@ -3759,8 +3716,7 @@ func TestDuplicatePartitionNames(t *testing.T) { } func TestPartitionTableWithAnsiQuotes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database partitionWithAnsiQuotes") defer tk.MustExec("drop database partitionWithAnsiQuotes") diff --git a/ddl/db_rename_test.go b/ddl/db_rename_test.go index c72256701f577..2c304742cb7c9 100644 --- a/ddl/db_rename_test.go +++ b/ddl/db_rename_test.go @@ -29,8 +29,7 @@ import ( ) func TestRenameIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (pk int primary key, c int default 1, c1 int default 1, unique key k1(c), key k2(c1))") @@ -61,8 +60,7 @@ func TestRenameTableWithLocked(t *testing.T) { conf.EnableTableLock = true }) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -104,11 +102,9 @@ func renameTableTest(t *testing.T, sql string, isAlterTable bool) { var ( store kv.Storage dom *domain.Domain - clean func() ) - store, dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom = testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -202,8 +198,7 @@ func renameTableTest(t *testing.T, sql string, isAlterTable bool) { } func TestRenameMultiTables(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) diff --git a/ddl/db_table_test.go b/ddl/db_table_test.go index 9244ff191af72..098357684697b 100644 --- a/ddl/db_table_test.go +++ b/ddl/db_table_test.go @@ -46,8 +46,7 @@ import ( ) func TestTableForeignKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (a int, b int);") @@ -78,8 +77,7 @@ func TestTableForeignKey(t *testing.T) { } func TestAddNotNullColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // for different databases @@ -110,8 +108,7 @@ out: } func TestCharacterSetInColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database varchar_test;") defer tk.MustExec("drop database varchar_test;") @@ -134,8 +131,7 @@ func TestCharacterSetInColumns(t *testing.T) { } func TestAddNotNullColumnWhileInsertOnDupUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test") tk2 := testkit.NewTestKit(t, store) @@ -161,8 +157,7 @@ func TestAddNotNullColumnWhileInsertOnDupUpdate(t *testing.T) { } func TestTransactionOnAddDropColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, time.Microsecond*500) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, time.Microsecond*500) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@global.tidb_max_delta_schema_count= 4096") tk.MustExec("use test") @@ -228,8 +223,7 @@ func TestTransactionOnAddDropColumn(t *testing.T) { } func TestCreateTableWithSetCol(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -290,8 +284,7 @@ func TestCreateTableWithSetCol(t *testing.T) { } func TestCreateTableWithEnumCol(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -327,8 +320,7 @@ func TestCreateTableWithEnumCol(t *testing.T) { } func TestCreateTableWithIntegerColWithDefault(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -381,8 +373,7 @@ func TestCreateTableWithIntegerColWithDefault(t *testing.T) { } func TestAlterTableWithValidation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -402,8 +393,7 @@ func TestAlterTableWithValidation(t *testing.T) { } func TestBatchCreateTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, time.Microsecond*500) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, time.Microsecond*500) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tables_1") @@ -475,8 +465,7 @@ func TestBatchCreateTable(t *testing.T) { // port from mysql // https://github.com/mysql/mysql-server/blob/124c7ab1d6f914637521fd4463a993aa73403513/mysql-test/t/lock.test func TestLock(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -498,8 +487,7 @@ func TestLock(t *testing.T) { // port from mysql // https://github.com/mysql/mysql-server/blob/4f1d7cf5fcb11a3f84cff27e37100d7295e7d5ca/mysql-test/t/tablelock.test func TestTableLock(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1,t2") @@ -534,8 +522,7 @@ func TestTableLock(t *testing.T) { // port from mysql // https://github.com/mysql/mysql-server/blob/4f1d7cf5fcb11a3f84cff27e37100d7295e7d5ca/mysql-test/t/lock_tables_lost_commit.test func TestTableLocksLostCommit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -576,8 +563,7 @@ func checkTableLock(t *testing.T, tk *testkit.TestKit, dbName, tableName string, // test write local lock func TestWriteLocal(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -626,8 +612,7 @@ func TestWriteLocal(t *testing.T) { } func TestLockTables(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, time.Microsecond*500) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, time.Microsecond*500) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") tk := testkit.NewTestKit(t, store) @@ -803,8 +788,7 @@ func TestLockTables(t *testing.T) { } func TestTablesLockDelayClean(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) tk2.MustExec("use test") @@ -836,8 +820,7 @@ func TestTablesLockDelayClean(t *testing.T) { } func TestDDLWithInvalidTableInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -863,8 +846,7 @@ func TestDDLWithInvalidTableInfo(t *testing.T) { } func TestAddColumn2(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, time.Microsecond*500) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, time.Microsecond*500) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -932,8 +914,7 @@ func TestAddColumn2(t *testing.T) { } func TestDropTables(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) diff --git a/ddl/db_test.go b/ddl/db_test.go index 6a5970f13d574..3cfa87a17cf0b 100644 --- a/ddl/db_test.go +++ b/ddl/db_test.go @@ -72,8 +72,7 @@ const dbTestLease = 600 * time.Millisecond // Close issue #24580 // See https://github.com/pingcap/tidb/issues/24580 func TestIssue24580(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -88,8 +87,7 @@ func TestIssue24580(t *testing.T) { // Ref: https://dev.mysql.com/doc/refman/8.0/en/storage-requirements.html#data-types-storage-reqs-strings // text(100) in utf8mb4 charset needs max 400 byte length, thus tinytext is not enough. func TestCreateTextAdjustLen(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -130,8 +128,7 @@ func TestCreateTextAdjustLen(t *testing.T) { } func TestGetTimeZone(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -174,8 +171,7 @@ func TestGetTimeZone(t *testing.T) { // for issue #30328 func TestTooBigFieldLengthAutoConvert(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -202,8 +198,7 @@ func TestTooBigFieldLengthAutoConvert(t *testing.T) { // For Close issue #24288 // see https://github.com/pingcap/tidb/issues/24288 func TestDdlMaxLimitOfIdentifier(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) @@ -233,8 +228,7 @@ func TestDdlMaxLimitOfIdentifier(t *testing.T) { // Close issue #23321. // See https://github.com/pingcap/tidb/issues/23321 func TestJsonUnmarshalErrWhenPanicInCancellingPath(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -247,8 +241,7 @@ func TestJsonUnmarshalErrWhenPanicInCancellingPath(t *testing.T) { } func TestIssue22819(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test;") @@ -268,8 +261,7 @@ func TestIssue22819(t *testing.T) { } func TestIssue22307(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -297,8 +289,7 @@ func TestIssue22307(t *testing.T) { } func TestIssue9100(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -316,8 +307,7 @@ func TestIssue9100(t *testing.T) { } func TestIssue22207(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -346,8 +336,7 @@ func TestIssue22207(t *testing.T) { } func TestIssue23473(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -360,8 +349,7 @@ func TestIssue23473(t *testing.T) { } func TestDropCheck(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -374,8 +362,7 @@ func TestDropCheck(t *testing.T) { } func TestAlterOrderBy(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -395,8 +382,7 @@ func TestAlterOrderBy(t *testing.T) { } func TestFKOnGeneratedColumns(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -507,8 +493,7 @@ func TestFKOnGeneratedColumns(t *testing.T) { } func TestSelectInViewFromAnotherDB(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -522,8 +507,7 @@ func TestSelectInViewFromAnotherDB(t *testing.T) { } func TestAddConstraintCheck(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -536,8 +520,7 @@ func TestAddConstraintCheck(t *testing.T) { } func TestCreateTableIgnoreCheckConstraint(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -556,8 +539,7 @@ func TestCreateTableIgnoreCheckConstraint(t *testing.T) { } func TestAutoConvertBlobTypeByLength(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -584,8 +566,7 @@ func TestAutoConvertBlobTypeByLength(t *testing.T) { } func TestAddExpressionIndexRollback(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (c1 int, c2 int, c3 int, unique key(c1))") @@ -655,8 +636,7 @@ func TestAddExpressionIndexRollback(t *testing.T) { } func TestDropTableOnTiKVDiskFull(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table test_disk_full_drop_table(a int);") @@ -668,8 +648,7 @@ func TestDropTableOnTiKVDiskFull(t *testing.T) { } func TestComment(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists ct, ct1") @@ -761,8 +740,7 @@ func TestRebaseAutoID(t *testing.T) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange", `return(true)`)) defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange")) }() - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists tidb;") @@ -790,8 +768,7 @@ func TestRebaseAutoID(t *testing.T) { } func TestProcessColumnFlags(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // check `processColumnFlags()` @@ -830,8 +807,7 @@ func TestProcessColumnFlags(t *testing.T) { } func TestForbidCacheTableForSystemTable(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) sysTables := make([]string, 0, 24) memOrSysDB := []string{"MySQL", "INFORMATION_SCHEMA", "PERFORMANCE_SCHEMA", "METRICS_SCHEMA"} @@ -860,8 +836,7 @@ func TestAlterShardRowIDBits(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange")) }() - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -892,8 +867,7 @@ func TestAlterShardRowIDBits(t *testing.T) { } func TestShardRowIDBitsOnTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // for global temporary table @@ -917,8 +891,7 @@ func TestShardRowIDBitsOnTemporaryTable(t *testing.T) { } func TestAutoIncrementIDOnTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -978,8 +951,7 @@ func TestAutoIncrementIDOnTemporaryTable(t *testing.T) { } func TestDDLJobErrorCount(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists ddl_error_table, new_ddl_error_table") @@ -1009,8 +981,7 @@ func TestDDLJobErrorCount(t *testing.T) { } func TestCommitTxnWithIndexChange(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) // Prepare work. tk := testkit.NewTestKit(t, store) tk.MustExec("set tidb_enable_amend_pessimistic_txn = 1;") @@ -1206,8 +1177,7 @@ func TestCommitTxnWithIndexChange(t *testing.T) { func TestAddIndexFailOnCaseWhenCanExit(t *testing.T) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/MockCaseWhenParseFailure", `return(true)`)) defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/ddl/MockCaseWhenParseFailure")) }() - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) originalVal := variable.GetDDLErrorCountLimit() tk.MustExec("set @@global.tidb_ddl_error_count_limit = 1") @@ -1225,8 +1195,7 @@ func TestCreateTableWithIntegerLengthWaring(t *testing.T) { // Inject the strict-integer-display-width variable in parser directly. parsertypes.TiDBStrictIntegerDisplayWidth = true defer func() { parsertypes.TiDBStrictIntegerDisplayWidth = false }() - store, clean := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1280,8 +1249,7 @@ func TestShowCountWarningsOrErrors(t *testing.T) { // Inject the strict-integer-display-width variable in parser directly. parsertypes.TiDBStrictIntegerDisplayWidth = true defer func() { parsertypes.TiDBStrictIntegerDisplayWidth = false }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1308,8 +1276,7 @@ func TestShowCountWarningsOrErrors(t *testing.T) { // Close issue #24172. // See https://github.com/pingcap/tidb/issues/24172 func TestCancelJobWriteConflict(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1358,8 +1325,7 @@ func TestCancelJobWriteConflict(t *testing.T) { } func TestTxnSavepointWithDDL(t *testing.T) { - store, _, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + store, _ := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -1410,8 +1376,7 @@ func TestTxnSavepointWithDDL(t *testing.T) { } func TestAmendTxnSavepointWithDDL(t *testing.T) { - store, _, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + store, _ := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -1458,8 +1423,7 @@ func TestAmendTxnSavepointWithDDL(t *testing.T) { } func TestSnapshotVersion(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) @@ -1521,8 +1485,7 @@ func TestSnapshotVersion(t *testing.T) { } func TestSchemaValidator(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) tk := testkit.NewTestKit(t, store) @@ -1575,8 +1538,7 @@ func TestSchemaValidator(t *testing.T) { } func TestLogAndShowSlowLog(t *testing.T) { - _, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + _, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) dom.LogSlowQuery(&domain.SlowQueryInfo{SQL: "aaa", Duration: time.Second, Internal: true}) dom.LogSlowQuery(&domain.SlowQueryInfo{SQL: "bbb", Duration: 3 * time.Second}) @@ -1616,8 +1578,7 @@ func TestLogAndShowSlowLog(t *testing.T) { } func TestReportingMinStartTimestamp(t *testing.T) { - _, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) - defer clean() + _, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, dbTestLease) infoSyncer := dom.InfoSyncer() sm := &testkit.MockSessionManager{ @@ -1645,8 +1606,7 @@ func TestReportingMinStartTimestamp(t *testing.T) { // for issue #34931 func TestBuildMaxLengthIndexWithNonRestrictedSqlMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/ddl_api_test.go b/ddl/ddl_api_test.go index b23692445659e..f4010015f5456 100644 --- a/ddl/ddl_api_test.go +++ b/ddl/ddl_api_test.go @@ -29,8 +29,7 @@ import ( ) func TestGetDDLJobs(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) sess := testkit.NewTestKit(t, store).Session() _, err := sess.Execute(context.Background(), "begin") @@ -85,8 +84,7 @@ func TestGetDDLJobs(t *testing.T) { } func TestGetDDLJobsIsSort(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) sess := testkit.NewTestKit(t, store).Session() _, err := sess.Execute(context.Background(), "begin") @@ -118,8 +116,7 @@ func TestGetDDLJobsIsSort(t *testing.T) { } func TestGetHistoryDDLJobs(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // delete the internal DDL record. err := kv.RunInNewTxn(kv.WithInternalSourceType(context.Background(), kv.InternalTxnDDL), store, false, func(ctx context.Context, txn kv.Transaction) error { diff --git a/ddl/ddl_error_test.go b/ddl/ddl_error_test.go index f22b67a97e0e5..1d3d6cb8acd6c 100644 --- a/ddl/ddl_error_test.go +++ b/ddl/ddl_error_test.go @@ -30,8 +30,7 @@ import ( // For unexpected error, we mock a SQL job to check it. func TestTableError(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, testLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, testLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -65,8 +64,7 @@ func TestTableError(t *testing.T) { } func TestViewError(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, testLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, testLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -80,8 +78,7 @@ func TestViewError(t *testing.T) { } func TestForeignKeyError(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, testLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, testLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (a int)") @@ -96,8 +93,7 @@ func TestForeignKeyError(t *testing.T) { } func TestIndexError(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, testLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, testLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -122,8 +118,7 @@ func TestIndexError(t *testing.T) { } func TestColumnError(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, testLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, testLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -179,8 +174,7 @@ func TestColumnError(t *testing.T) { } func TestCreateDatabaseError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/mockModifyJobSchemaId", `return(-1)`)) @@ -189,8 +183,7 @@ func TestCreateDatabaseError(t *testing.T) { } func TestRenameViewOverDifferentSchemaError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) //init diff --git a/ddl/ddl_tiflash_test.go b/ddl/ddl_tiflash_test.go index 9c4bc300f3bf0..7b366dbfc9b0c 100644 --- a/ddl/ddl_tiflash_test.go +++ b/ddl/ddl_tiflash_test.go @@ -779,8 +779,7 @@ func TestTiFlashBackoff(t *testing.T) { } func TestAlterDatabaseErrorGrammar(t *testing.T) { - store, tear := testkit.CreateMockStore(t) - defer tear() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustGetErrMsg("ALTER DATABASE t SET TIFLASH REPLICA 1 SET TIFLASH REPLICA 2 LOCATION LABELS 'a','b'", "[ddl:8200]Unsupported multi schema change for set tiflash replica") @@ -835,8 +834,7 @@ func checkBatchPandingNum(t *testing.T, tkx *testkit.TestKit, level string, valu } func TestTiFlashBatchAddVariables(t *testing.T) { - store, tear := testkit.CreateMockStore(t) - defer tear() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set SESSION tidb_batch_pending_tiflash_count=5") diff --git a/ddl/ddl_worker_test.go b/ddl/ddl_worker_test.go index 125df26c14767..ea2ead7049b84 100644 --- a/ddl/ddl_worker_test.go +++ b/ddl/ddl_worker_test.go @@ -34,8 +34,7 @@ import ( const testLease = 5 * time.Second func TestCheckOwner(t *testing.T) { - _, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + _, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) time.Sleep(testLease) require.Equal(t, dom.DDL().OwnerManager().IsOwner(), true) @@ -43,8 +42,7 @@ func TestCheckOwner(t *testing.T) { } func TestInvalidDDLJob(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) job := &model.Job{ SchemaID: 0, @@ -60,8 +58,7 @@ func TestInvalidDDLJob(t *testing.T) { } func TestAddBatchJobError(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) ctx := testNewContext(store) require.Nil(t, failpoint.Enable("github.com/pingcap/tidb/ddl/mockAddBatchDDLJobsErr", `return(true)`)) @@ -75,8 +72,7 @@ func TestAddBatchJobError(t *testing.T) { } func TestParallelDDL(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/fail_test.go b/ddl/fail_test.go index 413aad6172822..570522e1303b4 100644 --- a/ddl/fail_test.go +++ b/ddl/fail_test.go @@ -26,8 +26,7 @@ import ( ) func TestFailBeforeDecodeArgs(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/failtest/fail_db_test.go b/ddl/failtest/fail_db_test.go index 8d14547632c7a..a97768d25f9d6 100644 --- a/ddl/failtest/fail_db_test.go +++ b/ddl/failtest/fail_db_test.go @@ -45,7 +45,7 @@ type failedSuite struct { dom *domain.Domain } -func createFailDBSuite(t *testing.T) (s *failedSuite, clean func()) { +func createFailDBSuite(t *testing.T) (s *failedSuite) { s = new(failedSuite) var err error s.store, err = mockstore.NewMockStore( @@ -59,18 +59,17 @@ func createFailDBSuite(t *testing.T) (s *failedSuite, clean func()) { s.dom, err = session.BootstrapSession(s.store) require.NoError(t, err) - clean = func() { + t.Cleanup(func() { s.dom.Close() require.NoError(t, s.store.Close()) - } + }) return } // TestHalfwayCancelOperations tests the case that the schema is correct after the execution of operations are cancelled halfway. func TestHalfwayCancelOperations(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/truncateTableErr", `return(true)`)) defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/ddl/truncateTableErr")) @@ -157,8 +156,7 @@ func TestHalfwayCancelOperations(t *testing.T) { // TestInitializeOffsetAndState tests the case that the column's offset and state don't be initialized in the file of ddl_api.go when // doing the operation of 'modify column'. func TestInitializeOffsetAndState(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) tk := testkit.NewTestKit(t, s.store) tk.MustExec("use test") tk.MustExec("create table t(a int, b int, c int)") @@ -170,8 +168,7 @@ func TestInitializeOffsetAndState(t *testing.T) { } func TestUpdateHandleFailed(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/errorUpdateReorgHandle", `1*return`)) defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/ddl/errorUpdateReorgHandle")) @@ -189,8 +186,7 @@ func TestUpdateHandleFailed(t *testing.T) { } func TestAddIndexFailed(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/mockBackfillRunErr", `1*return`)) defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/ddl/mockBackfillRunErr")) @@ -224,8 +220,7 @@ func TestAddIndexFailed(t *testing.T) { // TestFailSchemaSyncer test when the schema syncer is done, // should prohibit DML executing until the syncer is restartd by loadSchemaInLoop. func TestFailSchemaSyncer(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) tk := testkit.NewTestKit(t, s.store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -269,8 +264,7 @@ func TestFailSchemaSyncer(t *testing.T) { } func TestGenGlobalIDFail(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/ddl/mockGenGlobalIDFail")) }() @@ -320,8 +314,7 @@ func TestGenGlobalIDFail(t *testing.T) { // TestRunDDLJobPanicEnableClusteredIndex tests recover panic with cluster index when run ddl job panic. func TestRunDDLJobPanicEnableClusteredIndex(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) testAddIndexWorkerNum(t, s, func(tk *testkit.TestKit) { tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn tk.MustExec("create table test_add_index (c1 bigint, c2 bigint, c3 bigint, primary key(c1, c3))") @@ -330,8 +323,7 @@ func TestRunDDLJobPanicEnableClusteredIndex(t *testing.T) { // TestRunDDLJobPanicDisableClusteredIndex tests recover panic without cluster index when run ddl job panic. func TestRunDDLJobPanicDisableClusteredIndex(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) testAddIndexWorkerNum(t, s, func(tk *testkit.TestKit) { tk.MustExec("create table test_add_index (c1 bigint, c2 bigint, c3 bigint, primary key(c1))") }) @@ -408,8 +400,7 @@ func testAddIndexWorkerNum(t *testing.T, s *failedSuite, test func(*testkit.Test // TestRunDDLJobPanic tests recover panic when run ddl job panic. func TestRunDDLJobPanic(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/ddl/mockPanicInRunDDLJob")) }() @@ -423,8 +414,7 @@ func TestRunDDLJobPanic(t *testing.T) { } func TestPartitionAddIndexGC(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) tk := testkit.NewTestKit(t, s.store) tk.MustExec("use test") tk.MustExec(`create table partition_add_idx ( @@ -446,8 +436,7 @@ func TestPartitionAddIndexGC(t *testing.T) { } func TestModifyColumn(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) tk := testkit.NewTestKit(t, s.store) dom := domain.GetDomain(tk.Session()) @@ -547,8 +536,7 @@ func TestModifyColumn(t *testing.T) { } func TestPartitionAddPanic(t *testing.T) { - s, clean := createFailDBSuite(t) - defer clean() + s := createFailDBSuite(t) tk := testkit.NewTestKit(t, s.store) tk.MustExec(`use test;`) tk.MustExec(`drop table if exists t;`) diff --git a/ddl/foreign_key_test.go b/ddl/foreign_key_test.go index 08ea07a3e0462..7abf183ed8259 100644 --- a/ddl/foreign_key_test.go +++ b/ddl/foreign_key_test.go @@ -99,8 +99,7 @@ func getForeignKey(t table.Table, name string) *model.FKInfo { } func TestForeignKey(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) d := dom.DDL() dbInfo, err := testSchemaInfo(store, "test_foreign") diff --git a/ddl/index_change_test.go b/ddl/index_change_test.go index 261640d86ea11..ef62621ec60bc 100644 --- a/ddl/index_change_test.go +++ b/ddl/index_change_test.go @@ -33,8 +33,7 @@ import ( ) func TestIndexChange(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddl.SetWaitTimeWhenErrorOccurred(1 * time.Microsecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/index_modify_test.go b/ddl/index_modify_test.go index 7b64658b88ffe..463662dcccb76 100644 --- a/ddl/index_modify_test.go +++ b/ddl/index_modify_test.go @@ -166,8 +166,7 @@ const ( ) func testAddIndex(t *testing.T, tp testAddIndexType, createTableSQL, idxTp string) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -327,8 +326,7 @@ LOOP: } func TestAddIndexForGeneratedColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -396,8 +394,7 @@ func TestAddUniqueIndexRollback(t *testing.T) { } func testAddIndexRollback(t *testing.T, idxName, addIdxSQL, errMsg string, hasNullValsInKey bool) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (c1 int, c2 int, c3 int, unique key(c1))") @@ -476,8 +473,7 @@ func TestAddIndexWithShardRowID(t *testing.T) { } func testAddIndexWithSplitTable(t *testing.T, createSQL, splitTableSQL string) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") hasAutoRandomField := len(splitTableSQL) > 0 @@ -575,8 +571,7 @@ LOOP: } func TestAddAnonymousIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -640,8 +635,7 @@ func TestAddAnonymousIndex(t *testing.T) { } func TestAddIndexWithPK(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -700,8 +694,7 @@ func TestAddGlobalIndex(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.EnableGlobalIndex = true }) - store, clean := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table test_t1 (a int, b int) partition by range (b)" + @@ -828,8 +821,7 @@ func checkGlobalIndexRow( } func TestDropIndexes(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -947,8 +939,7 @@ func testDropIndexesFromPartitionedTable(t *testing.T, store kv.Storage) { } func TestDropPrimaryKey(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -961,8 +952,7 @@ func TestDropPrimaryKey(t *testing.T) { } func TestDropIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1018,8 +1008,7 @@ LOOP: } func TestAddMultiColumnsIndexClusterIndex(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_add_multi_col_index_clustered;") tk.MustExec("create database test_add_multi_col_index_clustered;") @@ -1040,8 +1029,7 @@ func TestAddMultiColumnsIndexClusterIndex(t *testing.T) { } func TestAddIndexWithDupCols(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1062,8 +1050,7 @@ func TestAddIndexWithDupCols(t *testing.T) { } func TestAnonymousIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1082,8 +1069,7 @@ func TestAnonymousIndex(t *testing.T) { } func TestAddIndexWithDupIndex(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/integration_test.go b/ddl/integration_test.go index 99ba587322f88..5a718b25519d5 100644 --- a/ddl/integration_test.go +++ b/ddl/integration_test.go @@ -25,8 +25,7 @@ import ( ) func TestDefaultValueIsBinaryString(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tests := []struct { colTp string defVal string @@ -62,8 +61,7 @@ func TestDefaultValueIsBinaryString(t *testing.T) { // https://github.com/pingcap/tidb/issues/30740. func TestDefaultValueInEnum(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") // The value 0x91 should not cause panic. @@ -84,8 +82,7 @@ func TestDefaultValueInEnum(t *testing.T) { } func TestDDLStatementsBackFill(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") needReorg := false @@ -119,8 +116,7 @@ func TestDDLStatementsBackFill(t *testing.T) { } func TestDDLOnCachedTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tests := []struct { sql string result string diff --git a/ddl/job_table_test.go b/ddl/job_table_test.go index 6c586bd2d3aca..3583befccce7f 100644 --- a/ddl/job_table_test.go +++ b/ddl/job_table_test.go @@ -48,8 +48,7 @@ func TestDDLSchedulingMultiTimes(t *testing.T) { // This test checks the chosen job records to see if there are wrong scheduling, if job A and job B cannot run concurrently, // then the all the record of job A must before or after job B, no cross record between these 2 jobs should be in between. func testDDLScheduling(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -192,8 +191,7 @@ func check(t *testing.T, record []int64, ids ...int64) { } func TestConcurrentDDLSwitch(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) type table struct { columnIdx int diff --git a/ddl/modify_column_test.go b/ddl/modify_column_test.go index bbfbe4da8d2b9..211d96693ee78 100644 --- a/ddl/modify_column_test.go +++ b/ddl/modify_column_test.go @@ -48,8 +48,7 @@ func batchInsert(tk *testkit.TestKit, tbl string, start, end int) { } func TestModifyColumnReorgInfo(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -159,8 +158,7 @@ func TestModifyColumnReorgInfo(t *testing.T) { } func TestModifyColumnNullToNotNullWithChangingVal2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -178,8 +176,7 @@ func TestModifyColumnNullToNotNullWithChangingVal2(t *testing.T) { } func TestModifyColumnNullToNotNull(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 600*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 600*time.Millisecond) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -234,8 +231,7 @@ func TestModifyColumnNullToNotNull(t *testing.T) { } func TestModifyColumnNullToNotNullWithChangingVal(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 600*time.Millisecond) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, 600*time.Millisecond) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -292,8 +288,7 @@ func TestModifyColumnNullToNotNullWithChangingVal(t *testing.T) { } func TestModifyColumnBetweenStringTypes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -395,8 +390,7 @@ func TestModifyColumnBetweenStringTypes(t *testing.T) { } func TestModifyColumnCharset(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t_mcc(a varchar(8) charset utf8, b varchar(8) charset utf8)") @@ -777,8 +771,7 @@ type testModifyColumnTimeCase struct { func testModifyColumnTime(t *testing.T, tests []testModifyColumnTimeCase) { limit := variable.GetDDLErrorCountLimit() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@global.tidb_ddl_error_count_limit = 3") @@ -808,8 +801,7 @@ func testModifyColumnTime(t *testing.T, tests []testModifyColumnTimeCase) { } func TestModifyColumnTypeWithWarnings(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -845,8 +837,7 @@ func TestModifyColumnTypeWithWarnings(t *testing.T) { // TestModifyColumnTypeWhenInterception is to test modifying column type with warnings intercepted by // reorg timeout, not owner error and so on. func TestModifyColumnTypeWhenInterception(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/multi_schema_change_test.go b/ddl/multi_schema_change_test.go index b95788281a689..0fdb02b0819b2 100644 --- a/ddl/multi_schema_change_test.go +++ b/ddl/multi_schema_change_test.go @@ -31,8 +31,7 @@ import ( ) func TestMultiSchemaChangeAddColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -133,8 +132,7 @@ func TestMultiSchemaChangeAddColumns(t *testing.T) { } func TestMultiSchemaChangeAddColumnsCancelled(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") originHook := dom.DDL().GetHook() @@ -154,8 +152,7 @@ func TestMultiSchemaChangeAddColumnsCancelled(t *testing.T) { } func TestMultiSchemaChangeAddColumnsParallel(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (a int default 1);") @@ -177,8 +174,7 @@ func TestMultiSchemaChangeAddColumnsParallel(t *testing.T) { } func TestMultiSchemaChangeDropColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -214,8 +210,7 @@ func TestMultiSchemaChangeDropColumns(t *testing.T) { } func TestMultiSchemaChangeDropColumnsCancelled(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") originHook := dom.DDL().GetHook() @@ -249,8 +244,7 @@ func TestMultiSchemaChangeDropColumnsCancelled(t *testing.T) { } func TestMultiSchemaChangeDropIndexedColumnsCancelled(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") originHook := dom.DDL().GetHook() @@ -271,8 +265,7 @@ func TestMultiSchemaChangeDropIndexedColumnsCancelled(t *testing.T) { } func TestMultiSchemaChangeDropColumnsParallel(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (a int, b int, c int);") @@ -290,8 +283,7 @@ func TestMultiSchemaChangeDropColumnsParallel(t *testing.T) { } func TestMultiSchemaChangeAddDropColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -316,9 +308,8 @@ func TestMultiSchemaChangeAddDropColumns(t *testing.T) { } func TestMultiSchemaChangeRenameColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) + store, dom := testkit.CreateMockStoreAndDomain(t) originHook := dom.DDL().GetHook() - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -391,9 +382,8 @@ func TestMultiSchemaChangeRenameColumns(t *testing.T) { } func TestMultiSchemaChangeAlterColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) + store, dom := testkit.CreateMockStoreAndDomain(t) originHook := dom.DDL().GetHook() - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -457,9 +447,8 @@ func TestMultiSchemaChangeAlterColumns(t *testing.T) { } func TestMultiSchemaChangeChangeColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) + store, dom := testkit.CreateMockStoreAndDomain(t) originHook := dom.DDL().GetHook() - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -510,8 +499,7 @@ func TestMultiSchemaChangeChangeColumns(t *testing.T) { } func TestMultiSchemaChangeAddIndexes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -548,8 +536,7 @@ func TestMultiSchemaChangeAddIndexes(t *testing.T) { } func TestMultiSchemaChangeAddIndexesCancelled(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") originHook := dom.DDL().GetHook() @@ -590,8 +577,7 @@ func TestMultiSchemaChangeAddIndexesCancelled(t *testing.T) { } func TestMultiSchemaChangeDropIndexes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -619,8 +605,7 @@ func TestMultiSchemaChangeDropIndexes(t *testing.T) { } func TestMultiSchemaChangeDropIndexesCancelled(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") originHook := dom.DDL().GetHook() @@ -654,8 +639,7 @@ func TestMultiSchemaChangeDropIndexesCancelled(t *testing.T) { } func TestMultiSchemaChangeDropIndexesParallel(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (a int, b int, c int, index(a), index(b), index(c));") @@ -673,8 +657,7 @@ func TestMultiSchemaChangeDropIndexesParallel(t *testing.T) { } func TestMultiSchemaChangeAddDropIndexes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -700,8 +683,7 @@ func TestMultiSchemaChangeAddDropIndexes(t *testing.T) { } func TestMultiSchemaChangeRenameIndexes(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") originHook := dom.DDL().GetHook() @@ -749,8 +731,7 @@ func TestMultiSchemaChangeRenameIndexes(t *testing.T) { } func TestMultiSchemaChangeModifyColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -878,8 +859,7 @@ func TestMultiSchemaChangeModifyColumns(t *testing.T) { } func TestMultiSchemaChangeModifyColumnsCancelled(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") originHook := dom.DDL().GetHook() @@ -903,8 +883,7 @@ func TestMultiSchemaChangeModifyColumnsCancelled(t *testing.T) { } func TestMultiSchemaChangeAlterIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -961,8 +940,7 @@ func TestMultiSchemaChangeAlterIndex(t *testing.T) { } func TestMultiSchemaChangeMix(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -978,8 +956,7 @@ func TestMultiSchemaChangeMix(t *testing.T) { } func TestMultiSchemaChangeMixCancelled(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -1004,8 +981,7 @@ func TestMultiSchemaChangeMixCancelled(t *testing.T) { } func TestMultiSchemaChangeAdminShowDDLJobs(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1039,8 +1015,7 @@ func TestMultiSchemaChangeAdminShowDDLJobs(t *testing.T) { } func TestMultiSchemaChangeTableOption(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -1065,8 +1040,7 @@ func TestMultiSchemaChangeTableOption(t *testing.T) { } func TestMultiSchemaChangeNonPublicDefaultValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("create table t (a tinyint);") @@ -1076,8 +1050,7 @@ func TestMultiSchemaChangeNonPublicDefaultValue(t *testing.T) { } func TestMultiSchemaChangeAlterIndexVisibility(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("create table t (a int, b int, index idx(b));") @@ -1088,8 +1061,7 @@ func TestMultiSchemaChangeAlterIndexVisibility(t *testing.T) { } func TestMultiSchemaChangeWithExpressionIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("create table t (a int, b int);") @@ -1131,8 +1103,7 @@ func TestMultiSchemaChangeWithExpressionIndex(t *testing.T) { } func TestMultiSchemaChangeNoSubJobs(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -1145,8 +1116,7 @@ func TestMultiSchemaChangeNoSubJobs(t *testing.T) { } func TestMultiSchemaChangeUnsupportedType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -1156,8 +1126,7 @@ func TestMultiSchemaChangeUnsupportedType(t *testing.T) { } func TestMultiSchemaChangeMixedWithUpdate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("create table t (c_1 int, c_2 char(20), c_pos_1 int, c_idx_visible int, c_3 decimal(5, 3), " + diff --git a/ddl/partition_test.go b/ddl/partition_test.go index 7bbccee4189d8..1a25545d86bed 100644 --- a/ddl/partition_test.go +++ b/ddl/partition_test.go @@ -28,8 +28,7 @@ import ( ) func TestDropAndTruncatePartition(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, domain := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) d := domain.DDL() dbInfo, err := testSchemaInfo(store, "test_partition") diff --git a/ddl/placement_policy_ddl_test.go b/ddl/placement_policy_ddl_test.go index 48203b9c317f5..026fee08e2bdc 100644 --- a/ddl/placement_policy_ddl_test.go +++ b/ddl/placement_policy_ddl_test.go @@ -58,8 +58,7 @@ func testCreatePlacementPolicy(t *testing.T, ctx sessionctx.Context, d ddl.DDL, } func TestPlacementPolicyInUse(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) d := dom.DDL() sctx := testkit.NewTestKit(t, store).Session() diff --git a/ddl/placement_policy_test.go b/ddl/placement_policy_test.go index f6d74b5a6cfb3..a512910993515 100644 --- a/ddl/placement_policy_test.go +++ b/ddl/placement_policy_test.go @@ -129,8 +129,7 @@ func checkTableBundlesInPD(t *testing.T, do *domain.Domain, tt *meta.Meta, tblIn } func TestPlacementPolicy(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -208,8 +207,7 @@ func TestPlacementPolicy(t *testing.T) { } func TestCreatePlacementPolicyWithInfo(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -304,8 +302,7 @@ func checkPolicyEquals(t *testing.T, expected *model.PolicyInfo, actual *model.P } func TestPlacementFollowers(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") defer tk.MustExec("drop placement policy if exists x") @@ -348,8 +345,7 @@ func testGetPolicyByNameFromIS(t *testing.T, ctx sessionctx.Context, policy stri } func TestPlacementValidation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop placement policy if exists x") @@ -412,8 +408,7 @@ func TestPlacementValidation(t *testing.T) { } func TestResetSchemaPlacement(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists TestResetPlacementDB;") tk.MustExec("create placement policy `TestReset` followers=4;") @@ -467,8 +462,7 @@ func TestResetSchemaPlacement(t *testing.T) { } func TestCreateOrReplacePlacementPolicy(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop placement policy if exists x") @@ -496,8 +490,7 @@ PARTITION p1 VALUES LESS THAN (1000)) } func TestAlterPlacementPolicy(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -568,8 +561,7 @@ func TestAlterPlacementPolicy(t *testing.T) { } func TestCreateTableWithPlacementPolicy(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -694,8 +686,7 @@ func getClonedDatabase(dom *domain.Domain, dbName string) (*model.DBInfo, bool) } func TestCreateTableWithInfoPlacement(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -746,8 +737,7 @@ func TestCreateTableWithInfoPlacement(t *testing.T) { } func TestCreateSchemaWithInfoPlacement(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -795,8 +785,7 @@ func TestCreateSchemaWithInfoPlacement(t *testing.T) { } func TestDropPlacementPolicyInUse(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create database if not exists test2") @@ -900,8 +889,7 @@ func testGetPolicyDependency(storage kv.Storage, name string) []int64 { } func TestPolicyCacheAndPolicyDependency(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop placement policy if exists x") @@ -974,8 +962,7 @@ func TestPolicyCacheAndPolicyDependency(t *testing.T) { } func TestAlterTablePartitionWithPlacementPolicy(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) defer func() { @@ -1033,8 +1020,7 @@ func testGetPartitionDefinitionsByName(t *testing.T, ctx sessionctx.Context, db } func TestPolicyInheritance(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1117,8 +1103,7 @@ func TestPolicyInheritance(t *testing.T) { } func TestDatabasePlacement(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists db2") tk.MustExec("drop placement policy if exists p1") @@ -1193,8 +1178,7 @@ func TestDropDatabaseGCPlacement(t *testing.T) { } }(util.IsEmulatorGCEnable()) util.EmulatorGCDisable() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists db2") tk.MustExec("drop placement policy if exists p1") @@ -1253,8 +1237,7 @@ func TestDropTableGCPlacement(t *testing.T) { } }(util.IsEmulatorGCEnable()) util.EmulatorGCDisable() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t0,t1") @@ -1305,8 +1288,7 @@ func TestDropTableGCPlacement(t *testing.T) { } func TestAlterTablePlacement(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1386,8 +1368,7 @@ func TestDropTablePartitionGCPlacement(t *testing.T) { } }(util.IsEmulatorGCEnable()) util.EmulatorGCDisable() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t0,t1") @@ -1467,8 +1448,7 @@ func TestDropTablePartitionGCPlacement(t *testing.T) { func TestAlterTablePartitionPlacement(t *testing.T) { // clearAllBundles(t) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tp") @@ -1555,8 +1535,7 @@ func TestAlterTablePartitionPlacement(t *testing.T) { func TestAddPartitionWithPlacement(t *testing.T) { // clearAllBundles(t) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tp") @@ -1627,8 +1606,7 @@ func TestAddPartitionWithPlacement(t *testing.T) { } func TestTruncateTableWithPlacement(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1712,8 +1690,7 @@ func TestTruncateTableGCWithPlacement(t *testing.T) { } }(util.IsEmulatorGCEnable()) util.EmulatorGCDisable() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t0,t1") @@ -1772,8 +1749,7 @@ func TestTruncateTableGCWithPlacement(t *testing.T) { } func TestTruncateTablePartitionWithPlacement(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1847,8 +1823,7 @@ func TestTruncatePartitionGCWithPlacement(t *testing.T) { } }(util.IsEmulatorGCEnable()) util.EmulatorGCDisable() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop placement policy if exists p1") @@ -1906,8 +1881,7 @@ func TestTruncatePartitionGCWithPlacement(t *testing.T) { } func TestExchangePartitionWithPlacement(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_enable_exchange_partition=1") @@ -1987,8 +1961,7 @@ func TestPDFail(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/domain/infosync/putRuleBundlesError")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // clearAllBundles(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2088,8 +2061,7 @@ func TestRecoverTableWithPlacementPolicy(t *testing.T) { } }(util.IsEmulatorGCEnable()) util.EmulatorGCDisable() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop placement policy if exists p1") diff --git a/ddl/placement_sql_test.go b/ddl/placement_sql_test.go index f8ee695d80f45..e62a8aae620f0 100644 --- a/ddl/placement_sql_test.go +++ b/ddl/placement_sql_test.go @@ -30,8 +30,7 @@ import ( ) func TestTxnScopeConstraint(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -152,8 +151,7 @@ PARTITION BY RANGE (c) ( } func TestCreateSchemaWithPlacement(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop schema if exists SchemaPolicyPlacementTest") defer func() { @@ -195,8 +193,7 @@ func TestCreateSchemaWithPlacement(t *testing.T) { } func TestAlterDBPlacement(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists TestAlterDB;") tk.MustExec("create database TestAlterDB;") @@ -282,8 +279,7 @@ func TestAlterDBPlacement(t *testing.T) { } func TestPlacementMode(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop database if exists db1") @@ -583,8 +579,7 @@ func TestPlacementMode(t *testing.T) { } func TestPlacementTiflashCheck(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/infoschema/mockTiFlashStoreCount", `return(true)`)) defer func() { diff --git a/ddl/primary_key_handle_test.go b/ddl/primary_key_handle_test.go index ee9c318d6a2a2..92e43f2ce8f54 100644 --- a/ddl/primary_key_handle_test.go +++ b/ddl/primary_key_handle_test.go @@ -58,8 +58,7 @@ func checkTableMaxHandle(t *testing.T, d ddl.DDL, tbl table.Table, store kv.Stor } func TestPrimaryKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeIntOnly @@ -124,11 +123,10 @@ func TestPrimaryKey(t *testing.T) { func TestMultiRegionGetTableEndHandle(t *testing.T) { var cluster testutils.Cluster - store, clean := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { + store := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithSingleStore(c) cluster = c })) - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a bigint PRIMARY KEY, b int)") @@ -161,8 +159,7 @@ func TestMultiRegionGetTableEndHandle(t *testing.T) { } func TestGetTableEndHandle(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // TestGetTableEndHandle test ddl.GetTableMaxHandle method, which will return the max row id of the table. tk := testkit.NewTestKit(t, store) @@ -254,11 +251,10 @@ func TestGetTableEndHandle(t *testing.T) { func TestMultiRegionGetTableEndCommonHandle(t *testing.T) { var cluster testutils.Cluster - store, clean := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { + store := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithSingleStore(c) cluster = c })) - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -293,8 +289,7 @@ func TestMultiRegionGetTableEndCommonHandle(t *testing.T) { } func TestGetTableEndCommonHandle(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -331,8 +326,7 @@ func TestGetTableEndCommonHandle(t *testing.T) { } func TestAutoRandomChangeFromAutoInc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("set @@tidb_allow_remove_auto_inc = 1;") @@ -389,8 +383,7 @@ func TestAutoRandomChangeFromAutoInc(t *testing.T) { } func TestAutoRandomExchangePartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists auto_random_db") defer tk.MustExec("drop database if exists auto_random_db") @@ -425,8 +418,7 @@ func TestAutoRandomExchangePartition(t *testing.T) { } func TestAutoRandomIncBitsIncrementAndOffset(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists auto_random_db") defer tk.MustExec("drop database if exists auto_random_db") @@ -484,8 +476,7 @@ func TestAutoRandomIncBitsIncrementAndOffset(t *testing.T) { } func TestInvisibleIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -563,8 +554,7 @@ func TestInvisibleIndex(t *testing.T) { } func TestCreateClusteredIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn diff --git a/ddl/reorg_test.go b/ddl/reorg_test.go index 252448bd5203b..2302d4992ba11 100644 --- a/ddl/reorg_test.go +++ b/ddl/reorg_test.go @@ -30,8 +30,7 @@ import ( ) func TestReorgOwner(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, domain := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) d1 := domain.DDL() diff --git a/ddl/repair_table_test.go b/ddl/repair_table_test.go index f3b8ff7ed72e1..6881c6ce5f019 100644 --- a/ddl/repair_table_test.go +++ b/ddl/repair_table_test.go @@ -39,8 +39,7 @@ func TestRepairTable(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/infoschema/repairFetchCreateTable")) }() - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, repairTableLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, repairTableLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -169,8 +168,7 @@ func TestRepairTableWithPartition(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/infoschema/repairFetchCreateTable")) }() - store, clean := testkit.CreateMockStoreWithSchemaLease(t, repairTableLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, repairTableLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists origin") diff --git a/ddl/restart_test.go b/ddl/restart_test.go index 293ce76d50642..450624f7dfe97 100644 --- a/ddl/restart_test.go +++ b/ddl/restart_test.go @@ -101,8 +101,7 @@ func testRunInterruptedJob(t *testing.T, store kv.Storage, d *domain.Domain, job } func TestSchemaResume(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) require.True(t, dom.DDL().OwnerManager().IsOwner()) @@ -127,8 +126,7 @@ func TestSchemaResume(t *testing.T) { } func TestStat(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) dbInfo, err := testSchemaInfo(store, "test_restart") require.NoError(t, err) @@ -169,8 +167,7 @@ LOOP: } func TestTableResume(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) dbInfo, err := testSchemaInfo(store, "test_table") require.NoError(t, err) diff --git a/ddl/rollingback_test.go b/ddl/rollingback_test.go index 401a50ba161ba..50b4f579794f6 100644 --- a/ddl/rollingback_test.go +++ b/ddl/rollingback_test.go @@ -30,8 +30,7 @@ import ( // TestCancelJobMeetError is used to test canceling ddl job failure when convert ddl job to a rolling back job. func TestCancelAddIndexJobError(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk1 := testkit.NewTestKit(t, store) diff --git a/ddl/schema_test.go b/ddl/schema_test.go index ae9f85b0f12fa..70206ed2f179f 100644 --- a/ddl/schema_test.go +++ b/ddl/schema_test.go @@ -206,8 +206,7 @@ func testCheckSchemaState(test *testing.T, store kv.Storage, dbInfo *model.DBInf } func TestSchema(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, domain := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) dbInfo, err := testSchemaInfo(store, "test_schema") require.NoError(t, err) @@ -278,8 +277,7 @@ func TestSchema(t *testing.T) { } func TestSchemaWaitJob(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, domain := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) require.True(t, domain.DDL().OwnerManager().IsOwner()) diff --git a/ddl/sequence_test.go b/ddl/sequence_test.go index 56b0a0529043f..45983f9b3511e 100644 --- a/ddl/sequence_test.go +++ b/ddl/sequence_test.go @@ -32,8 +32,7 @@ import ( ) func TestCreateSequence(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -98,8 +97,7 @@ func TestCreateSequence(t *testing.T) { // Test for sequence still works with a infoschema attached by temporary table func TestIssue28881(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -113,8 +111,7 @@ func TestIssue28881(t *testing.T) { } func TestDropSequence(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -184,8 +181,7 @@ func TestDropSequence(t *testing.T) { } func TestShowCreateSequence(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -268,8 +264,7 @@ func TestShowCreateSequence(t *testing.T) { } func TestSequenceAsDefaultValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -310,8 +305,7 @@ func TestSequenceAsDefaultValue(t *testing.T) { } func TestSequenceFunction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -739,8 +733,7 @@ func TestSequenceFunction(t *testing.T) { } func TestInsertSequence(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -810,8 +803,7 @@ func TestInsertSequence(t *testing.T) { } func TestUnflodSequence(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -879,8 +871,7 @@ func TestUnflodSequence(t *testing.T) { // after this PR: // single insert consume: 33.213615ms func BenchmarkInsertCacheDefaultExpr(b *testing.B) { - store, clean := testkit.CreateMockStore(b) - defer clean() + store := testkit.CreateMockStore(b) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(b, store) tk.MustExec("use test") @@ -903,8 +894,7 @@ func BenchmarkInsertCacheDefaultExpr(b *testing.B) { } func TestSequenceFunctionPrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -980,8 +970,7 @@ func TestSequenceFunctionPrivilege(t *testing.T) { // [1]: forbid the new added column has sequence as it's default value. // [2]: allow the altered column with sequence as default value. func TestSequenceDefaultLogic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1012,8 +1001,7 @@ func TestSequenceDefaultLogic(t *testing.T) { // Close issue #17945, sequence cache shouldn't be negative. func TestSequenceCacheShouldNotBeNegative(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1041,8 +1029,7 @@ func TestSequenceCacheShouldNotBeNegative(t *testing.T) { } func TestAlterSequence(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1102,8 +1089,7 @@ func TestAlterSequence(t *testing.T) { } func TestAlterSequencePrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session.SetSchemaLease(600 * time.Millisecond) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1131,8 +1117,7 @@ func TestAlterSequencePrivilege(t *testing.T) { } func TestDdl_AlterSequenceIssue31265(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/serial_test.go b/ddl/serial_test.go index 048cc001fca39..322a30fdbb9a1 100644 --- a/ddl/serial_test.go +++ b/ddl/serial_test.go @@ -50,8 +50,7 @@ import ( ) func TestTruncateAllPartitions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table partition_table (v int) partition by hash (v) partitions 10") @@ -61,8 +60,7 @@ func TestTruncateAllPartitions(t *testing.T) { } func TestIssue23872(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -90,8 +88,7 @@ func TestIssue23872(t *testing.T) { } func TestChangeMaxIndexLength(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer config.RestoreFunc()() @@ -107,8 +104,7 @@ func TestChangeMaxIndexLength(t *testing.T) { } func TestCreateTableWithLike(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // for the same database tk.MustExec("create database ctwl_db") @@ -225,8 +221,7 @@ func TestCreateTableWithLike(t *testing.T) { } func TestCreateTableWithLikeAtTemporaryMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Test create table like at temporary mode. @@ -410,7 +405,7 @@ func TestCreateTableWithLikeAtTemporaryMode(t *testing.T) { require.Equal(t, core.ErrOptOnTemporaryTable.GenWithStackByArgs("placement").Error(), err.Error()) } -func createMockStoreAndDomain(t *testing.T) (store kv.Storage, dom *domain.Domain, clean func()) { +func createMockStoreAndDomain(t *testing.T) (store kv.Storage, dom *domain.Domain) { session.SetSchemaLease(200 * time.Millisecond) session.DisableStats4Test() ddl.SetWaitTimeWhenErrorOccurred(1 * time.Microsecond) @@ -420,17 +415,16 @@ func createMockStoreAndDomain(t *testing.T) (store kv.Storage, dom *domain.Domai require.NoError(t, err) dom, err = session.BootstrapSession(store) require.NoError(t, err) - clean = func() { + t.Cleanup(func() { dom.Close() require.NoError(t, store.Close()) - } + }) return } // TestCancelAddIndex1 tests canceling ddl job when the add index worker is not started. func TestCancelAddIndexPanic(t *testing.T) { - store, dom, clean := createMockStoreAndDomain(t) - defer clean() + store, dom := createMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/errorMockPanic", `return(true)`)) defer func() { @@ -467,8 +461,7 @@ func TestCancelAddIndexPanic(t *testing.T) { } func TestRecoverTableByJobID(t *testing.T) { - store, _, clean := createMockStoreAndDomain(t) - defer clean() + store, _ := createMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_recover") tk.MustExec("use test_recover") @@ -584,8 +577,7 @@ func TestRecoverTableByJobID(t *testing.T) { } func TestRecoverTableByJobIDFail(t *testing.T) { - store, dom, clean := createMockStoreAndDomain(t) - defer clean() + store, dom := createMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_recover") tk.MustExec("use test_recover") @@ -653,8 +645,7 @@ func TestRecoverTableByJobIDFail(t *testing.T) { } func TestRecoverTableByTableNameFail(t *testing.T) { - store, dom, clean := createMockStoreAndDomain(t) - defer clean() + store, dom := createMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_recover") tk.MustExec("use test_recover") @@ -713,8 +704,7 @@ func TestRecoverTableByTableNameFail(t *testing.T) { } func TestCancelJobByErrorCountLimit(t *testing.T) { - store, _, clean := createMockStoreAndDomain(t) - defer clean() + store, _ := createMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/mockExceedErrorLimit", `return(true)`)) defer func() { @@ -734,8 +724,7 @@ func TestCancelJobByErrorCountLimit(t *testing.T) { } func TestTruncateTableUpdateSchemaVersionErr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/mockTruncateTableUpdateVersionError", `return(true)`)) tk.MustExec("use test") @@ -756,8 +745,7 @@ func TestTruncateTableUpdateSchemaVersionErr(t *testing.T) { } func TestCanceledJobTakeTime(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t_cjtt(a int)") @@ -790,8 +778,7 @@ func TestCanceledJobTakeTime(t *testing.T) { } func TestTableLocksEnable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (a int)") @@ -813,8 +800,7 @@ func TestTableLocksEnable(t *testing.T) { } func TestAutoRandomOnTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists auto_random_temporary") @@ -825,8 +811,7 @@ func TestAutoRandomOnTemporaryTable(t *testing.T) { } func TestAutoRandom(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists auto_random_db") tk.MustExec("use auto_random_db") @@ -1045,8 +1030,7 @@ func TestAutoRandom(t *testing.T) { } func TestAutoRandomWithPreSplitRegion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists auto_random_db") tk.MustExec("use auto_random_db") @@ -1068,8 +1052,7 @@ func TestAutoRandomWithPreSplitRegion(t *testing.T) { } func TestModifyingColumn4NewCollations(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database dct") tk.MustExec("use dct") @@ -1103,8 +1086,7 @@ func TestModifyingColumn4NewCollations(t *testing.T) { } func TestForbidUnsupportedCollations(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) mustGetUnsupportedCollation := func(sql string, coll string) { @@ -1141,8 +1123,7 @@ func TestForbidUnsupportedCollations(t *testing.T) { } func TestCreateTableNoBlock(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/ddl/checkOwnerCheckAllVersionsWaitTime", `return(true)`)) defer func() { @@ -1160,8 +1141,7 @@ func TestCreateTableNoBlock(t *testing.T) { } func TestCheckEnumLength(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustGetErrCode("create table t1 (a enum('aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'))", errno.ErrTooLongValueForType) @@ -1187,12 +1167,11 @@ func TestCheckEnumLength(t *testing.T) { func TestGetReverseKey(t *testing.T) { var cluster testutils.Cluster - store, dom, clean := testkit.CreateMockStoreAndDomain(t, + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithSingleStore(c) cluster = c })) - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("create database db_get") tk.MustExec("use db_get") @@ -1250,8 +1229,7 @@ func TestGetReverseKey(t *testing.T) { } func TestLocalTemporaryTableBlockedDDL(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (id int)") diff --git a/ddl/stat_test.go b/ddl/stat_test.go index 3c298ea4ba435..7e8cc31aa96ee 100644 --- a/ddl/stat_test.go +++ b/ddl/stat_test.go @@ -36,8 +36,7 @@ import ( ) func TestDDLStatsInfo(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, domain := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) d := domain.DDL() dbInfo, err := testSchemaInfo(store, "test_stat") @@ -93,8 +92,7 @@ func TestDDLStatsInfo(t *testing.T) { } func TestGetDDLInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) sess := tk.Session() diff --git a/ddl/table_modify_test.go b/ddl/table_modify_test.go index 50f8ea8a9b6d0..5b78f5e95bb25 100644 --- a/ddl/table_modify_test.go +++ b/ddl/table_modify_test.go @@ -37,8 +37,7 @@ import ( const tableModifyLease = 600 * time.Millisecond func TestCreateTable(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, tableModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, tableModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("CREATE TABLE `t` (`a` double DEFAULT 1.0 DEFAULT now() DEFAULT 2.0 );") @@ -114,8 +113,7 @@ func TestCreateTable(t *testing.T) { } func TestLockTableReadOnly(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, tableModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, tableModifyLease) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) tk1.MustExec("use test") @@ -178,8 +176,7 @@ func TestLockTableReadOnly(t *testing.T) { // TestConcurrentLockTables test concurrent lock/unlock tables. func TestConcurrentLockTables(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, tableModifyLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, tableModifyLease) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) tk1.MustExec("use test") @@ -284,8 +281,7 @@ func testParallelExecSQL(t *testing.T, store kv.Storage, dom *domain.Domain, sql } func TestUnsupportedAlterTableOption(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, tableModifyLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, tableModifyLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a char(10) not null,b char(20)) shard_row_id_bits=6") diff --git a/ddl/table_test.go b/ddl/table_test.go index fcdc713539948..a9320e01cc781 100644 --- a/ddl/table_test.go +++ b/ddl/table_test.go @@ -166,8 +166,7 @@ func testGetTableWithError(store kv.Storage, schemaID, tableID int64) (table.Tab } func TestTable(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, domain := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) d := domain.DDL() dbInfo, err := testSchemaInfo(store, "test_table") @@ -295,8 +294,7 @@ func testAlterNoCacheTable(t *testing.T, ctx sessionctx.Context, d ddl.DDL, newS } func TestRenameTables(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, domain := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) d := domain.DDL() @@ -332,8 +330,7 @@ func TestRenameTables(t *testing.T) { } func TestCreateTables(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) - defer clean() + store, domain := testkit.CreateMockStoreAndDomainWithSchemaLease(t, testLease) d := domain.DDL() diff --git a/ddl/tiflash_replica_test.go b/ddl/tiflash_replica_test.go index ca87913293cc3..66273b685f747 100644 --- a/ddl/tiflash_replica_test.go +++ b/ddl/tiflash_replica_test.go @@ -41,8 +41,7 @@ const tiflashReplicaLease = 600 * time.Millisecond func TestSetTableFlashReplica(t *testing.T) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/infoschema/mockTiFlashStoreCount", `return(true)`)) - store, clean := testkit.CreateMockStoreWithSchemaLease(t, tiflashReplicaLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, tiflashReplicaLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -147,8 +146,7 @@ func TestSetTiFlashReplicaForTemporaryTable(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/infoschema/mockTiFlashStoreCount")) }() - store, clean := testkit.CreateMockStoreWithSchemaLease(t, tiflashReplicaLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, tiflashReplicaLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -170,8 +168,7 @@ func TestSetTiFlashReplicaForTemporaryTable(t *testing.T) { } func TestSetTableFlashReplicaForSystemTable(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, tiflashReplicaLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, tiflashReplicaLease) tk := testkit.NewTestKit(t, store) sysTables := make([]string, 0, 24) @@ -202,8 +199,7 @@ func TestSkipSchemaChecker(t *testing.T) { require.NoError(t, err) }() - store, clean := testkit.CreateMockStoreWithSchemaLease(t, tiflashReplicaLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, tiflashReplicaLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -235,8 +231,7 @@ func TestSkipSchemaChecker(t *testing.T) { // TestCreateTableWithLike2 tests create table with like when refer table have non-public column/index. func TestCreateTableWithLike2(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomainWithSchemaLease(t, tiflashReplicaLease) - defer clean() + store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, tiflashReplicaLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (a int, b int, c int, index idx1(c));") @@ -342,8 +337,7 @@ func TestCreateTableWithLike2(t *testing.T) { } func TestTruncateTable2(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, tiflashReplicaLease) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, tiflashReplicaLease) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table truncate_table (c1 int, c2 int)") diff --git a/dumpling/export/writer_test.go b/dumpling/export/writer_test.go index 4192a86179163..b5f54f3debcb9 100644 --- a/dumpling/export/writer_test.go +++ b/dumpling/export/writer_test.go @@ -22,8 +22,7 @@ func TestWriteDatabaseMeta(t *testing.T) { config := defaultConfigForTest(t) config.OutputDirPath = dir - writer, clean := createTestWriter(config, t) - defer clean() + writer := createTestWriter(config, t) err := writer.WriteDatabaseMeta("test", "CREATE DATABASE `test`") require.NoError(t, err) @@ -42,8 +41,7 @@ func TestWritePolicyMeta(t *testing.T) { config := defaultConfigForTest(t) config.OutputDirPath = dir - writer, clean := createTestWriter(config, t) - defer clean() + writer := createTestWriter(config, t) err := writer.WritePolicyMeta("testpolicy", "create placement policy `y` followers=2") require.NoError(t, err) @@ -63,8 +61,7 @@ func TestWriteTableMeta(t *testing.T) { config := defaultConfigForTest(t) config.OutputDirPath = dir - writer, clean := createTestWriter(config, t) - defer clean() + writer := createTestWriter(config, t) err := writer.WriteTableMeta("test", "t", "CREATE TABLE t (a INT)") require.NoError(t, err) @@ -81,8 +78,7 @@ func TestWriteViewMeta(t *testing.T) { config := defaultConfigForTest(t) config.OutputDirPath = dir - writer, clean := createTestWriter(config, t) - defer clean() + writer := createTestWriter(config, t) specCmt := "/*!40101 SET NAMES binary*/;\n" createTableSQL := "CREATE TABLE `v`(\n`a` int\n)ENGINE=MyISAM;\n" @@ -110,8 +106,7 @@ func TestWriteTableData(t *testing.T) { config := defaultConfigForTest(t) config.OutputDirPath = dir - writer, clean := createTestWriter(config, t) - defer clean() + writer := createTestWriter(config, t) data := [][]driver.Value{ {"1", "male", "bob@mail.com", "020-1234", nil}, @@ -157,8 +152,7 @@ func TestWriteTableDataWithFileSize(t *testing.T) { config.FileSize += uint64(len(specCmts[1]) + 1) config.FileSize += uint64(len("INSERT INTO `employees` VALUES\n")) - writer, clean := createTestWriter(config, t) - defer clean() + writer := createTestWriter(config, t) data := [][]driver.Value{ {"1", "male", "bob@mail.com", "020-1234", nil}, @@ -208,8 +202,7 @@ func TestWriteTableDataWithFileSizeAndRows(t *testing.T) { config.FileSize += uint64(len(specCmts[1]) + 1) config.FileSize += uint64(len("INSERT INTO `employees` VALUES\n")) - writer, clean := createTestWriter(config, t) - defer clean() + writer := createTestWriter(config, t) data := [][]driver.Value{ {"1", "male", "bob@mail.com", "020-1234", nil}, @@ -255,8 +248,7 @@ func TestWriteTableDataWithStatementSize(t *testing.T) { config.OutputFileTemplate, err = ParseOutputFileTemplate("specified-name") require.NoError(t, err) - writer, clean := createTestWriter(config, t) - defer clean() + writer := createTestWriter(config, t) data := [][]driver.Value{ {"1", "male", "bob@mail.com", "020-1234", nil}, @@ -307,8 +299,7 @@ func TestWriteTableDataWithStatementSize(t *testing.T) { require.NoError(t, err) config.OutputDirPath, err = ioutil.TempDir("", "dumpling") - writer, clean = createTestWriter(config, t) - defer clean() + writer = createTestWriter(config, t) cases = map[string]string{ "000000000-employee-te%25%2Fst.sql": "/*!40101 SET NAMES binary*/;\n" + @@ -339,7 +330,7 @@ func TestWriteTableDataWithStatementSize(t *testing.T) { var mu sync.Mutex -func createTestWriter(conf *Config, t *testing.T) (w *Writer, clean func()) { +func createTestWriter(conf *Config, t *testing.T) *Writer { mu.Lock() extStore, err := conf.createExternalStorage(context.Background()) mu.Unlock() @@ -351,10 +342,9 @@ func createTestWriter(conf *Config, t *testing.T) (w *Writer, clean func()) { require.NoError(t, err) metrics := newMetrics(promutil.NewDefaultFactory(), nil) - w = NewWriter(tcontext.Background(), 0, conf, conn, extStore, metrics) - clean = func() { + w := NewWriter(tcontext.Background(), 0, conf, conn, extStore, metrics) + t.Cleanup(func() { require.NoError(t, db.Close()) - } - - return + }) + return w } diff --git a/executor/adapter_test.go b/executor/adapter_test.go index 88847012aaa46..1e28472a72bfb 100644 --- a/executor/adapter_test.go +++ b/executor/adapter_test.go @@ -25,8 +25,7 @@ import ( ) func TestQueryTime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/admin_test.go b/executor/admin_test.go index e9a9705564d00..e5186a31ac818 100644 --- a/executor/admin_test.go +++ b/executor/admin_test.go @@ -48,8 +48,7 @@ import ( ) func TestAdminCheckIndexRange(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -68,8 +67,7 @@ func TestAdminCheckIndexRange(t *testing.T) { } func TestAdminCheckIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -97,8 +95,7 @@ func TestAdminCheckIndex(t *testing.T) { } func TestAdminCheckIndexInTemporaryMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -129,8 +126,7 @@ func TestAdminCheckIndexInTemporaryMode(t *testing.T) { } func TestAdminCheckIndexInLocalTemporaryMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -153,8 +149,7 @@ func TestAdminCheckIndexInLocalTemporaryMode(t *testing.T) { } func TestAdminCheckIndexInCacheTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -194,8 +189,7 @@ func TestAdminCheckIndexInCacheTable(t *testing.T) { } func TestAdminRecoverIndex(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -311,8 +305,7 @@ func TestAdminRecoverIndex(t *testing.T) { } func TestClusteredIndexAdminRecoverIndex(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_cluster_index_admin_recover;") @@ -357,8 +350,7 @@ func TestClusteredIndexAdminRecoverIndex(t *testing.T) { } func TestAdminRecoverPartitionTableIndex(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -430,8 +422,7 @@ func TestAdminRecoverPartitionTableIndex(t *testing.T) { } func TestAdminRecoverIndex1(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) ctx := mock.NewContext() @@ -486,8 +477,7 @@ func TestAdminRecoverIndex1(t *testing.T) { // https://github.com/pingcap/tidb/issues/32915. func TestAdminRecoverIndexEdge(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -497,8 +487,7 @@ func TestAdminRecoverIndexEdge(t *testing.T) { } func TestAdminCleanupIndex(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -579,8 +568,7 @@ func TestAdminCleanupIndex(t *testing.T) { } func TestAdminCleanupIndexForPartitionTable(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -662,8 +650,7 @@ func TestAdminCleanupIndexForPartitionTable(t *testing.T) { } func TestAdminCleanupIndexPKNotHandle(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -714,8 +701,7 @@ func TestAdminCleanupIndexPKNotHandle(t *testing.T) { } func TestAdminCleanupIndexMore(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -780,8 +766,7 @@ func TestAdminCleanupIndexMore(t *testing.T) { } func TestClusteredAdminCleanupIndex(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -859,8 +844,7 @@ func TestClusteredAdminCleanupIndex(t *testing.T) { } func TestAdminCheckPartitionTableFailed(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1097,8 +1081,7 @@ func withLogHook(ctx context.Context, t *testing.T, msgFilter string) (newCtx co } func TestCheckFailReport(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newInconsistencyKit(t, testkit.NewAsyncTestKit(t, store), newDefaultOpt()) // row more than unique index @@ -1339,8 +1322,7 @@ func TestCheckFailReport(t *testing.T) { func TestAdminCheckTable(t *testing.T) { // test NULL value. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`CREATE TABLE test_null ( @@ -1457,8 +1439,7 @@ func TestAdminCheckTable(t *testing.T) { } func TestAdminCheckPrimaryIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1468,8 +1449,7 @@ func TestAdminCheckPrimaryIndex(t *testing.T) { } func TestAdminCheckWithSnapshot(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1530,8 +1510,7 @@ func TestAdminCheckWithSnapshot(t *testing.T) { } func TestAdminCheckTableFailed(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/aggfuncs/func_max_min_test.go b/executor/aggfuncs/func_max_min_test.go index 5851319fe6d7e..0e9256b67b3a8 100644 --- a/executor/aggfuncs/func_max_min_test.go +++ b/executor/aggfuncs/func_max_min_test.go @@ -259,8 +259,7 @@ func testMaxSlidingWindow(tk *testkit.TestKit, tc maxSlidingWindowTestCase) { } func TestMaxSlidingWindow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") testCases := []maxSlidingWindowTestCase{ diff --git a/executor/aggregate_test.go b/executor/aggregate_test.go index cb1285e8da4be..8908d9d42999a 100644 --- a/executor/aggregate_test.go +++ b/executor/aggregate_test.go @@ -38,8 +38,7 @@ import ( ) func TestAggregation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_hash_join_concurrency=1") tk.MustExec("use test") @@ -477,8 +476,7 @@ func TestAggregation(t *testing.T) { } func TestAggPrune(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -506,8 +504,7 @@ func TestAggPrune(t *testing.T) { func TestGroupConcatAggr(t *testing.T) { var err error // issue #5411 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists test;") @@ -650,8 +647,7 @@ func TestGroupConcatAggr(t *testing.T) { } func TestSelectDistinct(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") fillData(tk, "select_distinct_test") @@ -663,8 +659,7 @@ func TestSelectDistinct(t *testing.T) { } func TestAggPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -693,8 +688,7 @@ func TestAggPushDown(t *testing.T) { } func TestOnlyFullGroupBy(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set sql_mode = 'ONLY_FULL_GROUP_BY'") @@ -812,8 +806,7 @@ func TestOnlyFullGroupBy(t *testing.T) { } func TestIssue16279(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set sql_mode = 'ONLY_FULL_GROUP_BY'") @@ -825,8 +818,7 @@ func TestIssue16279(t *testing.T) { } func TestIssue24676(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set sql_mode = 'ONLY_FULL_GROUP_BY'") @@ -842,8 +834,7 @@ func TestIssue24676(t *testing.T) { } func TestAggPushDownPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -876,8 +867,7 @@ func TestAggPushDownPartitionTable(t *testing.T) { } func TestIssue13652(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set sql_mode = 'ONLY_FULL_GROUP_BY'") @@ -892,8 +882,7 @@ func TestIssue13652(t *testing.T) { } func TestIssue14947(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set sql_mode = 'ONLY_FULL_GROUP_BY'") @@ -903,8 +892,7 @@ func TestIssue14947(t *testing.T) { } func TestHaving(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'") @@ -930,8 +918,7 @@ func TestHaving(t *testing.T) { } func TestAggEliminator(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -946,8 +933,7 @@ func TestAggEliminator(t *testing.T) { } func TestClusterIndexMaxMinEliminator(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -962,8 +948,7 @@ func TestClusterIndexMaxMinEliminator(t *testing.T) { } func TestMaxMinFloatScalaFunc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -975,8 +960,7 @@ func TestMaxMinFloatScalaFunc(t *testing.T) { } func TestBuildProjBelowAgg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -990,8 +974,7 @@ func TestBuildProjBelowAgg(t *testing.T) { } func TestInjectProjBelowTopN(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -1011,8 +994,7 @@ func TestInjectProjBelowTopN(t *testing.T) { } func TestFirstRowEnum(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) tk.MustExec(`drop table if exists t;`) @@ -1024,8 +1006,7 @@ func TestFirstRowEnum(t *testing.T) { } func TestAggJSON(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t;`) @@ -1076,8 +1057,7 @@ func TestAggJSON(t *testing.T) { } func TestIssue10099(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1088,8 +1068,7 @@ func TestIssue10099(t *testing.T) { } func TestIssue10098(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t;`) @@ -1099,8 +1078,7 @@ func TestIssue10098(t *testing.T) { } func TestIssue10608(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t, s;`) @@ -1113,8 +1091,7 @@ func TestIssue10608(t *testing.T) { } func TestIssue12759HashAggCalledByApply(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1143,8 +1120,7 @@ func TestIssue12759HashAggCalledByApply(t *testing.T) { } func TestPR15242ShallowCopy(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t;`) @@ -1159,8 +1135,7 @@ func TestPR15242ShallowCopy(t *testing.T) { } func TestIssue15690(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().MaxChunkSize = 2 @@ -1212,8 +1187,7 @@ func TestIssue15690(t *testing.T) { } func TestIssue15958(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().MaxChunkSize = 2 @@ -1225,8 +1199,7 @@ func TestIssue15958(t *testing.T) { } func TestIssue17216(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -1297,8 +1270,7 @@ func reconstructParallelGroupConcatResult(rows [][]interface{}) []string { } func TestParallelStreamAggGroupConcat(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -1344,8 +1316,7 @@ func TestParallelStreamAggGroupConcat(t *testing.T) { } func TestIssue20658(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1420,8 +1391,7 @@ func TestIssue20658(t *testing.T) { } func TestIssue23277(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -1453,8 +1423,7 @@ func TestIssue23277(t *testing.T) { } func TestAvgDecimal(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists td;") @@ -1476,8 +1445,7 @@ func TestAvgDecimal(t *testing.T) { // https://github.com/pingcap/tidb/issues/23314 func TestIssue23314(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -1488,8 +1456,7 @@ func TestIssue23314(t *testing.T) { } func TestAggInDisk(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_hashagg_final_concurrency = 1;") @@ -1529,8 +1496,7 @@ func TestAggInDisk(t *testing.T) { } func TestRandomPanicAggConsume(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_max_chunk_size=32") @@ -1586,8 +1552,7 @@ func TestRandomPanicAggConsume(t *testing.T) { } func TestIssue35295(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t100") @@ -1627,8 +1592,7 @@ PARTITION p20220624 VALUES LESS THAN ("20220625") // https://github.com/pingcap/tidb/issues/27751 func TestIssue27751(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1640,8 +1604,7 @@ func TestIssue27751(t *testing.T) { } func TestIssue26885(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`SET sql_mode = 'NO_ENGINE_SUBSTITUTION';`) diff --git a/executor/analyze_test.go b/executor/analyze_test.go index 3560f1b6a72e1..2139816195b5f 100644 --- a/executor/analyze_test.go +++ b/executor/analyze_test.go @@ -321,8 +321,7 @@ func TestAnalyzeIndexExtractTopN(t *testing.T) { } func TestAnalyzePartitionTableForFloat(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_partition_prune_mode='dynamic'") tk.MustExec("use test") diff --git a/executor/analyzetest/analyze_test.go b/executor/analyzetest/analyze_test.go index 557f67fd3070f..d354389ae5f35 100644 --- a/executor/analyzetest/analyze_test.go +++ b/executor/analyzetest/analyze_test.go @@ -51,8 +51,7 @@ import ( ) func TestAnalyzePartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) testkit.WithPruneMode(tk, variable.Static, func() { tk.MustExec("use test") @@ -118,8 +117,7 @@ PARTITION BY RANGE ( a ) ( } func TestAnalyzeReplicaReadFollower(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -131,8 +129,7 @@ func TestAnalyzeReplicaReadFollower(t *testing.T) { } func TestClusterIndexAnalyze(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_cluster_index_analyze;") @@ -163,8 +160,7 @@ func TestClusterIndexAnalyze(t *testing.T) { } func TestAnalyzeRestrict(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -177,8 +173,7 @@ func TestAnalyzeRestrict(t *testing.T) { } func TestAnalyzeParameters(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -236,8 +231,7 @@ func TestAnalyzeParameters(t *testing.T) { } func TestAnalyzeTooLongColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -258,8 +252,7 @@ func TestAnalyzeTooLongColumns(t *testing.T) { } func TestIssue15993(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -271,8 +264,7 @@ func TestIssue15993(t *testing.T) { } func TestIssue15751(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -285,8 +277,7 @@ func TestIssue15751(t *testing.T) { } func TestIssue15752(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -347,8 +338,7 @@ func TestFastAnalyzeRetryRowCount(t *testing.T) { } func TestFailedAnalyzeRequest(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -363,8 +353,7 @@ func TestFailedAnalyzeRequest(t *testing.T) { } func TestExtractTopN(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_extract_topn") @@ -417,8 +406,7 @@ func TestExtractTopN(t *testing.T) { } func TestHashInTopN(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -457,8 +445,7 @@ func TestHashInTopN(t *testing.T) { } func TestNormalAnalyzeOnCommonHandle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -509,8 +496,7 @@ func TestNormalAnalyzeOnCommonHandle(t *testing.T) { } func TestDefaultValForAnalyze(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_analyze_version=1") defer tk.MustExec("set @@tidb_analyze_version=2") @@ -552,8 +538,7 @@ func TestDefaultValForAnalyze(t *testing.T) { func TestAnalyzeFullSamplingOnIndexWithVirtualColumnOrPrefixColumn(t *testing.T) { t.Skip("unstable, skip it and fix it before 20210624") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -583,74 +568,76 @@ func TestAnalyzeFullSamplingOnIndexWithVirtualColumnOrPrefixColumn(t *testing.T) tk.MustQuery("show stats_topn where table_name = 'sampling_index_prefix_col' and column_name = 'idx'").Check(testkit.Rows("test sampling_index_prefix_col idx 1 a 3")) } -func TestSnapshotAnalyzeAndMaxTSAnalyze(t *testing.T) { - for _, analyzeSnapshot := range []bool{true, false} { - func(analyzeSnapshot bool) { - store, clean := testkit.CreateMockStore(t) - defer clean() - tk := testkit.NewTestKit(t, store) +func testSnapshotAnalyzeAndMaxTSAnalyzeHelper(analyzeSnapshot bool) func(t *testing.T) { + return func(t *testing.T) { + store := testkit.CreateMockStore(t) + tk := testkit.NewTestKit(t, store) - tk.MustExec("use test") - if analyzeSnapshot { - tk.MustExec("set @@session.tidb_enable_analyze_snapshot = on") - } else { - tk.MustExec("set @@session.tidb_enable_analyze_snapshot = off") - } - tk.MustExec("drop table if exists t") - tk.MustExec("create table t(a int, index index_a(a))") - is := tk.Session().(sessionctx.Context).GetInfoSchema().(infoschema.InfoSchema) - tbl, err := is.TableByName(model.NewCIStr("test"), model.NewCIStr("t")) - require.NoError(t, err) - tblInfo := tbl.Meta() - tid := tblInfo.ID - tk.MustExec("insert into t values(1),(1),(1)") - tk.MustExec("begin") - txn, err := tk.Session().Txn(false) - require.NoError(t, err) - startTS1 := txn.StartTS() - tk.MustExec("commit") - tk.MustExec("insert into t values(2),(2),(2)") - tk.MustExec("begin") - txn, err = tk.Session().Txn(false) - require.NoError(t, err) - startTS2 := txn.StartTS() - tk.MustExec("commit") - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) - tk.MustExec("analyze table t") - rows := tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() - require.Len(t, rows, 1) - if analyzeSnapshot { - // Analyze cannot see the second insert if it reads the snapshot. - require.Equal(t, "3", rows[0][0]) - } else { - // Analyze can see the second insert if it reads the latest data. - require.Equal(t, "6", rows[0][0]) - } - s1Str := rows[0][1].(string) - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS2))) - tk.MustExec("analyze table t") - rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() - require.Len(t, rows, 1) - require.Equal(t, "6", rows[0][0]) - s2Str := rows[0][1].(string) - require.True(t, s1Str != s2Str) - tk.MustExec("set @@session.tidb_analyze_version = 2") - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) - tk.MustExec("analyze table t") - rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() - require.Len(t, rows, 1) + tk.MustExec("use test") + if analyzeSnapshot { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = on") + } else { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = off") + } + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(a int, index index_a(a))") + is := tk.Session().(sessionctx.Context).GetInfoSchema().(infoschema.InfoSchema) + tbl, err := is.TableByName(model.NewCIStr("test"), model.NewCIStr("t")) + require.NoError(t, err) + tblInfo := tbl.Meta() + tid := tblInfo.ID + tk.MustExec("insert into t values(1),(1),(1)") + tk.MustExec("begin") + txn, err := tk.Session().Txn(false) + require.NoError(t, err) + startTS1 := txn.StartTS() + tk.MustExec("commit") + tk.MustExec("insert into t values(2),(2),(2)") + tk.MustExec("begin") + txn, err = tk.Session().Txn(false) + require.NoError(t, err) + startTS2 := txn.StartTS() + tk.MustExec("commit") + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) + tk.MustExec("analyze table t") + rows := tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() + require.Len(t, rows, 1) + if analyzeSnapshot { + // Analyze cannot see the second insert if it reads the snapshot. + require.Equal(t, "3", rows[0][0]) + } else { + // Analyze can see the second insert if it reads the latest data. require.Equal(t, "6", rows[0][0]) - s3Str := rows[0][1].(string) - // The third analyze doesn't write results into mysql.stats_xxx because its snapshot is smaller than the second analyze. - require.Equal(t, s2Str, s3Str) - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) - }(analyzeSnapshot) + } + s1Str := rows[0][1].(string) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS2))) + tk.MustExec("analyze table t") + rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() + require.Len(t, rows, 1) + require.Equal(t, "6", rows[0][0]) + s2Str := rows[0][1].(string) + require.True(t, s1Str != s2Str) + tk.MustExec("set @@session.tidb_analyze_version = 2") + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS1))) + tk.MustExec("analyze table t") + rows = tk.MustQuery(fmt.Sprintf("select count, snapshot from mysql.stats_meta where table_id = %d", tid)).Rows() + require.Len(t, rows, 1) + require.Equal(t, "6", rows[0][0]) + s3Str := rows[0][1].(string) + // The third analyze doesn't write results into mysql.stats_xxx because its snapshot is smaller than the second analyze. + require.Equal(t, s2Str, s3Str) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) + } +} + +func TestSnapshotAnalyzeAndMaxTSAnalyze(t *testing.T) { + for _, analyzeSnapshot := range []bool{true, false} { + t.Run(fmt.Sprintf("%s-%t", t.Name(), analyzeSnapshot), testSnapshotAnalyzeAndMaxTSAnalyzeHelper(analyzeSnapshot)) } } func TestAdjustSampleRateNote(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -679,8 +666,7 @@ func TestAdjustSampleRateNote(t *testing.T) { } func TestFastAnalyze4GlobalStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`create database if not exists test_fast_gstats`) @@ -698,8 +684,7 @@ func TestFastAnalyze4GlobalStats(t *testing.T) { } func TestAnalyzeIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -724,8 +709,7 @@ func TestAnalyzeIndex(t *testing.T) { } func TestAnalyzeIncremental(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -818,8 +802,7 @@ func testAnalyzeIncremental(tk *testkit.TestKit, t *testing.T, dom *domain.Domai } func TestIssue20874(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -870,8 +853,7 @@ func TestIssue20874(t *testing.T) { } func TestAnalyzeClusteredIndexPrimary(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -898,8 +880,7 @@ func TestAnalyzeClusteredIndexPrimary(t *testing.T) { } func TestAnalyzeSamplingWorkPanic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -919,8 +900,7 @@ func TestAnalyzeSamplingWorkPanic(t *testing.T) { } func TestSmallTableAnalyzeV2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/calcSampleRateByStorageCount", "return(1)")) @@ -949,8 +929,7 @@ create table small_table_inject_pd_with_partition( } func TestSavedAnalyzeOptions(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal1 := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -1047,8 +1026,7 @@ func TestSavedAnalyzeOptions(t *testing.T) { } func TestSavedPartitionAnalyzeOptions(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -1256,8 +1234,7 @@ PARTITION BY RANGE ( a ) ( } func TestSavedAnalyzeOptionsForMultipleTables(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -1307,8 +1284,7 @@ func TestSavedAnalyzeOptionsForMultipleTables(t *testing.T) { } func TestSavedAnalyzeColumnOptions(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal1 := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -1408,8 +1384,7 @@ func TestSavedAnalyzeColumnOptions(t *testing.T) { func TestAnalyzeColumnsWithPrimaryKey(t *testing.T) { for _, val := range []model.ColumnChoice{model.ColumnList, model.PredicateColumns} { func(choice model.ColumnChoice) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) h := dom.StatsHandle() @@ -1477,8 +1452,7 @@ func TestAnalyzeColumnsWithPrimaryKey(t *testing.T) { func TestAnalyzeColumnsWithIndex(t *testing.T) { for _, val := range []model.ColumnChoice{model.ColumnList, model.PredicateColumns} { func(choice model.ColumnChoice) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) h := dom.StatsHandle() @@ -1555,8 +1529,7 @@ func TestAnalyzeColumnsWithIndex(t *testing.T) { func TestAnalyzeColumnsWithClusteredIndex(t *testing.T) { for _, val := range []model.ColumnChoice{model.ColumnList, model.PredicateColumns} { func(choice model.ColumnChoice) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) h := dom.StatsHandle() @@ -1633,8 +1606,7 @@ func TestAnalyzeColumnsWithClusteredIndex(t *testing.T) { func TestAnalyzeColumnsWithDynamicPartitionTable(t *testing.T) { for _, val := range []model.ColumnChoice{model.ColumnList, model.PredicateColumns} { func(choice model.ColumnChoice) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) h := dom.StatsHandle() @@ -1757,8 +1729,7 @@ func TestAnalyzeColumnsWithDynamicPartitionTable(t *testing.T) { } func TestIssue34228(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`USE test`) @@ -1788,8 +1759,7 @@ func TestIssue34228(t *testing.T) { func TestAnalyzeColumnsWithStaticPartitionTable(t *testing.T) { for _, val := range []model.ColumnChoice{model.ColumnList, model.PredicateColumns} { func(choice model.ColumnChoice) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) h := dom.StatsHandle() @@ -1895,8 +1865,7 @@ func TestAnalyzeColumnsWithStaticPartitionTable(t *testing.T) { func TestAnalyzeColumnsWithExtendedStats(t *testing.T) { for _, val := range []model.ColumnChoice{model.ColumnList, model.PredicateColumns} { func(choice model.ColumnChoice) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) h := dom.StatsHandle() @@ -1968,8 +1937,7 @@ func TestAnalyzeColumnsWithExtendedStats(t *testing.T) { func TestAnalyzeColumnsWithVirtualColumnIndex(t *testing.T) { for _, val := range []model.ColumnChoice{model.ColumnList, model.PredicateColumns} { func(choice model.ColumnChoice) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) h := dom.StatsHandle() @@ -2036,8 +2004,7 @@ func TestAnalyzeColumnsWithVirtualColumnIndex(t *testing.T) { func TestAnalyzeColumnsAfterAnalyzeAll(t *testing.T) { for _, val := range []model.ColumnChoice{model.ColumnList, model.PredicateColumns} { func(choice model.ColumnChoice) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) h := dom.StatsHandle() @@ -2113,8 +2080,7 @@ func TestAnalyzeColumnsAfterAnalyzeAll(t *testing.T) { } func TestAnalyzeColumnsErrorAndWarning(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2170,8 +2136,7 @@ func TestAnalyzeColumnsErrorAndWarning(t *testing.T) { } func TestRecordHistoryStatsAfterAnalyze(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_analyze_version = 2") @@ -2227,8 +2192,7 @@ func TestRecordHistoryStatsAfterAnalyze(t *testing.T) { } func TestRecordHistoryStatsMetaAfterAnalyze(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_analyze_version = 2") @@ -2285,8 +2249,7 @@ func checkAnalyzeStatus(t *testing.T, tk *testkit.TestKit, jobInfo, status, fail } func testKillAutoAnalyze(t *testing.T, ver int) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) oriStart := tk.MustQuery("select @@tidb_auto_analyze_start_time").Rows()[0][0].(string) oriEnd := tk.MustQuery("select @@tidb_auto_analyze_end_time").Rows()[0][0].(string) @@ -2366,8 +2329,7 @@ func TestKillAutoAnalyzeV2(t *testing.T) { } func TestKillAutoAnalyzeIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) oriStart := tk.MustQuery("select @@tidb_auto_analyze_start_time").Rows()[0][0].(string) oriEnd := tk.MustQuery("select @@tidb_auto_analyze_end_time").Rows()[0][0].(string) @@ -2432,8 +2394,7 @@ func TestKillAutoAnalyzeIndex(t *testing.T) { } func TestAnalyzeJob(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) for _, result := range []string{statistics.AnalyzeFinished, statistics.AnalyzeFailed} { tk := testkit.NewTestKit(t, store) tk.MustExec("delete from mysql.analyze_jobs") @@ -2523,8 +2484,7 @@ func TestAnalyzeJob(t *testing.T) { } func TestInsertAnalyzeJobWithLongInstance(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("delete from mysql.analyze_jobs") job := &statistics.AnalyzeJob{ @@ -2542,8 +2502,7 @@ func TestInsertAnalyzeJobWithLongInstance(t *testing.T) { } func TestShowAanalyzeStatusJobInfo(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal1 := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) originalVal2 := tk.MustQuery("select @@tidb_enable_column_tracking").Rows()[0][0].(string) @@ -2581,8 +2540,7 @@ func TestShowAanalyzeStatusJobInfo(t *testing.T) { } func TestAnalyzePartitionTableWithDynamicMode(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -2675,8 +2633,7 @@ PARTITION BY RANGE ( a ) ( } func TestAnalyzePartitionTableStaticToDynamic(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -2808,8 +2765,7 @@ PARTITION BY RANGE ( a ) ( } func TestAnalyzePartitionUnderDynamic(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -2867,8 +2823,7 @@ PARTITION BY RANGE ( a ) ( } func TestAnalyzePartitionStaticToDynamic(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -2947,8 +2902,7 @@ PARTITION BY RANGE ( a ) ( } func TestAnalyzePartitionUnderV1Dynamic(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -3002,8 +2956,7 @@ PARTITION BY RANGE ( a ) ( } func TestIssue35056(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_analyze_version = 1") @@ -3038,8 +2991,7 @@ PARTITION BY RANGE ( id ) ( } func TestIssue35056Related(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_analyze_version = 2") @@ -3074,8 +3026,7 @@ PARTITION BY RANGE ( id ) ( } func TestIssue35044(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_analyze_version = 2") @@ -3109,8 +3060,7 @@ PARTITION BY RANGE ( a ) ( } func TestAutoAnalyzeAwareGlobalVariableChange(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustQuery("select @@global.tidb_enable_analyze_snapshot").Check(testkit.Rows("0")) diff --git a/executor/batch_point_get_test.go b/executor/batch_point_get_test.go index 44809a9211f90..9bc170107bdb9 100644 --- a/executor/batch_point_get_test.go +++ b/executor/batch_point_get_test.go @@ -31,8 +31,7 @@ import ( ) func TestBatchPointGetExec(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -79,8 +78,7 @@ func TestBatchPointGetExec(t *testing.T) { } func TestBatchPointGetInTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -109,8 +107,7 @@ func TestBatchPointGetInTxn(t *testing.T) { } func TestBatchPointGetCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -123,8 +120,7 @@ func TestBatchPointGetCache(t *testing.T) { } func TestIssue18843(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -138,8 +134,7 @@ func TestIssue18843(t *testing.T) { } func TestIssue24562(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -151,8 +146,7 @@ func TestIssue24562(t *testing.T) { } func TestBatchPointGetUnsignedHandleWithSort(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -168,8 +162,7 @@ func TestBatchPointGetUnsignedHandleWithSort(t *testing.T) { func TestBatchPointGetLockExistKey(t *testing.T) { var wg sync.WaitGroup errCh := make(chan error) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testLock := func(rc bool, key string, tableName string) { doneCh := make(chan struct{}, 1) @@ -311,8 +304,7 @@ func TestBatchPointGetLockExistKey(t *testing.T) { } func TestBatchPointGetIssue25167(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -328,8 +320,7 @@ func TestBatchPointGetIssue25167(t *testing.T) { } func TestCacheSnapShot(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) se := tk.Session() ctx := context.Background() @@ -355,8 +346,7 @@ func TestCacheSnapShot(t *testing.T) { } func TestPointGetForTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/charset_test.go b/executor/charset_test.go index 283d633e99aa9..72dd9351f1b6c 100644 --- a/executor/charset_test.go +++ b/executor/charset_test.go @@ -23,8 +23,7 @@ import ( ) func TestCharsetFeature(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -70,8 +69,7 @@ func TestCharsetFeature(t *testing.T) { } func TestCharsetFeatureCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -97,8 +95,7 @@ func TestCharsetFeatureCollation(t *testing.T) { } func TestCharsetWithPrefixIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/chunk_size_control_test.go b/executor/chunk_size_control_test.go index bae8614e5ab3d..72f9ae24c9f76 100644 --- a/executor/chunk_size_control_test.go +++ b/executor/chunk_size_control_test.go @@ -98,8 +98,7 @@ func generateTableSplitKeyForInt(tid int64, splitNum []int) [][]byte { func TestLimitAndTableScan(t *testing.T) { t.Skip("not stable because coprocessor may result in goroutine leak") - kit, clean := createChunkSizeControlKit(t, "create table t (a int, primary key (a))") - defer clean() + kit := createChunkSizeControlKit(t, "create table t (a int, primary key (a))") tbl, err := kit.dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t")) require.NoError(t, err) tid := tbl.Meta().ID @@ -130,8 +129,7 @@ func TestLimitAndTableScan(t *testing.T) { func TestLimitAndIndexScan(t *testing.T) { t.Skip("not stable because coprocessor may result in goroutine leak") - kit, clean := createChunkSizeControlKit(t, "create table t (a int, index idx_a(a))") - defer clean() + kit := createChunkSizeControlKit(t, "create table t (a int, index idx_a(a))") tbl, err := kit.dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t")) require.NoError(t, err) tid := tbl.Meta().ID @@ -200,7 +198,7 @@ type chunkSizeControlKit struct { } // nolint: unused, deadcode -func createChunkSizeControlKit(t *testing.T, sql string) (*chunkSizeControlKit, func()) { +func createChunkSizeControlKit(t *testing.T, sql string) *chunkSizeControlKit { // BootstrapSession is not thread-safe, so we have to prepare all resources in SetUp. kit := new(chunkSizeControlKit) kit.client = &testSlowClient{regionDelay: make(map[uint64]time.Duration)} @@ -226,8 +224,9 @@ func createChunkSizeControlKit(t *testing.T, sql string) (*chunkSizeControlKit, kit.tk = testkit.NewTestKit(t, kit.store) kit.tk.MustExec("use test") kit.tk.MustExec(sql) - return kit, func() { + t.Cleanup(func() { kit.dom.Close() require.NoError(t, kit.store.Close()) - } + }) + return kit } diff --git a/executor/cluster_table_test.go b/executor/cluster_table_test.go index d981c8f9b6639..e2eaa733e06de 100644 --- a/executor/cluster_table_test.go +++ b/executor/cluster_table_test.go @@ -63,8 +63,7 @@ func createRPCServer(t *testing.T, dom *domain.Domain) *grpc.Server { } func TestClusterTableSlowQuery(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) srv := createRPCServer(t, dom) defer srv.Stop() @@ -172,8 +171,7 @@ select 7;` } func TestIssue20236(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) srv := createRPCServer(t, dom) defer srv.Stop() @@ -272,8 +270,7 @@ select 10;` } func TestSQLDigestTextRetriever(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) srv := createRPCServer(t, dom) defer srv.Stop() @@ -304,8 +301,7 @@ func TestSQLDigestTextRetriever(t *testing.T) { } func TestFunctionDecodeSQLDigests(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) srv := createRPCServer(t, dom) defer srv.Stop() @@ -365,8 +361,7 @@ func TestFunctionDecodeSQLDigests(t *testing.T) { } func TestFunctionDecodeSQLDigestsPrivilege(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) srv := createRPCServer(t, dom) defer srv.Stop() diff --git a/executor/compact_table_test.go b/executor/compact_table_test.go index 18067084676d4..247f571ad6534 100644 --- a/executor/compact_table_test.go +++ b/executor/compact_table_test.go @@ -56,8 +56,7 @@ func withMockTiFlash(nodes int) mockstore.MockTiKVStoreOption { } func TestCompactUnknownTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) err := tk.ExecToErr(`alter table test compact tiflash replica;`) @@ -72,8 +71,7 @@ func TestCompactUnknownTable(t *testing.T) { } func TestCompactTableNoTiFlashReplica(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -103,8 +101,7 @@ func TestCompactTableTooBusy(t *testing.T) { }, nil }) defer mocker.RequireAllHandlersHit() - store, clean := testkit.CreateMockStore(t, withMockTiFlash(1), mocker.AsOpt()) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(1), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -124,8 +121,7 @@ func TestCompactTableInProgress(t *testing.T) { }, nil }) defer mocker.RequireAllHandlersHit() - store, clean := testkit.CreateMockStore(t, withMockTiFlash(1), mocker.AsOpt()) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(1), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -145,8 +141,7 @@ func TestCompactTableInternalError(t *testing.T) { }, nil }) defer mocker.RequireAllHandlersHit() - store, clean := testkit.CreateMockStore(t, withMockTiFlash(1), mocker.AsOpt()) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(1), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -161,8 +156,7 @@ func TestCompactTableInternalError(t *testing.T) { // TestCompactTableNoRemaining: Returns NoRemaining for request #1. func TestCompactTableNoRemaining(t *testing.T) { mocker := newCompactRequestMocker(t) - store, do, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) - defer clean() + store, do := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) mocker.MockFrom(`tiflash0/#1`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { @@ -204,8 +198,7 @@ func TestCompactTableNoRemaining(t *testing.T) { func TestCompactTableHasRemaining(t *testing.T) { mocker := newCompactRequestMocker(t) defer mocker.RequireAllHandlersHit() - store, do, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) - defer clean() + store, do := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) mocker.MockFrom(`tiflash0/#1`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { @@ -253,8 +246,7 @@ func TestCompactTableHasRemaining(t *testing.T) { func TestCompactTableErrorInHalfway(t *testing.T) { mocker := newCompactRequestMocker(t) defer mocker.RequireAllHandlersHit() - store, _, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) - defer clean() + store, _ := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) mocker.MockFrom(`tiflash0/#1`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { @@ -285,8 +277,7 @@ func TestCompactTableErrorInHalfway(t *testing.T) { func TestCompactTableNoRemainingMultipleTiFlash(t *testing.T) { mocker := newCompactRequestMocker(t) defer mocker.RequireAllHandlersHit() - store, do, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(2), mocker.AsOpt()) - defer clean() + store, do := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(2), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) mocker.MockFrom(`tiflash0/#1`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { @@ -325,8 +316,7 @@ func TestCompactTableNoRemainingMultipleTiFlash(t *testing.T) { func TestCompactTableMultipleTiFlash(t *testing.T) { mocker := newCompactRequestMocker(t) defer mocker.RequireAllHandlersHit() - store, _, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(2), mocker.AsOpt()) - defer clean() + store, _ := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(2), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) mocker.MockFrom(`tiflash0/#1`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { @@ -385,8 +375,7 @@ func TestCompactTableMultipleTiFlash(t *testing.T) { func TestCompactTableMultipleTiFlashWithError(t *testing.T) { mocker := newCompactRequestMocker(t) defer mocker.RequireAllHandlersHit() - store, _, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(3), mocker.AsOpt()) - defer clean() + store, _ := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(3), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) mocker.MockFrom(`tiflash0/#1`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { @@ -457,8 +446,7 @@ func TestCompactTableMultipleTiFlashWithError(t *testing.T) { func TestCompactTableWithRangePartition(t *testing.T) { mocker := newCompactRequestMocker(t) defer mocker.RequireAllHandlersHit() - store, do, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) - defer clean() + store, do := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) mocker.MockFrom(`tiflash0/#1`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { @@ -572,8 +560,7 @@ func TestCompactTableWithRangePartition(t *testing.T) { func TestCompactTableWithHashPartitionAndOnePartitionFailed(t *testing.T) { mocker := newCompactRequestMocker(t) defer mocker.RequireAllHandlersHit() - store, do, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) - defer clean() + store, do := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(1), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) mocker.MockFrom(`tiflash0/#1`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { @@ -648,8 +635,7 @@ func TestCompactTableWithHashPartitionAndOnePartitionFailed(t *testing.T) { func TestCompactTableWithTiFlashDown(t *testing.T) { mocker := newCompactRequestMocker(t) defer mocker.RequireAllHandlersHit() - store, _, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(2), mocker.AsOpt()) - defer clean() + store, _ := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(2), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) mocker.MockFrom(`tiflash0/#1`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { @@ -698,8 +684,7 @@ func TestCompactTableWithTiFlashDown(t *testing.T) { func TestCompactTableWithTiFlashDownAndRestore(t *testing.T) { mocker := newCompactRequestMocker(t) defer mocker.RequireAllHandlersHit() - store, _, clean := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(2), mocker.AsOpt()) - defer clean() + store, _ := testkit.CreateMockStoreAndDomain(t, withMockTiFlash(2), mocker.AsOpt()) tk := testkit.NewTestKit(t, store) mocker.MockFrom(`tiflash0/#1`, func(req *kvrpcpb.CompactRequest) (*kvrpcpb.CompactResponse, error) { diff --git a/executor/copr_cache_test.go b/executor/copr_cache_test.go index ba99c1894d864..9107651251b35 100644 --- a/executor/copr_cache_test.go +++ b/executor/copr_cache_test.go @@ -41,13 +41,12 @@ func TestIntegrationCopCache(t *testing.T) { return cli } var cluster testutils.Cluster - store, dom, clean := testkit.CreateMockStoreAndDomain(t, + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithSingleStore(c) cluster = c }), mockstore.WithClientHijacker(hijackClient)) - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/cte_test.go b/executor/cte_test.go index 50db46e4bc17f..7a0e3160593ea 100644 --- a/executor/cte_test.go +++ b/executor/cte_test.go @@ -29,8 +29,7 @@ import ( ) func TestBasicCTE(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -78,8 +77,7 @@ func TestBasicCTE(t *testing.T) { } func TestUnionDistinct(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -105,8 +103,7 @@ func TestUnionDistinct(t *testing.T) { } func TestCTEMaxRecursionDepth(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -146,8 +143,7 @@ func TestCTEMaxRecursionDepth(t *testing.T) { } func TestCTEWithLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -359,8 +355,7 @@ func TestSpillToDisk(t *testing.T) { conf.OOMUseTmpStorage = true }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -412,8 +407,7 @@ func TestSpillToDisk(t *testing.T) { } func TestCTEExecError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -443,8 +437,7 @@ func TestCTEExecError(t *testing.T) { // https://github.com/pingcap/tidb/issues/33965. func TestCTEsInView(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") diff --git a/executor/ddl_test.go b/executor/ddl_test.go index b285067100a08..9c643e4e4d43c 100644 --- a/executor/ddl_test.go +++ b/executor/ddl_test.go @@ -51,8 +51,7 @@ import ( ) func TestTruncateTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists truncate_test;`) @@ -70,8 +69,7 @@ func TestTruncateTable(t *testing.T) { // 2. A SQL that will fail to execute; // 3. Execute DDL. func TestInTxnExecDDLFail(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") tk := testkit.NewTestKit(t, store) @@ -87,8 +85,7 @@ func TestInTxnExecDDLFail(t *testing.T) { } func TestInTxnExecDDLInvalid(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -100,8 +97,7 @@ func TestInTxnExecDDLInvalid(t *testing.T) { } func TestCreateTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -211,8 +207,7 @@ func TestCreateTable(t *testing.T) { } func TestCreateView(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // create an source table @@ -322,8 +317,7 @@ func TestCreateView(t *testing.T) { } func TestViewRecursion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table if not exists t(a int)") @@ -337,8 +331,7 @@ func TestViewRecursion(t *testing.T) { } func TestIssue16250(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table if not exists t(a int)") @@ -348,8 +341,7 @@ func TestIssue16250(t *testing.T) { } func TestIssue24771(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists zy_tab;`) @@ -388,8 +380,7 @@ func TestIssue24771(t *testing.T) { } func TestTruncateSequence(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create sequence if not exists seq") @@ -401,8 +392,7 @@ func TestTruncateSequence(t *testing.T) { } func TestCreateViewWithOverlongColName(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int)") @@ -450,8 +440,7 @@ func TestCreateViewWithOverlongColName(t *testing.T) { } func TestCreateDropDatabase(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -516,8 +505,7 @@ func TestCreateDropDatabase(t *testing.T) { } func TestCreateDropTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table if not exists drop_test (a int)") @@ -528,8 +516,7 @@ func TestCreateDropTable(t *testing.T) { } func TestCreateDropView(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create or replace view drop_test as select 1,2") @@ -551,8 +538,7 @@ func TestCreateDropView(t *testing.T) { } func TestCreateDropIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table if not exists drop_test (a int)") @@ -562,8 +548,7 @@ func TestCreateDropIndex(t *testing.T) { } func TestAlterTableAddColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table if not exists alter_test (c1 int)") @@ -593,8 +578,7 @@ func TestAlterTableAddColumn(t *testing.T) { } func TestAlterTableAddColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table if not exists alter_test (c1 int)") @@ -621,8 +605,7 @@ func TestAlterTableAddColumns(t *testing.T) { } func TestAddNotNullColumnNoDefault(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table nn (c1 int)") @@ -643,8 +626,7 @@ func TestAddNotNullColumnNoDefault(t *testing.T) { } func TestAlterTableModifyColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists mc") @@ -704,8 +686,7 @@ func TestAlterTableModifyColumn(t *testing.T) { } func TestColumnCharsetAndCollate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) dbName := "col_charset_collate" tk.MustExec("create database " + dbName) @@ -790,8 +771,7 @@ func TestColumnCharsetAndCollate(t *testing.T) { } func TestTooLargeIdentifierLength(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // for database. @@ -827,8 +807,7 @@ func TestTooLargeIdentifierLength(t *testing.T) { } func TestShardRowIDBits(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -951,8 +930,7 @@ func TestShardRowIDBits(t *testing.T) { } func TestAutoRandomBitsData(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_auto_random_bits") @@ -1077,8 +1055,7 @@ func TestAutoRandomBitsData(t *testing.T) { } func TestAutoRandomTableOption(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1146,8 +1123,7 @@ func TestAutoRandomTableOption(t *testing.T) { // 3: ActionModifyTableAutoIdCache : it will drop row-id-type allocator. // 3: ActionRebaseAutoRandomBase : it will drop auto-rand-type allocator. func TestFilterDifferentAllocators(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1200,8 +1176,7 @@ func TestFilterDifferentAllocators(t *testing.T) { } func TestMaxHandleAddIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1219,8 +1194,7 @@ func TestMaxHandleAddIndex(t *testing.T) { } func TestSetDDLReorgWorkerCnt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") err := ddlutil.LoadDDLReorgVars(context.Background(), tk.Session()) @@ -1260,8 +1234,7 @@ func TestSetDDLReorgWorkerCnt(t *testing.T) { } func TestSetDDLReorgBatchSize(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") err := ddlutil.LoadDDLReorgVars(context.Background(), tk.Session()) @@ -1299,8 +1272,7 @@ func TestSetDDLReorgBatchSize(t *testing.T) { } func TestIllegalFunctionCall4GeneratedColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // Test create an exist database @@ -1337,8 +1309,7 @@ func TestIllegalFunctionCall4GeneratedColumns(t *testing.T) { } func TestGeneratedColumnRelatedDDL(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // Test create an exist database @@ -1371,8 +1342,7 @@ func TestGeneratedColumnRelatedDDL(t *testing.T) { } func TestSetDDLErrorCountLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") err := ddlutil.LoadDDLVars(tk.Session()) @@ -1402,8 +1372,7 @@ func TestSetDDLErrorCountLimit(t *testing.T) { // Test issue #9205, fix the precision problem for time type default values // See https://github.com/pingcap/tidb/issues/9205 for details func TestIssue9205(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t;`) @@ -1443,8 +1412,7 @@ func TestIssue9205(t *testing.T) { } func TestCheckDefaultFsp(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t;`) @@ -1485,8 +1453,7 @@ func TestCheckDefaultFsp(t *testing.T) { } func TestTimestampMinDefaultValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tdv;") @@ -1500,8 +1467,7 @@ func TestRenameTable(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange")) }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) @@ -1566,8 +1532,7 @@ func TestRenameTable(t *testing.T) { } func TestAutoIncrementColumnErrorMessage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // Test create an exist database @@ -1588,8 +1553,7 @@ func TestRenameMultiTables(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange")) }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ddlChecker := schematracker.NewChecker(dom.DDL()) dom.SetDDL(ddlChecker) diff --git a/executor/delete_test.go b/executor/delete_test.go index 64c61996fac66..68edbc805f7cf 100644 --- a/executor/delete_test.go +++ b/executor/delete_test.go @@ -24,8 +24,7 @@ import ( ) func TestDeleteLockKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -109,8 +108,7 @@ func TestDeleteLockKey(t *testing.T) { } func TestIssue21200(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists TEST1") diff --git a/executor/distsql_test.go b/executor/distsql_test.go index 058d2820577f2..284729a33f0e2 100644 --- a/executor/distsql_test.go +++ b/executor/distsql_test.go @@ -61,11 +61,10 @@ func checkGoroutineExists(keyword string) bool { func TestCopClientSend(t *testing.T) { t.Skip("not stable") var cluster testutils.Cluster - store, dom, clean := testkit.CreateMockStoreAndDomain(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithSingleStore(c) cluster = c })) - defer clean() if _, ok := store.GetClient().(*copr.CopClient); !ok { // Make sure the store is tikv store. return @@ -155,8 +154,7 @@ func TestGetLackHandles(t *testing.T) { } func TestBigIntPK(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -166,8 +164,7 @@ func TestBigIntPK(t *testing.T) { } func TestCorColToRanges(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -185,8 +182,7 @@ func TestCorColToRanges(t *testing.T) { } func TestUniqueKeyNullValueSelect(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -214,8 +210,7 @@ func TestUniqueKeyNullValueSelect(t *testing.T) { // TestIssue10178 contains tests for https://github.com/pingcap/tidb/issues/10178 . func TestIssue10178(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -228,8 +223,7 @@ func TestIssue10178(t *testing.T) { } func TestInconsistentIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -280,8 +274,7 @@ func TestInconsistentIndex(t *testing.T) { } func TestPushLimitDownIndexLookUpReader(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -298,8 +291,7 @@ func TestPushLimitDownIndexLookUpReader(t *testing.T) { } func TestPartitionTableIndexLookUpReader(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -328,8 +320,7 @@ func TestPartitionTableIndexLookUpReader(t *testing.T) { } func TestPartitionTableRandomlyIndexLookUpReader(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -380,8 +371,7 @@ func TestIndexLookUpStats(t *testing.T) { } func TestIndexLookUpGetResultChunk(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -395,8 +385,7 @@ func TestIndexLookUpGetResultChunk(t *testing.T) { } func TestPartitionTableIndexJoinIndexLookUp(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -427,8 +416,7 @@ func TestPartitionTableIndexJoinIndexLookUp(t *testing.T) { } func TestCoprocessorPagingSize(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -483,8 +471,7 @@ func TestCoprocessorPagingSize(t *testing.T) { } func TestAdaptiveClosestRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -584,8 +571,7 @@ func TestAdaptiveClosestRead(t *testing.T) { } func TestCoprocessorPagingReqKeyRangeSorted(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/store/copr/checkKeyRangeSortedForPaging", "return")) diff --git a/executor/executor_failpoint_test.go b/executor/executor_failpoint_test.go index f658dfd7a029c..0e72dccd1e15c 100644 --- a/executor/executor_failpoint_test.go +++ b/executor/executor_failpoint_test.go @@ -42,8 +42,7 @@ func TestTiDBLastTxnInfoCommitMode(t *testing.T) { conf.TiKVClient.AsyncCommit.SafeWindow = time.Second }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -109,8 +108,7 @@ func TestTiDBLastTxnInfoCommitMode(t *testing.T) { } func TestPointGetRepeatableRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test") @@ -148,8 +146,7 @@ func TestPointGetRepeatableRead(t *testing.T) { } func TestBatchPointGetRepeatableRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test") @@ -185,8 +182,7 @@ func TestBatchPointGetRepeatableRead(t *testing.T) { } func TestSplitRegionTimeout(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) require.NoError(t, failpoint.Enable("tikvclient/injectLiveness", `return("reachable")`)) defer func() { @@ -221,8 +217,7 @@ func TestSplitRegionTimeout(t *testing.T) { } func TestTSOFail(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) @@ -243,8 +238,7 @@ func TestKillTableReader(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable(retry)) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -268,8 +262,7 @@ func TestKillTableReader(t *testing.T) { } func TestCollectCopRuntimeStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -285,8 +278,7 @@ func TestCollectCopRuntimeStats(t *testing.T) { } func TestCoprocessorOOMTiCase(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`set @@tidb_wait_split_region_finish=1`) @@ -367,8 +359,7 @@ func TestIssue21441(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/issue21441")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -402,8 +393,7 @@ select a from t` } func TestTxnWriteThroughputSLI(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -553,8 +543,7 @@ func TestDeadlocksTable(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/expression/sqlDigestRetrieverSkipRetrieveGlobal")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select * from information_schema.deadlocks").Check( diff --git a/executor/executor_issue_test.go b/executor/executor_issue_test.go index ecf5ac71503bb..5eb08c6789f0e 100644 --- a/executor/executor_issue_test.go +++ b/executor/executor_issue_test.go @@ -35,8 +35,7 @@ import ( ) func TestIssue23993(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // Real cast to time should return NULL @@ -66,8 +65,7 @@ func TestIssue23993(t *testing.T) { } func TestIssue22201(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustQuery("SELECT HEX(WEIGHT_STRING('ab' AS BINARY(1000000000000000000)));").Check(testkit.Rows("")) @@ -77,8 +75,7 @@ func TestIssue22201(t *testing.T) { } func TestIssue22941(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists m, mp") @@ -106,8 +103,7 @@ func TestIssue22941(t *testing.T) { } func TestIssue23609(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -121,8 +117,7 @@ func TestIssue23609(t *testing.T) { } func TestIssue24091(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -135,8 +130,7 @@ func TestIssue24091(t *testing.T) { } func TestIssue24210(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -166,8 +160,7 @@ func TestIssue24210(t *testing.T) { } func TestIssue25506(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tbl_3, tbl_23") @@ -180,8 +173,7 @@ func TestIssue25506(t *testing.T) { } func TestIssue26348(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -203,8 +195,7 @@ d decimal(15,8) DEFAULT NULL } func TestIssue26532(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustQuery("select greatest(cast(\"2020-01-01 01:01:01\" as datetime), cast(\"2019-01-01 01:01:01\" as datetime) )union select null;").Sort().Check(testkit.Rows("2020-01-01 01:01:01", "")) @@ -214,8 +205,7 @@ func TestIssue26532(t *testing.T) { } func TestIssue25447(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -227,8 +217,7 @@ func TestIssue25447(t *testing.T) { } func TestIssue23602(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -246,8 +235,7 @@ func TestIssue23602(t *testing.T) { } func TestIssue28935(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_enable_vectorized_expression=true") tk.MustQuery(`select trim(leading from " a "), trim(both from " a "), trim(trailing from " a ")`).Check(testkit.Rows("a a a")) @@ -261,8 +249,7 @@ func TestIssue28935(t *testing.T) { } func TestIssue29412(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t29142_1") @@ -274,8 +261,7 @@ func TestIssue29412(t *testing.T) { } func TestIssue28650(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2;") @@ -327,8 +313,7 @@ func TestIssue28650(t *testing.T) { func TestIssue30289(t *testing.T) { fpName := "github.com/pingcap/tidb/executor/issue30289" - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -342,8 +327,7 @@ func TestIssue30289(t *testing.T) { } func TestIssue29498(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("DROP TABLE IF EXISTS t1;") @@ -382,8 +366,7 @@ func TestIssue29498(t *testing.T) { } func TestIssue30971(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -410,8 +393,7 @@ func TestIssue30971(t *testing.T) { } func TestIndexJoin31494(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -454,8 +436,7 @@ func TestFix31038(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.Instance.EnableCollectExecutionInfo = false }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t123") @@ -466,8 +447,7 @@ func TestFix31038(t *testing.T) { } func TestFix31530(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -492,8 +472,7 @@ func TestFix31530(t *testing.T) { } func TestFix31537(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`CREATE TABLE trade ( @@ -539,8 +518,7 @@ func TestFix31537(t *testing.T) { } func TestIssue30382(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON;") @@ -572,8 +550,7 @@ func TestIssue30382(t *testing.T) { } func Test12201(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists e") @@ -586,8 +563,7 @@ func Test12201(t *testing.T) { } func TestIssue21451(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -628,15 +604,13 @@ func TestIssue21451(t *testing.T) { } func TestIssue15563(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select distinct 0.7544678906163867 / 0.68234634;").Check(testkit.Rows("1.10569639842486251190")) } func TestIssue22231(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t_issue_22231") @@ -654,8 +628,7 @@ func TestIssue22231(t *testing.T) { // TestIssue2612 is related with https://github.com/pingcap/tidb/issues/2612 func TestIssue2612(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t`) @@ -674,8 +647,7 @@ func TestIssue2612(t *testing.T) { // TestIssue345 is related with https://github.com/pingcap/tidb/issues/345 func TestIssue345(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t1, t2`) @@ -707,8 +679,7 @@ func TestIssue345(t *testing.T) { } func TestIssue5055(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t1, t2`) @@ -722,8 +693,7 @@ func TestIssue5055(t *testing.T) { // TestIssue4024 This tests https://github.com/pingcap/tidb/issues/4024 func TestIssue4024(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test2") tk.MustExec("use test2") @@ -741,16 +711,14 @@ func TestIssue4024(t *testing.T) { } func TestIssue5666(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@profiling=1") tk.MustQuery("SELECT QUERY_ID, SUM(DURATION) AS SUM_DURATION FROM INFORMATION_SCHEMA.PROFILING GROUP BY QUERY_ID;").Check(testkit.Rows("0 0")) } func TestIssue5341(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop table if exists test.t") tk.MustExec("create table test.t(a char)") @@ -759,8 +727,7 @@ func TestIssue5341(t *testing.T) { } func TestIssue16921(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -779,8 +746,7 @@ func TestIssue16921(t *testing.T) { } func TestIssue19100(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2;") @@ -795,8 +761,7 @@ func TestIssue19100(t *testing.T) { } func TestIssue27232(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -807,8 +772,7 @@ func TestIssue27232(t *testing.T) { } func TestIssue15718(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists tt;") @@ -829,8 +793,7 @@ func TestIssue15718(t *testing.T) { } func TestIssue15767(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists tt;") @@ -843,8 +806,7 @@ func TestIssue15767(t *testing.T) { } func TestIssue16025(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t0;") @@ -854,8 +816,7 @@ func TestIssue16025(t *testing.T) { } func TestIssue16854(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -890,8 +851,7 @@ func issue20975Prepare(t *testing.T, store kv.Storage) (*testkit.TestKit, *testk } func TestIssue20975UpdateNoChange(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1, tk2 := issue20975Prepare(t, store) tk1.MustExec("begin pessimistic") tk1.MustExec("update t1 set c=c") @@ -900,8 +860,7 @@ func TestIssue20975UpdateNoChange(t *testing.T) { } func TestIssue20975SelectForUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1, tk2 := issue20975Prepare(t, store) tk1.MustExec("begin") tk1.MustExec("select * from t1 for update") @@ -915,8 +874,7 @@ func TestIssue20975SelectForUpdate(t *testing.T) { } func TestIssue20975SelectForUpdatePointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1, tk2 := issue20975Prepare(t, store) tk1.MustExec("begin") tk1.MustExec("select * from t1 where id=1 for update") @@ -930,8 +888,7 @@ func TestIssue20975SelectForUpdatePointGet(t *testing.T) { } func TestIssue20975SelectForUpdateBatchPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1, tk2 := issue20975Prepare(t, store) tk1.MustExec("begin") tk1.MustExec("select * from t1 where id in (1, 2) for update") @@ -959,8 +916,7 @@ func issue20975PreparePartitionTable(t *testing.T, store kv.Storage) (*testkit.T } func TestIssue20975UpdateNoChangeWithPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1, tk2 := issue20975PreparePartitionTable(t, store) tk1.MustExec("begin pessimistic") @@ -970,8 +926,7 @@ func TestIssue20975UpdateNoChangeWithPartitionTable(t *testing.T) { } func TestIssue20975SelectForUpdateWithPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1, tk2 := issue20975PreparePartitionTable(t, store) tk1.MustExec("begin") tk1.MustExec("select * from t1 for update") @@ -985,8 +940,7 @@ func TestIssue20975SelectForUpdateWithPartitionTable(t *testing.T) { } func TestIssue20975SelectForUpdatePointGetWithPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1, tk2 := issue20975PreparePartitionTable(t, store) tk1.MustExec("begin") @@ -1011,8 +965,7 @@ func TestIssue20975SelectForUpdatePointGetWithPartitionTable(t *testing.T) { } func TestIssue20975SelectForUpdateBatchPointGetWithPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1, tk2 := issue20975PreparePartitionTable(t, store) tk1.MustExec("begin") @@ -1047,8 +1000,7 @@ func TestIssue20975SelectForUpdateBatchPointGetWithPartitionTable(t *testing.T) } func TestIssue20305(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1064,8 +1016,7 @@ func TestIssue20305(t *testing.T) { } func TestIssue22817(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t3") @@ -1075,8 +1026,7 @@ func TestIssue22817(t *testing.T) { } func TestIssue13953(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1088,8 +1038,7 @@ func TestIssue13953(t *testing.T) { } func Test17780(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t0") @@ -1101,8 +1050,7 @@ func Test17780(t *testing.T) { } func TestIssue9918(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1112,16 +1060,14 @@ func TestIssue9918(t *testing.T) { } func Test13004(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // see https://dev.mysql.com/doc/refman/5.6/en/date-and-time-literals.html, timestamp here actually produces a datetime tk.MustQuery("SELECT TIMESTAMP '9999-01-01 00:00:00'").Check(testkit.Rows("9999-01-01 00:00:00")) } func Test12178(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists ta") @@ -1131,8 +1077,7 @@ func Test12178(t *testing.T) { } func Test11883(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -1158,8 +1103,7 @@ func Test11883(t *testing.T) { } func Test15492(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1169,8 +1113,7 @@ func Test15492(t *testing.T) { } func TestIssue23567(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) oriProbability := statistics.FeedbackProbability.Load() statistics.FeedbackProbability.Store(1.0) @@ -1187,8 +1130,7 @@ func TestIssue23567(t *testing.T) { } func TestIssue33038(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, t1") @@ -1221,8 +1163,7 @@ func TestIssue33038(t *testing.T) { } func TestIssue33214(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") diff --git a/executor/executor_test.go b/executor/executor_test.go index a6160c15a5937..2d784d2626e13 100644 --- a/executor/executor_test.go +++ b/executor/executor_test.go @@ -94,8 +94,7 @@ func checkFileName(s string) bool { } func TestPessimisticSelectForUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(id int primary key, a int)") @@ -108,8 +107,7 @@ func TestPessimisticSelectForUpdate(t *testing.T) { } func TestBind(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists testbind") @@ -125,8 +123,7 @@ func TestBind(t *testing.T) { } func TestChangePumpAndDrainer(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // change pump or drainer's state need connect to etcd // so will meet error "URL scheme must be http, https, unix, or unixs: /tmp/tidb" @@ -135,8 +132,7 @@ func TestChangePumpAndDrainer(t *testing.T) { } func TestLoadStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") require.Error(t, tk.ExecToErr("load stats")) @@ -144,8 +140,7 @@ func TestLoadStats(t *testing.T) { } func TestPlanReplayer(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -159,8 +154,7 @@ func TestPlanReplayer(t *testing.T) { } func TestShow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_show;") tk.MustExec("use test_show") @@ -223,8 +217,7 @@ func TestShow(t *testing.T) { } func TestSelectWithoutFrom(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustQuery("select 1 + 2*3;").Check(testkit.Rows("7")) @@ -237,8 +230,7 @@ func TestSelectWithoutFrom(t *testing.T) { // TestSelectBackslashN Issue 3685. func TestSelectBackslashN(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) sql := `select \N;` @@ -330,8 +322,7 @@ func TestSelectBackslashN(t *testing.T) { // TestSelectNull Issue #4053. func TestSelectNull(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) sql := `select nUll;` @@ -365,8 +356,7 @@ func TestSelectNull(t *testing.T) { // TestSelectStringLiteral Issue #3686. func TestSelectStringLiteral(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) sql := `select 'abc';` @@ -529,8 +519,7 @@ func TestSelectStringLiteral(t *testing.T) { } func TestSelectLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table select_limit(id int not null default 1, name varchar(255), PRIMARY KEY(id));") @@ -560,8 +549,7 @@ func TestSelectLimit(t *testing.T) { } func TestSelectOrderBy(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table select_order_test(id int not null default 1, name varchar(255), PRIMARY KEY(id));") @@ -642,8 +630,7 @@ func TestSelectOrderBy(t *testing.T) { } func TestOrderBy(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (c1 int, c2 int, c3 varchar(20))") @@ -667,8 +654,7 @@ func TestOrderBy(t *testing.T) { } func TestSelectErrorRow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") require.Error(t, tk.ExecToErr("select row(1, 1) from test")) @@ -682,8 +668,7 @@ func TestSelectErrorRow(t *testing.T) { } func TestNeighbouringProj(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1(a int, b int)") @@ -699,8 +684,7 @@ func TestNeighbouringProj(t *testing.T) { } func TestIn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t`) @@ -716,8 +700,7 @@ func TestIn(t *testing.T) { } func TestTablePKisHandleScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -779,8 +762,7 @@ func TestTablePKisHandleScan(t *testing.T) { } func TestIndexReverseOrder(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -796,8 +778,7 @@ func TestIndexReverseOrder(t *testing.T) { } func TestTableReverseOrder(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -808,8 +789,7 @@ func TestTableReverseOrder(t *testing.T) { } func TestDefaultNull(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -826,8 +806,7 @@ func TestDefaultNull(t *testing.T) { } func TestUnsignedPKColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -839,8 +818,7 @@ func TestUnsignedPKColumn(t *testing.T) { } func TestJSON(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -912,8 +890,7 @@ func TestJSON(t *testing.T) { } func TestMultiUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`CREATE TABLE test_mu (a int primary key, b int, c int)`) @@ -938,8 +915,7 @@ func TestMultiUpdate(t *testing.T) { } func TestGeneratedColumnWrite(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustGetErrMsg(`CREATE TABLE test_gc_write (a int primary key auto_increment, b int, c int as (a+8) virtual)`, dbterror.ErrGeneratedColumnRefAutoInc.GenWithStackByArgs("c").Error()) @@ -990,8 +966,7 @@ func TestGeneratedColumnWrite(t *testing.T) { // TestGeneratedColumnRead tests select generated columns from table. // They should be calculated from their generation expressions. func TestGeneratedColumnRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`CREATE TABLE test_gc_read(a int primary key, b int, c int as (a+b), d int as (a*b) stored, e int as (c*2))`) @@ -1126,8 +1101,7 @@ func TestGeneratedColumnRead(t *testing.T) { // TestGeneratedColumnRead tests generated columns using point get and batch point get func TestGeneratedColumnPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tu") @@ -1156,8 +1130,7 @@ func TestGeneratedColumnPointGet(t *testing.T) { } func TestUnionAutoSignedCast(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1,t2") @@ -1198,8 +1171,7 @@ func TestUnionAutoSignedCast(t *testing.T) { } func TestUpdateClustered(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1367,8 +1339,7 @@ func TestUpdateClustered(t *testing.T) { } func TestSelectPartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec("set @@session.tidb_enable_list_partition = ON;") @@ -1430,8 +1401,7 @@ func TestSelectPartition(t *testing.T) { } func TestDeletePartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t1`) @@ -1452,15 +1422,13 @@ func TestDeletePartition(t *testing.T) { } func TestPrepareLoadData(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustGetErrCode(`prepare stmt from "load data local infile '/tmp/load_data_test.csv' into table test";`, mysql.ErrUnsupportedPs) } func TestSetOperation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t1, t2, t3`) @@ -1490,8 +1458,7 @@ func TestSetOperation(t *testing.T) { } func TestSetOperationOnDiffColType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t1, t2, t3`) @@ -1522,8 +1489,7 @@ func TestSetOperationOnDiffColType(t *testing.T) { // issue-23038: wrong key range of index scan for year column func TestIndexScanWithYearCol(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -1549,8 +1515,7 @@ func TestIndexScanWithYearCol(t *testing.T) { } func TestClusterIndexOuterJoinElimination(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -1564,8 +1529,7 @@ func TestClusterIndexOuterJoinElimination(t *testing.T) { } func TestPlanReplayerDumpSingle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t_dump_single") @@ -1582,8 +1546,7 @@ func TestPlanReplayerDumpSingle(t *testing.T) { } func TestUnsignedFeedback(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) oriProbability := statistics.FeedbackProbability.Load() @@ -1600,8 +1563,7 @@ func TestUnsignedFeedback(t *testing.T) { } func TestAlterTableComment(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1614,8 +1576,7 @@ func TestAlterTableComment(t *testing.T) { } func TestTimezonePushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (ts timestamp)") @@ -1646,8 +1607,7 @@ func TestTimezonePushDown(t *testing.T) { } func TestNotFillCacheFlag(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1678,8 +1638,7 @@ func TestNotFillCacheFlag(t *testing.T) { } func TestHandleTransfer(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1705,8 +1664,7 @@ func TestHandleTransfer(t *testing.T) { } func TestExecutorBit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1769,8 +1727,7 @@ func TestExecutorBit(t *testing.T) { } func TestExecutorEnum(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1791,8 +1748,7 @@ func TestExecutorEnum(t *testing.T) { } func TestExecutorSet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1811,8 +1767,7 @@ func TestExecutorSet(t *testing.T) { } func TestSubQueryInValues(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1824,8 +1779,7 @@ func TestSubQueryInValues(t *testing.T) { } func TestEnhancedRangeAccess(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1837,8 +1791,7 @@ func TestEnhancedRangeAccess(t *testing.T) { // TestMaxInt64Handle Issue #4810 func TestMaxInt64Handle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1854,8 +1807,7 @@ func TestMaxInt64Handle(t *testing.T) { } func TestTableScanWithPointRanges(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1865,8 +1817,7 @@ func TestTableScanWithPointRanges(t *testing.T) { } func TestUnsignedPk(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1885,8 +1836,7 @@ func TestUnsignedPk(t *testing.T) { } func TestSignedCommonHandle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -1903,8 +1853,7 @@ func TestSignedCommonHandle(t *testing.T) { } func TestContainDotColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1915,8 +1864,7 @@ func TestContainDotColumn(t *testing.T) { } func TestCheckIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ctx := mock.NewContext() ctx.Store = store @@ -2035,8 +1983,7 @@ func setColValue(t *testing.T, txn kv.Transaction, key kv.Key, v types.Datum) { } func TestCheckTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Test 'admin check table' when the table has a unique index with null values. @@ -2048,8 +1995,7 @@ func TestCheckTable(t *testing.T) { } func TestCheckTableClusterIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -2061,8 +2007,7 @@ func TestCheckTableClusterIndex(t *testing.T) { } func TestIncorrectLimitArg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -2077,8 +2022,7 @@ func TestIncorrectLimitArg(t *testing.T) { } func TestExecutorLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -2110,8 +2054,7 @@ func TestExecutorLimit(t *testing.T) { } func TestIndexScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2190,8 +2133,7 @@ func TestIndexScan(t *testing.T) { } func TestUpdateJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2270,8 +2212,7 @@ func TestUpdateJoin(t *testing.T) { } func TestScanControlSelection(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int primary key, b int, c int, index idx_b(b))") @@ -2280,8 +2221,7 @@ func TestScanControlSelection(t *testing.T) { } func TestSimpleDAG(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2328,8 +2268,7 @@ func TestSimpleDAG(t *testing.T) { } func TestTimestampTimeZone(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2389,8 +2328,7 @@ func TestTimestampTimeZone(t *testing.T) { } func TestTimestampDefaultValueTimeZone(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2487,8 +2425,7 @@ func TestTimestampDefaultValueTimeZone(t *testing.T) { } func TestTiDBCurrentTS(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select @@tidb_current_ts").Check(testkit.Rows("0")) @@ -2513,8 +2450,7 @@ func TestTiDBCurrentTS(t *testing.T) { } func TestTiDBLastTxnInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2570,8 +2506,7 @@ func TestTiDBLastTxnInfo(t *testing.T) { } func TestTiDBLastQueryInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2632,8 +2567,7 @@ func TestTiDBLastQueryInfo(t *testing.T) { } func TestSelectForUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -2711,8 +2645,7 @@ func TestSelectForUpdate(t *testing.T) { } func TestSelectForUpdateOf(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2745,8 +2678,7 @@ func TestSelectForUpdateOf(t *testing.T) { } func TestEmptyEnum(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2777,8 +2709,7 @@ func TestEmptyEnum(t *testing.T) { } func TestPartitionHashCode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2797,8 +2728,7 @@ func TestPartitionHashCode(t *testing.T) { } func TestAlterDefaultValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int, primary key(a))") @@ -2810,8 +2740,7 @@ func TestAlterDefaultValue(t *testing.T) { // this is from jira issue #5856 func TestInsertValuesWithSubQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2849,8 +2778,7 @@ func TestInsertValuesWithSubQuery(t *testing.T) { } func TestDIVZeroInPartitionExpr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2863,8 +2791,7 @@ func TestDIVZeroInPartitionExpr(t *testing.T) { } func TestInsertIntoGivenPartitionSet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2933,8 +2860,7 @@ func TestInsertIntoGivenPartitionSet(t *testing.T) { // fix issue https://github.com/pingcap/tidb/issues/32871 func TestBitColumnIn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2947,8 +2873,7 @@ func TestBitColumnIn(t *testing.T) { } func TestUpdateGivenPartitionSet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -3003,8 +2928,7 @@ func TestUpdateGivenPartitionSet(t *testing.T) { } func TestIndexLookupRuntimeStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3021,8 +2945,7 @@ func TestIndexLookupRuntimeStats(t *testing.T) { } func TestHashAggRuntimeStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3036,8 +2959,7 @@ func TestHashAggRuntimeStats(t *testing.T) { } func TestIndexMergeRuntimeStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3063,8 +2985,7 @@ func TestIndexMergeRuntimeStats(t *testing.T) { // For issue 17256 func TestGenerateColumnReplace(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -3077,8 +2998,7 @@ func TestGenerateColumnReplace(t *testing.T) { } func TestPrevStmtDesensitization(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -3092,8 +3012,7 @@ func TestPrevStmtDesensitization(t *testing.T) { } func TestIssue19372(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -3105,8 +3024,7 @@ func TestIssue19372(t *testing.T) { } func TestIssue19148(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3120,8 +3038,7 @@ func TestIssue19148(t *testing.T) { } func TestIssue19667(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3132,8 +3049,7 @@ func TestIssue19667(t *testing.T) { } func TestZeroDateTimeCompatibility(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3194,8 +3110,7 @@ func TestZeroDateTimeCompatibility(t *testing.T) { // https://github.com/pingcap/tidb/issues/24165. func TestInvalidDateValueInCreateTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -3245,8 +3160,7 @@ func TestInvalidDateValueInCreateTable(t *testing.T) { } func TestOOMActionPriority(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3272,8 +3186,7 @@ func TestOOMActionPriority(t *testing.T) { } func TestTrackAggMemoryUsage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3292,8 +3205,7 @@ func TestTrackAggMemoryUsage(t *testing.T) { } func TestProjectionBitType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3315,8 +3227,7 @@ func TestProjectionBitType(t *testing.T) { } func TestExprBlackListForEnum(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3395,8 +3306,7 @@ func TestExprBlackListForEnum(t *testing.T) { // Test invoke Close without invoking Open before for each operators. func TestUnreasonablyClose(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) is := infoschema.MockInfoSchema([]*model.TableInfo{plannercore.MockSignedTable(), plannercore.MockUnsignedTable()}) tk := testkit.NewTestKit(t, store) @@ -3524,8 +3434,7 @@ func TestUnreasonablyClose(t *testing.T) { } func TestEncodingSet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3541,8 +3450,7 @@ func TestEncodingSet(t *testing.T) { } func TestDeleteWithMulTbl(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3574,8 +3482,7 @@ func TestDeleteWithMulTbl(t *testing.T) { } func TestOOMPanicAction(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3630,8 +3537,7 @@ func TestOOMPanicAction(t *testing.T) { } func TestPointGetPreparedPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists ps_text") @@ -3790,8 +3696,7 @@ func TestPointGetPreparedPlan(t *testing.T) { } func TestPointGetPreparedPlanWithCommitMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -3859,8 +3764,7 @@ func TestPointGetPreparedPlanWithCommitMode(t *testing.T) { } func TestPointUpdatePreparedPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists pu_test") @@ -3966,8 +3870,7 @@ func TestPointUpdatePreparedPlan(t *testing.T) { } func TestPointUpdatePreparedPlanWithCommitMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -4050,8 +3953,7 @@ func TestPointUpdatePreparedPlanWithCommitMode(t *testing.T) { } func TestApplyCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -4095,8 +3997,7 @@ func TestApplyCache(t *testing.T) { } func TestCollectDMLRuntimeStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4161,8 +4062,7 @@ func TestCollectDMLRuntimeStats(t *testing.T) { } func TestIssue13758(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4178,8 +4078,7 @@ func TestIssue13758(t *testing.T) { } func TestIssue20237(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4192,8 +4091,7 @@ func TestIssue20237(t *testing.T) { } func TestIssue24933(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -4269,8 +4167,7 @@ func TestIssue24933(t *testing.T) { } func TestTableSampleTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. @@ -4323,8 +4220,7 @@ func TestTableSampleTemporaryTable(t *testing.T) { } func TestCTEWithIndexLookupJoinDeadLock(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4338,8 +4234,7 @@ func TestCTEWithIndexLookupJoinDeadLock(t *testing.T) { } func TestGetResultRowsCount(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4375,8 +4270,7 @@ func TestGetResultRowsCount(t *testing.T) { } func TestAdminShowDDLJobs(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_admin_show_ddl_jobs") tk.MustExec("use test_admin_show_ddl_jobs") @@ -4455,8 +4349,7 @@ func TestAdminShowDDLJobs(t *testing.T) { } func TestAdminShowDDLJobsRowCount(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Test for issue: https://github.com/pingcap/tidb/issues/25968 @@ -4474,8 +4367,7 @@ func TestAdminShowDDLJobsRowCount(t *testing.T) { } func TestAdminShowDDLJobsInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Test for issue: https://github.com/pingcap/tidb/issues/29915 @@ -4511,8 +4403,7 @@ func TestAdminShowDDLJobsInfo(t *testing.T) { } func TestAdminChecksumOfPartitionedTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") tk.MustExec("DROP TABLE IF EXISTS admin_checksum_partition_test;") @@ -4524,8 +4415,7 @@ func TestAdminChecksumOfPartitionedTable(t *testing.T) { } func TestUnion2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4772,8 +4662,7 @@ func TestUnion2(t *testing.T) { } func TestUnionLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists union_limit") @@ -4786,8 +4675,7 @@ func TestUnionLimit(t *testing.T) { } func TestLowResolutionTSORead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@autocommit=1") @@ -4810,8 +4698,7 @@ func TestLowResolutionTSORead(t *testing.T) { } func TestStaleReadAtFutureTime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Setting tx_read_ts to a time in the future will fail. (One day before the 2038 problem) @@ -4821,8 +4708,7 @@ func TestStaleReadAtFutureTime(t *testing.T) { } func TestYearTypeDeleteIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4833,8 +4719,7 @@ func TestYearTypeDeleteIndex(t *testing.T) { } func TestToPBExpr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4883,8 +4768,7 @@ func TestToPBExpr(t *testing.T) { } func TestDatumXAPI(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4910,8 +4794,7 @@ func TestDatumXAPI(t *testing.T) { } func TestSQLMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4960,8 +4843,7 @@ func TestSQLMode(t *testing.T) { } func TestTableDual(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") result := tk.MustQuery("Select 1") @@ -4979,8 +4861,7 @@ func TestTableDual(t *testing.T) { } func TestTableScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use information_schema") result := tk.MustQuery("select * from schemata") @@ -5000,8 +4881,7 @@ func TestTableScan(t *testing.T) { } func TestAdapterStatement(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.Session().GetSessionVars().TxnCtx.InfoSchema = domain.GetDomain(tk.Session()).InfoSchema() @@ -5021,8 +4901,7 @@ func TestAdapterStatement(t *testing.T) { } func TestIsPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use mysql") ctx := tk.Session().(sessionctx.Context) @@ -5048,8 +4927,7 @@ func TestIsPointGet(t *testing.T) { } func TestClusteredIndexIsPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_cluster_index_is_point_get;") tk.MustExec("create database test_cluster_index_is_point_get;") @@ -5082,8 +4960,7 @@ func TestClusteredIndexIsPointGet(t *testing.T) { } func TestRow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5159,8 +5036,7 @@ func TestRow(t *testing.T) { } func TestColumnName(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5250,8 +5126,7 @@ func TestColumnName(t *testing.T) { } func TestSelectVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5267,8 +5142,7 @@ func TestSelectVar(t *testing.T) { } func TestHistoryRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists history_read") @@ -5339,8 +5213,7 @@ func TestHistoryRead(t *testing.T) { } func TestHistoryReadInTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5465,8 +5338,7 @@ func TestHistoryReadInTxn(t *testing.T) { } func TestCurrentTimestampValueSelection(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t,t1") @@ -5501,8 +5373,7 @@ func TestCurrentTimestampValueSelection(t *testing.T) { } func TestStrToDateBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery(`select str_to_date('20190101','%Y%m%d%!') from dual`).Check(testkit.Rows("2019-01-01")) tk.MustQuery(`select str_to_date('20190101','%Y%m%d%f') from dual`).Check(testkit.Rows("2019-01-01 00:00:00.000000")) @@ -5550,8 +5421,7 @@ func TestStrToDateBuiltin(t *testing.T) { } func TestAddDateBuiltinWithWarnings(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@sql_mode='NO_ZERO_DATE'") result := tk.MustQuery(`select date_add('2001-01-00', interval -2 hour);`) @@ -5560,8 +5430,7 @@ func TestAddDateBuiltinWithWarnings(t *testing.T) { } func TestStrToDateBuiltinWithWarnings(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@sql_mode='NO_ZERO_DATE'") tk.MustExec("use test") @@ -5571,8 +5440,7 @@ func TestStrToDateBuiltinWithWarnings(t *testing.T) { func TestReadPartitionedTable(t *testing.T) { // Test three reader on partitioned table. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists pt") @@ -5589,8 +5457,7 @@ func TestReadPartitionedTable(t *testing.T) { } func TestIssue10435(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -5606,11 +5473,10 @@ func TestIssue10435(t *testing.T) { func TestAdmin(t *testing.T) { var cluster testutils.Cluster - store, clean := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { + store := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithSingleStore(c) cluster = c })) - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists admin_test") @@ -5796,8 +5662,7 @@ func TestAdmin(t *testing.T) { } func TestForSelectScopeInUnion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") // A union B for update, the "for update" option belongs to union statement, so @@ -5831,8 +5696,7 @@ func TestForSelectScopeInUnion(t *testing.T) { } func TestUnsignedDecimalOverflow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tests := []struct { input interface{} @@ -5877,8 +5741,7 @@ func TestUnsignedDecimalOverflow(t *testing.T) { } func TestIndexJoinTableDualPanic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists a") @@ -5890,8 +5753,7 @@ func TestIndexJoinTableDualPanic(t *testing.T) { } func TestSortLeftJoinWithNullColumnInRightChildPanic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -5903,8 +5765,7 @@ func TestSortLeftJoinWithNullColumnInRightChildPanic(t *testing.T) { } func TestMaxOneRow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t1`) @@ -5924,8 +5785,7 @@ func TestMaxOneRow(t *testing.T) { } func TestRowID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t`) @@ -5949,8 +5809,7 @@ func TestRowID(t *testing.T) { } func TestDoSubquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t`) @@ -5963,8 +5822,7 @@ func TestDoSubquery(t *testing.T) { } func TestSubqueryTableAlias(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t`) @@ -5991,8 +5849,7 @@ func TestSubqueryTableAlias(t *testing.T) { } func TestSelectHashPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists th`) @@ -6007,8 +5864,7 @@ func TestSelectHashPartitionTable(t *testing.T) { } func TestSelectView(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table view_t (a int,b int)") @@ -6056,8 +5912,7 @@ func TestSelectView(t *testing.T) { } func TestSummaryFailedUpdate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -6078,8 +5933,7 @@ func TestSummaryFailedUpdate(t *testing.T) { } func TestIsFastPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(id int primary key, a int)") @@ -6114,8 +5968,7 @@ func TestIsFastPlan(t *testing.T) { } func TestBinaryStrNumericOperator(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/executor_txn_test.go b/executor/executor_txn_test.go index 9261e54e705e3..d2bd8f862830e 100644 --- a/executor/executor_txn_test.go +++ b/executor/executor_txn_test.go @@ -31,8 +31,7 @@ import ( ) func TestInvalidReadTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, time.Second) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, time.Second) tk := testkit.NewTestKit(t, store) // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. safePointName := "tikv_gc_safe_point" @@ -154,8 +153,7 @@ func TestInvalidReadTemporaryTable(t *testing.T) { } func TestInvalidReadCacheTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. safePointName := "tikv_gc_safe_point" @@ -258,8 +256,7 @@ func TestInvalidReadCacheTable(t *testing.T) { } func TestTxnSavepoint0(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(id int, a int, unique index idx(id))") @@ -340,8 +337,7 @@ func TestTxnSavepoint0(t *testing.T) { } func TestTxnSavepoint1(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(id int, a int, unique index idx(id))") @@ -470,8 +466,7 @@ func TestTxnSavepoint1(t *testing.T) { } func TestRollbackToSavepoint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(id int, a int, unique index idx(id))") @@ -501,8 +496,7 @@ func TestRollbackToSavepoint(t *testing.T) { } func TestRollbackToSavepointReleasePessimisticLock(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test") tk1.MustExec("create table t(id int key, a int)") @@ -548,8 +542,7 @@ func TestRollbackToSavepointReleasePessimisticLock(t *testing.T) { } func TestSavepointInPessimisticAndOptimistic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test") tk1.MustExec("create table t(id int key, a int)") @@ -590,8 +583,7 @@ func TestSavepointInPessimisticAndOptimistic(t *testing.T) { } func TestSavepointInBigTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test") tk1.MustExec("create table t(id int key, a int)") @@ -672,8 +664,7 @@ func TestSavepointInBigTxn(t *testing.T) { } func TestSavepointRandTestIssue0(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -689,8 +680,7 @@ func TestSavepointRandTestIssue0(t *testing.T) { } func TestSavepointWithTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -735,8 +725,7 @@ func TestSavepointWithTemporaryTable(t *testing.T) { } func TestSavepointWithCacheTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -776,8 +765,7 @@ func TestSavepointWithCacheTable(t *testing.T) { } func TestSavepointWithBinlog(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // mock for binlog enabled. diff --git a/executor/explain_test.go b/executor/explain_test.go index 8ecbd3edd019b..0b569fd958f5c 100644 --- a/executor/explain_test.go +++ b/executor/explain_test.go @@ -32,8 +32,7 @@ import ( ) func TestExplainPrivileges(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) require.True(t, se.Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) @@ -70,8 +69,7 @@ func TestExplainPrivileges(t *testing.T) { } func TestExplainCartesianJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -101,8 +99,7 @@ func TestExplainCartesianJoin(t *testing.T) { } func TestExplainWrite(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -119,8 +116,7 @@ func TestExplainWrite(t *testing.T) { } func TestExplainAnalyzeMemory(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -172,8 +168,7 @@ func checkMemoryInfo(t *testing.T, tk *testkit.TestKit, sql string) { } func TestMemoryAndDiskUsageAfterClose(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -210,8 +205,7 @@ func TestMemoryAndDiskUsageAfterClose(t *testing.T) { } func TestExplainAnalyzeExecutionInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -262,8 +256,7 @@ func checkExecutionInfo(t *testing.T, tk *testkit.TestKit, sql string) { } func TestExplainAnalyzeActRowsNotEmpty(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -304,8 +297,7 @@ func TestCheckActRowsWithUnistore(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.EnableCollectExecutionInfo = true }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // testSuite1 use default mockstore which is unistore tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -376,8 +368,7 @@ func TestCheckActRowsWithUnistore(t *testing.T) { } func TestExplainAnalyzeCTEMemoryAndDiskInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -399,8 +390,7 @@ func TestExplainAnalyzeCTEMemoryAndDiskInfo(t *testing.T) { } func TestExplainStatementsSummary(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustQuery("desc select * from information_schema.statements_summary").Check(testkit.Rows( @@ -414,8 +404,7 @@ func TestExplainStatementsSummary(t *testing.T) { } func TestFix29401(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tt123;") @@ -438,8 +427,7 @@ func TestFix29401(t *testing.T) { } func TestIssue35296(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -456,8 +444,7 @@ func TestIssue35296(t *testing.T) { } func TestIssue35911(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -497,8 +484,7 @@ func TestIssue35911(t *testing.T) { } func TestIssue35105(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") diff --git a/executor/explainfor_test.go b/executor/explainfor_test.go index 7833573725c2e..ca0a1bde717ec 100644 --- a/executor/explainfor_test.go +++ b/executor/explainfor_test.go @@ -32,8 +32,7 @@ import ( ) func TestExplainFor(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tkRoot := testkit.NewTestKit(t, store) tkUser := testkit.NewTestKit(t, store) @@ -97,8 +96,7 @@ func TestExplainFor(t *testing.T) { } func TestExplainForVerbose(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -146,8 +144,7 @@ func TestExplainForVerbose(t *testing.T) { } func TestIssue11124(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -173,8 +170,7 @@ func TestIssue11124(t *testing.T) { } func TestExplainMemTablePredicate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("desc select * from METRICS_SCHEMA.tidb_query_duration where time >= '2019-12-23 16:10:13' and time <= '2019-12-23 16:30:13' ").Check(testkit.Rows( "MemTableScan_5 10000.00 root table:tidb_query_duration PromQL:histogram_quantile(0.9, sum(rate(tidb_server_handle_query_duration_seconds_bucket{}[60s])) by (le,sql_type,instance)), start_time:2019-12-23 16:10:13, end_time:2019-12-23 16:30:13, step:1m0s")) @@ -196,8 +192,7 @@ func TestExplainMemTablePredicate(t *testing.T) { } func TestExplainClusterTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("desc select * from information_schema.cluster_config where type in ('tikv', 'tidb')").Check(testkit.Rows( `MemTableScan_5 10000.00 root table:CLUSTER_CONFIG node_types:["tidb","tikv"]`)) @@ -208,8 +203,7 @@ func TestExplainClusterTable(t *testing.T) { } func TestInspectionResultTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("desc select * from information_schema.inspection_result where rule = 'ddl' and rule = 'config'").Check(testkit.Rows( `MemTableScan_5 10000.00 root table:INSPECTION_RESULT skip_inspection:true`)) @@ -222,8 +216,7 @@ func TestInspectionResultTable(t *testing.T) { } func TestInspectionRuleTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("desc select * from information_schema.inspection_rules where type='inspection'").Check(testkit.Rows( `MemTableScan_5 10000.00 root table:INSPECTION_RULES node_types:["inspection"]`)) @@ -242,8 +235,7 @@ func TestExplainForConnPlanCache(t *testing.T) { }() core.SetPreparedPlanCache(true) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) se, err := session.CreateSession4TestWithOpt(store, &session.Opt{ @@ -314,8 +306,7 @@ func TestSavedPlanPanicPlanCache(t *testing.T) { }() core.SetPreparedPlanCache(true) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) se, err := session.CreateSession4TestWithOpt(store, &session.Opt{ PreparedPlanCache: kvcache.NewSimpleLRUCache(100, 0.1, math.MaxUint64), @@ -341,8 +332,7 @@ func TestSavedPlanPanicPlanCache(t *testing.T) { } func TestExplainDotForExplainPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) rows := tk.MustQuery("select connection_id()").Rows() @@ -361,8 +351,7 @@ func TestExplainDotForExplainPlan(t *testing.T) { } func TestExplainDotForQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -382,8 +371,7 @@ func TestExplainDotForQuery(t *testing.T) { } func TestExplainTableStorage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("desc select * from information_schema.TABLE_STORAGE_STATS where TABLE_SCHEMA = 'information_schema'").Check(testkit.Rows( "MemTableScan_5 10000.00 root table:TABLE_STORAGE_STATS schema:[\"information_schema\"]")) @@ -394,8 +382,7 @@ func TestExplainTableStorage(t *testing.T) { } func TestInspectionSummaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("desc select * from information_schema.inspection_summary where rule='ddl'").Check(testkit.Rows( @@ -449,8 +436,7 @@ func TestInspectionSummaryTable(t *testing.T) { } func TestExplainTiFlashSystemTables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tiflashInstance := "192.168.1.7:3930" database := "test" @@ -474,8 +460,7 @@ func TestExplainTiFlashSystemTables(t *testing.T) { } func TestPointGetUserVarPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tmp := testkit.NewTestKit(t, store) defer tmp.MustExec("set global tidb_enable_prepared_plan_cache=" + variable.BoolToOnOff(variable.EnablePreparedPlanCache.Load())) tmp.MustExec("set global tidb_enable_prepared_plan_cache=ON") @@ -529,8 +514,7 @@ func TestPointGetUserVarPlanCache(t *testing.T) { } func TestExpressionIndexPreparePlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -570,8 +554,7 @@ func TestExpressionIndexPreparePlanCache(t *testing.T) { } func TestIssue28259(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -781,8 +764,7 @@ func TestIssue28259(t *testing.T) { } func TestIssue28696(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -827,8 +809,7 @@ func TestIssue28696(t *testing.T) { } func TestIndexMerge4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -998,8 +979,7 @@ func TestIndexMerge4PlanCache(t *testing.T) { } func TestSetOperations4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -1077,8 +1057,7 @@ func TestSetOperations4PlanCache(t *testing.T) { } func TestSPM4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -1142,8 +1121,7 @@ func TestSPM4PlanCache(t *testing.T) { } func TestHint4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -1175,8 +1153,7 @@ func TestHint4PlanCache(t *testing.T) { } func TestIgnorePlanCacheWithPrepare(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1229,8 +1206,7 @@ func TestIgnorePlanCacheWithPrepare(t *testing.T) { } func TestSelectView4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -1350,8 +1326,7 @@ func TestSelectView4PlanCache(t *testing.T) { } func TestInvisibleIndex4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -1386,8 +1361,7 @@ func TestInvisibleIndex4PlanCache(t *testing.T) { func TestCTE4PlanCache(t *testing.T) { // CTE can not be cached, because part of it will be treated as a subquery. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -1462,8 +1436,7 @@ func TestCTE4PlanCache(t *testing.T) { } func TestValidity4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -1509,8 +1482,7 @@ func TestValidity4PlanCache(t *testing.T) { } func TestListPartition4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() @@ -1540,8 +1512,7 @@ func TestListPartition4PlanCache(t *testing.T) { } func TestMoreSessions4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1585,8 +1556,7 @@ func TestMoreSessions4PlanCache(t *testing.T) { } func TestIssue28792(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("CREATE TABLE t12(a INT, b INT)") diff --git a/executor/grant_test.go b/executor/grant_test.go index 94ea918064d5f..416b13f1518aa 100644 --- a/executor/grant_test.go +++ b/executor/grant_test.go @@ -30,8 +30,7 @@ import ( ) func TestGrantGlobal(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Create a new user. @@ -70,8 +69,7 @@ func TestGrantGlobal(t *testing.T) { } func TestGrantDBScope(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Create a new user. @@ -109,8 +107,7 @@ func TestGrantDBScope(t *testing.T) { } func TestWithGrantOption(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Create a new user. @@ -133,8 +130,7 @@ func TestWithGrantOption(t *testing.T) { } func TestGrantTableScope(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Create a new user. @@ -177,8 +173,7 @@ func TestGrantTableScope(t *testing.T) { } func TestGrantColumnScope(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Create a new user. @@ -223,8 +218,7 @@ func TestGrantColumnScope(t *testing.T) { } func TestIssue2456(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER 'dduser'@'%' IDENTIFIED by '123456';") @@ -235,8 +229,7 @@ func TestIssue2456(t *testing.T) { } func TestNoAutoCreateUser(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`DROP USER IF EXISTS 'test'@'%'`) @@ -247,8 +240,7 @@ func TestNoAutoCreateUser(t *testing.T) { } func TestCreateUserWhenGrant(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`DROP USER IF EXISTS 'test'@'%'`) @@ -270,8 +262,7 @@ func TestCreateUserWhenGrant(t *testing.T) { } func TestCreateUserWithTooLongName(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) err := tk.ExecToErr("CREATE USER '1234567890abcdefGHIKL1234567890abcdefGHIKL@localhost'") @@ -281,8 +272,7 @@ func TestCreateUserWithTooLongName(t *testing.T) { } func TestGrantPrivilegeAtomic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`drop role if exists r1, r2, r3, r4;`) @@ -334,8 +324,7 @@ func TestGrantPrivilegeAtomic(t *testing.T) { } func TestIssue2654(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`DROP USER IF EXISTS 'test'@'%'`) @@ -346,8 +335,7 @@ func TestIssue2654(t *testing.T) { } func TestGrantUnderANSIQuotes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Fix a bug that the GrantExec fails in ANSI_QUOTES sql mode @@ -360,8 +348,7 @@ func TestGrantUnderANSIQuotes(t *testing.T) { } func TestMaintainRequire(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -433,8 +420,7 @@ func TestMaintainRequire(t *testing.T) { } func TestMaintainAuthString(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER 'maint_auth_str1'@'%' IDENTIFIED BY 'foo'`) @@ -444,8 +430,7 @@ func TestMaintainAuthString(t *testing.T) { } func TestGrantOnNonExistTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create user genius") @@ -505,8 +490,7 @@ func TestGrantOnNonExistTable(t *testing.T) { } func TestIssue22721(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -519,8 +503,7 @@ func TestIssue22721(t *testing.T) { } func TestPerformanceSchemaPrivGrant(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -549,8 +532,7 @@ func TestPerformanceSchemaPrivGrant(t *testing.T) { } func TestGrantDynamicPrivs(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create user dyn") @@ -583,8 +565,7 @@ func TestGrantDynamicPrivs(t *testing.T) { } func TestNonExistTableIllegalGrant(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create user u29302") diff --git a/executor/hot_regions_history_table_test.go b/executor/hot_regions_history_table_test.go index faa9c6ddcf4d6..bd6c50ded26b1 100644 --- a/executor/hot_regions_history_table_test.go +++ b/executor/hot_regions_history_table_test.go @@ -56,16 +56,13 @@ func (s *mockStoreWithMultiPD) Describe() string { return "" } type hotRegionsHistoryTableSuite struct { store kv.Storage - clean func() httpServers []*httptest.Server startTime time.Time } func createHotRegionsHistoryTableSuite(t *testing.T) *hotRegionsHistoryTableSuite { - var clean func() - s := new(hotRegionsHistoryTableSuite) - s.store, clean = testkit.CreateMockStore(t) + s.store = testkit.CreateMockStore(t) store := &mockStoreWithMultiPD{ s.store.(helper.Storage), make([]string, 3), @@ -79,12 +76,13 @@ func createHotRegionsHistoryTableSuite(t *testing.T) *hotRegionsHistoryTableSuit } s.store = store s.startTime = time.Now() - s.clean = func() { + t.Cleanup(func() { for _, server := range s.httpServers { - server.Close() + if server != nil { + server.Close() + } } - clean() - } + }) return s } @@ -160,7 +158,6 @@ func (s *hotRegionsHistoryTableSuite) setUpMockPDHTTPServer() (*httptest.Server, func TestTiDBHotRegionsHistory(t *testing.T) { s := createHotRegionsHistoryTableSuite(t) - defer s.clean() var unixTimeMs = func(v string) int64 { tt, err := time.ParseInLocation("2006-01-02 15:04:05", v, time.Local) @@ -509,7 +506,6 @@ func TestTiDBHotRegionsHistory(t *testing.T) { func TestTiDBHotRegionsHistoryError(t *testing.T) { s := createHotRegionsHistoryTableSuite(t) - defer s.clean() tk := testkit.NewTestKit(t, s.store) diff --git a/executor/index_advise_test.go b/executor/index_advise_test.go index 5371ecd051bc1..a9bdb36232424 100644 --- a/executor/index_advise_test.go +++ b/executor/index_advise_test.go @@ -25,8 +25,7 @@ import ( ) func TestIndexAdvise(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) diff --git a/executor/index_lookup_join_test.go b/executor/index_lookup_join_test.go index 73c85d521db03..dfd9f04a69140 100644 --- a/executor/index_lookup_join_test.go +++ b/executor/index_lookup_join_test.go @@ -26,8 +26,7 @@ import ( ) func TestIndexLookupJoinHang(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -70,8 +69,7 @@ func TestIndexLookupJoinHang(t *testing.T) { } func TestIndexJoinUnionScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -124,8 +122,7 @@ func TestIndexJoinUnionScan(t *testing.T) { } func TestBatchIndexJoinUnionScanTest(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -146,8 +143,7 @@ func TestBatchIndexJoinUnionScanTest(t *testing.T) { } func TestInapplicableIndexJoinHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -189,8 +185,7 @@ func TestInapplicableIndexJoinHint(t *testing.T) { } func TestIndexJoinOverflow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -204,8 +199,7 @@ func TestIndexJoinOverflow(t *testing.T) { } func TestIssue11061(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -218,8 +212,7 @@ func TestIssue11061(t *testing.T) { } func TestIndexJoinPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -232,8 +225,7 @@ func TestIndexJoinPartitionTable(t *testing.T) { } func TestIndexJoinMultiCondition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -246,8 +238,7 @@ func TestIndexJoinMultiCondition(t *testing.T) { } func TestIssue16887(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -263,8 +254,7 @@ func TestIssue16887(t *testing.T) { } func TestIndexJoinEnumSetIssue19233(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -305,8 +295,7 @@ func TestIndexJoinEnumSetIssue19233(t *testing.T) { } func TestIssue19411(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -324,8 +313,7 @@ func TestIssue19411(t *testing.T) { } func TestIssue23653(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -339,8 +327,7 @@ func TestIssue23653(t *testing.T) { } func TestIssue23656(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -355,8 +342,7 @@ func TestIssue23656(t *testing.T) { } func TestIssue23722(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -391,8 +377,7 @@ func TestIssue23722(t *testing.T) { } func TestIssue24547(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -406,8 +391,7 @@ func TestIssue24547(t *testing.T) { } func TestIssue27138(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -454,8 +438,7 @@ PARTITIONS 1`) } func TestIssue27893(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -470,8 +453,7 @@ func TestIssue27893(t *testing.T) { } func TestPartitionTableIndexJoinAndIndexReader(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/index_lookup_merge_join_test.go b/executor/index_lookup_merge_join_test.go index 44bdf29cb8598..826786d9f196b 100644 --- a/executor/index_lookup_merge_join_test.go +++ b/executor/index_lookup_merge_join_test.go @@ -31,8 +31,7 @@ func TestIndexLookupMergeJoinHang(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/IndexMergeJoinMockOOM")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -47,8 +46,7 @@ func TestIndexLookupMergeJoinHang(t *testing.T) { } func TestIssue28052(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -69,8 +67,7 @@ func TestIssue18068(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/testIssue18068")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, s") @@ -90,8 +87,7 @@ func TestIssue18068(t *testing.T) { } func TestIssue18631(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -108,8 +104,7 @@ func TestIssue18631(t *testing.T) { } func TestIssue19408(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -138,8 +133,7 @@ func TestIssue19408(t *testing.T) { } func TestIssue20137(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -155,8 +149,7 @@ func TestIssue20137(t *testing.T) { func TestIndexJoinOnSinglePartitionTable(t *testing.T) { // For issue 19145 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") for _, val := range []string{string(variable.Static), string(variable.Dynamic)} { @@ -186,8 +179,7 @@ func TestIndexJoinOnSinglePartitionTable(t *testing.T) { } func TestIssue20400(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, s") @@ -201,8 +193,7 @@ func TestIssue20400(t *testing.T) { } func TestIssue20549(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -216,8 +207,7 @@ func TestIssue20549(t *testing.T) { } func TestIssue24473AndIssue25669(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists x, t2, t3") diff --git a/executor/index_merge_reader_test.go b/executor/index_merge_reader_test.go index c09d5429dcb5a..6ed343a64b18f 100644 --- a/executor/index_merge_reader_test.go +++ b/executor/index_merge_reader_test.go @@ -30,8 +30,7 @@ import ( ) func TestSingleTableRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -52,8 +51,7 @@ func TestSingleTableRead(t *testing.T) { } func TestJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -69,8 +67,7 @@ func TestJoin(t *testing.T) { } func TestIndexMergeReaderAndGeneratedColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t0") @@ -83,8 +80,7 @@ func TestIndexMergeReaderAndGeneratedColumn(t *testing.T) { // issue 25045 func TestIndexMergeReaderIssue25045(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -100,8 +96,7 @@ func TestIndexMergeReaderIssue25045(t *testing.T) { } func TestIssue16910(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("use test;") @@ -120,8 +115,7 @@ func TestIssue16910(t *testing.T) { } func TestIndexMergeCausePanic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_enable_index_merge = 1;") @@ -130,8 +124,7 @@ func TestIndexMergeCausePanic(t *testing.T) { } func TestPartitionTableRandomIndexMerge(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_enable_index_merge=1") @@ -191,8 +184,7 @@ func TestPartitionTableRandomIndexMerge(t *testing.T) { } func TestIndexMergeWithPreparedStmt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(false) @@ -228,8 +220,7 @@ func TestIndexMergeWithPreparedStmt(t *testing.T) { } func TestIndexMergeInTransaction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -375,8 +366,7 @@ func TestIndexMergeInTransaction(t *testing.T) { } func TestIndexMergeReaderInTransIssue30685(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -448,8 +438,7 @@ func TestIndexMergeReaderInTransIssue30685(t *testing.T) { } func TestIndexMergeReaderMemTracker(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("create table t1(c1 int, c2 int, c3 int, key(c1), key(c2), key(c3));") @@ -485,8 +474,7 @@ func TestIndexMergeReaderMemTracker(t *testing.T) { } func TestIndexMergeSplitTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("DROP TABLE IF EXISTS tab2;") @@ -508,8 +496,7 @@ func TestIndexMergeSplitTable(t *testing.T) { func TestPessimisticLockOnPartitionForIndexMerge(t *testing.T) { // Same purpose with TestPessimisticLockOnPartition, but test IndexMergeReader. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/infoschema_cluster_table_test.go b/executor/infoschema_cluster_table_test.go index 88de09a060568..7128d65afdc7c 100644 --- a/executor/infoschema_cluster_table_test.go +++ b/executor/infoschema_cluster_table_test.go @@ -45,7 +45,6 @@ import ( type infosSchemaClusterTableSuite struct { store kv.Storage dom *domain.Domain - clean func() rpcServer *grpc.Server httpServer *httptest.Server mockAddr string @@ -54,19 +53,19 @@ type infosSchemaClusterTableSuite struct { } func createInfosSchemaClusterTableSuite(t *testing.T) *infosSchemaClusterTableSuite { - var clean func() - s := new(infosSchemaClusterTableSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcServer, s.listenAddr = setUpRPCService(t, s.dom, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() - s.clean = func() { - s.rpcServer.Stop() - s.httpServer.Close() - clean() - } - + t.Cleanup(func() { + if s.rpcServer != nil { + s.rpcServer.Stop() + } + if s.httpServer != nil { + s.httpServer.Close() + } + }) return s } @@ -225,7 +224,6 @@ func (s *mockStore) Describe() string { return "" } func TestTiDBClusterInfo(t *testing.T) { s := createInfosSchemaClusterTableSuite(t) - defer s.clean() mockAddr := s.mockAddr store := &mockStore{ @@ -298,7 +296,6 @@ func TestTiDBClusterInfo(t *testing.T) { func TestTableStorageStats(t *testing.T) { s := createInfosSchemaClusterTableSuite(t) - defer s.clean() tk := testkit.NewTestKit(t, s.store) err := tk.QueryToErr("select * from information_schema.TABLE_STORAGE_STATS where TABLE_SCHEMA = 'test'") diff --git a/executor/infoschema_reader_test.go b/executor/infoschema_reader_test.go index c81efedb8958c..8f941f0496598 100644 --- a/executor/infoschema_reader_test.go +++ b/executor/infoschema_reader_test.go @@ -37,8 +37,7 @@ import ( func TestInspectionTables(t *testing.T) { t.Skip("unstable, skip it and fix it before 20210624") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) instances := []string{ "pd,127.0.0.1:11080,127.0.0.1:10080,mock-version,mock-githash,0", @@ -78,8 +77,7 @@ func TestInspectionTables(t *testing.T) { } func TestProfiling(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select * from information_schema.profiling").Check(testkit.Rows()) tk.MustExec("set @@profiling=1") @@ -87,8 +85,7 @@ func TestProfiling(t *testing.T) { } func TestSchemataTables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select * from information_schema.SCHEMATA where schema_name='mysql';").Check( @@ -119,8 +116,7 @@ func TestSchemataTables(t *testing.T) { } func TestTableIDAndIndexID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop table if exists test.t") tk.MustExec("create table test.t (a int, b int, primary key(a), key k1(b))") @@ -131,8 +127,7 @@ func TestTableIDAndIndexID(t *testing.T) { } func TestSchemataCharacterSet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE `foo` DEFAULT CHARACTER SET = 'utf8mb4'") tk.MustQuery("select default_character_set_name, default_collation_name FROM information_schema.SCHEMATA WHERE schema_name = 'foo'").Check( @@ -141,8 +136,7 @@ func TestSchemataCharacterSet(t *testing.T) { } func TestViews(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DEFINER='root'@'localhost' VIEW test.v1 AS SELECT 1") tk.MustQuery("select TABLE_COLLATION is null from INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='VIEW'").Check(testkit.Rows("1")) @@ -151,8 +145,7 @@ func TestViews(t *testing.T) { } func TestColumnsTables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -163,16 +156,14 @@ func TestColumnsTables(t *testing.T) { } func TestEngines(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select * from information_schema.ENGINES;").Check(testkit.Rows("InnoDB DEFAULT Supports transactions, row-level locking, and foreign keys YES YES YES")) } // https://github.com/pingcap/tidb/issues/25467. func TestDataTypesMaxLengthAndOctLength(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_oct_length;") tk.MustExec("create database test_oct_length;") @@ -206,8 +197,7 @@ func TestDataTypesMaxLengthAndOctLength(t *testing.T) { } func TestDDLJobs(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_ddl_jobs") tk.MustQuery("select db_name, job_type from information_schema.DDL_JOBS limit 1").Check( @@ -251,8 +241,7 @@ func TestDDLJobs(t *testing.T) { } func TestKeyColumnUsage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select * from information_schema.KEY_COLUMN_USAGE where TABLE_NAME='stats_meta' and COLUMN_NAME='table_id';").Check( @@ -278,8 +267,7 @@ func TestKeyColumnUsage(t *testing.T) { } func TestUserPrivileges(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test the privilege of new user for information_schema.table_constraints tk.MustExec("create user constraints_tester") @@ -346,8 +334,7 @@ func TestUserPrivileges(t *testing.T) { } func TestUserPrivilegesTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk1 := testkit.NewTestKit(t, store) @@ -370,8 +357,7 @@ func TestUserPrivilegesTable(t *testing.T) { } func TestDataForTableStatsField(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) oldExpiryTime := executor.TableStatsCacheExpiry executor.TableStatsCacheExpiry = 0 defer func() { executor.TableStatsCacheExpiry = oldExpiryTime }() @@ -419,8 +405,7 @@ func TestDataForTableStatsField(t *testing.T) { } func TestPartitionsTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) oldExpiryTime := executor.TableStatsCacheExpiry executor.TableStatsCacheExpiry = 0 defer func() { executor.TableStatsCacheExpiry = oldExpiryTime }() @@ -490,8 +475,7 @@ func TestPartitionsTable(t *testing.T) { } func TestMetricTables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use information_schema") tk.MustQuery("select count(*) > 0 from `METRICS_TABLES`").Check(testkit.Rows("1")) @@ -500,22 +484,19 @@ func TestMetricTables(t *testing.T) { } func TestTableConstraintsTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select * from information_schema.TABLE_CONSTRAINTS where TABLE_NAME='gc_delete_range';").Check(testkit.Rows("def mysql delete_range_index mysql gc_delete_range UNIQUE")) } func TestTableSessionVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select * from information_schema.SESSION_VARIABLES where VARIABLE_NAME='tidb_retry_limit';").Check(testkit.Rows("tidb_retry_limit 10")) } func TestForAnalyzeStatus(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) analyzeStatusTable := "CREATE TABLE `ANALYZE_STATUS` (\n" + " `TABLE_SCHEMA` varchar(64) DEFAULT NULL,\n" + @@ -580,8 +561,7 @@ func TestForAnalyzeStatus(t *testing.T) { } func TestForServersInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) rows := tk.MustQuery("select * from information_schema.TIDB_SERVERS_INFO").Rows() require.Len(t, rows, 1) @@ -606,8 +586,7 @@ func TestForTableTiFlashReplica(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/infoschema/mockTiFlashStoreCount")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -623,8 +602,7 @@ func TestForTableTiFlashReplica(t *testing.T) { } func TestSequences(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE SEQUENCE test.seq maxvalue 10000000") tk.MustQuery("SELECT * FROM information_schema.sequences WHERE sequence_schema='test' AND sequence_name='seq'").Check(testkit.Rows("def test seq 1 1000 0 1 10000000 1 1 ")) @@ -637,16 +615,14 @@ func TestSequences(t *testing.T) { } func TestTiFlashSystemTables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("select * from information_schema.TIFLASH_TABLES;") tk.MustExec("select * from information_schema.TIFLASH_SEGMENTS;") } func TestTablesPKType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t_int (a int primary key, b int)") @@ -662,8 +638,7 @@ func TestTablesPKType(t *testing.T) { // https://github.com/pingcap/tidb/issues/32459. func TestJoinSystemTableContainsView(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (a timestamp, b int);") @@ -720,8 +695,7 @@ SELECT // https://github.com/pingcap/tidb/issues/36426. func TestShowColumnsWithSubQueryView(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/insert_test.go b/executor/insert_test.go index 3e4c75c663575..2f4abad2328bf 100644 --- a/executor/insert_test.go +++ b/executor/insert_test.go @@ -34,15 +34,13 @@ import ( ) func TestInsertOnDuplicateKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) testInsertOnDuplicateKey(t, tk) } func TestInsertOnDuplicateKeyWithBinlog(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) failpoint.Enable("github.com/pingcap/tidb/table/tables/forceWriteBinlog", "return") defer failpoint.Disable("github.com/pingcap/tidb/table/tables/forceWriteBinlog") @@ -259,8 +257,7 @@ func testInsertOnDuplicateKey(t *testing.T, tk *testkit.TestKit) { } func TestClusterIndexInsertOnDuplicateKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists cluster_index_duplicate_entry_error;") tk.MustExec("create database cluster_index_duplicate_entry_error;") @@ -278,8 +275,7 @@ func TestClusterIndexInsertOnDuplicateKey(t *testing.T) { } func TestPaddingCommonHandle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -291,8 +287,7 @@ func TestPaddingCommonHandle(t *testing.T) { } func TestInsertReorgDelete(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -345,8 +340,7 @@ func TestInsertReorgDelete(t *testing.T) { } func TestUpdateDuplicateKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -359,8 +353,7 @@ func TestUpdateDuplicateKey(t *testing.T) { } func TestInsertWrongValueForField(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t1;`) @@ -395,8 +388,7 @@ func TestInsertWrongValueForField(t *testing.T) { } func TestInsertValueForCastDecimalField(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t1;`) @@ -407,8 +399,7 @@ func TestInsertValueForCastDecimalField(t *testing.T) { } func TestInsertDateTimeWithTimeZone(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -511,8 +502,7 @@ func TestInsertDateTimeWithTimeZone(t *testing.T) { } func TestInsertZeroYear(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t1;`) @@ -543,8 +533,7 @@ func TestInsertZeroYear(t *testing.T) { } func TestAllowInvalidDates(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t1, t2, t3, t4;`) @@ -580,8 +569,7 @@ func TestAllowInvalidDates(t *testing.T) { } func TestInsertWithAutoidSchema(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`create table t1(id int primary key auto_increment, n int);`) @@ -1010,8 +998,7 @@ func TestInsertWithAutoidSchema(t *testing.T) { } func TestPartitionInsertOnDuplicate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`create table t1 (a int,b int,primary key(a,b)) partition by range(a) (partition p0 values less than (100),partition p1 values less than (1000))`) @@ -1038,8 +1025,7 @@ func TestPartitionInsertOnDuplicate(t *testing.T) { } func TestBit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`create table t1 (a bit(3))`) @@ -1052,8 +1038,7 @@ func TestBit(t *testing.T) { } func TestAllocateContinuousRowID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`create table t1 (a int,b int, key I_a(a));`) @@ -1090,8 +1075,7 @@ func TestAllocateContinuousRowID(t *testing.T) { } func TestJiraIssue5366(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`create table bug (a varchar(100))`) @@ -1100,8 +1084,7 @@ func TestJiraIssue5366(t *testing.T) { } func TestDMLCast(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`create table t (a int, b double)`) @@ -1119,8 +1102,7 @@ func TestDMLCast(t *testing.T) { } func TestInsertFloatOverflow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t,t1;`) @@ -1141,8 +1123,7 @@ func TestInsertFloatOverflow(t *testing.T) { // (https://dev.mysql.com/doc/refman/8.0/en/replication-options-master.html#sysvar_auto_increment_increment), // This issue is a flaw of the implementation of MySQL and it doesn't exist in TiDB. func TestAutoIDIncrementAndOffset(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) // Test for offset is larger than increment. @@ -1208,8 +1189,7 @@ func TestAutoIDIncrementAndOffset(t *testing.T) { // Fix https://github.com/pingcap/tidb/issues/32601. func TestTextTooLongError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // Set strict sql_mode @@ -1250,8 +1230,7 @@ func TestTextTooLongError(t *testing.T) { } func TestAutoRandomID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists ar`) @@ -1291,8 +1270,7 @@ func TestAutoRandomID(t *testing.T) { } func TestMultiAutoRandomID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists ar`) @@ -1334,8 +1312,7 @@ func TestMultiAutoRandomID(t *testing.T) { } func TestAutoRandomIDAllowZero(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists ar`) @@ -1366,8 +1343,7 @@ func TestAutoRandomIDAllowZero(t *testing.T) { } func TestAutoRandomIDExplicit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@allow_auto_random_explicit_insert = true") @@ -1389,8 +1365,7 @@ func TestAutoRandomIDExplicit(t *testing.T) { } func TestInsertErrorMsg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t`) @@ -1400,8 +1375,7 @@ func TestInsertErrorMsg(t *testing.T) { } func TestIssue16366(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) tk.MustExec(`drop table if exists t;`) @@ -1411,8 +1385,7 @@ func TestIssue16366(t *testing.T) { } func TestClusterPrimaryTablePlainInsert(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -1455,8 +1428,7 @@ func TestClusterPrimaryTablePlainInsert(t *testing.T) { } func TestClusterPrimaryTableInsertIgnore(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -1483,8 +1455,7 @@ func TestClusterPrimaryTableInsertIgnore(t *testing.T) { } func TestClusterPrimaryTableInsertDuplicate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -1517,8 +1488,7 @@ func TestClusterPrimaryTableInsertDuplicate(t *testing.T) { } func TestClusterPrimaryKeyForIndexScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -1565,8 +1535,7 @@ func TestInsertRuntimeStat(t *testing.T) { } func TestDuplicateEntryMessage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") for _, enable := range []variable.ClusteredIndexDefMode{variable.ClusteredIndexDefModeOn, variable.ClusteredIndexDefModeOff, variable.ClusteredIndexDefModeIntOnly} { @@ -1632,8 +1601,7 @@ func TestDuplicateEntryMessage(t *testing.T) { } func TestIssue20768(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -1650,8 +1618,7 @@ func TestIssue20768(t *testing.T) { } func TestIssue10402(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table vctt (v varchar(4), c char(4))") @@ -1688,8 +1655,7 @@ func combination(items []string) func() []string { // TestDuplicatedEntryErr See https://github.com/pingcap/tidb/issues/24582 func TestDuplicatedEntryErr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1;") @@ -1705,8 +1671,7 @@ func TestDuplicatedEntryErr(t *testing.T) { } func TestBinaryLiteralInsertToEnum(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec("drop table if exists bintest") @@ -1717,8 +1682,7 @@ func TestBinaryLiteralInsertToEnum(t *testing.T) { } func TestBinaryLiteralInsertToSet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec("drop table if exists bintest") @@ -1729,8 +1693,7 @@ func TestBinaryLiteralInsertToSet(t *testing.T) { } func TestGlobalTempTableAutoInc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec("drop table if exists temp_test") @@ -1776,8 +1739,7 @@ func TestGlobalTempTableAutoInc(t *testing.T) { } func TestGlobalTempTableRowID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec("drop table if exists temp_test") @@ -1813,8 +1775,7 @@ func TestGlobalTempTableRowID(t *testing.T) { } func TestGlobalTempTableParallel(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec("drop table if exists temp_test") @@ -1845,8 +1806,7 @@ func TestGlobalTempTableParallel(t *testing.T) { } func TestIssue26762(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec("drop table if exists t1;") @@ -1863,8 +1823,7 @@ func TestIssue26762(t *testing.T) { } func TestStringtoDecimal(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1885,8 +1844,7 @@ func TestStringtoDecimal(t *testing.T) { } func TestIssue17745(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec("drop table if exists tt1") @@ -1905,8 +1863,7 @@ func TestIssue17745(t *testing.T) { // TestInsertIssue29892 test the double type with auto_increment problem, just leverage the serial test suite. func TestInsertIssue29892(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) @@ -1935,8 +1892,7 @@ func TestInsertIssue29892(t *testing.T) { // https://github.com/pingcap/tidb/issues/29483. func TestReplaceAllocatingAutoID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists replace_auto_id;") tk.MustExec("create database replace_auto_id;") @@ -1951,8 +1907,7 @@ func TestReplaceAllocatingAutoID(t *testing.T) { } func TestInsertIntoSelectError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1969,8 +1924,7 @@ func TestInsertIntoSelectError(t *testing.T) { // https://github.com/pingcap/tidb/issues/32213. func TestIssue32213(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) diff --git a/executor/inspection_common_test.go b/executor/inspection_common_test.go index ade12a61e6c4b..f4086e587542e 100644 --- a/executor/inspection_common_test.go +++ b/executor/inspection_common_test.go @@ -25,8 +25,7 @@ import ( ) func TestInspectionRules(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) inspectionCount := len(executor.InspectionRules) diff --git a/executor/inspection_result_test.go b/executor/inspection_result_test.go index d53040dcfff8e..67e5d98216b1b 100644 --- a/executor/inspection_result_test.go +++ b/executor/inspection_result_test.go @@ -36,8 +36,7 @@ import ( ) func TestInspectionResult(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -122,8 +121,7 @@ func TestInspectionResult(t *testing.T) { }, } - ctx, cleanup := createInspectionContext(t, mockMetric, mockData) - defer cleanup() + ctx := createInspectionContext(t, mockMetric, mockData) cases := []struct { sql string @@ -186,7 +184,7 @@ func parseTime(t *testing.T, se session.Session, str string) types.Time { return time } -func createInspectionContext(t *testing.T, mockData map[string][][]types.Datum, configurations map[string]variable.TableSnapshot) (context.Context, func()) { +func createInspectionContext(t *testing.T, mockData map[string][][]types.Datum, configurations map[string]variable.TableSnapshot) context.Context { // mock tikv configuration. if configurations == nil { configurations = map[string]variable.TableSnapshot{} @@ -237,15 +235,15 @@ func createInspectionContext(t *testing.T, mockData map[string][][]types.Datum, ctx = failpoint.WithHook(ctx, func(_ context.Context, currName string) bool { return currName == fpName1 || currName == fpName0 }) - return ctx, func() { + t.Cleanup(func() { require.NoError(t, failpoint.Disable(fpName0)) require.NoError(t, failpoint.Disable(fpName1)) - } + }) + return ctx } func TestThresholdCheckInspection(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") datetime := func(str string) types.Time { @@ -289,8 +287,7 @@ func TestThresholdCheckInspection(t *testing.T) { "pd_region_health": {}, } - ctx, cleanup := createInspectionContext(t, mockData, nil) - defer cleanup() + ctx := createInspectionContext(t, mockData, nil) rs, err := tk.Session().Execute(ctx, "select /*+ time_range('2020-02-12 10:35:00','2020-02-12 10:37:00') */ item, type, instance,status_address, value, reference, details from information_schema.inspection_result where rule='threshold-check' order by item") require.NoError(t, err) @@ -337,8 +334,7 @@ func TestThresholdCheckInspection(t *testing.T) { } func TestThresholdCheckInspection2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") datetime := func(s string) types.Time { @@ -396,8 +392,7 @@ func TestThresholdCheckInspection2(t *testing.T) { "pd_region_health": {}, } - ctx, cleanup := createInspectionContext(t, mockData, nil) - defer cleanup() + ctx := createInspectionContext(t, mockData, nil) rs, err := tk.Session().Execute(ctx, "select /*+ time_range('2020-02-12 10:35:00','2020-02-12 10:37:00') */ item, type, instance, status_address, value, reference, details from information_schema.inspection_result where rule='threshold-check' order by item") require.NoError(t, err) @@ -422,8 +417,7 @@ func TestThresholdCheckInspection2(t *testing.T) { } func TestThresholdCheckInspection3(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") datetime := func(s string) types.Time { @@ -459,8 +453,7 @@ func TestThresholdCheckInspection3(t *testing.T) { }, } - ctx, cleanup := createInspectionContext(t, mockData, nil) - defer cleanup() + ctx := createInspectionContext(t, mockData, nil) rs, err := tk.Session().Execute(ctx, `select /*+ time_range('2020-02-14 04:20:00','2020-02-14 05:23:00') */ item, type, instance,status_address, value, reference, details from information_schema.inspection_result @@ -510,8 +503,7 @@ func createClusterGRPCServer(t testing.TB) map[string]*testServer { } func TestCriticalErrorInspection(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -598,8 +590,7 @@ func TestCriticalErrorInspection(t *testing.T) { }, } - ctx, cleanup := createInspectionContext(t, mockData, nil) - defer cleanup() + ctx := createInspectionContext(t, mockData, nil) rs, err := tk.Session().Execute(ctx, "select /*+ time_range('2020-02-12 10:35:00','2020-02-12 10:37:00') */ item, instance,status_address, value, details from information_schema.inspection_result where rule='critical-error'") require.NoError(t, err) @@ -633,8 +624,7 @@ func TestCriticalErrorInspection(t *testing.T) { } func TestNodeLoadInspection(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") datetime := func(s string) types.Time { @@ -689,8 +679,7 @@ func TestNodeLoadInspection(t *testing.T) { }, } - ctx, cleanup := createInspectionContext(t, mockData, nil) - defer cleanup() + ctx := createInspectionContext(t, mockData, nil) rs, err := tk.Session().Execute(ctx, `select /*+ time_range('2020-02-14 04:20:00','2020-02-14 05:23:00') */ item, type, instance, value, reference, details from information_schema.inspection_result @@ -711,8 +700,7 @@ func TestNodeLoadInspection(t *testing.T) { } func TestConfigCheckOfStorageBlockCacheSize(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") datetime := func(s string) types.Time { @@ -740,8 +728,7 @@ func TestConfigCheckOfStorageBlockCacheSize(t *testing.T) { }, } - ctx, cleanup := createInspectionContext(t, mockData, configurations) - defer cleanup() + ctx := createInspectionContext(t, mockData, configurations) rs, err := tk.Session().Execute(ctx, "select /*+ time_range('2020-02-14 04:20:00','2020-02-14 05:23:00') */ * from information_schema.inspection_result where rule='config' and item='storage.block-cache.capacity' order by value") require.NoError(t, err) diff --git a/executor/inspection_summary_test.go b/executor/inspection_summary_test.go index 4b1f1c0819f1c..5a28bbde464b0 100644 --- a/executor/inspection_summary_test.go +++ b/executor/inspection_summary_test.go @@ -42,8 +42,7 @@ func TestValidInspectionSummaryRules(t *testing.T) { } func TestInspectionSummary(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) diff --git a/executor/join_test.go b/executor/join_test.go index eb886bba504bd..a36bfce16374f 100644 --- a/executor/join_test.go +++ b/executor/join_test.go @@ -35,8 +35,7 @@ import ( ) func TestJoinPanic2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set sql_mode = 'ONLY_FULL_GROUP_BY'") @@ -63,8 +62,7 @@ func TestJoinInDisk(t *testing.T) { conf.OOMUseTmpStorage = true }) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("SET GLOBAL tidb_mem_oom_action = DEFAULT") tk.MustExec("SET GLOBAL tidb_mem_oom_action='LOG'") @@ -89,8 +87,7 @@ func TestJoinInDisk(t *testing.T) { } func TestJoin2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_index_lookup_join_concurrency = 200") @@ -348,8 +345,7 @@ func TestJoin2(t *testing.T) { } func TestJoinCast(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) var result *testkit.Result @@ -536,8 +532,7 @@ func TestJoinCast(t *testing.T) { } func TestUsing(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -656,8 +651,7 @@ func TestUsing(t *testing.T) { } func TestUsingAndNaturalJoinSchema(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2, t3, t4") @@ -691,8 +685,7 @@ func TestUsingAndNaturalJoinSchema(t *testing.T) { } func TestNaturalJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -721,8 +714,7 @@ func TestNaturalJoin(t *testing.T) { } func TestMultiJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t35(a35 int primary key, b35 int, x35 int)") @@ -815,8 +807,7 @@ AND b44=a42`) } func TestSubquerySameTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -829,8 +820,7 @@ func TestSubquerySameTable(t *testing.T) { } func TestSubquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_hash_join_concurrency=1") tk.MustExec("set @@tidb_hashagg_partial_concurrency=1") @@ -1070,8 +1060,7 @@ func TestSubquery(t *testing.T) { } func TestInSubquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1139,8 +1128,7 @@ func TestInSubquery(t *testing.T) { } func TestJoinLeak(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_hash_join_concurrency=1") tk.MustExec("use test") @@ -1163,8 +1151,7 @@ func TestJoinLeak(t *testing.T) { } func TestHashJoinExecEncodeDecodeRow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -1178,8 +1165,7 @@ func TestHashJoinExecEncodeDecodeRow(t *testing.T) { } func TestSubqueryInJoinOn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -1194,8 +1180,7 @@ func TestSubqueryInJoinOn(t *testing.T) { } func TestIssue5255(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -1209,8 +1194,7 @@ func TestIssue5255(t *testing.T) { } func TestIssue5278(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, tt") @@ -1221,8 +1205,7 @@ func TestIssue5278(t *testing.T) { } func TestIssue15850JoinNullValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustQuery("SELECT * FROM (select null) v NATURAL LEFT JOIN (select null) v1;").Check(testkit.Rows("")) @@ -1239,8 +1222,7 @@ func TestIssue15850JoinNullValue(t *testing.T) { } func TestIndexLookupJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_init_chunk_size=2") @@ -1429,8 +1411,7 @@ func TestIndexLookupJoin(t *testing.T) { } func TestIndexNestedLoopHashJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_init_chunk_size=2") @@ -1569,8 +1550,7 @@ func TestIndexNestedLoopHashJoin(t *testing.T) { } func TestIssue15686(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, k;") @@ -1584,8 +1564,7 @@ func TestIssue15686(t *testing.T) { } func TestIssue13449(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, s;") @@ -1610,8 +1589,7 @@ func TestIssue13449(t *testing.T) { } func TestMergejoinOrder(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2;") @@ -1657,8 +1635,7 @@ func TestMergejoinOrder(t *testing.T) { } func TestEmbeddedOuterJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -1670,8 +1647,7 @@ func TestEmbeddedOuterJoin(t *testing.T) { } func TestHashJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -1700,8 +1676,7 @@ func TestHashJoin(t *testing.T) { } func TestJoinDifferentDecimals(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("Use test") tk.MustExec("Drop table if exists t1") @@ -1721,8 +1696,7 @@ func TestJoinDifferentDecimals(t *testing.T) { } func TestNullEmptyAwareSemiJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2117,8 +2091,7 @@ func TestNullEmptyAwareSemiJoin(t *testing.T) { } func TestScalarFuncNullSemiJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2135,8 +2108,7 @@ func TestScalarFuncNullSemiJoin(t *testing.T) { } func TestInjectProjOnTopN(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -2150,8 +2122,7 @@ func TestInjectProjOnTopN(t *testing.T) { } func TestIssue11544(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table 11544t(a int)") @@ -2170,8 +2141,7 @@ func TestIssue11544(t *testing.T) { } func TestIssue11390(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table 11390t (k1 int unsigned, k2 int unsigned, key(k1, k2))") @@ -2184,8 +2154,7 @@ func TestIssue11390(t *testing.T) { func TestOuterTableBuildHashTableIsuse13933(t *testing.T) { plannercore.ForceUseOuterBuild4Test = true defer func() { plannercore.ForceUseOuterBuild4Test = false }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, s") @@ -2219,8 +2188,7 @@ func TestOuterTableBuildHashTableIsuse13933(t *testing.T) { } func TestIssue13177(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -2261,8 +2229,7 @@ func TestIssue13177(t *testing.T) { } func TestIssue14514(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2273,8 +2240,7 @@ func TestIssue14514(t *testing.T) { func TestOuterMatchStatusIssue14742(t *testing.T) { plannercore.ForceUseOuterBuild4Test = true defer func() { plannercore.ForceUseOuterBuild4Test = false }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists testjoin;") @@ -2301,8 +2267,7 @@ func TestInlineProjection4HashJoinIssue15316(t *testing.T) { // (2) the projection only contains a part of columns from the build side, i.e., pruning the same probe side plannercore.ForcedHashLeftJoin4Test = true defer func() { plannercore.ForcedHashLeftJoin4Test = false }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists S, T") @@ -2332,8 +2297,7 @@ func TestInlineProjection4HashJoinIssue15316(t *testing.T) { } func TestIssue18070(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("SET GLOBAL tidb_mem_oom_action = DEFAULT") tk.MustExec("SET GLOBAL tidb_mem_oom_action='CANCEL'") @@ -2357,8 +2321,7 @@ func TestIssue18070(t *testing.T) { } func TestIssue18564(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -2371,8 +2334,7 @@ func TestIssue18564(t *testing.T) { // test hash join when enum column got invalid value func TestInvalidEnumVal(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("set sql_mode = '';") @@ -2387,8 +2349,7 @@ func TestInvalidEnumVal(t *testing.T) { } func TestIssue18572_1(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -2409,8 +2370,7 @@ func TestIssue18572_1(t *testing.T) { } func TestIssue18572_2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -2431,8 +2391,7 @@ func TestIssue18572_2(t *testing.T) { } func TestIssue18572_3(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -2453,8 +2412,7 @@ func TestIssue18572_3(t *testing.T) { } func TestApplyOuterAggEmptyInput(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -2477,8 +2435,7 @@ func TestApplyOuterAggEmptyInput(t *testing.T) { } func TestIssue19112(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -2492,8 +2449,7 @@ func TestIssue19112(t *testing.T) { } func TestIssue11896(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2549,8 +2505,7 @@ func TestIssue11896(t *testing.T) { } func TestIssue19498(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2582,8 +2537,7 @@ func TestIssue19498(t *testing.T) { } func TestIssue19500(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1;") @@ -2600,8 +2554,7 @@ func TestIssue19500(t *testing.T) { } func TestExplainAnalyzeJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1,t2;") @@ -2632,8 +2585,7 @@ func TestExplainAnalyzeJoin(t *testing.T) { } func TestIssue20270(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -2660,8 +2612,7 @@ func TestIssue20270(t *testing.T) { } func TestIssue20710(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -2686,8 +2637,7 @@ func TestIssue20710(t *testing.T) { } func TestIssue20779(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -2708,8 +2658,7 @@ func TestIssue20779(t *testing.T) { } func TestIssue20219(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t,s ") @@ -2724,8 +2673,7 @@ func TestIssue20219(t *testing.T) { } func TestIssue25902(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tt1,tt2,tt3; ") @@ -2744,8 +2692,7 @@ func TestIssue25902(t *testing.T) { } func TestIssue30211(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2;") @@ -2776,8 +2723,7 @@ func TestIssue30211(t *testing.T) { } func TestIssue31129(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_init_chunk_size=2") @@ -2827,8 +2773,7 @@ func TestIssue31129(t *testing.T) { } func TestOuterJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2, t3, t4") diff --git a/executor/kvtest/kv_test.go b/executor/kvtest/kv_test.go index bbd665d6f7b98..7c45fccc73a4c 100644 --- a/executor/kvtest/kv_test.go +++ b/executor/kvtest/kv_test.go @@ -22,8 +22,7 @@ import ( ) func TestDropStatsFromKV(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (c1 varchar(20), c2 varchar(20))") diff --git a/executor/memory_test.go b/executor/memory_test.go index 570b0d394d3fa..9fd147ba3d523 100644 --- a/executor/memory_test.go +++ b/executor/memory_test.go @@ -28,8 +28,7 @@ import ( func TestPBMemoryLeak(t *testing.T) { debug.SetGCPercent(1000) defer debug.SetGCPercent(100) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_mem") tk.MustExec("use test_mem") diff --git a/executor/memtable_reader_test.go b/executor/memtable_reader_test.go index d09fb21a31298..870a4193fb3b2 100644 --- a/executor/memtable_reader_test.go +++ b/executor/memtable_reader_test.go @@ -37,8 +37,7 @@ import ( ) func TestMetricTableData(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) fpName := "github.com/pingcap/tidb/executor/mockMetricsPromData" require.NoError(t, failpoint.Enable(fpName, "return")) @@ -99,8 +98,7 @@ func TestMetricTableData(t *testing.T) { } func TestTiDBClusterConfig(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // mock PD http server router := mux.NewRouter() @@ -859,8 +857,7 @@ func TestTiDBClusterLog(t *testing.T) { require.NoError(t, failpoint.Enable(fpName, fmt.Sprintf(`return("%s")`, fpExpr))) defer func() { require.NoError(t, failpoint.Disable(fpName)) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) for _, cas := range cases { sql := "select * from information_schema.cluster_log" @@ -886,8 +883,7 @@ func TestTiDBClusterLog(t *testing.T) { } func TestTiDBClusterLogError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) fpName := "github.com/pingcap/tidb/executor/mockClusterLogServerInfo" require.NoError(t, failpoint.Enable(fpName, `return("")`)) diff --git a/executor/memtest/mem_test.go b/executor/memtest/mem_test.go index 8de13653a47f2..5f3acb4443a7a 100644 --- a/executor/memtest/mem_test.go +++ b/executor/memtest/mem_test.go @@ -24,8 +24,7 @@ import ( func TestGlobalMemoryTrackerOnCleanUp(t *testing.T) { originConsume := executor.GlobalMemoryUsageTracker.BytesConsumed() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") diff --git a/executor/merge_join_test.go b/executor/merge_join_test.go index 2a46243c6e6cc..d89bef11dec18 100644 --- a/executor/merge_join_test.go +++ b/executor/merge_join_test.go @@ -248,8 +248,7 @@ func TestShuffleMergeJoinInDisk(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/testMergeJoinRowContainerSpill")) }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -289,8 +288,7 @@ func TestMergeJoinInDisk(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/testMergeJoinRowContainerSpill")) }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("SET GLOBAL tidb_mem_oom_action = DEFAULT") tk.MustExec("SET GLOBAL tidb_mem_oom_action='LOG'") @@ -319,8 +317,7 @@ func TestMergeJoinInDisk(t *testing.T) { } func TestMergeJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -481,8 +478,7 @@ func TestMergeJoin(t *testing.T) { } func TestShuffleMergeJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_merge_join_concurrency = 4;") @@ -644,8 +640,7 @@ func TestShuffleMergeJoin(t *testing.T) { } func Test3WaysMergeJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -671,8 +666,7 @@ func Test3WaysMergeJoin(t *testing.T) { } func Test3WaysShuffleMergeJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_merge_join_concurrency = 4;") @@ -699,8 +693,7 @@ func Test3WaysShuffleMergeJoin(t *testing.T) { } func TestMergeJoinDifferentTypes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@session.tidb_executor_concurrency = 4;") tk.MustExec("set @@session.tidb_hash_join_concurrency = 5;") @@ -741,8 +734,7 @@ func TestMergeJoinDifferentTypes(t *testing.T) { // //nolint:gosimple // generates false positive fmt.Sprintf warnings which keep aligned func TestVectorizedMergeJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") existTableMap := make(map[string]struct{}) @@ -860,8 +852,7 @@ func TestVectorizedMergeJoin(t *testing.T) { // //nolint:gosimple // generates false positive fmt.Sprintf warnings which keep aligned func TestVectorizedShuffleMergeJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@session.tidb_merge_join_concurrency = 4;") tk.MustExec("use test") @@ -975,8 +966,7 @@ func TestVectorizedShuffleMergeJoin(t *testing.T) { func TestMergeJoinWithOtherConditions(t *testing.T) { // more than one inner tuple should be filtered on other conditions - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists R;`) @@ -994,8 +984,7 @@ func TestMergeJoinWithOtherConditions(t *testing.T) { func TestShuffleMergeJoinWithOtherConditions(t *testing.T) { // more than one inner tuple should be filtered on other conditions - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec("set @@session.tidb_merge_join_concurrency = 4;") diff --git a/executor/metrics_reader_test.go b/executor/metrics_reader_test.go index 46b2bb92666dd..89e25e5443e44 100644 --- a/executor/metrics_reader_test.go +++ b/executor/metrics_reader_test.go @@ -28,8 +28,7 @@ import ( ) func TestStmtLabel(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table label (c1 int primary key, c2 int, c3 int, index (c2))") diff --git a/executor/oomtest/oom_test.go b/executor/oomtest/oom_test.go index 84d9c881b40f2..d989e6ef33e34 100644 --- a/executor/oomtest/oom_test.go +++ b/executor/oomtest/oom_test.go @@ -43,8 +43,7 @@ func TestMain(m *testing.M) { } func TestMemTracker4UpdateExec(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -63,8 +62,7 @@ func TestMemTracker4UpdateExec(t *testing.T) { } func TestMemTracker4InsertAndReplaceExec(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -134,8 +132,7 @@ func TestMemTracker4InsertAndReplaceExec(t *testing.T) { } func TestMemTracker4DeleteExec(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/parallel_apply_test.go b/executor/parallel_apply_test.go index 63e439cbc661f..2c38ac4dedf9f 100644 --- a/executor/parallel_apply_test.go +++ b/executor/parallel_apply_test.go @@ -48,8 +48,7 @@ func checkApplyPlan(t *testing.T, tk *testkit.TestKit, sql string, parallel int) } func TestParallelApplyPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -75,8 +74,7 @@ func TestParallelApplyPlan(t *testing.T) { } func TestApplyColumnType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_parallel_apply=true") @@ -161,8 +159,7 @@ func TestApplyColumnType(t *testing.T) { } func TestApplyMultiColumnType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_parallel_apply=true") @@ -259,8 +256,7 @@ func TestApplyMultiColumnType(t *testing.T) { func TestSetTiDBEnableParallelApply(t *testing.T) { // validate the tidb_enable_parallel_apply's value - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_parallel_apply=0") @@ -278,8 +274,7 @@ func TestSetTiDBEnableParallelApply(t *testing.T) { } func TestMultipleApply(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_parallel_apply=true") @@ -326,8 +321,7 @@ func TestMultipleApply(t *testing.T) { } func TestApplyWithOtherOperators(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_parallel_apply=true") @@ -412,8 +406,7 @@ func TestApplyWithOtherOperators(t *testing.T) { } func TestApplyWithOtherFeatures(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_parallel_apply=true") @@ -471,8 +464,7 @@ func TestApplyWithOtherFeatures(t *testing.T) { } func TestApplyInDML(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_parallel_apply=true") @@ -528,8 +520,7 @@ func TestApplyInDML(t *testing.T) { } func TestApplyConcurrency(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_parallel_apply=true") @@ -564,8 +555,7 @@ func TestApplyConcurrency(t *testing.T) { } func TestApplyCacheRatio(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -607,8 +597,7 @@ func TestApplyCacheRatio(t *testing.T) { } func TestApplyGoroutinePanic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_parallel_apply=true") @@ -638,8 +627,7 @@ func TestApplyGoroutinePanic(t *testing.T) { } func TestIssue24930(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_parallel_apply=true") diff --git a/executor/partition_table_test.go b/executor/partition_table_test.go index 3503bcb9db8f2..b35272e4acead 100644 --- a/executor/partition_table_test.go +++ b/executor/partition_table_test.go @@ -33,8 +33,7 @@ import ( ) func TestFourReader(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -72,8 +71,7 @@ partition p2 values less than (10))`) } func TestPartitionIndexJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -111,8 +109,7 @@ func TestPartitionIndexJoin(t *testing.T) { func TestPartitionUnionScanIndexJoin(t *testing.T) { // For issue https://github.com/pingcap/tidb/issues/19152 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -130,8 +127,7 @@ func TestPartitionUnionScanIndexJoin(t *testing.T) { } func TestPointGetwithRangeAndListPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -205,8 +201,7 @@ func TestPointGetwithRangeAndListPartitionTable(t *testing.T) { } func TestPartitionReaderUnderApply(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -265,8 +260,7 @@ func TestPartitionReaderUnderApply(t *testing.T) { } func TestImproveCoverage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -284,8 +278,7 @@ PRIMARY KEY (pk1,pk2)) partition by hash(pk2) partitions 4;`) } func TestPartitionInfoDisable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -331,8 +324,7 @@ func TestPartitionInfoDisable(t *testing.T) { } func TestOrderByandLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -410,8 +402,7 @@ func TestOrderByandLimit(t *testing.T) { } func TestBatchGetandPointGetwithHashPartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -467,8 +458,7 @@ func TestBatchGetandPointGetwithHashPartition(t *testing.T) { } func TestView(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -539,8 +529,7 @@ func TestView(t *testing.T) { } func TestDirectReadingwithIndexJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -652,8 +641,7 @@ func TestDirectReadingwithIndexJoin(t *testing.T) { } func TestDynamicPruningUnderIndexJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -712,8 +700,7 @@ func TestDynamicPruningUnderIndexJoin(t *testing.T) { } func TestIssue25527(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -751,8 +738,7 @@ func TestIssue25527(t *testing.T) { } func TestIssue25598(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -778,8 +764,7 @@ func TestIssue25598(t *testing.T) { } func TestBatchGetforRangeandListPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -881,8 +866,7 @@ func TestBatchGetforRangeandListPartitionTable(t *testing.T) { } func TestGlobalStatsAndSQLBinding(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -959,8 +943,7 @@ func TestGlobalStatsAndSQLBinding(t *testing.T) { } func TestPartitionTableWithDifferentJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1211,8 +1194,7 @@ type testData4Expression struct { } func TestDateColWithUnequalExpression(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1246,8 +1228,7 @@ func TestDateColWithUnequalExpression(t *testing.T) { } func TestToDaysColWithExpression(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1281,8 +1262,7 @@ func TestToDaysColWithExpression(t *testing.T) { } func TestWeekdayWithExpression(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1320,8 +1300,7 @@ func TestWeekdayWithExpression(t *testing.T) { } func TestFloorUnixTimestampAndIntColWithExpression(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1355,8 +1334,7 @@ func TestFloorUnixTimestampAndIntColWithExpression(t *testing.T) { } func TestUnixTimestampAndIntColWithExpression(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1390,8 +1368,7 @@ func TestUnixTimestampAndIntColWithExpression(t *testing.T) { } func TestDatetimeColAndIntColWithExpression(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1425,8 +1402,7 @@ func TestDatetimeColAndIntColWithExpression(t *testing.T) { } func TestVarcharColAndIntColWithExpression(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1464,8 +1440,7 @@ func TestVarcharColAndIntColWithExpression(t *testing.T) { } func TestDynamicPruneModeWithExpression(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1756,8 +1731,7 @@ func TestDynamicPruneModeWithExpression(t *testing.T) { } func TestAddDropPartitions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1790,8 +1764,7 @@ func TestAddDropPartitions(t *testing.T) { } func TestMPPQueryExplainInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1820,8 +1793,7 @@ func TestMPPQueryExplainInfo(t *testing.T) { } func TestPartitionPruningInTransaction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1845,8 +1817,7 @@ func TestPartitionPruningInTransaction(t *testing.T) { } func TestIssue25253(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1880,8 +1851,7 @@ func TestIssue25253(t *testing.T) { } func TestDML(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1941,8 +1911,7 @@ func TestDML(t *testing.T) { } func TestUnion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1992,8 +1961,7 @@ func TestUnion(t *testing.T) { } func TestSubqueries(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2058,8 +2026,7 @@ func TestSubqueries(t *testing.T) { } func TestSplitRegion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2095,8 +2062,7 @@ func TestSplitRegion(t *testing.T) { } func TestParallelApply(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2235,8 +2201,7 @@ func TestParallelApply(t *testing.T) { } func TestDirectReadingWithUnionScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2310,8 +2275,7 @@ func TestDirectReadingWithUnionScan(t *testing.T) { } func TestIssue25030(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2339,8 +2303,7 @@ func TestIssue25030(t *testing.T) { } func TestUnsignedPartitionColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2463,8 +2426,7 @@ func TestUnsignedPartitionColumn(t *testing.T) { } func TestDirectReadingWithAgg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2607,8 +2569,7 @@ func TestDirectReadingWithAgg(t *testing.T) { } func TestDynamicModeByDefault(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2631,8 +2592,7 @@ func TestDynamicModeByDefault(t *testing.T) { } func TestIssue24636(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2671,8 +2631,7 @@ func TestIssue24636(t *testing.T) { } func TestIdexMerge(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2766,8 +2725,7 @@ func TestIdexMerge(t *testing.T) { } func TestIssue25309(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2806,8 +2764,7 @@ func TestIssue25309(t *testing.T) { } func TestGlobalIndexScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) restoreConfig := config.RestoreFunc() @@ -2827,8 +2784,7 @@ partition p2 values less than (10))`) } func TestGlobalIndexDoubleRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) restoreConfig := config.RestoreFunc() @@ -2848,8 +2804,7 @@ partition p2 values less than (10))`) } func TestIssue20028(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2878,8 +2833,7 @@ partition p3 values less than maxvalue)`) } func TestSelectLockOnPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3012,8 +2966,7 @@ partition p2 values less than (11))`) } func TestIssue21731(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3056,8 +3009,7 @@ func verifyPartitionResult(tk *testkit.TestKit, input []string, output []testOut } func TestRangePartitionBoundariesEq(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3081,8 +3033,7 @@ PARTITION BY RANGE (a) ( } func TestRangePartitionBoundariesNe(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3109,8 +3060,7 @@ PARTITION BY RANGE (a) ( } func TestRangePartitionBoundariesBetweenM(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3132,8 +3082,7 @@ PARTITION BY RANGE (a) ( } func TestRangePartitionBoundariesBetweenS(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3159,8 +3108,7 @@ PARTITION BY RANGE (a) ( } func TestRangePartitionBoundariesLtM(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3183,8 +3131,7 @@ PARTITION BY RANGE (a) ( } func TestRangePartitionBoundariesLtS(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3211,8 +3158,7 @@ PARTITION BY RANGE (a) ( } func TestIssue25528(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_partition_prune_mode = 'static'") @@ -3229,8 +3175,7 @@ func TestIssue25528(t *testing.T) { } func TestIssue26251(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) restoreConfig := config.RestoreFunc() @@ -3273,8 +3218,7 @@ func TestIssue26251(t *testing.T) { } func TestLeftJoinForUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("create database TestLeftJoinForUpdate") @@ -3358,8 +3302,7 @@ func TestLeftJoinForUpdate(t *testing.T) { } func TestIssue31024(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("create database TestIssue31024") @@ -3404,8 +3347,7 @@ func TestIssue31024(t *testing.T) { } func TestIssue27346(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("create database TestIssue27346") @@ -3433,8 +3375,7 @@ func TestIssue27346(t *testing.T) { } func TestPartitionTableExplain(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database TestPartitionTableExplain") @@ -3601,8 +3542,7 @@ func TestPartitionTableExplain(t *testing.T) { } func TestIssue35181(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database TestIssue35181") diff --git a/executor/point_get_test.go b/executor/point_get_test.go index 3b68a291f6057..bb8523959d720 100644 --- a/executor/point_get_test.go +++ b/executor/point_get_test.go @@ -39,8 +39,7 @@ import ( ) func TestPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table point (id int primary key, c int, d varchar(10), unique c_d (c, d))") @@ -82,8 +81,7 @@ func TestPointGet(t *testing.T) { } func TestPointGetOverflow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t0") @@ -103,8 +101,7 @@ func TestPointGetOverflow(t *testing.T) { // Close issue #22839 func TestPointGetDataTooLong(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists PK_1389;") @@ -124,8 +121,7 @@ func TestPointGetDataTooLong(t *testing.T) { // issue #25489 func TestIssue25489(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_partition_prune_mode = 'dynamic'") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -175,8 +171,7 @@ func TestIssue25489(t *testing.T) { // issue #25320 func TestDistinctPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists test_distinct;") @@ -190,8 +185,7 @@ func TestDistinctPlan(t *testing.T) { } func TestPointGetBinaryPK(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) tk.MustExec(`drop table if exists t;`) @@ -215,8 +209,7 @@ func TestPointGetBinaryPK(t *testing.T) { } func TestPointGetAliasTableBinaryPK(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) tk.MustExec(`drop table if exists t;`) @@ -240,8 +233,7 @@ func TestPointGetAliasTableBinaryPK(t *testing.T) { } func TestIndexLookupBinary(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) tk.MustExec(`drop table if exists t;`) @@ -272,8 +264,7 @@ func TestIndexLookupBinary(t *testing.T) { } func TestOverflowOrTruncated(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t6 (id bigint, a bigint, primary key(id), unique key(a));") @@ -289,8 +280,7 @@ func TestOverflowOrTruncated(t *testing.T) { } func TestIssue10448(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -332,8 +322,7 @@ func TestIssue10448(t *testing.T) { } func TestIssue10677(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -352,8 +341,7 @@ func TestIssue10677(t *testing.T) { } func TestForUpdateRetry(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") tk := testkit.NewTestKit(t, store) @@ -374,8 +362,7 @@ func TestForUpdateRetry(t *testing.T) { } func TestPointGetByRowID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -387,8 +374,7 @@ func TestPointGetByRowID(t *testing.T) { } func TestPointGetBinaryLiteralString(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -398,8 +384,7 @@ func TestPointGetBinaryLiteralString(t *testing.T) { } func TestSelectCheckVisibility(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -433,8 +418,7 @@ func TestSelectCheckVisibility(t *testing.T) { } func TestReturnValues(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -459,8 +443,7 @@ func TestReturnValues(t *testing.T) { } func TestClusterIndexPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -484,8 +467,7 @@ func TestClusterIndexPointGet(t *testing.T) { } func TestClusterIndexCBOPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -526,8 +508,7 @@ func TestMemCacheReadLock(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.EnableTableLock = true }) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -612,8 +593,7 @@ func TestPartitionMemCacheReadLock(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.EnableTableLock = true }) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -655,8 +635,7 @@ func TestPointGetWriteLock(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.EnableTableLock = true }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table point (id int primary key, c int, d varchar(10), unique c_d (c, d))") @@ -686,8 +665,7 @@ func TestPointGetWriteLock(t *testing.T) { func TestPointGetLockExistKey(t *testing.T) { testLock := func(rc bool, key string, tableName string) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1, tk2 := testkit.NewTestKit(t, store), testkit.NewTestKit(t, store) tk1.MustExec("use test") @@ -802,8 +780,7 @@ func TestPointGetLockExistKey(t *testing.T) { func TestWithTiDBSnapshot(t *testing.T) { // Fix issue https://github.com/pingcap/tidb/issues/22436 // Point get should not use math.MaxUint64 when variable @@tidb_snapshot is set. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists xx") @@ -835,8 +812,7 @@ func TestWithTiDBSnapshot(t *testing.T) { } func TestPointGetIssue25167(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") diff --git a/executor/prepared_test.go b/executor/prepared_test.go index 8f3ad5882ff39..e8fe2adf53a28 100644 --- a/executor/prepared_test.go +++ b/executor/prepared_test.go @@ -36,8 +36,7 @@ import ( ) func TestPreparedNameResolver(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -52,8 +51,7 @@ func TestPreparedNameResolver(t *testing.T) { // a 'create table' DDL statement should be accepted if it has no parameters. func TestPreparedDDL(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -62,8 +60,7 @@ func TestPreparedDDL(t *testing.T) { // TestUnsupportedStmtForPrepare is related to https://github.com/pingcap/tidb/issues/17412 func TestUnsupportedStmtForPrepare(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`prepare stmt0 from "create table t0(a int primary key)"`) @@ -73,8 +70,7 @@ func TestUnsupportedStmtForPrepare(t *testing.T) { } func TestIgnorePlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -132,8 +128,7 @@ func (sm *mockSessionManager2) GetInternalSessionStartTSList() []uint64 { func TestPreparedStmtWithHint(t *testing.T) { // see https://github.com/pingcap/tidb/issues/18535 - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -151,8 +146,7 @@ func TestPreparedStmtWithHint(t *testing.T) { } func TestPreparedNullParam(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -181,8 +175,7 @@ func TestPreparedNullParam(t *testing.T) { } func TestIssue29850(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { @@ -254,8 +247,7 @@ func TestIssue29850(t *testing.T) { } func TestIssue28064(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -297,8 +289,7 @@ func TestIssue28064(t *testing.T) { } func TestPreparePlanCache4Blacklist(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -383,8 +374,7 @@ func TestPreparePlanCache4Blacklist(t *testing.T) { } func TestPlanCacheClusterIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -499,8 +489,7 @@ func TestPlanCacheClusterIndex(t *testing.T) { } func TestPlanCacheWithDifferentVariableTypes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -585,8 +574,7 @@ func TestPlanCacheWithDifferentVariableTypes(t *testing.T) { } func TestPlanCacheOperators(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -923,8 +911,7 @@ func TestPlanCacheOperators(t *testing.T) { } func TestIssue28782(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -945,8 +932,7 @@ func TestIssue28782(t *testing.T) { } func TestIssue29101(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -1021,8 +1007,7 @@ func TestIssue29101(t *testing.T) { } func TestIssue28087And28162(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -1059,8 +1044,7 @@ func TestIssue28087And28162(t *testing.T) { } func TestParameterPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -1113,8 +1097,7 @@ func TestParameterPushDown(t *testing.T) { } func TestPreparePlanCache4Function(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -1152,8 +1135,7 @@ func TestPreparePlanCache4Function(t *testing.T) { } func TestPreparePlanCache4DifferentSystemVars(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -1267,8 +1249,7 @@ func TestPreparePlanCache4DifferentSystemVars(t *testing.T) { } func TestTemporaryTable4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -1293,8 +1274,7 @@ func TestTemporaryTable4PlanCache(t *testing.T) { } func TestPrepareStmtAfterIsolationReadChange(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -1342,8 +1322,7 @@ func TestPrepareStmtAfterIsolationReadChange(t *testing.T) { } func TestPreparePC4Binding(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -1376,8 +1355,7 @@ func TestPreparePC4Binding(t *testing.T) { } func TestIssue31141(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) diff --git a/executor/recover_table_test.go b/executor/recover_table_test.go index 044b899c18160..37784d92a9dd1 100644 --- a/executor/recover_table_test.go +++ b/executor/recover_table_test.go @@ -34,8 +34,7 @@ func TestRecoverTable(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_recover") tk.MustExec("use test_recover") @@ -125,8 +124,7 @@ func TestFlashbackTable(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_flashback") @@ -237,8 +235,7 @@ func TestFlashbackTable(t *testing.T) { } func TestRecoverTempTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_recover") @@ -264,8 +261,7 @@ func TestRecoverTempTable(t *testing.T) { } func TestRecoverTableMeetError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@GLOBAL.tidb_ddl_error_count_limit=3") tk.MustExec("create database if not exists test_recover") diff --git a/executor/resource_tag_test.go b/executor/resource_tag_test.go index db59828aa72be..a311bcb15b4e6 100644 --- a/executor/resource_tag_test.go +++ b/executor/resource_tag_test.go @@ -34,8 +34,7 @@ import ( ) func TestResourceGroupTag(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/revoke_test.go b/executor/revoke_test.go index 92cd7d79517b6..c0646af7e1abe 100644 --- a/executor/revoke_test.go +++ b/executor/revoke_test.go @@ -27,8 +27,7 @@ import ( ) func TestRevokeGlobal(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) _, err := tk.Exec(`REVOKE ALL PRIVILEGES ON *.* FROM 'nonexistuser'@'host'`) @@ -57,8 +56,7 @@ func TestRevokeGlobal(t *testing.T) { } func TestRevokeDBScope(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Create a new user. tk.MustExec(`CREATE USER 'testDBRevoke'@'localhost' IDENTIFIED BY '123';`) @@ -79,8 +77,7 @@ func TestRevokeDBScope(t *testing.T) { } func TestRevokeTableScope(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Create a new user. tk.MustExec(`CREATE USER 'testTblRevoke'@'localhost' IDENTIFIED BY '123';`) @@ -120,8 +117,7 @@ func TestRevokeTableScope(t *testing.T) { } func TestRevokeColumnScope(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Create a new user. tk.MustExec(`CREATE USER 'testColRevoke'@'localhost' IDENTIFIED BY '123';`) @@ -165,8 +161,7 @@ func TestRevokeColumnScope(t *testing.T) { } func TestRevokeDynamicPrivs(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("DROP USER if exists dyn") @@ -208,8 +203,7 @@ func TestRevokeDynamicPrivs(t *testing.T) { func TestRevokeOnNonExistTable(t *testing.T) { // issue #28533 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE d1;") diff --git a/executor/rowid_test.go b/executor/rowid_test.go index 6a32fb6086977..d6c92cb8ae945 100644 --- a/executor/rowid_test.go +++ b/executor/rowid_test.go @@ -23,8 +23,7 @@ import ( ) func TestExportRowID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.Session().GetSessionVars().AllowWriteRowID = true defer func() { @@ -69,8 +68,7 @@ func TestExportRowID(t *testing.T) { } func TestNotAllowWriteRowID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeIntOnly @@ -99,8 +97,7 @@ func TestNotAllowWriteRowID(t *testing.T) { // Test for https://github.com/pingcap/tidb/issues/22029. func TestExplicitInsertRowID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_explicit_insert_rowid;") tk.MustExec("create database test_explicit_insert_rowid;") diff --git a/executor/sample_test.go b/executor/sample_test.go index 4a1ec83c818e0..19183c235fcc2 100644 --- a/executor/sample_test.go +++ b/executor/sample_test.go @@ -38,8 +38,7 @@ func createSampleTestkit(t *testing.T, store kv.Storage) *testkit.TestKit { } func TestTableSampleBasic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.MustExec("create table t (a int);") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -70,8 +69,7 @@ func TestTableSampleBasic(t *testing.T) { } func TestTableSampleMultiRegions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.MustExec("create table t (a int) shard_row_id_bits = 2 pre_split_regions = 2;") for i := 0; i < 100; i++ { @@ -93,8 +91,7 @@ func TestTableSampleMultiRegions(t *testing.T) { } func TestTableSampleNoSplitTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) atomic.StoreUint32(&ddl.EnableSplitTableRegion, 0) tk.MustExec("drop table if exists t1;") @@ -109,8 +106,7 @@ func TestTableSampleNoSplitTable(t *testing.T) { } func TestTableSamplePlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.MustExec("drop table if exists t;") tk.MustExec("create table t (a bigint, b int default 10);") @@ -123,8 +119,7 @@ func TestTableSamplePlan(t *testing.T) { } func TestTableSampleSchema(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn // Clustered index @@ -155,8 +150,7 @@ func TestTableSampleSchema(t *testing.T) { } func TestTableSampleInvalid(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.MustExec("create table t (a int, b varchar(255));") tk.MustExec("insert into t values (1, 'abc');") @@ -171,8 +165,7 @@ func TestTableSampleInvalid(t *testing.T) { } func TestTableSampleWithTiDBRowID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.MustExec("create table t (a int, b varchar(255));") tk.MustExec("insert into t values (1, 'abc');") @@ -183,8 +176,7 @@ func TestTableSampleWithTiDBRowID(t *testing.T) { } func TestTableSampleWithPartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.MustExec("create table t (a int, b varchar(255), primary key (a)) partition by hash(a) partitions 2;") tk.MustExec("insert into t values (1, '1'), (2, '2'), (3, '3');") @@ -211,8 +203,7 @@ func TestTableSampleWithPartition(t *testing.T) { } func TestTableSampleGeneratedColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.MustExec("create table t (a int primary key, b int as (a + 1), c int as (b + 1), d int as (c + 1));") tk.MustQuery("split table t between (0) and (10000) regions 4;").Check(testkit.Rows("3 1")) @@ -228,8 +219,7 @@ func TestTableSampleGeneratedColumns(t *testing.T) { } func TestTableSampleUnionScanIgnorePendingKV(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.MustExec("create table t (a int primary key);") tk.MustQuery("split table t between (0) and (40000) regions 4;").Check(testkit.Rows("3 1")) @@ -248,8 +238,7 @@ func TestTableSampleUnionScanIgnorePendingKV(t *testing.T) { } func TestTableSampleTransactionConsistency(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk2 := createSampleTestkit(t, store) @@ -266,8 +255,7 @@ func TestTableSampleTransactionConsistency(t *testing.T) { } func TestTableSampleNotSupportedPlanWarning(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.MustExec("create table t (a int primary key, b int, c varchar(255));") tk.MustQuery("split table t between (0) and (10000) regions 5;").Check(testkit.Rows("4 1")) @@ -282,8 +270,7 @@ func TestTableSampleNotSupportedPlanWarning(t *testing.T) { } func TestMaxChunkSize(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createSampleTestkit(t, store) tk.MustExec("create table t (a int) shard_row_id_bits = 2 pre_split_regions = 2;") for i := 0; i < 100; i++ { diff --git a/executor/select_into_test.go b/executor/select_into_test.go index 57b2f790a83bb..7ed460bcd7ebe 100644 --- a/executor/select_into_test.go +++ b/executor/select_into_test.go @@ -45,8 +45,7 @@ func TestSelectIntoFileExists(t *testing.T) { defer func() { require.NoError(t, os.Remove(outfile)) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) sql := fmt.Sprintf("select 1 into outfile %q", outfile) tk.MustExec(sql) @@ -58,8 +57,7 @@ func TestSelectIntoFileExists(t *testing.T) { func TestSelectIntoOutfileTypes(t *testing.T) { outfile := randomSelectFilePath("TestSelectIntoOutfileTypes") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -104,8 +102,7 @@ func TestSelectIntoOutfileTypes(t *testing.T) { func TestSelectIntoOutfileFromTable(t *testing.T) { outfile := randomSelectFilePath("TestSelectIntoOutfileFromTable") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -151,8 +148,7 @@ func TestSelectIntoOutfileFromTable(t *testing.T) { func TestSelectIntoOutfileConstant(t *testing.T) { outfile := randomSelectFilePath("TestSelectIntoOutfileConstant") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // On windows the outfile name looks like "C:\Users\genius\AppData\Local\Temp\select-into-outfile.data", // fmt.Sprintf("%q") is used otherwise the string become @@ -168,8 +164,7 @@ func TestSelectIntoOutfileConstant(t *testing.T) { func TestDeliminators(t *testing.T) { outfile := randomSelectFilePath("TestDeliminators") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -263,8 +258,7 @@ func TestDumpReal(t *testing.T) { func TestEscapeType(t *testing.T) { outfile := randomSelectFilePath("TestEscapeType") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -285,8 +279,7 @@ func TestEscapeType(t *testing.T) { func TestYearType(t *testing.T) { outfile := randomSelectFilePath("TestYearType") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") diff --git a/executor/seqtest/prepared_test.go b/executor/seqtest/prepared_test.go index 88e4cd5a2b4e0..db25f96cdf5a0 100644 --- a/executor/seqtest/prepared_test.go +++ b/executor/seqtest/prepared_test.go @@ -39,8 +39,7 @@ import ( ) func TestPrepared(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { @@ -293,8 +292,7 @@ func TestPrepared(t *testing.T) { } func TestPreparedLimitOffset(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -336,8 +334,7 @@ func TestPreparedLimitOffset(t *testing.T) { } func TestPreparedNullParam(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -378,8 +375,7 @@ func TestPreparedNullParam(t *testing.T) { } func TestPrepareWithAggregation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -411,8 +407,7 @@ func TestPrepareWithAggregation(t *testing.T) { } func TestPreparedIssue7579(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -460,8 +455,7 @@ func TestPreparedIssue7579(t *testing.T) { } func TestPreparedInsert(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -547,8 +541,7 @@ func TestPreparedInsert(t *testing.T) { } func TestPreparedUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -608,8 +601,7 @@ func TestPreparedUpdate(t *testing.T) { } func TestIssue21884(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -634,8 +626,7 @@ func TestIssue21884(t *testing.T) { } func TestPreparedDelete(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -695,8 +686,7 @@ func TestPreparedDelete(t *testing.T) { } func TestPrepareDealloc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -749,8 +739,7 @@ func TestPrepareDealloc(t *testing.T) { } func TestPreparedIssue8153(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -805,8 +794,7 @@ func TestPreparedIssue8153(t *testing.T) { } func TestPreparedIssue8644(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { plannercore.SetPreparedPlanCache(orgEnable) @@ -901,8 +889,7 @@ func (msm *mockSessionManager1) GetInternalSessionStartTSList() []uint64 { } func TestPreparedIssue17419(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) ctx := context.Background() tk := testkit.NewTestKit(t, store) diff --git a/executor/seqtest/seq_executor_test.go b/executor/seqtest/seq_executor_test.go index 8f8bf2e543a03..9eb337dc31a17 100644 --- a/executor/seqtest/seq_executor_test.go +++ b/executor/seqtest/seq_executor_test.go @@ -60,11 +60,10 @@ import ( func TestEarlyClose(t *testing.T) { var cluster testutils.Cluster - store, dom, clean := testkit.CreateMockStoreAndDomain(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithSingleStore(c) cluster = c })) - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -128,8 +127,7 @@ func (s stats) Stats(_ *variable.SessionVars) (map[string]interface{}, error) { } func TestShow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -603,8 +601,7 @@ func TestShow(t *testing.T) { } func TestShowStatsHealthy(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -638,8 +635,7 @@ func TestShowStatsHealthy(t *testing.T) { // TestIndexDoubleReadClose checks that when a index double read returns before reading all the rows, the goroutine doesn't // leak. For testing distsql with multiple regions, we need to manually split a mock TiKV. func TestIndexDoubleReadClose(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) if _, ok := store.GetClient().(*copr.CopClient); !ok { // Make sure the store is tikv store. @@ -675,8 +671,7 @@ func TestIndexDoubleReadClose(t *testing.T) { // TestIndexMergeReaderClose checks that when a partial index worker failed to start, the goroutine doesn't // leak. func TestIndexMergeReaderClose(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -694,8 +689,7 @@ func TestIndexMergeReaderClose(t *testing.T) { } func TestParallelHashAggClose(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t`) @@ -722,8 +716,7 @@ func TestParallelHashAggClose(t *testing.T) { } func TestUnparallelHashAggClose(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t`) @@ -756,8 +749,7 @@ func checkGoroutineExists(keyword string) bool { } func TestAdminShowNextID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) HelperTestAdminShowNextID(t, store, `admin show `) HelperTestAdminShowNextID(t, store, `show table `) @@ -851,8 +843,7 @@ func HelperTestAdminShowNextID(t *testing.T, store kv.Storage, str string) { } func TestNoHistoryWhenDisableRetry(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -893,8 +884,7 @@ func TestNoHistoryWhenDisableRetry(t *testing.T) { } func TestPrepareMaxParamCountCheck(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -921,8 +911,7 @@ func generateBatchSQL(paramCount int) (sql string, paramSlice []interface{}) { } func TestCartesianProduct(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -939,8 +928,7 @@ func TestCartesianProduct(t *testing.T) { } func TestBatchInsertDelete(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) originLimit := atomic.LoadUint64(&kv.TxnTotalSizeLimit) defer func() { @@ -1107,11 +1095,10 @@ func (c *checkPrioClient) SendRequest(ctx context.Context, addr string, req *tik func TestCoprocessorPriority(t *testing.T) { cli := &checkPrioClient{} - store, clean := testkit.CreateMockStore(t, mockstore.WithClientHijacker(func(c tikv.Client) tikv.Client { + store := testkit.CreateMockStore(t, mockstore.WithClientHijacker(func(c tikv.Client) tikv.Client { cli.Client = c return cli })) - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1197,8 +1184,7 @@ func TestCoprocessorPriority(t *testing.T) { } func TestShowForNewCollations(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) expectRows := testkit.Rows( @@ -1219,8 +1205,7 @@ func TestShowForNewCollations(t *testing.T) { } func TestForbidUnsupportedCollations(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) mustGetUnsupportedCollation := func(sql string, coll string) { @@ -1239,8 +1224,7 @@ func TestForbidUnsupportedCollations(t *testing.T) { } func TestAutoIncIDInRetry(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -1264,8 +1248,7 @@ func TestAutoIncIDInRetry(t *testing.T) { } func TestPessimisticConflictRetryAutoID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1301,8 +1284,7 @@ func TestPessimisticConflictRetryAutoID(t *testing.T) { } func TestInsertFromSelectConflictRetryAutoID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1353,8 +1335,7 @@ func TestInsertFromSelectConflictRetryAutoID(t *testing.T) { } func TestAutoRandIDRetry(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -1401,8 +1382,7 @@ func TestAutoRandIDRetry(t *testing.T) { } func TestAutoRandRecoverTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test_recover") @@ -1453,8 +1433,7 @@ func TestAutoRandRecoverTable(t *testing.T) { } func TestMaxDeltaSchemaCount(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1482,8 +1461,7 @@ func TestMaxDeltaSchemaCount(t *testing.T) { } func TestOOMPanicInHashJoinWhenFetchBuildRows(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1500,8 +1478,7 @@ func TestOOMPanicInHashJoinWhenFetchBuildRows(t *testing.T) { } func TestIssue18744(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -1550,8 +1527,7 @@ func TestIssue18744(t *testing.T) { } func TestIssue19410(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1575,8 +1551,7 @@ func TestIssue19410(t *testing.T) { } func TestAnalyzeNextRawErrorNoLeak(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/set_test.go b/executor/set_test.go index 75b6f92f6ae78..b0752cb4244ff 100644 --- a/executor/set_test.go +++ b/executor/set_test.go @@ -42,8 +42,7 @@ import ( ) func TestSetVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("SET @a = 1;") tk.MustExec(`SET @a = "1";`) @@ -754,8 +753,7 @@ func TestSetVar(t *testing.T) { } func TestGetSetNoopVars(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // By default you can get/set noop sysvars without issue. @@ -779,8 +777,7 @@ func TestGetSetNoopVars(t *testing.T) { } func TestTruncateIncorrectIntSessionVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) testCases := []struct { @@ -812,8 +809,7 @@ func TestTruncateIncorrectIntSessionVar(t *testing.T) { } func TestSetCharset(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) sessionVars := tk.Session().GetSessionVars() @@ -914,8 +910,7 @@ func TestSetCharset(t *testing.T) { } func TestSetCollationAndCharset(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") ctx := tk.Session().(sessionctx.Context) @@ -959,8 +954,7 @@ func TestSetCollationAndCharset(t *testing.T) { } func TestValidateSetVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) err := tk.ExecToErr("set global tidb_distsql_scan_concurrency='fff';") @@ -1347,8 +1341,7 @@ func TestValidateSetVar(t *testing.T) { } func TestSelectGlobalVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select @@global.max_connections;").Check(testkit.Rows("0")) @@ -1369,8 +1362,7 @@ func TestSelectGlobalVar(t *testing.T) { } func TestSetConcurrency(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test default value @@ -1469,8 +1461,7 @@ func TestSetConcurrency(t *testing.T) { } func TestEnableNoopFunctionsVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer func() { @@ -1576,8 +1567,7 @@ func TestEnableNoopFunctionsVar(t *testing.T) { // https://github.com/pingcap/tidb/issues/29670 func TestDefaultBehavior(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("SELECT @@default_storage_engine").Check(testkit.Rows("InnoDB")) @@ -1602,8 +1592,7 @@ func TestDefaultBehavior(t *testing.T) { } func TestTiDBReadOnly(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // turn on tidb_restricted_read_only should turn on tidb_super_read_only @@ -1626,8 +1615,7 @@ func TestTiDBReadOnly(t *testing.T) { } func TestRemovedSysVars(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test for tidb_enable_noop_functions @@ -1644,8 +1632,7 @@ func TestRemovedSysVars(t *testing.T) { } func TestSetClusterConfig(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1738,8 +1725,7 @@ func TestSetTopSQLVariables(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/domain/skipLoadSysVarCacheLoop")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@global.tidb_enable_top_sql='On';") tk.MustQuery("select @@global.tidb_enable_top_sql;").Check(testkit.Rows("1")) @@ -1783,8 +1769,7 @@ func TestSetTopSQLVariables(t *testing.T) { } func TestPreparePlanCacheValid(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("SET GLOBAL tidb_prepared_plan_cache_size = 0") @@ -1821,8 +1806,7 @@ func TestPreparePlanCacheValid(t *testing.T) { } func TestInstanceScopeSwitching(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1837,8 +1821,7 @@ func TestInstanceScopeSwitching(t *testing.T) { } func TestGcMaxWaitTime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1853,8 +1836,7 @@ func TestGcMaxWaitTime(t *testing.T) { } func TestTiFlashFineGrainedShuffle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/show_placement_test.go b/executor/show_placement_test.go index 61279c7adfc79..4d6b4ff1692d7 100644 --- a/executor/show_placement_test.go +++ b/executor/show_placement_test.go @@ -26,8 +26,7 @@ import ( ) func TestShowPlacement(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -110,8 +109,7 @@ func TestShowPlacement(t *testing.T) { } func TestShowPlacementPrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1,t2,t3, db2.t1, db2.t3") @@ -176,8 +174,7 @@ func TestShowPlacementPrivilege(t *testing.T) { } func TestShowPlacementForDB(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -203,8 +200,7 @@ func TestShowPlacementForDB(t *testing.T) { } func TestShowPlacementForTableAndPartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop placement policy if exists p1") @@ -283,8 +279,7 @@ func TestShowPlacementForTableAndPartition(t *testing.T) { } func TestShowPlacementForDBPrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -365,8 +360,7 @@ func TestShowPlacementForDBPrivilege(t *testing.T) { } func TestShowPlacementForTableAndPartitionPrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1,t2,t3,t4,db2.t1") diff --git a/executor/show_stats_test.go b/executor/show_stats_test.go index 698faa5934929..d46a793530976 100644 --- a/executor/show_stats_test.go +++ b/executor/show_stats_test.go @@ -27,8 +27,7 @@ import ( ) func TestShowStatsMeta(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -46,8 +45,7 @@ func TestShowStatsMeta(t *testing.T) { } func TestShowStatsHistograms(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -77,8 +75,7 @@ func TestShowStatsHistograms(t *testing.T) { } func TestShowStatsBuckets(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -123,8 +120,7 @@ func TestShowStatsBuckets(t *testing.T) { } func TestShowStatsHasNullValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -188,8 +184,7 @@ func TestShowStatsHasNullValue(t *testing.T) { } func TestShowPartitionStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) testkit.WithPruneMode(tk, variable.Static, func() { @@ -228,8 +223,7 @@ func TestShowPartitionStats(t *testing.T) { } func TestShowStatusSnapshot(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test;") @@ -256,8 +250,7 @@ func TestShowStatusSnapshot(t *testing.T) { } func TestShowStatsExtended(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) dom.StatsHandle().Clear() @@ -310,8 +303,7 @@ func TestShowStatsExtended(t *testing.T) { } func TestShowColumnStatsUsage(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -343,8 +335,7 @@ func TestShowColumnStatsUsage(t *testing.T) { } func TestShowAnalyzeStatus(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("delete from mysql.analyze_jobs") diff --git a/executor/showtest/show_test.go b/executor/showtest/show_test.go index 83ee9b5cfa8a1..22fa53917515c 100644 --- a/executor/showtest/show_test.go +++ b/executor/showtest/show_test.go @@ -37,8 +37,7 @@ import ( ) func TestShowHistogramsInFlight(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -49,16 +48,14 @@ func TestShowHistogramsInFlight(t *testing.T) { } func TestShowOpenTables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("show open tables") tk.MustQuery("show open tables in test") } func TestShowCreateViewDefiner(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%", AuthUsername: "root", AuthHostname: "%"}, nil, nil)) @@ -69,8 +66,7 @@ func TestShowCreateViewDefiner(t *testing.T) { } func TestShowCreateTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -472,8 +468,7 @@ func TestShowCreateTable(t *testing.T) { } func TestShowCreateTablePlacement(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") defer tk.MustExec(`DROP TABLE IF EXISTS t`) @@ -633,8 +628,7 @@ func TestShowCreateTablePlacement(t *testing.T) { } func TestShowVisibility(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database showdatabase") tk.MustExec("use showdatabase") @@ -670,8 +664,7 @@ func TestShowVisibility(t *testing.T) { } func TestShowDatabasesInfoSchemaFirst(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("show databases").Check(testkit.Rows("INFORMATION_SCHEMA")) tk.MustExec(`create user 'show'@'%'`) @@ -691,8 +684,7 @@ func TestShowDatabasesInfoSchemaFirst(t *testing.T) { } func TestShowWarnings(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") testSQL := `create table if not exists show_warnings (a int)` @@ -726,8 +718,7 @@ func TestShowWarnings(t *testing.T) { } func TestShowErrors(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") testSQL := `create table if not exists show_errors (a int)` @@ -745,8 +736,7 @@ func TestShowErrors(t *testing.T) { } func TestShowWarningsForExprPushdown(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") testSQL := `create table if not exists show_warnings_expr_pushdown (a int, value date)` @@ -783,8 +773,7 @@ func TestShowWarningsForExprPushdown(t *testing.T) { } func TestShowGrantsPrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create user show_grants") tk.MustExec("show grants for show_grants") @@ -799,8 +788,7 @@ func TestShowGrantsPrivilege(t *testing.T) { } func TestShowStatsPrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create user show_stats") tk1 := testkit.NewTestKit(t, store) @@ -834,8 +822,7 @@ func TestShowStatsPrivilege(t *testing.T) { } func TestIssue18878(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "127.0.0.1", AuthHostname: "%"}, nil, nil)) tk.MustQuery("select user()").Check(testkit.Rows("root@127.0.0.1")) @@ -854,8 +841,7 @@ func TestIssue18878(t *testing.T) { } func TestIssue17794(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER 'root'@'8.8.%'") require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "9.9.9.9", AuthHostname: "%"}, nil, nil)) @@ -867,8 +853,7 @@ func TestIssue17794(t *testing.T) { } func TestIssue3641(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) _, err := tk.Exec("show tables;") require.Equal(t, plannercore.ErrNoDB.Error(), err.Error()) @@ -877,8 +862,7 @@ func TestIssue3641(t *testing.T) { } func TestIssue10549(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE newdb;") tk.MustExec("CREATE ROLE 'app_developer';") @@ -895,8 +879,7 @@ func TestIssue10549(t *testing.T) { } func TestIssue11165(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE ROLE 'r_manager';") tk.MustExec("CREATE USER 'manager'@'localhost';") @@ -910,8 +893,7 @@ func TestIssue11165(t *testing.T) { // TestShow2 is moved from session_test func TestShow2(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1035,8 +1017,7 @@ func TestShow2(t *testing.T) { } func TestShowCreateUser(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Create a new user. tk.MustExec(`CREATE USER 'test_show_create_user'@'%' IDENTIFIED BY 'root';`) @@ -1096,8 +1077,7 @@ func TestShowCreateUser(t *testing.T) { } func TestUnprivilegedShow(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE testshow") tk.MustExec("USE testshow") @@ -1124,8 +1104,7 @@ func TestUnprivilegedShow(t *testing.T) { } func TestCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1141,8 +1120,7 @@ func TestCollation(t *testing.T) { } func TestShowTableStatus(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1208,8 +1186,7 @@ func TestShowTableStatus(t *testing.T) { } func TestShowSlow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // The test result is volatile, because // 1. Slow queries is stored in domain, which may be affected by other tests. @@ -1223,8 +1200,7 @@ func TestShowSlow(t *testing.T) { } func TestShowCreateTableAutoRandom(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1292,8 +1268,7 @@ func TestShowCreateTableAutoRandom(t *testing.T) { // TestAutoIdCache overrides testAutoRandomSuite to test auto id cache. func TestAutoIdCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1329,8 +1304,7 @@ func TestAutoIdCache(t *testing.T) { } func TestShowCreateStmtIgnoreLocalTemporaryTables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1365,8 +1339,7 @@ func TestAutoRandomBase(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@allow_auto_random_explicit_insert = true") tk.MustExec("use test") @@ -1396,8 +1369,7 @@ func TestAutoRandomBase(t *testing.T) { } func TestAutoRandomWithLargeSignedShowTableRegions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists auto_random_db;") defer tk.MustExec("drop database if exists auto_random_db;") @@ -1417,8 +1389,7 @@ func TestAutoRandomWithLargeSignedShowTableRegions(t *testing.T) { } func TestShowEscape(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1448,8 +1419,7 @@ func TestShowEscape(t *testing.T) { } func TestShowBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) res := tk.MustQuery("show builtins;") require.NotNil(t, res) @@ -1461,8 +1431,7 @@ func TestShowBuiltin(t *testing.T) { } func TestShowClusterConfig(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1497,8 +1466,7 @@ func TestShowClusterConfig(t *testing.T) { } func TestInvisibleCoprCacheConfig(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) rows := tk.MustQuery("show variables like '%config%'").Rows() require.Equal(t, 1, len(rows)) @@ -1511,8 +1479,7 @@ func TestInvisibleCoprCacheConfig(t *testing.T) { } func TestEnableGlobalKillConfig(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) rows := tk.MustQuery("show variables like '%config%'").Rows() require.Equal(t, 1, len(rows)) @@ -1526,8 +1493,7 @@ func TestShowCreateTableWithIntegerDisplayLengthWarnings(t *testing.T) { defer func() { parsertypes.TiDBStrictIntegerDisplayWidth = false }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1588,8 +1554,7 @@ func TestShowCreateTableWithIntegerDisplayLengthWarnings(t *testing.T) { } func TestShowVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) var showSQL string sessionVars := make([]string, 0, len(variable.GetSysVars())) @@ -1639,8 +1604,7 @@ func TestShowVar(t *testing.T) { } func TestIssue19507(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("CREATE TABLE t2(a int primary key, b int unique, c int not null, unique index (c));") @@ -1663,8 +1627,7 @@ func TestIssue19507(t *testing.T) { // TestShowPerformanceSchema tests for Issue 19231 func TestShowPerformanceSchema(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Ideally we should create a new performance_schema table here with indices that we run the tests on. // However, its not possible to create a new performance_schema table since its a special in memory table. @@ -1675,8 +1638,7 @@ func TestShowPerformanceSchema(t *testing.T) { } func TestShowCreatePlacementPolicy(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE PLACEMENT POLICY xyz PRIMARY_REGION='us-east-1' REGIONS='us-east-1,us-east-2' FOLLOWERS=4") tk.MustQuery("SHOW CREATE PLACEMENT POLICY xyz").Check(testkit.Rows("xyz CREATE PLACEMENT POLICY `xyz` PRIMARY_REGION=\"us-east-1\" REGIONS=\"us-east-1,us-east-2\" FOLLOWERS=4")) @@ -1690,8 +1652,7 @@ func TestShowCreatePlacementPolicy(t *testing.T) { } func TestShowTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create global temporary table t1 (id int) on commit delete rows") @@ -1752,8 +1713,7 @@ func TestShowTemporaryTable(t *testing.T) { } func TestShowCachedTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (id int)") @@ -1775,8 +1735,7 @@ func TestShowCachedTable(t *testing.T) { } func TestShowBindingCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -1803,8 +1762,7 @@ func TestShowBindingCache(t *testing.T) { } func TestShowBindingCacheStatus(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1860,8 +1818,7 @@ func TestShowBindingCacheStatus(t *testing.T) { } func TestShowDatabasesLike(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{ @@ -1877,8 +1834,7 @@ func TestShowDatabasesLike(t *testing.T) { } func TestShowTableStatusLike(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1899,8 +1855,7 @@ func TestShowTableStatusLike(t *testing.T) { } func TestShowCollationsLike(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{ diff --git a/executor/simple_test.go b/executor/simple_test.go index 94ac675504708..e3110d47036b4 100644 --- a/executor/simple_test.go +++ b/executor/simple_test.go @@ -24,8 +24,7 @@ import ( ) func TestKillStmt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) originCfg := config.GetGlobalConfig() newCfg := *originCfg newCfg.EnableGlobalKill = false diff --git a/executor/simpletest/simple_test.go b/executor/simpletest/simple_test.go index 8b9fa04be0e1d..f11d6efc0a4be 100644 --- a/executor/simpletest/simple_test.go +++ b/executor/simpletest/simple_test.go @@ -36,8 +36,7 @@ import ( ) func TestFlushTables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("FLUSH TABLES") @@ -46,8 +45,7 @@ func TestFlushTables(t *testing.T) { } func TestUseDB(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test") err := tk.ExecToErr("USE ``") @@ -55,8 +53,7 @@ func TestUseDB(t *testing.T) { } func TestStmtAutoNewTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // Some statements are like DDL, they commit the previous txn automically. tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -87,8 +84,7 @@ func TestStmtAutoNewTxn(t *testing.T) { } func TestIssue9111(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // CREATE USER / DROP USER fails if admin doesn't have insert privilege on `mysql.user` table. tk := testkit.NewTestKit(t, store) tk.MustExec("create user 'user_admin'@'localhost';") @@ -123,8 +119,7 @@ func TestIssue9111(t *testing.T) { } func TestRoleAtomic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create role r2;") @@ -142,8 +137,7 @@ func TestRoleAtomic(t *testing.T) { } func TestExtendedStatsPrivileges(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -183,8 +177,7 @@ func TestExtendedStatsPrivileges(t *testing.T) { } func TestIssue17247(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create user 'issue17247'") tk.MustExec("grant CREATE USER on *.* to 'issue17247'") @@ -205,8 +198,7 @@ func TestIssue17247(t *testing.T) { // Close issue #23649. // See https://github.com/pingcap/tidb/issues/23649 func TestIssue23649(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("DROP USER IF EXISTS issue23649;") tk.MustExec("CREATE USER issue23649;") @@ -217,8 +209,7 @@ func TestIssue23649(t *testing.T) { } func TestSetCurrentUserPwd(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER issue28534;") defer func() { @@ -234,8 +225,7 @@ func TestSetCurrentUserPwd(t *testing.T) { } func TestShowGrantsAfterDropRole(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER u29473") defer tk.MustExec("DROP USER IF EXISTS u29473") @@ -251,8 +241,7 @@ func TestShowGrantsAfterDropRole(t *testing.T) { } func TestPrivilegesAfterDropUser(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1(id int, v int)") @@ -289,8 +278,7 @@ func TestPrivilegesAfterDropUser(t *testing.T) { } func TestDropRoleAfterRevoke(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // issue 29781 tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -305,8 +293,7 @@ func TestDropRoleAfterRevoke(t *testing.T) { } func TestUserWithSetNames(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("set names gbk;") @@ -329,8 +316,7 @@ func TestUserWithSetNames(t *testing.T) { func TestStatementsCauseImplicitCommit(t *testing.T) { // Test some of the implicit commit statements. // See https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("create table ic (id int primary key)") @@ -353,8 +339,7 @@ func TestStatementsCauseImplicitCommit(t *testing.T) { } func TestDo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("do 1, @a:=1") tk.MustQuery("select @a").Check(testkit.Rows("1")) @@ -371,8 +356,7 @@ func TestDo(t *testing.T) { } func TestDoWithAggFunc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -382,8 +366,7 @@ func TestDoWithAggFunc(t *testing.T) { } func TestSetRoleAllCorner(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // For user with no role, `SET ROLE ALL` should active // a empty slice, rather than nil. tk := testkit.NewTestKit(t, store) @@ -400,8 +383,7 @@ func TestSetRoleAllCorner(t *testing.T) { } func TestCreateRole(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create user testCreateRole;") tk.MustExec("grant CREATE USER on *.* to testCreateRole;") @@ -425,8 +407,7 @@ func TestCreateRole(t *testing.T) { } func TestDropRole(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create user testCreateRole;") tk.MustExec("create user test_create_role;") @@ -452,8 +433,7 @@ func TestDropRole(t *testing.T) { } func TestTransaction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("begin") ctx := tk.Session() @@ -487,8 +467,7 @@ func inTxn(ctx sessionctx.Context) bool { } func TestRole(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Make sure user test not in mysql.User. result := tk.MustQuery(`SELECT authentication_string FROM mysql.User WHERE User="test" and Host="localhost"`) @@ -585,8 +564,7 @@ func TestRole(t *testing.T) { } func TestRoleAdmin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER 'testRoleAdmin';") tk.MustExec("CREATE ROLE 'targetRole';") @@ -612,8 +590,7 @@ func TestRoleAdmin(t *testing.T) { } func TestDefaultRole(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) createRoleSQL := `CREATE ROLE r_1, r_2, r_3, u_1;` @@ -664,8 +641,7 @@ func TestDefaultRole(t *testing.T) { } func TestSetDefaultRoleAll(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create user test_all;") se, err := session.CreateSession4Test(store) @@ -679,8 +655,7 @@ func TestSetDefaultRoleAll(t *testing.T) { } func TestUser(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Make sure user test not in mysql.User. result := tk.MustQuery(`SELECT authentication_string FROM mysql.User WHERE User="test" and Host="localhost"`) @@ -858,8 +833,7 @@ func TestUser(t *testing.T) { } func TestSetPwd(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) createUserSQL := `CREATE USER 'testpwd'@'localhost' IDENTIFIED BY '';` @@ -898,8 +872,7 @@ func TestSetPwd(t *testing.T) { } func TestFlushPrivileges(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER 'testflush'@'localhost' IDENTIFIED BY '';`) @@ -946,8 +919,7 @@ func TestFlushPrivilegesPanic(t *testing.T) { } func TestDropPartitionStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // Use the testSerialSuite to fix the unstable test tk := testkit.NewTestKit(t, store) tk.MustExec(`create database if not exists test_drop_gstats`) @@ -1005,8 +977,7 @@ partition by range (a) ( } func TestDropStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (c1 int, c2 int)") diff --git a/executor/slow_query_sql_test.go b/executor/slow_query_sql_test.go index 1fa3a59458eb6..d09822f200115 100644 --- a/executor/slow_query_sql_test.go +++ b/executor/slow_query_sql_test.go @@ -28,8 +28,7 @@ import ( ) func TestSlowQueryWithoutSlowLog(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) originCfg := config.GetGlobalConfig() newCfg := *originCfg newCfg.Log.SlowQueryFile = "tidb-slow-not-exist.log" @@ -45,8 +44,7 @@ func TestSlowQueryWithoutSlowLog(t *testing.T) { } func TestSlowQuerySensitiveQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) originCfg := config.GetGlobalConfig() newCfg := *originCfg @@ -80,8 +78,7 @@ func TestSlowQuerySensitiveQuery(t *testing.T) { } func TestSlowQueryPrepared(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) originCfg := config.GetGlobalConfig() newCfg := *originCfg @@ -117,8 +114,7 @@ func TestSlowQueryPrepared(t *testing.T) { } func TestLogSlowLogIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) f, err := os.CreateTemp("", "tidb-slow-*.log") require.NoError(t, err) @@ -142,8 +138,7 @@ func TestLogSlowLogIndex(t *testing.T) { } func TestSlowQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) f, err := os.CreateTemp("", "tidb-slow-*.log") diff --git a/executor/sort_test.go b/executor/sort_test.go index 4951f2025399b..5e7af0614aa98 100644 --- a/executor/sort_test.go +++ b/executor/sort_test.go @@ -45,8 +45,7 @@ func testSortInDisk(t *testing.T, removeDir bool) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/testSortedRowContainerSpill")) }() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("SET GLOBAL tidb_mem_oom_action = DEFAULT") tk.MustExec("SET GLOBAL tidb_mem_oom_action='LOG'") @@ -109,8 +108,7 @@ func TestIssue16696(t *testing.T) { defer require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/testSortedRowContainerSpill")) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/testRowContainerSpill", "return(true)")) defer require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/testRowContainerSpill")) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("SET GLOBAL tidb_mem_oom_action = DEFAULT") tk.MustExec("SET GLOBAL tidb_mem_oom_action='LOG'") diff --git a/executor/splittest/split_table_test.go b/executor/splittest/split_table_test.go index f874bb8fa711b..2735b7fbdd49d 100644 --- a/executor/splittest/split_table_test.go +++ b/executor/splittest/split_table_test.go @@ -34,8 +34,7 @@ import ( ) func TestSplitTableRegion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a varchar(100),b int, index idx1(b,a))") @@ -107,8 +106,7 @@ func TestSplitTableRegion(t *testing.T) { } func TestSplitRegionEdgeCase(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -122,8 +120,7 @@ func TestSplitRegionEdgeCase(t *testing.T) { } func TestClusterIndexSplitTableIntegration(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_cluster_index_index_split_table_integration;") tk.MustExec("create database test_cluster_index_index_split_table_integration;") @@ -177,8 +174,7 @@ func TestClusterIndexSplitTableIntegration(t *testing.T) { } func TestClusterIndexShowTableRegion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) atomic.StoreUint32(&ddl.EnableSplitTableRegion, 1) tk.MustExec("set global tidb_scatter_region = 1") @@ -206,8 +202,7 @@ func TestClusterIndexShowTableRegion(t *testing.T) { } func TestShowTableRegion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t_regions") diff --git a/executor/stale_txn_test.go b/executor/stale_txn_test.go index e7045b8310ae0..5a16e325f70cf 100644 --- a/executor/stale_txn_test.go +++ b/executor/stale_txn_test.go @@ -71,8 +71,7 @@ func TestExactStalenessTransaction(t *testing.T) { zone: "", }, } - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") for _, testcase := range testcases { @@ -95,8 +94,7 @@ func TestExactStalenessTransaction(t *testing.T) { } func TestSelectAsOf(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. @@ -250,8 +248,7 @@ func TestSelectAsOf(t *testing.T) { } func TestStaleReadKVRequest(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) safePointName := "tikv_gc_safe_point" safePointValue := "20160102-15:04:05 -0700" @@ -345,8 +342,7 @@ func TestStaleReadKVRequest(t *testing.T) { } func TestStalenessAndHistoryRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. @@ -429,8 +425,7 @@ func TestStalenessAndHistoryRead(t *testing.T) { } func TestTimeBoundedStalenessTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -495,8 +490,7 @@ func TestTimeBoundedStalenessTxn(t *testing.T) { } func TestStalenessTransactionSchemaVer(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -527,8 +521,7 @@ func TestStalenessTransactionSchemaVer(t *testing.T) { func TestSetTransactionReadOnlyAsOf(t *testing.T) { t1, err := time.Parse(types.TimeFormat, "2016-09-21 09:53:04") require.NoError(t, err) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. safePointName := "tikv_gc_safe_point" @@ -729,8 +722,7 @@ func TestValidateReadOnlyInStalenessTransaction(t *testing.T) { errMsg: errMsg1, }, } - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. safePointName := "tikv_gc_safe_point" @@ -771,8 +763,7 @@ func TestValidateReadOnlyInStalenessTransaction(t *testing.T) { } func TestSpecialSQLInStalenessTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") testcases := []struct { @@ -826,8 +817,7 @@ func TestSpecialSQLInStalenessTxn(t *testing.T) { } func TestAsOfTimestampCompatibility(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. safePointName := "tikv_gc_safe_point" @@ -883,8 +873,7 @@ func TestAsOfTimestampCompatibility(t *testing.T) { } func TestSetTransactionInfoSchema(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. safePointName := "tikv_gc_safe_point" @@ -924,8 +913,7 @@ func TestSetTransactionInfoSchema(t *testing.T) { } func TestStaleSelect(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -987,8 +975,7 @@ func TestStaleSelect(t *testing.T) { } func TestStaleReadFutureTime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (id int)") @@ -1008,8 +995,7 @@ func TestStaleReadFutureTime(t *testing.T) { } func TestStaleReadPrepare(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1064,8 +1050,7 @@ func TestStaleReadPrepare(t *testing.T) { } func TestStmtCtxStaleFlag(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1159,8 +1144,7 @@ func TestStmtCtxStaleFlag(t *testing.T) { } func TestStaleSessionQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. safePointName := "tikv_gc_safe_point" @@ -1199,8 +1183,7 @@ func TestStaleSessionQuery(t *testing.T) { } func TestStaleReadCompatibility(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1245,8 +1228,7 @@ func TestStaleReadCompatibility(t *testing.T) { } func TestStaleReadNoExtraTSORequest(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // For mocktikv, safe point is not initialized, we manually insert it for snapshot to use. safePointName := "tikv_gc_safe_point" @@ -1294,8 +1276,7 @@ func TestStaleReadNoExtraTSORequest(t *testing.T) { } func TestPlanCacheWithStaleReadByBinaryProto(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1331,8 +1312,7 @@ func TestPlanCacheWithStaleReadByBinaryProto(t *testing.T) { } func TestIssue30872(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1349,8 +1329,7 @@ func TestIssue30872(t *testing.T) { } func TestIssue33728(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1365,8 +1344,7 @@ func TestIssue33728(t *testing.T) { } func TestIssue31954(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1385,8 +1363,7 @@ func TestIssue31954(t *testing.T) { } func TestIssue35686(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // This query should not panic diff --git a/executor/statement_context_test.go b/executor/statement_context_test.go index 69e47ac1c8107..1ee4dbd8afed1 100644 --- a/executor/statement_context_test.go +++ b/executor/statement_context_test.go @@ -31,8 +31,7 @@ const ( ) func TestStatementContext(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table sc (a int)") diff --git a/executor/temporary_table_test.go b/executor/temporary_table_test.go index c459340bfb67e..a6c0b0f4c0736 100644 --- a/executor/temporary_table_test.go +++ b/executor/temporary_table_test.go @@ -44,8 +44,7 @@ func assertTemporaryTableNoNetwork(t *testing.T, createTable func(*testkit.TestK var done sync.WaitGroup defer done.Wait() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // Test that table reader/index reader/index lookup on the temporary table do not need to visit TiKV. tk := testkit.NewTestKit(t, store) diff --git a/executor/tiflashtest/tiflash_test.go b/executor/tiflashtest/tiflash_test.go index 90ca47627c317..d54c7a4539acf 100644 --- a/executor/tiflashtest/tiflash_test.go +++ b/executor/tiflashtest/tiflash_test.go @@ -64,8 +64,7 @@ func withMockTiFlash(nodes int) mockstore.MockTiKVStoreOption { } func TestNonsupportCharsetTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -80,8 +79,7 @@ func TestNonsupportCharsetTable(t *testing.T) { } func TestReadPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -118,8 +116,7 @@ func TestReadPartitionTable(t *testing.T) { } func TestAggPushDownApplyAll(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -139,8 +136,7 @@ func TestAggPushDownApplyAll(t *testing.T) { } func TestReadUnsigedPK(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -179,8 +175,7 @@ func TestReadUnsigedPK(t *testing.T) { // to fix https://github.com/pingcap/tidb/issues/27952 func TestJoinRace(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -211,8 +206,7 @@ func TestMppExecution(t *testing.T) { if israce.RaceEnabled { t.Skip("skip race test because of long running") } - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -307,8 +301,7 @@ func TestMppExecution(t *testing.T) { } func TestInjectExtraProj(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -331,8 +324,7 @@ func TestInjectExtraProj(t *testing.T) { func TestTiFlashPartitionTableShuffledHashJoin(t *testing.T) { t.Skip("too slow") - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec(`create database tiflash_partition_SHJ`) tk.MustExec("use tiflash_partition_SHJ") @@ -406,8 +398,7 @@ func TestTiFlashPartitionTableShuffledHashJoin(t *testing.T) { func TestTiFlashPartitionTableReader(t *testing.T) { t.Skip("too slow") - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec(`create database tiflash_partition_tablereader`) tk.MustExec("use tiflash_partition_tablereader") @@ -470,8 +461,7 @@ func TestTiFlashPartitionTableReader(t *testing.T) { } func TestPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -562,8 +552,7 @@ func TestPartitionTable(t *testing.T) { } func TestMppEnum(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -584,8 +573,7 @@ func TestMppEnum(t *testing.T) { } func TestTiFlashPlanCacheable(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() defer func() { @@ -637,8 +625,7 @@ func TestTiFlashPlanCacheable(t *testing.T) { } func TestDispatchTaskRetry(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -659,8 +646,7 @@ func TestDispatchTaskRetry(t *testing.T) { func TestCancelMppTasks(t *testing.T) { var hang = "github.com/pingcap/tidb/store/mockstore/unistore/mppRecvHang" - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -700,8 +686,7 @@ func TestMppGoroutinesExitFromErrors(t *testing.T) { var mppNonRootTaskError = "github.com/pingcap/tidb/store/copr/mppNonRootTaskError" // mock root tasks hang var hang = "github.com/pingcap/tidb/store/mockstore/unistore/mppRecvHang" - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -738,8 +723,7 @@ func TestMppGoroutinesExitFromErrors(t *testing.T) { } func TestMppUnionAll(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists x1") @@ -795,8 +779,7 @@ func TestMppUnionAll(t *testing.T) { } func TestUnionWithEmptyDualTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -819,8 +802,7 @@ func TestUnionWithEmptyDualTable(t *testing.T) { } func TestAvgOverflow(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // avg int @@ -864,8 +846,7 @@ func TestAvgOverflow(t *testing.T) { } func TestMppApply(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists x1") @@ -896,8 +877,7 @@ func TestMppApply(t *testing.T) { } func TestTiFlashVirtualColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1,t2,t3") @@ -936,8 +916,7 @@ func TestTiFlashVirtualColumn(t *testing.T) { func TestTiFlashPartitionTableShuffledHashAggregation(t *testing.T) { t.Skip("too slow") - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("create database tiflash_partition_AGG") tk.MustExec("use tiflash_partition_AGG") @@ -1008,8 +987,7 @@ func TestTiFlashPartitionTableShuffledHashAggregation(t *testing.T) { func TestTiFlashPartitionTableBroadcastJoin(t *testing.T) { t.Skip("too slow") - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("create database tiflash_partition_BCJ") tk.MustExec("use tiflash_partition_BCJ") @@ -1078,8 +1056,7 @@ func TestTiFlashPartitionTableBroadcastJoin(t *testing.T) { } func TestForbidTiflashDuringStaleRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1115,8 +1092,7 @@ func TestForbidTiflashDuringStaleRead(t *testing.T) { } func TestForbidTiFlashIfExtraPhysTableIDIsNeeded(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1168,8 +1144,7 @@ func TestForbidTiFlashIfExtraPhysTableIDIsNeeded(t *testing.T) { } func TestTiflashPartitionTableScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t") @@ -1220,8 +1195,7 @@ func TestTiflashPartitionTableScan(t *testing.T) { } func TestAggPushDownCountStar(t *testing.T) { - store, clean := testkit.CreateMockStore(t, withMockTiFlash(2)) - defer clean() + store := testkit.CreateMockStore(t, withMockTiFlash(2)) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/executor/tikv_regions_peers_table_test.go b/executor/tikv_regions_peers_table_test.go index 0e22a3c0377a6..a74802ef05592 100644 --- a/executor/tikv_regions_peers_table_test.go +++ b/executor/tikv_regions_peers_table_test.go @@ -109,8 +109,7 @@ func TestTikvRegionPeers(t *testing.T) { router.HandleFunc(pdapi.RegionByID+"/"+"{id}", regionsInfoHandler) defer server.Close() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) store = &mockStore{ store.(helper.Storage), diff --git a/executor/trace_test.go b/executor/trace_test.go index 9b448670cc39a..a55f2613d1f29 100644 --- a/executor/trace_test.go +++ b/executor/trace_test.go @@ -22,8 +22,7 @@ import ( ) func TestTraceExec(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") testSQL := `create table trace (id int PRIMARY KEY AUTO_INCREMENT, c1 int, c2 int, c3 int default 1);` @@ -72,8 +71,7 @@ func rowsOrdered(rows [][]interface{}) bool { } func TestTracePlanStmt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table tp123(id int);") diff --git a/executor/union_scan_test.go b/executor/union_scan_test.go index b585ba5f20c13..b57ca25ca1917 100644 --- a/executor/union_scan_test.go +++ b/executor/union_scan_test.go @@ -29,8 +29,7 @@ import ( ) func TestDirtyTransaction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@session.tidb_executor_concurrency = 4;") tk.MustExec("set @@session.tidb_hash_join_concurrency = 5;") @@ -159,8 +158,7 @@ func TestDirtyTransaction(t *testing.T) { } func TestUnionScanWithCastCondition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table ta (a varchar(20))") @@ -174,8 +172,7 @@ func TestUnionScanWithCastCondition(t *testing.T) { } func TestUnionScanForMemBufferReader(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -312,8 +309,7 @@ func TestUnionScanForMemBufferReader(t *testing.T) { } func TestForUpdateUntouchedIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -352,8 +348,7 @@ func TestForUpdateUntouchedIndex(t *testing.T) { } func TestUpdateScanningHandles(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -386,8 +381,7 @@ func TestUpdateScanningHandles(t *testing.T) { // See https://github.com/pingcap/tidb/issues/19136 func TestForApplyAndUnionScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -424,8 +418,7 @@ func TestForApplyAndUnionScan(t *testing.T) { } func TestIssue28073(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -483,8 +476,7 @@ func TestIssue28073(t *testing.T) { } func TestIssue32422(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -545,8 +537,7 @@ func TestIssue32422(t *testing.T) { } func BenchmarkUnionScanRead(b *testing.B) { - store, clean := testkit.CreateMockStore(b) - defer clean() + store := testkit.CreateMockStore(b) tk := testkit.NewTestKit(b, store) tk.MustExec("use test") diff --git a/executor/update_test.go b/executor/update_test.go index 03217a25ebf39..c5b121f4962bb 100644 --- a/executor/update_test.go +++ b/executor/update_test.go @@ -26,8 +26,7 @@ import ( ) func TestUpdateGenColInTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table t(a bigint, b bigint as (a+1));`) @@ -41,8 +40,7 @@ func TestUpdateGenColInTxn(t *testing.T) { } func TestUpdateWithAutoidSchema(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`create table t1(id int primary key auto_increment, n int);`) @@ -168,8 +166,7 @@ func TestUpdateWithAutoidSchema(t *testing.T) { } func TestUpdateSchemaChange(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table t(a bigint, b bigint as (a+1));`) @@ -183,8 +180,7 @@ func TestUpdateSchemaChange(t *testing.T) { } func TestUpdateMultiDatabaseTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop database if exists test2") @@ -195,8 +191,7 @@ func TestUpdateMultiDatabaseTable(t *testing.T) { } func TestUpdateSwapColumnValues(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -233,8 +228,7 @@ func TestUpdateSwapColumnValues(t *testing.T) { } func TestMultiUpdateOnSameTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -292,8 +286,7 @@ func TestMultiUpdateOnSameTable(t *testing.T) { } func TestUpdateClusterIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) @@ -347,8 +340,7 @@ func TestUpdateClusterIndex(t *testing.T) { } func TestDeleteClusterIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) @@ -385,8 +377,7 @@ func TestDeleteClusterIndex(t *testing.T) { } func TestReplaceClusterIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) @@ -415,8 +406,7 @@ func TestReplaceClusterIndex(t *testing.T) { } func TestPessimisticUpdatePKLazyCheck(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -458,8 +448,7 @@ func getPresumeExistsCount(t *testing.T, se session.Session) int { } func TestOutOfRangeWithUnsigned(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists t`) @@ -470,8 +459,7 @@ func TestOutOfRangeWithUnsigned(t *testing.T) { } func TestIssue21447(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1, tk2 := testkit.NewTestKit(t, store), testkit.NewTestKit(t, store) tk1.MustExec("use test") @@ -497,8 +485,7 @@ func TestIssue21447(t *testing.T) { } func TestIssue23553(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) tk.MustExec(`drop table if exists tt`) diff --git a/executor/window_test.go b/executor/window_test.go index 8b1c91132410d..b12e97c81105b 100644 --- a/executor/window_test.go +++ b/executor/window_test.go @@ -22,8 +22,7 @@ import ( ) func TestWindowFunctions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_window_concurrency = 1") tk.MustExec("set @@tidb_enable_pipelined_window_function = 0") @@ -34,8 +33,7 @@ func TestWindowFunctions(t *testing.T) { } func TestWindowParallelFunctions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_window_concurrency = 4") tk.MustExec("set @@tidb_enable_pipelined_window_function = 0") @@ -46,16 +44,14 @@ func TestWindowParallelFunctions(t *testing.T) { } func TestPipelinedWindowFunctions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_window_concurrency = 1") doTestWindowFunctions(tk) } func TestPipelinedWindowParallelFunctions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_window_concurrency = 4") doTestWindowFunctions(tk) @@ -228,8 +224,7 @@ func doTestWindowFunctions(tk *testkit.TestKit) { func TestWindowFunctionsDataReference(t *testing.T) { // see https://github.com/pingcap/tidb/issues/11614 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -252,8 +247,7 @@ func TestWindowFunctionsDataReference(t *testing.T) { } func TestSlidingWindowFunctions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("set @@tidb_enable_pipelined_window_function=0;") @@ -273,8 +267,7 @@ func TestSlidingWindowFunctions(t *testing.T) { } func TestPipelinedSlidingWindowFunctions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") idTypes := []string{"FLOAT", "DOUBLE"} @@ -457,8 +450,7 @@ func baseTestSlidingWindowFunctions(tk *testkit.TestKit) { } func TestIssue24264(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tbl_2") @@ -487,8 +479,7 @@ func TestIssue24264(t *testing.T) { } func TestIssue29947(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t_tir89b, t_vejdy`) diff --git a/executor/write_concurrent_test.go b/executor/write_concurrent_test.go index baac114688544..19d23cb846174 100644 --- a/executor/write_concurrent_test.go +++ b/executor/write_concurrent_test.go @@ -23,8 +23,7 @@ import ( ) func TestBatchInsertWithOnDuplicate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewAsyncTestKit(t, store) // prepare schema. diff --git a/executor/write_test.go b/executor/write_test.go index 6b2b838448986..f79120c3666e9 100644 --- a/executor/write_test.go +++ b/executor/write_test.go @@ -43,8 +43,7 @@ import ( ) func TestInsert(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") testSQL := `drop table if exists insert_test;create table insert_test (id int PRIMARY KEY AUTO_INCREMENT, c1 int, c2 int, c3 int default 1);` @@ -326,8 +325,7 @@ func TestInsert(t *testing.T) { } func TestMultiBatch(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t,t0") @@ -340,8 +338,7 @@ func TestMultiBatch(t *testing.T) { } func TestInsertAutoInc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") createSQL := `drop table if exists insert_autoinc_test; create table insert_autoinc_test (id int primary key auto_increment, c1 int);` @@ -475,8 +472,7 @@ func TestInsertAutoInc(t *testing.T) { } func TestInsertIgnore(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) var cfg kv.InjectionConfig tk := testkit.NewTestKit(t, kv.NewInjectedStore(store, &cfg)) tk.MustExec("use test") @@ -595,8 +591,7 @@ commit;` } func TestInsertOnDup(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) var cfg kv.InjectionConfig tk := testkit.NewTestKit(t, kv.NewInjectedStore(store, &cfg)) tk.MustExec("use test") @@ -762,8 +757,7 @@ commit;` } func TestInsertIgnoreOnDup(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") testSQL := `drop table if exists t; @@ -816,8 +810,7 @@ func TestInsertIgnoreOnDup(t *testing.T) { } func TestInsertSetWithDefault(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // Assign `DEFAULT` in `INSERT ... SET ...` statement @@ -902,8 +895,7 @@ func TestInsertSetWithDefault(t *testing.T) { } func TestInsertOnDupUpdateDefault(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // Assign `DEFAULT` in `INSERT ... ON DUPLICATE KEY UPDATE ...` statement @@ -955,8 +947,7 @@ func TestInsertOnDupUpdateDefault(t *testing.T) { } func TestReplace(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") testSQL := `drop table if exists replace_test; @@ -1138,8 +1129,7 @@ func TestReplace(t *testing.T) { } func TestReplaceWithCICollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1150,8 +1140,7 @@ func TestReplaceWithCICollation(t *testing.T) { } func TestGeneratedColumnForInsert(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1201,8 +1190,7 @@ func TestGeneratedColumnForInsert(t *testing.T) { } func TestPartitionedTableReplace(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") testSQL := `drop table if exists replace_test; @@ -1342,8 +1330,7 @@ func TestPartitionedTableReplace(t *testing.T) { } func TestHashPartitionedTableReplace(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_table_partition = '1';") @@ -1461,8 +1448,7 @@ func TestHashPartitionedTableReplace(t *testing.T) { } func TestPartitionedTableUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1570,8 +1556,7 @@ func TestPartitionedTableUpdate(t *testing.T) { // TestUpdateCastOnlyModifiedValues for issue #4514. func TestUpdateCastOnlyModifiedValues(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table update_modified (col_1 int, col_2 enum('a', 'b'))") @@ -1618,8 +1603,7 @@ func fillMultiTableForUpdate(tk *testkit.TestKit) { } func TestMultipleTableUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") fillMultiTableForUpdate(tk) @@ -1685,8 +1669,7 @@ func TestMultipleTableUpdate(t *testing.T) { } func TestDelete(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) fillData(tk, "delete_test") @@ -1742,8 +1725,7 @@ func TestPartitionedTableDelete(t *testing.T) { PARTITION p2 VALUES LESS THAN (16), PARTITION p3 VALUES LESS THAN (21))` - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1807,8 +1789,7 @@ func fillDataMultiTable(tk *testkit.TestKit) { } func TestMultiTableDelete(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) fillDataMultiTable(tk) @@ -1821,8 +1802,7 @@ func TestMultiTableDelete(t *testing.T) { } func TestQualifiedDelete(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -1900,8 +1880,7 @@ func checkCases(tests []testCase, ld *executor.LoadDataInfo, t *testing.T, tk *t } func TestLoadDataMissingColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") createSQL := `create table load_data_missing (id int, t timestamp not null)` @@ -1941,8 +1920,7 @@ func TestLoadDataMissingColumn(t *testing.T) { } func TestIssue18681(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") createSQL := `drop table if exists load_data_test; @@ -1975,8 +1953,7 @@ func TestIssue18681(t *testing.T) { } func TestIssue33298(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) ctx := tk.Session().(sessionctx.Context) defer ctx.SetValue(executor.LoadDataVarKey, nil) @@ -1993,8 +1970,7 @@ func TestIssue33298(t *testing.T) { } func TestIssue34358(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) ctx := tk.Session().(sessionctx.Context) defer ctx.SetValue(executor.LoadDataVarKey, nil) @@ -2014,8 +1990,7 @@ func TestIssue34358(t *testing.T) { func TestLoadData(t *testing.T) { trivialMsg := "Records: 1 Deleted: 0 Skipped: 0 Warnings: 0" - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") createSQL := `drop table if exists load_data_test; @@ -2211,8 +2186,7 @@ func TestLoadData(t *testing.T) { func TestLoadDataEscape(t *testing.T) { trivialMsg := "Records: 1 Deleted: 0 Skipped: 0 Warnings: 0" - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test; drop table if exists load_data_test;") tk.MustExec("CREATE TABLE load_data_test (id INT NOT NULL PRIMARY KEY, value TEXT NOT NULL) CHARACTER SET utf8") @@ -2245,8 +2219,7 @@ func TestLoadDataEscape(t *testing.T) { // TestLoadDataSpecifiedColumns reuse TestLoadDataEscape's test case :-) func TestLoadDataSpecifiedColumns(t *testing.T) { trivialMsg := "Records: 1 Deleted: 0 Skipped: 0 Warnings: 0" - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test; drop table if exists load_data_test;") tk.MustExec(`create table load_data_test (id int PRIMARY KEY AUTO_INCREMENT, c1 int, c2 varchar(255) default "def", c3 int default 0);`) @@ -2273,8 +2246,7 @@ func TestLoadDataSpecifiedColumns(t *testing.T) { } func TestLoadDataIgnoreLines(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test; drop table if exists load_data_test;") tk.MustExec("CREATE TABLE load_data_test (id INT NOT NULL PRIMARY KEY, value TEXT NOT NULL) CHARACTER SET utf8") @@ -2294,8 +2266,7 @@ func TestLoadDataIgnoreLines(t *testing.T) { } func TestLoadDataReplace(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test; DROP TABLE IF EXISTS load_data_replace;") tk.MustExec("CREATE TABLE load_data_replace (id INT NOT NULL PRIMARY KEY, value TEXT NOT NULL)") @@ -2317,8 +2288,7 @@ func TestLoadDataReplace(t *testing.T) { // TestLoadDataOverflowBigintUnsigned related to issue 6360 func TestLoadDataOverflowBigintUnsigned(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test; drop table if exists load_data_test;") tk.MustExec("CREATE TABLE load_data_test (a bigint unsigned);") @@ -2338,8 +2308,7 @@ func TestLoadDataOverflowBigintUnsigned(t *testing.T) { } func TestLoadDataIntoPartitionedTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table range_t (a int, b int) partition by range (a) ( " + @@ -2365,8 +2334,7 @@ func TestLoadDataIntoPartitionedTable(t *testing.T) { } func TestNullDefault(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test; drop table if exists test_null_default;") tk.MustExec("set timestamp = 1234") @@ -2379,8 +2347,7 @@ func TestNullDefault(t *testing.T) { } func TestNotNullDefault(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test; drop table if exists t1,t2;") defer tk.MustExec("drop table t1,t2") @@ -2451,8 +2418,7 @@ func TestLatch(t *testing.T) { // TestIssue4067 Test issue https://github.com/pingcap/tidb/issues/4067 func TestIssue4067(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -2467,8 +2433,7 @@ func TestIssue4067(t *testing.T) { } func TestInsertCalculatedValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2590,8 +2555,7 @@ func TestInsertCalculatedValue(t *testing.T) { } func TestDataTooLongErrMsg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a varchar(2));") @@ -2605,8 +2569,7 @@ func TestDataTooLongErrMsg(t *testing.T) { } func TestUpdateSelect(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table msg (id varchar(8), b int, status int, primary key (id, b))") @@ -2619,8 +2582,7 @@ func TestUpdateSelect(t *testing.T) { } func TestUpdateDelete(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("CREATE TABLE ttt (id bigint(20) NOT NULL, host varchar(30) NOT NULL, PRIMARY KEY (id), UNIQUE KEY i_host (host));") @@ -2641,8 +2603,7 @@ func TestUpdateDelete(t *testing.T) { } func TestUpdateAffectRowCnt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table a(id int auto_increment, a int default null, primary key(id))") @@ -2662,8 +2623,7 @@ func TestUpdateAffectRowCnt(t *testing.T) { } func TestReplaceLog(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table testLog (a int not null primary key, b int unique key);`) @@ -2697,8 +2657,7 @@ func TestReplaceLog(t *testing.T) { // There is no need to do the rebase when updating a record if the auto-increment ID not changed. // This could make the auto ID increasing speed slower. func TestRebaseIfNeeded(t *testing.T) { - store, domain, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, domain := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table t (a int not null primary key auto_increment, b int unique key);`) @@ -2731,8 +2690,7 @@ func TestRebaseIfNeeded(t *testing.T) { } func TestDeferConstraintCheckForDelete(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set tidb_constraint_check_in_place = 0") tk.MustExec("set @@tidb_txn_mode = 'optimistic'") @@ -2781,8 +2739,7 @@ func TestDeferConstraintCheckForDelete(t *testing.T) { } func TestDeferConstraintCheckForInsert(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") tk := testkit.NewTestKit(t, store) @@ -2909,8 +2866,7 @@ func TestDeferConstraintCheckForInsert(t *testing.T) { } func TestPessimisticDeleteYourWrites(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) session1 := testkit.NewTestKit(t, store) session1.MustExec("use test") @@ -2938,8 +2894,7 @@ func TestPessimisticDeleteYourWrites(t *testing.T) { } func TestDefEnumInsert(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table test (id int, prescription_type enum('a','b','c','d','e','f') NOT NULL, primary key(id));") @@ -2948,8 +2903,7 @@ func TestDefEnumInsert(t *testing.T) { } func TestIssue11059(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (pk int primary key, uk int unique, v int)") @@ -2960,8 +2914,7 @@ func TestIssue11059(t *testing.T) { } func TestSetWithRefGenCol(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table t (i int, j int as (i+1) not null);`) @@ -3005,8 +2958,7 @@ func TestSetWithRefGenCol(t *testing.T) { } func TestSetWithCurrentTimestampAndNow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists tbl;`) @@ -3019,8 +2971,7 @@ func TestSetWithCurrentTimestampAndNow(t *testing.T) { } func TestApplyWithPointAndBatchPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t;`) @@ -3062,8 +3013,7 @@ from t order by c_str;`).Check(testkit.Rows("10")) } func TestWriteListPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3110,8 +3060,7 @@ func TestWriteListPartitionTable(t *testing.T) { } func TestWriteListColumnsPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3161,8 +3110,7 @@ func TestWriteListColumnsPartitionTable(t *testing.T) { // TestWriteListPartitionTable1 test for write list partition when the partition expression is simple. func TestWriteListPartitionTable1(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3288,8 +3236,7 @@ func TestWriteListPartitionTable1(t *testing.T) { // TestWriteListPartitionTable2 test for write list partition when the partition expression is complicated and contain generated column. func TestWriteListPartitionTable2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3411,8 +3358,7 @@ func TestWriteListPartitionTable2(t *testing.T) { } func TestWriteListColumnsPartitionTable1(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3532,8 +3478,7 @@ func TestWriteListColumnsPartitionTable1(t *testing.T) { // TestWriteListColumnsPartitionTable2 test for write list partition when the partition by multi-columns. func TestWriteListColumnsPartitionTable2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3674,8 +3619,7 @@ func TestWriteListColumnsPartitionTable2(t *testing.T) { // TestWriteListColumnsPartitionTable2 test for write list partition when the partition by multi-columns. func TestWriteListPartitionTableIssue21437(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3686,8 +3630,7 @@ func TestWriteListPartitionTableIssue21437(t *testing.T) { } func TestListPartitionWithAutoRandom(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3711,8 +3654,7 @@ func TestListPartitionWithAutoRandom(t *testing.T) { } func TestListPartitionWithAutoIncrement(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3736,8 +3678,7 @@ func TestListPartitionWithAutoIncrement(t *testing.T) { } func TestListPartitionWithGeneratedColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3783,8 +3724,7 @@ func TestListPartitionWithGeneratedColumn(t *testing.T) { } func TestListPartitionWithGeneratedColumn1(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3850,8 +3790,7 @@ func TestListPartitionWithGeneratedColumn1(t *testing.T) { } func TestListPartitionWithGeneratedColumn2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3894,8 +3833,7 @@ func TestListPartitionWithGeneratedColumn2(t *testing.T) { } func TestListColumnsPartitionWithGeneratedColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -3920,8 +3858,7 @@ func TestListColumnsPartitionWithGeneratedColumn(t *testing.T) { } func TestIssue22496(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t12") @@ -3963,8 +3900,7 @@ func TestEqualDatumsAsBinary(t *testing.T) { } func TestIssue21232(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, t1") @@ -3993,8 +3929,7 @@ func testEqualDatumsAsBinary(t *testing.T, a []interface{}, b []interface{}, sam } func TestUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") fillData(tk, "update_test") @@ -4264,8 +4199,7 @@ func TestUpdate(t *testing.T) { } func TestListColumnsPartitionWithGlobalIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON") @@ -4309,8 +4243,7 @@ func TestListColumnsPartitionWithGlobalIndex(t *testing.T) { } func TestIssue20724(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -4322,8 +4255,7 @@ func TestIssue20724(t *testing.T) { } func TestIssue20840(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -4336,8 +4268,7 @@ func TestIssue20840(t *testing.T) { } func TestIssueInsertPrefixIndexForNonUTF8Collation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2, t3") diff --git a/expression/constant_fold_test.go b/expression/constant_fold_test.go index 7ce440f33f2cd..91064bb76791e 100644 --- a/expression/constant_fold_test.go +++ b/expression/constant_fold_test.go @@ -21,8 +21,7 @@ import ( ) func TestFoldIfNull(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) diff --git a/expression/constant_propagation_test.go b/expression/constant_propagation_test.go index 25fc6233da202..9c10d9ddd982b 100644 --- a/expression/constant_propagation_test.go +++ b/expression/constant_propagation_test.go @@ -23,8 +23,7 @@ import ( ) func TestOuterJoinPropConst(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/expression/flag_simplify_test.go b/expression/flag_simplify_test.go index 686e465db7b54..2de5654585093 100644 --- a/expression/flag_simplify_test.go +++ b/expression/flag_simplify_test.go @@ -23,8 +23,7 @@ import ( ) func TestSimplifyExpressionByFlag(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/expression/integration_serial_test.go b/expression/integration_serial_test.go index 5ff9c47602f62..2a40024e452b3 100644 --- a/expression/integration_serial_test.go +++ b/expression/integration_serial_test.go @@ -37,8 +37,7 @@ import ( ) func TestIssue17727(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() @@ -77,8 +76,7 @@ func TestIssue17727(t *testing.T) { } func TestIssue17891(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -89,8 +87,7 @@ func TestIssue17891(t *testing.T) { } func TestIssue31174(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -109,8 +106,7 @@ func TestIssue31174(t *testing.T) { } func TestIssue20268(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -121,8 +117,7 @@ func TestIssue20268(t *testing.T) { } func TestCollationBasic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -196,8 +191,7 @@ func TestCollationBasic(t *testing.T) { } func TestWeightString(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -269,8 +263,7 @@ func TestWeightString(t *testing.T) { } func TestCollationCreateIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -302,8 +295,7 @@ func TestCollationCreateIndex(t *testing.T) { } func TestCollateConstantPropagation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -372,8 +364,7 @@ func TestCollateConstantPropagation(t *testing.T) { } func TestMixCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -467,8 +458,7 @@ func prepare4Join(tk *testkit.TestKit) { } func TestCollateHashJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Join(tk) @@ -491,8 +481,7 @@ func TestCollateHashJoin(t *testing.T) { } func TestCollateHashJoin2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Join2(tk) @@ -511,8 +500,7 @@ func prepare4Join2(tk *testkit.TestKit) { } func TestCollateMergeJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Join(tk) @@ -535,8 +523,7 @@ func TestCollateMergeJoin(t *testing.T) { } func TestCollateMergeJoin2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Join2(tk) @@ -545,8 +532,7 @@ func TestCollateMergeJoin2(t *testing.T) { } func TestCollateIndexMergeJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -560,8 +546,7 @@ func TestCollateIndexMergeJoin(t *testing.T) { } func TestNewCollationCheckClusterIndexTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -587,8 +572,7 @@ func prepare4Collation(tk *testkit.TestKit, hasIndex bool) { } func TestCollateSelection(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Collation(tk, false) @@ -599,8 +583,7 @@ func TestCollateSelection(t *testing.T) { } func TestCollateSort(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Collation(tk, false) @@ -618,8 +601,7 @@ func TestCollateSort(t *testing.T) { } func TestCollateHashAgg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Collation(tk, false) @@ -644,8 +626,7 @@ func TestCollateHashAgg(t *testing.T) { } func TestCollateStreamAgg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Collation(tk, true) @@ -660,8 +641,7 @@ func TestCollateStreamAgg(t *testing.T) { } func TestCollateIndexReader(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Collation(tk, true) @@ -676,8 +656,7 @@ func TestCollateIndexReader(t *testing.T) { } func TestCollateIndexLookup(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Collation(tk, true) @@ -693,8 +672,7 @@ func TestCollateIndexLookup(t *testing.T) { } func TestIssue16668(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -705,8 +683,7 @@ func TestIssue16668(t *testing.T) { } func TestIssue27091(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -722,8 +699,7 @@ func TestIssue27091(t *testing.T) { } func TestCollateStringFunction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -854,8 +830,7 @@ func TestCollateStringFunction(t *testing.T) { } func TestCollateLike(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set names utf8mb4 collate utf8mb4_general_ci") @@ -887,8 +862,7 @@ func TestCollateLike(t *testing.T) { } func TestCollateSubQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) prepare4Collation(tk, false) @@ -903,8 +877,7 @@ func TestCollateSubQuery(t *testing.T) { } func TestCollateDDL(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database t;") @@ -913,8 +886,7 @@ func TestCollateDDL(t *testing.T) { } func TestNewCollationWithClusterIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -926,8 +898,7 @@ func TestNewCollationWithClusterIndex(t *testing.T) { } func TestNewCollationBinaryFlag(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -969,8 +940,7 @@ func TestNewCollationBinaryFlag(t *testing.T) { } func TestIssue17176(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -984,8 +954,7 @@ func TestIssue17176(t *testing.T) { } func TestIssue18638(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -997,8 +966,7 @@ func TestIssue18638(t *testing.T) { } func TestCollationText(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1011,8 +979,7 @@ func TestCollationText(t *testing.T) { } func TestIssue18662(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1026,8 +993,7 @@ func TestIssue18662(t *testing.T) { } func TestIssue19116(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1050,8 +1016,7 @@ func TestIssue19116(t *testing.T) { } func TestIssue17063(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -1067,8 +1032,7 @@ func TestIssue17063(t *testing.T) { } func TestIssue11177(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("SELECT 'lvuleck' BETWEEN '2008-09-16 22:23:50' AND 0;").Check(testkit.Rows("0")) @@ -1082,8 +1046,7 @@ func TestIssue11177(t *testing.T) { } func TestIssue19804(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -1101,8 +1064,7 @@ func TestIssue19804(t *testing.T) { } func TestIssue20209(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -1112,8 +1074,7 @@ func TestIssue20209(t *testing.T) { } func TestIssue18949(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -1127,8 +1088,7 @@ func TestIssue18949(t *testing.T) { } func TestClusteredIndexAndNewCollationIndexEncodeDecodeV5(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1197,8 +1157,7 @@ func TestClusteredIndexAndNewCollationIndexEncodeDecodeV5(t *testing.T) { } func TestClusteredIndexAndNewCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1228,16 +1187,14 @@ func TestClusteredIndexAndNewCollation(t *testing.T) { } func TestIssue20608(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select '䇇Հ' collate utf8mb4_bin like '___Հ';").Check(testkit.Rows("0")) } func TestIssue20161(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -1249,8 +1206,7 @@ func TestIssue20161(t *testing.T) { } func TestCollationIndexJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1284,8 +1240,7 @@ func TestCollationIndexJoin(t *testing.T) { } func TestCollationMergeJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1311,8 +1266,7 @@ func TestCollationMergeJoin(t *testing.T) { } func TestIssue20876(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1331,8 +1285,7 @@ func TestIssue20876(t *testing.T) { } func TestLikeWithCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery(`select 'a' like 'A' collate utf8mb4_unicode_ci;`).Check(testkit.Rows("1")) @@ -1344,8 +1297,7 @@ func TestLikeWithCollation(t *testing.T) { } func TestCollationPrefixClusteredIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1359,8 +1311,7 @@ func TestCollationPrefixClusteredIndex(t *testing.T) { } func TestIssue23805(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1379,8 +1330,7 @@ func TestIssue23805(t *testing.T) { } func TestIssue26662(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1392,8 +1342,7 @@ func TestIssue26662(t *testing.T) { } func TestIssue30245(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustGetErrCode("select case 1 when 1 then 'a' collate utf8mb4_unicode_ci else 'b' collate utf8mb4_general_ci end", mysql.ErrCantAggregate2collations) @@ -1402,8 +1351,7 @@ func TestIssue30245(t *testing.T) { } func TestCollationForBinaryLiteral(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1417,8 +1365,7 @@ func TestCollationForBinaryLiteral(t *testing.T) { func TestMathBuiltin(t *testing.T) { t.Skip("it has been broken. Please fix it as soon as possible.") ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1808,8 +1755,7 @@ func TestMathBuiltin(t *testing.T) { } func TestTimeBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) originSQLMode := tk.Session().GetSessionVars().StrictSQLMode @@ -2976,8 +2922,7 @@ func TestTimeBuiltin(t *testing.T) { } func TestBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3747,8 +3692,7 @@ func TestBuiltin(t *testing.T) { } func TestSetVariables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) _, err := tk.Exec("set sql_mode='adfasdfadsfdasd';") @@ -3840,8 +3784,7 @@ func TestSetVariables(t *testing.T) { } func TestPreparePlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3869,8 +3812,7 @@ func TestPreparePlanCache(t *testing.T) { } func TestPreparePlanCacheOnCachedTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3911,8 +3853,7 @@ func TestPreparePlanCacheOnCachedTable(t *testing.T) { } func TestIssue16205(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() @@ -3937,8 +3878,7 @@ func TestIssue16205(t *testing.T) { } func TestRowCountPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() @@ -3968,8 +3908,7 @@ func TestRowCountPlanCache(t *testing.T) { } func TestCacheRegexpr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() @@ -3996,8 +3935,7 @@ func TestCacheRegexpr(t *testing.T) { } func TestCacheRefineArgs(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() @@ -4033,8 +3971,7 @@ func TestCacheRefineArgs(t *testing.T) { } func TestCacheConstEval(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() @@ -4069,8 +4006,7 @@ func TestCacheConstEval(t *testing.T) { } func TestIssue24502(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4090,8 +4026,7 @@ func TestIssue24502(t *testing.T) { } func TestIssue17233(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4174,8 +4109,7 @@ func TestIssue17233(t *testing.T) { } func TestIssue17989(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4189,8 +4123,7 @@ func TestIssue17989(t *testing.T) { } func TestNullValueRange(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4211,8 +4144,7 @@ func TestNullValueRange(t *testing.T) { } func TestIssue18652(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4223,8 +4155,7 @@ func TestIssue18652(t *testing.T) { } func TestIssue19045(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4256,8 +4187,7 @@ func TestIssue19045(t *testing.T) { // issues 14448, 19383, 17734 func TestNoopFunctions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4321,8 +4251,7 @@ func TestNoopFunctions(t *testing.T) { } func TestIssue19315(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4337,8 +4266,7 @@ func TestIssue19315(t *testing.T) { } func TestIssue18674(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select -1.0 % -1.0").Check(testkit.Rows("0.0")) @@ -4354,8 +4282,7 @@ func TestIssue18674(t *testing.T) { } func TestJsonObjectCompare(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4370,8 +4297,7 @@ func TestJsonObjectCompare(t *testing.T) { } func TestIssue21290(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4383,8 +4309,7 @@ func TestIssue21290(t *testing.T) { // for issue 20128 func TestIssue20128(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4398,8 +4323,7 @@ func TestIssue20128(t *testing.T) { } func TestCrossDCQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4526,8 +4450,7 @@ PARTITION BY RANGE (c) ( func TestCollationUnion2(t *testing.T) { // For issue 22179 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4556,8 +4479,7 @@ func TestPartitionPruningRelaxOP(t *testing.T) { // We can't say: // datetime < 2020-02-11 16:18:42 => to_days(datetime) < to_days(2020-02-11) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/expression/integration_test.go b/expression/integration_test.go index 2061aab4be26b..d3c8768c387d7 100644 --- a/expression/integration_test.go +++ b/expression/integration_test.go @@ -55,8 +55,7 @@ import ( ) func Test19654(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") @@ -103,8 +102,7 @@ func Test19654(t *testing.T) { } func Test19387(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") @@ -119,8 +117,7 @@ func Test19387(t *testing.T) { } func TestFuncREPEAT(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -156,8 +153,7 @@ func TestFuncREPEAT(t *testing.T) { } func TestFuncLpadAndRpad(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -181,8 +177,7 @@ func TestFuncLpadAndRpad(t *testing.T) { func TestBuiltinFuncJsonPretty(t *testing.T) { ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -251,8 +246,7 @@ func TestBuiltinFuncJsonPretty(t *testing.T) { func TestGetLock(t *testing.T) { ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // No timeout specified @@ -386,8 +380,7 @@ func TestGetLock(t *testing.T) { func TestMiscellaneousBuiltin(t *testing.T) { ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -470,8 +463,7 @@ func TestMiscellaneousBuiltin(t *testing.T) { } func TestConvertToBit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -516,8 +508,7 @@ func TestConvertToBit(t *testing.T) { } func TestStringBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -957,8 +948,7 @@ func TestStringBuiltin(t *testing.T) { } func TestInvalidStrings(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -976,8 +966,7 @@ func TestInvalidStrings(t *testing.T) { } func TestEncryptionBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1143,8 +1132,7 @@ func TestEncryptionBuiltin(t *testing.T) { } func TestOpBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1191,8 +1179,7 @@ func TestOpBuiltin(t *testing.T) { } func TestDatetimeOverflow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1230,8 +1217,7 @@ func TestDatetimeOverflow(t *testing.T) { } func TestIssue11648(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1244,8 +1230,7 @@ func TestIssue11648(t *testing.T) { } func TestInfoBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1401,8 +1386,7 @@ func TestInfoBuiltin(t *testing.T) { } func TestControlBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1471,8 +1455,7 @@ func TestControlBuiltin(t *testing.T) { } func TestArithmeticBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1706,8 +1689,7 @@ func TestArithmeticBuiltin(t *testing.T) { } func TestGreatestTimeType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1746,8 +1728,7 @@ func TestGreatestTimeType(t *testing.T) { } func TestCompareBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1954,8 +1935,7 @@ func TestCompareBuiltin(t *testing.T) { // #23157: make sure if Nullif expr is correct combined with IsNull expr. func TestNullifWithIsNull(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1967,8 +1947,7 @@ func TestNullifWithIsNull(t *testing.T) { } func TestAggregationBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2002,8 +1981,7 @@ func TestAggregationBuiltin(t *testing.T) { } func TestAggregationBuiltinBitOr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2029,8 +2007,7 @@ func TestAggregationBuiltinBitOr(t *testing.T) { } func TestAggregationBuiltinBitXor(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2056,8 +2033,7 @@ func TestAggregationBuiltinBitXor(t *testing.T) { } func TestAggregationBuiltinBitAnd(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2083,8 +2059,7 @@ func TestAggregationBuiltinBitAnd(t *testing.T) { } func TestAggregationBuiltinGroupConcat(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2110,8 +2085,7 @@ func TestAggregationBuiltinGroupConcat(t *testing.T) { } func TestAggregationBuiltinJSONArrayagg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2152,8 +2126,7 @@ func TestAggregationBuiltinJSONArrayagg(t *testing.T) { } func TestAggregationBuiltinJSONObjectAgg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2192,8 +2165,7 @@ func TestAggregationBuiltinJSONObjectAgg(t *testing.T) { } func TestOtherBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2279,8 +2251,7 @@ func TestOtherBuiltin(t *testing.T) { func TestDateBuiltin(t *testing.T) { ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") @@ -2374,8 +2345,7 @@ func TestDateBuiltin(t *testing.T) { } func TestJSONBuiltin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") @@ -2419,8 +2389,7 @@ func TestJSONBuiltin(t *testing.T) { } func TestTimeLiteral(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -2470,8 +2439,7 @@ func TestTimeLiteral(t *testing.T) { } func TestIssue13822(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select ADDDATE(20111111, interval '-123' DAY);").Check(testkit.Rows("2011-07-11")) @@ -2479,8 +2447,7 @@ func TestIssue13822(t *testing.T) { } func TestTimestampLiteral(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -2510,8 +2477,7 @@ func TestTimestampLiteral(t *testing.T) { } func TestLiterals(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) r := tk.MustQuery("SELECT LENGTH(b''), LENGTH(B''), b''+1, b''-1, B''+1;") @@ -2519,8 +2485,7 @@ func TestLiterals(t *testing.T) { } func TestFuncJSON(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") @@ -2706,8 +2671,7 @@ func TestFuncJSON(t *testing.T) { } func TestColumnInfoModified(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") @@ -2724,8 +2688,7 @@ func TestColumnInfoModified(t *testing.T) { func TestIssues(t *testing.T) { t.Skip("it has been broken. Please fix it as soon as possible.") // for issue #4954 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2785,8 +2748,7 @@ func TestIssues(t *testing.T) { func TestInPredicate4UnsignedInt(t *testing.T) { // for issue #6661 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2809,8 +2771,7 @@ func TestInPredicate4UnsignedInt(t *testing.T) { } func TestFilterExtractFromDNF(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2870,8 +2831,7 @@ func TestFilterExtractFromDNF(t *testing.T) { } func TestTiDBIsOwnerFunc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) result := tk.MustQuery("select tidb_is_ddl_owner()") @@ -2883,8 +2843,7 @@ func TestTiDBIsOwnerFunc(t *testing.T) { } func TestTiDBDecodePlanFunc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select tidb_decode_plan('')").Check(testkit.Rows("")) @@ -2920,8 +2879,7 @@ func TestTiDBDecodePlanFunc(t *testing.T) { } func TestTiDBDecodeKeyFunc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) collate.SetNewCollationEnabledForTest(false) defer collate.SetNewCollationEnabledForTest(true) @@ -3056,8 +3014,7 @@ func TestTiDBDecodeKeyFunc(t *testing.T) { } func TestTwoDecimalTruncate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3074,8 +3031,7 @@ func TestTwoDecimalTruncate(t *testing.T) { } func TestPrefixIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3107,8 +3063,7 @@ func TestPrefixIndex(t *testing.T) { } func TestDecimalMul(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test") @@ -3119,8 +3074,7 @@ func TestDecimalMul(t *testing.T) { } func TestDecimalDiv(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select cast(1 as decimal(60,30)) / cast(1 as decimal(60,30)) / cast(1 as decimal(60, 30))").Check(testkit.Rows("1.000000000000000000000000000000")) @@ -3129,8 +3083,7 @@ func TestDecimalDiv(t *testing.T) { } func TestUnknowHintIgnore(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test") @@ -3143,8 +3096,7 @@ func TestUnknowHintIgnore(t *testing.T) { } func TestValuesInNonInsertStmt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -3156,8 +3108,7 @@ func TestValuesInNonInsertStmt(t *testing.T) { } func TestForeignKeyVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3166,8 +3117,7 @@ func TestForeignKeyVar(t *testing.T) { } func TestUserVarMockWindFunc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -3242,8 +3192,7 @@ func TestUserVarMockWindFunc(t *testing.T) { } func TestCastAsTime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -3275,8 +3224,7 @@ func TestCastAsTime(t *testing.T) { } func TestValuesFloat32(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3289,8 +3237,7 @@ func TestValuesFloat32(t *testing.T) { } func TestFuncNameConst(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3332,8 +3279,7 @@ func TestFuncNameConst(t *testing.T) { } func TestValuesEnum(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3346,8 +3292,7 @@ func TestValuesEnum(t *testing.T) { } func TestIssue9325(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3365,8 +3310,7 @@ func TestIssue9325(t *testing.T) { } func TestIssue9710(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) getSAndMS := func(str string) (int, int) { @@ -3398,8 +3342,7 @@ func TestIssue9710(t *testing.T) { // TestDecimalConvertToTime for issue #9770 func TestDecimalConvertToTime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3411,8 +3354,7 @@ func TestDecimalConvertToTime(t *testing.T) { } func TestIssue9732(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3444,8 +3386,7 @@ monthname(str_to_date(1, '%m')), monthname(str_to_date(0, '%m'));`).Check(testki } func TestDaynameArithmetic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3494,8 +3435,7 @@ func TestDaynameArithmetic(t *testing.T) { } func TestIssue10156(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3518,8 +3458,7 @@ where } func TestIssue9727(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3569,8 +3508,7 @@ func TestIssue9727(t *testing.T) { } func TestTimestampDatumEncode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3586,8 +3524,7 @@ func TestTimestampDatumEncode(t *testing.T) { } func TestDateTimeAddReal(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3611,8 +3548,7 @@ func TestDateTimeAddReal(t *testing.T) { } func TestIssue30253(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -3631,8 +3567,7 @@ func TestIssue30253(t *testing.T) { } } func TestIssue10181(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3643,8 +3578,7 @@ func TestIssue10181(t *testing.T) { } func TestExprPushdown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3688,8 +3622,7 @@ func TestExprPushdown(t *testing.T) { } func TestIssue16973(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3716,8 +3649,7 @@ func TestIssue16973(t *testing.T) { } func TestExprPushdownBlacklist(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery(`select * from mysql.expr_pushdown_blacklist`).Check(testkit.Rows( @@ -3766,16 +3698,14 @@ func TestExprPushdownBlacklist(t *testing.T) { } func TestOptRuleBlacklist(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery(`select * from mysql.opt_rule_blacklist`).Check(testkit.Rows()) } func TestIssue10804(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery(`SELECT @@information_schema_stats_expiry`).Check(testkit.Rows(`86400`)) @@ -3787,8 +3717,7 @@ func TestIssue10804(t *testing.T) { } func TestInvalidEndingStatement(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3809,8 +3738,7 @@ func TestInvalidEndingStatement(t *testing.T) { } func TestIssue15613(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select sec_to_time(1e-4)").Check(testkit.Rows("00:00:00.000100")) @@ -3820,8 +3748,7 @@ func TestIssue15613(t *testing.T) { } func TestIssue10675(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3853,8 +3780,7 @@ func TestIssue10675(t *testing.T) { } func TestDatetimeMicrosecond(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // For int @@ -4007,8 +3933,7 @@ func TestDatetimeMicrosecond(t *testing.T) { } func TestFuncCaseWithLeftJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4024,8 +3949,7 @@ func TestFuncCaseWithLeftJoin(t *testing.T) { } func TestIssue11594(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4039,8 +3963,7 @@ func TestIssue11594(t *testing.T) { } func TestDefEnableVectorizedEvaluation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use mysql") @@ -4048,8 +3971,7 @@ func TestDefEnableVectorizedEvaluation(t *testing.T) { } func TestIssue11309And11319(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4098,8 +4020,7 @@ func TestIssue11309And11319(t *testing.T) { } func TestIssue12301(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4109,8 +4030,7 @@ func TestIssue12301(t *testing.T) { } func TestIssue15315(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4119,8 +4039,7 @@ func TestIssue15315(t *testing.T) { } func TestNotExistFunc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -4145,8 +4064,7 @@ func TestNotExistFunc(t *testing.T) { } func TestDecodetoChunkReuse(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4195,8 +4113,7 @@ func TestDecodetoChunkReuse(t *testing.T) { } func TestInMeetsPrepareAndExecute(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4218,8 +4135,7 @@ func TestInMeetsPrepareAndExecute(t *testing.T) { } func TestCastStrToInt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4242,8 +4158,7 @@ func TestCastStrToInt(t *testing.T) { func TestValuesForBinaryLiteral(t *testing.T) { // See issue #15310 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4259,8 +4174,7 @@ func TestValuesForBinaryLiteral(t *testing.T) { } func TestIssue14159(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4271,8 +4185,7 @@ func TestIssue14159(t *testing.T) { } func TestIssue14146(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4283,8 +4196,7 @@ func TestIssue14146(t *testing.T) { } func TestIssue15346(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4293,8 +4205,7 @@ func TestIssue15346(t *testing.T) { } func TestOrderByFuncPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() @@ -4318,8 +4229,7 @@ func TestOrderByFuncPlanCache(t *testing.T) { } func TestSelectLimitPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() @@ -4353,8 +4263,7 @@ func TestSelectLimitPlanCache(t *testing.T) { } func TestCollationAndCharset(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4420,8 +4329,7 @@ func TestCollationAndCharset(t *testing.T) { // https://github.com/pingcap/tidb/issues/34500. func TestJoinOnDifferentCollations(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("create table t (a char(10) charset gbk collate gbk_chinese_ci, b time);") @@ -4431,8 +4339,7 @@ func TestJoinOnDifferentCollations(t *testing.T) { } func TestCoercibility(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -4472,8 +4379,7 @@ func TestCoercibility(t *testing.T) { } func TestIssue20071(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4489,8 +4395,7 @@ func TestIssue20071(t *testing.T) { } func TestVirtualGeneratedColumnAndLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4502,8 +4407,7 @@ func TestVirtualGeneratedColumnAndLimit(t *testing.T) { } func TestIssue17791(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -4520,8 +4424,7 @@ func TestIssue17791(t *testing.T) { } func TestIssue15986(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4554,8 +4457,7 @@ func TestIssue15986(t *testing.T) { } func TestNegativeZeroForHashJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4570,8 +4472,7 @@ func TestNegativeZeroForHashJoin(t *testing.T) { } func TestIssue1223(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4625,8 +4526,7 @@ func TestIssue1223(t *testing.T) { } func TestIssue15743(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4637,8 +4537,7 @@ func TestIssue15743(t *testing.T) { } func TestIssue15725(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4650,8 +4549,7 @@ func TestIssue15725(t *testing.T) { } func TestIssue15790(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4664,8 +4562,7 @@ func TestIssue15790(t *testing.T) { } func TestIssue15990(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4679,8 +4576,7 @@ func TestIssue15990(t *testing.T) { } func TestIssue15992(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4692,8 +4588,7 @@ func TestIssue15992(t *testing.T) { } func TestCTEWithDML(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4721,8 +4616,7 @@ func TestCTEWithDML(t *testing.T) { } func TestIssue16419(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4735,8 +4629,7 @@ func TestIssue16419(t *testing.T) { } func TestIssue16029(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4751,8 +4644,7 @@ func TestIssue16029(t *testing.T) { } func TestIssue16426(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4766,8 +4658,7 @@ func TestIssue16426(t *testing.T) { } func TestIssue16505(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -4781,8 +4672,7 @@ func TestIssue16505(t *testing.T) { } func TestIssue20121(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4819,8 +4709,7 @@ func TestIssue20121(t *testing.T) { } func TestIssue16779(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4832,8 +4721,7 @@ func TestIssue16779(t *testing.T) { } func TestIssue16697(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4855,8 +4743,7 @@ func TestIssue16697(t *testing.T) { } func TestIssue17045(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4868,8 +4755,7 @@ func TestIssue17045(t *testing.T) { } func TestIssue17098(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4882,8 +4768,7 @@ func TestIssue17098(t *testing.T) { } func TestIssue17115(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select collation(user());").Check(testkit.Rows("utf8mb4_bin")) @@ -4891,8 +4776,7 @@ func TestIssue17115(t *testing.T) { } func TestIndexedVirtualGeneratedColumnTruncate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4925,8 +4809,7 @@ func TestIndexedVirtualGeneratedColumnTruncate(t *testing.T) { } func TestIssue17287(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() @@ -4953,8 +4836,7 @@ func TestIssue17287(t *testing.T) { } func TestIssue17898(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4966,8 +4848,7 @@ func TestIssue17898(t *testing.T) { } func TestIssue18515(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4977,8 +4858,7 @@ func TestIssue18515(t *testing.T) { } func TestIssue20223(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4997,8 +4877,7 @@ func TestIssue20223(t *testing.T) { } func TestIssue18525(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5011,8 +4890,7 @@ func TestIssue18525(t *testing.T) { } func TestSchemaDMLNotChange(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -5028,8 +4906,7 @@ func TestSchemaDMLNotChange(t *testing.T) { } func TestIssue18850(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5049,8 +4926,7 @@ func TestIssue18850(t *testing.T) { } func TestIssue19504(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5067,8 +4943,7 @@ func TestIssue19504(t *testing.T) { } func TestIssue17767(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5085,8 +4960,7 @@ func TestIssue17767(t *testing.T) { } func TestIssue19596(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5099,8 +4973,7 @@ func TestIssue19596(t *testing.T) { } func TestIssue17476(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5125,8 +4998,7 @@ func TestIssue17476(t *testing.T) { } func TestIssue11645(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery(`SELECT DATE_ADD('1000-01-01 00:00:00', INTERVAL -2 HOUR);`).Check(testkit.Rows("0999-12-31 22:00:00")) @@ -5142,8 +5014,7 @@ func TestIssue11645(t *testing.T) { } func TestIssue14349(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -5157,8 +5028,7 @@ func TestIssue14349(t *testing.T) { } func TestIssue20180(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5179,8 +5049,7 @@ func TestIssue20180(t *testing.T) { } func TestIssue11755(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5191,8 +5060,7 @@ func TestIssue11755(t *testing.T) { } func TestIssue20369(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5204,8 +5072,7 @@ func TestIssue20369(t *testing.T) { } func TestIssue20730(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5217,8 +5084,7 @@ func TestIssue20730(t *testing.T) { } func TestIssue20860(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5229,8 +5095,7 @@ func TestIssue20860(t *testing.T) { } func TestIssue15847(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5241,8 +5106,7 @@ func TestIssue15847(t *testing.T) { } func TestIssue10462(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5281,8 +5145,7 @@ func TestIssue10462(t *testing.T) { } func TestIssue17868(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5294,8 +5157,7 @@ func TestIssue17868(t *testing.T) { } func TestIssue21619(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery(`select CAST("9223372036854775808" as json)`).Check(testkit.Rows("9223372036854775808")) @@ -5307,8 +5169,7 @@ func TestIssue21619(t *testing.T) { } func TestIssue10467(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5335,8 +5196,7 @@ func TestIssue10467(t *testing.T) { } func TestIssue19892(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test") @@ -5586,8 +5446,7 @@ func TestIssue19892(t *testing.T) { // The actual results do not agree with the test results, It should be modified after the test suite is updated func TestIssue17726(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5600,8 +5459,7 @@ func TestIssue17726(t *testing.T) { } func TestDatetimeUserVariable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @p = now()") @@ -5612,8 +5470,7 @@ func TestDatetimeUserVariable(t *testing.T) { } func TestIssue12205(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -5628,8 +5485,7 @@ func TestIssue12205(t *testing.T) { } func TestIssue21677(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -5649,8 +5505,7 @@ func TestIssue21677(t *testing.T) { } func TestIssue11333(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5668,8 +5523,7 @@ func TestIssue11333(t *testing.T) { } func TestIssue12206(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5682,8 +5536,7 @@ func TestIssue12206(t *testing.T) { } func TestCastCoer(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -5693,8 +5546,7 @@ func TestCastCoer(t *testing.T) { } func TestIssue12209(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -5707,8 +5559,7 @@ func TestIssue12209(t *testing.T) { } func TestIssue22098(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -5736,8 +5587,7 @@ func TestIssue22098(t *testing.T) { func Test22717(t *testing.T) { // For issue 22717 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5759,8 +5609,7 @@ func Test22717(t *testing.T) { } func Test23262(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5773,8 +5622,7 @@ func Test23262(t *testing.T) { func TestClusteredIndexCorCol(t *testing.T) { // For issue 23076 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5787,8 +5635,7 @@ func TestClusteredIndexCorCol(t *testing.T) { } func TestEnumPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5894,8 +5741,7 @@ func TestJiraSetInnoDBDefaultRowFormat(t *testing.T) { // For issue #23541 // JIRA needs to be able to set this to be happy. // See: https://nova.moe/run-jira-on-tidb/ - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set global innodb_default_row_format = dynamic") @@ -5907,8 +5753,7 @@ func TestJiraSetInnoDBDefaultRowFormat(t *testing.T) { } func TestIssue23623(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5919,8 +5764,7 @@ func TestIssue23623(t *testing.T) { } func TestApproximatePercentile(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5931,8 +5775,7 @@ func TestApproximatePercentile(t *testing.T) { } func TestIssue24429(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -5945,8 +5788,7 @@ func TestIssue24429(t *testing.T) { } func TestVitessHash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5976,8 +5818,7 @@ func TestVitessHash(t *testing.T) { } func TestVitessHashMatchesVitessShards(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6021,8 +5862,7 @@ func TestVitessHashMatchesVitessShards(t *testing.T) { } func TestSecurityEnhancedMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) sem.Enable() @@ -6035,8 +5875,7 @@ func TestSecurityEnhancedMode(t *testing.T) { } func TestIssue23925(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -6053,8 +5892,7 @@ func TestIssue23925(t *testing.T) { } func TestCTEInvalidUsage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -6097,8 +5935,7 @@ func TestCTEInvalidUsage(t *testing.T) { } func TestIssue23889(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6113,8 +5950,7 @@ func TestIssue23889(t *testing.T) { } func TestRefineArgNullValues(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6134,8 +5970,7 @@ func TestEnumIndex(t *testing.T) { elems[i], elems[j] = elems[j], elems[i] }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6225,8 +6060,7 @@ func TestEnumIndex(t *testing.T) { // Previously global values were cached. This is incorrect. // See: https://github.com/pingcap/tidb/issues/24368 func TestGlobalCacheCorrectness(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("SHOW VARIABLES LIKE 'max_connections'").Check(testkit.Rows("max_connections 0")) @@ -6237,8 +6071,7 @@ func TestGlobalCacheCorrectness(t *testing.T) { } func TestRedundantColumnResolve(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6270,8 +6103,7 @@ func TestRedundantColumnResolve(t *testing.T) { func TestControlFunctionWithEnumOrSet(t *testing.T) { // issue 23114 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6373,8 +6205,7 @@ func TestComplexShowVariables(t *testing.T) { // It returns 19 rows in MySQL 5.7 (the language sysvar no longer exists in 5.6+) // and 16 rows in MySQL 8.0 (the aliases for tx_isolation is removed, along with query cache) // In the event that we hide noop sysvars in future, we must keep these variables. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.Len(t, tk.MustQuery(`SHOW VARIABLES WHERE Variable_name ='language' OR Variable_name = 'net_write_timeout' OR Variable_name = 'interactive_timeout' @@ -6389,8 +6220,7 @@ OR Variable_name = 'license' OR Variable_name = 'init_connect'`).Rows(), 19) func TestBuiltinFuncJSONMergePatch_InColumn(t *testing.T) { ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -6460,8 +6290,7 @@ func TestBuiltinFuncJSONMergePatch_InColumn(t *testing.T) { func TestBuiltinFuncJSONMergePatch_InExpression(t *testing.T) { ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -6580,8 +6409,7 @@ func TestBuiltinFuncJSONMergePatch_InExpression(t *testing.T) { } func TestFloat64Inf(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select '1e800' + 1e100;").Check( @@ -6591,8 +6419,7 @@ func TestFloat64Inf(t *testing.T) { } func TestCharsetErr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6605,8 +6432,7 @@ func TestCharsetErr(t *testing.T) { } func TestIssue25591(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -6627,8 +6453,7 @@ func TestIssue25591(t *testing.T) { } func TestIssue25526(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -6643,8 +6468,7 @@ func TestIssue25526(t *testing.T) { } func TestTimestampIssue25093(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6660,8 +6484,7 @@ func TestTimestampIssue25093(t *testing.T) { } func TestIssue24953(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6674,8 +6497,7 @@ func TestIssue24953(t *testing.T) { // issue https://github.com/pingcap/tidb/issues/26111 func TestRailsFKUsage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6711,8 +6533,7 @@ func TestRailsFKUsage(t *testing.T) { func TestTranslate(t *testing.T) { cases := []string{"'ABC'", "'AABC'", "'A.B.C'", "'aaaaabbbbb'", "'abc'", "'aaa'", "NULL"} - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6747,8 +6568,7 @@ func TestTranslate(t *testing.T) { } func TestIssue26958(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -6763,8 +6583,7 @@ func TestIssue26958(t *testing.T) { } func TestConstPropNullFunctions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6784,8 +6603,7 @@ func TestConstPropNullFunctions(t *testing.T) { } func TestIssue27233(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -6797,8 +6615,7 @@ func TestIssue27233(t *testing.T) { } func TestIssue27236(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -6813,8 +6630,7 @@ func TestIssue27236(t *testing.T) { } func TestIssue26977(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) result := tk.MustQuery("select a + 1 as f from (select cast(0xfffffffffffffff0 as unsigned) as a union select cast(1 as unsigned)) t having f != 2;") @@ -6822,8 +6638,7 @@ func TestIssue26977(t *testing.T) { } func TestIssue27610(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -6835,8 +6650,7 @@ func TestIssue27610(t *testing.T) { } func TestLastInsertId(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -6852,8 +6666,7 @@ func TestLastInsertId(t *testing.T) { } func TestTimestamp(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -6902,8 +6715,7 @@ func TestTimestamp(t *testing.T) { } func TestIdentity(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test;`) @@ -6919,8 +6731,7 @@ func TestIdentity(t *testing.T) { } func TestIssue28804(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6945,8 +6756,7 @@ PARTITION p20210909 VALUES LESS THAN (1631203200) } func TestIssue28643(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6961,8 +6771,7 @@ func TestIssue28643(t *testing.T) { } func TestIssue27831(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6978,8 +6787,7 @@ func TestIssue27831(t *testing.T) { } func TestIssue29434(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6999,8 +6807,7 @@ func TestIssue29434(t *testing.T) { } func TestIssue29417(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7011,8 +6818,7 @@ func TestIssue29417(t *testing.T) { } func TestIssue29244(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7027,8 +6833,7 @@ func TestIssue29244(t *testing.T) { } func TestIssue29513(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7043,8 +6848,7 @@ func TestIssue29513(t *testing.T) { } func TestIssue29755(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7058,8 +6862,7 @@ func TestIssue29755(t *testing.T) { } func TestIssue30101(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7070,8 +6873,7 @@ func TestIssue30101(t *testing.T) { } func TestIssue28739(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`USE test`) @@ -7092,8 +6894,7 @@ func TestIssue28739(t *testing.T) { } func TestIssue30326(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7106,8 +6907,7 @@ func TestIssue30326(t *testing.T) { } func TestIssue30174(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1,t2;") @@ -7120,8 +6920,7 @@ func TestIssue30174(t *testing.T) { } func TestIssue30264(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7182,8 +6981,7 @@ func TestIssue30264(t *testing.T) { } func TestIssue29708(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -7222,8 +7020,7 @@ func TestIssue29708(t *testing.T) { } func TestIssue22206(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7240,8 +7037,7 @@ func TestIssue22206(t *testing.T) { } func TestIssue32488(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7256,8 +7052,7 @@ func TestIssue32488(t *testing.T) { } func TestIssue33397(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7269,8 +7064,7 @@ func TestIssue33397(t *testing.T) { } func TestIssue34659(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7335,8 +7129,7 @@ func TestIssue34659(t *testing.T) { } func TestIssue31799(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7352,8 +7145,7 @@ func TestIssue31799(t *testing.T) { } func TestIssue31867(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set time_zone = '+00:00'") @@ -7392,8 +7184,7 @@ func TestIssue31867(t *testing.T) { } func TestIssue31600(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set time_zone = '+00:00'") @@ -7465,8 +7256,7 @@ func TestIssue31600(t *testing.T) { } func TestDateAddForNonExistingTimestamp(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set time_zone = 'CET'") @@ -7489,8 +7279,7 @@ func TestDateAddForNonExistingTimestamp(t *testing.T) { } func TestImcompleteDateFunc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustQuery("select to_seconds('1998-10-00')").Check(testkit.Rows("")) @@ -7518,8 +7307,7 @@ func TestImcompleteDateFunc(t *testing.T) { } func TestIssue36279(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("SET timestamp=UNIX_TIMESTAMP('2011-11-01 17:48:00')") @@ -7535,8 +7323,7 @@ func TestIssue36279(t *testing.T) { } func TestIssue34998(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("CREATE TABLE `PK_S_MULTI_43`(`COL1` time(2) NOT NULL, `COL2` time(2) NOT NULL, `COL3` time(2) DEFAULT NULL, PRIMARY KEY(`COL1`,`COL2`))") @@ -7546,8 +7333,7 @@ func TestIssue34998(t *testing.T) { } func TestIssue36358(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(c datetime(6))") diff --git a/expression/typeinfer_test.go b/expression/typeinfer_test.go index d559460b21f59..0234b8e9b2e87 100644 --- a/expression/typeinfer_test.go +++ b/expression/typeinfer_test.go @@ -35,8 +35,7 @@ import ( ) func TestInferType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) s := InferTypeSuite{} se, err := session.CreateSession4Test(store) diff --git a/infoschema/cluster_tables_test.go b/infoschema/cluster_tables_test.go index 5e347480bbb22..dbb7345d79169 100644 --- a/infoschema/cluster_tables_test.go +++ b/infoschema/cluster_tables_test.go @@ -64,10 +64,8 @@ type clusterTablesSuite struct { func TestForClusterServerInfo(t *testing.T) { // setup suite - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() @@ -148,10 +146,8 @@ func TestForClusterServerInfo(t *testing.T) { func TestTestDataLockWaits(t *testing.T) { // setup suite - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() @@ -182,10 +178,8 @@ func TestTestDataLockWaits(t *testing.T) { func SubTestDataLockWaitsPrivilege(t *testing.T) { // setup suite - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() @@ -218,10 +212,8 @@ func SubTestDataLockWaitsPrivilege(t *testing.T) { func TestSelectClusterTable(t *testing.T) { // setup suite - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() @@ -277,10 +269,8 @@ func TestSelectClusterTable(t *testing.T) { func SubTestSelectClusterTablePrivilege(t *testing.T) { // setup suite - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() @@ -335,10 +325,8 @@ select * from t3; func TestStmtSummaryEvictedCountTable(t *testing.T) { // setup suite - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() @@ -398,10 +386,8 @@ func TestStmtSummaryEvictedCountTable(t *testing.T) { } func TestStmtSummaryIssue35340(t *testing.T) { - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) tk := s.newTestKitWithRoot(t) tk.MustExec("set global tidb_stmt_summary_refresh_interval=1800") @@ -432,10 +418,8 @@ func TestStmtSummaryIssue35340(t *testing.T) { func TestStmtSummaryHistoryTableWithUserTimezone(t *testing.T) { // setup suite - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() @@ -486,10 +470,8 @@ func TestStmtSummaryHistoryTableWithUserTimezone(t *testing.T) { func TestStmtSummaryHistoryTable(t *testing.T) { // setup suite - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() @@ -546,10 +528,8 @@ func TestStmtSummaryHistoryTable(t *testing.T) { } func TestIssue26379(t *testing.T) { - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() @@ -606,10 +586,8 @@ func TestIssue26379(t *testing.T) { func TestStmtSummaryResultRows(t *testing.T) { // setup suite - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() @@ -645,10 +623,8 @@ func TestStmtSummaryResultRows(t *testing.T) { } func TestSlowQueryOOM(t *testing.T) { - var clean func() s := new(clusterTablesSuite) - s.store, s.dom, clean = testkit.CreateMockStoreAndDomain(t) - defer clean() + s.store, s.dom = testkit.CreateMockStoreAndDomain(t) s.rpcserver, s.listenAddr = s.setUpRPCService(t, "127.0.0.1:0") s.httpServer, s.mockAddr = s.setUpMockPDHTTPServer() s.startTime = time.Now() diff --git a/infoschema/infoschema_test.go b/infoschema/infoschema_test.go index 93711225d3ce9..c7629f65f113e 100644 --- a/infoschema/infoschema_test.go +++ b/infoschema/infoschema_test.go @@ -316,8 +316,7 @@ func genGlobalID(store kv.Storage) (int64, error) { } func TestBuildBundle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -659,8 +658,7 @@ func TestLocalTemporaryTables(t *testing.T) { } func TestIndexComment(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/infoschema/perfschema/tables_test.go b/infoschema/perfschema/tables_test.go index 3fa8f0cd51c1c..577c859408090 100644 --- a/infoschema/perfschema/tables_test.go +++ b/infoschema/perfschema/tables_test.go @@ -40,8 +40,7 @@ func TestPredefinedTables(t *testing.T) { } func TestPerfSchemaTables(t *testing.T) { - store, clean := newMockStore(t) - defer clean() + store := newMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use performance_schema") @@ -52,8 +51,7 @@ func TestPerfSchemaTables(t *testing.T) { } func TestSessionVariables(t *testing.T) { - store, clean := newMockStore(t) - defer clean() + store := newMockStore(t) tk := testkit.NewTestKit(t, store) res := tk.MustQuery("select variable_value from performance_schema.session_variables order by variable_name limit 10;") @@ -61,8 +59,7 @@ func TestSessionVariables(t *testing.T) { } func TestTiKVProfileCPU(t *testing.T) { - store, clean := newMockStore(t) - defer clean() + store := newMockStore(t) router := http.NewServeMux() mockServer := httptest.NewServer(router) @@ -187,20 +184,19 @@ func TestTiKVProfileCPU(t *testing.T) { require.Lenf(t, accessed, 5, "expect all HTTP API had been accessed, but found: %v", accessed) } -func newMockStore(t *testing.T) (store kv.Storage, clean func()) { - var err error - store, err = mockstore.NewMockStore() +func newMockStore(t *testing.T) kv.Storage { + store, err := mockstore.NewMockStore() require.NoError(t, err) session.DisableStats4Test() dom, err := session.BootstrapSession(store) require.NoError(t, err) - clean = func() { + t.Cleanup(func() { dom.Close() err := store.Close() require.NoError(t, err) - } + }) - return + return store } diff --git a/infoschema/tables_test.go b/infoschema/tables_test.go index 549652372bd2f..7dbce0dc7c3f2 100644 --- a/infoschema/tables_test.go +++ b/infoschema/tables_test.go @@ -62,8 +62,7 @@ func newTestKitWithPlanCache(t *testing.T, store kv.Storage) *testkit.TestKit { } func TestInfoSchemaFieldValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -173,8 +172,7 @@ func TestInfoSchemaFieldValue(t *testing.T) { } func TestCharacterSetCollations(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -248,8 +246,7 @@ func TestCharacterSetCollations(t *testing.T) { } func TestCurrentTimestampAsDefault(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -327,8 +324,7 @@ func (sm *mockSessionManager) GetInternalSessionStartTSList() []uint64 { } func TestSomeTables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -504,8 +500,7 @@ INSERT INTO ...; } func TestTableRowIDShardingInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("DROP DATABASE IF EXISTS `sharding_info_test_db`") @@ -555,8 +550,7 @@ func TestTableRowIDShardingInfo(t *testing.T) { } func TestSlowQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // Prepare slow log file. @@ -597,8 +591,7 @@ func TestSlowQuery(t *testing.T) { } func TestColumnStatistics(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select * from information_schema.column_statistics").Check(testkit.Rows()) @@ -606,8 +599,7 @@ func TestColumnStatistics(t *testing.T) { func TestTableIfHasColumn(t *testing.T) { columnName := variable.SlowLogHasMoreResults - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) slowLogFileName := "tidb-slow.log" f, err := os.OpenFile(slowLogFileName, os.O_CREATE|os.O_WRONLY, 0644) require.NoError(t, err) @@ -633,8 +625,7 @@ WHERE table_name = 'slow_query' and column_name = '` + columnName + `'`). } func TestReloadDropDatabase(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_dbs") @@ -654,8 +645,7 @@ func TestReloadDropDatabase(t *testing.T) { } func TestSystemSchemaID(t *testing.T) { - _, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + _, dom := testkit.CreateMockStoreAndDomain(t) uniqueIDMap := make(map[int64]string) checkSystemSchemaTableID(t, dom, "information_schema", autoid.InformationSchemaDBID, 1, 10000, uniqueIDMap) @@ -685,8 +675,7 @@ func checkSystemSchemaTableID(t *testing.T, dom *domain.Domain, dbName string, d } func TestSelectHiddenColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("DROP DATABASE IF EXISTS `test_hidden`;") @@ -738,8 +727,7 @@ func TestFormatVersion(t *testing.T) { // TestStmtSummaryTable Test statements_summary. func TestStmtSummaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) @@ -916,8 +904,7 @@ func TestStmtSummaryTable(t *testing.T) { } func TestStmtSummaryTablePrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) @@ -973,8 +960,7 @@ func TestStmtSummaryTablePrivilege(t *testing.T) { } func TestCapturePrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) @@ -1029,8 +1015,7 @@ func TestCapturePrivilege(t *testing.T) { } func TestIssue18845(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER 'user18845'@'localhost';`) @@ -1045,8 +1030,7 @@ func TestIssue18845(t *testing.T) { // TestStmtSummaryInternalQuery Test statements_summary_history. func TestStmtSummaryInternalQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) originalVal := config.CheckTableBeforeDrop @@ -1104,8 +1088,7 @@ func TestStmtSummaryInternalQuery(t *testing.T) { // TestStmtSummaryErrorCount Test error count and warning count. func TestStmtSummaryErrorCount(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) @@ -1129,8 +1112,7 @@ func TestStmtSummaryErrorCount(t *testing.T) { } func TestStmtSummaryPreparedStatements(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) @@ -1152,8 +1134,7 @@ func TestStmtSummaryPreparedStatements(t *testing.T) { } func TestStmtSummarySensitiveQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) tk.MustExec("set global tidb_enable_stmt_summary = 0") @@ -1175,8 +1156,7 @@ func TestStmtSummarySensitiveQuery(t *testing.T) { // TestSimpleStmtSummaryEvictedCount test stmtSummaryEvictedCount func TestSimpleStmtSummaryEvictedCount(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) now := time.Now().Unix() interval := int64(1800) @@ -1253,8 +1233,7 @@ func TestSimpleStmtSummaryEvictedCount(t *testing.T) { } func TestStmtSummaryEvictedPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) interval := int64(1800) tk := newTestKitWithRoot(t, store) @@ -1287,8 +1266,7 @@ func TestStmtSummaryEvictedPointGet(t *testing.T) { } func TestStmtSummaryTableOther(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) interval := int64(1800) tk := newTestKitWithRoot(t, store) @@ -1321,8 +1299,7 @@ func TestStmtSummaryTableOther(t *testing.T) { } func TestStmtSummaryHistoryTableOther(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) // disable refreshing summary @@ -1358,8 +1335,7 @@ func TestStmtSummaryHistoryTableOther(t *testing.T) { } func TestPerformanceSchemaforPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tmp := testkit.NewTestKit(t, store) defer tmp.MustExec("set global tidb_enable_prepared_plan_cache=" + variable.BoolToOnOff(variable.EnablePreparedPlanCache.Load())) tmp.MustExec("set global tidb_enable_prepared_plan_cache=ON") @@ -1402,8 +1378,7 @@ func TestServerInfoResolveLoopBackAddr(t *testing.T) { } func TestInfoSchemaClientErrors(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) @@ -1429,8 +1404,7 @@ func TestInfoSchemaClientErrors(t *testing.T) { } func TestTiDBTrx(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) tk.MustExec("drop table if exists test_tidb_trx") @@ -1479,8 +1453,7 @@ func TestTiDBTrx(t *testing.T) { } func TestTiDBTrxSummary(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) tk.MustExec("drop table if exists test_tidb_trx") @@ -1510,8 +1483,7 @@ func TestTiDBTrxSummary(t *testing.T) { } func TestInfoSchemaDeadlockPrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := newTestKitWithRoot(t, store) tk.MustExec("create user 'testuser'@'localhost'") @@ -1534,8 +1506,7 @@ func TestInfoSchemaDeadlockPrivilege(t *testing.T) { } func TestAttributes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // test the failpoint for testing fpName := "github.com/pingcap/tidb/executor/mockOutputOfAttributes" @@ -1551,8 +1522,7 @@ func TestAttributes(t *testing.T) { } func TestReferentialConstraints(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -1566,8 +1536,7 @@ func TestReferentialConstraints(t *testing.T) { } func TestVariablesInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -1614,8 +1583,7 @@ func TestVariablesInfo(t *testing.T) { // TestTableConstraintsContainForeignKeys TiDB Issue: https://github.com/pingcap/tidb/issues/28918 func TestTableConstraintsContainForeignKeys(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE tableconstraints") tk.MustExec("use tableconstraints") diff --git a/planner/cascades/integration_test.go b/planner/cascades/integration_test.go index b41a992f156d7..e3a7b750373ec 100644 --- a/planner/cascades/integration_test.go +++ b/planner/cascades/integration_test.go @@ -25,8 +25,7 @@ import ( ) func TestSimpleProjDual(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_cascades_planner = 1") @@ -38,8 +37,7 @@ func TestSimpleProjDual(t *testing.T) { } func TestPKIsHandleRangeScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -68,8 +66,7 @@ func TestPKIsHandleRangeScan(t *testing.T) { } func TestIndexScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -98,8 +95,7 @@ func TestIndexScan(t *testing.T) { } func TestBasicShow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -113,8 +109,7 @@ func TestBasicShow(t *testing.T) { } func TestSort(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -142,8 +137,7 @@ func TestSort(t *testing.T) { } func TestAggregation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -208,8 +202,7 @@ func doTestPushdownDistinct(t *testing.T, vars, input []string, output []struct Plan []string Result []string }) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -237,8 +230,7 @@ func doTestPushdownDistinct(t *testing.T, vars, input []string, output []struct } func TestSimplePlans(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -266,8 +258,7 @@ func TestSimplePlans(t *testing.T) { } func TestJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -301,8 +292,7 @@ func TestJoin(t *testing.T) { } func TestApply(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -332,8 +322,7 @@ func TestApply(t *testing.T) { } func TestMemTableScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -358,8 +347,7 @@ func TestMemTableScan(t *testing.T) { } func TestTopN(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -387,8 +375,7 @@ func TestTopN(t *testing.T) { } func TestCascadePlannerHashedPartTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -421,8 +408,7 @@ func TestCascadePlannerHashedPartTable(t *testing.T) { } func TestInlineProjection(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/planner/core/binary_plan_test.go b/planner/core/binary_plan_test.go index 056972f5917a5..2377235ecab16 100644 --- a/planner/core/binary_plan_test.go +++ b/planner/core/binary_plan_test.go @@ -77,8 +77,7 @@ func simplifyAndCheckBinaryOperator(t *testing.T, pb *tipb.ExplainOperator, with } func TestBinaryPlanInExplainAndSlowLog(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") // If we don't set this, it will be false sometimes and the cost in the result will be different. @@ -149,8 +148,7 @@ func TestBinaryPlanInExplainAndSlowLog(t *testing.T) { } func TestBinaryPlanSwitch(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) @@ -220,8 +218,7 @@ func TestBinaryPlanSwitch(t *testing.T) { // TestTooLongBinaryPlan asserts that if the binary plan is larger than 1024*1024 bytes, it should be output to slow query but not to stmt summary. func TestTooLongBinaryPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) @@ -283,8 +280,7 @@ func TestTooLongBinaryPlan(t *testing.T) { // TestLongBinaryPlan asserts that if the binary plan is smaller than 1024*1024 bytes, it should be output to both slow query and stmt summary. // The size of the binary plan in this test case is designed to be larger than 1024*1024*0.85 bytes but smaller than 1024*1024 bytes. func TestLongBinaryPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) @@ -339,8 +335,7 @@ func TestLongBinaryPlan(t *testing.T) { } func TestBinaryPlanOfPreparedStmt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) @@ -393,8 +388,7 @@ func TestBinaryPlanOfPreparedStmt(t *testing.T) { // TestDecodeBinaryPlan asserts that the result of EXPLAIN ANALYZE FORMAT = 'verbose' is the same as tidb_decode_binary_plan(). func TestDecodeBinaryPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -487,8 +481,7 @@ func TestDecodeBinaryPlan(t *testing.T) { } func TestInvalidDecodeBinaryPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -505,8 +498,7 @@ func TestInvalidDecodeBinaryPlan(t *testing.T) { } func TestUnnecessaryBinaryPlanInSlowLog(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) diff --git a/planner/core/cacheable_checker_test.go b/planner/core/cacheable_checker_test.go index c945f84d8264e..50a7852bc6c5b 100644 --- a/planner/core/cacheable_checker_test.go +++ b/planner/core/cacheable_checker_test.go @@ -28,8 +28,7 @@ import ( ) func TestCacheable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) diff --git a/planner/core/cbo_test.go b/planner/core/cbo_test.go index fce856f54c78f..f1dce2c139163 100644 --- a/planner/core/cbo_test.go +++ b/planner/core/cbo_test.go @@ -57,8 +57,7 @@ func loadTableStats(fileName string, dom *domain.Domain) error { } func TestExplainAnalyze(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set sql_mode='STRICT_TRANS_TABLES'") // disable only full group by @@ -82,8 +81,7 @@ func TestExplainAnalyze(t *testing.T) { // TestCBOWithoutAnalyze tests the plan with stats that only have count info. func TestCBOWithoutAnalyze(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t1 (a int)") @@ -113,8 +111,7 @@ func TestCBOWithoutAnalyze(t *testing.T) { } func TestStraightJoin(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") h := dom.StatsHandle() @@ -135,8 +132,7 @@ func TestStraightJoin(t *testing.T) { } func TestTableDual(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec(`use test`) @@ -165,8 +161,7 @@ func TestTableDual(t *testing.T) { } func TestEstimation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) statistics.RatioOfPseudoEstimate.Store(10.0) defer statistics.RatioOfPseudoEstimate.Store(0.7) @@ -213,8 +208,7 @@ func constructInsertSQL(i, n int) string { } func TestIndexRead(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("set @@session.tidb_executor_concurrency = 4;") testKit.MustExec("set @@session.tidb_hash_join_concurrency = 5;") @@ -264,8 +258,7 @@ func TestIndexRead(t *testing.T) { } func TestEmptyTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t, t1") @@ -295,8 +288,7 @@ func TestEmptyTable(t *testing.T) { } func TestAnalyze(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t, t1, t2, t3") @@ -363,8 +355,7 @@ func TestAnalyze(t *testing.T) { } func TestOutdatedAnalyze(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (a int, b int, index idx(a))") @@ -408,8 +399,7 @@ func TestOutdatedAnalyze(t *testing.T) { } func TestNullCount(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -438,8 +428,7 @@ func TestNullCount(t *testing.T) { } func TestCorrelatedEstimation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set sql_mode='STRICT_TRANS_TABLES'") // disable only full group by @@ -462,8 +451,7 @@ func TestCorrelatedEstimation(t *testing.T) { } func TestInconsistentEstimation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int, b int, c int, index ab(a,b), index ac(a,c))") @@ -495,8 +483,7 @@ func TestInconsistentEstimation(t *testing.T) { } func BenchmarkOptimize(b *testing.B) { - store, clean := testkit.CreateMockStore(b) - defer clean() + store := testkit.CreateMockStore(b) testKit := testkit.NewTestKit(b, store) testKit.MustExec("use test") @@ -613,8 +600,7 @@ func BenchmarkOptimize(b *testing.B) { } func TestIssue9562(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -644,8 +630,7 @@ func TestIssue9562(t *testing.T) { } func TestIssue9805(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -673,8 +658,7 @@ func TestIssue9805(t *testing.T) { } func TestLimitCrossEstimation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@session.tidb_executor_concurrency = 4;") @@ -709,8 +693,7 @@ func TestLimitCrossEstimation(t *testing.T) { } func TestLowSelIndexGreedySearch(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec(`set tidb_opt_limit_push_down_threshold=0`) @@ -737,8 +720,7 @@ func TestLowSelIndexGreedySearch(t *testing.T) { } func TestUpdateProjEliminate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -747,8 +729,7 @@ func TestUpdateProjEliminate(t *testing.T) { } func TestTiFlashCostModel(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -781,8 +762,7 @@ func TestTiFlashCostModel(t *testing.T) { } func TestIndexEqualUnknown(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t, t1") @@ -806,8 +786,7 @@ func TestIndexEqualUnknown(t *testing.T) { } func TestLimitIndexEstimation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -835,8 +814,7 @@ func TestLimitIndexEstimation(t *testing.T) { } func TestBatchPointGetTablePartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t1,t2,t3,t4,t5,t6") @@ -1077,8 +1055,7 @@ func TestBatchPointGetTablePartition(t *testing.T) { // TestAppendIntPkToIndexTailForRangeBuilding tests for issue25219 https://github.com/pingcap/tidb/issues/25219. func TestAppendIntPkToIndexTailForRangeBuilding(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t25219(a int primary key, col3 int, col1 int, index idx(col3))") diff --git a/planner/core/enforce_mpp_test.go b/planner/core/enforce_mpp_test.go index 3dc1453fe05c5..f3cde0a08adb4 100644 --- a/planner/core/enforce_mpp_test.go +++ b/planner/core/enforce_mpp_test.go @@ -31,8 +31,7 @@ import ( ) func TestSetVariables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test value limit of tidb_opt_tiflash_concurrency_factor @@ -50,8 +49,7 @@ func TestSetVariables(t *testing.T) { } func TestRowSizeInMPP(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -86,8 +84,7 @@ func TestRowSizeInMPP(t *testing.T) { } func TestEnforceMPP(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test query @@ -152,8 +149,7 @@ func TestEnforceMPP(t *testing.T) { // general cases. func TestEnforceMPPWarning1(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test query @@ -223,8 +219,7 @@ func TestEnforceMPPWarning1(t *testing.T) { // partition table. func TestEnforceMPPWarning2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test query @@ -275,8 +270,7 @@ func TestEnforceMPPWarning2(t *testing.T) { // new collation. func TestEnforceMPPWarning3(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test query @@ -336,8 +330,7 @@ func TestEnforceMPPWarning3(t *testing.T) { // Test enforce mpp warning for joins func TestEnforceMPPWarning4(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test table @@ -390,8 +383,7 @@ func TestEnforceMPPWarning4(t *testing.T) { // Test agg push down for MPP mode func TestMPP2PhaseAggPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test table @@ -444,8 +436,7 @@ func TestMPP2PhaseAggPushDown(t *testing.T) { // Test skewed group distinct aggregate rewrite for MPP mode func TestMPPSkewedGroupDistinctRewrite(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test table diff --git a/planner/core/expression_rewriter_test.go b/planner/core/expression_rewriter_test.go index 98bf5e0b4e0b8..3de3509c3e093 100644 --- a/planner/core/expression_rewriter_test.go +++ b/planner/core/expression_rewriter_test.go @@ -26,8 +26,7 @@ import ( ) func TestIfNullEliminateColName(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -51,8 +50,7 @@ func TestIfNullEliminateColName(t *testing.T) { } func TestBinaryOpFunction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -63,8 +61,7 @@ func TestBinaryOpFunction(t *testing.T) { } func TestDefaultFunction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -145,8 +142,7 @@ func TestDefaultFunction(t *testing.T) { } func TestCompareSubquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -243,8 +239,7 @@ func TestCompareSubquery(t *testing.T) { } func TestCheckFullGroupBy(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -255,8 +250,7 @@ func TestCheckFullGroupBy(t *testing.T) { } func TestPatternLikeToExpression(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select 0 like 'a string';").Check(testkit.Rows("0")) tk.MustQuery("select 0.0 like 'a string';").Check(testkit.Rows("0")) @@ -268,8 +262,7 @@ func TestPatternLikeToExpression(t *testing.T) { } func TestIssue20007(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t1, t2;") @@ -285,8 +278,7 @@ func TestIssue20007(t *testing.T) { } func TestIssue9869(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t1;") @@ -297,8 +289,7 @@ func TestIssue9869(t *testing.T) { } func TestIssue17652(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -308,8 +299,7 @@ func TestIssue17652(t *testing.T) { } func TestCompareMultiFieldsInSubquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t1, t2, t3, t4;") @@ -336,8 +326,7 @@ func TestCompareMultiFieldsInSubquery(t *testing.T) { } func TestIssue22818(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -347,8 +336,7 @@ func TestIssue22818(t *testing.T) { } func TestIssue24705(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t1,t2;") @@ -359,8 +347,7 @@ func TestIssue24705(t *testing.T) { } func TestBetweenExprCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1;") @@ -373,8 +360,7 @@ func TestBetweenExprCollation(t *testing.T) { } func TestInsertOnDuplicateLazyMoreThan1Row(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("DROP TABLE if exists t1, t2, source;") @@ -392,8 +378,7 @@ func TestInsertOnDuplicateLazyMoreThan1Row(t *testing.T) { } func TestMultiColInExpression(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t1, t2") @@ -427,8 +412,7 @@ func TestMultiColInExpression(t *testing.T) { } func TestBitFuncsReturnType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") diff --git a/planner/core/flat_plan_test.go b/planner/core/flat_plan_test.go index 4dd13e19090ad..067bd8b63acd3 100644 --- a/planner/core/flat_plan_test.go +++ b/planner/core/flat_plan_test.go @@ -64,8 +64,7 @@ func simplifyFlatPlan(p []*core.FlatOperator) []*FlatPhysicalOperatorForTest { } func TestFlatPhysicalPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/planner/core/integration_partition_test.go b/planner/core/integration_partition_test.go index 880a4809149d9..0bed9f1eb7709 100644 --- a/planner/core/integration_partition_test.go +++ b/planner/core/integration_partition_test.go @@ -30,8 +30,7 @@ import ( ) func TestListPartitionPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_push_down") tk.MustExec("use list_push_down") @@ -62,8 +61,7 @@ func TestListPartitionPushDown(t *testing.T) { } func TestListColVariousTypes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_col_partition_types") @@ -104,8 +102,7 @@ func TestListColVariousTypes(t *testing.T) { } func TestListPartitionPruning(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_pruning") @@ -147,8 +144,7 @@ func TestListPartitionPruning(t *testing.T) { } func TestListPartitionFunctions(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_pruning") @@ -181,8 +177,7 @@ func TestListPartitionFunctions(t *testing.T) { } func TestListPartitionOrderLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_order_limit") @@ -240,8 +235,7 @@ func TestListPartitionOrderLimit(t *testing.T) { } func TestListPartitionAgg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_agg") @@ -299,8 +293,7 @@ func TestListPartitionAgg(t *testing.T) { } func TestListPartitionDML(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_dml") @@ -360,8 +353,7 @@ func TestListPartitionDML(t *testing.T) { } func TestListPartitionCreation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_cre") @@ -423,8 +415,7 @@ func TestListPartitionCreation(t *testing.T) { } func TestListPartitionDDL(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_ddl") @@ -477,8 +468,7 @@ func TestListPartitionDDL(t *testing.T) { } func TestListPartitionOperations(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_op") @@ -564,8 +554,7 @@ func TestListPartitionOperations(t *testing.T) { } func TestListPartitionPrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -603,8 +592,7 @@ func TestListPartitionPrivilege(t *testing.T) { } func TestListPartitionShardBits(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_shard_bits") @@ -634,8 +622,7 @@ func TestListPartitionShardBits(t *testing.T) { } func TestListPartitionSplitRegion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_split_region") @@ -667,8 +654,7 @@ func TestListPartitionSplitRegion(t *testing.T) { } func TestListPartitionView(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_view") @@ -711,8 +697,7 @@ func TestListPartitionView(t *testing.T) { } func TestListPartitionAutoIncre(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_auto_incre") @@ -756,8 +741,7 @@ func TestListPartitionAutoIncre(t *testing.T) { } func TestListPartitionAutoRandom(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_auto_rand") @@ -791,8 +775,7 @@ func TestListPartitionAutoRandom(t *testing.T) { } func TestListPartitionInvisibleIdx(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_invisible_idx") @@ -810,8 +793,7 @@ func TestListPartitionInvisibleIdx(t *testing.T) { } func TestListPartitionCTE(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_cte") @@ -837,8 +819,7 @@ func TestListPartitionCTE(t *testing.T) { } func TestListPartitionTempTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_temp_table") @@ -854,8 +835,7 @@ func TestListPartitionTempTable(t *testing.T) { } func TestListPartitionAlterPK(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_alter_pk") @@ -884,8 +864,7 @@ func TestListPartitionAlterPK(t *testing.T) { } func TestListPartitionRandomTransaction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database list_partition_random_tran") @@ -937,8 +916,7 @@ func TestListPartitionRandomTransaction(t *testing.T) { } func TestIssue27018(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database issue_27018") @@ -964,8 +942,7 @@ PARTITION BY LIST COLUMNS(col1) ( } func TestIssue27017(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database issue_27017") @@ -993,8 +970,7 @@ PARTITION BY LIST COLUMNS(col1) ( } func TestIssue27544(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database issue_27544") @@ -1010,8 +986,7 @@ func TestIssue27544(t *testing.T) { } func TestIssue27012(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database issue_27012") @@ -1040,8 +1015,7 @@ PARTITION BY LIST COLUMNS(col1) ( } func TestIssue27030(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database issue_27030") @@ -1062,8 +1036,7 @@ PARTITION BY LIST COLUMNS(col1) ( } func TestIssue27070(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database issue_27070") @@ -1074,8 +1047,7 @@ func TestIssue27070(t *testing.T) { } func TestIssue27031(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database issue_27031") @@ -1092,8 +1064,7 @@ PARTITION BY LIST COLUMNS(col1) ( } func TestIssue27493(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database issue_27493") @@ -1121,8 +1092,7 @@ func genListPartition(begin, end int) string { } func TestIssue27532(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database issue_27532") diff --git a/planner/core/integration_test.go b/planner/core/integration_test.go index e4534dabf78f5..1a2d7ac13b93b 100644 --- a/planner/core/integration_test.go +++ b/planner/core/integration_test.go @@ -45,8 +45,7 @@ import ( ) func TestShowSubquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -78,8 +77,7 @@ func TestShowSubquery(t *testing.T) { } func TestJoinOperatorRightAssociative(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -93,8 +91,7 @@ func TestJoinOperatorRightAssociative(t *testing.T) { } func TestPpdWithSetVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -106,8 +103,7 @@ func TestPpdWithSetVar(t *testing.T) { } func TestBitColErrorMessage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -121,8 +117,7 @@ func TestBitColErrorMessage(t *testing.T) { } func TestAggPushDownLeftJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -165,8 +160,7 @@ func TestAggPushDownLeftJoin(t *testing.T) { } func TestPushLimitDownIndexLookUpReader(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@session.tidb_executor_concurrency = 4;") @@ -195,8 +189,7 @@ func TestPushLimitDownIndexLookUpReader(t *testing.T) { } func TestAggColumnPrune(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -221,8 +214,7 @@ func TestAggColumnPrune(t *testing.T) { } func TestIsFromUnixtimeNullRejective(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t;`) @@ -244,8 +236,7 @@ func TestIsFromUnixtimeNullRejective(t *testing.T) { } func TestIssue22298(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t;`) @@ -254,8 +245,7 @@ func TestIssue22298(t *testing.T) { } func TestIssue24571(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create view v as select 1 as b;`) @@ -270,8 +260,7 @@ func TestIssue24571(t *testing.T) { } func TestBuildUpdateListResolver(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -294,8 +283,7 @@ func TestBuildUpdateListResolver(t *testing.T) { } func TestIssue22828(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t1;`) @@ -304,8 +292,7 @@ func TestIssue22828(t *testing.T) { } func TestJoinNotNullFlag(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -319,8 +306,7 @@ func TestJoinNotNullFlag(t *testing.T) { } func TestAntiJoinConstProp(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -360,8 +346,7 @@ func TestAntiJoinConstProp(t *testing.T) { } func TestSimplifyOuterJoinWithCast(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -385,8 +370,7 @@ func TestSimplifyOuterJoinWithCast(t *testing.T) { } func TestNoneAccessPathsFoundByIsolationRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -416,8 +400,7 @@ func TestNoneAccessPathsFoundByIsolationRead(t *testing.T) { } func TestSelPushDownTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -458,8 +441,7 @@ func TestSelPushDownTiFlash(t *testing.T) { } func TestVerboseExplain(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`set tidb_opt_limit_push_down_threshold=0`) @@ -515,8 +497,7 @@ func TestVerboseExplain(t *testing.T) { } func TestPushDownToTiFlashWithKeepOrder(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -556,8 +537,7 @@ func TestPushDownToTiFlashWithKeepOrder(t *testing.T) { } func TestPushDownToTiFlashWithKeepOrderInFastMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -598,8 +578,7 @@ func TestPushDownToTiFlashWithKeepOrderInFastMode(t *testing.T) { } func TestMPPJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists d1_t") @@ -654,8 +633,7 @@ func TestMPPJoin(t *testing.T) { } func TestMPPLeftSemiJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // test table @@ -705,8 +683,7 @@ func TestMPPLeftSemiJoin(t *testing.T) { } func TestMPPOuterJoinBuildSideForBroadcastJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists a") @@ -752,8 +729,7 @@ func TestMPPOuterJoinBuildSideForBroadcastJoin(t *testing.T) { } func TestMPPOuterJoinBuildSideForShuffleJoinWithFixedBuildSide(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists a") @@ -799,8 +775,7 @@ func TestMPPOuterJoinBuildSideForShuffleJoinWithFixedBuildSide(t *testing.T) { } func TestMPPOuterJoinBuildSideForShuffleJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists a") @@ -846,8 +821,7 @@ func TestMPPOuterJoinBuildSideForShuffleJoin(t *testing.T) { } func TestMPPShuffledJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists d1_t") @@ -909,8 +883,7 @@ func TestMPPShuffledJoin(t *testing.T) { } func TestMPPJoinWithCanNotFoundColumnInSchemaColumnsError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -961,8 +934,7 @@ func TestMPPJoinWithCanNotFoundColumnInSchemaColumnsError(t *testing.T) { } func TestJoinNotSupportedByTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1020,8 +992,7 @@ func TestJoinNotSupportedByTiFlash(t *testing.T) { } func TestMPPWithHashExchangeUnderNewCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists table_1") @@ -1070,8 +1041,7 @@ func TestMPPWithHashExchangeUnderNewCollation(t *testing.T) { } func TestMPPWithBroadcastExchangeUnderNewCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists table_1") @@ -1113,8 +1083,7 @@ func TestMPPWithBroadcastExchangeUnderNewCollation(t *testing.T) { } func TestPartitionTableDynamicModeUnderNewCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_new_collation") tk.MustExec("use test_new_collation") @@ -1153,8 +1122,7 @@ func TestPartitionTableDynamicModeUnderNewCollation(t *testing.T) { } func TestMPPAvgRewrite(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists table_1") @@ -1196,8 +1164,7 @@ func TestMPPAvgRewrite(t *testing.T) { } func TestAggPushDownEngine(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1234,8 +1201,7 @@ func TestAggPushDownEngine(t *testing.T) { } func TestIssue15110(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists crm_rd_150m") @@ -1271,8 +1237,7 @@ func TestIssue15110(t *testing.T) { } func TestReadFromStorageHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1315,8 +1280,7 @@ func TestReadFromStorageHint(t *testing.T) { } func TestReadFromStorageHintAndIsolationRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1358,8 +1322,7 @@ func TestReadFromStorageHintAndIsolationRead(t *testing.T) { } func TestIsolationReadTiFlashNotChoosePointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1396,8 +1359,7 @@ func TestIsolationReadTiFlashNotChoosePointGet(t *testing.T) { } func TestIsolationReadTiFlashUseIndexHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1438,8 +1400,7 @@ func TestIsolationReadTiFlashUseIndexHint(t *testing.T) { } func TestIsolationReadDoNotFilterSystemDB(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1462,8 +1423,7 @@ func TestIsolationReadDoNotFilterSystemDB(t *testing.T) { } func TestPartitionTableStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) { tk.MustExec(`set @@tidb_partition_prune_mode='` + string(variable.Static) + `'`) @@ -1492,8 +1452,7 @@ func TestPartitionTableStats(t *testing.T) { } func TestPartitionPruningForInExpr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1518,8 +1477,7 @@ func TestPartitionPruningForInExpr(t *testing.T) { } func TestPartitionPruningWithDateType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1534,8 +1492,7 @@ func TestPartitionPruningWithDateType(t *testing.T) { } func TestPartitionPruningForEQ(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1560,8 +1517,7 @@ func TestPartitionPruningForEQ(t *testing.T) { } func TestErrNoDB(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create user test") _, err := tk.Exec("grant select on test1111 to test@'%'") @@ -1576,8 +1532,7 @@ func TestErrNoDB(t *testing.T) { } func TestMaxMinEliminate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1603,8 +1558,7 @@ func TestMaxMinEliminate(t *testing.T) { } func TestINLJHintSmallTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -1617,8 +1571,7 @@ func TestINLJHintSmallTable(t *testing.T) { } func TestIndexJoinUniqueCompositeIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1647,8 +1600,7 @@ func TestIndexJoinUniqueCompositeIndex(t *testing.T) { } func TestIndexMerge(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1672,8 +1624,7 @@ func TestIndexMerge(t *testing.T) { } func TestIndexMergeHint4CNF(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1697,8 +1648,7 @@ func TestIndexMergeHint4CNF(t *testing.T) { } func TestInvisibleIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1743,8 +1693,7 @@ func TestInvisibleIndex(t *testing.T) { // for issue #14822 func TestIndexJoinTableRange(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1769,8 +1718,7 @@ func TestIndexJoinTableRange(t *testing.T) { } func TestTopNByConstFunc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustQuery("select max(t.col) from (select 'a' as col union all select '' as col) as t").Check(testkit.Rows( @@ -1779,8 +1727,7 @@ func TestTopNByConstFunc(t *testing.T) { } func TestSubqueryWithTopN(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1804,8 +1751,7 @@ func TestSubqueryWithTopN(t *testing.T) { } func TestIndexHintWarning(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -1847,8 +1793,7 @@ func TestIndexHintWarning(t *testing.T) { } func TestIssue32672(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1866,8 +1811,7 @@ func TestIssue32672(t *testing.T) { } func TestIssue15546(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1882,8 +1826,7 @@ func TestIssue15546(t *testing.T) { } func TestApproxCountDistinctInPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1905,8 +1848,7 @@ func TestApproxCountDistinctInPartitionTable(t *testing.T) { } func TestApproxPercentile(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1934,8 +1876,7 @@ func TestApproxPercentile(t *testing.T) { } func TestIssue17813(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1947,8 +1888,7 @@ func TestIssue17813(t *testing.T) { } func TestHintWithRequiredProperty(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@session.tidb_executor_concurrency = 4;") tk.MustExec("set @@session.tidb_hash_join_concurrency = 5;") @@ -1984,8 +1924,7 @@ func TestHintWithRequiredProperty(t *testing.T) { } func TestIssue15813(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1998,8 +1937,7 @@ func TestIssue15813(t *testing.T) { } func TestIssue31261(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`use test`) @@ -2019,8 +1957,7 @@ func TestIssue31261(t *testing.T) { } func TestFullGroupByOrderBy(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2032,8 +1969,7 @@ func TestFullGroupByOrderBy(t *testing.T) { } func TestHintWithoutTableWarning(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -2067,8 +2003,7 @@ func TestHintWithoutTableWarning(t *testing.T) { } func TestIssue15858(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2077,8 +2012,7 @@ func TestIssue15858(t *testing.T) { } func TestIssue15846(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t0, t1") @@ -2105,8 +2039,7 @@ func TestIssue15846(t *testing.T) { } func TestFloorUnixTimestampPruning(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists floor_unix_timestamp") @@ -2128,8 +2061,7 @@ partition p2 values less than (unix_timestamp('2020-04-15 00:00:00')))`) } func TestIssue16290And16292(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -2147,8 +2079,7 @@ func TestIssue16290And16292(t *testing.T) { } func TestTableDualWithRequiredProperty(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2;") @@ -2159,8 +2090,7 @@ func TestTableDualWithRequiredProperty(t *testing.T) { } func TestIndexJoinInnerIndexNDV(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -2187,8 +2117,7 @@ func TestIndexJoinInnerIndexNDV(t *testing.T) { } func TestIssue16837(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2205,8 +2134,7 @@ func TestIssue16837(t *testing.T) { } func TestIndexMergeSerial(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2235,8 +2163,7 @@ func TestIndexMergeSerial(t *testing.T) { } func TestIndexMergePartialScansClusteredIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2289,8 +2216,7 @@ func TestIndexMergePartialScansClusteredIndex(t *testing.T) { } func TestIndexMergePartialScansTiDBRowID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2343,8 +2269,7 @@ func TestIndexMergePartialScansTiDBRowID(t *testing.T) { } func TestIndexMergePartialScansPKIsHandle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2393,8 +2318,7 @@ func TestIndexMergePartialScansPKIsHandle(t *testing.T) { } func TestIssue23919(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -2434,8 +2358,7 @@ PARTITION BY RANGE ( col_8 ) ( } func TestIssue16407(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2452,8 +2375,7 @@ func TestIssue16407(t *testing.T) { } func TestStreamAggProp(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2481,8 +2403,7 @@ func TestStreamAggProp(t *testing.T) { } func TestOptimizeHintOnPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2536,8 +2457,7 @@ func TestOptimizeHintOnPartitionTable(t *testing.T) { } func TestNotReadOnlySQLOnTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2570,8 +2490,7 @@ func TestNotReadOnlySQLOnTiFlash(t *testing.T) { } func TestSelectLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2648,8 +2567,7 @@ func TestSelectLimit(t *testing.T) { } func TestHintParserWarnings(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -2660,8 +2578,7 @@ func TestHintParserWarnings(t *testing.T) { } func TestIssue16935(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t0;") @@ -2672,8 +2589,7 @@ func TestIssue16935(t *testing.T) { } func TestAccessPathOnClusterIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -2702,8 +2618,7 @@ func TestAccessPathOnClusterIndex(t *testing.T) { } func TestClusterIndexUniqueDoubleRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database cluster_idx_unique_double_read;") tk.MustExec("use cluster_idx_unique_double_read;") @@ -2717,8 +2632,7 @@ func TestClusterIndexUniqueDoubleRead(t *testing.T) { } func TestIndexJoinOnClusteredIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -2747,8 +2661,7 @@ func TestIndexJoinOnClusteredIndex(t *testing.T) { } func TestIssue18984(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, t2") @@ -2769,8 +2682,7 @@ func TestIssue18984(t *testing.T) { } func TestTimeToSecPushDownToTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2804,8 +2716,7 @@ func TestTimeToSecPushDownToTiFlash(t *testing.T) { } func TestRightShiftPushDownToTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2839,8 +2750,7 @@ func TestRightShiftPushDownToTiFlash(t *testing.T) { } func TestBitColumnPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1(a bit(8), b int)") @@ -2924,8 +2834,7 @@ func TestBitColumnPushDown(t *testing.T) { } func TestSysdatePushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(id int signed, id2 int unsigned, c varchar(11), d datetime, b double, e bit(10))") @@ -2960,8 +2869,7 @@ func TestSysdatePushDown(t *testing.T) { } func TestTimeScalarFunctionPushDownResult(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -3050,8 +2958,7 @@ func TestTimeScalarFunctionPushDownResult(t *testing.T) { } func TestNumberFunctionPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int signed, b int unsigned,c double)") @@ -3121,8 +3028,7 @@ func TestNumberFunctionPushDown(t *testing.T) { } func TestScalarFunctionPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(id int signed, id2 int unsigned, c varchar(11), d datetime, b double, e bit(10))") @@ -3242,8 +3148,7 @@ func TestScalarFunctionPushDown(t *testing.T) { } func TestDistinctScalarFunctionPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -3255,8 +3160,7 @@ func TestDistinctScalarFunctionPushDown(t *testing.T) { } func TestReverseUTF8PushDownToTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -3290,8 +3194,7 @@ func TestReverseUTF8PushDownToTiFlash(t *testing.T) { } func TestReversePushDownToTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -3325,8 +3228,7 @@ func TestReversePushDownToTiFlash(t *testing.T) { } func TestExplainAnalyzePointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -3349,8 +3251,7 @@ func TestExplainAnalyzePointGet(t *testing.T) { } func TestExplainAnalyzeDML(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -3373,8 +3274,7 @@ func TestExplainAnalyzeDML(t *testing.T) { } func TestExplainAnalyzeDML2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3475,8 +3375,7 @@ func TestExplainAnalyzeDML2(t *testing.T) { } func TestPartitionExplain(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table pt (id int, c int, key i_id(id), key i_c(c)) partition by range (c) ( @@ -3503,8 +3402,7 @@ partition p2 values less than (10))`) } func TestPartialBatchPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -3519,8 +3417,7 @@ func TestPartialBatchPointGet(t *testing.T) { } func TestIssue19926(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists ta;") @@ -3538,8 +3435,7 @@ func TestIssue19926(t *testing.T) { } func TestDeleteUsingJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -3553,8 +3449,7 @@ func TestDeleteUsingJoin(t *testing.T) { } func Test19942(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -3597,8 +3492,7 @@ func Test19942(t *testing.T) { } func TestPartitionUnionWithPPruningColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -3655,8 +3549,7 @@ func TestPartitionUnionWithPPruningColumn(t *testing.T) { } func TestIssue20139(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3673,8 +3566,7 @@ func TestIssue20139(t *testing.T) { } func TestIssue14481(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3686,8 +3578,7 @@ func TestIssue14481(t *testing.T) { } func TestIssue20710(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -3715,8 +3606,7 @@ func TestIssue20710(t *testing.T) { } func TestQueryBlockTableAliasInHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3728,8 +3618,7 @@ func TestQueryBlockTableAliasInHint(t *testing.T) { } func TestIssue10448(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -3740,8 +3629,7 @@ func TestIssue10448(t *testing.T) { } func TestMultiUpdateOnPrimaryKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3788,8 +3676,7 @@ func TestMultiUpdateOnPrimaryKey(t *testing.T) { } func TestOrderByHavingNotInSelect(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists ttest") @@ -3806,8 +3693,7 @@ func TestOrderByHavingNotInSelect(t *testing.T) { } func TestUpdateSetDefault(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // #20598 tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3830,8 +3716,7 @@ func TestUpdateSetDefault(t *testing.T) { } func TestExtendedStatsSwitch(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -3886,8 +3771,7 @@ func TestExtendedStatsSwitch(t *testing.T) { } func TestOrderByNotInSelectDistinct(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3928,8 +3812,7 @@ func TestOrderByNotInSelectDistinct(t *testing.T) { } func TestInvalidNamedWindowSpec(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // #12356 tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3945,8 +3828,7 @@ func TestInvalidNamedWindowSpec(t *testing.T) { } func TestCorrelatedAggregate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4027,8 +3909,7 @@ func TestCorrelatedAggregate(t *testing.T) { } func TestCorrelatedColumnAggFuncPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -4041,8 +3922,7 @@ func TestCorrelatedColumnAggFuncPushDown(t *testing.T) { // Test for issue https://github.com/pingcap/tidb/issues/21607. func TestConditionColPruneInPhysicalUnionScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -4063,8 +3943,7 @@ func TestConditionColPruneInPhysicalUnionScan(t *testing.T) { } func TestInvalidHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4092,8 +3971,7 @@ func TestInvalidHint(t *testing.T) { // Test for issue https://github.com/pingcap/tidb/issues/18320 func TestNonaggregateColumnWithSingleValueInOnlyFullGroupByMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4107,8 +3985,7 @@ func TestNonaggregateColumnWithSingleValueInOnlyFullGroupByMode(t *testing.T) { } func TestConvertRangeToPoint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4148,8 +4025,7 @@ func TestConvertRangeToPoint(t *testing.T) { } func TestIssue22040(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // #22040 tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4169,8 +4045,7 @@ func TestIssue22040(t *testing.T) { } func TestIssue22105(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4209,8 +4084,7 @@ func TestIssue22105(t *testing.T) { } func TestIssue22071(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (a int);") @@ -4220,8 +4094,7 @@ func TestIssue22071(t *testing.T) { } func TestCreateViewIsolationRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) require.True(t, se.Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) @@ -4240,8 +4113,7 @@ func TestCreateViewIsolationRead(t *testing.T) { } func TestIssue22199(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -4251,8 +4123,7 @@ func TestIssue22199(t *testing.T) { } func TestIssue22892(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode='static'") @@ -4269,8 +4140,7 @@ func TestIssue22892(t *testing.T) { } func TestIssue26719(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table tx (a int) partition by range (a) (partition p0 values less than (10), partition p1 values less than (20))`) @@ -4285,8 +4155,7 @@ func TestIssue26719(t *testing.T) { } func TestIssue32428(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table `t1` (`a` enum('aa') DEFAULT NULL, KEY `k` (`a`))") @@ -4309,8 +4178,7 @@ func TestIssue32428(t *testing.T) { } func TestPushDownProjectionForTiKV(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4336,8 +4204,7 @@ func TestPushDownProjectionForTiKV(t *testing.T) { } func TestPushDownProjectionForTiFlashCoprocessor(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4377,8 +4244,7 @@ func TestPushDownProjectionForTiFlashCoprocessor(t *testing.T) { } func TestPushDownProjectionForTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4418,8 +4284,7 @@ func TestPushDownProjectionForTiFlash(t *testing.T) { } func TestPushDownSelectionForMPP(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4460,8 +4325,7 @@ func TestPushDownSelectionForMPP(t *testing.T) { } func TestPushDownProjectionForMPP(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4502,8 +4366,7 @@ func TestPushDownProjectionForMPP(t *testing.T) { } func TestReorderSimplifiedOuterJoins(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4530,8 +4393,7 @@ func TestReorderSimplifiedOuterJoins(t *testing.T) { // Apply operator may got panic because empty Projection is eliminated. func TestIssue23887(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -4561,8 +4423,7 @@ func TestIssue23887(t *testing.T) { } func TestDeleteStmt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int)") @@ -4577,8 +4438,7 @@ func TestDeleteStmt(t *testing.T) { } func TestIndexMergeConstantTrue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -4595,8 +4455,7 @@ func TestIndexMergeConstantTrue(t *testing.T) { } func TestPushDownAggForMPP(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4637,8 +4496,7 @@ func TestPushDownAggForMPP(t *testing.T) { } func TestMppUnionAll(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4678,8 +4536,7 @@ func TestMppUnionAll(t *testing.T) { } func TestMppJoinDecimal(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4725,8 +4582,7 @@ func TestMppJoinDecimal(t *testing.T) { } func TestMppAggTopNWithJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -4767,8 +4623,7 @@ func TestMppAggTopNWithJoin(t *testing.T) { } func TestLimitIndexLookUpKeepOrder(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -4791,8 +4646,7 @@ func TestLimitIndexLookUpKeepOrder(t *testing.T) { } func TestDecorrelateInnerJoinInSubquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4816,8 +4670,7 @@ func TestDecorrelateInnerJoinInSubquery(t *testing.T) { } func TestDecorrelateLimitInSubquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4844,8 +4697,7 @@ func TestDecorrelateLimitInSubquery(t *testing.T) { } func TestIndexMergeTableFilter(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -4875,8 +4727,7 @@ func TestIndexMergeTableFilter(t *testing.T) { } func TestIssue22850(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -4885,8 +4736,7 @@ func TestIssue22850(t *testing.T) { } func TestJoinSchemaChange(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -4897,8 +4747,7 @@ func TestJoinSchemaChange(t *testing.T) { // #22949: test HexLiteral Used in GetVar expr func TestGetVarExprWithHexLiteral(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t1_no_idx;") @@ -4949,8 +4798,7 @@ func TestGetVarExprWithHexLiteral(t *testing.T) { // test BitLiteral used with GetVar func TestGetVarExprWithBitLiteral(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t1_no_idx;") @@ -4970,8 +4818,7 @@ func TestGetVarExprWithBitLiteral(t *testing.T) { } func TestIndexMergeClusterIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t") @@ -4991,8 +4838,7 @@ func TestIndexMergeClusterIndex(t *testing.T) { } func TestMultiColMaxOneRow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5017,8 +4863,7 @@ func TestMultiColMaxOneRow(t *testing.T) { } func TestIssue23736(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t0, t1") @@ -5038,8 +4883,7 @@ func TestIssue23736(t *testing.T) { // https://github.com/pingcap/tidb/issues/23802 func TestPanicWhileQueryTableWithIsNull(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5056,8 +4900,7 @@ func TestPanicWhileQueryTableWithIsNull(t *testing.T) { } func TestIssue23846(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5068,8 +4911,7 @@ func TestIssue23846(t *testing.T) { } func TestIssue23839(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists BB") @@ -5090,8 +4932,7 @@ func TestIssue23839(t *testing.T) { // https://github.com/pingcap/tidb/issues/24095 func TestIssue24095(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -5115,8 +4956,7 @@ func TestIssue24095(t *testing.T) { } func TestIssue24281(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists member, agent, deposit, view_member_agents") @@ -5134,8 +4974,7 @@ func TestIssue24281(t *testing.T) { } func TestIssue25799(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -5148,8 +4987,7 @@ func TestIssue25799(t *testing.T) { } func TestLimitWindowColPrune(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5159,8 +4997,7 @@ func TestLimitWindowColPrune(t *testing.T) { } func TestIncrementalAnalyzeStatsVer2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5188,8 +5025,7 @@ func TestIncrementalAnalyzeStatsVer2(t *testing.T) { } func TestConflictReadFromStorage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5222,8 +5058,7 @@ func TestConflictReadFromStorage(t *testing.T) { // TestSequenceAsDataSource is used to test https://github.com/pingcap/tidb/issues/24383. func TestSequenceAsDataSource(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5248,8 +5083,7 @@ func TestSequenceAsDataSource(t *testing.T) { } func TestIssue27167(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set names utf8mb4") tk.MustExec("use test") @@ -5285,8 +5119,7 @@ func TestIssue27167(t *testing.T) { } func TestIssue25300(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table t (a char(65) collate utf8_unicode_ci, b text collate utf8_general_ci not null);`) @@ -5300,8 +5133,7 @@ func TestIssue25300(t *testing.T) { } func TestMergeContinuousSelections(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists ts") @@ -5341,8 +5173,7 @@ func TestMergeContinuousSelections(t *testing.T) { } func TestSelectIgnoreTemporaryTableInView(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5372,8 +5203,7 @@ func TestSelectIgnoreTemporaryTableInView(t *testing.T) { // TestIsMatchProp is used to test https://github.com/pingcap/tidb/issues/26017. func TestIsMatchProp(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5398,8 +5228,7 @@ func TestIsMatchProp(t *testing.T) { } func TestIssue26250(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table tp (id int primary key) partition by range (id) (partition p0 values less than (100));") @@ -5410,8 +5239,7 @@ func TestIssue26250(t *testing.T) { } func TestCorrelationAdjustment4Limit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5465,8 +5293,7 @@ func TestCorrelationAdjustment4Limit(t *testing.T) { } func TestCTESelfJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2, t3") @@ -5490,8 +5317,7 @@ func TestCTESelfJoin(t *testing.T) { // https://github.com/pingcap/tidb/issues/26214 func TestIssue26214(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5501,8 +5327,7 @@ func TestIssue26214(t *testing.T) { } func TestCreateViewWithWindowFunc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t6;") @@ -5515,8 +5340,7 @@ func TestCreateViewWithWindowFunc(t *testing.T) { } func TestIssue29834(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists IDT_MC21814;") @@ -5529,8 +5353,7 @@ func TestIssue29834(t *testing.T) { } func TestIssue29221(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_index_merge=on;") @@ -5575,8 +5398,7 @@ func TestIssue29221(t *testing.T) { } func TestLimitPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5611,8 +5433,7 @@ func TestLimitPushDown(t *testing.T) { } func TestIssue26559(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a timestamp, b datetime);") @@ -5621,8 +5442,7 @@ func TestIssue26559(t *testing.T) { } func TestIssue29503(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer config.RestoreFunc()() config.UpdateGlobal(func(conf *config.Config) { @@ -5639,8 +5459,7 @@ func TestIssue29503(t *testing.T) { } func TestIndexJoinCost(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists t_outer, t_inner_pk, t_inner_idx`) @@ -5695,8 +5514,7 @@ func TestIndexJoinCost(t *testing.T) { } func TestHeuristicIndexSelection(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -5728,8 +5546,7 @@ func TestHeuristicIndexSelection(t *testing.T) { } func TestOutputSkylinePruningInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5758,8 +5575,7 @@ func TestOutputSkylinePruningInfo(t *testing.T) { } func TestPreferRangeScanForUnsignedIntHandle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5799,8 +5615,7 @@ func TestPreferRangeScanForUnsignedIntHandle(t *testing.T) { } func TestIssue27083(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -5827,8 +5642,7 @@ func TestIssue27083(t *testing.T) { } func TestIssues27130(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5868,8 +5682,7 @@ func TestIssues27130(t *testing.T) { } func TestIssue27242(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists UK_MU16407") @@ -5893,8 +5706,7 @@ func verifyTimestampOutOfRange(tk *testkit.TestKit) { } func TestIssue28424(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t28424, dt28242") @@ -5921,8 +5733,7 @@ func TestIssue28424(t *testing.T) { } func TestTemporaryTableForCte(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -5937,8 +5748,7 @@ func TestTemporaryTableForCte(t *testing.T) { } func TestGroupBySetVar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -5968,8 +5778,7 @@ func TestGroupBySetVar(t *testing.T) { } func TestPushDownGroupConcatToTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists ts") @@ -6030,8 +5839,7 @@ func TestPushDownGroupConcatToTiFlash(t *testing.T) { } func TestIssue27797(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) origin := tk.MustQuery("SELECT @@session.tidb_partition_prune_mode") originStr := origin.Rows()[0][0].(string) @@ -6068,8 +5876,7 @@ func TestIssue27797(t *testing.T) { } func TestIssue27949(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t27949") @@ -6099,8 +5906,7 @@ func TestIssue27949(t *testing.T) { } func TestIssue28154(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -6126,8 +5932,7 @@ func TestIssue28154(t *testing.T) { } func TestRejectSortForMPP(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -6168,8 +5973,7 @@ func TestRejectSortForMPP(t *testing.T) { } func TestRegardNULLAsPoint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6221,8 +6025,7 @@ func TestRegardNULLAsPoint(t *testing.T) { } func TestIssues29711(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6258,8 +6061,7 @@ func TestIssues29711(t *testing.T) { } func TestIssue27313(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -6270,8 +6072,7 @@ func TestIssue27313(t *testing.T) { } func TestIssue30094(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6290,8 +6091,7 @@ func TestIssue30094(t *testing.T) { } func TestIssue30200(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6337,8 +6137,7 @@ func TestIssue30200(t *testing.T) { } func TestIssue29705(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) origin := tk.MustQuery("SELECT @@session.tidb_partition_prune_mode") originStr := origin.Rows()[0][0].(string) @@ -6355,8 +6154,7 @@ func TestIssue29705(t *testing.T) { } func TestIssue30271(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -6367,8 +6165,7 @@ func TestIssue30271(t *testing.T) { } func TestIssue30804(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -6383,8 +6180,7 @@ func TestIssue30804(t *testing.T) { } func TestIndexMergeWarning(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6408,8 +6204,7 @@ func TestIndexMergeWarning(t *testing.T) { } func TestIndexMergeWithCorrelatedColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -6455,8 +6250,7 @@ func TestIndexMergeWithCorrelatedColumns(t *testing.T) { } func TestIssue20510(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6483,8 +6277,7 @@ func TestIssue20510(t *testing.T) { } func TestIssue31035(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1;") @@ -6496,8 +6289,7 @@ func TestIssue31035(t *testing.T) { // TestDNFCondSelectivityWithConst test selectivity calculation with DNF conditions with one is const. // Close https://github.com/pingcap/tidb/issues/31096 func TestDNFCondSelectivityWithConst(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t1") @@ -6541,8 +6333,7 @@ func TestDNFCondSelectivityWithConst(t *testing.T) { } func TestIssue31202(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6564,8 +6355,7 @@ func TestIssue31202(t *testing.T) { } func TestNaturalJoinUpdateSameTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database natural_join_update") @@ -6598,8 +6388,7 @@ func TestNaturalJoinUpdateSameTable(t *testing.T) { } func TestAggPushToCopForCachedTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6636,8 +6425,7 @@ func TestAggPushToCopForCachedTable(t *testing.T) { } func TestIssue31240(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6673,8 +6461,7 @@ func TestIssue31240(t *testing.T) { } func TestIssue32632(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6730,8 +6517,7 @@ func TestIssue32632(t *testing.T) { } func TestTiFlashPartitionTableScan(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode = 'dynamic'") @@ -6768,8 +6554,7 @@ func TestTiFlashPartitionTableScan(t *testing.T) { } func TestTiFlashFineGrainedShuffle(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_isolation_read_engines = 'tiflash'") @@ -6798,8 +6583,7 @@ func TestTiFlashFineGrainedShuffle(t *testing.T) { } func TestTiFlashFineGrainedShuffleWithMaxTiFlashThreads(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_isolation_read_engines = 'tiflash'") @@ -6869,8 +6653,7 @@ func TestTiFlashFineGrainedShuffleWithMaxTiFlashThreads(t *testing.T) { } func TestIssue33175(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6958,8 +6741,7 @@ func TestIssue33175(t *testing.T) { } func TestIssue33042(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -6979,8 +6761,7 @@ func TestIssue33042(t *testing.T) { } func TestIssue29663(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -7003,8 +6784,7 @@ func TestIssue29663(t *testing.T) { } func TestIssue31609(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7018,8 +6798,7 @@ func TestIssue31609(t *testing.T) { } func TestDecimalOverflow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7038,8 +6817,7 @@ func TestIssue35083(t *testing.T) { conf.Performance.ProjectionPushDown = true }) variable.SetSysVar(variable.TiDBOptProjectionPushDown, variable.BoolToOnOff(config.GetGlobalConfig().Performance.ProjectionPushDown)) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (a varchar(100), b int)") @@ -7051,8 +6829,7 @@ func TestIssue35083(t *testing.T) { } func TestIssue25813(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a json);") @@ -7070,8 +6847,7 @@ func TestIssue25813(t *testing.T) { } func TestRepeatPushDownToTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -7105,8 +6881,7 @@ func TestRepeatPushDownToTiFlash(t *testing.T) { } func TestIssue36194(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -7133,8 +6908,7 @@ func TestIssue36194(t *testing.T) { } func TestGetFormatPushDownToTiFlash(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -7156,8 +6930,7 @@ func TestGetFormatPushDownToTiFlash(t *testing.T) { } func TestAggWithJsonPushDownToTiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -7206,8 +6979,7 @@ func TestAggWithJsonPushDownToTiFlash(t *testing.T) { } func TestIssue36609(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) tk.MustExec("use test") diff --git a/planner/core/memtable_predicate_extractor_test.go b/planner/core/memtable_predicate_extractor_test.go index fd13ca8dede08..615094ed8e7f5 100644 --- a/planner/core/memtable_predicate_extractor_test.go +++ b/planner/core/memtable_predicate_extractor_test.go @@ -56,8 +56,7 @@ func getLogicalMemTable(t *testing.T, dom *domain.Domain, se session.Session, pa } func TestClusterConfigTableExtractor(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -231,8 +230,7 @@ func timestamp(t *testing.T, s string) int64 { } func TestClusterLogTableExtractor(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -533,8 +531,7 @@ func TestClusterLogTableExtractor(t *testing.T) { } func TestMetricTableExtractor(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -659,8 +656,7 @@ func TestMetricTableExtractor(t *testing.T) { } func TestMetricsSummaryTableExtractor(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -760,8 +756,7 @@ func TestMetricsSummaryTableExtractor(t *testing.T) { } func TestInspectionResultTableExtractor(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -902,8 +897,7 @@ func TestInspectionResultTableExtractor(t *testing.T) { } func TestInspectionSummaryTableExtractor(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -1004,8 +998,7 @@ func TestInspectionSummaryTableExtractor(t *testing.T) { } func TestInspectionRuleTableExtractor(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -1045,8 +1038,7 @@ func TestInspectionRuleTableExtractor(t *testing.T) { } func TestTiDBHotRegionsHistoryTableExtractor(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -1421,8 +1413,7 @@ func TestTiDBHotRegionsHistoryTableExtractor(t *testing.T) { } func TestTikvRegionPeersExtractor(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -1556,8 +1547,7 @@ func TestTikvRegionPeersExtractor(t *testing.T) { } func TestColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -1655,8 +1645,7 @@ func TestColumns(t *testing.T) { } func TestPredicateQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1708,8 +1697,7 @@ func TestPredicateQuery(t *testing.T) { } func TestTikvRegionStatusExtractor(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) diff --git a/planner/core/partition_pruner_test.go b/planner/core/partition_pruner_test.go index 4549791cf4851..6cff71160b78f 100644 --- a/planner/core/partition_pruner_test.go +++ b/planner/core/partition_pruner_test.go @@ -29,8 +29,7 @@ import ( ) func TestHashPartitionPruner(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_partition") tk.MustExec("use test_partition") @@ -64,8 +63,7 @@ func TestHashPartitionPruner(t *testing.T) { } func TestRangeColumnPartitionPruningForIn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_range_col_in") tk.MustExec("create database test_range_col_in") @@ -144,8 +142,7 @@ func TestRangeColumnPartitionPruningForIn(t *testing.T) { } func TestRangeColumnPartitionPruningForInString(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_range_col_in_string") tk.MustExec("create database test_range_col_in_string") @@ -253,8 +250,7 @@ func TestRangeColumnPartitionPruningForInString(t *testing.T) { } func TestListPartitionPruner(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_partition;") tk.MustExec("create database test_partition") @@ -325,8 +321,7 @@ func TestListPartitionPruner(t *testing.T) { } func TestListColumnsPartitionPruner(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@session.tidb_enable_list_partition = ON") tk.MustExec("drop database if exists test_partition;") @@ -482,8 +477,7 @@ func getFieldValue(prefix, row string) string { } func TestListColumnsPartitionPrunerRandom(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) valueNum := 10 // Create table. @@ -537,8 +531,7 @@ func TestListColumnsPartitionPrunerRandom(t *testing.T) { } func TestIssue22635(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") tk.MustExec("DROP TABLE IF EXISTS t1") @@ -565,8 +558,7 @@ PARTITIONS 4`) } func TestIssue22898(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") tk.MustExec("DROP TABLE IF EXISTS test;") @@ -578,8 +570,7 @@ func TestIssue22898(t *testing.T) { } func TestIssue23622(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") tk.MustExec("drop table if exists t2;") @@ -589,8 +580,7 @@ func TestIssue23622(t *testing.T) { } func Test22396(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test;") tk.MustExec("DROP TABLE IF EXISTS test;") @@ -603,8 +593,7 @@ func Test22396(t *testing.T) { } func TestIssue23608(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode='static'") @@ -651,8 +640,7 @@ partition by range (a) ( //issue 22079 func TestRangePartitionPredicatePruner(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_partition_prune_mode='" + string(variable.Static) + "'") tk.MustExec("drop database if exists test_partition;") @@ -684,8 +672,7 @@ func TestRangePartitionPredicatePruner(t *testing.T) { } func TestHashPartitionPruning(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_partition_prune_mode='static'") tk.MustExec("USE test;") @@ -705,8 +692,7 @@ func TestHashPartitionPruning(t *testing.T) { } func TestIssue32815(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_partition_prune_mode='dynamic'") @@ -721,8 +707,7 @@ func TestIssue32815(t *testing.T) { } func TestIssue32007(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database Issue32007") tk.MustExec("USE Issue32007") @@ -743,8 +728,7 @@ func TestIssue32007(t *testing.T) { } func TestIssue33231(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database issue33231") tk.MustExec("use issue33231") diff --git a/planner/core/physical_plan_test.go b/planner/core/physical_plan_test.go index 9bd6886af0945..b4b72cb73627b 100644 --- a/planner/core/physical_plan_test.go +++ b/planner/core/physical_plan_test.go @@ -42,8 +42,7 @@ import ( ) func TestDAGPlanBuilderSimpleCase(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -73,8 +72,7 @@ func TestDAGPlanBuilderSimpleCase(t *testing.T) { } func TestAnalyzeBuildSucc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int)") @@ -134,8 +132,7 @@ func TestAnalyzeBuildSucc(t *testing.T) { } func TestAnalyzeSetRate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -175,8 +172,7 @@ func TestAnalyzeSetRate(t *testing.T) { } func TestDAGPlanBuilderJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -211,8 +207,7 @@ func TestDAGPlanBuilderJoin(t *testing.T) { } func TestDAGPlanBuilderSubquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -248,8 +243,7 @@ func TestDAGPlanBuilderSubquery(t *testing.T) { } func TestDAGPlanTopN(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -291,8 +285,7 @@ func assertSameHints(t *testing.T, expected, actual []*ast.TableOptimizerHint) { } func TestDAGPlanBuilderBasePhysicalPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -336,8 +329,7 @@ func TestDAGPlanBuilderBasePhysicalPlan(t *testing.T) { } func TestDAGPlanBuilderUnion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -367,8 +359,7 @@ func TestDAGPlanBuilderUnion(t *testing.T) { } func TestDAGPlanBuilderUnionScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -403,8 +394,7 @@ func TestDAGPlanBuilderUnionScan(t *testing.T) { } func TestDAGPlanBuilderAgg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set sql_mode='STRICT_TRANS_TABLES'") // disable only full group by @@ -439,8 +429,7 @@ func TestDAGPlanBuilderAgg(t *testing.T) { } func TestRefine(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -471,8 +460,7 @@ func TestRefine(t *testing.T) { } func TestAggEliminator(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -514,8 +502,7 @@ func TestINMJHint(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() planSuiteData.LoadTestCases(t, &input, &output) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -546,8 +533,7 @@ func TestEliminateMaxOneRow(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() planSuiteData.LoadTestCases(t, &input, &output) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1;") @@ -582,8 +568,7 @@ func (cli overrideClient) IsRequestTypeSupported(_, _ int64) bool { } func TestRequestTypeSupportedOff(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(overrideStore{store}) require.NoError(t, err) _, err = se.Execute(context.Background(), "use test") @@ -601,8 +586,7 @@ func TestRequestTypeSupportedOff(t *testing.T) { } func TestIndexJoinUnionScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -639,8 +623,7 @@ func TestIndexJoinUnionScan(t *testing.T) { } func TestMergeJoinUnionScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1 (c_int int, c_str varchar(40), primary key (c_int))") @@ -677,8 +660,7 @@ func TestMergeJoinUnionScan(t *testing.T) { } func TestDoSubQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -707,8 +689,7 @@ func TestDoSubQuery(t *testing.T) { } func TestIndexLookupCartesianJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -727,8 +708,7 @@ func TestIndexLookupCartesianJoin(t *testing.T) { } func TestSemiJoinToInner(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -756,8 +736,7 @@ func TestSemiJoinToInner(t *testing.T) { } func TestUnmatchedTableInHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") var input []string @@ -793,8 +772,7 @@ func TestUnmatchedTableInHint(t *testing.T) { } func TestHintScope(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -826,8 +804,7 @@ func TestHintScope(t *testing.T) { } func TestJoinHints(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -883,8 +860,7 @@ func TestJoinHints(t *testing.T) { } func TestAggregationHints(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -937,8 +913,7 @@ func TestAggregationHints(t *testing.T) { } func TestSemiJoinRewriteHints(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int, b int, c int)") @@ -988,8 +963,7 @@ func TestSemiJoinRewriteHints(t *testing.T) { } func TestExplainJoinHints(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1003,8 +977,7 @@ func TestExplainJoinHints(t *testing.T) { } func TestAggToCopHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists ta") @@ -1061,8 +1034,7 @@ func TestAggToCopHint(t *testing.T) { } func TestLimitToCopHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tn") @@ -1111,8 +1083,7 @@ func TestLimitToCopHint(t *testing.T) { } func TestCTEMergeHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tc") @@ -1242,8 +1213,7 @@ func doTestPushdownDistinct(t *testing.T, vars, input []string, output []struct Plan []string Result []string }) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1299,8 +1269,7 @@ func TestGroupConcatOrderby(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() planSuiteData.LoadTestCases(t, &input, &output) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists test;") @@ -1331,8 +1300,7 @@ func TestGroupConcatOrderby(t *testing.T) { } func TestHintAlias(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1375,8 +1343,7 @@ func TestHintAlias(t *testing.T) { } func TestIndexHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1428,8 +1395,7 @@ func TestIndexHint(t *testing.T) { } func TestIndexMergeHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1482,8 +1448,7 @@ func TestIndexMergeHint(t *testing.T) { } func TestQueryBlockHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1525,8 +1490,7 @@ func TestQueryBlockHint(t *testing.T) { } func TestInlineProjection(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1572,8 +1536,7 @@ func TestInlineProjection(t *testing.T) { } func TestDAGPlanBuilderSplitAvg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1640,8 +1603,7 @@ func testDAGPlanBuilderSplitAvg(t *testing.T, root core.PhysicalPlan) { } func TestIndexJoinHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1705,8 +1667,7 @@ func TestDAGPlanBuilderWindowParallel(t *testing.T) { } func TestTopNPushDownEmpty(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1718,8 +1679,7 @@ func doTestDAGPlanBuilderWindow(t *testing.T, vars, input []string, output []str SQL string Best string }) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1748,8 +1708,7 @@ func doTestDAGPlanBuilderWindow(t *testing.T, vars, input []string, output []str } func TestNominalSort(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") var input []string @@ -1777,8 +1736,7 @@ func TestNominalSort(t *testing.T) { } func TestHintFromDiffDatabase(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1815,8 +1773,7 @@ func TestHintFromDiffDatabase(t *testing.T) { } func TestNthPlanHintWithExplain(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`drop table if exists test.tt`) @@ -1857,8 +1814,7 @@ func TestEnumIndex(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() planSuiteData.LoadTestCases(t, &input, &output) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1887,8 +1843,7 @@ func TestIssue27233(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() planSuiteData.LoadTestCases(t, &input, &output) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1907,8 +1862,7 @@ func TestIssue27233(t *testing.T) { } func TestPossibleProperties(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists student, sc") @@ -1931,8 +1885,7 @@ func TestSelectionPartialPushDown(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() planSuiteData.LoadTestCases(t, &input, &output) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -1958,8 +1911,7 @@ func TestIssue28316(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() planSuiteData.LoadTestCases(t, &input, &output) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1975,8 +1927,7 @@ func TestIssue28316(t *testing.T) { } func TestIssue30965(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t30965") @@ -2003,8 +1954,7 @@ func TestSkewDistinctAgg(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() planSuiteData.LoadTestCases(t, &input, &output) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -2054,8 +2004,7 @@ func TestMPPSinglePartitionType(t *testing.T) { ) planSuiteData := core.GetPlanSuiteData() planSuiteData.LoadTestCases(t, &input, &output) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists employee") diff --git a/planner/core/physical_plan_trace_test.go b/planner/core/physical_plan_trace_test.go index d9a99d7210619..3a45fa79989a9 100644 --- a/planner/core/physical_plan_trace_test.go +++ b/planner/core/physical_plan_trace_test.go @@ -32,8 +32,7 @@ import ( func TestPhysicalOptimizeWithTraceEnabled(t *testing.T) { p := parser.New() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) ctx := tk.Session().(sessionctx.Context) @@ -101,8 +100,7 @@ func getList(otrace *tracing.PhysicalOptimizeTracer) (pl []string) { // assert the case in https://github.com/pingcap/tidb/issues/34863 func TestPhysicalOptimizerTrace(t *testing.T) { p := parser.New() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) ctx := tk.Session().(sessionctx.Context) diff --git a/planner/core/plan_cost_test.go b/planner/core/plan_cost_test.go index 16df74f3a3f67..fd6721012016e 100644 --- a/planner/core/plan_cost_test.go +++ b/planner/core/plan_cost_test.go @@ -78,8 +78,7 @@ func TestNewCostInterfaceTiKV(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/planner/core/DisableProjectionPostOptimization")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -267,8 +266,7 @@ func TestNewCostInterfaceTiFlash(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/planner/core/DisableProjectionPostOptimization")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table t (a int, b int, c int, d int)`) @@ -455,8 +453,7 @@ func TestNewCostInterfaceRandGen(t *testing.T) { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/planner/core/DisableProjectionPostOptimization")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -943,8 +940,7 @@ func TestNewCostInterfaceRandGen(t *testing.T) { } func TestTrueCardCost(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -970,8 +966,7 @@ func TestTrueCardCost(t *testing.T) { } func TestIssue36243(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1006,8 +1001,7 @@ func TestIssue36243(t *testing.T) { } func TestScanOnSmallTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table t (a int)`) diff --git a/planner/core/plan_stats_test.go b/planner/core/plan_stats_test.go index 22454a20cc2ee..84678bc7ca6c2 100644 --- a/planner/core/plan_stats_test.go +++ b/planner/core/plan_stats_test.go @@ -34,8 +34,7 @@ import ( func TestPlanStatsLoad(t *testing.T) { p := parser.New() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -231,8 +230,7 @@ func TestPlanStatsLoadTimeout(t *testing.T) { newConfig.Performance.StatsLoadQueueSize = 1 config.StoreGlobalConfig(newConfig) defer config.StoreGlobalConfig(originConfig) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/planner/core/plan_test.go b/planner/core/plan_test.go index 8b15febbb6de5..cbc8e2d79ab65 100644 --- a/planner/core/plan_test.go +++ b/planner/core/plan_test.go @@ -39,8 +39,7 @@ import ( ) func TestPreferRangeScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists test;") @@ -101,8 +100,7 @@ func TestPreferRangeScan(t *testing.T) { } func TestNormalizedPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode='static';") @@ -145,8 +143,7 @@ func TestNormalizedPlan(t *testing.T) { } func TestNormalizedPlanForDiffStore(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1") @@ -194,8 +191,7 @@ func TestNormalizedPlanForDiffStore(t *testing.T) { } func TestEncodeDecodePlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1,t2") @@ -299,8 +295,7 @@ func TestEncodeDecodePlan(t *testing.T) { } func TestNormalizedDigest(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1,t2,t3,t4, bmsql_order_line, bmsql_district,bmsql_stock") @@ -530,8 +525,7 @@ func compareStringSlice(t *testing.T, ss1, ss2 []string) { } func TestExplainFormatHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -546,8 +540,7 @@ func TestExplainFormatHint(t *testing.T) { } func TestExplainFormatHintRecoverableForTiFlashReplica(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -577,8 +570,7 @@ func TestExplainFormatHintRecoverableForTiFlashReplica(t *testing.T) { } func TestNthPlanHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tt") @@ -637,8 +629,7 @@ func TestNthPlanHint(t *testing.T) { } func BenchmarkDecodePlan(b *testing.B) { - store, clean := testkit.CreateMockStore(b) - defer clean() + store := testkit.CreateMockStore(b) tk := testkit.NewTestKit(b, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -671,8 +662,7 @@ func BenchmarkDecodePlan(b *testing.B) { } func BenchmarkEncodePlan(b *testing.B) { - store, clean := testkit.CreateMockStore(b) - defer clean() + store := testkit.CreateMockStore(b) tk := testkit.NewTestKit(b, store) tk.MustExec("use test") tk.MustExec("drop table if exists th") @@ -696,8 +686,7 @@ func BenchmarkEncodePlan(b *testing.B) { } func BenchmarkEncodeFlatPlan(b *testing.B) { - store, clean := testkit.CreateMockStore(b) - defer clean() + store := testkit.CreateMockStore(b) tk := testkit.NewTestKit(b, store) tk.MustExec("use test") tk.MustExec("drop table if exists th") @@ -726,8 +715,7 @@ func TestIssue25729(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.Experimental.AllowsExpressionIndex = true }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tt") @@ -772,8 +760,7 @@ func TestIssue25729(t *testing.T) { } func TestCopPaging(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -978,8 +965,7 @@ func TestBuildFinalModeAggregation(t *testing.T) { } func TestIssue34863(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1037,8 +1023,7 @@ func TestCloneFineGrainedShuffleStreamCount(t *testing.T) { // https://github.com/pingcap/tidb/issues/35527. func TestTableDualAsSubQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("CREATE VIEW v0(c0) AS SELECT NULL;") diff --git a/planner/core/point_get_plan_test.go b/planner/core/point_get_plan_test.go index 569f15dd9ad0f..1c6300acc8252 100644 --- a/planner/core/point_get_plan_test.go +++ b/planner/core/point_get_plan_test.go @@ -37,8 +37,7 @@ import ( ) func TestPointGetPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() defer func() { @@ -165,8 +164,7 @@ func TestPointGetPlanCache(t *testing.T) { } func TestPointGetForUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table fu (id int primary key, val int)") @@ -185,8 +183,7 @@ func TestPointGetForUpdate(t *testing.T) { } func TestGetExtraColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`CREATE TABLE t ( @@ -216,8 +213,7 @@ func TestGetExtraColumn(t *testing.T) { } func TestPointGetForUpdateWithSubquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("CREATE TABLE users (id bigint(20) unsigned NOT NULL primary key, name longtext DEFAULT NULL, company_id bigint(20) DEFAULT NULL)") @@ -241,8 +237,7 @@ func checkUseForUpdate(tk *testkit.TestKit, t *testing.T, expectLock bool) { } func TestWhereIn2BatchPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -330,8 +325,7 @@ func TestWhereIn2BatchPointGet(t *testing.T) { // Test that the plan id will be reset before optimization every time. func TestPointGetId(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -355,8 +349,7 @@ func TestPointGetId(t *testing.T) { } func TestCBOPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -387,8 +380,7 @@ func TestCBOPointGet(t *testing.T) { } func TestPartitionBatchPointGetPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() defer func() { @@ -606,8 +598,7 @@ func TestPartitionBatchPointGetPlanCache(t *testing.T) { } func TestBatchPointGetPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() defer func() { @@ -642,8 +633,7 @@ func TestBatchPointGetPlanCache(t *testing.T) { } func TestBatchPointGetPartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := core.PreparedPlanCacheEnabled() defer func() { @@ -704,8 +694,7 @@ func TestBatchPointGetPartition(t *testing.T) { } func TestBatchPointGetPartitionForAccessObject(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_partition_prune_mode = 'dynamic'") @@ -765,8 +754,7 @@ func TestBatchPointGetPartitionForAccessObject(t *testing.T) { func TestIssue19141(t *testing.T) { // For issue 19141, fix partition selection on batch point get. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t19141 (c_int int, primary key (c_int)) partition by hash ( c_int ) partitions 4") @@ -785,8 +773,7 @@ func TestIssue19141(t *testing.T) { } func TestSelectInMultiColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t2") @@ -812,8 +799,7 @@ func TestUpdateWithTableReadLockWillFail(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.EnableTableLock = true }) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table tbllock(id int, c int);") @@ -825,8 +811,7 @@ func TestUpdateWithTableReadLockWillFail(t *testing.T) { } func TestIssue20692(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -866,8 +851,7 @@ func TestIssue20692(t *testing.T) { } func TestPointGetWithInvisibleIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -881,8 +865,7 @@ func TestPointGetWithInvisibleIndex(t *testing.T) { } func TestBatchPointGetWithInvisibleIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -896,8 +879,7 @@ func TestBatchPointGetWithInvisibleIndex(t *testing.T) { } func TestCBOShouldNotUsePointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -937,8 +919,7 @@ func TestCBOShouldNotUsePointGet(t *testing.T) { } func TestPointGetWithIndexHints(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -985,8 +966,7 @@ func TestPointGetWithIndexHints(t *testing.T) { } func TestIssue18042(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -999,8 +979,7 @@ func TestIssue18042(t *testing.T) { } func TestIssue26638(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1031,8 +1010,7 @@ func TestIssue26638(t *testing.T) { } func TestIssue23511(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2;") diff --git a/planner/core/prepare_test.go b/planner/core/prepare_test.go index b0ef84dacf404..bae9b4d491a5d 100644 --- a/planner/core/prepare_test.go +++ b/planner/core/prepare_test.go @@ -44,8 +44,7 @@ import ( ) func TestPointGetPreparedPlan4PlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -81,8 +80,7 @@ func TestPointGetPreparedPlan4PlanCache(t *testing.T) { } func TestPreparePointGetWithDML(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -114,8 +112,7 @@ func TestPreparePointGetWithDML(t *testing.T) { } func TestPrepareIgnoreCloseStmtCmd(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -155,8 +152,7 @@ func TestPrepareIgnoreCloseStmtCmd(t *testing.T) { } func TestRandomFlushPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -245,8 +241,7 @@ func TestRandomFlushPlanCache(t *testing.T) { } func TestFlushPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -339,8 +334,7 @@ func TestFlushPlanCache(t *testing.T) { } func TestFlushPlanCacheWithoutPCEnable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(false) @@ -435,8 +429,7 @@ func TestFlushPlanCacheWithoutPCEnable(t *testing.T) { } func TestPrepareCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -516,8 +509,7 @@ func TestPrepareCache(t *testing.T) { } func TestPrepareCacheIndexScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -621,8 +613,7 @@ func randValue(tk *testkit.TestKit, tbl, col, dtype, rtype string) string { } func TestPrepareCacheChangingParamType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -686,8 +677,7 @@ func TestPrepareCacheChangingParamType(t *testing.T) { } func TestPrepareCacheChangeCharsetCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -727,8 +717,7 @@ func TestPrepareCacheChangeCharsetCollation(t *testing.T) { } func TestPrepareCacheDeferredFunction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -780,8 +769,7 @@ func TestPrepareCacheDeferredFunction(t *testing.T) { } func TestPrepareCacheNow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -804,8 +792,7 @@ func TestPrepareCacheNow(t *testing.T) { func TestPrepareOverMaxPreparedStmtCount(t *testing.T) { t.Skip("unstable, skip it and fix it before 20210705") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -848,8 +835,7 @@ func TestPrepareOverMaxPreparedStmtCount(t *testing.T) { // unit test for issue https://github.com/pingcap/tidb/issues/8518 func TestPrepareTableAsNameOnGroupByWithCache(t *testing.T) { t.Skip("unstable, skip it and fix it before 20210702") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -882,8 +868,7 @@ func TestPrepareTableAsNameOnGroupByWithCache(t *testing.T) { } func TestPrepareCachePointGetInsert(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -918,8 +903,7 @@ func TestPrepareCachePointGetInsert(t *testing.T) { } func TestIssue31280(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -960,8 +944,7 @@ func TestIssue31280(t *testing.T) { } func TestIssue31375(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1011,8 +994,7 @@ func readGaugeInt(g prometheus.Gauge) int { // unit test for issue https://github.com/pingcap/tidb/issues/9478 func TestPrepareWithWindowFunction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_enable_window_function = 1") defer tk.MustExec("set @@tidb_enable_window_function = 0") @@ -1029,8 +1011,7 @@ func TestPrepareWithWindowFunction(t *testing.T) { } func TestPrepareWindowFunctionWithoutParamsCheck(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(false) @@ -1061,8 +1042,7 @@ func TestPrepareWindowFunctionWithoutParamsCheck(t *testing.T) { } func TestPrepareWithSnapshot(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) safePointName := "tikv_gc_safe_point" safePointValue := "20060102-15:04:05 -0700" @@ -1088,8 +1068,7 @@ func TestPrepareWithSnapshot(t *testing.T) { } func TestPrepareForGroupByItems(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1108,8 +1087,7 @@ func TestPrepareForGroupByItems(t *testing.T) { } func TestPrepareCacheForClusteredIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t1(k varchar(100) primary key clustered, v1 int, v2 int)") @@ -1122,8 +1100,7 @@ func TestPrepareCacheForClusteredIndex(t *testing.T) { } func TestPrepareCacheForPartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1267,8 +1244,7 @@ func mustExec(t *testing.T, se session.Session, sql string) { } func TestConstPropAndPPDWithCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1367,8 +1343,7 @@ func TestConstPropAndPPDWithCache(t *testing.T) { } func TestPlanCacheUnionScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1466,8 +1441,7 @@ func TestPlanCacheUnionScan(t *testing.T) { } func TestPlanCacheSwitchDB(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1521,8 +1495,7 @@ func TestPlanCacheSwitchDB(t *testing.T) { func TestPlanCacheHitInfo(t *testing.T) { t.Skip("unstable, skip it and fix it before 20210705") - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1557,8 +1530,7 @@ func TestPlanCacheHitInfo(t *testing.T) { } func TestIssue29303(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1585,8 +1557,7 @@ func TestIssue29303(t *testing.T) { } func TestIssue34725(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1611,8 +1582,7 @@ func TestIssue34725(t *testing.T) { } func TestIssue33628(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(false) @@ -1632,8 +1602,7 @@ func TestIssue33628(t *testing.T) { } func TestIssue28942(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1660,8 +1629,7 @@ func TestIssue28942(t *testing.T) { } func TestPlanCacheUnsignedHandleOverflow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1687,8 +1655,7 @@ func TestPlanCacheUnsignedHandleOverflow(t *testing.T) { } func TestIssue28254(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1714,8 +1681,7 @@ func TestIssue28254(t *testing.T) { } func TestIssue33067(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1738,8 +1704,7 @@ func TestIssue33067(t *testing.T) { } func TestIssue29486(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1769,8 +1734,7 @@ func TestIssue29486(t *testing.T) { } func TestIssue28867(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1812,8 +1776,7 @@ func TestIssue28867(t *testing.T) { } func TestParamMarker4FastPlan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1924,8 +1887,7 @@ func TestParamMarker4FastPlan(t *testing.T) { } func TestIssue29565(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1947,8 +1909,7 @@ func TestIssue29565(t *testing.T) { } func TestIssue31730(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -1964,8 +1925,7 @@ func TestIssue31730(t *testing.T) { } func TestIssue28828(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2004,8 +1964,7 @@ func TestIssue28828(t *testing.T) { } func TestIssue28920(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2034,8 +1993,7 @@ func TestIssue28920(t *testing.T) { } func TestIssue18066(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2065,8 +2023,7 @@ func TestIssue18066(t *testing.T) { } func TestPrepareForGroupByMultiItems(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2090,8 +2047,7 @@ func TestPrepareForGroupByMultiItems(t *testing.T) { } func TestInvisibleIndexPrepare(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2119,8 +2075,7 @@ func TestInvisibleIndexPrepare(t *testing.T) { // Test for issue https://github.com/pingcap/tidb/issues/22167 func TestPrepareCacheWithJoinTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2142,8 +2097,7 @@ func TestPrepareCacheWithJoinTable(t *testing.T) { } func TestPlanCacheSnapshot(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2188,8 +2142,7 @@ func TestPlanCacheSnapshot(t *testing.T) { } func TestPlanCachePointGetAndTableDual(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2268,8 +2221,7 @@ func TestPlanCachePointGetAndTableDual(t *testing.T) { } func TestIssue26873(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2292,8 +2244,7 @@ func TestIssue26873(t *testing.T) { } func TestIssue29511(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2314,8 +2265,7 @@ func TestIssue29511(t *testing.T) { } func TestIssue23671(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2339,8 +2289,7 @@ func TestIssue23671(t *testing.T) { } func TestIssue29296(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2372,8 +2321,7 @@ func TestIssue29296(t *testing.T) { } func TestIssue28246(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2400,8 +2348,7 @@ func TestIssue28246(t *testing.T) { } func TestIssue29805(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2429,8 +2376,7 @@ func TestIssue29805(t *testing.T) { } func TestIssue29993(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2500,8 +2446,7 @@ func TestIssue29993(t *testing.T) { } func TestIssue30100(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2528,8 +2473,7 @@ func TestIssue30100(t *testing.T) { } func TestPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2662,8 +2606,7 @@ func TestPartitionTable(t *testing.T) { } func TestPartitionWithVariedDataSources(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2818,8 +2761,7 @@ func TestPartitionWithVariedDataSources(t *testing.T) { } func TestCachedTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -2891,8 +2833,7 @@ func TestPlanCacheWithRCWhenInfoSchemaChange(t *testing.T) { core.SetPreparedPlanCache(true) ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -2932,8 +2873,7 @@ func TestPlanCacheWithRCWhenInfoSchemaChange(t *testing.T) { func TestConsistencyBetweenPrepareExecuteAndNormalSql(t *testing.T) { ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -3011,8 +2951,7 @@ func TestCacheHitInRc(t *testing.T) { core.SetPreparedPlanCache(true) ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -3044,8 +2983,7 @@ func TestCacheHitInForUpdateRead(t *testing.T) { core.SetPreparedPlanCache(true) ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -3073,8 +3011,7 @@ func TestPointGetForUpdateAutoCommitCache(t *testing.T) { core.SetPreparedPlanCache(true) ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -3112,8 +3049,7 @@ func TestPointGetForUpdateAutoCommitCache(t *testing.T) { } func TestPreparedShowStatements(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/planner/core/preprocess_test.go b/planner/core/preprocess_test.go index 14f80a71efb76..2ff7bb8ce6d6a 100644 --- a/planner/core/preprocess_test.go +++ b/planner/core/preprocess_test.go @@ -278,8 +278,7 @@ func TestValidator(t *testing.T) { {"select * from t tablesample system() repeatable (10);", false, expression.ErrInvalidTableSample}, } - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -290,8 +289,7 @@ func TestValidator(t *testing.T) { } func TestForeignKey(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create table test.t1(a int, b int, c int)") tk.MustExec("create table test.t2(d int)") @@ -307,8 +305,7 @@ func TestForeignKey(t *testing.T) { } func TestDropGlobalTempTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -333,8 +330,7 @@ func TestDropGlobalTempTable(t *testing.T) { } func TestErrKeyPart0(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database TestErrKeyPart") tk.MustExec("use TestErrKeyPart") @@ -350,8 +346,7 @@ func TestErrKeyPart0(t *testing.T) { // For issue #30328 func TestLargeVarcharAutoConv(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -372,8 +367,7 @@ func TestLargeVarcharAutoConv(t *testing.T) { } func TestPreprocessCTE(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t, t1, t2;") diff --git a/planner/core/rule_join_reorder_test.go b/planner/core/rule_join_reorder_test.go index 8e3ed32fcbcde..7e864195b71c6 100644 --- a/planner/core/rule_join_reorder_test.go +++ b/planner/core/rule_join_reorder_test.go @@ -47,8 +47,7 @@ func runJoinReorderTestData(t *testing.T, tk *testkit.TestKit, name string) { } func TestStraightJoinHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -62,8 +61,7 @@ func TestStraightJoinHint(t *testing.T) { } func TestLeadingJoinHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -85,8 +83,7 @@ func TestLeadingJoinHint(t *testing.T) { } func TestJoinOrderHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -169,8 +166,7 @@ func TestJoinOrderHint(t *testing.T) { } func TestJoinOrderHintWithBinding(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -218,8 +214,7 @@ func TestJoinOrderHintWithBinding(t *testing.T) { } func TestJoinOrderHint4StaticPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -237,8 +232,7 @@ func TestJoinOrderHint4StaticPartitionTable(t *testing.T) { } func TestJoinOrderHint4DynamicPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -256,8 +250,7 @@ func TestJoinOrderHint4DynamicPartitionTable(t *testing.T) { } func TestJoinOrderHint4DifferentJoinType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -276,8 +269,7 @@ func TestJoinOrderHint4DifferentJoinType(t *testing.T) { } func TestJoinOrderHint4TiFlash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t, t1, t2, t3;") @@ -309,8 +301,7 @@ func TestJoinOrderHint4TiFlash(t *testing.T) { } func TestJoinOrderHint4Subquery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -331,8 +322,7 @@ func TestJoinOrderHint4Subquery(t *testing.T) { } func TestLeadingJoinHint4OuterJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/planner/core/rule_result_reorder_test.go b/planner/core/rule_result_reorder_test.go index 7c7ec45d76aea..b41691d7885cc 100644 --- a/planner/core/rule_result_reorder_test.go +++ b/planner/core/rule_result_reorder_test.go @@ -29,8 +29,7 @@ import ( ) func TestPlanCache(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) orgEnable := plannercore.PreparedPlanCacheEnabled() @@ -57,8 +56,7 @@ func TestPlanCache(t *testing.T) { } func TestSQLBinding(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -83,8 +81,7 @@ func TestSQLBinding(t *testing.T) { } func TestClusteredIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -117,8 +114,7 @@ func runTestData(t *testing.T, tk *testkit.TestKit, name string) { } func TestOrderedResultMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -130,8 +126,7 @@ func TestOrderedResultMode(t *testing.T) { } func TestOrderedResultModeOnDML(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -142,8 +137,7 @@ func TestOrderedResultModeOnDML(t *testing.T) { } func TestOrderedResultModeOnSubQuery(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -156,8 +150,7 @@ func TestOrderedResultModeOnSubQuery(t *testing.T) { } func TestOrderedResultModeOnJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -170,8 +163,7 @@ func TestOrderedResultModeOnJoin(t *testing.T) { } func TestOrderedResultModeOnOtherOperators(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -184,8 +176,7 @@ func TestOrderedResultModeOnOtherOperators(t *testing.T) { } func TestOrderedResultModeOnPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -204,8 +195,7 @@ func TestOrderedResultModeOnPartitionTable(t *testing.T) { } func TestStableResultSwitch(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) rows := tk.MustQuery("show variables where variable_name like 'tidb_enable_ordered_result_mode'").Rows() diff --git a/planner/core/stats_test.go b/planner/core/stats_test.go index db430dd9311d6..a301b42f48ff3 100644 --- a/planner/core/stats_test.go +++ b/planner/core/stats_test.go @@ -29,8 +29,7 @@ import ( ) func TestGroupNDVs(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") @@ -121,8 +120,7 @@ func TestGroupNDVs(t *testing.T) { } func TestNDVGroupCols(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2") diff --git a/planner/core/stringer_test.go b/planner/core/stringer_test.go index 50f15ae9e9c37..2dd305e4ab85b 100644 --- a/planner/core/stringer_test.go +++ b/planner/core/stringer_test.go @@ -26,8 +26,7 @@ import ( ) func TestPlanStringer(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/planner/core/window_push_down_test.go b/planner/core/window_push_down_test.go index 5000bf79f312f..599fe113ff1c5 100644 --- a/planner/core/window_push_down_test.go +++ b/planner/core/window_push_down_test.go @@ -71,8 +71,7 @@ func testWithData(t *testing.T, tk *testkit.TestKit, input Input, output Output) // Test WindowFuncDesc.CanPushDownToTiFlash func TestWindowFunctionDescCanPushDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) dom := domain.GetDomain(tk.Session()) @@ -89,8 +88,7 @@ func TestWindowFunctionDescCanPushDown(t *testing.T) { } func TestWindowPushDownPlans(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) dom := domain.GetDomain(tk.Session()) @@ -107,8 +105,7 @@ func TestWindowPushDownPlans(t *testing.T) { } func TestWindowPlanWithOtherOperators(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) dom := domain.GetDomain(tk.Session()) @@ -125,8 +122,7 @@ func TestWindowPlanWithOtherOperators(t *testing.T) { } func TestIssue34765(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) dom := domain.GetDomain(tk.Session()) diff --git a/planner/funcdep/extract_fd_test.go b/planner/funcdep/extract_fd_test.go index ba4a4d12b5436..92a924df6c0be 100644 --- a/planner/funcdep/extract_fd_test.go +++ b/planner/funcdep/extract_fd_test.go @@ -39,8 +39,7 @@ func testGetIS(t *testing.T, ctx sessionctx.Context) infoschema.InfoSchema { } func TestFDSet_ExtractFD(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) par := parser.New() par.SetParserConfig(parser.ParserConfig{EnableWindowFunction: true, EnableStrictDoubleTypeCheck: true}) @@ -236,8 +235,7 @@ func TestFDSet_ExtractFD(t *testing.T) { } func TestFDSet_ExtractFDForApply(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) par := parser.New() par.SetParserConfig(parser.ParserConfig{EnableWindowFunction: true, EnableStrictDoubleTypeCheck: true}) @@ -335,8 +333,7 @@ func TestFDSet_ExtractFDForApply(t *testing.T) { } func TestFDSet_MakeOuterJoin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) par := parser.New() par.SetParserConfig(parser.ParserConfig{EnableWindowFunction: true, EnableStrictDoubleTypeCheck: true}) diff --git a/planner/funcdep/only_full_group_by_test.go b/planner/funcdep/only_full_group_by_test.go index aecad5c5182ae..7a6bc12388a48 100644 --- a/planner/funcdep/only_full_group_by_test.go +++ b/planner/funcdep/only_full_group_by_test.go @@ -22,8 +22,7 @@ import ( ) func TestOnlyFullGroupByOldCases(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) diff --git a/plugin/integration_test.go b/plugin/integration_test.go index 84cb8d2076a24..b7becd0f3abcf 100644 --- a/plugin/integration_test.go +++ b/plugin/integration_test.go @@ -33,8 +33,7 @@ import ( // Audit tests cannot run in parallel. func TestAuditLogNormal(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) sv := server.CreateMockServer(t, store) defer sv.Close() conn := server.CreateMockConn(t, sv) diff --git a/privilege/privileges/cache_test.go b/privilege/privileges/cache_test.go index 9fe596e29de65..4670e5391f791 100644 --- a/privilege/privileges/cache_test.go +++ b/privilege/privileges/cache_test.go @@ -27,8 +27,7 @@ import ( ) func TestLoadUserTable(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use mysql;") @@ -57,8 +56,7 @@ func TestLoadUserTable(t *testing.T) { } func TestLoadGlobalPrivTable(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use mysql;") @@ -81,8 +79,7 @@ func TestLoadGlobalPrivTable(t *testing.T) { } func TestLoadDBTable(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use mysql;") @@ -100,8 +97,7 @@ func TestLoadDBTable(t *testing.T) { } func TestLoadTablesPrivTable(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use mysql;") @@ -122,8 +118,7 @@ func TestLoadTablesPrivTable(t *testing.T) { } func TestLoadColumnsPrivTable(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use mysql;") @@ -144,8 +139,7 @@ func TestLoadColumnsPrivTable(t *testing.T) { } func TestLoadDefaultRoleTable(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use mysql;") @@ -163,8 +157,7 @@ func TestLoadDefaultRoleTable(t *testing.T) { } func TestPatternMatch(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) activeRoles := make([]*auth.RoleIdentity, 0) @@ -199,8 +192,7 @@ func TestPatternMatch(t *testing.T) { } func TestHostMatch(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) activeRoles := make([]*auth.RoleIdentity, 0) @@ -251,8 +243,7 @@ func TestHostMatch(t *testing.T) { } func TestCaseInsensitive(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) activeRoles := make([]*auth.RoleIdentity, 0) tk := testkit.NewTestKit(t, store) @@ -269,8 +260,7 @@ func TestCaseInsensitive(t *testing.T) { } func TestLoadRoleGraph(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use mysql;") @@ -298,8 +288,7 @@ func TestLoadRoleGraph(t *testing.T) { } func TestRoleGraphBFS(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE ROLE r_1, r_2, r_3, r_4, r_5, r_6;`) @@ -332,8 +321,7 @@ func TestRoleGraphBFS(t *testing.T) { } func TestFindAllUserEffectiveRoles(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER u1`) @@ -367,8 +355,7 @@ func TestFindAllUserEffectiveRoles(t *testing.T) { } func TestAbnormalMySQLTable(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) @@ -508,8 +495,7 @@ func checkUserRecord(t *testing.T, x, y []privileges.UserRecord) { } func TestDBIsVisible(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database visdb") diff --git a/privilege/privileges/privileges_test.go b/privilege/privileges/privileges_test.go index 086b270fb8ea1..0369e8ee923e6 100644 --- a/privilege/privileges/privileges_test.go +++ b/privilege/privileges/privileges_test.go @@ -48,8 +48,7 @@ import ( ) func TestCheckDBPrivilege(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec(`CREATE USER 'testcheck'@'localhost';`) rootTk.MustExec(`CREATE USER 'testcheck_tmp'@'localhost';`) @@ -77,8 +76,7 @@ func TestCheckDBPrivilege(t *testing.T) { } func TestCheckPointGetDBPrivilege(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec(`CREATE USER 'tester'@'localhost';`) rootTk.MustExec(`GRANT SELECT,UPDATE ON test.* TO 'tester'@'localhost';`) @@ -96,8 +94,7 @@ func TestCheckPointGetDBPrivilege(t *testing.T) { } func TestCheckExchangePartitionDBPrivilege(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec(`CREATE USER 'tester'@'localhost';`) @@ -127,8 +124,7 @@ func TestCheckExchangePartitionDBPrivilege(t *testing.T) { } func TestIssue22946(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec("create database db1;") rootTk.MustExec("create database db2;") @@ -152,8 +148,7 @@ func TestIssue22946(t *testing.T) { } func TestCheckTablePrivilege(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec(`CREATE USER 'test1'@'localhost';`) @@ -188,8 +183,7 @@ func TestCheckTablePrivilege(t *testing.T) { } func TestCheckViewPrivilege(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec("use test") rootTk.MustExec(`CREATE USER 'vuser'@'localhost';`) @@ -211,8 +205,7 @@ func TestCheckViewPrivilege(t *testing.T) { } func TestCheckPrivilegeWithRoles(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec(`CREATE USER 'test_role'@'localhost';`) rootTk.MustExec(`CREATE ROLE r_1, r_2, r_3;`) @@ -245,8 +238,7 @@ func TestCheckPrivilegeWithRoles(t *testing.T) { } func TestShowGrants(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) ctx, _ := tk.Session().(sessionctx.Context) @@ -428,8 +420,7 @@ func TestShowGrants(t *testing.T) { // identity from mysql.user. In TiDB we now use the identity from mysql.user in error messages // for consistency. func TestErrorMessage(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec(`CREATE USER wildcard`) @@ -450,8 +441,7 @@ func TestErrorMessage(t *testing.T) { } func TestShowColumnGrants(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`USE test`) tk.MustExec(`CREATE USER 'column'@'%'`) @@ -465,8 +455,7 @@ func TestShowColumnGrants(t *testing.T) { } func TestDropTablePrivileges(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -493,8 +482,7 @@ func TestDropTablePrivileges(t *testing.T) { } func TestSetPasswdStmt(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) // high privileged user setting password for other user (passes) @@ -513,8 +501,7 @@ func TestSetPasswdStmt(t *testing.T) { } func TestAlterUserStmt(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) // high privileged user setting password for other user (passes) @@ -613,8 +600,7 @@ func TestAlterUserStmt(t *testing.T) { } func TestSelectViewSecurity(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -640,8 +626,7 @@ func TestSelectViewSecurity(t *testing.T) { } func TestShowViewPriv(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`DROP VIEW IF EXISTS test.v`) @@ -736,8 +721,7 @@ func TestShowViewPriv(t *testing.T) { } func TestRoleAdminSecurity(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER 'ar1'@'localhost';`) @@ -758,8 +742,7 @@ func TestRoleAdminSecurity(t *testing.T) { } func TestCheckCertBasedAuth(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER 'r1'@'localhost';`) @@ -993,8 +976,7 @@ func connectionState(issuer, subject pkix.Name, cipher uint16, opt ...func(c *x5 } func TestCheckAuthenticate(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER 'u1'@'localhost';`) @@ -1035,8 +1017,7 @@ func TestCheckAuthenticate(t *testing.T) { } func TestUseDB(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) // high privileged user @@ -1078,8 +1059,7 @@ func TestUseDB(t *testing.T) { } func TestRevokePrivileges(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER 'hasgrant'") @@ -1104,8 +1084,7 @@ func TestRevokePrivileges(t *testing.T) { } func TestSetGlobal(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER setglobal_a@localhost`) tk.MustExec(`CREATE USER setglobal_b@localhost`) @@ -1120,8 +1099,7 @@ func TestSetGlobal(t *testing.T) { } func TestCreateDropUser(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER tcd1, tcd2`) @@ -1148,8 +1126,7 @@ func TestCreateDropUser(t *testing.T) { } func TestConfigPrivilege(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`DROP USER IF EXISTS tcd1`) @@ -1174,8 +1151,7 @@ func TestConfigPrivilege(t *testing.T) { } func TestShowCreateTable(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER tsct1, tsct2`) @@ -1192,8 +1168,7 @@ func TestShowCreateTable(t *testing.T) { } func TestReplaceAndInsertOnDuplicate(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1235,8 +1210,7 @@ func TestReplaceAndInsertOnDuplicate(t *testing.T) { } func TestAnalyzeTable(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) // high privileged user @@ -1273,8 +1247,7 @@ func TestAnalyzeTable(t *testing.T) { } func TestSystemSchema(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) // This test tests no privilege check for INFORMATION_SCHEMA database. tk := testkit.NewTestKit(t, store) @@ -1313,8 +1286,7 @@ func TestSystemSchema(t *testing.T) { } func TestPerformanceSchema(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) // This test tests no privilege check for INFORMATION_SCHEMA database. tk := testkit.NewTestKit(t, store) @@ -1346,8 +1318,7 @@ func TestPerformanceSchema(t *testing.T) { } func TestMetricsSchema(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER nobody, msprocess, msselect") @@ -1458,8 +1429,7 @@ func TestMetricsSchema(t *testing.T) { } func TestAdminCommand(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1480,8 +1450,7 @@ func TestAdminCommand(t *testing.T) { } func TestTableNotExistNoPermissions(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "localhost"}, nil, nil)) @@ -1538,8 +1507,7 @@ func TestLoadDataPrivilege(t *testing.T) { _, err = fp.WriteString("1\n") require.NoError(t, err) - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1567,8 +1535,7 @@ func TestLoadDataPrivilege(t *testing.T) { } func TestSelectIntoNoPermissions(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER 'nofile'@'localhost';`) @@ -1579,8 +1546,7 @@ func TestSelectIntoNoPermissions(t *testing.T) { } func TestGetEncodedPassword(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER 'test_encode_u'@'localhost' identified by 'root';`) @@ -1589,8 +1555,7 @@ func TestGetEncodedPassword(t *testing.T) { } func TestAuthHost(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) tk := testkit.NewTestKit(t, store) @@ -1610,8 +1575,7 @@ func TestAuthHost(t *testing.T) { } func TestDefaultRoles(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec(`CREATE USER 'testdefault'@'localhost';`) @@ -1634,8 +1598,7 @@ func TestDefaultRoles(t *testing.T) { } func TestUserTableConsistency(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewAsyncTestKit(t, store) ctx := tk.OpenSession(context.Background(), "test") @@ -1663,8 +1626,7 @@ func TestUserTableConsistency(t *testing.T) { } func TestFieldList(t *testing.T) { // Issue #14237 List fields RPC - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1677,8 +1639,7 @@ func TestFieldList(t *testing.T) { // Issue #14237 List fields RPC } func TestDynamicPrivs(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec("CREATE USER notsuper") @@ -1723,8 +1684,7 @@ func TestDynamicPrivs(t *testing.T) { } func TestDynamicGrantOption(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec("CREATE USER varuser1") @@ -1745,8 +1705,7 @@ func TestDynamicGrantOption(t *testing.T) { } func TestSecurityEnhancedModeRestrictedTables(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) // This provides an integration test of the tests in util/security/security_test.go cloudAdminTK := testkit.NewTestKit(t, store) @@ -1777,8 +1736,7 @@ func TestSecurityEnhancedModeRestrictedTables(t *testing.T) { } func TestSecurityEnhancedModeInfoschema(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER uroot1, uroot2, uroot3") @@ -1810,8 +1768,7 @@ func TestSecurityEnhancedModeInfoschema(t *testing.T) { } func TestClusterConfigInfoschema(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER ccnobody, ccconfig, ccprocess") @@ -1897,8 +1854,7 @@ func TestSecurityEnhancedModeStatusVars(t *testing.T) { // So we can only test that the dynamic privilege is grantable. // We will have to use an integration test to run SHOW STATUS LIKE 'tidb_gc_leader_desc' // and verify if it appears. - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER unostatus, ustatus") tk.MustExec("GRANT RESTRICTED_STATUS_ADMIN ON *.* to ustatus") @@ -1909,8 +1865,7 @@ func TestSecurityEnhancedModeStatusVars(t *testing.T) { } func TestSecurityEnhancedLocalBackupRestore(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER backuprestore") @@ -1952,8 +1907,7 @@ func TestSecurityEnhancedLocalBackupRestore(t *testing.T) { } func TestRenameUser(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) rootTk := testkit.NewTestKit(t, store) rootTk.MustExec("DROP USER IF EXISTS 'ru1'@'localhost'") @@ -2012,8 +1966,7 @@ func TestRenameUser(t *testing.T) { } func TestSecurityEnhancedModeSysVars(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER svroot1, svroot2") @@ -2077,8 +2030,7 @@ func TestSecurityEnhancedModeSysVars(t *testing.T) { // TestViewDefiner tests that default roles are correctly applied in the algorithm definer // See: https://github.com/pingcap/tidb/issues/24414 func TestViewDefiner(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE issue24414") @@ -2106,8 +2058,7 @@ func TestViewDefiner(t *testing.T) { } func TestSecurityEnhancedModeRestrictedUsers(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER ruroot1, ruroot2, ruroot3") @@ -2154,8 +2105,7 @@ func TestSecurityEnhancedModeRestrictedUsers(t *testing.T) { } func TestDynamicPrivsRegistration(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) pm := privilege.GetPrivilegeManager(tk.Session()) @@ -2196,8 +2146,7 @@ func TestDynamicPrivsRegistration(t *testing.T) { func TestInfoSchemaUserPrivileges(t *testing.T) { // Being able to read all privileges from information_schema.user_privileges requires a very specific set of permissions. // SUPER user is not sufficient. It was observed in MySQL to require SELECT on mysql.* - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER isnobody, isroot, isselectonmysqluser, isselectonmysql") @@ -2254,8 +2203,7 @@ func TestInfoSchemaUserPrivileges(t *testing.T) { // Issues https://github.com/pingcap/tidb/issues/25972 and https://github.com/pingcap/tidb/issues/26451 func TestGrantOptionAndRevoke(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("DROP USER IF EXISTS u1, u2, u3, ruser") @@ -2303,8 +2251,8 @@ func TestGrantOptionAndRevoke(t *testing.T) { )) } -func createStoreAndPrepareDB(t *testing.T) (kv.Storage, func()) { - store, clean := testkit.CreateMockStore(t) +func createStoreAndPrepareDB(t *testing.T) kv.Storage { + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") tk.MustExec("create database if not exists test1") @@ -2315,12 +2263,11 @@ func createStoreAndPrepareDB(t *testing.T) (kv.Storage, func()) { tk.MustExec(session.CreateDBPrivTable) tk.MustExec(session.CreateTablePrivTable) tk.MustExec(session.CreateColumnPrivTable) - return store, clean + return store } func TestGrantReferences(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE SCHEMA reftestdb") @@ -2344,8 +2291,7 @@ func TestGrantReferences(t *testing.T) { } func TestDashboardClientDynamicPriv(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE ROLE dc_r1") @@ -2388,8 +2334,7 @@ func TestDashboardClientDynamicPriv(t *testing.T) { // https://github.com/pingcap/tidb/issues/27213 func TestShowGrantsWithRolesAndDynamicPrivs(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE ROLE tsg_r1") @@ -2476,8 +2421,7 @@ func TestShowGrantsWithRolesAndDynamicPrivs(t *testing.T) { } func TestGrantLockTables(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE lock_tables_db") @@ -2500,8 +2444,7 @@ func TestGrantLockTables(t *testing.T) { // https://github.com/pingcap/tidb/issues/27560 func TestShowGrantsForCurrentUserUsingRole(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) @@ -2550,8 +2493,7 @@ func TestShowGrantsForCurrentUserUsingRole(t *testing.T) { } func TestGrantPlacementAdminDynamicPriv(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE placement_db") @@ -2572,8 +2514,7 @@ func TestGrantPlacementAdminDynamicPriv(t *testing.T) { } func TestPlacementPolicyStmt(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("drop placement policy if exists x") createStmt := "create placement policy x PRIMARY_REGION=\"cn-east-1\" REGIONS=\"cn-east-1\"" @@ -2600,16 +2541,14 @@ func TestPlacementPolicyStmt(t *testing.T) { } func TestDBNameCaseSensitivityInTableLevel(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE USER test_user") tk.MustExec("grant select on metrics_schema.up to test_user;") } func TestGrantCreateTmpTables(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE create_tmp_table_db") @@ -2632,8 +2571,7 @@ func TestGrantCreateTmpTables(t *testing.T) { } func TestCreateTmpTablesPriv(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) createStmt := "CREATE TEMPORARY TABLE test.tmp(id int)" dropStmt := "DROP TEMPORARY TABLE IF EXISTS test.tmp" @@ -2789,8 +2727,7 @@ func TestCreateTmpTablesPriv(t *testing.T) { } func TestRevokeSecondSyntax(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.Session().Auth(&auth.UserIdentity{ @@ -2805,8 +2742,7 @@ func TestRevokeSecondSyntax(t *testing.T) { } func TestGrantEvent(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE event_db") @@ -2828,8 +2764,7 @@ func TestGrantEvent(t *testing.T) { } func TestGrantRoutine(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("CREATE DATABASE routine_db") @@ -2853,8 +2788,7 @@ func TestGrantRoutine(t *testing.T) { } func TestIssue28675(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`DROP VIEW IF EXISTS test.v`) @@ -2883,8 +2817,7 @@ func TestSkipGrantTable(t *testing.T) { config.UpdateGlobal(func(c *config.Config) { c.Security.SkipGrantTable = true }) defer config.StoreGlobalConfig(save) - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) // Issue 29317 tk := testkit.NewTestKit(t, store) @@ -2921,8 +2854,7 @@ func TestSkipGrantTable(t *testing.T) { // https://github.com/pingcap/tidb/issues/32891 func TestIncorrectUsageDBGrant(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec(`CREATE USER ucorrect1, ucorrect2;`) @@ -2936,8 +2868,7 @@ func TestIncorrectUsageDBGrant(t *testing.T) { } func TestIssue29823(t *testing.T) { - store, clean := createStoreAndPrepareDB(t) - defer clean() + store := createStoreAndPrepareDB(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/server/conn_test.go b/server/conn_test.go index 75146c592017d..4d0787c5c8406 100644 --- a/server/conn_test.go +++ b/server/conn_test.go @@ -71,8 +71,7 @@ func (c *Issue33699CheckType) toGetSessionVar() string { } func TestIssue33699(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) var outBuffer bytes.Buffer tidbdrv := NewTiDBDriver(store) @@ -307,8 +306,7 @@ func TestAuthSwitchRequest(t *testing.T) { } func TestInitialHandshake(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) var outBuffer bytes.Buffer cfg := newTestConfig() @@ -599,8 +597,7 @@ func TestDispatchClientProtocol41(t *testing.T) { } func testDispatch(t *testing.T, inputs []dispatchInput, capability uint32) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -652,8 +649,7 @@ func testDispatch(t *testing.T, inputs []dispatchInput, capability uint32) { } func TestGetSessionVarsWaitTimeout(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) @@ -686,8 +682,7 @@ func mapBelong(m1, m2 map[string]string) bool { } func TestConnExecutionTimeout(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) // There is no underlying netCon, use failpoint to avoid panic require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/server/FakeClientConn", "return(1)")) @@ -749,8 +744,7 @@ func TestConnExecutionTimeout(t *testing.T) { } func TestShutDown(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) cc := &clientConn{} se, err := session.CreateSession4Test(store) @@ -765,8 +759,7 @@ func TestShutDown(t *testing.T) { } func TestShutdownOrNotify(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) tc := &TiDBContext{ @@ -795,8 +788,7 @@ type snapshotCache interface { } func TestPrefetchPointKeys(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) cc := &clientConn{ alloc: arena.NewAllocator(1024), @@ -846,7 +838,7 @@ func TestPrefetchPointKeys(t *testing.T) { } func TestTiFlashFallback(t *testing.T) { - store, clean := testkit.CreateMockStore(t, + store := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockCluster := c.(*unistore.Cluster) _, _, region1 := mockstore.BootstrapWithSingleStore(c) @@ -857,7 +849,6 @@ func TestTiFlashFallback(t *testing.T) { }), mockstore.WithStoreType(mockstore.EmbedUnistore), ) - defer clean() cc := &clientConn{ alloc: arena.NewAllocator(1024), @@ -976,8 +967,7 @@ func testFallbackWork(t *testing.T, tk *testkit.TestKit, cc *clientConn, sql str // For issue https://github.com/pingcap/tidb/issues/25069 func TestShowErrors(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) cc := &clientConn{ alloc: arena.NewAllocator(1024), chunkAlloc: chunk.NewAllocator(), @@ -1002,8 +992,7 @@ func TestShowErrors(t *testing.T) { } func TestHandleAuthPlugin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) cfg := newTestConfig() cfg.Port = 0 @@ -1221,8 +1210,7 @@ func TestHandleAuthPlugin(t *testing.T) { } func TestAuthPlugin2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) cfg := newTestConfig() cfg.Port = 0 @@ -1263,8 +1251,7 @@ func TestAuthPlugin2(t *testing.T) { } func TestAuthTokenPlugin(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) cfg := newTestConfig() cfg.Port = 0 diff --git a/server/http_handler_test.go b/server/http_handler_test.go index ea76ccfd64d6f..00976ec4e5829 100644 --- a/server/http_handler_test.go +++ b/server/http_handler_test.go @@ -849,8 +849,7 @@ func TestGetSchema(t *testing.T) { } sort.Strings(names) require.Equal(t, expects, names) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) userTbl := external.GetTableByName(t, tk, "mysql", "user") diff --git a/server/mock_conn_test.go b/server/mock_conn_test.go index 576dcf5959ee2..3ef07777d8141 100644 --- a/server/mock_conn_test.go +++ b/server/mock_conn_test.go @@ -24,8 +24,7 @@ import ( ) func TestMockConn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) server := CreateMockServer(t, store) defer server.Close() conn := CreateMockConn(t, server) diff --git a/server/optimize_trace_test.go b/server/optimize_trace_test.go index 4ed0a2a0e0826..a24f86069fa0e 100644 --- a/server/optimize_trace_test.go +++ b/server/optimize_trace_test.go @@ -27,8 +27,7 @@ import ( ) func TestDumpOptimizeTraceAPI(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) driver := NewTiDBDriver(store) client := newTestServerClient() diff --git a/server/plan_replayer_test.go b/server/plan_replayer_test.go index 903f771463ee8..2ea91677d8438 100644 --- a/server/plan_replayer_test.go +++ b/server/plan_replayer_test.go @@ -32,8 +32,7 @@ import ( ) func TestDumpPlanReplayerAPI(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) driver := NewTiDBDriver(store) client := newTestServerClient() diff --git a/server/statistics_handler_test.go b/server/statistics_handler_test.go index 1f4324d3a54f5..8c239a73d9240 100644 --- a/server/statistics_handler_test.go +++ b/server/statistics_handler_test.go @@ -31,8 +31,7 @@ import ( ) func TestDumpStatsAPI(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) driver := NewTiDBDriver(store) client := newTestServerClient() diff --git a/server/tidb_serial_test.go b/server/tidb_serial_test.go index e2b119e4b1331..600ac32bbae07 100644 --- a/server/tidb_serial_test.go +++ b/server/tidb_serial_test.go @@ -37,8 +37,7 @@ import ( // this test will change `kv.TxnTotalSizeLimit` which may affect other test suites, // so we must make it running in serial. func TestLoadData1(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestLoadDataWithColumnList(t, ts.server) ts.runTestLoadData(t, ts.server) @@ -47,8 +46,7 @@ func TestLoadData1(t *testing.T) { } func TestConfigDefaultValue(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestsOnNewDB(t, nil, "config", func(dbt *testkit.DBTestKit) { rows := dbt.MustQuery("select @@tidb_slow_log_threshold;") @@ -59,36 +57,31 @@ func TestConfigDefaultValue(t *testing.T) { // Fix issue#22540. Change tidb_dml_batch_size, // then check if load data into table with auto random column works properly. func TestLoadDataAutoRandom(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestLoadDataAutoRandom(t) } func TestLoadDataAutoRandomWithSpecialTerm(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestLoadDataAutoRandomWithSpecialTerm(t) } func TestExplainFor(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestExplainForConn(t) } func TestStmtCount(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestStmtCount(t) } func TestLoadDataListPartition(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestLoadDataForListPartition(t) ts.runTestLoadDataForListPartition2(t) @@ -97,8 +90,7 @@ func TestLoadDataListPartition(t *testing.T) { } func TestInvalidTLS(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) cfg := newTestConfig() cfg.Port = 0 @@ -113,8 +105,7 @@ func TestInvalidTLS(t *testing.T) { } func TestTLSAuto(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) // Start the server without TLS configure, letting the server create these as AutoTLS is enabled connOverrider := func(config *mysql.Config) { @@ -143,8 +134,7 @@ func TestTLSAuto(t *testing.T) { } func TestTLSBasic(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) dir := t.TempDir() @@ -208,8 +198,7 @@ func TestTLSBasic(t *testing.T) { } func TestTLSVerify(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) dir := t.TempDir() @@ -301,8 +290,7 @@ func TestTLSVerify(t *testing.T) { } func TestErrorNoRollback(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) // Generate valid TLS certificates. caCert, caKey, err := generateCert(0, "TiDB CA", nil, nil, "/tmp/ca-key-rollback.pem", "/tmp/ca-cert-rollback.pem") @@ -369,8 +357,7 @@ func TestErrorNoRollback(t *testing.T) { } func TestPrepareCount(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) qctx, err := ts.tidbdrv.OpenCtx(uint64(0), 0, uint8(tmysql.DefaultCollationID), "test", nil) require.NoError(t, err) @@ -393,8 +380,7 @@ func TestPrepareCount(t *testing.T) { } func TestPrepareExecute(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) qctx, err := ts.tidbdrv.OpenCtx(uint64(0), 0, uint8(tmysql.DefaultCollationID), "test", nil) require.NoError(t, err) @@ -434,8 +420,7 @@ func TestPrepareExecute(t *testing.T) { } func TestDefaultCharacterAndCollation(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) // issue #21194 // 255 is the collation id of mysql client 8 default collation_connection @@ -458,8 +443,7 @@ func TestDefaultCharacterAndCollation(t *testing.T) { } func TestReloadTLS(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) // Generate valid TLS certificates. caCert, caKey, err := generateCert(0, "TiDB CA", nil, nil, "/tmp/ca-key-reload.pem", "/tmp/ca-cert-reload.pem") diff --git a/server/tidb_test.go b/server/tidb_test.go index 82a997b6dcd4b..04993e481d8f6 100644 --- a/server/tidb_test.go +++ b/server/tidb_test.go @@ -70,7 +70,7 @@ type tidbTestSuite struct { store kv.Storage } -func createTidbTestSuite(t *testing.T) (*tidbTestSuite, func()) { +func createTidbTestSuite(t *testing.T) *tidbTestSuite { ts := &tidbTestSuite{testServerClient: newTestServerClient()} // setup tidbTestSuite @@ -101,7 +101,7 @@ func createTidbTestSuite(t *testing.T) (*tidbTestSuite, func()) { }() ts.waitUntilServerOnline() - cleanup := func() { + t.Cleanup(func() { if ts.domain != nil { ts.domain.Close() } @@ -111,17 +111,17 @@ func createTidbTestSuite(t *testing.T) (*tidbTestSuite, func()) { if ts.store != nil { require.NoError(t, ts.store.Close()) } - } + }) - return ts, cleanup + return ts } type tidbTestTopSQLSuite struct { *tidbTestSuite } -func createTidbTestTopSQLSuite(t *testing.T) (*tidbTestTopSQLSuite, func()) { - base, cleanup := createTidbTestSuite(t) +func createTidbTestTopSQLSuite(t *testing.T) *tidbTestTopSQLSuite { + base := createTidbTestSuite(t) ts := &tidbTestTopSQLSuite{base} @@ -139,76 +139,64 @@ func createTidbTestTopSQLSuite(t *testing.T) (*tidbTestTopSQLSuite, func()) { dbt.MustExec("set @@global.tidb_top_sql_max_time_series_count=5;") require.NoError(t, cpuprofile.StartCPUProfiler()) - cleanFn := func() { - cleanup() + t.Cleanup(func() { cpuprofile.StopCPUProfiler() topsqlstate.GlobalState.PrecisionSeconds.Store(topsqlstate.DefTiDBTopSQLPrecisionSeconds) topsqlstate.GlobalState.ReportIntervalSeconds.Store(topsqlstate.DefTiDBTopSQLReportIntervalSeconds) - } - return ts, cleanFn + }) + return ts } func TestRegression(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) if regression { ts.runTestRegression(t, nil, "Regression") } } func TestUint64(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() - + ts := createTidbTestSuite(t) ts.runTestPrepareResultFieldType(t) } func TestSpecialType(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() - + ts := createTidbTestSuite(t) ts.runTestSpecialType(t) } func TestPreparedString(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestPreparedString(t) } func TestPreparedTimestamp(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestPreparedTimestamp(t) } func TestConcurrentUpdate(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestConcurrentUpdate(t) } func TestErrorCode(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestErrorCode(t) } func TestAuth(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestAuth(t) ts.runTestIssue3682(t) } func TestIssues(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestIssue3662(t) ts.runTestIssue3680(t) @@ -216,28 +204,24 @@ func TestIssues(t *testing.T) { } func TestDBNameEscape(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestDBNameEscape(t) } func TestResultFieldTableIsNull(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestResultFieldTableIsNull(t) } func TestStatusAPI(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestStatusAPI(t) } func TestStatusPort(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) cfg := newTestConfig() cfg.Port = 0 @@ -251,8 +235,7 @@ func TestStatusPort(t *testing.T) { } func TestStatusAPIWithTLS(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) dir := t.TempDir() @@ -295,8 +278,7 @@ func TestStatusAPIWithTLS(t *testing.T) { } func TestStatusAPIWithTLSCNCheck(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) dir := t.TempDir() @@ -375,8 +357,7 @@ func newTLSHttpClient(t *testing.T, caFile, certFile, keyFile string) *http.Clie } func TestMultiStatements(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runFailedTestMultiStatements(t) ts.runTestMultiStatements(t) @@ -386,8 +367,7 @@ func TestSocketForwarding(t *testing.T) { tempDir := t.TempDir() socketFile := tempDir + "/tidbtest.sock" // Unix Socket does not work on Windows, so '/' should be OK - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) cli := newTestServerClient() cfg := newTestConfig() @@ -426,8 +406,7 @@ func TestSocket(t *testing.T) { cfg.Host = "" cfg.Status.ReportStatus = false - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) server, err := NewServer(cfg, ts.tidbdrv) require.NoError(t, err) @@ -461,8 +440,7 @@ func TestSocketAndIp(t *testing.T) { cfg.Port = cli.port cfg.Status.ReportStatus = false - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) server, err := NewServer(cfg, ts.tidbdrv) require.NoError(t, err) @@ -626,8 +604,7 @@ func TestOnlySocket(t *testing.T) { cfg.Host = "" // No network interface listening for mysql traffic cfg.Status.ReportStatus = false - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) server, err := NewServer(cfg, ts.tidbdrv) require.NoError(t, err) @@ -874,8 +851,7 @@ func registerTLSConfig(configName string, caCertPath string, clientCertPath stri } func TestSystemTimeZone(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) tk := testkit.NewTestKit(t, ts.store) cfg := newTestConfig() @@ -890,8 +866,7 @@ func TestSystemTimeZone(t *testing.T) { } func TestInternalSessionTxnStartTS(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) se, err := session.CreateSession4Test(ts.store) require.NoError(t, err) @@ -924,15 +899,13 @@ func TestInternalSessionTxnStartTS(t *testing.T) { } func TestClientWithCollation(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestClientWithCollation(t) } func TestCreateTableFlen(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) // issue #4540 qctx, err := ts.tidbdrv.OpenCtx(uint64(0), 0, uint8(tmysql.DefaultCollationID), "test", nil) @@ -1005,8 +978,7 @@ func Execute(ctx context.Context, qc *TiDBContext, sql string) (ResultSet, error } func TestShowTablesFlen(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) qctx, err := ts.tidbdrv.OpenCtx(uint64(0), 0, uint8(tmysql.DefaultCollationID), "test", nil) require.NoError(t, err) @@ -1036,8 +1008,7 @@ func checkColNames(t *testing.T, columns []*ColumnInfo, names ...string) { } func TestFieldList(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) qctx, err := ts.tidbdrv.OpenCtx(uint64(0), 0, uint8(tmysql.DefaultCollationID), "test", nil) require.NoError(t, err) @@ -1120,26 +1091,22 @@ func TestFieldList(t *testing.T) { } func TestClientErrors(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestInfoschemaClientErrors(t) } func TestInitConnect(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestInitConnect(t) } func TestSumAvg(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) ts.runTestSumAvg(t) } func TestNullFlag(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) qctx, err := ts.tidbdrv.OpenCtx(uint64(0), 0, uint8(tmysql.DefaultCollationID), "test", nil) require.NoError(t, err) @@ -1212,8 +1179,7 @@ func TestNullFlag(t *testing.T) { } func TestNO_DEFAULT_VALUEFlag(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) // issue #21465 qctx, err := ts.tidbdrv.OpenCtx(uint64(0), 0, uint8(tmysql.DefaultCollationID), "test", nil) @@ -1236,8 +1202,7 @@ func TestNO_DEFAULT_VALUEFlag(t *testing.T) { } func TestGracefulShutdown(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) cli := newTestServerClient() cfg := newTestConfig() @@ -1277,8 +1242,7 @@ func TestGracefulShutdown(t *testing.T) { } func TestPessimisticInsertSelectForUpdate(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) qctx, err := ts.tidbdrv.OpenCtx(uint64(0), 0, uint8(tmysql.DefaultCollationID), "test", nil) require.NoError(t, err) @@ -1302,8 +1266,7 @@ func TestPessimisticInsertSelectForUpdate(t *testing.T) { } func TestTopSQLCatchRunningSQL(t *testing.T) { - ts, cleanup := createTidbTestTopSQLSuite(t) - defer cleanup() + ts := createTidbTestTopSQLSuite(t) db, err := sql.Open("mysql", ts.getDSN()) require.NoError(t, err) @@ -1373,8 +1336,7 @@ func TestTopSQLCatchRunningSQL(t *testing.T) { } func TestTopSQLCPUProfile(t *testing.T) { - ts, cleanup := createTidbTestTopSQLSuite(t) - defer cleanup() + ts := createTidbTestTopSQLSuite(t) db, err := sql.Open("mysql", ts.getDSN()) require.NoError(t, err) @@ -1758,8 +1720,7 @@ func waitCollected(ch chan struct{}) { } func TestTopSQLStatementStats(t *testing.T) { - ts, total, tagChecker, collectedNotifyCh, cleanFn := setupForTestTopSQLStatementStats(t) - defer cleanFn() + ts, total, tagChecker, collectedNotifyCh := setupForTestTopSQLStatementStats(t) const ExecCountPerSQL = 2 // Test for CRUD. @@ -2041,7 +2002,7 @@ func (c *resourceTagChecker) checkReqExist(t *testing.T, digest stmtstats.Binary } } -func setupForTestTopSQLStatementStats(t *testing.T) (*tidbTestSuite, stmtstats.StatementStatsMap, *resourceTagChecker, chan struct{}, func()) { +func setupForTestTopSQLStatementStats(t *testing.T) (*tidbTestSuite, stmtstats.StatementStatsMap, *resourceTagChecker, chan struct{}) { // Prepare stmt stats. stmtstats.SetupAggregator() @@ -2060,7 +2021,7 @@ func setupForTestTopSQLStatementStats(t *testing.T) (*tidbTestSuite, stmtstats.S }) stmtstats.RegisterCollector(mockCollector) - ts, cleanup := createTidbTestSuite(t) + ts := createTidbTestSuite(t) db, err := sql.Open("mysql", ts.getDSN()) require.NoError(t, err) @@ -2108,21 +2069,20 @@ func setupForTestTopSQLStatementStats(t *testing.T) (*tidbTestSuite, stmtstats.S tagChecker.sqlDigest2Reqs[stmtstats.BinaryDigest(sqlDigest)] = reqMap } - cleanFn := func() { + t.Cleanup(func() { stmtstats.UnregisterCollector(mockCollector) - cleanup() err = failpoint.Disable("github.com/pingcap/tidb/domain/skipLoadSysVarCacheLoop") require.NoError(t, err) err = failpoint.Disable("github.com/pingcap/tidb/store/mockstore/unistore/unistoreRPCClientSendHook") require.NoError(t, err) stmtstats.CloseAggregator() - } - return ts, total, tagChecker, collectedNotifyCh, cleanFn + }) + + return ts, total, tagChecker, collectedNotifyCh } func TestTopSQLStatementStats2(t *testing.T) { - ts, total, tagChecker, collectedNotifyCh, cleanFn := setupForTestTopSQLStatementStats(t) - defer cleanFn() + ts, total, tagChecker, collectedNotifyCh := setupForTestTopSQLStatementStats(t) const ExecCountPerSQL = 3 sqlDigests := map[stmtstats.BinaryDigest]string{} @@ -2240,8 +2200,7 @@ func TestTopSQLStatementStats2(t *testing.T) { } func TestTopSQLStatementStats3(t *testing.T) { - ts, total, tagChecker, collectedNotifyCh, cleanFn := setupForTestTopSQLStatementStats(t) - defer cleanFn() + ts, total, tagChecker, collectedNotifyCh := setupForTestTopSQLStatementStats(t) err := failpoint.Enable("github.com/pingcap/tidb/executor/mockSleepInTableReaderNext", "return(2000)") require.NoError(t, err) @@ -2308,8 +2267,7 @@ func TestTopSQLStatementStats3(t *testing.T) { } func TestTopSQLStatementStats4(t *testing.T) { - ts, total, tagChecker, collectedNotifyCh, cleanFn := setupForTestTopSQLStatementStats(t) - defer cleanFn() + ts, total, tagChecker, collectedNotifyCh := setupForTestTopSQLStatementStats(t) err := failpoint.Enable("github.com/pingcap/tidb/executor/mockSleepInTableReaderNext", "return(2000)") require.NoError(t, err) @@ -2386,10 +2344,9 @@ func TestTopSQLStatementStats4(t *testing.T) { } func TestTopSQLResourceTag(t *testing.T) { - ts, _, tagChecker, _, cleanFn := setupForTestTopSQLStatementStats(t) + ts, _, tagChecker, _ := setupForTestTopSQLStatementStats(t) defer func() { topsqlstate.DisableTopSQL() - cleanFn() }() loadDataFile, err := os.CreateTemp("", "load_data_test0.csv") @@ -2524,8 +2481,7 @@ func TestLocalhostClientMapping(t *testing.T) { cfg.Port = cli.port cfg.Status.ReportStatus = false - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) server, err := NewServer(cfg, ts.tidbdrv) require.NoError(t, err) @@ -2617,8 +2573,7 @@ func TestLocalhostClientMapping(t *testing.T) { } func TestRcReadCheckTS(t *testing.T) { - ts, cleanup := createTidbTestSuite(t) - defer cleanup() + ts := createTidbTestSuite(t) db, err := sql.Open("mysql", ts.getDSN()) require.NoError(t, err) diff --git a/session/bootstrap_upgrade_test.go b/session/bootstrap_upgrade_test.go index 4eb0a2cefac7d..27a5c34a2eb7f 100644 --- a/session/bootstrap_upgrade_test.go +++ b/session/bootstrap_upgrade_test.go @@ -26,8 +26,7 @@ import ( func TestUpgradeVersion83(t *testing.T) { ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) ver, err := session.GetBootstrapVersion(tk.Session()) @@ -58,8 +57,7 @@ func TestUpgradeVersion83(t *testing.T) { func TestUpgradeVersion84(t *testing.T) { ctx := context.Background() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) ver, err := session.GetBootstrapVersion(tk.Session()) diff --git a/session/clustered_index_test.go b/session/clustered_index_test.go index 4a3f6a66ac6ad..eb9675dfea4ba 100644 --- a/session/clustered_index_test.go +++ b/session/clustered_index_test.go @@ -39,8 +39,7 @@ func createTestKit(t *testing.T, store kv.Storage) *testkit.TestKit { } func TestClusteredUnionScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t") @@ -62,8 +61,7 @@ func TestClusteredUnionScan(t *testing.T) { } func TestClusteredPrefixColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t") @@ -135,8 +133,7 @@ func TestClusteredPrefixColumn(t *testing.T) { } func TestClusteredUnionScanIndexLookup(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t;") @@ -154,8 +151,7 @@ func TestClusteredUnionScanIndexLookup(t *testing.T) { } func TestClusteredIndexLookUp(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t") @@ -166,8 +162,7 @@ func TestClusteredIndexLookUp(t *testing.T) { } func TestClusteredIndexLookUp2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists c3") @@ -192,8 +187,7 @@ SELECT c_balance, c_first, c_middle, c_id FROM c3 use index (idx) WHERE c_w_id = } func TestClusteredTopN(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists o3") @@ -212,8 +206,7 @@ func TestClusteredTopN(t *testing.T) { } func TestClusteredHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists ht") @@ -222,8 +215,7 @@ func TestClusteredHint(t *testing.T) { } func TestClusteredBatchPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t") @@ -238,8 +230,7 @@ type SnapCacheSizeGetter interface { } func TestClusteredInsertIgnoreBatchGetKeyCount(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t") @@ -257,8 +248,7 @@ func TestClusteredInsertIgnoreBatchGetKeyCount(t *testing.T) { } func TestClusteredPrefixingPrimaryKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t;") @@ -335,8 +325,7 @@ func TestClusteredPrefixingPrimaryKey(t *testing.T) { } func TestClusteredWithOldRowFormat(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.Session().GetSessionVars().RowEncoder.Enable = false @@ -388,8 +377,7 @@ func TestClusteredWithOldRowFormat(t *testing.T) { } func TestIssue20002(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t;") @@ -404,8 +392,7 @@ func TestIssue20002(t *testing.T) { // https://github.com/pingcap/tidb/issues/20727 func TestClusteredIndexSplitAndAddIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t;") @@ -418,8 +405,7 @@ func TestClusteredIndexSplitAndAddIndex(t *testing.T) { } func TestClusteredIndexSelectWhereInNull(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t;") @@ -428,8 +414,7 @@ func TestClusteredIndexSelectWhereInNull(t *testing.T) { } func TestCreateClusteredTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("set @@tidb_enable_clustered_index = 'int_only';") @@ -519,8 +504,7 @@ func TestClusteredUnionScanOnPrefixingPrimaryKey(t *testing.T) { originCollate := collate.NewCollationEnabled() collate.SetNewCollationEnabledForTest(false) defer collate.SetNewCollationEnabledForTest(originCollate) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t;") tk.MustExec("create table t (col_1 varchar(255), col_2 tinyint, primary key idx_1 (col_1(1)));") @@ -539,8 +523,7 @@ func TestClusteredUnionScanOnPrefixingPrimaryKey(t *testing.T) { // https://github.com/pingcap/tidb/issues/22453 func TestClusteredIndexSplitAndAddIndex2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := createTestKit(t, store) tk.MustExec("drop table if exists t;") @@ -554,8 +537,7 @@ func TestClusteredIndexSplitAndAddIndex2(t *testing.T) { } func TestClusteredIndexSyntax(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -606,8 +588,7 @@ func TestClusteredIndexSyntax(t *testing.T) { } func TestPrefixClusteredIndexAddIndexAndRecover(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test;") @@ -627,8 +608,7 @@ func TestPrefixClusteredIndexAddIndexAndRecover(t *testing.T) { } func TestPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database test_view") @@ -671,8 +651,7 @@ func TestPartitionTable(t *testing.T) { // https://github.com/pingcap/tidb/issues/23106 func TestClusteredIndexDecodeRestoredDataV5(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -694,8 +673,7 @@ func TestClusteredIndexDecodeRestoredDataV5(t *testing.T) { // https://github.com/pingcap/tidb/issues/23178 func TestPrefixedClusteredIndexUniqueKeyWithNewCollation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -713,8 +691,7 @@ func TestPrefixedClusteredIndexUniqueKeyWithNewCollation(t *testing.T) { func TestClusteredIndexNewCollationWithOldRowFormat(t *testing.T) { // This case maybe not useful, because newCollation isn't convenience to run on TiKV(it's required serialSuit) // but unistore doesn't support old row format. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") diff --git a/session/nontransactional_test.go b/session/nontransactional_test.go index b2690aab9ffca..f75df6aec3acc 100644 --- a/session/nontransactional_test.go +++ b/session/nontransactional_test.go @@ -27,8 +27,7 @@ import ( ) func TestNonTransactionalDeleteShardingOnInt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("use test") @@ -47,8 +46,7 @@ func TestNonTransactionalDeleteShardingOnInt(t *testing.T) { } func TestNonTransactionalDeleteShardingOnVarchar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("use test") @@ -85,8 +83,7 @@ func testSharding(tables []string, tk *testkit.TestKit) { } func TestNonTransactionalDeleteDryRun(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("use test") @@ -104,8 +101,7 @@ func TestNonTransactionalDeleteDryRun(t *testing.T) { } func TestNonTransactionalDeleteErrorMessage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("use test") @@ -139,8 +135,7 @@ func TestNonTransactionalDeleteErrorMessage(t *testing.T) { } func TestNonTransactionalDeleteSplitOnTiDBRowID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("use test") @@ -167,8 +162,7 @@ func TestNonTransactionalDeleteSplitOnTiDBRowID(t *testing.T) { } func TestNonTransactionalDeleteNull(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("use test") @@ -190,8 +184,7 @@ func TestNonTransactionalDeleteNull(t *testing.T) { } func TestNonTransactionalDeleteSmallBatch(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=1024") tk.MustExec("use test") @@ -206,8 +199,7 @@ func TestNonTransactionalDeleteSmallBatch(t *testing.T) { } func TestNonTransactionalDeleteShardOnGeneratedColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("use test") @@ -220,8 +212,7 @@ func TestNonTransactionalDeleteShardOnGeneratedColumn(t *testing.T) { } func TestNonTransactionalDeleteAutoDetectShardColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("use test") @@ -258,8 +249,7 @@ func TestNonTransactionalDeleteAutoDetectShardColumn(t *testing.T) { } func TestNonTransactionalDeleteInvisibleIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("use test") @@ -278,8 +268,7 @@ func TestNonTransactionalDeleteInvisibleIndex(t *testing.T) { } func TestNonTransactionalDeleteIgnoreSelectLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("set @@sql_select_limit=3") @@ -293,8 +282,7 @@ func TestNonTransactionalDeleteIgnoreSelectLimit(t *testing.T) { } func TestNonTransactionalDeleteReadStaleness(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_max_chunk_size=35") tk.MustExec("set @@tidb_read_staleness=-100") @@ -309,8 +297,7 @@ func TestNonTransactionalDeleteReadStaleness(t *testing.T) { } func TestNonTransactionalDeleteCheckConstraint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -377,8 +364,7 @@ func TestNonTransactionalDeleteCheckConstraint(t *testing.T) { } func TestNonTransactionalDeleteOptimizerHints(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int, b int, key(a))") @@ -390,8 +376,7 @@ func TestNonTransactionalDeleteOptimizerHints(t *testing.T) { } func TestNonTransactionalDeleteMultiTables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -409,8 +394,7 @@ func TestNonTransactionalDeleteMultiTables(t *testing.T) { } func TestNonTransactionalDeleteAlias(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) goodBatchStmts := []string{ @@ -452,8 +436,7 @@ func TestNonTransactionalDeleteAlias(t *testing.T) { func TestNonTransactionalDeleteShardOnUnsupportedTypes(t *testing.T) { // When some day the test fail because such types are supported, we can update related docs and consider remove the test. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a set('e0', 'e1', 'e2'), b int, primary key(a) clustered, key(b))") diff --git a/session/schema_test.go b/session/schema_test.go index 6e443b540811e..bc3fe1731b7b2 100644 --- a/session/schema_test.go +++ b/session/schema_test.go @@ -35,7 +35,7 @@ import ( "github.com/tikv/client-go/v2/testutils" ) -func createMockStoreForSchemaTest(t *testing.T, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, func()) { +func createMockStoreForSchemaTest(t *testing.T, opts ...mockstore.MockTiKVStoreOption) kv.Storage { store, err := mockstore.NewMockStore(opts...) require.NoError(t, err) session.DisableStats4Test() @@ -44,16 +44,15 @@ func createMockStoreForSchemaTest(t *testing.T, opts ...mockstore.MockTiKVStoreO dom.SetStatsUpdating(true) - clean := func() { + t.Cleanup(func() { dom.Close() require.NoError(t, store.Close()) - } - return store, clean + }) + return store } func TestPrepareStmtCommitWhenSchemaChanged(t *testing.T) { - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -82,8 +81,7 @@ func TestPrepareStmtCommitWhenSchemaChanged(t *testing.T) { } func TestCommitWhenSchemaChanged(t *testing.T) { - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -108,8 +106,7 @@ func TestCommitWhenSchemaChanged(t *testing.T) { } func TestRetrySchemaChangeForEmptyChange(t *testing.T) { - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -141,8 +138,7 @@ func TestRetrySchemaChangeForEmptyChange(t *testing.T) { } func TestRetrySchemaChange(t *testing.T) { - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -185,8 +181,7 @@ func TestRetrySchemaChange(t *testing.T) { } func TestRetryMissingUnionScan(t *testing.T) { - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -215,11 +210,10 @@ func TestTableReaderChunk(t *testing.T) { // Since normally a single region mock tikv only returns one partial result we need to manually split the // table to test multiple chunks. var cluster testutils.Cluster - store, clean := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { + store := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithSingleStore(c) cluster = c })) - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -263,8 +257,7 @@ func TestTableReaderChunk(t *testing.T) { } func TestInsertExecChunk(t *testing.T) { - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -299,8 +292,7 @@ func TestInsertExecChunk(t *testing.T) { } func TestUpdateExecChunk(t *testing.T) { - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -337,8 +329,7 @@ func TestUpdateExecChunk(t *testing.T) { } func TestDeleteExecChunk(t *testing.T) { - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -368,8 +359,7 @@ func TestDeleteExecChunk(t *testing.T) { } func TestDeleteMultiTableExecChunk(t *testing.T) { - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -424,11 +414,10 @@ func TestIndexLookUpReaderChunk(t *testing.T) { // Since normally a single region mock tikv only returns one partial result we need to manually split the // table to test multiple chunks. var cluster testutils.Cluster - store, clean := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { + store := testkit.CreateMockStore(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithSingleStore(c) cluster = c })) - defer clean() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -484,8 +473,7 @@ func TestIndexLookUpReaderChunk(t *testing.T) { } func TestTxnSize(t *testing.T) { - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -510,8 +498,7 @@ func TestValidationRecursion(t *testing.T) { }} variable.RegisterSysVar(&sv) - store, clean := createMockStoreForSchemaTest(t) - defer clean() + store := createMockStoreForSchemaTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -524,8 +511,7 @@ func TestValidationRecursion(t *testing.T) { func TestGlobalAndLocalTxn(t *testing.T) { // Because the PD config of check_dev_2 test is not compatible with local/global txn yet, // so we will skip this test for now. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set global tidb_enable_local_txn = on;") diff --git a/session/session_test.go b/session/session_test.go index 9901376dd3b9c..540cdb37f316e 100644 --- a/session/session_test.go +++ b/session/session_test.go @@ -25,8 +25,7 @@ import ( ) func TestInitMetaTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/session/session_test/session_test.go b/session/session_test/session_test.go index bea9991b59046..3d83a77464a48 100644 --- a/session/session_test/session_test.go +++ b/session/session_test/session_test.go @@ -56,8 +56,7 @@ import ( ) func TestSchemaCheckerSQL(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, 1*time.Second) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, 1*time.Second) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -132,8 +131,7 @@ func TestSchemaCheckerSQL(t *testing.T) { } func TestSchemaCheckerTempTable(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, 1*time.Second) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, 1*time.Second) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -234,8 +232,7 @@ func TestSchemaCheckerTempTable(t *testing.T) { } func TestDisableTxnAutoRetry(t *testing.T) { - store, clean := testkit.CreateMockStoreWithSchemaLease(t, 1*time.Second) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, 1*time.Second) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -333,8 +330,7 @@ func TestDisableTxnAutoRetry(t *testing.T) { // but this test checks we check them again at commit time. // The main use case for this is a long-running auto-commit statement. func TestAutoCommitRespectsReadOnly(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) var wg sync.WaitGroup tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -381,8 +377,7 @@ func TestLoadSchemaFailed(t *testing.T) { domain.SchemaOutOfDateRetryInterval.Store(originalRetryInterval) }() - store, clean := testkit.CreateMockStoreWithSchemaLease(t, 1*time.Second) - defer clean() + store := testkit.CreateMockStoreWithSchemaLease(t, 1*time.Second) tk := testkit.NewTestKit(t, store) tk1 := testkit.NewTestKit(t, store) @@ -429,8 +424,7 @@ func TestLoadSchemaFailed(t *testing.T) { } func TestSysdateIsNow(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -442,8 +436,7 @@ func TestSysdateIsNow(t *testing.T) { } func TestEnableLegacyInstanceScope(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -460,8 +453,7 @@ func TestEnableLegacyInstanceScope(t *testing.T) { } func TestSetPDClientDynamicOption(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustQuery("select @@tidb_tso_client_batch_max_wait_time;").Check(testkit.Rows("0")) @@ -496,8 +488,7 @@ func TestSetPDClientDynamicOption(t *testing.T) { } func TestSameNameObjectWithLocalTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -561,8 +552,7 @@ func TestSameNameObjectWithLocalTemporaryTable(t *testing.T) { } func TestWriteOnMultipleCachedTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -603,8 +593,7 @@ func TestWriteOnMultipleCachedTable(t *testing.T) { } func TestForbidSettingBothTSVariable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // For mock tikv, safe point is not initialized, we manually insert it for snapshot to use. @@ -630,8 +619,7 @@ func TestForbidSettingBothTSVariable(t *testing.T) { } func TestTiDBReadStaleness(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_read_staleness='-5'") @@ -645,8 +633,7 @@ func TestTiDBReadStaleness(t *testing.T) { } func TestFixSetTiDBSnapshotTS(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) safePointName := "tikv_gc_safe_point" @@ -670,8 +657,7 @@ func TestFixSetTiDBSnapshotTS(t *testing.T) { } func TestSetVarHint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -855,8 +841,7 @@ func TestSetVarHint(t *testing.T) { } func TestPrepareZero(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -873,8 +858,7 @@ func TestPrepareZero(t *testing.T) { } func TestPrimaryKeyAutoIncrement(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -900,8 +884,7 @@ func TestPrimaryKeyAutoIncrement(t *testing.T) { // TestSetGroupConcatMaxLen is for issue #7034 func TestSetGroupConcatMaxLen(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -950,8 +933,7 @@ func TestSetGroupConcatMaxLen(t *testing.T) { } func TestLocalTemporaryTableInsertIgnore(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -994,8 +976,7 @@ func TestLocalTemporaryTableInsertIgnore(t *testing.T) { } func TestLocalTemporaryTableInsertOnDuplicateKeyUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1039,8 +1020,7 @@ func TestLocalTemporaryTableInsertOnDuplicateKeyUpdate(t *testing.T) { } func TestLocalTemporaryTableReplace(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1073,8 +1053,7 @@ func TestLocalTemporaryTableReplace(t *testing.T) { } func TestLocalTemporaryTableDelete(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1168,8 +1147,7 @@ func TestLocalTemporaryTableDelete(t *testing.T) { } func TestLocalTemporaryTablePointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1209,8 +1187,7 @@ func TestLocalTemporaryTablePointGet(t *testing.T) { } func TestLocalTemporaryTableBatchPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1251,8 +1228,7 @@ func TestLocalTemporaryTableBatchPointGet(t *testing.T) { } func TestLocalTemporaryTableScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1345,8 +1321,7 @@ func TestLocalTemporaryTableScan(t *testing.T) { } func TestRetryForCurrentTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -1373,8 +1348,7 @@ func TestRetryForCurrentTxn(t *testing.T) { // TestTruncateAlloc tests that the auto_increment ID does not reuse the old table's allocator. func TestTruncateAlloc(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1386,8 +1360,7 @@ func TestTruncateAlloc(t *testing.T) { } func TestString(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1397,8 +1370,7 @@ func TestString(t *testing.T) { } func TestDatabase(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1423,8 +1395,7 @@ func TestDatabase(t *testing.T) { } func TestSkipWithGrant(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) save2 := privileges.SkipWithGrant @@ -1445,8 +1416,7 @@ func TestSkipWithGrant(t *testing.T) { } func TestParseWithParams(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) se := tk.Session() exec := se.(sqlexec.RestrictedSQLExecutor) @@ -1485,8 +1455,7 @@ func TestParseWithParams(t *testing.T) { } func TestStatementCountLimit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") tk := testkit.NewTestKit(t, store) @@ -1513,8 +1482,7 @@ func TestStatementCountLimit(t *testing.T) { } func TestBatchCommit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") tk := testkit.NewTestKit(t, store) @@ -1576,8 +1544,7 @@ func TestBatchCommit(t *testing.T) { } func TestKVVars(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_backoff_lock_fast = 1") @@ -1609,8 +1576,7 @@ func TestKVVars(t *testing.T) { } func TestTxnRetryErrMsg(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") tk1 := testkit.NewTestKit(t, store) @@ -1633,8 +1599,7 @@ func TestTxnRetryErrMsg(t *testing.T) { func TestSetTxnScope(t *testing.T) { // Check the default value of @@tidb_enable_local_txn and @@txn_scope whitout configuring the zone label. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustQuery("select @@global.tidb_enable_local_txn;").Check(testkit.Rows("0")) @@ -1752,8 +1717,7 @@ func TestDoDDLJobQuit(t *testing.T) { func TestCoprocessorOOMAction(t *testing.T) { // Assert Coprocessor OOMAction - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create database testoom") tk.MustExec("use testoom") @@ -1871,8 +1835,7 @@ func TestCoprocessorOOMAction(t *testing.T) { // TestDefaultWeekFormat checks for issue #21510. func TestDefaultWeekFormat(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test") tk1.MustExec("set @@global.default_week_format = 4;") @@ -1883,8 +1846,7 @@ func TestDefaultWeekFormat(t *testing.T) { } func TestIssue21944(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test") _, err := tk1.Exec("set @@tidb_current_ts=1;") @@ -1892,8 +1854,7 @@ func TestIssue21944(t *testing.T) { } func TestIssue21943(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") _, err := tk.Exec("set @@last_plan_from_binding='123';") @@ -1904,8 +1865,7 @@ func TestIssue21943(t *testing.T) { } func TestRemovedSysVars(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1928,8 +1888,7 @@ func TestRemovedSysVars(t *testing.T) { } func TestCorrectScopeError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1968,8 +1927,7 @@ func TestCorrectScopeError(t *testing.T) { } func TestTiKVSystemVars(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2021,8 +1979,7 @@ func TestTiKVSystemVars(t *testing.T) { } func TestGlobalVarCollationServer(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@global.collation_server=utf8mb4_general_ci") @@ -2033,8 +1990,7 @@ func TestGlobalVarCollationServer(t *testing.T) { } func TestProcessInfoIssue22068(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int)") @@ -2051,8 +2007,7 @@ func TestProcessInfoIssue22068(t *testing.T) { } func TestIssue19127(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2064,8 +2019,7 @@ func TestIssue19127(t *testing.T) { } func TestMemoryUsageAlarmVariable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2089,8 +2043,7 @@ func TestMemoryUsageAlarmVariable(t *testing.T) { } func TestSelectLockInShare(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2104,8 +2057,7 @@ func TestSelectLockInShare(t *testing.T) { } func TestReadDMLBatchSize(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set global tidb_dml_batch_size=1000") @@ -2118,8 +2070,7 @@ func TestReadDMLBatchSize(t *testing.T) { } func TestPerStmtTaskID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2136,8 +2087,7 @@ func TestPerStmtTaskID(t *testing.T) { } func TestSetEnableRateLimitAction(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2178,8 +2128,7 @@ func TestSetEnableRateLimitAction(t *testing.T) { } func TestStmtHints(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2260,8 +2209,7 @@ func TestStmtHints(t *testing.T) { } func TestMaxExecutionTime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2297,8 +2245,7 @@ func TestMaxExecutionTime(t *testing.T) { } func TestGrantViewRelated(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tkRoot := testkit.NewTestKit(t, store) tkUser := testkit.NewTestKit(t, store) @@ -2337,8 +2284,7 @@ func TestGrantViewRelated(t *testing.T) { } func TestLoadClientInteractive(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.RefreshSession() @@ -2347,8 +2293,7 @@ func TestLoadClientInteractive(t *testing.T) { } func TestReplicaRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.Equal(t, kv.ReplicaReadLeader, tk.Session().GetSessionVars().GetReplicaRead()) @@ -2359,8 +2304,7 @@ func TestReplicaRead(t *testing.T) { } func TestIsolationRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.Len(t, tk.Session().GetSessionVars().GetIsolationReadEngines(), 3) @@ -2374,8 +2318,7 @@ func TestIsolationRead(t *testing.T) { } func TestUpdatePrivilege(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2445,8 +2388,7 @@ and s.b !='xx';`) } func TestDBUserNameLength(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2458,8 +2400,7 @@ func TestDBUserNameLength(t *testing.T) { } func TestHostLengthMax(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2472,8 +2413,7 @@ func TestHostLengthMax(t *testing.T) { } func TestCommitRetryCount(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -2498,8 +2438,7 @@ func TestCommitRetryCount(t *testing.T) { } func TestEnablePartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2540,8 +2479,7 @@ func TestEnablePartition(t *testing.T) { } func TestRollbackOnCompileError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2576,8 +2514,7 @@ func TestRollbackOnCompileError(t *testing.T) { } func TestCastTimeToDate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2591,8 +2528,7 @@ func TestCastTimeToDate(t *testing.T) { } func TestSetGlobalTZ(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set time_zone = '+08:00'") @@ -2607,8 +2543,7 @@ func TestSetGlobalTZ(t *testing.T) { } func TestErrorRollback(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2639,8 +2574,7 @@ func TestErrorRollback(t *testing.T) { } func TestDeletePanic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2651,8 +2585,7 @@ func TestDeletePanic(t *testing.T) { } func TestInformationSchemaCreateTime(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2684,8 +2617,7 @@ func TestInformationSchemaCreateTime(t *testing.T) { } func TestPrepare(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2728,8 +2660,7 @@ func TestPrepare(t *testing.T) { } func TestSpecifyIndexPrefixLength(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2833,8 +2764,7 @@ func TestSpecifyIndexPrefixLength(t *testing.T) { } func TestResultField(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2855,8 +2785,7 @@ func TestResultField(t *testing.T) { // Testcase for https://github.com/pingcap/tidb/issues/325 func TestResultType(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2870,8 +2799,7 @@ func TestResultType(t *testing.T) { } func TestFieldText(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2902,8 +2830,7 @@ func TestFieldText(t *testing.T) { } func TestIndexMaxLength(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2992,8 +2919,7 @@ func TestIndexMaxLength(t *testing.T) { } func TestIndexColumnLength(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3013,8 +2939,7 @@ func TestIndexColumnLength(t *testing.T) { } func TestIgnoreForeignKey(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3030,8 +2955,7 @@ func TestIgnoreForeignKey(t *testing.T) { // TestISColumns tests information_schema.columns. func TestISColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3040,8 +2964,7 @@ func TestISColumns(t *testing.T) { } func TestMultiStmts(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3050,8 +2973,7 @@ func TestMultiStmts(t *testing.T) { } func TestLastExecuteDDLFlag(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3063,8 +2985,7 @@ func TestLastExecuteDDLFlag(t *testing.T) { } func TestDecimal(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3077,8 +2998,7 @@ func TestDecimal(t *testing.T) { } func TestParser(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3096,8 +3016,7 @@ func TestParser(t *testing.T) { } func TestOnDuplicate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3113,8 +3032,7 @@ func TestOnDuplicate(t *testing.T) { } func TestReplace(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3132,8 +3050,7 @@ func TestReplace(t *testing.T) { func TestDelete(t *testing.T) { // test for https://github.com/pingcap/tidb/pull/1135 - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3175,8 +3092,7 @@ func TestDelete(t *testing.T) { } func TestResetCtx(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -3214,8 +3130,7 @@ func TestResetCtx(t *testing.T) { // test for https://github.com/pingcap/tidb/pull/461 func TestUnique(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -3289,8 +3204,7 @@ func TestUnique(t *testing.T) { // Test for https://github.com/pingcap/tidb/issues/1114 func TestSet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3310,8 +3224,7 @@ func TestSet(t *testing.T) { } func TestMySQLTypes(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3320,8 +3233,7 @@ func TestMySQLTypes(t *testing.T) { } func TestIssue986(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3333,8 +3245,7 @@ func TestIssue986(t *testing.T) { } func TestCast(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3355,8 +3266,7 @@ func TestCast(t *testing.T) { } func TestTableInfoMeta(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3390,8 +3300,7 @@ func TestTableInfoMeta(t *testing.T) { } func TestCaseInsensitive(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3424,8 +3333,7 @@ func TestCaseInsensitive(t *testing.T) { } func TestLastMessage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3470,8 +3378,7 @@ func TestLastMessage(t *testing.T) { } func TestQueryString(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3502,8 +3409,7 @@ func TestQueryString(t *testing.T) { } func TestAffectedRows(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3565,8 +3471,7 @@ func TestAffectedRows(t *testing.T) { // TestRowLock . See http://dev.mysql.com/doc/refman/5.7/en/commit.html. func TestRowLock(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -3612,8 +3517,7 @@ func TestRowLock(t *testing.T) { // TestAutocommit . See https://dev.mysql.com/doc/internals/en/status-flags.html func TestAutocommit(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3709,8 +3613,7 @@ func TestTxnLazyInitialize(t *testing.T) { } func testTxnLazyInitialize(t *testing.T, isPessimistic bool) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3769,8 +3672,7 @@ func TestGlobalVarAccessor(t *testing.T) { varValue1 := "4194305" varValue2 := "4194306" - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3849,8 +3751,7 @@ func TestGlobalVarAccessor(t *testing.T) { } func TestUpgradeSysvars(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3901,8 +3802,7 @@ func TestSetInstanceSysvarBySetGlobalSysVar(t *testing.T) { varName := "tidb_general_log" defaultValue := "OFF" // This is the default value for tidb_general_log - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3938,8 +3838,7 @@ func TestSetInstanceSysvarBySetGlobalSysVar(t *testing.T) { } func TestMatchIdentity(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3986,8 +3885,7 @@ func TestMatchIdentity(t *testing.T) { } func TestGetSysVariables(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4016,8 +3914,7 @@ func TestGetSysVariables(t *testing.T) { // TestInTrans . See https://dev.mysql.com/doc/internals/en/status-flags.html func TestInTrans(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4063,8 +3960,7 @@ func TestInTrans(t *testing.T) { } func TestSession(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4073,8 +3969,7 @@ func TestSession(t *testing.T) { } func TestSessionAuth(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4082,8 +3977,7 @@ func TestSessionAuth(t *testing.T) { } func TestLastInsertID(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -4131,8 +4025,7 @@ func TestLastInsertID(t *testing.T) { } func TestBinaryReadOnly(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -4157,8 +4050,7 @@ func TestBinaryReadOnly(t *testing.T) { } func TestIndexMergeRuntimeStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/session/session_test/temporary_table_test.go b/session/session_test/temporary_table_test.go index 7942dc3893f56..5df0b6cf285b5 100644 --- a/session/session_test/temporary_table_test.go +++ b/session/session_test/temporary_table_test.go @@ -31,8 +31,7 @@ import ( ) func TestLocalTemporaryTableInsert(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -87,8 +86,7 @@ func TestLocalTemporaryTableInsert(t *testing.T) { } func TestLocalTemporaryTableUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -281,8 +279,7 @@ func TestLocalTemporaryTableUpdate(t *testing.T) { func TestTemporaryTableSize(t *testing.T) { // Test the @@tidb_tmp_table_max_size system variable. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -328,8 +325,7 @@ func TestTemporaryTableSize(t *testing.T) { } func TestGlobalTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -355,8 +351,7 @@ func TestGlobalTemporaryTable(t *testing.T) { } func TestRetryGlobalTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -405,8 +400,7 @@ func TestRetryGlobalTemporaryTable(t *testing.T) { } func TestRetryLocalTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") diff --git a/sessionctx/binloginfo/binloginfo_test.go b/sessionctx/binloginfo/binloginfo_test.go index 59f0157fa499d..3c777a9436234 100644 --- a/sessionctx/binloginfo/binloginfo_test.go +++ b/sessionctx/binloginfo/binloginfo_test.go @@ -80,11 +80,11 @@ type binlogSuite struct { const maxRecvMsgSize = 64 * 1024 -func createBinlogSuite(t *testing.T) (s *binlogSuite, clean func()) { +func createBinlogSuite(t *testing.T) (s *binlogSuite) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/store/driver/txn/mockSyncBinlogCommit", `return(true)`)) s = new(binlogSuite) - store, cleanStore := testkit.CreateMockStore(t) + store := testkit.CreateMockStore(t) s.store = store unixFile := "/tmp/mock-binlog-pump" + strconv.FormatInt(time.Now().UnixNano(), 10) l, err := net.Listen("unix", unixFile) @@ -110,7 +110,7 @@ func createBinlogSuite(t *testing.T) (s *binlogSuite, clean func()) { s.client = binloginfo.MockPumpsClient(binlog.NewPumpClient(clientCon)) s.ddl.SetBinlogClient(s.client) - clean = func() { + t.Cleanup(func() { clientCon.Close() err = s.ddl.Stop() require.NoError(t, err) @@ -119,16 +119,14 @@ func createBinlogSuite(t *testing.T) (s *binlogSuite, clean func()) { if err != nil { require.EqualError(t, err, fmt.Sprintf("remove %v: no such file or directory", unixFile)) } - cleanStore() require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/store/driver/txn/mockSyncBinlogCommit")) - } + }) return } func TestBinlog(t *testing.T) { - s, clean := createBinlogSuite(t) - defer clean() + s := createBinlogSuite(t) tk := testkit.NewTestKit(t, s.store) tk.MustExec("use test") @@ -270,8 +268,7 @@ func TestBinlog(t *testing.T) { } func TestMaxRecvSize(t *testing.T) { - s, clean := createBinlogSuite(t) - defer clean() + s := createBinlogSuite(t) info := &binloginfo.BinlogInfo{ Data: &binlog.Binlog{ @@ -389,8 +386,7 @@ func mutationRowsToRows(t *testing.T, mutationRows [][]byte, columnValueOffsets } func TestBinlogForSequence(t *testing.T) { - s, clean := createBinlogSuite(t) - defer clean() + s := createBinlogSuite(t) tk := testkit.NewTestKit(t, s.store) tk.MustExec("use test") @@ -467,8 +463,7 @@ func TestBinlogForSequence(t *testing.T) { // Sometimes this test doesn't clean up fail, let the function name begin with 'Z' // so it runs last and would not disrupt other tests. func TestZIgnoreError(t *testing.T) { - s, clean := createBinlogSuite(t) - defer clean() + s := createBinlogSuite(t) tk := testkit.NewTestKit(t, s.store) tk.MustExec("use test") @@ -493,8 +488,7 @@ func TestZIgnoreError(t *testing.T) { } func TestPartitionedTable(t *testing.T) { - s, clean := createBinlogSuite(t) - defer clean() + s := createBinlogSuite(t) // This test checks partitioned table write binlog with table ID, rather than partition ID. tk := testkit.NewTestKit(t, s.store) @@ -519,8 +513,7 @@ func TestPartitionedTable(t *testing.T) { } func TestPessimisticLockThenCommit(t *testing.T) { - s, clean := createBinlogSuite(t) - defer clean() + s := createBinlogSuite(t) tk := testkit.NewTestKit(t, s.store) tk.MustExec("use test") @@ -535,8 +528,7 @@ func TestPessimisticLockThenCommit(t *testing.T) { } func TestDeleteSchema(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -726,8 +718,7 @@ func mustGetDDLBinlog(s *binlogSuite, ddlQuery string, t *testing.T) (matched bo } func TestTempTableBinlog(t *testing.T) { - s, clean := createBinlogSuite(t) - defer clean() + s := createBinlogSuite(t) tk := testkit.NewTestKit(t, s.store) tk.MustExec("use test") @@ -803,8 +794,7 @@ func TestTempTableBinlog(t *testing.T) { } func TestAlterTableCache(t *testing.T) { - s, clean := createBinlogSuite(t) - defer clean() + s := createBinlogSuite(t) // Don't write binlog for 'ALTER TABLE t CACHE|NOCACHE'. // Cached table is regarded as normal table. @@ -829,8 +819,7 @@ func TestAlterTableCache(t *testing.T) { } func TestIssue28292(t *testing.T) { - s, clean := createBinlogSuite(t) - defer clean() + s := createBinlogSuite(t) tk := testkit.NewTestKit(t, s.store) tk.MustExec("use test") diff --git a/sessionctx/sessionstates/session_states_test.go b/sessionctx/sessionstates/session_states_test.go index b4b886a893af7..5d35e168ec925 100644 --- a/sessionctx/sessionstates/session_states_test.go +++ b/sessionctx/sessionstates/session_states_test.go @@ -37,8 +37,7 @@ import ( ) func TestGrammar(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) rows := tk.MustQuery("show session_states").Rows() require.Len(t, rows, 1) @@ -47,8 +46,7 @@ func TestGrammar(t *testing.T) { } func TestUserVars(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create table test.t1(" + "j json, b blob, s varchar(255), st set('red', 'green', 'blue'), en enum('red', 'green', 'blue'))") @@ -93,8 +91,7 @@ func TestUserVars(t *testing.T) { } func TestSystemVars(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tests := []struct { stmts []string @@ -219,8 +216,7 @@ func TestSystemVars(t *testing.T) { } func TestSessionCtx(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create table test.t1(id int)") @@ -455,8 +451,7 @@ func TestSessionCtx(t *testing.T) { } func TestStatementCtx(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create table test.t1(id int auto_increment primary key, str char(1))") @@ -574,8 +569,7 @@ func TestStatementCtx(t *testing.T) { } func TestPreparedStatements(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) sv := server.CreateMockServer(t, store) defer sv.Close() @@ -1015,8 +1009,7 @@ func TestPreparedStatements(t *testing.T) { } func TestSQLBinding(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create table test.t1(id int primary key, name varchar(10), key(name))") @@ -1189,8 +1182,7 @@ func TestSQLBinding(t *testing.T) { } func TestShowStateFail(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) sv := server.CreateMockServer(t, store) defer sv.Close() diff --git a/sessionctx/stmtctx/stmtctx_test.go b/sessionctx/stmtctx/stmtctx_test.go index b8f36dcb25055..cc21b3e4812c7 100644 --- a/sessionctx/stmtctx/stmtctx_test.go +++ b/sessionctx/stmtctx/stmtctx_test.go @@ -98,8 +98,7 @@ func TestStatementContextPushDownFLags(t *testing.T) { } func TestWeakConsistencyRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -167,8 +166,7 @@ func TestMarshalSQLWarn(t *testing.T) { }, } - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) // First query can trigger loading global variables, which produces warnings. tk.MustQuery("select 1") diff --git a/sessiontxn/isolation/optimistic_test.go b/sessiontxn/isolation/optimistic_test.go index f5c3ca664687c..9fc21519886b1 100644 --- a/sessiontxn/isolation/optimistic_test.go +++ b/sessiontxn/isolation/optimistic_test.go @@ -39,8 +39,7 @@ import ( ) func TestOptimisticTxnContextProviderTS(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -132,8 +131,7 @@ func TestOptimisticTxnContextProviderTS(t *testing.T) { } func TestOptimisticHandleError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -213,8 +211,7 @@ func TestOptimisticHandleError(t *testing.T) { } func TestOptimisticProviderInitialize(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") testfork.RunTest(t, func(t *testfork.T) { @@ -292,8 +289,7 @@ func TestOptimisticProviderInitialize(t *testing.T) { } func TestTidbSnapshotVarInOptimisticTxn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") diff --git a/sessiontxn/isolation/readcommitted_test.go b/sessiontxn/isolation/readcommitted_test.go index afe0793ab1e6c..896a4ddbc134e 100644 --- a/sessiontxn/isolation/readcommitted_test.go +++ b/sessiontxn/isolation/readcommitted_test.go @@ -41,8 +41,7 @@ import ( ) func TestPessimisticRCTxnContextProviderRCCheck(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -143,8 +142,7 @@ func TestPessimisticRCTxnContextProviderRCCheck(t *testing.T) { } func TestPessimisticRCTxnContextProviderRCCheckForPrepareExecute(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -203,8 +201,7 @@ func TestPessimisticRCTxnContextProviderRCCheckForPrepareExecute(t *testing.T) { } func TestPessimisticRCTxnContextProviderLockError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -242,8 +239,7 @@ func TestPessimisticRCTxnContextProviderLockError(t *testing.T) { } func TestPessimisticRCTxnContextProviderTS(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -297,8 +293,7 @@ func TestPessimisticRCTxnContextProviderTS(t *testing.T) { } func TestRCProviderInitialize(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testfork.RunTest(t, func(t *testfork.T) { clearScopeSettings := forkScopeSettings(t, store) @@ -365,8 +360,7 @@ func TestRCProviderInitialize(t *testing.T) { } func TestTidbSnapshotVarInRC(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -459,8 +453,7 @@ func TestTidbSnapshotVarInRC(t *testing.T) { func TestConflictErrorsInRC(t *testing.T) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/assertPessimisticLockErr", "return")) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") diff --git a/sessiontxn/isolation/repeatable_read_test.go b/sessiontxn/isolation/repeatable_read_test.go index 0e2c1a999d9ca..b96b7fb3c5f19 100644 --- a/sessiontxn/isolation/repeatable_read_test.go +++ b/sessiontxn/isolation/repeatable_read_test.go @@ -46,8 +46,7 @@ func newDeadLockError(isRetryable bool) error { } func TestPessimisticRRErrorHandle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") se := tk.Session() @@ -137,8 +136,7 @@ func TestPessimisticRRErrorHandle(t *testing.T) { } func TestRepeatableReadProviderTS(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") se := tk.Session() @@ -192,8 +190,7 @@ func TestRepeatableReadProviderTS(t *testing.T) { } func TestRepeatableReadProviderInitialize(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testfork.RunTest(t, func(t *testfork.T) { clearScopeSettings := forkScopeSettings(t, store) @@ -259,8 +256,7 @@ func TestRepeatableReadProviderInitialize(t *testing.T) { } func TestTidbSnapshotVarInPessimisticRepeatableRead(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -347,8 +343,7 @@ func TestTidbSnapshotVarInPessimisticRepeatableRead(t *testing.T) { } func TestOptimizeWithPlanInPessimisticRR(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t (id int primary key, v int)") @@ -477,8 +472,7 @@ var errorsInInsert = []string{ func TestConflictErrorInInsertInRR(t *testing.T) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/assertPessimisticLockErr", "return")) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -507,8 +501,7 @@ func TestConflictErrorInInsertInRR(t *testing.T) { func TestConflictErrorInPointGetForUpdateInRR(t *testing.T) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/assertPessimisticLockErr", "return")) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -547,8 +540,7 @@ func TestConflictErrorInPointGetForUpdateInRR(t *testing.T) { // Delete should get the latest ts and thus does not incur write conflict func TestConflictErrorInDeleteInRR(t *testing.T) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/assertPessimisticLockErr", "return")) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -587,8 +579,7 @@ func TestConflictErrorInDeleteInRR(t *testing.T) { func TestConflictErrorInUpdateInRR(t *testing.T) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/assertPessimisticLockErr", "return")) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -625,8 +616,7 @@ func TestConflictErrorInUpdateInRR(t *testing.T) { func TestConflictErrorInOtherQueryContainingPointGet(t *testing.T) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/assertPessimisticLockErr", "return")) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") diff --git a/sessiontxn/isolation/serializable_test.go b/sessiontxn/isolation/serializable_test.go index b9d0ba27d6402..1246e79f94764 100644 --- a/sessiontxn/isolation/serializable_test.go +++ b/sessiontxn/isolation/serializable_test.go @@ -38,8 +38,7 @@ import ( ) func TestPessimisticSerializableTxnProviderTS(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -72,8 +71,7 @@ func TestPessimisticSerializableTxnProviderTS(t *testing.T) { } func TestPessimisticSerializableTxnContextProviderLockError(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") @@ -110,8 +108,7 @@ func TestPessimisticSerializableTxnContextProviderLockError(t *testing.T) { } func TestSerializableInitialize(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testfork.RunTest(t, func(t *testfork.T) { clearScopeSettings := forkScopeSettings(t, store) @@ -178,8 +175,7 @@ func TestSerializableInitialize(t *testing.T) { } func TestTidbSnapshotVarInSerialize(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) defer tk.MustExec("rollback") diff --git a/sessiontxn/staleread/processor_test.go b/sessiontxn/staleread/processor_test.go index e5f4669a25403..4a98bff0364fc 100644 --- a/sessiontxn/staleread/processor_test.go +++ b/sessiontxn/staleread/processor_test.go @@ -93,8 +93,7 @@ func astTableWithAsOf(t *testing.T, dt string) *ast.TableName { } func TestStaleReadProcessorWithSelectTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tn := astTableWithAsOf(t, "") p1 := genStaleReadPoint(t, tk) @@ -180,8 +179,7 @@ func TestStaleReadProcessorWithSelectTable(t *testing.T) { } func TestStaleReadProcessorWithExecutePreparedStmt(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) p1 := genStaleReadPoint(t, tk) //p2 := genStaleReadPoint(t, tk) @@ -260,8 +258,7 @@ func TestStaleReadProcessorWithExecutePreparedStmt(t *testing.T) { } func TestStaleReadProcessorInTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tn := astTableWithAsOf(t, "") p1 := genStaleReadPoint(t, tk) diff --git a/sessiontxn/staleread/provider_test.go b/sessiontxn/staleread/provider_test.go index 5a34b2d00c4b2..e83343cf91dc0 100644 --- a/sessiontxn/staleread/provider_test.go +++ b/sessiontxn/staleread/provider_test.go @@ -30,8 +30,7 @@ import ( ) func TestStaleReadTxnScope(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) @@ -61,8 +60,7 @@ func TestStaleReadTxnScope(t *testing.T) { } func TestStaleReadReplicaReadScope(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) diff --git a/sessiontxn/txn_context_test.go b/sessiontxn/txn_context_test.go index fee1ddcc4b51d..74245fadd16f1 100644 --- a/sessiontxn/txn_context_test.go +++ b/sessiontxn/txn_context_test.go @@ -47,7 +47,7 @@ func TestMain(m *testing.M) { goleak.VerifyTestMain(m, opts...) } -func setupTxnContextTest(t *testing.T) (kv.Storage, *domain.Domain, func()) { +func setupTxnContextTest(t *testing.T) (kv.Storage, *domain.Domain) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/assertTxnManagerInCompile", "return")) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/assertTxnManagerInRebuildPlan", "return")) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/assertTxnManagerAfterBuildExecutor", "return")) @@ -58,7 +58,7 @@ func setupTxnContextTest(t *testing.T) (kv.Storage, *domain.Domain, func()) { require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/session/assertTxnManagerInCachedPlanExec", "return")) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/session/assertTxnManagerForUpdateTSEqual", "return")) - store, do, clean := testkit.CreateMockStoreAndDomain(t) + store, do := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.Session().SetValue(sessiontxn.AssertRecordsKey, nil) @@ -75,7 +75,7 @@ func setupTxnContextTest(t *testing.T) (kv.Storage, *domain.Domain, func()) { tk.MustExec("create temporary table tmp (id int)") tk.MustExec("insert into tmp values(10)") - return store, do, func() { + t.Cleanup(func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/assertTxnManagerInCompile")) require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/assertTxnManagerInRebuildPlan")) require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/assertTxnManagerAfterBuildExecutor")) @@ -89,8 +89,8 @@ func setupTxnContextTest(t *testing.T) (kv.Storage, *domain.Domain, func()) { tk.Session().SetValue(sessiontxn.AssertRecordsKey, nil) tk.Session().SetValue(sessiontxn.AssertTxnInfoSchemaKey, nil) tk.Session().SetValue(sessiontxn.AssertTxnInfoSchemaAfterRetryKey, nil) - clean() - } + }) + return store, do } func checkAssertRecordExits(t *testing.T, se sessionctx.Context, name string) { @@ -115,8 +115,7 @@ var normalPathRecords = []string{ } func TestTxnContextForSimpleCases(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -151,8 +150,7 @@ func TestTxnContextForSimpleCases(t *testing.T) { } func TestTxnContextInExplicitTxn(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -218,8 +216,7 @@ func TestTxnContextInExplicitTxn(t *testing.T) { } func TestTxnContextBeginInUnfinishedTxn(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -253,8 +250,7 @@ func TestTxnContextBeginInUnfinishedTxn(t *testing.T) { } func TestTxnContextWithAutocommitFalse(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -289,8 +285,7 @@ func TestTxnContextWithAutocommitFalse(t *testing.T) { } func TestTxnContextInRC(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -339,8 +334,7 @@ func TestTxnContextInRC(t *testing.T) { } func TestTxnContextInPessimisticKeyConflict(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") se := tk.Session() @@ -364,8 +358,7 @@ func TestTxnContextInPessimisticKeyConflict(t *testing.T) { } func TestTxnContextInOptimisticRetry(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_disable_txn_auto_retry=0") @@ -394,8 +387,7 @@ func TestTxnContextInOptimisticRetry(t *testing.T) { } func TestTxnContextForHistoricalRead(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") tk := testkit.NewTestKit(t, store) @@ -451,8 +443,7 @@ func TestTxnContextForHistoricalRead(t *testing.T) { } func TestTxnContextForStaleRead(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") se := tk.Session() @@ -525,8 +516,7 @@ func TestTxnContextForStaleRead(t *testing.T) { } func TestTxnContextForPrepareExecute(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) orgEnable := core.PreparedPlanCacheEnabled() defer core.SetPreparedPlanCache(orgEnable) core.SetPreparedPlanCache(true) @@ -591,8 +581,7 @@ func TestTxnContextForPrepareExecute(t *testing.T) { } func TestTxnContextForStaleReadInPrepare(t *testing.T) { - store, _, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, _ := setupTxnContextTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") se := tk.Session() @@ -693,8 +682,7 @@ func TestTxnContextForStaleReadInPrepare(t *testing.T) { } func TestTxnContextPreparedStmtWithForUpdate(t *testing.T) { - store, do, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, do := setupTxnContextTest(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") se := tk.Session() @@ -734,8 +722,7 @@ func TestTxnContextPreparedStmtWithForUpdate(t *testing.T) { // See issue: https://github.com/pingcap/tidb/issues/35459 func TestStillWriteConflictAfterRetry(t *testing.T) { - store, _, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, _ := setupTxnContextTest(t) queries := []string{ "select * from t1 for update", @@ -808,8 +795,7 @@ func TestStillWriteConflictAfterRetry(t *testing.T) { } func TestOptimisticTxnRetryInPessimisticMode(t *testing.T) { - store, _, deferFunc := setupTxnContextTest(t) - defer deferFunc() + store, _ := setupTxnContextTest(t) queries := []string{ "update t1 set v=v+1", @@ -896,8 +882,7 @@ func TestTSOCmdCountForPrepareExecute(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/sessiontxn/isolation/requestTsoFromPD")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) ctx := context.Background() tk := testkit.NewTestKit(t, store) @@ -951,8 +936,7 @@ func TestTSOCmdCountForTextSql(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/sessiontxn/isolation/requestTsoFromPD")) }() - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) sctx := tk.Session() diff --git a/sessiontxn/txn_manager_test.go b/sessiontxn/txn_manager_test.go index 1df017da5af44..609f09ff5e945 100644 --- a/sessiontxn/txn_manager_test.go +++ b/sessiontxn/txn_manager_test.go @@ -36,8 +36,7 @@ import ( ) func TestEnterNewTxn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -256,8 +255,7 @@ func TestEnterNewTxn(t *testing.T) { } func TestGetSnapshot(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -445,8 +443,7 @@ func TestGetSnapshot(t *testing.T) { } func TestSnapshotInterceptor(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("create temporary table test.tmp1 (id int primary key)") diff --git a/statistics/handle/ddl_test.go b/statistics/handle/ddl_test.go index dfad7cbfbf5e8..a075720b84594 100644 --- a/statistics/handle/ddl_test.go +++ b/statistics/handle/ddl_test.go @@ -26,8 +26,7 @@ import ( ) func TestDDLAfterLoad(t *testing.T) { - store, do, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, do := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (c1 int, c2 int)") @@ -60,8 +59,7 @@ func TestDDLAfterLoad(t *testing.T) { } func TestDDLTable(t *testing.T) { - store, do, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, do := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (c1 int, c2 int)") @@ -100,8 +98,7 @@ func TestDDLTable(t *testing.T) { } func TestDDLHistogram(t *testing.T) { - store, do, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, do := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) h := do.StatsHandle() @@ -188,8 +185,7 @@ func TestDDLHistogram(t *testing.T) { } func TestDDLPartition(t *testing.T) { - store, do, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, do := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testkit.WithPruneMode(testKit, variable.Static, func() { testKit.MustExec("use test") diff --git a/statistics/handle/dump_test.go b/statistics/handle/dump_test.go index 26335bd203785..0e3006604e5cc 100644 --- a/statistics/handle/dump_test.go +++ b/statistics/handle/dump_test.go @@ -74,8 +74,7 @@ func cleanStats(tk *testkit.TestKit, do *domain.Domain) { } func TestConversion(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -124,8 +123,7 @@ func getStatsJSON(t *testing.T, dom *domain.Domain, db, tableName string) *handl } func TestDumpGlobalStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_analyze_version = 2") @@ -151,8 +149,7 @@ func TestDumpGlobalStats(t *testing.T) { } func TestLoadGlobalStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_analyze_version = 2") @@ -178,8 +175,7 @@ func TestLoadGlobalStats(t *testing.T) { } func TestDumpPartitions(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -224,8 +220,7 @@ PARTITION BY RANGE ( a ) ( } func TestDumpAlteredTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -244,8 +239,7 @@ func TestDumpAlteredTable(t *testing.T) { func TestDumpCMSketchWithTopN(t *testing.T) { // Just test if we can store and recover the Top N elements stored in database. - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t(a int)") @@ -286,8 +280,7 @@ func TestDumpCMSketchWithTopN(t *testing.T) { } func TestDumpPseudoColumns(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t(a int, b int, index idx(a))") @@ -304,8 +297,7 @@ func TestDumpPseudoColumns(t *testing.T) { } func TestDumpExtendedStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -340,8 +332,7 @@ func TestDumpExtendedStats(t *testing.T) { } func TestDumpVer2Stats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_analyze_version = 2") tk.MustExec("use test") @@ -393,8 +384,7 @@ func TestDumpVer2Stats(t *testing.T) { func TestLoadStatsForNewCollation(t *testing.T) { // This test is almost the same as TestDumpVer2Stats, except that: b varchar(10) => b varchar(3) collate utf8mb4_unicode_ci - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_analyze_version = 2") tk.MustExec("use test") @@ -445,8 +435,7 @@ func TestLoadStatsForNewCollation(t *testing.T) { } func TestJSONTableToBlocks(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_analyze_version = 2") tk.MustExec("use test") diff --git a/statistics/handle/gc_test.go b/statistics/handle/gc_test.go index ae1a726d2ee38..66c4df5260a9a 100644 --- a/statistics/handle/gc_test.go +++ b/statistics/handle/gc_test.go @@ -24,8 +24,7 @@ import ( ) func TestGCStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("set @@tidb_analyze_version = 1") testKit.MustExec("use test") @@ -58,8 +57,7 @@ func TestGCStats(t *testing.T) { } func TestGCPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("set @@tidb_analyze_version = 1") testkit.WithPruneMode(testKit, variable.Static, func() { @@ -97,8 +95,7 @@ func TestGCPartition(t *testing.T) { } func TestGCExtendedStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("set session tidb_enable_extended_stats = on") testKit.MustExec("use test") @@ -142,8 +139,7 @@ func TestGCExtendedStats(t *testing.T) { } func TestGCColumnStatsUsage(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t(a int, b int, c int)") @@ -163,8 +159,7 @@ func TestGCColumnStatsUsage(t *testing.T) { } func TestDeleteAnalyzeJobs(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t(a int, b int)") diff --git a/statistics/handle/handle_hist_test.go b/statistics/handle/handle_hist_test.go index 7a8556d77c29c..c3f16503e3b27 100644 --- a/statistics/handle/handle_hist_test.go +++ b/statistics/handle/handle_hist_test.go @@ -30,8 +30,7 @@ import ( ) func TestConcurrentLoadHist(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") @@ -75,8 +74,7 @@ func TestConcurrentLoadHist(t *testing.T) { } func TestConcurrentLoadHistTimeout(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") @@ -137,8 +135,7 @@ func TestConcurrentLoadHistWithPanicAndFail(t *testing.T) { newConfig.Performance.StatsLoadConcurrency = 0 // no worker to consume channel config.StoreGlobalConfig(newConfig) defer config.StoreGlobalConfig(originConfig) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") diff --git a/statistics/handle/handle_test.go b/statistics/handle/handle_test.go index 884eada2107f6..dfad8d1de9259 100644 --- a/statistics/handle/handle_test.go +++ b/statistics/handle/handle_test.go @@ -43,8 +43,7 @@ import ( ) func TestStatsCache(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (c1 int, c2 int)") @@ -91,8 +90,7 @@ func TestStatsCache(t *testing.T) { } func TestStatsCacheMemTracker(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (c1 int, c2 int,c3 int)") @@ -204,8 +202,7 @@ func isSameExtendedStats(a, b *statistics.ExtendedStatsColl) bool { } func TestStatsStoreAndLoad(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (c1 int, c2 int)") @@ -233,8 +230,7 @@ func TestStatsStoreAndLoad(t *testing.T) { } func TestEmptyTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (c1 int, c2 int, key cc1(c1), key cc2(c2))") @@ -250,8 +246,7 @@ func TestEmptyTable(t *testing.T) { } func TestColumnIDs(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (c1 int, c2 int)") @@ -292,8 +287,7 @@ func TestColumnIDs(t *testing.T) { } func TestAvgColLen(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (c1 int, c2 varchar(100), c3 float, c4 datetime, c5 varchar(100))") @@ -349,8 +343,7 @@ func TestDurationToTS(t *testing.T) { } func TestVersion(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t1 (c1 int, c2 int)") @@ -432,8 +425,7 @@ func TestVersion(t *testing.T) { } func TestLoadHist(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (c1 varchar(12), c2 char(12))") @@ -492,8 +484,7 @@ func TestLoadHist(t *testing.T) { } func TestInitStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("set @@session.tidb_analyze_version = 1") @@ -523,8 +514,7 @@ func TestInitStats(t *testing.T) { } func TestInitStatsVer2(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_analyze_version=2") @@ -554,8 +544,7 @@ func TestInitStatsVer2(t *testing.T) { } func TestReloadExtStatsLockRelease(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -572,8 +561,7 @@ func TestReloadExtStatsLockRelease(t *testing.T) { } func TestLoadStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -648,8 +636,7 @@ func TestLoadStats(t *testing.T) { } func TestCorrelation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t(c1 int primary key, c2 int)") @@ -783,8 +770,7 @@ func TestCorrelation(t *testing.T) { } func TestAnalyzeVirtualCol(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -796,8 +782,7 @@ func TestAnalyzeVirtualCol(t *testing.T) { } func TestShowGlobalStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_analyze_version = 0") @@ -829,8 +814,7 @@ func TestShowGlobalStats(t *testing.T) { } func TestBuildGlobalLevelStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t, t1;") @@ -956,8 +940,7 @@ func TestAnalyzeGlobalStatsWithOpts1(t *testing.T) { if israce.RaceEnabled { t.Skip("exhaustive types test, skip race test") } - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) prepareForGlobalStatsWithOpts(t, dom, tk, "test_gstats_opt", "test_gstats_opt") @@ -996,8 +979,7 @@ func TestAnalyzeGlobalStatsWithOpts2(t *testing.T) { if israce.RaceEnabled { t.Skip("exhaustive types test, skip race test") } - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal1 := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -1029,8 +1011,7 @@ func TestAnalyzeGlobalStatsWithOpts2(t *testing.T) { } func TestGlobalStatsHealthy(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1090,8 +1071,7 @@ partition by range (a) ( } func TestGlobalStatsData(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1137,8 +1117,7 @@ partition by range (a) ( } func TestGlobalStatsData2(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode='dynamic'") @@ -1462,8 +1441,7 @@ func TestGlobalStatsData2(t *testing.T) { } func TestGlobalStatsData3(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode='dynamic'") @@ -1641,8 +1619,7 @@ func TestGlobalStatsData3(t *testing.T) { } func TestGlobalStatsVersion(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1709,8 +1686,7 @@ partition by range (a) ( } func TestDDLPartition4GlobalStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -1773,8 +1749,7 @@ func TestDDLPartition4GlobalStats(t *testing.T) { } func TestMergeGlobalTopN(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") tk.MustExec("drop table if exists t;") @@ -1810,8 +1785,7 @@ func TestMergeGlobalTopN(t *testing.T) { } func TestExtendedStatsDefaultSwitch(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int primary key, b int, c int, d int)") @@ -1824,8 +1798,7 @@ func TestExtendedStatsDefaultSwitch(t *testing.T) { } func TestExtendedStatsOps(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -1884,8 +1857,7 @@ func TestExtendedStatsOps(t *testing.T) { } func TestAdminReloadStatistics1(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -1931,8 +1903,7 @@ func TestAdminReloadStatistics1(t *testing.T) { } func TestAdminReloadStatistics2(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -1960,8 +1931,7 @@ func TestAdminReloadStatistics2(t *testing.T) { } func TestCorrelationStatsCompute(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -2050,8 +2020,7 @@ func TestCorrelationStatsCompute(t *testing.T) { } func TestSyncStatsExtendedRemoval(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -2083,8 +2052,7 @@ func TestSyncStatsExtendedRemoval(t *testing.T) { } func TestStaticPartitionPruneMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_partition_prune_mode='" + string(variable.Static) + "'") tk.MustExec("use test") @@ -2107,8 +2075,7 @@ func TestStaticPartitionPruneMode(t *testing.T) { } func TestMergeIdxHist(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_partition_prune_mode='" + string(variable.Dynamic) + "'") defer tk.MustExec("set @@tidb_partition_prune_mode='" + string(variable.Static) + "'") @@ -2128,8 +2095,7 @@ func TestMergeIdxHist(t *testing.T) { } func TestAnalyzeWithDynamicPartitionPruneMode(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode = '" + string(variable.Dynamic) + "'") @@ -2155,8 +2121,7 @@ func TestAnalyzeWithDynamicPartitionPruneMode(t *testing.T) { } func TestPartitionPruneModeSessionVariable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk1.MustExec("use test") tk1.MustExec("set @@tidb_partition_prune_mode = '" + string(variable.Dynamic) + "'") @@ -2213,8 +2178,7 @@ func TestPartitionPruneModeSessionVariable(t *testing.T) { } func TestFMSWithAnalyzePartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode = '" + string(variable.Dynamic) + "'") @@ -2235,8 +2199,7 @@ func TestFMSWithAnalyzePartition(t *testing.T) { } func TestIndexUsageInformation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) session.SetIndexUsageSyncLease(1) defer session.SetIndexUsageSyncLease(0) tk := testkit.NewTestKit(t, store) @@ -2278,8 +2241,7 @@ func TestIndexUsageInformation(t *testing.T) { //Functional Test:test batch insert func TestIndexUsageInformationMultiIndex(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) session.SetIndexUsageSyncLease(1) defer session.SetIndexUsageSyncLease(0) tk := testkit.NewTestKit(t, store) @@ -2386,8 +2348,7 @@ func TestIndexUsageInformationMultiIndex(t *testing.T) { func BenchmarkIndexUsageInformationInsert(b *testing.B) { //init b.StopTimer() - store, dom, clean := testkit.CreateMockStoreAndDomain(b) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(b) session.SetIndexUsageSyncLease(1) defer session.SetIndexUsageSyncLease(0) tk := testkit.NewTestKit(b, store) @@ -2426,8 +2387,7 @@ func BenchmarkIndexUsageInformationInsert(b *testing.B) { } func TestGCIndexUsageInformation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) session.SetIndexUsageSyncLease(1) defer session.SetIndexUsageSyncLease(0) tk := testkit.NewTestKit(t, store) @@ -2453,8 +2413,7 @@ func TestGCIndexUsageInformation(t *testing.T) { } func TestFeedbackWithGlobalStats(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("set @@tidb_analyze_version = 1") @@ -2548,8 +2507,7 @@ func TestFeedbackWithGlobalStats(t *testing.T) { } func TestExtendedStatsPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -2563,8 +2521,7 @@ func TestExtendedStatsPartitionTable(t *testing.T) { } func TestHideIndexUsageSyncLease(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) // NOTICE: remove this test when index usage is GA. tk := testkit.NewTestKit(t, store) rs := tk.MustQuery("select @@tidb_config").Rows() @@ -2574,8 +2531,7 @@ func TestHideIndexUsageSyncLease(t *testing.T) { } func TestRepetitiveAddDropExtendedStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -2614,8 +2570,7 @@ func TestRepetitiveAddDropExtendedStats(t *testing.T) { } func TestDuplicateExtendedStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -2637,8 +2592,7 @@ func TestDuplicateExtendedStats(t *testing.T) { } func TestDuplicateFMSketch(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode='dynamic'") @@ -2656,8 +2610,7 @@ func TestDuplicateFMSketch(t *testing.T) { } func TestIndexFMSketch(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_analyze_version = 1") @@ -2718,8 +2671,7 @@ func TestIndexFMSketch(t *testing.T) { } func TestShowExtendedStats4DropColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -2746,8 +2698,7 @@ func TestShowExtendedStats4DropColumn(t *testing.T) { } func TestGlobalStatsNDV(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode = 'dynamic'") @@ -2789,8 +2740,7 @@ func TestGlobalStatsNDV(t *testing.T) { } func TestGlobalStatsIndexNDV(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@tidb_partition_prune_mode = 'dynamic'") @@ -2882,8 +2832,7 @@ func TestGlobalStatsIndexNDV(t *testing.T) { } func TestExtStatsOnReCreatedTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -2920,8 +2869,7 @@ func TestExtStatsOnReCreatedTable(t *testing.T) { } func TestExtStatsOnReCreatedColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -2962,8 +2910,7 @@ func TestExtStatsOnReCreatedColumn(t *testing.T) { } func TestExtStatsOnRenamedColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -3000,8 +2947,7 @@ func TestExtStatsOnRenamedColumn(t *testing.T) { } func TestExtStatsOnModifiedColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set session tidb_enable_extended_stats = on") tk.MustExec("use test") @@ -3038,8 +2984,7 @@ func TestExtStatsOnModifiedColumn(t *testing.T) { } func TestCorrelationWithDefinedCollate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -3070,8 +3015,7 @@ func TestCorrelationWithDefinedCollate(t *testing.T) { } func TestLoadHistogramWithCollate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -3090,8 +3034,7 @@ func TestLoadHistogramWithCollate(t *testing.T) { } func TestFastAnalyzeColumnHistWithNullValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -3106,8 +3049,7 @@ func TestFastAnalyzeColumnHistWithNullValue(t *testing.T) { } func TestStatsCacheUpdateSkip(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) do := dom h := do.StatsHandle() @@ -3128,8 +3070,7 @@ func TestStatsCacheUpdateSkip(t *testing.T) { } func TestIssues24349(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("set @@tidb_partition_prune_mode='dynamic'") @@ -3147,8 +3088,7 @@ func TestIssues24349(t *testing.T) { } func TestIssues24401(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") @@ -3187,8 +3127,7 @@ func TestIssues24401(t *testing.T) { } func TestIssues27147(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") @@ -3207,8 +3146,7 @@ func TestIssues27147(t *testing.T) { } func TestColumnCountFromStorage(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) do := dom h := do.StatsHandle() @@ -3232,83 +3170,85 @@ func TestColumnCountFromStorage(t *testing.T) { require.Equal(t, int64(2), statsTbl.Columns[tblInfo.Columns[0].ID].Count) } -func TestIncrementalModifyCountUpdate(t *testing.T) { - for _, analyzeSnapshot := range []bool{true, false} { - func(analyzeSnapshot bool) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() - tk := testkit.NewTestKit(t, store) - tk.MustExec("use test") - if analyzeSnapshot { - tk.MustExec("set @@session.tidb_enable_analyze_snapshot = on") - } else { - tk.MustExec("set @@session.tidb_enable_analyze_snapshot = off") - } - tk.MustExec("create table t(a int)") - tk.MustExec("set @@session.tidb_analyze_version = 2") - h := dom.StatsHandle() - err := h.HandleDDLEvent(<-h.DDLEventCh()) - require.NoError(t, err) - tbl, err := dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t")) - require.NoError(t, err) - tblInfo := tbl.Meta() - tid := tblInfo.ID +func testIncrementalModifyCountUpdateHelper(analyzeSnapshot bool) func(*testing.T) { + return func(t *testing.T) { + store, dom := testkit.CreateMockStoreAndDomain(t) + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + if analyzeSnapshot { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = on") + } else { + tk.MustExec("set @@session.tidb_enable_analyze_snapshot = off") + } + tk.MustExec("create table t(a int)") + tk.MustExec("set @@session.tidb_analyze_version = 2") + h := dom.StatsHandle() + err := h.HandleDDLEvent(<-h.DDLEventCh()) + require.NoError(t, err) + tbl, err := dom.InfoSchema().TableByName(model.NewCIStr("test"), model.NewCIStr("t")) + require.NoError(t, err) + tblInfo := tbl.Meta() + tid := tblInfo.ID - tk.MustExec("insert into t values(1),(2),(3)") - require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) - err = h.Update(dom.InfoSchema()) - require.NoError(t, err) - tk.MustExec("analyze table t") - tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( - "3 0", - )) + tk.MustExec("insert into t values(1),(2),(3)") + require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) + err = h.Update(dom.InfoSchema()) + require.NoError(t, err) + tk.MustExec("analyze table t") + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "3 0", + )) - tk.MustExec("begin") - txn, err := tk.Session().Txn(false) - require.NoError(t, err) - startTS := txn.StartTS() - tk.MustExec("commit") + tk.MustExec("begin") + txn, err := tk.Session().Txn(false) + require.NoError(t, err) + startTS := txn.StartTS() + tk.MustExec("commit") - tk.MustExec("insert into t values(4),(5),(6)") - require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) - err = h.Update(dom.InfoSchema()) - require.NoError(t, err) + tk.MustExec("insert into t values(4),(5),(6)") + require.NoError(t, h.DumpStatsDeltaToKV(handle.DumpAll)) + err = h.Update(dom.InfoSchema()) + require.NoError(t, err) - // Simulate that the analyze would start before and finish after the second insert. - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS))) - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseCount", "return(3)")) - require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseModifyCount", "return(0)")) - tk.MustExec("analyze table t") - if analyzeSnapshot { - // Check the count / modify_count changes during the analyze are not lost. - tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( - "6 3", - )) - // Check the histogram is correct for the snapshot analyze. - tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( - "3", - )) - } else { - // Since analyze use max ts to read data, it finds the row count is 6 and directly set count to 6 rather than incrementally update it. - // But it still incrementally updates modify_count. - tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( - "6 3", - )) - // Check the histogram is collected from the latest data rather than the snapshot at startTS. - tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( - "6", - )) - } - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseCount")) - require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseModifyCount")) - }(analyzeSnapshot) + // Simulate that the analyze would start before and finish after the second insert. + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot", fmt.Sprintf("return(%d)", startTS))) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseCount", "return(3)")) + require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/executor/injectBaseModifyCount", "return(0)")) + tk.MustExec("analyze table t") + if analyzeSnapshot { + // Check the count / modify_count changes during the analyze are not lost. + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "6 3", + )) + // Check the histogram is correct for the snapshot analyze. + tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( + "3", + )) + } else { + // Since analyze use max ts to read data, it finds the row count is 6 and directly set count to 6 rather than incrementally update it. + // But it still incrementally updates modify_count. + tk.MustQuery(fmt.Sprintf("select count, modify_count from mysql.stats_meta where table_id = %d", tid)).Check(testkit.Rows( + "6 3", + )) + // Check the histogram is collected from the latest data rather than the snapshot at startTS. + tk.MustQuery(fmt.Sprintf("select distinct_count from mysql.stats_histograms where table_id = %d", tid)).Check(testkit.Rows( + "6", + )) + } + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectAnalyzeSnapshot")) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseCount")) + require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/executor/injectBaseModifyCount")) + } +} + +func TestIncrementalModifyCountUpdate(t *testing.T) { + for _, analyzeSnapshot := range []bool{true, false} { + t.Run(fmt.Sprintf("%s-%t", t.Name(), analyzeSnapshot), testIncrementalModifyCountUpdateHelper(analyzeSnapshot)) } } func TestRecordHistoricalStatsToStorage(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_analyze_version = 2") tk.MustExec("use test") @@ -3338,8 +3278,7 @@ func TestAnalyzeIncrementalEvictedIndex(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.Performance.EnableStatsCacheMemQuota = true }) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_analyze_version = 1") tk.MustExec("use test") @@ -3370,8 +3309,7 @@ func TestEvictedColumnLoadedStatus(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.Performance.EnableStatsCacheMemQuota = true }) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) dom.StatsHandle().SetLease(0) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_analyze_version = 1") @@ -3400,8 +3338,7 @@ func TestAnalyzeTableLRUPut(t *testing.T) { config.UpdateGlobal(func(conf *config.Config) { conf.Performance.EnableStatsCacheMemQuota = true }) - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_analyze_version = 1") tk.MustExec("use test") diff --git a/statistics/handle/update_test.go b/statistics/handle/update_test.go index 0218e99dcce5a..60f937c653b88 100644 --- a/statistics/handle/update_test.go +++ b/statistics/handle/update_test.go @@ -40,8 +40,7 @@ import ( ) func TestSingleSessionInsert(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("set @@session.tidb_analyze_version = 1") @@ -167,8 +166,7 @@ func TestSingleSessionInsert(t *testing.T) { } func TestRollback(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (a int, b int)") @@ -192,8 +190,7 @@ func TestRollback(t *testing.T) { } func TestMultiSession(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t1 (c1 int, c2 int)") @@ -250,8 +247,7 @@ func TestMultiSession(t *testing.T) { } func TestTxnWithFailure(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t1 (c1 int primary key, c2 int)") @@ -298,8 +294,7 @@ func TestTxnWithFailure(t *testing.T) { } func TestUpdatePartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustQuery("select @@tidb_partition_prune_mode").Check(testkit.Rows(string(dom.StatsHandle().CurrentPruneMode()))) testKit.MustExec("use test") @@ -361,8 +356,7 @@ func TestUpdatePartition(t *testing.T) { } func TestAutoUpdate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testkit.WithPruneMode(testKit, variable.Static, func() { testKit.MustExec("use test") @@ -463,8 +457,7 @@ func TestAutoUpdate(t *testing.T) { } func TestAutoUpdatePartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testkit.WithPruneMode(testKit, variable.Static, func() { testKit.MustExec("use test") @@ -503,8 +496,7 @@ func TestAutoUpdatePartition(t *testing.T) { } func TestAutoAnalyzeOnEmptyTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) oriStart := tk.MustQuery("select @@tidb_auto_analyze_start_time").Rows()[0][0].(string) @@ -539,8 +531,7 @@ func TestAutoAnalyzeOnEmptyTable(t *testing.T) { } func TestAutoAnalyzeOutOfSpecifiedTime(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) oriStart := tk.MustQuery("select @@tidb_auto_analyze_start_time").Rows()[0][0].(string) @@ -578,8 +569,7 @@ func TestAutoAnalyzeOutOfSpecifiedTime(t *testing.T) { } func TestIssue25700(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) oriStart := tk.MustQuery("select @@tidb_auto_analyze_start_time").Rows()[0][0].(string) oriEnd := tk.MustQuery("select @@tidb_auto_analyze_end_time").Rows()[0][0].(string) @@ -603,8 +593,7 @@ func TestIssue25700(t *testing.T) { } func TestAutoAnalyzeOnChangeAnalyzeVer(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int, index idx(a))") @@ -678,8 +667,7 @@ func TestAutoAnalyzeOnChangeAnalyzeVer(t *testing.T) { } func TestTableAnalyzed(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (a int)") @@ -713,8 +701,7 @@ func TestTableAnalyzed(t *testing.T) { } func TestUpdateErrorRate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) h := dom.StatsHandle() is := dom.InfoSchema() h.SetLease(0) @@ -795,8 +782,7 @@ func TestUpdateErrorRate(t *testing.T) { } func TestUpdatePartitionErrorRate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) h := dom.StatsHandle() is := dom.InfoSchema() h.SetLease(0) @@ -916,8 +902,7 @@ func TestSplitRange(t *testing.T) { } func TestQueryFeedback(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") @@ -1040,8 +1025,7 @@ func TestQueryFeedback(t *testing.T) { } func TestQueryFeedbackForPartition(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("set @@session.tidb_analyze_version = 0") @@ -1129,8 +1113,7 @@ func TestQueryFeedbackForPartition(t *testing.T) { } func TestUpdateSystemTable(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (a int, b int)") @@ -1145,8 +1128,7 @@ func TestUpdateSystemTable(t *testing.T) { } func TestOutOfOrderUpdate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("create table t (a int, b int)") @@ -1178,8 +1160,7 @@ func TestOutOfOrderUpdate(t *testing.T) { } func TestUpdateStatsByLocalFeedback(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") @@ -1244,8 +1225,7 @@ func TestUpdateStatsByLocalFeedback(t *testing.T) { } func TestUpdatePartitionStatsByLocalFeedback(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("set @@session.tidb_analyze_version = 0") @@ -1287,8 +1267,7 @@ func TestUpdatePartitionStatsByLocalFeedback(t *testing.T) { } func TestFeedbackWithStatsVer2(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("set global tidb_analyze_version = 1") @@ -1472,8 +1451,7 @@ func TestNeedAnalyzeTable(t *testing.T) { func TestIndexQueryFeedback(t *testing.T) { t.Skip("support update the topn of index equal conditions") - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) oriProbability := statistics.FeedbackProbability.Load() @@ -1608,8 +1586,7 @@ func TestIndexQueryFeedback(t *testing.T) { } func TestIndexQueryFeedback4TopN(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) oriProbability := statistics.FeedbackProbability.Load() @@ -1663,8 +1640,7 @@ func TestIndexQueryFeedback4TopN(t *testing.T) { } func TestAbnormalIndexFeedback(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) oriProbability := statistics.FeedbackProbability.Load() @@ -1742,8 +1718,7 @@ func TestAbnormalIndexFeedback(t *testing.T) { } func TestFeedbackRanges(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) h := dom.StatsHandle() oriProbability := statistics.FeedbackProbability.Load() @@ -1824,8 +1799,7 @@ func TestFeedbackRanges(t *testing.T) { } func TestUnsignedFeedbackRanges(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) h := dom.StatsHandle() @@ -1922,8 +1896,7 @@ func TestUnsignedFeedbackRanges(t *testing.T) { } func TestLoadHistCorrelation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) h := dom.StatsHandle() origLease := h.Lease() @@ -1946,8 +1919,7 @@ func TestLoadHistCorrelation(t *testing.T) { } func TestDeleteUpdateFeedback(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) oriProbability := statistics.FeedbackProbability.Load() @@ -1977,8 +1949,7 @@ func TestDeleteUpdateFeedback(t *testing.T) { } func BenchmarkHandleAutoAnalyze(b *testing.B) { - store, dom, clean := testkit.CreateMockStoreAndDomain(b) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(b) testKit := testkit.NewTestKit(b, store) testKit.MustExec("use test") h := dom.StatsHandle() @@ -2001,8 +1972,7 @@ func subtraction(newMetric *dto.Metric, oldMetric *dto.Metric) int { } func TestDisableFeedback(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) oriProbability := statistics.FeedbackProbability.Load() @@ -2028,8 +1998,7 @@ func TestDisableFeedback(t *testing.T) { } func TestFeedbackCounter(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) oriProbability := statistics.FeedbackProbability.Load() @@ -2147,8 +2116,7 @@ func TestMergeTopN(t *testing.T) { } func TestAutoUpdatePartitionInDynamicOnlyMode(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testkit.WithPruneMode(testKit, variable.DynamicOnly, func() { testKit.MustExec("use test") @@ -2212,8 +2180,7 @@ func TestAutoUpdatePartitionInDynamicOnlyMode(t *testing.T) { } func TestAutoAnalyzeRatio(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) oriStart := tk.MustQuery("select @@tidb_auto_analyze_start_time").Rows()[0][0].(string) @@ -2257,8 +2224,7 @@ func TestAutoAnalyzeRatio(t *testing.T) { } func TestDumpColumnStatsUsage(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal := tk.MustQuery("select @@tidb_enable_column_tracking").Rows()[0][0].(string) @@ -2339,8 +2305,7 @@ func TestDumpColumnStatsUsage(t *testing.T) { func TestCollectPredicateColumnsFromExecute(t *testing.T) { for _, val := range []bool{false, true} { func(planCache bool) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tmp := testkit.NewTestKit(t, store) defer tmp.MustExec("set global tidb_enable_prepared_plan_cache=" + variable.BoolToOnOff(variable.EnablePreparedPlanCache.Load())) tmp.MustExec("set global tidb_enable_prepared_plan_cache=" + variable.BoolToOnOff(planCache)) @@ -2390,8 +2355,7 @@ func TestCollectPredicateColumnsFromExecute(t *testing.T) { } func TestEnableAndDisableColumnTracking(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) h := dom.StatsHandle() tk.MustExec("use test") diff --git a/statistics/integration_test.go b/statistics/integration_test.go index 2a37f27fc146b..18bc2efefda05 100644 --- a/statistics/integration_test.go +++ b/statistics/integration_test.go @@ -31,8 +31,7 @@ import ( ) func TestChangeVerTo2Behavior(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal1 := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -111,8 +110,7 @@ func TestChangeVerTo2Behavior(t *testing.T) { } func TestChangeVerTo2BehaviorWithPersistedOptions(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) originalVal1 := tk.MustQuery("select @@tidb_persist_analyze_options").Rows()[0][0].(string) defer func() { @@ -193,8 +191,7 @@ func TestChangeVerTo2BehaviorWithPersistedOptions(t *testing.T) { } func TestFastAnalyzeOnVer2(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int, b int, index idx(a))") @@ -241,8 +238,7 @@ func TestFastAnalyzeOnVer2(t *testing.T) { } func TestIncAnalyzeOnVer2(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table t(a int, b int, index idx(a))") @@ -268,8 +264,7 @@ func TestIncAnalyzeOnVer2(t *testing.T) { } func TestExpBackoffEstimation(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table exp_backoff(a int, b int, c int, d int, index idx(a, b, c, d))") @@ -304,8 +299,7 @@ func TestExpBackoffEstimation(t *testing.T) { } func TestGlobalStats(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -400,8 +394,7 @@ func TestGlobalStats(t *testing.T) { } func TestNULLOnFullSampling(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t;") @@ -435,8 +428,7 @@ func TestNULLOnFullSampling(t *testing.T) { } func TestAnalyzeSnapshot(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -464,8 +456,7 @@ func TestAnalyzeSnapshot(t *testing.T) { } func TestHistogramsWithSameTxnTS(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -485,8 +476,7 @@ func TestHistogramsWithSameTxnTS(t *testing.T) { } func TestAnalyzeLongString(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -498,8 +488,7 @@ func TestAnalyzeLongString(t *testing.T) { } func TestOutdatedStatsCheck(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) oriStart := tk.MustQuery("select @@tidb_auto_analyze_start_time").Rows()[0][0].(string) @@ -561,8 +550,7 @@ func hasPseudoStats(rows [][]interface{}) bool { // TestNotLoadedStatsOnAllNULLCol makes sure that stats on a column that only contains NULLs can be used even when it's // not loaded. This is reasonable because it makes no difference whether it's loaded or not. func TestNotLoadedStatsOnAllNULLCol(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) h := dom.StatsHandle() oriLease := h.Lease() h.SetLease(1000) @@ -625,8 +613,7 @@ func TestNotLoadedStatsOnAllNULLCol(t *testing.T) { } func TestCrossValidationSelectivity(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) h := dom.StatsHandle() tk.MustExec("use test") diff --git a/statistics/selectivity_test.go b/statistics/selectivity_test.go index 02ed35c6f031c..a71de236c2483 100644 --- a/statistics/selectivity_test.go +++ b/statistics/selectivity_test.go @@ -47,8 +47,7 @@ import ( ) func TestCollationColumnEstimate(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -75,8 +74,7 @@ func TestCollationColumnEstimate(t *testing.T) { } func BenchmarkSelectivity(b *testing.B) { - store, dom, clean := testkit.CreateMockStoreAndDomain(b) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(b) testKit := testkit.NewTestKit(b, store) statsTbl, err := prepareSelectivity(testKit, dom) require.NoError(b, err) @@ -113,8 +111,7 @@ func BenchmarkSelectivity(b *testing.B) { } func TestOutOfRangeEstimation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -163,8 +160,7 @@ func TestOutOfRangeEstimation(t *testing.T) { } func TestEstimationForUnknownValues(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -241,8 +237,7 @@ func TestEstimationForUnknownValues(t *testing.T) { } func TestEstimationUniqueKeyEqualConds(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -274,8 +269,7 @@ func TestEstimationUniqueKeyEqualConds(t *testing.T) { } func TestPrimaryKeySelectivity(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -302,8 +296,7 @@ func TestPrimaryKeySelectivity(t *testing.T) { } func TestStatsVer2(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("set tidb_analyze_version=2") @@ -370,8 +363,7 @@ func TestStatsVer2(t *testing.T) { } func TestTopNOutOfHist(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("set tidb_analyze_version=2") @@ -408,8 +400,7 @@ func TestTopNOutOfHist(t *testing.T) { } func TestColumnIndexNullEstimation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -442,8 +433,7 @@ func TestColumnIndexNullEstimation(t *testing.T) { } func TestUniqCompEqualEst(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.Session().GetSessionVars().EnableClusteredIndex = variable.ClusteredIndexDefModeOn @@ -468,8 +458,7 @@ func TestUniqCompEqualEst(t *testing.T) { } func TestSelectivity(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) statsTbl, err := prepareSelectivity(testKit, dom) require.NoError(t, err) @@ -562,8 +551,7 @@ func TestSelectivity(t *testing.T) { // TestDiscreteDistribution tests the estimation for discrete data distribution. This is more common when the index // consists several columns, and the first column has small NDV. func TestDiscreteDistribution(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -592,8 +580,7 @@ func TestDiscreteDistribution(t *testing.T) { } func TestSelectCombinedLowBound(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -618,8 +605,7 @@ func TestSelectCombinedLowBound(t *testing.T) { // TestDNFCondSelectivity tests selectivity calculation with DNF conditions covered by using independence assumption. func TestDNFCondSelectivity(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") @@ -687,8 +673,7 @@ func TestDNFCondSelectivity(t *testing.T) { } func TestIndexEstimationCrossValidate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -716,8 +701,7 @@ func TestIndexEstimationCrossValidate(t *testing.T) { } func TestRangeStepOverflow(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -734,8 +718,7 @@ func TestRangeStepOverflow(t *testing.T) { } func TestSmallRangeEstimation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -897,8 +880,7 @@ func TestSelectivityGreedyAlgo(t *testing.T) { } func TestDefaultSelectivityForStrMatch(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) testKit := testkit.NewTestKit(t, store) testKit.MustExec("use test") testKit.MustExec("drop table if exists t") @@ -934,8 +916,7 @@ func TestDefaultSelectivityForStrMatch(t *testing.T) { } func TestTopNAssistedEstimationWithoutNewCollation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) collate.SetNewCollationEnabledForTest(false) var ( input []string @@ -947,8 +928,7 @@ func TestTopNAssistedEstimationWithoutNewCollation(t *testing.T) { } func TestTopNAssistedEstimationWithNewCollation(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) collate.SetNewCollationEnabledForTest(true) var ( input []string diff --git a/statistics/trace_test.go b/statistics/trace_test.go index f9dc92d00ab1f..90a7e3015eab2 100644 --- a/statistics/trace_test.go +++ b/statistics/trace_test.go @@ -31,8 +31,7 @@ import ( ) func TestTraceCE(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") @@ -102,8 +101,7 @@ func TestTraceCE(t *testing.T) { } func TestTraceCEPartitionTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t") diff --git a/store/batch_coprocessor_test.go b/store/batch_coprocessor_test.go index 20caf2cf18695..cee4b54725400 100644 --- a/store/batch_coprocessor_test.go +++ b/store/batch_coprocessor_test.go @@ -51,8 +51,7 @@ func createMockTiKVStoreOptions(tiflashNum int) []mockstore.MockTiKVStoreOption } func TestStoreErr(t *testing.T) { - store, clean := testkit.CreateMockStore(t, createMockTiKVStoreOptions(1)...) - defer clean() + store := testkit.CreateMockStore(t, createMockTiKVStoreOptions(1)...) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/infoschema/mockTiFlashStoreCount", `return(true)`)) defer func() { @@ -87,8 +86,7 @@ func TestStoreErr(t *testing.T) { } func TestStoreSwitchPeer(t *testing.T) { - store, clean := testkit.CreateMockStore(t, createMockTiKVStoreOptions(2)...) - defer clean() + store := testkit.CreateMockStore(t, createMockTiKVStoreOptions(2)...) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/infoschema/mockTiFlashStoreCount", `return(true)`)) defer func() { diff --git a/store/driver/main_test.go b/store/driver/main_test.go index 7da33743e5b2f..0b4cc12bbe62f 100644 --- a/store/driver/main_test.go +++ b/store/driver/main_test.go @@ -47,14 +47,14 @@ func TestMain(m *testing.M) { goleak.VerifyTestMain(m, opts...) } -func createTestStore(t *testing.T) (kv.Storage, *domain.Domain, func()) { +func createTestStore(t *testing.T) (kv.Storage, *domain.Domain) { if *withTiKV { return createTiKVStore(t) } return createUnistore(t) } -func createTiKVStore(t *testing.T) (kv.Storage, *domain.Domain, func()) { +func createTiKVStore(t *testing.T) (kv.Storage, *domain.Domain) { var d TiKVDriver store, err := d.Open(fmt.Sprintf("tikv://%s", *pdAddrs)) require.NoError(t, err) @@ -75,15 +75,15 @@ func createTiKVStore(t *testing.T) (kv.Storage, *domain.Domain, func()) { dom, err := session.BootstrapSession(store) require.NoError(t, err) - clean := func() { + t.Cleanup(func() { dom.Close() require.NoError(t, store.Close()) - } + }) - return store, dom, clean + return store, dom } -func createUnistore(t *testing.T) (kv.Storage, *domain.Domain, func()) { +func createUnistore(t *testing.T) (kv.Storage, *domain.Domain) { client, pdClient, cluster, err := unistore.New("") require.NoError(t, err) @@ -98,12 +98,12 @@ func createUnistore(t *testing.T) (kv.Storage, *domain.Domain, func()) { dom, err := session.BootstrapSession(store) require.NoError(t, err) - clean := func() { + t.Cleanup(func() { dom.Close() require.NoError(t, store.Close()) - } + }) - return store, dom, clean + return store, dom } func prepareSnapshot(t *testing.T, store kv.Storage, data [][]interface{}) kv.Snapshot { diff --git a/store/driver/sql_fail_test.go b/store/driver/sql_fail_test.go index 35111d6096e2d..fe733968a7f96 100644 --- a/store/driver/sql_fail_test.go +++ b/store/driver/sql_fail_test.go @@ -26,8 +26,7 @@ import ( ) func TestFailBusyServerCop(t *testing.T) { - store, _, clean := createTestStore(t) - defer clean() + store, _ := createTestStore(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) diff --git a/store/gcworker/gc_worker_test.go b/store/gcworker/gc_worker_test.go index 4460bcce4048c..8d9ae4c9ae377 100644 --- a/store/gcworker/gc_worker_test.go +++ b/store/gcworker/gc_worker_test.go @@ -101,11 +101,11 @@ type mockGCWorkerSuite struct { } } -func createGCWorkerSuite(t *testing.T) (s *mockGCWorkerSuite, clean func()) { +func createGCWorkerSuite(t *testing.T) (s *mockGCWorkerSuite) { return createGCWorkerSuiteWithStoreType(t, mockstore.EmbedUnistore) } -func createGCWorkerSuiteWithStoreType(t *testing.T, storeType mockstore.StoreType) (s *mockGCWorkerSuite, clean func()) { +func createGCWorkerSuiteWithStoreType(t *testing.T, storeType mockstore.StoreType) (s *mockGCWorkerSuite) { s = new(mockGCWorkerSuite) hijackClient := func(client tikv.Client) tikv.Client { s.client = &mockGCWorkerClient{Client: client} @@ -130,7 +130,7 @@ func createGCWorkerSuiteWithStoreType(t *testing.T, storeType mockstore.StoreTyp require.NoError(t, err) store.GetOracle().Close() store.(tikv.Storage).SetOracle(s.oracle) - dom, clean := bootstrap(t, store, 0) + dom := bootstrap(t, store, 0) s.store, s.dom = store, dom s.tikvStore = s.store.(tikv.Storage) @@ -256,8 +256,7 @@ func timeEqual(t *testing.T, t1, t2 time.Time, epsilon time.Duration) { } func TestGetOracleTime(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) t1, err := s.gcWorker.getOracleTime() require.NoError(t, err) @@ -270,8 +269,7 @@ func TestGetOracleTime(t *testing.T) { } func TestGetLowResolveTS(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) lowResolveTS, err := s.gcWorker.getTryResolveLocksTS() require.NoError(t, err) @@ -281,8 +279,7 @@ func TestGetLowResolveTS(t *testing.T) { } func TestMinStartTS(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) ctx := context.Background() spkv := s.tikvStore.GetSafePointKV() @@ -312,8 +309,7 @@ func TestMinStartTS(t *testing.T) { } func TestPrepareGC(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) now, err := s.gcWorker.getOracleTime() require.NoError(t, err) @@ -441,8 +437,7 @@ func TestPrepareGC(t *testing.T) { } func TestStatusVars(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) // Status variables should now exist for: // tidb_gc_safe_point, tidb_gc_last_run_time @@ -464,8 +459,7 @@ func TestStatusVars(t *testing.T) { } func TestDoGCForOneRegion(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) ctx := context.Background() bo := tikv.NewBackofferWithVars(ctx, gcOneRegionMaxBackoff, nil) @@ -499,8 +493,7 @@ func TestDoGCForOneRegion(t *testing.T) { } func TestGetGCConcurrency(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) // Pick a concurrency that doesn't equal to the number of stores. concurrencyConfig := 25 @@ -524,8 +517,7 @@ func TestGetGCConcurrency(t *testing.T) { } func TestDoGC(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) ctx := context.Background() gcSafePointCacheInterval = 1 @@ -547,8 +539,7 @@ func TestDoGC(t *testing.T) { } func TestCheckGCMode(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) useDistributedGC := s.gcWorker.checkUseDistributedGC() require.True(t, useDistributedGC) @@ -576,8 +567,7 @@ func TestCheckGCMode(t *testing.T) { } func TestCheckScanLockMode(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) usePhysical, err := s.gcWorker.checkUsePhysicalScanLock() require.NoError(t, err) @@ -657,8 +647,7 @@ func TestDeleteRangesFailure(t *testing.T) { {"failErrResp", failErrResp}, } - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) for _, test := range tests { t.Run(test.name, func(t *testing.T) { @@ -825,8 +814,7 @@ Loop: } func TestLeaderTick(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) gcSafePointCacheInterval = 0 @@ -917,8 +905,7 @@ func TestLeaderTick(t *testing.T) { } func TestResolveLockRangeInfine(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) require.NoError(t, failpoint.Enable("tikvclient/invalidCacheAndRetry", "return(true)")) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/store/gcworker/setGcResolveMaxBackoff", "return(1)")) @@ -932,8 +919,7 @@ func TestResolveLockRangeInfine(t *testing.T) { } func TestResolveLockRangeMeetRegionCacheMiss(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) var ( scanCnt int @@ -1036,8 +1022,7 @@ func TestResolveLockRangeMeetRegionEnlargeCausedByRegionMerge(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/store/copr/DisablePaging")) }() - s, clean := createGCWorkerSuiteWithStoreType(t, mockstore.MockTiKV) - defer clean() + s := createGCWorkerSuiteWithStoreType(t, mockstore.MockTiKV) var ( firstAccess = true @@ -1118,8 +1103,7 @@ func TestResolveLockRangeMeetRegionEnlargeCausedByRegionMerge(t *testing.T) { } func TestRunGCJob(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) gcSafePointCacheInterval = 0 @@ -1157,8 +1141,7 @@ func TestRunGCJob(t *testing.T) { } func TestSetServiceSafePoint(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) // SafePoint calculations are based on time rather than ts value. safePoint := s.mustAllocTs(t) @@ -1198,8 +1181,7 @@ func TestSetServiceSafePoint(t *testing.T) { } func TestRunGCJobAPI(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) gcSafePointCacheInterval = 0 @@ -1214,8 +1196,7 @@ func TestRunGCJobAPI(t *testing.T) { } func TestRunDistGCJobAPI(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) gcSafePointCacheInterval = 0 @@ -1230,8 +1211,7 @@ func TestRunDistGCJobAPI(t *testing.T) { } func TestStartWithRunGCJobFailures(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) s.gcWorker.Start() defer s.gcWorker.Close() @@ -1352,8 +1332,7 @@ func (s *mockGCWorkerSuite) makeMergedMockClient(t *testing.T, count int) (*merg } func TestMergeLockScanner(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) // Shortcuts to make the following test code simpler @@ -1512,8 +1491,7 @@ func TestMergeLockScanner(t *testing.T) { } func TestResolveLocksPhysical(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) alwaysSucceedHandler := func(addr string, req *tikvrpc.Request) (*tikvrpc.Response, error) { switch req.Type { @@ -1703,8 +1681,7 @@ func TestResolveLocksPhysical(t *testing.T) { } func TestPhysicalScanLockDeadlock(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) ctx := gcContext() stores := s.cluster.GetAllStores() @@ -1750,8 +1727,7 @@ func TestPhysicalScanLockDeadlock(t *testing.T) { } func TestGCPlacementRules(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/store/gcworker/mockHistoryJobForGC", "return(10)")) defer func() { @@ -1804,8 +1780,7 @@ func TestGCPlacementRules(t *testing.T) { } func TestGCLabelRules(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) require.NoError(t, failpoint.Enable("github.com/pingcap/tidb/store/gcworker/mockHistoryJob", "return(\"schema/d1/t1\")")) defer func() { @@ -1818,8 +1793,7 @@ func TestGCLabelRules(t *testing.T) { } func TestGCWithPendingTxn(t *testing.T) { - s, clean := createGCWorkerSuite(t) - defer clean() + s := createGCWorkerSuite(t) // set to false gc worker won't resolve locks after safepoint. s.gcWorker.logBackupEnabled = false @@ -1872,10 +1846,9 @@ func TestGCWithPendingTxn(t *testing.T) { } func TestGCWithPendingTxn2(t *testing.T) { - s, clean := createGCWorkerSuite(t) + s := createGCWorkerSuite(t) // only when log backup enabled will scan locks after safepoint. s.gcWorker.logBackupEnabled = true - defer clean() ctx := gcContext() gcSafePointCacheInterval = 0 @@ -1945,10 +1918,9 @@ func TestGCWithPendingTxn2(t *testing.T) { } func TestSkipGCAndOnlyResolveLock(t *testing.T) { - s, clean := createGCWorkerSuite(t) + s := createGCWorkerSuite(t) // only when log backup enabled will scan locks after safepoint. s.gcWorker.logBackupEnabled = true - defer clean() ctx := gcContext() gcSafePointCacheInterval = 0 @@ -2003,7 +1975,7 @@ func TestSkipGCAndOnlyResolveLock(t *testing.T) { require.Equal(t, last.Unix(), lastRunTime.Unix()) } -func bootstrap(t testing.TB, store kv.Storage, lease time.Duration) (*domain.Domain, func()) { +func bootstrap(t testing.TB, store kv.Storage, lease time.Duration) *domain.Domain { session.SetSchemaLease(lease) session.DisableStats4Test() dom, err := session.BootstrapSession(store) @@ -2011,10 +1983,10 @@ func bootstrap(t testing.TB, store kv.Storage, lease time.Duration) (*domain.Dom dom.SetStatsUpdating(true) - clean := func() { + t.Cleanup(func() { dom.Close() err := store.Close() require.NoError(t, err) - } - return dom, clean + }) + return dom } diff --git a/store/helper/helper_test.go b/store/helper/helper_test.go index 4174735058ac4..ebf85ab9d4944 100644 --- a/store/helper/helper_test.go +++ b/store/helper/helper_test.go @@ -38,8 +38,7 @@ import ( ) func TestHotRegion(t *testing.T) { - store, clean := createMockStore(t) - defer clean() + store := createMockStore(t) h := helper.Helper{ Store: store, @@ -73,8 +72,7 @@ func TestHotRegion(t *testing.T) { } func TestGetRegionsTableInfo(t *testing.T) { - store, clean := createMockStore(t) - defer clean() + store := createMockStore(t) h := helper.NewHelper(store) regionsInfo := getMockTiKVRegionsInfo() @@ -84,8 +82,7 @@ func TestGetRegionsTableInfo(t *testing.T) { } func TestTiKVRegionsInfo(t *testing.T) { - store, clean := createMockStore(t) - defer clean() + store := createMockStore(t) h := helper.Helper{ Store: store, @@ -97,8 +94,7 @@ func TestTiKVRegionsInfo(t *testing.T) { } func TestTiKVStoresStat(t *testing.T) { - store, clean := createMockStore(t) - defer clean() + store := createMockStore(t) h := helper.Helper{ Store: store, @@ -140,7 +136,7 @@ func (s *mockStore) Describe() string { return "" } -func createMockStore(t *testing.T) (store helper.Storage, clean func()) { +func createMockStore(t *testing.T) (store helper.Storage) { s, err := mockstore.NewMockStore( mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithMultiRegions(c, []byte("x")) @@ -155,10 +151,10 @@ func createMockStore(t *testing.T) (store helper.Storage, clean func()) { []string{"invalid_pd_address", server.URL[len("http://"):]}, } - clean = func() { + t.Cleanup(func() { server.Close() require.NoError(t, store.Close()) - } + }) return } diff --git a/store/mockstore/mockcopr/executor_test.go b/store/mockstore/mockcopr/executor_test.go index 3572c51b4e88c..ec76c4515a5f4 100644 --- a/store/mockstore/mockcopr/executor_test.go +++ b/store/mockstore/mockcopr/executor_test.go @@ -110,8 +110,7 @@ func TestResolvedLargeTxnLocks(t *testing.T) { } func TestIssue15662(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/store/mockstore/unistore/tikv/mvcc_test.go b/store/mockstore/unistore/tikv/mvcc_test.go index 3b11e5fd4d713..49c89425fc5b2 100644 --- a/store/mockstore/unistore/tikv/mvcc_test.go +++ b/store/mockstore/unistore/tikv/mvcc_test.go @@ -91,7 +91,7 @@ func CreateTestDB(dbPath, LogPath string) (*badger.DB, error) { return badger.Open(opts) } -func NewTestStore(dbPrefix string, logPrefix string, t *testing.T) (*TestStore, func()) { +func NewTestStore(dbPrefix string, logPrefix string, t *testing.T) *TestStore { dbPath := t.TempDir() LogPath := t.TempDir() safePoint := &SafePoint{} @@ -124,17 +124,17 @@ func NewTestStore(dbPrefix string, logPrefix string, t *testing.T) (*TestStore, store := NewMVCCStore(&config.DefaultConf, dbBundle, dbPath, safePoint, writer, pdClient) svr := NewServer(nil, store, nil) - clean := func() { + t.Cleanup(func() { require.NoError(t, store.Close()) require.NoError(t, db.Close()) - } + }) return &TestStore{ MvccStore: store, Svr: svr, DBPath: dbPath, LogPath: LogPath, t: t, - }, clean + } } // PessimisticLock will add pessimistic lock on key @@ -508,8 +508,7 @@ func MustGetRollback(key []byte, ts uint64, store *TestStore) { } func TestBasicOptimistic(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) key1 := []byte("key1") val1 := []byte("val1") @@ -523,8 +522,7 @@ func TestBasicOptimistic(t *testing.T) { func TestPessimiticTxnTTL(t *testing.T) { var err error - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) // Pessimisitc lock key1 key1 := []byte("key1") @@ -551,8 +549,7 @@ func TestPessimiticTxnTTL(t *testing.T) { } func TestRollback(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) key := []byte("tkey") val := []byte("value") @@ -586,8 +583,7 @@ func TestRollback(t *testing.T) { func TestOverwritePessimisitcLock(t *testing.T) { var err error - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) key := []byte("key") startTs := uint64(1) @@ -614,8 +610,7 @@ func TestOverwritePessimisitcLock(t *testing.T) { func TestCheckTxnStatus(t *testing.T) { var err error - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) var resTTL, resCommitTs uint64 var action kvrpcpb.Action @@ -715,8 +710,7 @@ func TestCheckTxnStatus(t *testing.T) { } func TestCheckSecondaryLocksStatus(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) pk := []byte("pk") secondary := []byte("secondary") @@ -782,8 +776,7 @@ func TestCheckSecondaryLocksStatus(t *testing.T) { func TestMvccGet(t *testing.T) { var err error - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) lockTTL := uint64(100) pk := []byte("t1_r1") @@ -895,8 +888,7 @@ func TestMvccGet(t *testing.T) { } func TestPrimaryKeyOpLock(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) pk := func() []byte { return []byte("tpk") } val2 := []byte("val2") @@ -946,8 +938,7 @@ func TestPrimaryKeyOpLock(t *testing.T) { } func TestMvccTxnRead(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) // nothing at start k1 := []byte("tk1") @@ -1017,8 +1008,7 @@ func TestMvccTxnRead(t *testing.T) { } func TestTxnPrewrite(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) // nothing at start k := []byte("tk") @@ -1052,8 +1042,7 @@ func TestTxnPrewrite(t *testing.T) { } func TestPrewriteInsert(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) // nothing at start k1 := []byte("tk1") @@ -1088,8 +1077,7 @@ func TestPrewriteInsert(t *testing.T) { } func TestRollbackKey(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) k := []byte("tk") v := []byte("v") @@ -1113,8 +1101,7 @@ func TestRollbackKey(t *testing.T) { } func TestCleanup(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) k := []byte("tk") v := []byte("v") @@ -1135,8 +1122,7 @@ func TestCleanup(t *testing.T) { } func TestCommit(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) k := []byte("tk") v := []byte("v") @@ -1186,8 +1172,7 @@ func TestCommit(t *testing.T) { } func TestMinCommitTs(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) k := []byte("tk") v := []byte("v") @@ -1207,8 +1192,7 @@ func TestMinCommitTs(t *testing.T) { } func TestPessimisticLock(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) k := []byte("tk") v := []byte("v") @@ -1372,8 +1356,7 @@ func TestPessimisticLock(t *testing.T) { } func TestResolveCommit(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) pk := []byte("tpk") v := []byte("v") @@ -1437,8 +1420,7 @@ func MustLoad(startTS, commitTS uint64, store *TestStore, pairs ...string) { } func TestBatchGet(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) MustLoad(100, 101, store, "ta:1", "tb:2", "tc:3") MustPrewritePut([]byte("ta"), []byte("ta"), []byte("0"), 103, store) keys := [][]byte{[]byte("ta"), []byte("tb"), []byte("tc")} @@ -1450,8 +1432,7 @@ func TestBatchGet(t *testing.T) { } func TestCommitPessimisticLock(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) k := []byte("ta") MustAcquirePessimisticLock(k, k, 10, 10, store) MustCommitErr(k, 20, 30, store) @@ -1460,8 +1441,7 @@ func TestCommitPessimisticLock(t *testing.T) { } func TestOpCheckNotExist(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) k := []byte("ta") v := []byte("v") @@ -1477,8 +1457,7 @@ func TestOpCheckNotExist(t *testing.T) { } func TestPessimisticLockForce(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) k := []byte("ta") v := []byte("v") @@ -1494,8 +1473,7 @@ func TestPessimisticLockForce(t *testing.T) { } func TestScanSampleStep(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) for i := 0; i < 1000; i++ { k := genScanSampleStepKey(i) MustPrewritePut(k, k, k, 1, store) @@ -1527,8 +1505,7 @@ func genScanSampleStepKey(i int) []byte { } func TestAsyncCommitPrewrite(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) pk := []byte("tpk") pkVal := []byte("tpkVal") @@ -1556,8 +1533,7 @@ func TestAsyncCommitPrewrite(t *testing.T) { } func TestAccessCommittedLocks(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) k0 := []byte("t0") v0 := []byte("v0") @@ -1652,8 +1628,7 @@ func TestAccessCommittedLocks(t *testing.T) { } func TestTiKVRCRead(t *testing.T) { - store, clean := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) - defer clean() + store := NewTestStore("basic_optimistic_db", "basic_optimistic_log", t) k1 := []byte("t1") k2, v2 := []byte("t2"), []byte("v2") @@ -1704,8 +1679,7 @@ func TestTiKVRCRead(t *testing.T) { } func TestAssertion(t *testing.T) { - store, clean := NewTestStore("TestAssertion", "TestAssertion", t) - defer clean() + store := NewTestStore("TestAssertion", "TestAssertion", t) // Prepare MustPrewriteOptimistic([]byte("k1"), []byte("k1"), []byte("v1"), 1, 100, 0, store) @@ -1812,8 +1786,7 @@ func getConflictErr(res []*kvrpcpb.KvPair) *kvrpcpb.WriteConflict { } func TestRcReadCheckTS(t *testing.T) { - store, clean := NewTestStore("TestRcReadCheckTS", "TestRcReadCheckTS", t) - defer clean() + store := NewTestStore("TestRcReadCheckTS", "TestRcReadCheckTS", t) // Prepare. k1 := []byte("tk1") diff --git a/structure/structure_test.go b/structure/structure_test.go index 63300f004c533..3df3c9d0253d8 100644 --- a/structure/structure_test.go +++ b/structure/structure_test.go @@ -27,8 +27,7 @@ import ( ) func TestString(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) txn, err := store.Begin() require.NoError(t, err) @@ -78,8 +77,7 @@ func TestString(t *testing.T) { } func TestList(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) txn, err := store.Begin() require.NoError(t, err) @@ -189,8 +187,7 @@ func TestList(t *testing.T) { } func TestHash(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) txn, err := store.Begin() require.NoError(t, err) diff --git a/table/tables/cache_test.go b/table/tables/cache_test.go index 9c026040d255e..7679b88dd9fdf 100644 --- a/table/tables/cache_test.go +++ b/table/tables/cache_test.go @@ -37,8 +37,7 @@ func lastReadFromCache(tk *testkit.TestKit) bool { } func TestCacheTableBasicScan(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists tmp1") @@ -132,8 +131,7 @@ func TestCacheTableBasicScan(t *testing.T) { } func TestCacheCondition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t2") @@ -189,8 +187,7 @@ func TestCacheCondition(t *testing.T) { } func TestCacheTableBasicReadAndWrite(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk1 := testkit.NewTestKit(t, store) @@ -240,8 +237,7 @@ func TestCacheTableBasicReadAndWrite(t *testing.T) { } func TestCacheTableComplexRead(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) tk1.MustExec("use test") @@ -283,8 +279,7 @@ func TestBeginSleepABA(t *testing.T) { // cache1 and cache2 may be not the same anymore // A transaction should not only check the cache exists, but also check the cache unchanged. - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) tk1.MustExec("use test") @@ -337,8 +332,7 @@ func TestBeginSleepABA(t *testing.T) { } func TestCacheTablePointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table cache_point (id int primary key auto_increment, u int unique, v int)") @@ -373,8 +367,7 @@ func TestCacheTablePointGet(t *testing.T) { } func TestCacheTableBatchPointGet(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("create table bp_cache_tmp1 (id int primary key auto_increment, u int unique, v int)") @@ -416,8 +409,7 @@ func TestCacheTableBatchPointGet(t *testing.T) { func TestRenewLease(t *testing.T) { // Test RenewLeaseForRead - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") se := tk.Session() @@ -456,8 +448,7 @@ func TestRenewLease(t *testing.T) { } func TestCacheTableWriteOperatorWaitLockLease(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set global tidb_enable_stmt_summary = 1") @@ -487,8 +478,7 @@ func TestCacheTableWriteOperatorWaitLockLease(t *testing.T) { } func TestTableCacheLeaseVariable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -533,8 +523,7 @@ func TestTableCacheLeaseVariable(t *testing.T) { } func TestMetrics(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -592,8 +581,7 @@ func TestMetrics(t *testing.T) { } func TestRenewLeaseABAFailPoint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tables.TestMockRenewLeaseABA2 = make(chan struct{}) diff --git a/table/tables/index_test.go b/table/tables/index_test.go index a969b6c6a485f..efcae3b337c3c 100644 --- a/table/tables/index_test.go +++ b/table/tables/index_test.go @@ -57,8 +57,7 @@ func TestMultiColumnCommonHandle(t *testing.T) { require.NotNil(t, a) require.NotNil(t, b) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) txn, err := store.Begin() require.NoError(t, err) mockCtx := mock.NewContext() @@ -119,8 +118,7 @@ func TestSingleColumnCommonHandle(t *testing.T) { idxNonUnique = idx } } - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) txn, err := store.Begin() require.NoError(t, err) @@ -173,8 +171,7 @@ func buildTableInfo(t *testing.T, sql string) *model.TableInfo { } func TestIssue29520(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_enable_mutation_checker=1") tk.MustExec("use test") @@ -184,8 +181,7 @@ func TestIssue29520(t *testing.T) { } func TestAssertionWithLazyCheck(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_txn_assertion_level = 'STRICT'") diff --git a/table/tables/partition_test.go b/table/tables/partition_test.go index 9d88b82b712c0..60c32cb41357f 100644 --- a/table/tables/partition_test.go +++ b/table/tables/partition_test.go @@ -33,8 +33,7 @@ import ( ) func TestPartitionBasic(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.Session().GetSessionVars().BinlogClient = binloginfo.MockPumpsClient(mockPumpClient{}) @@ -72,8 +71,7 @@ PARTITION BY RANGE ( id ) ( PARTITION p3 VALUES LESS THAN (21) )` ctx := context.Background() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) _, err := tk.Session().Execute(ctx, "use test") @@ -166,8 +164,7 @@ PARTITION BY RANGE ( id ) ( } func TestHashPartitionAddRecord(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) _, err := tk.Session().Execute(context.Background(), "use test") require.NoError(t, err) @@ -242,8 +239,7 @@ PARTITION BY RANGE ( id ) ( PARTITION p2 VALUES LESS THAN (16), PARTITION p3 VALUES LESS THAN (21) )` - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) _, err := tk.Session().Execute(context.Background(), "Drop table if exists test.t1;") require.NoError(t, err) @@ -262,8 +258,7 @@ PARTITION BY RANGE ( id ) ( } func TestGeneratePartitionExpr(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) _, err := tk.Session().Execute(context.Background(), "use test") require.NoError(t, err) @@ -295,8 +290,7 @@ func TestGeneratePartitionExpr(t *testing.T) { } func TestLocateRangeColumnPartitionErr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`CREATE TABLE t_month_data_monitor ( @@ -313,8 +307,7 @@ func TestLocateRangeColumnPartitionErr(t *testing.T) { } func TestLocateRangePartitionErr(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`CREATE TABLE t_range_locate ( @@ -331,8 +324,7 @@ func TestLocateRangePartitionErr(t *testing.T) { } func TestLocatePartitionWithExtraHandle(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`CREATE TABLE t_extra ( @@ -350,8 +342,7 @@ func TestLocatePartitionWithExtraHandle(t *testing.T) { } func TestMultiTableUpdate(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`CREATE TABLE t_a ( @@ -373,8 +364,7 @@ func TestMultiTableUpdate(t *testing.T) { } func TestLocatePartitionSingleColumn(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`CREATE TABLE t_hash_locate ( @@ -403,8 +393,7 @@ func TestLocatePartitionSingleColumn(t *testing.T) { } func TestLocatePartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set @@session.tidb_enable_list_partition = ON;") @@ -444,8 +433,7 @@ func TestLocatePartition(t *testing.T) { } func TestTimeZoneChange(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") createTable := `CREATE TABLE timezone_test ( @@ -503,8 +491,7 @@ func TestTimeZoneChange(t *testing.T) { } func TestCreatePartitionTableNotSupport(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") _, err := tk.Exec(`create table t7 (a int) partition by range (mod((select * from t), 5)) (partition p1 values less than (1));`) @@ -518,8 +505,7 @@ func TestCreatePartitionTableNotSupport(t *testing.T) { } func TestRangePartitionUnderNoUnsigned(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t2;") @@ -543,8 +529,7 @@ func TestRangePartitionUnderNoUnsigned(t *testing.T) { } func TestIntUint(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec(`create table t_uint (id bigint unsigned) partition by range (id) ( @@ -579,8 +564,7 @@ partition p4 values less than (9223372036854775806))`) } func TestHashPartitionAndConditionConflict(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists t1, t2, t3;") @@ -604,8 +588,7 @@ func TestHashPartitionAndConditionConflict(t *testing.T) { } func TestHashPartitionInsertValue(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop tables if exists t4") @@ -622,8 +605,7 @@ func TestHashPartitionInsertValue(t *testing.T) { } func TestIssue21574(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop tables if exists t_21574") @@ -635,8 +617,7 @@ func TestIssue21574(t *testing.T) { } func TestIssue24746(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop tables if exists t_24746") @@ -653,8 +634,7 @@ func TestIssue24746(t *testing.T) { } func TestIssue31629(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_enable_list_partition = 1") tk.MustExec("create database Issue31629") @@ -715,8 +695,7 @@ func TestIssue31629(t *testing.T) { } func TestIssue31721(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("set tidb_enable_list_partition=on;") @@ -730,8 +709,7 @@ func TestIssue31721(t *testing.T) { } func TestPruneModeWarningInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@tidb_partition_prune_mode = 'static'") diff --git a/table/tables/state_remote_test.go b/table/tables/state_remote_test.go index 140c2fc1e3da9..de9fa25c93639 100644 --- a/table/tables/state_remote_test.go +++ b/table/tables/state_remote_test.go @@ -34,8 +34,7 @@ func initRow(ctx context.Context, exec session.Session, tid int) error { } func TestStateRemote(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") se := tk.Session() diff --git a/table/tables/tables_test.go b/table/tables/tables_test.go index 2711d22f8407c..5b5711d182434 100644 --- a/table/tables/tables_test.go +++ b/table/tables/tables_test.go @@ -85,8 +85,7 @@ func (m mockPumpClient) PullBinlogs(ctx context.Context, in *binlog.PullBinlogRe } func TestBasic(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) _, err := tk.Session().Execute(context.Background(), "CREATE TABLE test.t (a int primary key auto_increment, b varchar(255) unique)") require.NoError(t, err) @@ -186,8 +185,7 @@ func countEntriesWithPrefix(ctx sessionctx.Context, prefix []byte) (int, error) func TestTypes(t *testing.T) { ctx := context.Background() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) _, err := tk.Session().Execute(context.Background(), "CREATE TABLE test.t (c1 tinyint, c2 smallint, c3 int, c4 bigint, c5 text, c6 blob, c7 varchar(64), c8 time, c9 timestamp null default CURRENT_TIMESTAMP, c10 decimal(10,1))") require.NoError(t, err) @@ -239,8 +237,7 @@ func TestTypes(t *testing.T) { func TestUniqueIndexMultipleNullEntries(t *testing.T) { ctx := context.Background() - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) _, err := tk.Session().Execute(ctx, "drop table if exists test.t") require.NoError(t, err) @@ -320,8 +317,7 @@ func TestRowKeyCodec(t *testing.T) { } func TestUnsignedPK(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) _, err := tk.Session().Execute(context.Background(), "DROP TABLE IF EXISTS test.tPK") require.NoError(t, err) @@ -344,8 +340,7 @@ func TestUnsignedPK(t *testing.T) { } func TestIterRecords(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) _, err := tk.Session().Execute(context.Background(), "DROP TABLE IF EXISTS test.tIter") require.NoError(t, err) @@ -370,8 +365,7 @@ func TestIterRecords(t *testing.T) { } func TestTableFromMeta(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("CREATE TABLE meta (a int primary key auto_increment, b varchar(255) unique)") @@ -423,8 +417,7 @@ func TestTableFromMeta(t *testing.T) { } func TestShardRowIDBitsStep(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") tk.MustExec("drop table if exists shard_t;") @@ -442,8 +435,7 @@ func TestShardRowIDBitsStep(t *testing.T) { } func TestHiddenColumn(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) tk.MustExec("DROP DATABASE IF EXISTS test_hidden;") tk.MustExec("CREATE DATABASE test_hidden;") @@ -609,8 +601,7 @@ func TestHiddenColumn(t *testing.T) { } func TestAddRecordWithCtx(t *testing.T) { - store, dom, clean := testkit.CreateMockStoreAndDomain(t) - defer clean() + store, dom := testkit.CreateMockStoreAndDomain(t) tk := testkit.NewTestKit(t, store) _, err := tk.Session().Execute(context.Background(), "DROP TABLE IF EXISTS test.tRecord") require.NoError(t, err) @@ -655,8 +646,7 @@ func TestAddRecordWithCtx(t *testing.T) { } func TestConstraintCheckForUniqueIndex(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("set @@autocommit = 1") @@ -713,8 +703,7 @@ func TestConstraintCheckForUniqueIndex(t *testing.T) { } func TestViewColumns(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) require.True(t, tk.Session().Auth(&auth.UserIdentity{Username: "root", Hostname: "%"}, nil, nil)) tk.MustExec("use test") @@ -744,8 +733,7 @@ func TestViewColumns(t *testing.T) { } func TestConstraintCheckForOptimisticUntouched(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -769,8 +757,7 @@ func TestConstraintCheckForOptimisticUntouched(t *testing.T) { } func TestTxnAssertion(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(store) se.SetConnectionID(1) diff --git a/table/temptable/ddl_test.go b/table/temptable/ddl_test.go index e08343c1177a6..58eacde0ebe2c 100644 --- a/table/temptable/ddl_test.go +++ b/table/temptable/ddl_test.go @@ -30,23 +30,22 @@ import ( "github.com/stretchr/testify/require" ) -func createTestSuite(t *testing.T) (sessionctx.Context, *temporaryTableDDL, func()) { +func createTestSuite(t *testing.T) (sessionctx.Context, *temporaryTableDDL) { store, err := mockstore.NewMockStore() require.NoError(t, err) sctx := mock.NewContext() sctx.Store = store ddl := GetTemporaryTableDDL(sctx).(*temporaryTableDDL) - clean := func() { + t.Cleanup(func() { require.NoError(t, store.Close()) - } + }) - return sctx, ddl, clean + return sctx, ddl } func TestAddLocalTemporaryTable(t *testing.T) { - sctx, ddl, clean := createTestSuite(t) - defer clean() + sctx, ddl := createTestSuite(t) sessVars := sctx.GetSessionVars() @@ -108,8 +107,7 @@ func TestAddLocalTemporaryTable(t *testing.T) { } func TestRemoveLocalTemporaryTable(t *testing.T) { - sctx, ddl, clean := createTestSuite(t) - defer clean() + sctx, ddl := createTestSuite(t) sessVars := sctx.GetSessionVars() db1 := newMockSchema("db1") @@ -155,8 +153,7 @@ func TestRemoveLocalTemporaryTable(t *testing.T) { } func TestTruncateLocalTemporaryTable(t *testing.T) { - sctx, ddl, clean := createTestSuite(t) - defer clean() + sctx, ddl := createTestSuite(t) sessVars := sctx.GetSessionVars() db1 := newMockSchema("db1") diff --git a/telemetry/data_feature_usage_test.go b/telemetry/data_feature_usage_test.go index 7924d3bc9eb38..46a3265976e35 100644 --- a/telemetry/data_feature_usage_test.go +++ b/telemetry/data_feature_usage_test.go @@ -36,8 +36,7 @@ import ( ) func TestTxnUsageInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) t.Run("Used", func(t *testing.T) { tk := testkit.NewTestKit(t, store) @@ -99,8 +98,7 @@ func TestTxnUsageInfo(t *testing.T) { } func TestTemporaryTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -116,8 +114,7 @@ func TestTemporaryTable(t *testing.T) { } func TestCachedTable(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -138,8 +135,7 @@ func TestCachedTable(t *testing.T) { } func TestMultiSchemaChange(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -172,8 +168,7 @@ func TestMultiSchemaChange(t *testing.T) { } func TestTablePartition(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -217,8 +212,7 @@ func TestTablePartition(t *testing.T) { } func TestPlacementPolicies(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -260,8 +254,7 @@ func TestPlacementPolicies(t *testing.T) { } func TestAutoCapture(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -280,8 +273,7 @@ func TestAutoCapture(t *testing.T) { } func TestClusterIndexUsageInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -296,8 +288,7 @@ func TestClusterIndexUsageInfo(t *testing.T) { } func TestNonTransactionalUsage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -314,8 +305,7 @@ func TestNonTransactionalUsage(t *testing.T) { } func TestGlobalKillUsageInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) usage, err := telemetry.GetFeatureUsage(tk.Session()) @@ -426,8 +416,7 @@ func TestTiFlashModeStatistics(t *testing.T) { } func TestPagingUsageInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) usage, err := telemetry.GetFeatureUsage(tk.Session()) @@ -441,8 +430,7 @@ func TestPagingUsageInfo(t *testing.T) { } func TestCostModelVer2UsageInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) usage, err := telemetry.GetFeatureUsage(tk.Session()) @@ -456,8 +444,7 @@ func TestCostModelVer2UsageInfo(t *testing.T) { } func TestTxnSavepointUsageInfo(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("savepoint sp1") diff --git a/telemetry/data_window_test.go b/telemetry/data_window_test.go index 482555b7befed..6aba753eb1616 100644 --- a/telemetry/data_window_test.go +++ b/telemetry/data_window_test.go @@ -23,8 +23,7 @@ import ( ) func TestBuiltinFunctionsUsage(t *testing.T) { - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/telemetry/telemetry_test.go b/telemetry/telemetry_test.go index eafccce735efd..c9d87d0d98c0d 100644 --- a/telemetry/telemetry_test.go +++ b/telemetry/telemetry_test.go @@ -58,8 +58,7 @@ func TestPreview(t *testing.T) { etcdCluster := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1}) defer etcdCluster.Terminate(t) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) defer se.Close() @@ -112,8 +111,7 @@ func TestReport(t *testing.T) { etcdCluster := integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1}) defer etcdCluster.Terminate(t) - store, clean := testkit.CreateMockStore(t) - defer clean() + store := testkit.CreateMockStore(t) se, err := session.CreateSession4Test(store) require.NoError(t, err) defer se.Close() diff --git a/testkit/mockstore.go b/testkit/mockstore.go index 98acf94b98c58..8531d7303b9c4 100644 --- a/testkit/mockstore.go +++ b/testkit/mockstore.go @@ -27,45 +27,42 @@ import ( "github.com/pingcap/tidb/store/driver" "github.com/pingcap/tidb/store/mockstore" "github.com/stretchr/testify/require" - "github.com/tikv/client-go/v2/oracle" - "github.com/tikv/client-go/v2/tikv" ) // WithTiKV flag is only used for debugging locally with real tikv cluster. var WithTiKV = flag.String("with-tikv", "", "address of tikv cluster, if set, running test with real tikv cluster") // CreateMockStore return a new mock kv.Storage. -func CreateMockStore(t testing.TB, opts ...mockstore.MockTiKVStoreOption) (store kv.Storage, clean func()) { +func CreateMockStore(t testing.TB, opts ...mockstore.MockTiKVStoreOption) kv.Storage { if *WithTiKV != "" { var d driver.TiKVDriver var err error - store, err = d.Open("tikv://" + *WithTiKV) + store, err := d.Open("tikv://" + *WithTiKV) require.NoError(t, err) var dom *domain.Domain dom, err = session.BootstrapSession(store) - clean = func() { + t.Cleanup(func() { dom.Close() err := store.Close() require.NoError(t, err) - } + }) require.NoError(t, err) - return + return store } - store, _, clean = CreateMockStoreAndDomain(t, opts...) - return + store, _ := CreateMockStoreAndDomain(t, opts...) + return store } // CreateMockStoreAndDomain return a new mock kv.Storage and *domain.Domain. -func CreateMockStoreAndDomain(t testing.TB, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, *domain.Domain, func()) { +func CreateMockStoreAndDomain(t testing.TB, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, *domain.Domain) { store, err := mockstore.NewMockStore(opts...) require.NoError(t, err) - dom, clean := bootstrap(t, store, 0) - return store, dom, clean + return store, bootstrap(t, store, 0) } -func bootstrap(t testing.TB, store kv.Storage, lease time.Duration) (*domain.Domain, func()) { +func bootstrap(t testing.TB, store kv.Storage, lease time.Duration) *domain.Domain { session.SetSchemaLease(lease) session.DisableStats4Test() dom, err := session.BootstrapSession(store) @@ -73,34 +70,23 @@ func bootstrap(t testing.TB, store kv.Storage, lease time.Duration) (*domain.Dom dom.SetStatsUpdating(true) - clean := func() { + t.Cleanup(func() { dom.Close() err := store.Close() require.NoError(t, err) - } - return dom, clean + }) + return dom } // CreateMockStoreWithSchemaLease return a new mock kv.Storage. -func CreateMockStoreWithSchemaLease(t testing.TB, lease time.Duration, opts ...mockstore.MockTiKVStoreOption) (store kv.Storage, clean func()) { - store, _, clean = CreateMockStoreAndDomainWithSchemaLease(t, lease, opts...) - return +func CreateMockStoreWithSchemaLease(t testing.TB, lease time.Duration, opts ...mockstore.MockTiKVStoreOption) kv.Storage { + store, _ := CreateMockStoreAndDomainWithSchemaLease(t, lease, opts...) + return store } // CreateMockStoreAndDomainWithSchemaLease return a new mock kv.Storage and *domain.Domain. -func CreateMockStoreAndDomainWithSchemaLease(t testing.TB, lease time.Duration, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, *domain.Domain, func()) { - store, err := mockstore.NewMockStore(opts...) - require.NoError(t, err) - dom, clean := bootstrap(t, store, lease) - return store, dom, clean -} - -// CreateMockStoreWithOracle returns a new mock kv.Storage and *domain.Domain, providing the oracle for the store. -func CreateMockStoreWithOracle(t testing.TB, oracle oracle.Oracle, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, *domain.Domain, func()) { +func CreateMockStoreAndDomainWithSchemaLease(t testing.TB, lease time.Duration, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, *domain.Domain) { store, err := mockstore.NewMockStore(opts...) require.NoError(t, err) - store.GetOracle().Close() - store.(tikv.Storage).SetOracle(oracle) - dom, clean := bootstrap(t, store, 0) - return store, dom, clean + return store, bootstrap(t, store, lease) } diff --git a/tests/globalkilltest/global_kill_test.go b/tests/globalkilltest/global_kill_test.go index 0e4caf303074d..55d35db89fec2 100644 --- a/tests/globalkilltest/global_kill_test.go +++ b/tests/globalkilltest/global_kill_test.go @@ -72,8 +72,8 @@ type GlobalKillSuite struct { tikvProc *exec.Cmd } -func createGloabalKillSuite(t *testing.T) (s *GlobalKillSuite, clean func()) { - s = new(GlobalKillSuite) +func createGloabalKillSuite(t *testing.T) *GlobalKillSuite { + s := new(GlobalKillSuite) err := logutil.InitLogger(&logutil.LogConfig{Config: log.Config{Level: *logLevel}}) require.NoError(t, err) @@ -81,14 +81,14 @@ func createGloabalKillSuite(t *testing.T) (s *GlobalKillSuite, clean func()) { err = s.startCluster() require.NoError(t, err) s.pdCli, s.pdErr = s.connectPD() - clean = func() { + t.Cleanup(func() { if s.pdCli != nil { require.NoError(t, err) } require.NoError(t, s.cleanCluster()) - } + }) - return + return s } func (s *GlobalKillSuite) connectPD() (cli *clientv3.Client, err error) { @@ -429,8 +429,7 @@ func (s *GlobalKillSuite) killByKillStatement(t *testing.T, db1 *sql.DB, db2 *sq // [Test Scenario 1] A TiDB without PD, killed by Ctrl+C, and killed by KILL. func TestWithoutPD(t *testing.T) { - s, clean := createGloabalKillSuite(t) - defer clean() + s := createGloabalKillSuite(t) var err error port := *tidbStartPort tidb, err := s.startTiDBWithoutPD(port, *tidbStatusPort) @@ -456,8 +455,7 @@ func TestWithoutPD(t *testing.T) { // [Test Scenario 2] One TiDB with PD, killed by Ctrl+C, and killed by KILL. func TestOneTiDB(t *testing.T) { - s, clean := createGloabalKillSuite(t) - defer clean() + s := createGloabalKillSuite(t) port := *tidbStartPort + 1 tidb, err := s.startTiDBWithPD(port, *tidbStatusPort+1, *pdClientPath) require.NoError(t, err) @@ -485,8 +483,7 @@ func TestOneTiDB(t *testing.T) { // [Test Scenario 3] Multiple TiDB nodes, killed {local,remote} by {Ctrl-C,KILL}. func TestMultipleTiDB(t *testing.T) { - s, clean := createGloabalKillSuite(t) - defer clean() + s := createGloabalKillSuite(t) require.NoErrorf(t, s.pdErr, msgErrConnectPD, s.pdErr) // tidb1 & conn1a,conn1b @@ -532,8 +529,7 @@ func TestMultipleTiDB(t *testing.T) { } func TestLostConnection(t *testing.T) { - s, clean := createGloabalKillSuite(t) - defer clean() + s := createGloabalKillSuite(t) require.NoErrorf(t, s.pdErr, msgErrConnectPD, s.pdErr) // tidb1 diff --git a/tests/readonlytest/readonly_test.go b/tests/readonlytest/readonly_test.go index dee5ff29196ea..7b803cb45c2bf 100644 --- a/tests/readonlytest/readonly_test.go +++ b/tests/readonlytest/readonly_test.go @@ -69,8 +69,8 @@ func setVariable(_ *testing.T, db *sql.DB, variable string, status int) error { return err } -func createReadOnlySuite(t *testing.T) (s *ReadOnlySuite, clean func()) { - s = new(ReadOnlySuite) +func createReadOnlySuite(t *testing.T) *ReadOnlySuite { + s := new(ReadOnlySuite) var err error s.db, err = sql.Open("mysql", fmt.Sprintf("root:%s@(%s:%d)/test", *tidbRootPassword, "127.0.0.1", *tidbAPort)) require.NoError(t, err) @@ -96,17 +96,16 @@ func createReadOnlySuite(t *testing.T) (s *ReadOnlySuite, clean func()) { require.NoError(t, err) s.rdb, err = sql.Open("mysql", fmt.Sprintf("r1:password@(%s:%d)/test", "127.0.0.1", *tidbBPort)) require.NoError(t, err) - clean = func() { + t.Cleanup(func() { require.NoError(t, s.db.Close()) require.NoError(t, s.rdb.Close()) require.NoError(t, s.udb.Close()) - } - return + }) + return s } func TestRestriction(t *testing.T) { - s, clean := createReadOnlySuite(t) - defer clean() + s := createReadOnlySuite(t) var err error _, err = s.db.Exec("drop table if exists t") @@ -176,8 +175,7 @@ func TestRestriction(t *testing.T) { } func TestRestrictionWithConnectionPool(t *testing.T) { - s, clean := createReadOnlySuite(t) - defer clean() + s := createReadOnlySuite(t) var err error _, err = s.db.Exec("drop table if exists t") require.NoError(t, err) @@ -218,8 +216,7 @@ func TestRestrictionWithConnectionPool(t *testing.T) { } func TestReplicationWriter(t *testing.T) { - s, clean := createReadOnlySuite(t) - defer clean() + s := createReadOnlySuite(t) _, err := s.db.Exec("set global tidb_restricted_read_only=0") require.NoError(t, err) _, err = s.db.Exec("drop table if exists t") diff --git a/tests/realtikvtest/brietest/backup_restore_test.go b/tests/realtikvtest/brietest/backup_restore_test.go index 820ff7ce349d2..fe77aede45f21 100644 --- a/tests/realtikvtest/brietest/backup_restore_test.go +++ b/tests/realtikvtest/brietest/backup_restore_test.go @@ -30,8 +30,7 @@ func TestBackupAndRestore(t *testing.T) { t.Skip("only run BR SQL integration test with tikv store") } - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) cfg := config.GetGlobalConfig() cfg.Store = "tikv" diff --git a/tests/realtikvtest/brietest/binlog_test.go b/tests/realtikvtest/brietest/binlog_test.go index b6febb6e51a20..5beabf6f4a655 100644 --- a/tests/realtikvtest/brietest/binlog_test.go +++ b/tests/realtikvtest/brietest/binlog_test.go @@ -51,8 +51,7 @@ func (m mockPumpPullBinlogsClient) Recv() (*binlog.PullBinlogResp, error) { func TestForCoverage(t *testing.T) { // Just for test coverage. - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/tests/realtikvtest/pessimistictest/pessimistic_test.go b/tests/realtikvtest/pessimistictest/pessimistic_test.go index 1759fff3e3bd4..89c818dca5d5f 100644 --- a/tests/realtikvtest/pessimistictest/pessimistic_test.go +++ b/tests/realtikvtest/pessimistictest/pessimistic_test.go @@ -73,8 +73,7 @@ func setLockTTL(v uint64) lockTTL { return lockTTL(atomic.SwapUint64(&transactio func (v lockTTL) restore() { atomic.StoreUint64(&transaction.ManagedLockTTL, uint64(v)) } func TestPessimisticTxn(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -125,8 +124,7 @@ func TestPessimisticTxn(t *testing.T) { } func TestTxnMode(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -189,8 +187,7 @@ func TestDeadlock(t *testing.T) { deadlockhistory.GlobalDeadlockHistory.Clear() deadlockhistory.GlobalDeadlockHistory.Resize(10) - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -258,11 +255,10 @@ func TestSingleStatementRollback(t *testing.T) { } var cluster testutils.Cluster - store, clean := realtikvtest.CreateMockStoreAndSetup(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { + store := realtikvtest.CreateMockStoreAndSetup(t, mockstore.WithClusterInspector(func(c testutils.Cluster) { mockstore.BootstrapWithSingleStore(c) cluster = c })) - defer clean() tk1 := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -310,8 +306,7 @@ func TestSingleStatementRollback(t *testing.T) { } func TestFirstStatementFail(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -326,8 +321,7 @@ func TestFirstStatementFail(t *testing.T) { } func TestKeyExistsCheck(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -352,8 +346,7 @@ func TestKeyExistsCheck(t *testing.T) { } func TestInsertOnDup(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -371,8 +364,7 @@ func TestInsertOnDup(t *testing.T) { } func TestPointGetOverflow(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -383,8 +375,7 @@ func TestPointGetOverflow(t *testing.T) { } func TestPointGetKeyLock(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -433,8 +424,7 @@ func TestPointGetKeyLock(t *testing.T) { } func TestBankTransfer(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -468,8 +458,7 @@ func TestBankTransfer(t *testing.T) { } func TestLockUnchangedRowKey(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -504,8 +493,7 @@ func TestLockUnchangedRowKey(t *testing.T) { } func TestLockUnchangedUniqueKey(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -536,8 +524,7 @@ func TestLockUnchangedUniqueKey(t *testing.T) { } func TestOptimisticConflicts(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -587,8 +574,7 @@ func TestOptimisticConflicts(t *testing.T) { } func TestSelectForUpdateNoWait(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -679,8 +665,7 @@ func TestSelectForUpdateNoWait(t *testing.T) { } func TestAsyncRollBackNoWait(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -743,8 +728,7 @@ func TestAsyncRollBackNoWait(t *testing.T) { func TestWaitLockKill(t *testing.T) { // Test kill command works on waiting pessimistic lock. - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -778,8 +762,7 @@ func TestWaitLockKill(t *testing.T) { func TestKillStopTTLManager(t *testing.T) { // Test killing an idle pessimistic session stop its ttlManager. defer setLockTTL(300).restore() - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -805,8 +788,7 @@ func TestKillStopTTLManager(t *testing.T) { } func TestConcurrentInsert(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk1 := testkit.NewTestKit(t, store) @@ -851,8 +833,7 @@ func TestConcurrentInsert(t *testing.T) { } func TestInnodbLockWaitTimeout(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -971,8 +952,7 @@ func TestInnodbLockWaitTimeout(t *testing.T) { } func TestPushConditionCheckForPessimisticTxn(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -994,8 +974,7 @@ func TestPushConditionCheckForPessimisticTxn(t *testing.T) { func TestInnodbLockWaitTimeoutWaitStart(t *testing.T) { // prepare work - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1043,8 +1022,7 @@ func TestInnodbLockWaitTimeoutWaitStart(t *testing.T) { } func TestBatchPointGetWriteConflict(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1062,8 +1040,7 @@ func TestBatchPointGetWriteConflict(t *testing.T) { } func TestPessimisticSerializable(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1204,8 +1181,7 @@ func TestPessimisticSerializable(t *testing.T) { } func TestPessimisticReadCommitted(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1319,8 +1295,7 @@ func TestPessimisticReadCommitted(t *testing.T) { } func TestPessimisticLockNonExistsKey(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1366,8 +1341,7 @@ func TestPessimisticLockNonExistsKey(t *testing.T) { func TestPessimisticCommitReadLock(t *testing.T) { // tk1 lock wait timeout is 2s - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1416,8 +1390,7 @@ func TestPessimisticCommitReadLock(t *testing.T) { } func TestPessimisticLockReadValue(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1443,8 +1416,7 @@ func TestPessimisticLockReadValue(t *testing.T) { } func TestRCWaitTSOTwice(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1458,8 +1430,7 @@ func TestRCWaitTSOTwice(t *testing.T) { } func TestNonAutoCommitWithPessimisticMode(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1484,8 +1455,7 @@ func TestNonAutoCommitWithPessimisticMode(t *testing.T) { } func TestBatchPointGetLockIndex(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1513,8 +1483,7 @@ func TestBatchPointGetLockIndex(t *testing.T) { } func TestLockGotKeysInRC(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1542,8 +1511,7 @@ func TestLockGotKeysInRC(t *testing.T) { } func TestBatchPointGetAlreadyLocked(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1557,8 +1525,7 @@ func TestBatchPointGetAlreadyLocked(t *testing.T) { } func TestRollbackWakeupBlockedTxn(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1598,8 +1565,7 @@ func TestRollbackWakeupBlockedTxn(t *testing.T) { } func TestRCSubQuery(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1622,8 +1588,7 @@ func TestRCSubQuery(t *testing.T) { } func TestRCIndexMerge(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1658,8 +1623,7 @@ func TestRCIndexMerge(t *testing.T) { } func TestGenerateColPointGet(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1709,8 +1673,7 @@ func TestGenerateColPointGet(t *testing.T) { } func TestTxnWithExpiredPessimisticLocks(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1740,8 +1703,7 @@ func TestTxnWithExpiredPessimisticLocks(t *testing.T) { func TestKillWaitLockTxn(t *testing.T) { // Test kill command works on waiting pessimistic lock. defer setLockTTL(300).restore() - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1782,8 +1744,7 @@ func TestKillWaitLockTxn(t *testing.T) { } func TestDupLockInconsistency(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1798,8 +1759,7 @@ func TestDupLockInconsistency(t *testing.T) { } func TestUseLockCacheInRCMode(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1872,8 +1832,7 @@ func TestUseLockCacheInRCMode(t *testing.T) { } func TestPointGetWithDeleteInMem(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1903,8 +1862,7 @@ func TestPointGetWithDeleteInMem(t *testing.T) { } func TestPessimisticTxnWithDDLAddDropColumn(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -1935,8 +1893,7 @@ func TestPessimisticTxnWithDDLAddDropColumn(t *testing.T) { } func TestPessimisticTxnWithDDLChangeColumn(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2002,8 +1959,7 @@ func TestPessimisticTxnWithDDLChangeColumn(t *testing.T) { } func TestPessimisticUnionForUpdate(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2019,8 +1975,7 @@ func TestPessimisticUnionForUpdate(t *testing.T) { } func TestInsertDupKeyAfterLock(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -2112,8 +2067,7 @@ func TestInsertDupKeyAfterLock(t *testing.T) { } func TestInsertDupKeyAfterLockBatchPointGet(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -2205,8 +2159,7 @@ func TestInsertDupKeyAfterLockBatchPointGet(t *testing.T) { } func TestAmendTxnVariable(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2253,8 +2206,7 @@ func TestAmendTxnVariable(t *testing.T) { } func TestSelectForUpdateWaitSeconds(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2317,8 +2269,7 @@ func TestSelectForUpdateConflictRetry(t *testing.T) { conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0 }) - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := createAsyncCommitTestKit(t, store) tk.MustExec("drop table if exists tk") @@ -2368,8 +2319,7 @@ func TestAsyncCommitWithSchemaChange(t *testing.T) { require.NoError(t, failpoint.Enable("tikvclient/asyncCommitDoNothing", "return")) defer func() { require.NoError(t, failpoint.Disable("tikvclient/asyncCommitDoNothing")) }() - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := createAsyncCommitTestKit(t, store) tk.MustExec("drop table if exists tk") @@ -2442,8 +2392,7 @@ func Test1PCWithSchemaChange(t *testing.T) { conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0 }) - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := create1PCTestKit(t, store) tk2 := create1PCTestKit(t, store) @@ -2494,8 +2443,7 @@ func Test1PCWithSchemaChange(t *testing.T) { func TestAmendForUniqueIndex(t *testing.T) { t.Skip("Skip this unstable test(#25986) and bring it back before 2021-07-29.") - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -2615,8 +2563,7 @@ func TestAmendForUniqueIndex(t *testing.T) { } func TestAmendWithColumnTypeChange(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -2634,8 +2581,7 @@ func TestAmendWithColumnTypeChange(t *testing.T) { } func TestIssue21498(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -2792,8 +2738,7 @@ func TestIssue21498(t *testing.T) { } func TestPlanCacheSchemaChange(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tmp := testkit.NewTestKit(t, store) defer tmp.MustExec("set global tidb_enable_prepared_plan_cache=" + variable.BoolToOnOff(variable.EnablePreparedPlanCache.Load())) tmp.MustExec("set global tidb_enable_prepared_plan_cache=ON") @@ -2863,8 +2808,7 @@ func TestAsyncCommitCalTSFail(t *testing.T) { conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0 }) - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := createAsyncCommitTestKit(t, store) tk2 := createAsyncCommitTestKit(t, store) @@ -2888,8 +2832,7 @@ func TestAsyncCommitCalTSFail(t *testing.T) { } func TestChangeLockToPut(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -2973,8 +2916,7 @@ func TestAmendForIndexChange(t *testing.T) { conf.TiKVClient.AsyncCommit.SafeWindow = 0 conf.TiKVClient.AsyncCommit.AllowedClockDrift = 0 }) - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -3048,8 +2990,7 @@ func TestAmendForIndexChange(t *testing.T) { } func TestAmendForColumnChange(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk2 := testkit.NewTestKit(t, store) @@ -3131,8 +3072,7 @@ func TestAmendForColumnChange(t *testing.T) { } func TestPessimisticAutoCommitTxn(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3159,8 +3099,7 @@ func TestPessimisticAutoCommitTxn(t *testing.T) { } func TestPessimisticLockOnPartition(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) // This test checks that 'select ... for update' locks the partition instead of the table. // Cover a bug that table ID is used to encode the lock key mistakenly. diff --git a/tests/realtikvtest/sessiontest/paging_test.go b/tests/realtikvtest/sessiontest/paging_test.go index 0266534d8226b..31cab81e461ec 100644 --- a/tests/realtikvtest/sessiontest/paging_test.go +++ b/tests/realtikvtest/sessiontest/paging_test.go @@ -34,8 +34,7 @@ func TestPagingActRowsAndProcessKeys(t *testing.T) { conf.TiKVClient.CoprCache.CapacityMB = 0 }) - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) session := testkit.NewTestKit(t, store) session.MustExec("use test;") session.MustExec("drop table if exists t;") diff --git a/tests/realtikvtest/sessiontest/retry_test.go b/tests/realtikvtest/sessiontest/retry_test.go index de181812effcd..307a93d20085f 100644 --- a/tests/realtikvtest/sessiontest/retry_test.go +++ b/tests/realtikvtest/sessiontest/retry_test.go @@ -32,8 +32,7 @@ import ( ) func TestRetryShow(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -47,8 +46,7 @@ func TestRetryShow(t *testing.T) { } func TestNoRetryForCurrentTxn(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -72,8 +70,7 @@ func TestNoRetryForCurrentTxn(t *testing.T) { } func TestRetryPreparedStmt(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -106,8 +103,7 @@ func TestRetryPreparedStmt(t *testing.T) { } func TestAutoIncrementID(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -211,8 +207,7 @@ func TestAutoIncrementID(t *testing.T) { // test for https://github.com/pingcap/tidb/issues/827 func TestAutoIncrementWithRetry(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -310,8 +305,7 @@ func TestAutoIncrementWithRetry(t *testing.T) { } func TestRetryCleanTxn(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -344,8 +338,7 @@ func TestRetryCleanTxn(t *testing.T) { } func TestRetryUnion(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -373,8 +366,7 @@ func TestRetryUnion(t *testing.T) { } func TestRetryResetStmtCtx(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) setTxnTk := testkit.NewTestKit(t, store) setTxnTk.MustExec("set global tidb_txn_mode=''") @@ -396,8 +388,7 @@ func TestRetryResetStmtCtx(t *testing.T) { } func TestReadOnlyNotInHistory(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tkk := testkit.NewTestKit(t, store) tkk.MustExec("set global tidb_txn_mode=''") @@ -422,8 +413,7 @@ func TestReadOnlyNotInHistory(t *testing.T) { // For https://github.com/pingcap/tidb/issues/571 func TestRetry(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/tests/realtikvtest/sessiontest/session_fail_test.go b/tests/realtikvtest/sessiontest/session_fail_test.go index 8dedaaf9ad6e4..c9f31a228f43e 100644 --- a/tests/realtikvtest/sessiontest/session_fail_test.go +++ b/tests/realtikvtest/sessiontest/session_fail_test.go @@ -28,8 +28,7 @@ import ( ) func TestFailStatementCommitInRetry(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -51,8 +50,7 @@ func TestFailStatementCommitInRetry(t *testing.T) { } func TestGetTSFailDirtyState(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -83,8 +81,7 @@ func TestGetTSFailDirtyStateInretry(t *testing.T) { require.NoError(t, failpoint.Disable("tikvclient/mockGetTSErrorInRetry")) }() - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -103,8 +100,7 @@ func TestGetTSFailDirtyStateInretry(t *testing.T) { func TestKillFlagInBackoff(t *testing.T) { // This test checks the `killed` flag is passed down to the backoffer through // session.KVVars. - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -124,8 +120,7 @@ func TestKillFlagInBackoff(t *testing.T) { } func TestClusterTableSendError(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -138,8 +133,7 @@ func TestClusterTableSendError(t *testing.T) { } func TestAutoCommitNeedNotLinearizability(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/tests/realtikvtest/statisticstest/statistics_test.go b/tests/realtikvtest/statisticstest/statistics_test.go index 67961b6577686..55a970d0de0c1 100644 --- a/tests/realtikvtest/statisticstest/statistics_test.go +++ b/tests/realtikvtest/statisticstest/statistics_test.go @@ -25,8 +25,7 @@ import ( ) func TestNewCollationStatsWithPrefixIndex(t *testing.T) { - store, dom, clean := realtikvtest.CreateMockStoreAndDomainAndSetup(t) - defer clean() + store, dom := realtikvtest.CreateMockStoreAndDomainAndSetup(t) defer func() { tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/tests/realtikvtest/testkit.go b/tests/realtikvtest/testkit.go index 8046e55d44198..eb4499b046ebe 100644 --- a/tests/realtikvtest/testkit.go +++ b/tests/realtikvtest/testkit.go @@ -113,13 +113,13 @@ func clearEtcdStorage(t *testing.T, backend kv.EtcdBackend) { } // CreateMockStoreAndSetup return a new kv.Storage. -func CreateMockStoreAndSetup(t *testing.T, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, func()) { - store, _, clean := CreateMockStoreAndDomainAndSetup(t, opts...) - return store, clean +func CreateMockStoreAndSetup(t *testing.T, opts ...mockstore.MockTiKVStoreOption) kv.Storage { + store, _ := CreateMockStoreAndDomainAndSetup(t, opts...) + return store } // CreateMockStoreAndDomainAndSetup return a new kv.Storage and *domain.Domain. -func CreateMockStoreAndDomainAndSetup(t *testing.T, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, *domain.Domain, func()) { +func CreateMockStoreAndDomainAndSetup(t *testing.T, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, *domain.Domain) { // set it to 5 seconds for testing lock resolve. atomic.StoreUint64(&transaction.ManagedLockTTL, 5000) transaction.PrewriteMaxBackoff.Store(500) @@ -150,9 +150,10 @@ func CreateMockStoreAndDomainAndSetup(t *testing.T, opts ...mockstore.MockTiKVSt require.NoError(t, err) } - return store, dom, func() { + t.Cleanup(func() { dom.Close() require.NoError(t, store.Close()) transaction.PrewriteMaxBackoff.Store(20000) - } + }) + return store, dom } diff --git a/tests/realtikvtest/txntest/isolation_test.go b/tests/realtikvtest/txntest/isolation_test.go index cf4e6b95d0a41..5749e7d410b26 100644 --- a/tests/realtikvtest/txntest/isolation_test.go +++ b/tests/realtikvtest/txntest/isolation_test.go @@ -28,8 +28,7 @@ These test cases come from the paper . The sign 'P0', 'P1'.... can be found in the paper. These cases will run under snapshot isolation. */ func TestP0DirtyWrite(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) session1 := testkit.NewTestKit(t, store) session2 := testkit.NewTestKit(t, store) session1.MustExec("use test;") @@ -87,8 +86,7 @@ func TestP0DirtyWrite(t *testing.T) { } func TestP1DirtyRead(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) session1 := testkit.NewTestKit(t, store) session2 := testkit.NewTestKit(t, store) session1.MustExec("use test;") @@ -137,8 +135,7 @@ func TestP1DirtyRead(t *testing.T) { } func TestP2NonRepeatableRead(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) session1 := testkit.NewTestKit(t, store) session2 := testkit.NewTestKit(t, store) session1.MustExec("use test;") @@ -208,8 +205,7 @@ func TestP2NonRepeatableRead(t *testing.T) { } func TestP3Phantom(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) session1 := testkit.NewTestKit(t, store) session2 := testkit.NewTestKit(t, store) session1.MustExec("use test;") @@ -276,8 +272,7 @@ func TestP3Phantom(t *testing.T) { } func TestP4LostUpdate(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) session1 := testkit.NewTestKit(t, store) session2 := testkit.NewTestKit(t, store) session1.MustExec("use test;") @@ -337,8 +332,7 @@ func TestP4LostUpdate(t *testing.T) { func TestP4CLostUpdate(t *testing.T) {} func TestA3Phantom(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) session1 := testkit.NewTestKit(t, store) session2 := testkit.NewTestKit(t, store) session1.MustExec("use test;") @@ -390,8 +384,7 @@ func TestA3Phantom(t *testing.T) { } func TestA5AReadSkew(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) session1 := testkit.NewTestKit(t, store) session2 := testkit.NewTestKit(t, store) session1.MustExec("use test;") @@ -455,8 +448,7 @@ func TestA5AReadSkew(t *testing.T) { } func TestA5BWriteSkew(t *testing.T) { - store, clean := realtikvtest.CreateMockStoreAndSetup(t) - defer clean() + store := realtikvtest.CreateMockStoreAndSetup(t) session1 := testkit.NewTestKit(t, store) session2 := testkit.NewTestKit(t, store) session1.MustExec("use test;") @@ -552,8 +544,7 @@ These test cases come from the paper Date: Mon, 1 Aug 2022 23:16:05 +0800 Subject: [PATCH 5/6] planner: check virtual column for tiflash (#36771) close pingcap/tiflash#5513, close pingcap/tidb#36773 --- expression/integration_test.go | 36 ++++++++++++++++++++++++++++++++++ planner/core/find_best_task.go | 13 ++++++++++++ 2 files changed, 49 insertions(+) diff --git a/expression/integration_test.go b/expression/integration_test.go index d3c8768c387d7..3f6a2b45a5274 100644 --- a/expression/integration_test.go +++ b/expression/integration_test.go @@ -3648,6 +3648,42 @@ func TestIssue16973(t *testing.T) { "AND t1.status IN (2,6,10) AND timestampdiff(month, t2.begin_time, date'2020-05-06') = 0;").Check(testkit.Rows("1")) } +func TestShardIndexOnTiFlash(t *testing.T) { + store := testkit.CreateMockStore(t) + + tk := testkit.NewTestKit(t, store) + tk.MustExec("use test") + tk.MustExec("drop table if exists t") + tk.MustExec("create table t(id int primary key clustered, a int, b int, unique key uk_expr((tidb_shard(a)),a))") + + // Create virtual tiflash replica info. + dom := domain.GetDomain(tk.Session()) + is := dom.InfoSchema() + db, exists := is.SchemaByName(model.NewCIStr("test")) + require.True(t, exists) + for _, tblInfo := range db.Tables { + if tblInfo.Name.L == "t" { + tblInfo.TiFlashReplica = &model.TiFlashReplicaInfo{ + Count: 1, + Available: true, + } + } + } + tk.MustExec("set @@session.tidb_enforce_mpp = 1") + rows := tk.MustQuery("explain select max(b) from t").Rows() + for _, row := range rows { + line := fmt.Sprintf("%v", row) + require.NotContains(t, line, "tiflash") + } + tk.MustExec("set @@session.tidb_enforce_mpp = 0") + tk.MustExec("set @@session.tidb_allow_mpp = 0") + rows = tk.MustQuery("explain select max(b) from t").Rows() + for _, row := range rows { + line := fmt.Sprintf("%v", row) + require.NotContains(t, line, "tiflash") + } +} + func TestExprPushdownBlacklist(t *testing.T) { store := testkit.CreateMockStore(t) diff --git a/planner/core/find_best_task.go b/planner/core/find_best_task.go index ac7790fc8ba99..c286fca6dcfe9 100644 --- a/planner/core/find_best_task.go +++ b/planner/core/find_best_task.go @@ -1882,6 +1882,19 @@ func (ds *DataSource) convertToTableScan(prop *property.PhysicalProperty, candid // TiFlash fast mode(https://github.com/pingcap/tidb/pull/35851) does not keep order in TableScan return invalidTask, nil } + if ts.StoreType == kv.TiFlash { + for _, col := range ts.schema.Columns { + // In theory, TiFlash does not support virtual expr, but in non-mpp mode, if the cop request only contain table scan, then + // TiDB will fill the virtual column after decoding the cop response(executor.FillVirtualColumnValue), that is to say, the virtual + // columns in Cop request is just a placeholder, so TiFlash can support virtual column in cop request mode. However, virtual column + // with TiDBShard is special, it can be added using create index statement, TiFlash's ddl does not handle create index statement, so + // there is a chance that the TiDBShard's virtual column is not seen by TiFlash, in this case, TiFlash will throw column not found error + if ds.containExprPrefixUk && expression.GcColumnExprIsTidbShard(col.VirtualExpr) { + ds.SCtx().GetSessionVars().RaiseWarningWhenMPPEnforced("MPP mode may be blocked because column `" + col.OrigName + "` is a virtual column which is not supported now.") + return invalidTask, nil + } + } + } if prop.TaskTp == property.MppTaskType { if ts.KeepOrder { return invalidTask, nil From cc2fcfceca7bd8cfa20597b943bb2a31bbb238d1 Mon Sep 17 00:00:00 2001 From: lance6716 Date: Tue, 2 Aug 2022 00:24:05 +0800 Subject: [PATCH 6/6] ddl/schematracker: fix SetDDL will cause data race (#36768) close pingcap/tidb#36766 --- ddl/column_modify_test.go | 14 +- ddl/column_test.go | 18 +-- ddl/constant.go | 7 + ddl/db_integration_test.go | 263 +++++++---------------------------- ddl/db_partition_test.go | 38 +---- ddl/db_rename_test.go | 26 +--- ddl/db_table_test.go | 26 +--- ddl/db_test.go | 8 +- ddl/failtest/fail_db_test.go | 5 +- ddl/index_modify_test.go | 58 +++----- ddl/schematracker/checker.go | 28 ++++ executor/ddl_test.go | 24 +--- session/session.go | 13 +- store/mockstore/mockstore.go | 29 +++- testkit/mockstore.go | 7 +- 15 files changed, 174 insertions(+), 390 deletions(-) diff --git a/ddl/column_modify_test.go b/ddl/column_modify_test.go index 3d11f2021075e..2ccdf96a24916 100644 --- a/ddl/column_modify_test.go +++ b/ddl/column_modify_test.go @@ -25,7 +25,6 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/tidb/ddl" - "github.com/pingcap/tidb/ddl/schematracker" testddlutil "github.com/pingcap/tidb/ddl/testutil" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/errno" @@ -36,6 +35,7 @@ import ( "github.com/pingcap/tidb/parser/mysql" "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/sessiontxn" + "github.com/pingcap/tidb/store/mockstore" "github.com/pingcap/tidb/table" "github.com/pingcap/tidb/table/tables" "github.com/pingcap/tidb/testkit" @@ -296,11 +296,7 @@ func TestDropColumn(t *testing.T) { } func TestChangeColumn(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -385,11 +381,7 @@ func TestChangeColumn(t *testing.T) { } func TestRenameColumn(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, columnModifyLease) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStoreWithSchemaLease(t, columnModifyLease, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/column_test.go b/ddl/column_test.go index 7311a331594db..77fc95767c4e3 100644 --- a/ddl/column_test.go +++ b/ddl/column_test.go @@ -24,13 +24,13 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/tidb/ddl" - "github.com/pingcap/tidb/ddl/schematracker" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/parser/model" "github.com/pingcap/tidb/parser/terror" "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/sessiontxn" + "github.com/pingcap/tidb/store/mockstore" "github.com/pingcap/tidb/table" "github.com/pingcap/tidb/table/tables" "github.com/pingcap/tidb/tablecodec" @@ -156,11 +156,7 @@ func testDropColumns(tk *testkit.TestKit, t *testing.T, ctx sessionctx.Context, } func TestColumnBasic(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -645,12 +641,9 @@ func testGetColumn(t table.Table, name string, isExist bool) error { } func TestAddColumn(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithDDLChecker()) d := dom.DDL() - ddlChecker := schematracker.NewChecker(d) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -710,12 +703,9 @@ func TestAddColumn(t *testing.T) { } func TestAddColumns(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithDDLChecker()) d := dom.DDL() - ddlChecker := schematracker.NewChecker(d) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/constant.go b/ddl/constant.go index 03e8d1fcfaaa5..dd5db4a851a36 100644 --- a/ddl/constant.go +++ b/ddl/constant.go @@ -32,4 +32,11 @@ const ( ReorgTableID = meta.MaxInt48 - 2 // HistoryTableID is the table ID of `tidb_ddl_history`. HistoryTableID = meta.MaxInt48 - 3 + + // JobTableSQL is the CREATE TABLE SQL of `tidb_ddl_job`. + JobTableSQL = "create table " + JobTable + "(job_id bigint not null, reorg int, schema_ids text(65535), table_ids text(65535), job_meta longblob, type int, processing int, primary key(job_id))" + // ReorgTableSQL is the CREATE TABLE SQL of `tidb_ddl_reorg`. + ReorgTableSQL = "create table " + ReorgTable + "(job_id bigint not null, ele_id bigint, ele_type blob, start_key blob, end_key blob, physical_id bigint, reorg_meta longblob, unique key(job_id, ele_id, ele_type(20)))" + // HistoryTableSQL is the CREATE TABLE SQL of `tidb_ddl_history`. + HistoryTableSQL = "create table " + HistoryTable + "(job_id bigint not null, job_meta longblob, db_name char(64), table_name char(64), schema_ids text(65535), table_ids text(65535), create_time datetime, primary key(job_id))" ) diff --git a/ddl/db_integration_test.go b/ddl/db_integration_test.go index 06ff6f56e6001..320a815ee7585 100644 --- a/ddl/db_integration_test.go +++ b/ddl/db_integration_test.go @@ -44,6 +44,7 @@ import ( "github.com/pingcap/tidb/sessionctx/stmtctx" "github.com/pingcap/tidb/sessionctx/variable" "github.com/pingcap/tidb/sessiontxn" + "github.com/pingcap/tidb/store/mockstore" "github.com/pingcap/tidb/tablecodec" "github.com/pingcap/tidb/testkit" "github.com/pingcap/tidb/testkit/external" @@ -144,11 +145,7 @@ func TestInvalidNameWhenCreateTable(t *testing.T) { // TestCreateTableIfNotExistsLike for issue #6879 func TestCreateTableIfNotExistsLike(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) @@ -175,11 +172,7 @@ func TestCreateTableIfNotExistsLike(t *testing.T) { // for issue #9910 func TestCreateTableWithKeyWord(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) @@ -190,11 +183,7 @@ func TestCreateTableWithKeyWord(t *testing.T) { } func TestUniqueKeyNullValue(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("USE test") @@ -211,10 +200,7 @@ func TestUniqueKeyNullValue(t *testing.T) { } func TestUniqueKeyNullValueClusterIndex(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) @@ -232,11 +218,7 @@ func TestUniqueKeyNullValueClusterIndex(t *testing.T) { // TestModifyColumnAfterAddIndex Issue 5134 func TestModifyColumnAfterAddIndex(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -246,11 +228,7 @@ func TestModifyColumnAfterAddIndex(t *testing.T) { } func TestIssue2293(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -278,11 +256,7 @@ func TestIssue6101(t *testing.T) { } func TestIssue19229(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -306,11 +280,9 @@ func TestIssue19229(t *testing.T) { } func TestIndexLength(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithDDLChecker()) - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + ddlChecker := dom.DDL().(*schematracker.Checker) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -361,11 +333,7 @@ func TestIssue3833(t *testing.T) { } func TestIssue2858And2717(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -384,11 +352,7 @@ func TestIssue2858And2717(t *testing.T) { } func TestIssue4432(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -415,11 +379,9 @@ func TestIssue4432(t *testing.T) { } func TestIssue5092(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithDDLChecker()) - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + ddlChecker := dom.DDL().(*schematracker.Checker) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -688,11 +650,7 @@ func TestTableDDLWithFloatType(t *testing.T) { } func TestTableDDLWithTimeType(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -744,11 +702,7 @@ func TestUpdateMultipleTable(t *testing.T) { } func TestNullGeneratedColumn(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) @@ -768,11 +722,7 @@ func TestNullGeneratedColumn(t *testing.T) { } func TestDependedGeneratedColumnPrior2GeneratedColumn(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -798,11 +748,9 @@ func TestDependedGeneratedColumnPrior2GeneratedColumn(t *testing.T) { } func TestChangingTableCharset(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithDDLChecker()) - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + ddlChecker := dom.DDL().(*schematracker.Checker) tk := testkit.NewTestKit(t, store) @@ -959,11 +907,7 @@ func TestChangingTableCharset(t *testing.T) { } func TestModifyColumnOption(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") @@ -998,11 +942,7 @@ func TestModifyColumnOption(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") @@ -1019,11 +959,7 @@ func TestIndexOnMultipleGeneratedColumn(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn1(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") @@ -1040,11 +976,7 @@ func TestIndexOnMultipleGeneratedColumn1(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn2(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") @@ -1061,11 +993,7 @@ func TestIndexOnMultipleGeneratedColumn2(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn3(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") @@ -1082,11 +1010,7 @@ func TestIndexOnMultipleGeneratedColumn3(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn4(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") @@ -1103,11 +1027,7 @@ func TestIndexOnMultipleGeneratedColumn4(t *testing.T) { } func TestIndexOnMultipleGeneratedColumn5(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") @@ -1186,11 +1106,7 @@ func TestCaseInsensitiveCharsetAndCollate(t *testing.T) { } func TestZeroFillCreateTable(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1217,11 +1133,9 @@ func TestZeroFillCreateTable(t *testing.T) { } func TestBitDefaultValue(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithDDLChecker()) - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + ddlChecker := dom.DDL().(*schematracker.Checker) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1360,11 +1274,7 @@ func TestCreateTableTooManyIndexes(t *testing.T) { } func TestChangeColumnPosition(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1417,11 +1327,7 @@ func TestChangeColumnPosition(t *testing.T) { } func TestAddIndexAfterAddColumn(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1436,11 +1342,7 @@ func TestAddIndexAfterAddColumn(t *testing.T) { } func TestResolveCharset(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1473,11 +1375,7 @@ func TestResolveCharset(t *testing.T) { func TestAddColumnDefaultNow(t *testing.T) { // Related Issue: https://github.com/pingcap/tidb/issues/31968 - mockStore, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + mockStore := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, mockStore) const dateHourLength = len("yyyy-mm-dd hh:") @@ -1669,12 +1567,7 @@ CREATE TABLE t ( } func TestAlterColumn(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - d := dom.DDL() - ddlChecker := schematracker.NewChecker(d) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -1884,11 +1777,7 @@ func assertAlterWarnExec(tk *testkit.TestKit, t *testing.T, sql string) { } func TestAlterAlgorithm(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2246,10 +2135,7 @@ func TestDefaultColumnWithUUID(t *testing.T) { } func TestChangingDBCharset(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) @@ -2443,11 +2329,7 @@ func TestInsertIntoGeneratedColumnWithDefaultExpr(t *testing.T) { } func TestSqlFunctionsInGeneratedColumns(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists test") @@ -2491,11 +2373,7 @@ func TestSqlFunctionsInGeneratedColumns(t *testing.T) { } func TestParserIssue284(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2818,10 +2696,7 @@ func queryIndexOnTable(dbName, tableName string) string { } func TestDropColumnWithCompositeIndex(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) query := queryIndexOnTable("drop_composite_index_test", "t_drop_column_with_comp_idx") @@ -2840,11 +2715,7 @@ func TestDropColumnWithCompositeIndex(t *testing.T) { } func TestDropColumnWithIndex(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2857,11 +2728,7 @@ func TestDropColumnWithIndex(t *testing.T) { } func TestDropColumnWithAutoInc(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2878,11 +2745,7 @@ func TestDropColumnWithAutoInc(t *testing.T) { } func TestDropColumnWithMultiIndex(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2896,11 +2759,7 @@ func TestDropColumnWithMultiIndex(t *testing.T) { } func TestDropColumnsWithMultiIndex(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -2929,11 +2788,7 @@ func TestDropLastVisibleColumnOrColumns(t *testing.T) { } func TestAutoIncrementTableOption(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("drop database if exists test_auto_inc_table_opt;") @@ -3062,11 +2917,7 @@ func TestAutoIncrementForce(t *testing.T) { } func TestIssue20490(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -3081,11 +2932,7 @@ func TestIssue20490(t *testing.T) { } func TestIssue20741WithEnumField(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3118,11 +2965,7 @@ func TestIssue20741WithSetField(t *testing.T) { // TestDefaultValueIsLatin1 for issue #18977 func TestEnumAndSetDefaultValue(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3211,11 +3054,7 @@ func TestDuplicateErrorMessage(t *testing.T) { } func TestIssue22028(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -3977,11 +3816,7 @@ func TestCreateTempTableInTxn(t *testing.T) { // See https://github.com/pingcap/tidb/issues/29327 func TestEnumDefaultValue(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/db_partition_test.go b/ddl/db_partition_test.go index fe894219202bc..5a3bdb7588a8b 100644 --- a/ddl/db_partition_test.go +++ b/ddl/db_partition_test.go @@ -27,7 +27,6 @@ import ( "github.com/pingcap/failpoint" "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/ddl" - "github.com/pingcap/tidb/ddl/schematracker" "github.com/pingcap/tidb/ddl/testutil" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/errno" @@ -40,6 +39,7 @@ import ( "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/sessionctx/variable" "github.com/pingcap/tidb/sessiontxn" + "github.com/pingcap/tidb/store/mockstore" "github.com/pingcap/tidb/table" "github.com/pingcap/tidb/table/tables" "github.com/pingcap/tidb/tablecodec" @@ -83,11 +83,7 @@ func checkGlobalIndexCleanUpDone(t *testing.T, ctx sessionctx.Context, tblInfo * } func TestCreateTableWithPartition(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -340,11 +336,7 @@ partition by range (a) } func TestCreateTableWithHashPartition(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -403,11 +395,7 @@ func TestCreateTableWithHashPartition(t *testing.T) { } func TestCreateTableWithRangeColumnPartition(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -804,11 +792,7 @@ func generatePartitionTableByNum(num int) string { } func TestCreateTableWithListPartition(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -955,11 +939,7 @@ func TestCreateTableWithListPartition(t *testing.T) { } func TestCreateTableWithListColumnsPartition(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") @@ -1488,11 +1468,7 @@ func TestAlterTableTruncatePartitionByListColumns(t *testing.T) { } func TestCreateTableWithKeyPartition(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test;") diff --git a/ddl/db_rename_test.go b/ddl/db_rename_test.go index 2c304742cb7c9..d2a33c2556734 100644 --- a/ddl/db_rename_test.go +++ b/ddl/db_rename_test.go @@ -19,11 +19,10 @@ import ( "testing" "github.com/pingcap/tidb/config" - "github.com/pingcap/tidb/ddl/schematracker" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/errno" - "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/parser/model" + "github.com/pingcap/tidb/store/mockstore" "github.com/pingcap/tidb/testkit" "github.com/stretchr/testify/require" ) @@ -60,11 +59,7 @@ func TestRenameTableWithLocked(t *testing.T) { conf.EnableTableLock = true }) - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("create database renamedb") @@ -99,16 +94,7 @@ func TestAlterTableRenameTable(t *testing.T) { } func renameTableTest(t *testing.T, sql string, isAlterTable bool) { - var ( - store kv.Storage - dom *domain.Domain - ) - - store, dom = testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -198,11 +184,7 @@ func renameTableTest(t *testing.T, sql string, isAlterTable bool) { } func TestRenameMultiTables(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/db_table_test.go b/ddl/db_table_test.go index 098357684697b..c41ea08e549a5 100644 --- a/ddl/db_table_test.go +++ b/ddl/db_table_test.go @@ -25,7 +25,6 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/ddl" - "github.com/pingcap/tidb/ddl/schematracker" testddlutil "github.com/pingcap/tidb/ddl/testutil" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/errno" @@ -36,6 +35,7 @@ import ( "github.com/pingcap/tidb/parser/terror" "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/sessiontxn" + "github.com/pingcap/tidb/store/mockstore" "github.com/pingcap/tidb/table" "github.com/pingcap/tidb/table/tables" "github.com/pingcap/tidb/testkit" @@ -223,11 +223,7 @@ func TestTransactionOnAddDropColumn(t *testing.T) { } func TestCreateTableWithSetCol(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -284,11 +280,7 @@ func TestCreateTableWithSetCol(t *testing.T) { } func TestCreateTableWithEnumCol(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -320,11 +312,7 @@ func TestCreateTableWithEnumCol(t *testing.T) { } func TestCreateTableWithIntegerColWithDefault(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -914,11 +902,7 @@ func TestAddColumn2(t *testing.T) { } func TestDropTables(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/db_test.go b/ddl/db_test.go index 3cfa87a17cf0b..a324f1bdf0302 100644 --- a/ddl/db_test.go +++ b/ddl/db_test.go @@ -27,7 +27,6 @@ import ( "github.com/pingcap/failpoint" "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/ddl" - "github.com/pingcap/tidb/ddl/schematracker" ddlutil "github.com/pingcap/tidb/ddl/util" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/errno" @@ -44,6 +43,7 @@ import ( "github.com/pingcap/tidb/session" "github.com/pingcap/tidb/sessionctx/variable" "github.com/pingcap/tidb/sessiontxn" + "github.com/pingcap/tidb/store/mockstore" "github.com/pingcap/tidb/testkit" "github.com/pingcap/tidb/testkit/external" "github.com/pingcap/tidb/types" @@ -520,11 +520,7 @@ func TestAddConstraintCheck(t *testing.T) { } func TestCreateTableIgnoreCheckConstraint(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/failtest/fail_db_test.go b/ddl/failtest/fail_db_test.go index a97768d25f9d6..ad19e382b797d 100644 --- a/ddl/failtest/fail_db_test.go +++ b/ddl/failtest/fail_db_test.go @@ -437,12 +437,9 @@ func TestPartitionAddIndexGC(t *testing.T) { func TestModifyColumn(t *testing.T) { s := createFailDBSuite(t) - tk := testkit.NewTestKit(t, s.store) + tk := testkit.NewTestKit(t, schematracker.NewStorageDDLInjector(s.store)) dom := domain.GetDomain(tk.Session()) - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() tk.MustExec("use test") tk.MustExec("drop table if exists t;") diff --git a/ddl/index_modify_test.go b/ddl/index_modify_test.go index 463662dcccb76..7aff7ac81b2f3 100644 --- a/ddl/index_modify_test.go +++ b/ddl/index_modify_test.go @@ -28,7 +28,6 @@ import ( "github.com/pingcap/errors" "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/ddl" - "github.com/pingcap/tidb/ddl/schematracker" testddlutil "github.com/pingcap/tidb/ddl/testutil" "github.com/pingcap/tidb/errno" "github.com/pingcap/tidb/infoschema" @@ -37,6 +36,7 @@ import ( "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/sessionctx/variable" "github.com/pingcap/tidb/sessiontxn" + "github.com/pingcap/tidb/store/mockstore" "github.com/pingcap/tidb/table" "github.com/pingcap/tidb/table/tables" "github.com/pingcap/tidb/tablecodec" @@ -166,16 +166,20 @@ const ( ) func testAddIndex(t *testing.T, tp testAddIndexType, createTableSQL, idxTp string) { - store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) + isTestShardRowID := (testShardRowID & tp) > 0 + // we wrap type on store to implement WithDDLChecker, but shard row ID test will fail at checking the type of store + // sp, ok := d.store.(kv.SplittableStore) + // since hard row ID is not in the use case of SchemaTracker(WithDDLChecker) by design, we disable it + var opts []mockstore.MockTiKVStoreOption + if !isTestShardRowID { + opts = append(opts, mockstore.WithDDLChecker()) + } - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease, opts...) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") isTestPartition := (testPartition & tp) > 0 - isTestShardRowID := (testShardRowID & tp) > 0 if isTestShardRowID { atomic.StoreUint32(&ddl.EnableSplitTableRegion, 1) tk.MustExec("set global tidb_scatter_region = 1") @@ -326,11 +330,7 @@ LOOP: } func TestAddIndexForGeneratedColumn(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -571,11 +571,7 @@ LOOP: } func TestAddAnonymousIndex(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -635,11 +631,7 @@ func TestAddAnonymousIndex(t *testing.T) { } func TestAddIndexWithPK(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -821,11 +813,7 @@ func checkGlobalIndexRow( } func TestDropIndexes(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease, mockstore.WithDDLChecker()) // drop multiple indexes createSQL := "create table test_drop_indexes (id int, c1 int, c2 int, primary key(id), key i1(c1), key i2(c2));" @@ -939,11 +927,7 @@ func testDropIndexesFromPartitionedTable(t *testing.T, store kv.Storage) { } func TestDropPrimaryKey(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease, mockstore.WithDDLChecker()) idxName := "primary" createSQL := "create table test_drop_index (c1 int, c2 int, c3 int, unique key(c1), primary key(c3) nonclustered)" @@ -952,11 +936,7 @@ func TestDropPrimaryKey(t *testing.T) { } func TestDropIndex(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease, mockstore.WithDDLChecker()) idxName := "c3_index" createSQL := "create table test_drop_index (c1 int, c2 int, c3 int, unique key(c1), key c3_index(c3))" @@ -1050,11 +1030,7 @@ func TestAddIndexWithDupCols(t *testing.T) { } func TestAnonymousIndex(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomainWithSchemaLease(t, indexModifyLease) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStoreWithSchemaLease(t, indexModifyLease, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") diff --git a/ddl/schematracker/checker.go b/ddl/schematracker/checker.go index 9d36eafed35f2..920935e72ce42 100644 --- a/ddl/schematracker/checker.go +++ b/ddl/schematracker/checker.go @@ -34,10 +34,15 @@ import ( "github.com/pingcap/tidb/sessionctx" "github.com/pingcap/tidb/sessionctx/variable" "github.com/pingcap/tidb/statistics/handle" + "github.com/pingcap/tidb/store/mockstore" "github.com/pingcap/tidb/table" pumpcli "github.com/pingcap/tidb/tidb-binlog/pump_client" ) +func init() { + mockstore.DDLCheckerInjector = NewStorageDDLInjector +} + // Checker is used to check the result of SchemaTracker is same as real DDL. type Checker struct { realDDL ddl.DDL @@ -519,3 +524,26 @@ func (d Checker) MoveJobFromQueue2Table(bool) error { func (d Checker) MoveJobFromTable2Queue() error { panic("implement me") } + +// StorageDDLInjector wraps kv.Storage to inject checker to domain's DDL in bootstrap time. +type StorageDDLInjector struct { + kv.Storage + Injector func(ddl.DDL) *Checker +} + +// NewStorageDDLInjector creates a new StorageDDLInjector to inject Checker. +func NewStorageDDLInjector(s kv.Storage) kv.Storage { + return StorageDDLInjector{ + Storage: s, + Injector: NewChecker, + } +} + +// UnwrapStorage unwraps StorageDDLInjector for one level. +func UnwrapStorage(s kv.Storage) kv.Storage { + injector, ok := s.(StorageDDLInjector) + if !ok { + return s + } + return injector.Storage +} diff --git a/executor/ddl_test.go b/executor/ddl_test.go index 9c643e4e4d43c..be20db6745759 100644 --- a/executor/ddl_test.go +++ b/executor/ddl_test.go @@ -40,6 +40,7 @@ import ( plannercore "github.com/pingcap/tidb/planner/core" "github.com/pingcap/tidb/sessionctx/variable" "github.com/pingcap/tidb/sessiontxn" + "github.com/pingcap/tidb/store/mockstore" "github.com/pingcap/tidb/table" "github.com/pingcap/tidb/table/tables" "github.com/pingcap/tidb/testkit" @@ -97,11 +98,7 @@ func TestInTxnExecDDLInvalid(t *testing.T) { } func TestCreateTable(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) tk.MustExec("use test") @@ -440,10 +437,9 @@ func TestCreateViewWithOverlongColName(t *testing.T) { } func TestCreateDropDatabase(t *testing.T) { - store, dom := testkit.CreateMockStoreAndDomain(t) + store, dom := testkit.CreateMockStoreAndDomain(t, mockstore.WithDDLChecker()) - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) + ddlChecker := dom.DDL().(*schematracker.Checker) tk := testkit.NewTestKit(t, store) tk.MustExec("create database if not exists drop_test;") @@ -1467,11 +1463,7 @@ func TestRenameTable(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange")) }() - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) @@ -1553,11 +1545,7 @@ func TestRenameMultiTables(t *testing.T) { defer func() { require.NoError(t, failpoint.Disable("github.com/pingcap/tidb/meta/autoid/mockAutoIDChange")) }() - store, dom := testkit.CreateMockStoreAndDomain(t) - - ddlChecker := schematracker.NewChecker(dom.DDL()) - dom.SetDDL(ddlChecker) - ddlChecker.CreateTestDB() + store := testkit.CreateMockStore(t, mockstore.WithDDLChecker()) tk := testkit.NewTestKit(t, store) diff --git a/session/session.go b/session/session.go index 819e69014f2f0..ae78837d308f3 100644 --- a/session/session.go +++ b/session/session.go @@ -45,6 +45,7 @@ import ( "github.com/pingcap/tidb/config" "github.com/pingcap/tidb/ddl" "github.com/pingcap/tidb/ddl/placement" + "github.com/pingcap/tidb/ddl/schematracker" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/errno" "github.com/pingcap/tidb/executor" @@ -2607,9 +2608,9 @@ var ( SQL string id int64 }{ - {"create table tidb_ddl_job(job_id bigint not null, reorg int, schema_ids text(65535), table_ids text(65535), job_meta longblob, type int, processing int, primary key(job_id))", ddl.JobTableID}, - {"create table tidb_ddl_reorg(job_id bigint not null, ele_id bigint, ele_type blob, start_key blob, end_key blob, physical_id bigint, reorg_meta longblob, unique key(job_id, ele_id, ele_type(20)))", ddl.ReorgTableID}, - {"create table tidb_ddl_history(job_id bigint not null, job_meta longblob, db_name char(64), table_name char(64), schema_ids text(65535), table_ids text(65535), create_time datetime, primary key(job_id))", ddl.HistoryTableID}, + {ddl.JobTableSQL, ddl.JobTableID}, + {ddl.ReorgTableSQL, ddl.ReorgTableID}, + {ddl.HistoryTableSQL, ddl.HistoryTableID}, } ) @@ -2705,6 +2706,12 @@ func BootstrapSession(store kv.Storage) (*domain.Domain, error) { rebuildAllPartitionValueMapAndSorted(ses[0]) dom := domain.GetDomain(ses[0]) + if injector, ok := store.(schematracker.StorageDDLInjector); ok { + checker := injector.Injector(dom.DDL()) + checker.CreateTestDB() + dom.SetDDL(checker) + } + // We should make the load bind-info loop before other loops which has internal SQL. // Because the internal SQL may access the global bind-info handler. As the result, the data race occurs here as the // LoadBindInfoLoop inits global bind-info handler. diff --git a/store/mockstore/mockstore.go b/store/mockstore/mockstore.go index ec3ef97647039..6cf3eb15d3ec3 100644 --- a/store/mockstore/mockstore.go +++ b/store/mockstore/mockstore.go @@ -90,6 +90,7 @@ type mockOptions struct { path string txnLocalLatches uint storeType StoreType + ddlCheckerHijack bool } // MockTiKVStoreOption is used to control some behavior of mock tikv. @@ -148,6 +149,17 @@ func WithTxnLocalLatches(capacity uint) MockTiKVStoreOption { } } +// WithDDLChecker prepare injected DDL implementation for the domain of this store. It must be done before bootstrap to +// avoid data race with dom.ddl. +func WithDDLChecker() MockTiKVStoreOption { + return func(c *mockOptions) { + c.ddlCheckerHijack = true + } +} + +// DDLCheckerInjector is used to break import cycle. +var DDLCheckerInjector func(kv.Storage) kv.Storage + // NewMockStore creates a mocked tikv store, the path is the file path to store the data. // If path is an empty string, a memory storage will be created. func NewMockStore(options ...MockTiKVStoreOption) (kv.Storage, error) { @@ -161,14 +173,27 @@ func NewMockStore(options ...MockTiKVStoreOption) (kv.Storage, error) { f(&opt) } + var ( + store kv.Storage + err error + ) + switch opt.storeType { case MockTiKV: - return newMockTikvStore(&opt) + store, err = newMockTikvStore(&opt) case EmbedUnistore: - return newUnistore(&opt) + store, err = newUnistore(&opt) default: panic("unsupported mockstore") } + if err != nil { + return nil, errors.Trace(err) + } + + if opt.ddlCheckerHijack { + store = DDLCheckerInjector(store) + } + return store, nil } // BootstrapWithSingleStore initializes a Cluster with 1 Region and 1 Store. diff --git a/testkit/mockstore.go b/testkit/mockstore.go index 8531d7303b9c4..f655a2a544fd1 100644 --- a/testkit/mockstore.go +++ b/testkit/mockstore.go @@ -21,6 +21,7 @@ import ( "testing" "time" + "github.com/pingcap/tidb/ddl/schematracker" "github.com/pingcap/tidb/domain" "github.com/pingcap/tidb/kv" "github.com/pingcap/tidb/session" @@ -59,7 +60,7 @@ func CreateMockStore(t testing.TB, opts ...mockstore.MockTiKVStoreOption) kv.Sto func CreateMockStoreAndDomain(t testing.TB, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, *domain.Domain) { store, err := mockstore.NewMockStore(opts...) require.NoError(t, err) - return store, bootstrap(t, store, 0) + return schematracker.UnwrapStorage(store), bootstrap(t, store, 0) } func bootstrap(t testing.TB, store kv.Storage, lease time.Duration) *domain.Domain { @@ -81,12 +82,12 @@ func bootstrap(t testing.TB, store kv.Storage, lease time.Duration) *domain.Doma // CreateMockStoreWithSchemaLease return a new mock kv.Storage. func CreateMockStoreWithSchemaLease(t testing.TB, lease time.Duration, opts ...mockstore.MockTiKVStoreOption) kv.Storage { store, _ := CreateMockStoreAndDomainWithSchemaLease(t, lease, opts...) - return store + return schematracker.UnwrapStorage(store) } // CreateMockStoreAndDomainWithSchemaLease return a new mock kv.Storage and *domain.Domain. func CreateMockStoreAndDomainWithSchemaLease(t testing.TB, lease time.Duration, opts ...mockstore.MockTiKVStoreOption) (kv.Storage, *domain.Domain) { store, err := mockstore.NewMockStore(opts...) require.NoError(t, err) - return store, bootstrap(t, store, lease) + return schematracker.UnwrapStorage(store), bootstrap(t, store, lease) }